ETH Price: $3,139.21 (-7.22%)

Token

HypeINU (HYPE)
 

Overview

Max Total Supply

10,000,000 HYPE

Holders

68

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
*7mill💰️.eth
Balance
753.304880736 HYPE

Value
$0.00
0xa7f4fDbDa4EE701249ffE8160a6521db2573B5F8
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:
HypeINU

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: unlicensed

//
//Telegram: https://t.me/hypeinu
//

pragma solidity ^0.8.4;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

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

    string private constant _name = "HypeINU";
    string private constant _symbol = "HYPE";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 10000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    //Buy Fee
    uint256 private _redisFeeOnBuy = 2;
    uint256 private _taxFeeOnBuy = 10;
    
    //Sell Fee
    uint256 private _redisFeeOnSell = 2;
    uint256 private _taxFeeOnSell = 10;
    
    //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 => bool) public preTrader;
    mapping(address => uint256) private cooldown;
    
    address payable private _developmentAddress = payable(0x913A9b4fa75B604CB8bB053748856Ff8577ce11E);
    address payable private _marketingAddress = payable(0xc3AF82dceD20225304301B7154d75C57e5Cde463);
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
    
    uint256 public _maxTxAmount = 10000 * 10**9; //0.1%
    uint256 public _maxWalletSize = 400000 * 10**9; //4%
    uint256 public _swapTokensAtAmount = 10000 * 10**9; //0.1%

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

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

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;
        
        preTrader[owner()] = true;
        
        bots[address(0x66f049111958809841Bbe4b81c034Da2D953AA0c)] = true;
        bots[address(0x000000005736775Feb0C8568e7DEe77222a26880)] = 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 {
        _developmentAddress.transfer(amount.div(2));
        _marketingAddress.transfer(amount.div(2));
    }

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

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

    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        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 MAx 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 allowPreTrading(address account, bool allowed) public onlyOwner {
        require(preTrader[account] != allowed, "TOKEN: Already enabled.");
        preTrader[account] = allowed;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"allowPreTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"preTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"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"}]

6080604052662386f26fc100006000196200001b91906200096b565b6000196200002a9190620008f2565b6006556002600855600a6009556002600a55600a600b55600a54600c55600b54600d55600c54600e55600d54600f5573913a9b4fa75b604cb8bb053748856ff8577ce11e601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c3af82dced20225304301b7154d75c57e5cde463601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601660156101000a81548160ff02191690831515021790555060016016806101000a81548160ff0219169083151502179055506509184e72a00060175566016bcc41e900006018556509184e72a0006019553480156200016457600080fd5b506000620001776200080c60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200022c6200080c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200030b57600080fd5b505afa15801562000320573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000346919062000854565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003a957600080fd5b505afa158015620003be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e4919062000854565b6040518363ffffffff1660e01b815260040162000403929190620008a8565b602060405180830381600087803b1580156200041e57600080fd5b505af115801562000433573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000459919062000854565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004af6200081460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000620006626200081460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007366f049111958809841bbe4b81c034da2d953aa0c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060006f5736775feb0c8568e7dee77222a2688073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620007976200080c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef662386f26fc10000604051620007fd9190620008d5565b60405180910390a35062000a20565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000815190506200084e8162000a06565b92915050565b6000602082840312156200086d576200086c62000a01565b5b60006200087d848285016200083d565b91505092915050565b62000891816200092d565b82525050565b620008a28162000961565b82525050565b6000604082019050620008bf600083018562000886565b620008ce602083018462000886565b9392505050565b6000602082019050620008ec600083018462000897565b92915050565b6000620008ff8262000961565b91506200090c8362000961565b925082821015620009225762000921620009a3565b5b828203905092915050565b60006200093a8262000941565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000620009788262000961565b9150620009858362000961565b925082620009985762000997620009d2565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b62000a11816200092d565b811462000a1d57600080fd5b50565b61415b8062000a306000396000f3fe6080604052600436106101db5760003560e01c806374010ece11610102578063a9059cbb11610095578063c492f04611610064578063c492f04614610690578063dd62ed3e146106b9578063ea1644d5146106f6578063f2fde38b1461071f576101e2565b8063a9059cbb146105c2578063bdd795ef146105ff578063bfd792841461063c578063c3c8cd8014610679576101e2565b80638f9a55c0116100d15780638f9a55c01461051a57806395d89b411461054557806398a5c31514610570578063a2a957bb14610599576101e2565b806374010ece146104725780637d1db4a51461049b5780638da5cb5b146104c65780638f70ccf7146104f1576101e2565b80632fd689e31161017a5780636d8aa8f8116101495780636d8aa8f8146103de5780636fc3eaec1461040757806370a082311461041e578063715018a61461045b576101e2565b80632fd689e314610334578063313ce5671461035f57806349bd5a5e1461038a5780636b999053146103b5576101e2565b80631694505e116101b65780631694505e1461027857806318160ddd146102a357806323b872dd146102ce5780632f9c45691461030b576101e2565b8062b8cf2a146101e757806306fdde0314610210578063095ea7b31461023b576101e2565b366101e257005b600080fd5b3480156101f357600080fd5b5061020e600480360381019061020991906131c4565b610748565b005b34801561021c57600080fd5b50610225610872565b6040516102329190613644565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d9190613124565b6108af565b60405161026f919061360e565b60405180910390f35b34801561028457600080fd5b5061028d6108cd565b60405161029a9190613629565b60405180910390f35b3480156102af57600080fd5b506102b86108f3565b6040516102c59190613846565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f09190613091565b610902565b604051610302919061360e565b60405180910390f35b34801561031757600080fd5b50610332600480360381019061032d91906130e4565b6109db565b005b34801561034057600080fd5b50610349610b5e565b6040516103569190613846565b60405180910390f35b34801561036b57600080fd5b50610374610b64565b60405161038191906138bb565b60405180910390f35b34801561039657600080fd5b5061039f610b6d565b6040516103ac91906135f3565b60405180910390f35b3480156103c157600080fd5b506103dc60048036038101906103d79190612ff7565b610b93565b005b3480156103ea57600080fd5b506104056004803603810190610400919061320d565b610c83565b005b34801561041357600080fd5b5061041c610d34565b005b34801561042a57600080fd5b5061044560048036038101906104409190612ff7565b610e05565b6040516104529190613846565b60405180910390f35b34801561046757600080fd5b50610470610e56565b005b34801561047e57600080fd5b506104996004803603810190610494919061323a565b610fa9565b005b3480156104a757600080fd5b506104b0611048565b6040516104bd9190613846565b60405180910390f35b3480156104d257600080fd5b506104db61104e565b6040516104e891906135f3565b60405180910390f35b3480156104fd57600080fd5b506105186004803603810190610513919061320d565b611077565b005b34801561052657600080fd5b5061052f611129565b60405161053c9190613846565b60405180910390f35b34801561055157600080fd5b5061055a61112f565b6040516105679190613644565b60405180910390f35b34801561057c57600080fd5b506105976004803603810190610592919061323a565b61116c565b005b3480156105a557600080fd5b506105c060048036038101906105bb9190613267565b61120b565b005b3480156105ce57600080fd5b506105e960048036038101906105e49190613124565b6112c2565b6040516105f6919061360e565b60405180910390f35b34801561060b57600080fd5b5061062660048036038101906106219190612ff7565b6112e0565b604051610633919061360e565b60405180910390f35b34801561064857600080fd5b50610663600480360381019061065e9190612ff7565b611300565b604051610670919061360e565b60405180910390f35b34801561068557600080fd5b5061068e611320565b005b34801561069c57600080fd5b506106b760048036038101906106b29190613164565b6113f9565b005b3480156106c557600080fd5b506106e060048036038101906106db9190613051565b611533565b6040516106ed9190613846565b60405180910390f35b34801561070257600080fd5b5061071d6004803603810190610718919061323a565b6115ba565b005b34801561072b57600080fd5b5061074660048036038101906107419190612ff7565b611659565b005b61075061181b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d4906137a6565b60405180910390fd5b60005b815181101561086e5760016010600084848151811061080257610801613c27565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061086690613b80565b9150506107e0565b5050565b60606040518060400160405280600781526020017f48797065494e5500000000000000000000000000000000000000000000000000815250905090565b60006108c36108bc61181b565b8484611823565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000662386f26fc10000905090565b600061090f8484846119ee565b6109d08461091b61181b565b6109cb856040518060600160405280602881526020016140fe60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061098161181b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123369092919063ffffffff16565b611823565b600190509392505050565b6109e361181b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a67906137a6565b60405180910390fd5b801515601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610b03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afa90613766565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60195481565b60006009905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b9b61181b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1f906137a6565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610c8b61181b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0f906137a6565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d7561181b565b73ffffffffffffffffffffffffffffffffffffffff161480610deb5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dd361181b565b73ffffffffffffffffffffffffffffffffffffffff16145b610df457600080fd5b6000479050610e028161239a565b50565b6000610e4f600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612495565b9050919050565b610e5e61181b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee2906137a6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610fb161181b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461103e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611035906137a6565b60405180910390fd5b8060178190555050565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61107f61181b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461110c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611103906137a6565b60405180910390fd5b80601660146101000a81548160ff02191690831515021790555050565b60185481565b60606040518060400160405280600481526020017f4859504500000000000000000000000000000000000000000000000000000000815250905090565b61117461181b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611201576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f8906137a6565b60405180910390fd5b8060198190555050565b61121361181b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611297906137a6565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b60006112d66112cf61181b565b84846119ee565b6001905092915050565b60116020528060005260406000206000915054906101000a900460ff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661136161181b565b73ffffffffffffffffffffffffffffffffffffffff1614806113d75750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113bf61181b565b73ffffffffffffffffffffffffffffffffffffffff16145b6113e057600080fd5b60006113eb30610e05565b90506113f681612503565b50565b61140161181b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461148e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611485906137a6565b60405180910390fd5b60005b8383905081101561152d5781600560008686858181106114b4576114b3613c27565b5b90506020020160208101906114c99190612ff7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061152590613b80565b915050611491565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115c261181b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461164f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611646906137a6565b60405180910390fd5b8060188190555050565b61166161181b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e5906137a6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561175e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611755906136e6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188a90613826565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fa90613706565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119e19190613846565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a55906137e6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ace576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac590613666565b60405180910390fd5b60008111611b11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b08906137c6565b60405180910390fd5b611b1961104e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b875750611b5761104e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611bdd5750601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c335750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561203557601660149054906101000a900460ff16611cd957601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611cd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccf90613686565b60405180910390fd5b5b601754811115611d1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d15906136c6565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611dc25750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611e01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df890613726565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611eae5760185481611e6384610e05565b611e6d919061397c565b10611ead576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea490613806565b60405180910390fd5b5b6000611eb930610e05565b9050600060195482101590506017548210611ed45760175491505b808015611eee5750601660159054906101000a900460ff16155b8015611f485750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611f5e575060168054906101000a900460ff165b8015611fb45750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561200a5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120325761201882612503565b600047905060008111156120305761202f4761239a565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120dc5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061218f5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561218e5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561219d5760009050612324565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156122485750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561226057600854600c81905550600954600d819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561230b5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561232357600a54600c81905550600b54600d819055505b5b6123308484848461278b565b50505050565b600083831115829061237e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123759190613644565b60405180910390fd5b506000838561238d9190613a5d565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6123ea6002846127b890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612415573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6124666002846127b890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612491573d6000803e3d6000fd5b5050565b60006006548211156124dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d3906136a6565b60405180910390fd5b60006124e6612802565b90506124fb81846127b890919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561253b5761253a613c56565b5b6040519080825280602002602001820160405280156125695781602001602082028036833780820191505090505b509050308160008151811061258157612580613c27565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561262357600080fd5b505afa158015612637573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061265b9190613024565b8160018151811061266f5761266e613c27565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126d630601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611823565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161273a959493929190613861565b600060405180830381600087803b15801561275457600080fd5b505af1158015612768573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b806127995761279861282d565b5b6127a4848484612870565b806127b2576127b1612a3b565b5b50505050565b60006127fa83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a4f565b905092915050565b600080600061280f612ab2565b9150915061282681836127b890919063ffffffff16565b9250505090565b6000600c5414801561284157506000600d54145b1561284b5761286e565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061288287612b0e565b9550955095509550955095506128e086600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b7690919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061297585600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bc090919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129c181612c1e565b6129cb8483612cdb565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612a289190613846565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008083118290612a96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8d9190613644565b60405180910390fd5b5060008385612aa591906139d2565b9050809150509392505050565b600080600060065490506000662386f26fc100009050612ae4662386f26fc100006006546127b890919063ffffffff16565b821015612b0157600654662386f26fc10000935093505050612b0a565b81819350935050505b9091565b6000806000806000806000806000612b2b8a600c54600d54612d15565b9250925092506000612b3b612802565b90506000806000612b4e8e878787612dab565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612bb883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612336565b905092915050565b6000808284612bcf919061397c565b905083811015612c14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0b90613746565b60405180910390fd5b8091505092915050565b6000612c28612802565b90506000612c3f8284612e3490919063ffffffff16565b9050612c9381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bc090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612cf082600654612b7690919063ffffffff16565b600681905550612d0b81600754612bc090919063ffffffff16565b6007819055505050565b600080600080612d416064612d33888a612e3490919063ffffffff16565b6127b890919063ffffffff16565b90506000612d6b6064612d5d888b612e3490919063ffffffff16565b6127b890919063ffffffff16565b90506000612d9482612d86858c612b7690919063ffffffff16565b612b7690919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612dc48589612e3490919063ffffffff16565b90506000612ddb8689612e3490919063ffffffff16565b90506000612df28789612e3490919063ffffffff16565b90506000612e1b82612e0d8587612b7690919063ffffffff16565b612b7690919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612e475760009050612ea9565b60008284612e559190613a03565b9050828482612e6491906139d2565b14612ea4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e9b90613786565b60405180910390fd5b809150505b92915050565b6000612ec2612ebd846138fb565b6138d6565b90508083825260208201905082856020860282011115612ee557612ee4613c8f565b5b60005b85811015612f155781612efb8882612f1f565b845260208401935060208301925050600181019050612ee8565b5050509392505050565b600081359050612f2e816140b8565b92915050565b600081519050612f43816140b8565b92915050565b60008083601f840112612f5f57612f5e613c8a565b5b8235905067ffffffffffffffff811115612f7c57612f7b613c85565b5b602083019150836020820283011115612f9857612f97613c8f565b5b9250929050565b600082601f830112612fb457612fb3613c8a565b5b8135612fc4848260208601612eaf565b91505092915050565b600081359050612fdc816140cf565b92915050565b600081359050612ff1816140e6565b92915050565b60006020828403121561300d5761300c613c99565b5b600061301b84828501612f1f565b91505092915050565b60006020828403121561303a57613039613c99565b5b600061304884828501612f34565b91505092915050565b6000806040838503121561306857613067613c99565b5b600061307685828601612f1f565b925050602061308785828601612f1f565b9150509250929050565b6000806000606084860312156130aa576130a9613c99565b5b60006130b886828701612f1f565b93505060206130c986828701612f1f565b92505060406130da86828701612fe2565b9150509250925092565b600080604083850312156130fb576130fa613c99565b5b600061310985828601612f1f565b925050602061311a85828601612fcd565b9150509250929050565b6000806040838503121561313b5761313a613c99565b5b600061314985828601612f1f565b925050602061315a85828601612fe2565b9150509250929050565b60008060006040848603121561317d5761317c613c99565b5b600084013567ffffffffffffffff81111561319b5761319a613c94565b5b6131a786828701612f49565b935093505060206131ba86828701612fcd565b9150509250925092565b6000602082840312156131da576131d9613c99565b5b600082013567ffffffffffffffff8111156131f8576131f7613c94565b5b61320484828501612f9f565b91505092915050565b60006020828403121561322357613222613c99565b5b600061323184828501612fcd565b91505092915050565b6000602082840312156132505761324f613c99565b5b600061325e84828501612fe2565b91505092915050565b6000806000806080858703121561328157613280613c99565b5b600061328f87828801612fe2565b94505060206132a087828801612fe2565b93505060406132b187828801612fe2565b92505060606132c287828801612fe2565b91505092959194509250565b60006132da83836132e6565b60208301905092915050565b6132ef81613a91565b82525050565b6132fe81613a91565b82525050565b600061330f82613937565b613319818561395a565b935061332483613927565b8060005b8381101561335557815161333c88826132ce565b97506133478361394d565b925050600181019050613328565b5085935050505092915050565b61336b81613aa3565b82525050565b61337a81613ae6565b82525050565b61338981613b0a565b82525050565b600061339a82613942565b6133a4818561396b565b93506133b4818560208601613b1c565b6133bd81613c9e565b840191505092915050565b60006133d560238361396b565b91506133e082613caf565b604082019050919050565b60006133f8603f8361396b565b915061340382613cfe565b604082019050919050565b600061341b602a8361396b565b915061342682613d4d565b604082019050919050565b600061343e601c8361396b565b915061344982613d9c565b602082019050919050565b600061346160268361396b565b915061346c82613dc5565b604082019050919050565b600061348460228361396b565b915061348f82613e14565b604082019050919050565b60006134a760238361396b565b91506134b282613e63565b604082019050919050565b60006134ca601b8361396b565b91506134d582613eb2565b602082019050919050565b60006134ed60178361396b565b91506134f882613edb565b602082019050919050565b600061351060218361396b565b915061351b82613f04565b604082019050919050565b600061353360208361396b565b915061353e82613f53565b602082019050919050565b600061355660298361396b565b915061356182613f7c565b604082019050919050565b600061357960258361396b565b915061358482613fcb565b604082019050919050565b600061359c60238361396b565b91506135a78261401a565b604082019050919050565b60006135bf60248361396b565b91506135ca82614069565b604082019050919050565b6135de81613acf565b82525050565b6135ed81613ad9565b82525050565b600060208201905061360860008301846132f5565b92915050565b60006020820190506136236000830184613362565b92915050565b600060208201905061363e6000830184613371565b92915050565b6000602082019050818103600083015261365e818461338f565b905092915050565b6000602082019050818103600083015261367f816133c8565b9050919050565b6000602082019050818103600083015261369f816133eb565b9050919050565b600060208201905081810360008301526136bf8161340e565b9050919050565b600060208201905081810360008301526136df81613431565b9050919050565b600060208201905081810360008301526136ff81613454565b9050919050565b6000602082019050818103600083015261371f81613477565b9050919050565b6000602082019050818103600083015261373f8161349a565b9050919050565b6000602082019050818103600083015261375f816134bd565b9050919050565b6000602082019050818103600083015261377f816134e0565b9050919050565b6000602082019050818103600083015261379f81613503565b9050919050565b600060208201905081810360008301526137bf81613526565b9050919050565b600060208201905081810360008301526137df81613549565b9050919050565b600060208201905081810360008301526137ff8161356c565b9050919050565b6000602082019050818103600083015261381f8161358f565b9050919050565b6000602082019050818103600083015261383f816135b2565b9050919050565b600060208201905061385b60008301846135d5565b92915050565b600060a08201905061387660008301886135d5565b6138836020830187613380565b81810360408301526138958186613304565b90506138a460608301856132f5565b6138b160808301846135d5565b9695505050505050565b60006020820190506138d060008301846135e4565b92915050565b60006138e06138f1565b90506138ec8282613b4f565b919050565b6000604051905090565b600067ffffffffffffffff82111561391657613915613c56565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061398782613acf565b915061399283613acf565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156139c7576139c6613bc9565b5b828201905092915050565b60006139dd82613acf565b91506139e883613acf565b9250826139f8576139f7613bf8565b5b828204905092915050565b6000613a0e82613acf565b9150613a1983613acf565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613a5257613a51613bc9565b5b828202905092915050565b6000613a6882613acf565b9150613a7383613acf565b925082821015613a8657613a85613bc9565b5b828203905092915050565b6000613a9c82613aaf565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613af182613af8565b9050919050565b6000613b0382613aaf565b9050919050565b6000613b1582613acf565b9050919050565b60005b83811015613b3a578082015181840152602081019050613b1f565b83811115613b49576000848401525b50505050565b613b5882613c9e565b810181811067ffffffffffffffff82111715613b7757613b76613c56565b5b80604052505050565b6000613b8b82613acf565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613bbe57613bbd613bc9565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f544f4b454e3a20416c726561647920656e61626c65642e000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6140c181613a91565b81146140cc57600080fd5b50565b6140d881613aa3565b81146140e357600080fd5b50565b6140ef81613acf565b81146140fa57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d13c74b3dd5a2c300d173d49080f38636495edeb1a94b5c1d4ee7763f99fc52664736f6c63430008050033

Deployed Bytecode

0x6080604052600436106101db5760003560e01c806374010ece11610102578063a9059cbb11610095578063c492f04611610064578063c492f04614610690578063dd62ed3e146106b9578063ea1644d5146106f6578063f2fde38b1461071f576101e2565b8063a9059cbb146105c2578063bdd795ef146105ff578063bfd792841461063c578063c3c8cd8014610679576101e2565b80638f9a55c0116100d15780638f9a55c01461051a57806395d89b411461054557806398a5c31514610570578063a2a957bb14610599576101e2565b806374010ece146104725780637d1db4a51461049b5780638da5cb5b146104c65780638f70ccf7146104f1576101e2565b80632fd689e31161017a5780636d8aa8f8116101495780636d8aa8f8146103de5780636fc3eaec1461040757806370a082311461041e578063715018a61461045b576101e2565b80632fd689e314610334578063313ce5671461035f57806349bd5a5e1461038a5780636b999053146103b5576101e2565b80631694505e116101b65780631694505e1461027857806318160ddd146102a357806323b872dd146102ce5780632f9c45691461030b576101e2565b8062b8cf2a146101e757806306fdde0314610210578063095ea7b31461023b576101e2565b366101e257005b600080fd5b3480156101f357600080fd5b5061020e600480360381019061020991906131c4565b610748565b005b34801561021c57600080fd5b50610225610872565b6040516102329190613644565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d9190613124565b6108af565b60405161026f919061360e565b60405180910390f35b34801561028457600080fd5b5061028d6108cd565b60405161029a9190613629565b60405180910390f35b3480156102af57600080fd5b506102b86108f3565b6040516102c59190613846565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f09190613091565b610902565b604051610302919061360e565b60405180910390f35b34801561031757600080fd5b50610332600480360381019061032d91906130e4565b6109db565b005b34801561034057600080fd5b50610349610b5e565b6040516103569190613846565b60405180910390f35b34801561036b57600080fd5b50610374610b64565b60405161038191906138bb565b60405180910390f35b34801561039657600080fd5b5061039f610b6d565b6040516103ac91906135f3565b60405180910390f35b3480156103c157600080fd5b506103dc60048036038101906103d79190612ff7565b610b93565b005b3480156103ea57600080fd5b506104056004803603810190610400919061320d565b610c83565b005b34801561041357600080fd5b5061041c610d34565b005b34801561042a57600080fd5b5061044560048036038101906104409190612ff7565b610e05565b6040516104529190613846565b60405180910390f35b34801561046757600080fd5b50610470610e56565b005b34801561047e57600080fd5b506104996004803603810190610494919061323a565b610fa9565b005b3480156104a757600080fd5b506104b0611048565b6040516104bd9190613846565b60405180910390f35b3480156104d257600080fd5b506104db61104e565b6040516104e891906135f3565b60405180910390f35b3480156104fd57600080fd5b506105186004803603810190610513919061320d565b611077565b005b34801561052657600080fd5b5061052f611129565b60405161053c9190613846565b60405180910390f35b34801561055157600080fd5b5061055a61112f565b6040516105679190613644565b60405180910390f35b34801561057c57600080fd5b506105976004803603810190610592919061323a565b61116c565b005b3480156105a557600080fd5b506105c060048036038101906105bb9190613267565b61120b565b005b3480156105ce57600080fd5b506105e960048036038101906105e49190613124565b6112c2565b6040516105f6919061360e565b60405180910390f35b34801561060b57600080fd5b5061062660048036038101906106219190612ff7565b6112e0565b604051610633919061360e565b60405180910390f35b34801561064857600080fd5b50610663600480360381019061065e9190612ff7565b611300565b604051610670919061360e565b60405180910390f35b34801561068557600080fd5b5061068e611320565b005b34801561069c57600080fd5b506106b760048036038101906106b29190613164565b6113f9565b005b3480156106c557600080fd5b506106e060048036038101906106db9190613051565b611533565b6040516106ed9190613846565b60405180910390f35b34801561070257600080fd5b5061071d6004803603810190610718919061323a565b6115ba565b005b34801561072b57600080fd5b5061074660048036038101906107419190612ff7565b611659565b005b61075061181b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d4906137a6565b60405180910390fd5b60005b815181101561086e5760016010600084848151811061080257610801613c27565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061086690613b80565b9150506107e0565b5050565b60606040518060400160405280600781526020017f48797065494e5500000000000000000000000000000000000000000000000000815250905090565b60006108c36108bc61181b565b8484611823565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000662386f26fc10000905090565b600061090f8484846119ee565b6109d08461091b61181b565b6109cb856040518060600160405280602881526020016140fe60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061098161181b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123369092919063ffffffff16565b611823565b600190509392505050565b6109e361181b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a67906137a6565b60405180910390fd5b801515601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610b03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afa90613766565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60195481565b60006009905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b9b61181b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1f906137a6565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610c8b61181b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0f906137a6565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d7561181b565b73ffffffffffffffffffffffffffffffffffffffff161480610deb5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dd361181b565b73ffffffffffffffffffffffffffffffffffffffff16145b610df457600080fd5b6000479050610e028161239a565b50565b6000610e4f600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612495565b9050919050565b610e5e61181b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee2906137a6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610fb161181b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461103e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611035906137a6565b60405180910390fd5b8060178190555050565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61107f61181b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461110c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611103906137a6565b60405180910390fd5b80601660146101000a81548160ff02191690831515021790555050565b60185481565b60606040518060400160405280600481526020017f4859504500000000000000000000000000000000000000000000000000000000815250905090565b61117461181b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611201576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f8906137a6565b60405180910390fd5b8060198190555050565b61121361181b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611297906137a6565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b60006112d66112cf61181b565b84846119ee565b6001905092915050565b60116020528060005260406000206000915054906101000a900460ff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661136161181b565b73ffffffffffffffffffffffffffffffffffffffff1614806113d75750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113bf61181b565b73ffffffffffffffffffffffffffffffffffffffff16145b6113e057600080fd5b60006113eb30610e05565b90506113f681612503565b50565b61140161181b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461148e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611485906137a6565b60405180910390fd5b60005b8383905081101561152d5781600560008686858181106114b4576114b3613c27565b5b90506020020160208101906114c99190612ff7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061152590613b80565b915050611491565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115c261181b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461164f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611646906137a6565b60405180910390fd5b8060188190555050565b61166161181b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e5906137a6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561175e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611755906136e6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188a90613826565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fa90613706565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119e19190613846565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a55906137e6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ace576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac590613666565b60405180910390fd5b60008111611b11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b08906137c6565b60405180910390fd5b611b1961104e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b875750611b5761104e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611bdd5750601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c335750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561203557601660149054906101000a900460ff16611cd957601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611cd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccf90613686565b60405180910390fd5b5b601754811115611d1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d15906136c6565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611dc25750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611e01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df890613726565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611eae5760185481611e6384610e05565b611e6d919061397c565b10611ead576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea490613806565b60405180910390fd5b5b6000611eb930610e05565b9050600060195482101590506017548210611ed45760175491505b808015611eee5750601660159054906101000a900460ff16155b8015611f485750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611f5e575060168054906101000a900460ff165b8015611fb45750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561200a5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120325761201882612503565b600047905060008111156120305761202f4761239a565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120dc5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061218f5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561218e5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561219d5760009050612324565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156122485750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561226057600854600c81905550600954600d819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561230b5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561232357600a54600c81905550600b54600d819055505b5b6123308484848461278b565b50505050565b600083831115829061237e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123759190613644565b60405180910390fd5b506000838561238d9190613a5d565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6123ea6002846127b890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612415573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6124666002846127b890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612491573d6000803e3d6000fd5b5050565b60006006548211156124dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d3906136a6565b60405180910390fd5b60006124e6612802565b90506124fb81846127b890919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561253b5761253a613c56565b5b6040519080825280602002602001820160405280156125695781602001602082028036833780820191505090505b509050308160008151811061258157612580613c27565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561262357600080fd5b505afa158015612637573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061265b9190613024565b8160018151811061266f5761266e613c27565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126d630601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611823565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161273a959493929190613861565b600060405180830381600087803b15801561275457600080fd5b505af1158015612768573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b806127995761279861282d565b5b6127a4848484612870565b806127b2576127b1612a3b565b5b50505050565b60006127fa83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a4f565b905092915050565b600080600061280f612ab2565b9150915061282681836127b890919063ffffffff16565b9250505090565b6000600c5414801561284157506000600d54145b1561284b5761286e565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061288287612b0e565b9550955095509550955095506128e086600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b7690919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061297585600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bc090919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129c181612c1e565b6129cb8483612cdb565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612a289190613846565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008083118290612a96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8d9190613644565b60405180910390fd5b5060008385612aa591906139d2565b9050809150509392505050565b600080600060065490506000662386f26fc100009050612ae4662386f26fc100006006546127b890919063ffffffff16565b821015612b0157600654662386f26fc10000935093505050612b0a565b81819350935050505b9091565b6000806000806000806000806000612b2b8a600c54600d54612d15565b9250925092506000612b3b612802565b90506000806000612b4e8e878787612dab565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612bb883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612336565b905092915050565b6000808284612bcf919061397c565b905083811015612c14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0b90613746565b60405180910390fd5b8091505092915050565b6000612c28612802565b90506000612c3f8284612e3490919063ffffffff16565b9050612c9381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bc090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612cf082600654612b7690919063ffffffff16565b600681905550612d0b81600754612bc090919063ffffffff16565b6007819055505050565b600080600080612d416064612d33888a612e3490919063ffffffff16565b6127b890919063ffffffff16565b90506000612d6b6064612d5d888b612e3490919063ffffffff16565b6127b890919063ffffffff16565b90506000612d9482612d86858c612b7690919063ffffffff16565b612b7690919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612dc48589612e3490919063ffffffff16565b90506000612ddb8689612e3490919063ffffffff16565b90506000612df28789612e3490919063ffffffff16565b90506000612e1b82612e0d8587612b7690919063ffffffff16565b612b7690919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612e475760009050612ea9565b60008284612e559190613a03565b9050828482612e6491906139d2565b14612ea4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e9b90613786565b60405180910390fd5b809150505b92915050565b6000612ec2612ebd846138fb565b6138d6565b90508083825260208201905082856020860282011115612ee557612ee4613c8f565b5b60005b85811015612f155781612efb8882612f1f565b845260208401935060208301925050600181019050612ee8565b5050509392505050565b600081359050612f2e816140b8565b92915050565b600081519050612f43816140b8565b92915050565b60008083601f840112612f5f57612f5e613c8a565b5b8235905067ffffffffffffffff811115612f7c57612f7b613c85565b5b602083019150836020820283011115612f9857612f97613c8f565b5b9250929050565b600082601f830112612fb457612fb3613c8a565b5b8135612fc4848260208601612eaf565b91505092915050565b600081359050612fdc816140cf565b92915050565b600081359050612ff1816140e6565b92915050565b60006020828403121561300d5761300c613c99565b5b600061301b84828501612f1f565b91505092915050565b60006020828403121561303a57613039613c99565b5b600061304884828501612f34565b91505092915050565b6000806040838503121561306857613067613c99565b5b600061307685828601612f1f565b925050602061308785828601612f1f565b9150509250929050565b6000806000606084860312156130aa576130a9613c99565b5b60006130b886828701612f1f565b93505060206130c986828701612f1f565b92505060406130da86828701612fe2565b9150509250925092565b600080604083850312156130fb576130fa613c99565b5b600061310985828601612f1f565b925050602061311a85828601612fcd565b9150509250929050565b6000806040838503121561313b5761313a613c99565b5b600061314985828601612f1f565b925050602061315a85828601612fe2565b9150509250929050565b60008060006040848603121561317d5761317c613c99565b5b600084013567ffffffffffffffff81111561319b5761319a613c94565b5b6131a786828701612f49565b935093505060206131ba86828701612fcd565b9150509250925092565b6000602082840312156131da576131d9613c99565b5b600082013567ffffffffffffffff8111156131f8576131f7613c94565b5b61320484828501612f9f565b91505092915050565b60006020828403121561322357613222613c99565b5b600061323184828501612fcd565b91505092915050565b6000602082840312156132505761324f613c99565b5b600061325e84828501612fe2565b91505092915050565b6000806000806080858703121561328157613280613c99565b5b600061328f87828801612fe2565b94505060206132a087828801612fe2565b93505060406132b187828801612fe2565b92505060606132c287828801612fe2565b91505092959194509250565b60006132da83836132e6565b60208301905092915050565b6132ef81613a91565b82525050565b6132fe81613a91565b82525050565b600061330f82613937565b613319818561395a565b935061332483613927565b8060005b8381101561335557815161333c88826132ce565b97506133478361394d565b925050600181019050613328565b5085935050505092915050565b61336b81613aa3565b82525050565b61337a81613ae6565b82525050565b61338981613b0a565b82525050565b600061339a82613942565b6133a4818561396b565b93506133b4818560208601613b1c565b6133bd81613c9e565b840191505092915050565b60006133d560238361396b565b91506133e082613caf565b604082019050919050565b60006133f8603f8361396b565b915061340382613cfe565b604082019050919050565b600061341b602a8361396b565b915061342682613d4d565b604082019050919050565b600061343e601c8361396b565b915061344982613d9c565b602082019050919050565b600061346160268361396b565b915061346c82613dc5565b604082019050919050565b600061348460228361396b565b915061348f82613e14565b604082019050919050565b60006134a760238361396b565b91506134b282613e63565b604082019050919050565b60006134ca601b8361396b565b91506134d582613eb2565b602082019050919050565b60006134ed60178361396b565b91506134f882613edb565b602082019050919050565b600061351060218361396b565b915061351b82613f04565b604082019050919050565b600061353360208361396b565b915061353e82613f53565b602082019050919050565b600061355660298361396b565b915061356182613f7c565b604082019050919050565b600061357960258361396b565b915061358482613fcb565b604082019050919050565b600061359c60238361396b565b91506135a78261401a565b604082019050919050565b60006135bf60248361396b565b91506135ca82614069565b604082019050919050565b6135de81613acf565b82525050565b6135ed81613ad9565b82525050565b600060208201905061360860008301846132f5565b92915050565b60006020820190506136236000830184613362565b92915050565b600060208201905061363e6000830184613371565b92915050565b6000602082019050818103600083015261365e818461338f565b905092915050565b6000602082019050818103600083015261367f816133c8565b9050919050565b6000602082019050818103600083015261369f816133eb565b9050919050565b600060208201905081810360008301526136bf8161340e565b9050919050565b600060208201905081810360008301526136df81613431565b9050919050565b600060208201905081810360008301526136ff81613454565b9050919050565b6000602082019050818103600083015261371f81613477565b9050919050565b6000602082019050818103600083015261373f8161349a565b9050919050565b6000602082019050818103600083015261375f816134bd565b9050919050565b6000602082019050818103600083015261377f816134e0565b9050919050565b6000602082019050818103600083015261379f81613503565b9050919050565b600060208201905081810360008301526137bf81613526565b9050919050565b600060208201905081810360008301526137df81613549565b9050919050565b600060208201905081810360008301526137ff8161356c565b9050919050565b6000602082019050818103600083015261381f8161358f565b9050919050565b6000602082019050818103600083015261383f816135b2565b9050919050565b600060208201905061385b60008301846135d5565b92915050565b600060a08201905061387660008301886135d5565b6138836020830187613380565b81810360408301526138958186613304565b90506138a460608301856132f5565b6138b160808301846135d5565b9695505050505050565b60006020820190506138d060008301846135e4565b92915050565b60006138e06138f1565b90506138ec8282613b4f565b919050565b6000604051905090565b600067ffffffffffffffff82111561391657613915613c56565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061398782613acf565b915061399283613acf565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156139c7576139c6613bc9565b5b828201905092915050565b60006139dd82613acf565b91506139e883613acf565b9250826139f8576139f7613bf8565b5b828204905092915050565b6000613a0e82613acf565b9150613a1983613acf565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613a5257613a51613bc9565b5b828202905092915050565b6000613a6882613acf565b9150613a7383613acf565b925082821015613a8657613a85613bc9565b5b828203905092915050565b6000613a9c82613aaf565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613af182613af8565b9050919050565b6000613b0382613aaf565b9050919050565b6000613b1582613acf565b9050919050565b60005b83811015613b3a578082015181840152602081019050613b1f565b83811115613b49576000848401525b50505050565b613b5882613c9e565b810181811067ffffffffffffffff82111715613b7757613b76613c56565b5b80604052505050565b6000613b8b82613acf565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613bbe57613bbd613bc9565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f544f4b454e3a20416c726561647920656e61626c65642e000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6140c181613a91565b81146140cc57600080fd5b50565b6140d881613aa3565b81146140e357600080fd5b50565b6140ef81613acf565b81146140fa57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d13c74b3dd5a2c300d173d49080f38636495edeb1a94b5c1d4ee7763f99fc52664736f6c63430008050033

Deployed Bytecode Sourcemap

4122:14326:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13368:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6987:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7912:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5585:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7264:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8113:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18249:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5898:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7173:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5633:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13545:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17617:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13125:235;;;;;;;;;;;;;:::i;:::-;;7367:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1601:148;;;;;;;;;;;;;:::i;:::-;;17763:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5783:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1387:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12772:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5840:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7078:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17422:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17069:301;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7513:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5267:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5224:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12881:236;;;;;;;;;;;;;:::i;:::-;;18006:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7720:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17883:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1761:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13368:169;1524:12;:10;:12::i;:::-;1514:22;;:6;;;;;;;;;;:22;;;1506:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13444:9:::1;13439:91;13463:5;:12;13459:1;:16;13439:91;;;13514:4;13497;:14;13502:5;13508:1;13502:8;;;;;;;;:::i;:::-;;;;;;;;13497:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13477:3;;;;;:::i;:::-;;;;13439:91;;;;13368:169:::0;:::o;6987:83::-;7024:13;7057:5;;;;;;;;;;;;;;;;;7050:12;;6987:83;:::o;7912:193::-;8014:4;8036:39;8045:12;:10;:12::i;:::-;8059:7;8068:6;8036:8;:39::i;:::-;8093:4;8086:11;;7912:193;;;;:::o;5585:41::-;;;;;;;;;;;;;:::o;7264:95::-;7317:7;4671:16;7337:14;;7264:95;:::o;8113:446::-;8245:4;8262:36;8272:6;8280:9;8291:6;8262:9;:36::i;:::-;8309:220;8332:6;8353:12;:10;:12::i;:::-;8380:138;8436:6;8380:138;;;;;;;;;;;;;;;;;:11;:19;8392:6;8380:19;;;;;;;;;;;;;;;:33;8400:12;:10;:12::i;:::-;8380:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8309:8;:220::i;:::-;8547:4;8540:11;;8113:446;;;;;:::o;18249:196::-;1524:12;:10;:12::i;:::-;1514:22;;:6;;;;;;;;;;:22;;;1506:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18363:7:::1;18341:29;;:9;:18;18351:7;18341:18;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;;18333:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;18430:7;18409:9;:18;18419:7;18409:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;18249:196:::0;;:::o;5898:50::-;;;;:::o;7173:83::-;7214:5;4345:1;7232:16;;7173:83;:::o;5633:28::-;;;;;;;;;;;;;:::o;13545:92::-;1524:12;:10;:12::i;:::-;1514:22;;:6;;;;;;;;;;:22;;;1506:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13624:5:::1;13609:4;:12;13614:6;13609:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13545:92:::0;:::o;17617:101::-;1524:12;:10;:12::i;:::-;1514:22;;:6;;;;;;;;;;:22;;;1506:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17698:12:::1;17684:11;::::0;:26:::1;;;;;;;;;;;;;;;;;;17617:101:::0;:::o;13125:235::-;13191:19;;;;;;;;;;;13175:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;13230:17;;;;;;;;;;;13214:33;;:12;:10;:12::i;:::-;:33;;;13175:72;13167:81;;;;;;13259:26;13288:21;13259:50;;13320:32;13333:18;13320:12;:32::i;:::-;13156:204;13125:235::o;7367:138::-;7433:7;7460:37;7480:7;:16;7488:7;7480:16;;;;;;;;;;;;;;;;7460:19;:37::i;:::-;7453:44;;7367:138;;;:::o;1601:148::-;1524:12;:10;:12::i;:::-;1514:22;;:6;;;;;;;;;;:22;;;1506:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1708:1:::1;1671:40;;1692:6;::::0;::::1;;;;;;;;1671:40;;;;;;;;;;;;1739:1;1722:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1601:148::o:0;17763:108::-;1524:12;:10;:12::i;:::-;1514:22;;:6;;;;;;;;;;:22;;;1506:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17852:11:::1;17837:12;:26;;;;17763:108:::0;:::o;5783:43::-;;;;:::o;1387:79::-;1425:7;1452:6;;;;;;;;;;;1445:13;;1387:79;:::o;12772:101::-;1524:12;:10;:12::i;:::-;1514:22;;:6;;;;;;;;;;:22;;;1506:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12853:12:::1;12839:11;;:26;;;;;;;;;;;;;;;;;;12772:101:::0;:::o;5840:46::-;;;;:::o;7078:87::-;7117:13;7150:7;;;;;;;;;;;;;;;;;7143:14;;7078:87;:::o;17422:139::-;1524:12;:10;:12::i;:::-;1514:22;;:6;;;;;;;;;;:22;;;1506:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17535:18:::1;17513:19;:40;;;;17422:139:::0;:::o;17069:301::-;1524:12;:10;:12::i;:::-;1514:22;;:6;;;;;;;;;;:22;;;1506:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17220:13:::1;17203:14;:30;;;;17262:14;17244:15;:32;;;;17312:11;17297:12;:26;;;;17350:12;17334:13;:28;;;;17069:301:::0;;;;:::o;7513:199::-;7618:4;7640:42;7650:12;:10;:12::i;:::-;7664:9;7675:6;7640:9;:42::i;:::-;7700:4;7693:11;;7513:199;;;;:::o;5267:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;5224:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12881:236::-;12947:19;;;;;;;;;;;12931:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12986:17;;;;;;;;;;;12970:33;;:12;:10;:12::i;:::-;:33;;;12931:72;12923:81;;;;;;13015:23;13041:24;13059:4;13041:9;:24::i;:::-;13015:50;;13076:33;13093:15;13076:16;:33::i;:::-;12912:205;12881:236::o;18006:234::-;1524:12;:10;:12::i;:::-;1514:22;;:6;;;;;;;;;;:22;;;1506:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18123:9:::1;18119:114;18142:8;;:15;;18138:1;:19;18119:114;;;18213:8;18179:18;:31;18198:8;;18207:1;18198:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18179:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;18159:3;;;;;:::i;:::-;;;;18119:114;;;;18006:234:::0;;;:::o;7720:184::-;7837:7;7869:11;:18;7881:5;7869:18;;;;;;;;;;;;;;;:27;7888:7;7869:27;;;;;;;;;;;;;;;;7862:34;;7720:184;;;;:::o;17883:115::-;1524:12;:10;:12::i;:::-;1514:22;;:6;;;;;;;;;;:22;;;1506:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17977:13:::1;17960:14;:30;;;;17883:115:::0;:::o;1761:244::-;1524:12;:10;:12::i;:::-;1514:22;;:6;;;;;;;;;;:22;;;1506:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1870:1:::1;1850:22;;:8;:22;;;;1842:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1960:8;1931:38;;1952:6;::::0;::::1;;;;;;;;1931:38;;;;;;;;;;;;1989:8;1980:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1761:244:::0;:::o;146:98::-;199:7;226:10;219:17;;146:98;:::o;9262:369::-;9406:1;9389:19;;:5;:19;;;;9381:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9487:1;9468:21;;:7;:21;;;;9460:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9569:6;9539:11;:18;9551:5;9539:18;;;;;;;;;;;;;;;:27;9558:7;9539:27;;;;;;;;;;;;;;;:36;;;;9607:7;9591:32;;9600:5;9591:32;;;9616:6;9591:32;;;;;;:::i;:::-;;;;;;;;9262:369;;;:::o;9639:2466::-;9777:1;9761:18;;:4;:18;;;;9753:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9854:1;9840:16;;:2;:16;;;;9832:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9924:1;9915:6;:10;9907:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9996:7;:5;:7::i;:::-;9988:15;;:4;:15;;;;:32;;;;;10013:7;:5;:7::i;:::-;10007:13;;:2;:13;;;;9988:32;:52;;;;;10025:9;:15;10035:4;10025:15;;;;;;;;;;;;;;;;;;;;;;;;;10024:16;9988:52;:70;;;;;10045:9;:13;10055:2;10045:13;;;;;;;;;;;;;;;;;;;;;;;;;10044:14;9988:70;9984:1359;;;10127:11;;;;;;;;;;;10122:144;;10167:9;:15;10177:4;10167:15;;;;;;;;;;;;;;;;;;;;;;;;;10159:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10122:144;10314:12;;10304:6;:22;;10296:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10383:4;:10;10388:4;10383:10;;;;;;;;;;;;;;;;;;;;;;;;;10382:11;:24;;;;;10398:4;:8;10403:2;10398:8;;;;;;;;;;;;;;;;;;;;;;;;;10397:9;10382:24;10374:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10484:13;;;;;;;;;;;10478:19;;:2;:19;;;10475:146;;10551:14;;10542:6;10526:13;10536:2;10526:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10518:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10475:146;10649:28;10680:24;10698:4;10680:9;:24::i;:::-;10649:55;;10719:12;10758:19;;10734:20;:43;;10719:58;;10821:12;;10797:20;:36;10794:124;;10890:12;;10867:35;;10794:124;10950:7;:18;;;;;10962:6;;;;;;;;;;;10961:7;10950:18;:43;;;;;10980:13;;;;;;;;;;;10972:21;;:4;:21;;;;10950:43;:58;;;;;10997:11;;;;;;;;;;10950:58;:87;;;;;11013:18;:24;11032:4;11013:24;;;;;;;;;;;;;;;;;;;;;;;;;11012:25;10950:87;:114;;;;;11042:18;:22;11061:2;11042:22;;;;;;;;;;;;;;;;;;;;;;;;;11041:23;10950:114;10946:386;;;11085:38;11102:20;11085:16;:38::i;:::-;11142:26;11171:21;11142:50;;11236:1;11215:18;:22;11211:106;;;11262:35;11275:21;11262:12;:35::i;:::-;11211:106;11066:266;10946:386;10060:1283;;9984:1359;11363:12;11378:4;11363:19;;11427:18;:24;11446:4;11427:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11455:18;:22;11474:2;11455:22;;;;;;;;;;;;;;;;;;;;;;;;;11427:50;11426:102;;;;11491:13;;;;;;;;;;;11483:21;;:4;:21;;;;:44;;;;;11514:13;;;;;;;;;;;11508:19;;:2;:19;;;;11483:44;11426:102;11422:622;;;11555:5;11545:15;;11422:622;;;11650:13;;;;;;;;;;;11642:21;;:4;:21;;;:55;;;;;11681:15;;;;;;;;;;;11667:30;;:2;:30;;;;11642:55;11639:162;;;11730:14;;11718:9;:26;;;;11773:12;;11763:7;:22;;;;11639:162;11864:13;;;;;;;;;;;11858:19;;:2;:19;;;:55;;;;;11897:15;;;;;;;;;;;11881:32;;:4;:32;;;;11858:55;11854:165;;;11946:15;;11934:9;:27;;;;11990:13;;11980:7;:23;;;;11854:165;11422:622;12056:41;12071:4;12077:2;12081:6;12089:7;12056:14;:41::i;:::-;9742:2363;9639:2466;;;:::o;2373:224::-;2493:7;2526:1;2521;:6;;2529:12;2513:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2553:9;2569:1;2565;:5;;;;:::i;:::-;2553:17;;2588:1;2581:8;;;2373:224;;;;;:::o;12604:160::-;12661:19;;;;;;;;;;;:28;;:43;12690:13;12701:1;12690:6;:10;;:13;;;;:::i;:::-;12661:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12715:17;;;;;;;;;;;:26;;:41;12742:13;12753:1;12742:6;:10;;:13;;;;:::i;:::-;12715:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12604:160;:::o;8567:323::-;8662:7;8720;;8709;:18;;8687:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8808:19;8830:10;:8;:10::i;:::-;8808:32;;8858:24;8870:11;8858:7;:11;;:24;;;;:::i;:::-;8851:31;;;8567:323;;;:::o;12113:483::-;6058:4;6049:6;;:13;;;;;;;;;;;;;;;;;;12191:21:::1;12229:1;12215:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12191:40;;12260:4;12242;12247:1;12242:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12286:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12276:4;12281:1;12276:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12319:62;12336:4;12351:15;;;;;;;;;;;12369:11;12319:8;:62::i;:::-;12392:15;;;;;;;;;;;:66;;;12473:11;12499:1;12515:4;12542;12562:15;12392:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12180:416;6094:5:::0;6085:6;;:14;;;;;;;;;;;;;;;;;;12113:483;:::o;13645:282::-;13801:7;13796:28;;13810:14;:12;:14::i;:::-;13796:28;13835:44;13853:6;13861:9;13872:6;13835:17;:44::i;:::-;13895:7;13890:29;;13904:15;:13;:15::i;:::-;13890:29;13645:282;;;;:::o;2859:132::-;2917:7;2944:39;2948:1;2951;2944:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2937:46;;2859:132;;;;:::o;16620:166::-;16662:7;16683:15;16700;16719:19;:17;:19::i;:::-;16682:56;;;;16758:20;16770:7;16758;:11;;:20;;;;:::i;:::-;16751:27;;;;16620:166;:::o;8898:231::-;8958:1;8945:9;;:14;:30;;;;;8974:1;8963:7;;:12;8945:30;8941:43;;;8977:7;;8941:43;9020:9;;9000:17;:29;;;;9058:7;;9040:15;:25;;;;9098:1;9086:9;:13;;;;9120:1;9110:7;:11;;;;8898:231;:::o;13935:610::-;14082:15;14112:23;14150:12;14177:23;14215:12;14242:13;14269:19;14280:7;14269:10;:19::i;:::-;14067:221;;;;;;;;;;;;14317:28;14337:7;14317;:15;14325:6;14317:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14299:7;:15;14307:6;14299:15;;;;;;;;;;;;;;;:46;;;;14377:39;14400:15;14377:7;:18;14385:9;14377:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14356:7;:18;14364:9;14356:18;;;;;;;;;;;;;;;:60;;;;14427:16;14437:5;14427:9;:16::i;:::-;14454:23;14466:4;14472;14454:11;:23::i;:::-;14510:9;14493:44;;14502:6;14493:44;;;14521:15;14493:44;;;;;;:::i;:::-;;;;;;;;14056:489;;;;;;13935:610;;;:::o;9137:117::-;9193:17;;9181:9;:29;;;;9231:15;;9221:7;:25;;;;9137:117::o;2999:223::-;3119:7;3151:1;3147;:5;3154:12;3139:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3178:9;3194:1;3190;:5;;;;:::i;:::-;3178:17;;3213:1;3206:8;;;2999:223;;;;;:::o;16794:263::-;16845:7;16854;16874:15;16892:7;;16874:25;;16910:15;4671:16;16910:25;;16960:20;4671:16;16960:7;;:11;;:20;;;;:::i;:::-;16950:7;:30;16946:61;;;16990:7;;4671:16;16982:25;;;;;;;;16946:61;17032:7;17041;17024:25;;;;;;16794:263;;;:::o;14964:625::-;15064:7;15086;15108;15130;15152;15174;15210:23;15235:12;15249:13;15279:40;15291:7;15300:9;;15311:7;;15279:11;:40::i;:::-;15209:110;;;;;;15330:19;15352:10;:8;:10::i;:::-;15330:32;;15374:15;15391:23;15416:12;15445:46;15457:7;15466:4;15472:5;15479:11;15445;:46::i;:::-;15373:118;;;;;;15520:7;15529:15;15546:4;15552:15;15569:4;15575:5;15512:69;;;;;;;;;;;;;;;;;;;14964:625;;;;;;;:::o;2229:136::-;2287:7;2314:43;2318:1;2321;2314:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2307:50;;2229:136;;;;:::o;2042:179::-;2100:7;2120:9;2136:1;2132;:5;;;;:::i;:::-;2120:17;;2161:1;2156;:6;;2148:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2212:1;2205:8;;;2042:179;;;;:::o;14553:211::-;14606:19;14628:10;:8;:10::i;:::-;14606:32;;14649:13;14665:22;14675:11;14665:5;:9;;:22;;;;:::i;:::-;14649:38;;14723:33;14750:5;14723:7;:22;14739:4;14723:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14698:7;:22;14714:4;14698:22;;;;;;;;;;;;;;;:58;;;;14595:169;;14553:211;:::o;14772:147::-;14850:17;14862:4;14850:7;;:11;;:17;;;;:::i;:::-;14840:7;:27;;;;14891:20;14906:4;14891:10;;:14;;:20;;;;:::i;:::-;14878:10;:33;;;;14772:147;;:::o;15597:471::-;15766:7;15788;15810;15845:12;15860:30;15886:3;15860:21;15872:8;15860:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15845:45;;15901:13;15917:28;15941:3;15917:19;15929:6;15917:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15901:44;;15956:23;15982:28;16004:5;15982:17;15994:4;15982:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15956:54;;16031:15;16048:4;16054:5;16023:37;;;;;;;;;15597:471;;;;;;;:::o;16076:536::-;16270:7;16292;16314;16349:15;16367:24;16379:11;16367:7;:11;;:24;;;;:::i;:::-;16349:42;;16402:12;16417:21;16426:11;16417:4;:8;;:21;;;;:::i;:::-;16402:36;;16449:13;16465:22;16475:11;16465:5;:9;;:22;;;;:::i;:::-;16449:38;;16498:23;16524:28;16546:5;16524:17;16536:4;16524:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16498:54;;16573:7;16582:15;16599:4;16565:39;;;;;;;;;;16076:536;;;;;;;;:::o;2605:246::-;2663:7;2692:1;2687;:6;2683:47;;;2717:1;2710:8;;;;2683:47;2740:9;2756:1;2752;:5;;;;:::i;:::-;2740:17;;2785:1;2780;2776;:5;;;;:::i;:::-;:10;2768:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2842:1;2835:8;;;2605:246;;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;404:79;;:::i;:::-;350:2;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;804:87;;;;:::o;897:143::-;954:5;985:6;979:13;970:22;;1001:33;1028:5;1001:33;:::i;:::-;960:80;;;;:::o;1063:568::-;1136:8;1146:6;1196:3;1189:4;1181:6;1177:17;1173:27;1163:2;;1204:79;;:::i;:::-;1163:2;1317:6;1304:20;1294:30;;1347:18;1339:6;1336:30;1333:2;;;1369:79;;:::i;:::-;1333:2;1483:4;1475:6;1471:17;1459:29;;1537:3;1529:4;1521:6;1517:17;1507:8;1503:32;1500:41;1497:2;;;1544:79;;:::i;:::-;1497:2;1153:478;;;;;:::o;1654:370::-;1725:5;1774:3;1767:4;1759:6;1755:17;1751:27;1741:2;;1782:79;;:::i;:::-;1741:2;1899:6;1886:20;1924:94;2014:3;2006:6;1999:4;1991:6;1987:17;1924:94;:::i;:::-;1915:103;;1731:293;;;;;:::o;2030:133::-;2073:5;2111:6;2098:20;2089:29;;2127:30;2151:5;2127:30;:::i;:::-;2079:84;;;;:::o;2169:139::-;2215:5;2253:6;2240:20;2231:29;;2269:33;2296:5;2269:33;:::i;:::-;2221:87;;;;:::o;2314:329::-;2373:6;2422:2;2410:9;2401:7;2397:23;2393:32;2390:2;;;2428:79;;:::i;:::-;2390:2;2548:1;2573:53;2618:7;2609:6;2598:9;2594:22;2573:53;:::i;:::-;2563:63;;2519:117;2380:263;;;;:::o;2649:351::-;2719:6;2768:2;2756:9;2747:7;2743:23;2739:32;2736:2;;;2774:79;;:::i;:::-;2736:2;2894:1;2919:64;2975:7;2966:6;2955:9;2951:22;2919:64;:::i;:::-;2909:74;;2865:128;2726:274;;;;:::o;3006:474::-;3074:6;3082;3131:2;3119:9;3110:7;3106:23;3102:32;3099:2;;;3137:79;;:::i;:::-;3099:2;3257:1;3282:53;3327:7;3318:6;3307:9;3303:22;3282:53;:::i;:::-;3272:63;;3228:117;3384:2;3410:53;3455:7;3446:6;3435:9;3431:22;3410:53;:::i;:::-;3400:63;;3355:118;3089:391;;;;;:::o;3486:619::-;3563:6;3571;3579;3628:2;3616:9;3607:7;3603:23;3599:32;3596:2;;;3634:79;;:::i;:::-;3596:2;3754:1;3779:53;3824:7;3815:6;3804:9;3800:22;3779:53;:::i;:::-;3769:63;;3725:117;3881:2;3907:53;3952:7;3943:6;3932:9;3928:22;3907:53;:::i;:::-;3897:63;;3852:118;4009:2;4035:53;4080:7;4071:6;4060:9;4056:22;4035:53;:::i;:::-;4025:63;;3980:118;3586:519;;;;;:::o;4111:468::-;4176:6;4184;4233:2;4221:9;4212:7;4208:23;4204:32;4201:2;;;4239:79;;:::i;:::-;4201:2;4359:1;4384:53;4429:7;4420:6;4409:9;4405:22;4384:53;:::i;:::-;4374:63;;4330:117;4486:2;4512:50;4554:7;4545:6;4534:9;4530:22;4512:50;:::i;:::-;4502:60;;4457:115;4191:388;;;;;:::o;4585:474::-;4653:6;4661;4710:2;4698:9;4689:7;4685:23;4681:32;4678:2;;;4716:79;;:::i;:::-;4678:2;4836:1;4861:53;4906:7;4897:6;4886:9;4882:22;4861:53;:::i;:::-;4851:63;;4807:117;4963:2;4989:53;5034:7;5025:6;5014:9;5010:22;4989:53;:::i;:::-;4979:63;;4934:118;4668:391;;;;;:::o;5065:698::-;5157:6;5165;5173;5222:2;5210:9;5201:7;5197:23;5193:32;5190:2;;;5228:79;;:::i;:::-;5190:2;5376:1;5365:9;5361:17;5348:31;5406:18;5398:6;5395:30;5392:2;;;5428:79;;:::i;:::-;5392:2;5541:80;5613:7;5604:6;5593:9;5589:22;5541:80;:::i;:::-;5523:98;;;;5319:312;5670:2;5696:50;5738:7;5729:6;5718:9;5714:22;5696:50;:::i;:::-;5686:60;;5641:115;5180:583;;;;;:::o;5769:539::-;5853:6;5902:2;5890:9;5881:7;5877:23;5873:32;5870:2;;;5908:79;;:::i;:::-;5870:2;6056:1;6045:9;6041:17;6028:31;6086:18;6078:6;6075:30;6072:2;;;6108:79;;:::i;:::-;6072:2;6213:78;6283:7;6274:6;6263:9;6259:22;6213:78;:::i;:::-;6203:88;;5999:302;5860:448;;;;:::o;6314:323::-;6370:6;6419:2;6407:9;6398:7;6394:23;6390:32;6387:2;;;6425:79;;:::i;:::-;6387:2;6545:1;6570:50;6612:7;6603:6;6592:9;6588:22;6570:50;:::i;:::-;6560:60;;6516:114;6377:260;;;;:::o;6643:329::-;6702:6;6751:2;6739:9;6730:7;6726:23;6722:32;6719:2;;;6757:79;;:::i;:::-;6719:2;6877:1;6902:53;6947:7;6938:6;6927:9;6923:22;6902:53;:::i;:::-;6892:63;;6848:117;6709:263;;;;:::o;6978:765::-;7064:6;7072;7080;7088;7137:3;7125:9;7116:7;7112:23;7108:33;7105:2;;;7144:79;;:::i;:::-;7105:2;7264:1;7289:53;7334:7;7325:6;7314:9;7310:22;7289:53;:::i;:::-;7279:63;;7235:117;7391:2;7417:53;7462:7;7453:6;7442:9;7438:22;7417:53;:::i;:::-;7407:63;;7362:118;7519:2;7545:53;7590:7;7581:6;7570:9;7566:22;7545:53;:::i;:::-;7535:63;;7490:118;7647:2;7673:53;7718:7;7709:6;7698:9;7694:22;7673:53;:::i;:::-;7663:63;;7618:118;7095:648;;;;;;;:::o;7749:179::-;7818:10;7839:46;7881:3;7873:6;7839:46;:::i;:::-;7917:4;7912:3;7908:14;7894:28;;7829:99;;;;:::o;7934:108::-;8011:24;8029:5;8011:24;:::i;:::-;8006:3;7999:37;7989:53;;:::o;8048:118::-;8135:24;8153:5;8135:24;:::i;:::-;8130:3;8123:37;8113:53;;:::o;8202:732::-;8321:3;8350:54;8398:5;8350:54;:::i;:::-;8420:86;8499:6;8494:3;8420:86;:::i;:::-;8413:93;;8530:56;8580:5;8530:56;:::i;:::-;8609:7;8640:1;8625:284;8650:6;8647:1;8644:13;8625:284;;;8726:6;8720:13;8753:63;8812:3;8797:13;8753:63;:::i;:::-;8746:70;;8839:60;8892:6;8839:60;:::i;:::-;8829:70;;8685:224;8672:1;8669;8665:9;8660:14;;8625:284;;;8629:14;8925:3;8918:10;;8326:608;;;;;;;:::o;8940:109::-;9021:21;9036:5;9021:21;:::i;:::-;9016:3;9009:34;8999:50;;:::o;9055:183::-;9168:63;9225:5;9168:63;:::i;:::-;9163:3;9156:76;9146:92;;:::o;9244:147::-;9339:45;9378:5;9339:45;:::i;:::-;9334:3;9327:58;9317:74;;:::o;9397:364::-;9485:3;9513:39;9546:5;9513:39;:::i;:::-;9568:71;9632:6;9627:3;9568:71;:::i;:::-;9561:78;;9648:52;9693:6;9688:3;9681:4;9674:5;9670:16;9648:52;:::i;:::-;9725:29;9747:6;9725:29;:::i;:::-;9720:3;9716:39;9709:46;;9489:272;;;;;:::o;9767:366::-;9909:3;9930:67;9994:2;9989:3;9930:67;:::i;:::-;9923:74;;10006:93;10095:3;10006:93;:::i;:::-;10124:2;10119:3;10115:12;10108:19;;9913:220;;;:::o;10139:366::-;10281:3;10302:67;10366:2;10361:3;10302:67;:::i;:::-;10295:74;;10378:93;10467:3;10378:93;:::i;:::-;10496:2;10491:3;10487:12;10480:19;;10285:220;;;:::o;10511:366::-;10653:3;10674:67;10738:2;10733:3;10674:67;:::i;:::-;10667:74;;10750:93;10839:3;10750:93;:::i;:::-;10868:2;10863:3;10859:12;10852:19;;10657:220;;;:::o;10883:366::-;11025:3;11046:67;11110:2;11105:3;11046:67;:::i;:::-;11039:74;;11122:93;11211:3;11122:93;:::i;:::-;11240:2;11235:3;11231:12;11224:19;;11029:220;;;:::o;11255:366::-;11397:3;11418:67;11482:2;11477:3;11418:67;:::i;:::-;11411:74;;11494:93;11583:3;11494:93;:::i;:::-;11612:2;11607:3;11603:12;11596:19;;11401:220;;;:::o;11627:366::-;11769:3;11790:67;11854:2;11849:3;11790:67;:::i;:::-;11783:74;;11866:93;11955:3;11866:93;:::i;:::-;11984:2;11979:3;11975:12;11968:19;;11773:220;;;:::o;11999:366::-;12141:3;12162:67;12226:2;12221:3;12162:67;:::i;:::-;12155:74;;12238:93;12327:3;12238:93;:::i;:::-;12356:2;12351:3;12347:12;12340:19;;12145:220;;;:::o;12371:366::-;12513:3;12534:67;12598:2;12593:3;12534:67;:::i;:::-;12527:74;;12610:93;12699:3;12610:93;:::i;:::-;12728:2;12723:3;12719:12;12712:19;;12517:220;;;:::o;12743:366::-;12885:3;12906:67;12970:2;12965:3;12906:67;:::i;:::-;12899:74;;12982:93;13071:3;12982:93;:::i;:::-;13100:2;13095:3;13091:12;13084:19;;12889:220;;;:::o;13115:366::-;13257:3;13278:67;13342:2;13337:3;13278:67;:::i;:::-;13271:74;;13354:93;13443:3;13354:93;:::i;:::-;13472:2;13467:3;13463:12;13456:19;;13261:220;;;:::o;13487:366::-;13629:3;13650:67;13714:2;13709:3;13650:67;:::i;:::-;13643:74;;13726:93;13815:3;13726:93;:::i;:::-;13844:2;13839:3;13835:12;13828:19;;13633:220;;;:::o;13859:366::-;14001:3;14022:67;14086:2;14081:3;14022:67;:::i;:::-;14015:74;;14098:93;14187:3;14098:93;:::i;:::-;14216:2;14211:3;14207:12;14200:19;;14005:220;;;:::o;14231:366::-;14373:3;14394:67;14458:2;14453:3;14394:67;:::i;:::-;14387:74;;14470:93;14559:3;14470:93;:::i;:::-;14588:2;14583:3;14579:12;14572:19;;14377:220;;;:::o;14603:366::-;14745:3;14766:67;14830:2;14825:3;14766:67;:::i;:::-;14759:74;;14842:93;14931:3;14842:93;:::i;:::-;14960:2;14955:3;14951:12;14944:19;;14749:220;;;:::o;14975:366::-;15117:3;15138:67;15202:2;15197:3;15138:67;:::i;:::-;15131:74;;15214:93;15303:3;15214:93;:::i;:::-;15332:2;15327:3;15323:12;15316:19;;15121:220;;;:::o;15347:118::-;15434:24;15452:5;15434:24;:::i;:::-;15429:3;15422:37;15412:53;;:::o;15471:112::-;15554:22;15570:5;15554:22;:::i;:::-;15549:3;15542:35;15532:51;;:::o;15589:222::-;15682:4;15720:2;15709:9;15705:18;15697:26;;15733:71;15801:1;15790:9;15786:17;15777:6;15733:71;:::i;:::-;15687:124;;;;:::o;15817:210::-;15904:4;15942:2;15931:9;15927:18;15919:26;;15955:65;16017:1;16006:9;16002:17;15993:6;15955:65;:::i;:::-;15909:118;;;;:::o;16033:274::-;16152:4;16190:2;16179:9;16175:18;16167:26;;16203:97;16297:1;16286:9;16282:17;16273:6;16203:97;:::i;:::-;16157:150;;;;:::o;16313:313::-;16426:4;16464:2;16453:9;16449:18;16441:26;;16513:9;16507:4;16503:20;16499:1;16488:9;16484:17;16477:47;16541:78;16614:4;16605:6;16541:78;:::i;:::-;16533:86;;16431:195;;;;:::o;16632:419::-;16798:4;16836:2;16825:9;16821:18;16813:26;;16885:9;16879:4;16875:20;16871:1;16860:9;16856:17;16849:47;16913:131;17039:4;16913:131;:::i;:::-;16905:139;;16803:248;;;:::o;17057:419::-;17223:4;17261:2;17250:9;17246:18;17238:26;;17310:9;17304:4;17300:20;17296:1;17285:9;17281:17;17274:47;17338:131;17464:4;17338:131;:::i;:::-;17330:139;;17228:248;;;:::o;17482:419::-;17648:4;17686:2;17675:9;17671:18;17663:26;;17735:9;17729:4;17725:20;17721:1;17710:9;17706:17;17699:47;17763:131;17889:4;17763:131;:::i;:::-;17755:139;;17653:248;;;:::o;17907:419::-;18073:4;18111:2;18100:9;18096:18;18088:26;;18160:9;18154:4;18150:20;18146:1;18135:9;18131:17;18124:47;18188:131;18314:4;18188:131;:::i;:::-;18180:139;;18078:248;;;:::o;18332:419::-;18498:4;18536:2;18525:9;18521:18;18513:26;;18585:9;18579:4;18575:20;18571:1;18560:9;18556:17;18549:47;18613:131;18739:4;18613:131;:::i;:::-;18605:139;;18503:248;;;:::o;18757:419::-;18923:4;18961:2;18950:9;18946:18;18938:26;;19010:9;19004:4;19000:20;18996:1;18985:9;18981:17;18974:47;19038:131;19164:4;19038:131;:::i;:::-;19030:139;;18928:248;;;:::o;19182:419::-;19348:4;19386:2;19375:9;19371:18;19363:26;;19435:9;19429:4;19425:20;19421:1;19410:9;19406:17;19399:47;19463:131;19589:4;19463:131;:::i;:::-;19455:139;;19353:248;;;:::o;19607:419::-;19773:4;19811:2;19800:9;19796:18;19788:26;;19860:9;19854:4;19850:20;19846:1;19835:9;19831:17;19824:47;19888:131;20014:4;19888:131;:::i;:::-;19880:139;;19778:248;;;:::o;20032:419::-;20198:4;20236:2;20225:9;20221:18;20213:26;;20285:9;20279:4;20275:20;20271:1;20260:9;20256:17;20249:47;20313:131;20439:4;20313:131;:::i;:::-;20305:139;;20203:248;;;:::o;20457:419::-;20623:4;20661:2;20650:9;20646:18;20638:26;;20710:9;20704:4;20700:20;20696:1;20685:9;20681:17;20674:47;20738:131;20864:4;20738:131;:::i;:::-;20730:139;;20628:248;;;:::o;20882:419::-;21048:4;21086:2;21075:9;21071:18;21063:26;;21135:9;21129:4;21125:20;21121:1;21110:9;21106:17;21099:47;21163:131;21289:4;21163:131;:::i;:::-;21155:139;;21053:248;;;:::o;21307:419::-;21473:4;21511:2;21500:9;21496:18;21488:26;;21560:9;21554:4;21550:20;21546:1;21535:9;21531:17;21524:47;21588:131;21714:4;21588:131;:::i;:::-;21580:139;;21478:248;;;:::o;21732:419::-;21898:4;21936:2;21925:9;21921:18;21913:26;;21985:9;21979:4;21975:20;21971:1;21960:9;21956:17;21949:47;22013:131;22139:4;22013:131;:::i;:::-;22005:139;;21903:248;;;:::o;22157:419::-;22323:4;22361:2;22350:9;22346:18;22338:26;;22410:9;22404:4;22400:20;22396:1;22385:9;22381:17;22374:47;22438:131;22564:4;22438:131;:::i;:::-;22430:139;;22328:248;;;:::o;22582:419::-;22748:4;22786:2;22775:9;22771:18;22763:26;;22835:9;22829:4;22825:20;22821:1;22810:9;22806:17;22799:47;22863:131;22989:4;22863:131;:::i;:::-;22855:139;;22753:248;;;:::o;23007:222::-;23100:4;23138:2;23127:9;23123:18;23115:26;;23151:71;23219:1;23208:9;23204:17;23195:6;23151:71;:::i;:::-;23105:124;;;;:::o;23235:831::-;23498:4;23536:3;23525:9;23521:19;23513:27;;23550:71;23618:1;23607:9;23603:17;23594:6;23550:71;:::i;:::-;23631:80;23707:2;23696:9;23692:18;23683:6;23631:80;:::i;:::-;23758:9;23752:4;23748:20;23743:2;23732:9;23728:18;23721:48;23786:108;23889:4;23880:6;23786:108;:::i;:::-;23778:116;;23904:72;23972:2;23961:9;23957:18;23948:6;23904:72;:::i;:::-;23986:73;24054:3;24043:9;24039:19;24030:6;23986:73;:::i;:::-;23503:563;;;;;;;;:::o;24072:214::-;24161:4;24199:2;24188:9;24184:18;24176:26;;24212:67;24276:1;24265:9;24261:17;24252:6;24212:67;:::i;:::-;24166:120;;;;:::o;24292:129::-;24326:6;24353:20;;:::i;:::-;24343:30;;24382:33;24410:4;24402:6;24382:33;:::i;:::-;24333:88;;;:::o;24427:75::-;24460:6;24493:2;24487:9;24477:19;;24467:35;:::o;24508:311::-;24585:4;24675:18;24667:6;24664:30;24661:2;;;24697:18;;:::i;:::-;24661:2;24747:4;24739:6;24735:17;24727:25;;24807:4;24801;24797:15;24789:23;;24590:229;;;:::o;24825:132::-;24892:4;24915:3;24907:11;;24945:4;24940:3;24936:14;24928:22;;24897:60;;;:::o;24963:114::-;25030:6;25064:5;25058:12;25048:22;;25037:40;;;:::o;25083:99::-;25135:6;25169:5;25163:12;25153:22;;25142:40;;;:::o;25188:113::-;25258:4;25290;25285:3;25281:14;25273:22;;25263:38;;;:::o;25307:184::-;25406:11;25440:6;25435:3;25428:19;25480:4;25475:3;25471:14;25456:29;;25418:73;;;;:::o;25497:169::-;25581:11;25615:6;25610:3;25603:19;25655:4;25650:3;25646:14;25631:29;;25593:73;;;;:::o;25672:305::-;25712:3;25731:20;25749:1;25731:20;:::i;:::-;25726:25;;25765:20;25783:1;25765:20;:::i;:::-;25760:25;;25919:1;25851:66;25847:74;25844:1;25841:81;25838:2;;;25925:18;;:::i;:::-;25838:2;25969:1;25966;25962:9;25955:16;;25716:261;;;;:::o;25983:185::-;26023:1;26040:20;26058:1;26040:20;:::i;:::-;26035:25;;26074:20;26092:1;26074:20;:::i;:::-;26069:25;;26113:1;26103:2;;26118:18;;:::i;:::-;26103:2;26160:1;26157;26153:9;26148:14;;26025:143;;;;:::o;26174:348::-;26214:7;26237:20;26255:1;26237:20;:::i;:::-;26232:25;;26271:20;26289:1;26271:20;:::i;:::-;26266:25;;26459:1;26391:66;26387:74;26384:1;26381:81;26376:1;26369:9;26362:17;26358:105;26355:2;;;26466:18;;:::i;:::-;26355:2;26514:1;26511;26507:9;26496:20;;26222:300;;;;:::o;26528:191::-;26568:4;26588:20;26606:1;26588:20;:::i;:::-;26583:25;;26622:20;26640:1;26622:20;:::i;:::-;26617:25;;26661:1;26658;26655:8;26652:2;;;26666:18;;:::i;:::-;26652:2;26711:1;26708;26704:9;26696:17;;26573:146;;;;:::o;26725:96::-;26762:7;26791:24;26809:5;26791:24;:::i;:::-;26780:35;;26770:51;;;:::o;26827:90::-;26861:7;26904:5;26897:13;26890:21;26879:32;;26869:48;;;:::o;26923:126::-;26960:7;27000:42;26993:5;26989:54;26978:65;;26968:81;;;:::o;27055:77::-;27092:7;27121:5;27110:16;;27100:32;;;:::o;27138:86::-;27173:7;27213:4;27206:5;27202:16;27191:27;;27181:43;;;:::o;27230:178::-;27306:9;27339:63;27396:5;27339:63;:::i;:::-;27326:76;;27316:92;;;:::o;27414:139::-;27490:9;27523:24;27541:5;27523:24;:::i;:::-;27510:37;;27500:53;;;:::o;27559:121::-;27617:9;27650:24;27668:5;27650:24;:::i;:::-;27637:37;;27627:53;;;:::o;27686:307::-;27754:1;27764:113;27778:6;27775:1;27772:13;27764:113;;;27863:1;27858:3;27854:11;27848:18;27844:1;27839:3;27835:11;27828:39;27800:2;27797:1;27793:10;27788:15;;27764:113;;;27895:6;27892:1;27889:13;27886:2;;;27975:1;27966:6;27961:3;27957:16;27950:27;27886:2;27735:258;;;;:::o;27999:281::-;28082:27;28104:4;28082:27;:::i;:::-;28074:6;28070:40;28212:6;28200:10;28197:22;28176:18;28164:10;28161:34;28158:62;28155:2;;;28223:18;;:::i;:::-;28155:2;28263:10;28259:2;28252:22;28042:238;;;:::o;28286:233::-;28325:3;28348:24;28366:5;28348:24;:::i;:::-;28339:33;;28394:66;28387:5;28384:77;28381:2;;;28464:18;;:::i;:::-;28381:2;28511:1;28504:5;28500:13;28493:20;;28329:190;;;:::o;28525:180::-;28573:77;28570:1;28563:88;28670:4;28667:1;28660:15;28694:4;28691:1;28684:15;28711:180;28759:77;28756:1;28749:88;28856:4;28853:1;28846:15;28880:4;28877:1;28870:15;28897:180;28945:77;28942:1;28935:88;29042:4;29039:1;29032:15;29066:4;29063:1;29056:15;29083:180;29131:77;29128:1;29121:88;29228:4;29225:1;29218:15;29252:4;29249:1;29242:15;29269:117;29378:1;29375;29368:12;29392:117;29501:1;29498;29491:12;29515:117;29624:1;29621;29614:12;29638:117;29747:1;29744;29737:12;29761:117;29870:1;29867;29860:12;29884:102;29925:6;29976:2;29972:7;29967:2;29960:5;29956:14;29952:28;29942:38;;29932:54;;;:::o;29992:222::-;30132:34;30128:1;30120:6;30116:14;30109:58;30201:5;30196:2;30188:6;30184:15;30177:30;30098:116;:::o;30220:250::-;30360:34;30356:1;30348:6;30344:14;30337:58;30429:33;30424:2;30416:6;30412:15;30405:58;30326:144;:::o;30476:229::-;30616:34;30612:1;30604:6;30600:14;30593:58;30685:12;30680:2;30672:6;30668:15;30661:37;30582:123;:::o;30711:178::-;30851:30;30847:1;30839:6;30835:14;30828:54;30817:72;:::o;30895:225::-;31035:34;31031:1;31023:6;31019:14;31012:58;31104:8;31099:2;31091:6;31087:15;31080:33;31001:119;:::o;31126:221::-;31266:34;31262:1;31254:6;31250:14;31243:58;31335:4;31330:2;31322:6;31318:15;31311:29;31232:115;:::o;31353:222::-;31493:34;31489:1;31481:6;31477:14;31470:58;31562:5;31557:2;31549:6;31545:15;31538:30;31459:116;:::o;31581:177::-;31721:29;31717:1;31709:6;31705:14;31698:53;31687:71;:::o;31764:173::-;31904:25;31900:1;31892:6;31888:14;31881:49;31870:67;:::o;31943:220::-;32083:34;32079:1;32071:6;32067:14;32060:58;32152:3;32147:2;32139:6;32135:15;32128:28;32049:114;:::o;32169:182::-;32309:34;32305:1;32297:6;32293:14;32286:58;32275:76;:::o;32357:228::-;32497:34;32493:1;32485:6;32481:14;32474:58;32566:11;32561:2;32553:6;32549:15;32542:36;32463:122;:::o;32591:224::-;32731:34;32727:1;32719:6;32715:14;32708:58;32800:7;32795:2;32787:6;32783:15;32776:32;32697:118;:::o;32821:222::-;32961:34;32957:1;32949:6;32945:14;32938:58;33030:5;33025:2;33017:6;33013:15;33006:30;32927:116;:::o;33049:223::-;33189:34;33185:1;33177:6;33173:14;33166:58;33258:6;33253:2;33245:6;33241:15;33234:31;33155:117;:::o;33278:122::-;33351:24;33369:5;33351:24;:::i;:::-;33344:5;33341:35;33331:2;;33390:1;33387;33380:12;33331:2;33321:79;:::o;33406:116::-;33476:21;33491:5;33476:21;:::i;:::-;33469:5;33466:32;33456:2;;33512:1;33509;33502:12;33456:2;33446:76;:::o;33528:122::-;33601:24;33619:5;33601:24;:::i;:::-;33594:5;33591:35;33581:2;;33640:1;33637;33630:12;33581:2;33571:79;:::o

Swarm Source

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