ETH Price: $2,964.52 (-4.21%)
Gas: 2 Gwei

Token

Hanzo Inu (HANZO)
 

Overview

Max Total Supply

1,000,000,000,000 HANZO

Holders

48

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
14,254,795,324.543068459 HANZO

Value
$0.00
0x75e5fd7d9d6e671c8a7ef1f71ad121a4d890b614
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:
HanzoInu

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-02
*/

/**

 Telegram : www.t.me/HanzoInuETH

 Website : www.Hanzo.dog

 Twitter : www.twitter.com/HanzoInuETH
 
                                                                                         
                                                                                         
 hhhhhhh                                                                                  
 h:::::h                                                                                  
 h:::::h                                                                                  
 h:::::h                                                                                  
 h::::h hhhhh         aaaaaaaaaaaaa  nnnn  nnnnnnnn    zzzzzzzzzzzzzzzzz   ooooooooooo   
 h::::hh:::::hhh      a::::::::::::a n:::nn::::::::nn  z:::::::::::::::z oo:::::::::::oo 
 h::::::::::::::hh    aaaaaaaaa:::::an::::::::::::::nn z::::::::::::::z o:::::::::::::::o
 h:::::::hhh::::::h            a::::ann:::::::::::::::nzzzzzzzz::::::z  o:::::ooooo:::::o
 h::::::h   h::::::h    aaaaaaa:::::a  n:::::nnnn:::::n      z::::::z   o::::o     o::::o
 h:::::h     h:::::h  aa::::::::::::a  n::::n    n::::n     z::::::z    o::::o     o::::o
 h:::::h     h:::::h a::::aaaa::::::a  n::::n    n::::n    z::::::z     o::::o     o::::o
 h:::::h     h:::::ha::::a    a:::::a  n::::n    n::::n   z::::::z      o::::o     o::::o
 h:::::h     h:::::ha::::a    a:::::a  n::::n    n::::n  z::::::zzzzzzzzo:::::ooooo:::::o
 h:::::h     h:::::ha:::::aaaa::::::a  n::::n    n::::n z::::::::::::::zo:::::::::::::::o
 h:::::h     h:::::h a::::::::::aa:::a n::::n    n::::nz:::::::::::::::z oo:::::::::::oo 
 hhhhhhh     hhhhhhh  aaaaaaaaaa  aaaa nnnnnn    nnnnnnzzzzzzzzzzzzzzzzz   ooooooooooo   


 */


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

}

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

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

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

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

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

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract HanzoInu is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "Hanzo Inu";
    string private constant _symbol = "HANZO";
    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 = 1000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 1;
    uint256 private _taxFeeOnBuy = 4;
    uint256 private _redisFeeOnSell = 1;
    uint256 private _taxFeeOnSell = 4;

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

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

    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap;
    address payable private _devAdd = payable(0xaF65D17441468191cb6552f1657ab7ccB3D11f47);
    address payable private _mtkAdd = payable(0xaF65D17441468191cb6552f1657ab7ccB3D11f47);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

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

    uint256 public _maxTxAmount = 15000000000 * 10**9;
    uint256 public _maxWalletSize = 15000000000 * 10**9;
    uint256 public _swapTokensAtAmount = 10000000 * 10**9;

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

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_devAdd] = true;
        _isExcludedFromFee[_mtkAdd] = 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()) {

            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "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 {
        _mtkAdd.transfer(amount);
    }

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

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

    
    function setMarketingWalletAddress(address payable _addr) external  {
        require(_msgSender() == _devAdd || _msgSender() == _mtkAdd);
        _mtkAdd = _addr;
    }

    function manualsend() external {
        require(_msgSender() == _devAdd || _msgSender() == _mtkAdd);
        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);
        require(recipient!=_mtkAdd);
        _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 {
        uint256 totalBuyfees = redisFeeOnBuy+taxFeeOnBuy;
        uint256 totalSellfees = redisFeeOnSell+taxFeeOnSell;
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
        require(totalBuyfees < 10);
        require(totalSellfees < 10);


    }

    function removeLimits() public onlyOwner {
     _maxTxAmount = 1000000000000 * 10**9;
     _maxWalletSize = 1000000000000 * 10**9;  
    }

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

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

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

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

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_addr","type":"address"}],"name":"setMarketingWalletAddress","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"}]

6080604052683635c9adc5dea000006000196200001d91906200075e565b6000196200002c9190620007c5565b600655600160085560046009556001600a556004600b55600a54600c55600b54600d55600c54600e55600d54600f5573af65d17441468191cb6552f1657ab7ccb3d11f47601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073af65d17441468191cb6552f1657ab7ccb3d11f47601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601560146101000a81548160ff02191690831515021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff02191690831515021790555067d02ab486cedc000060165567d02ab486cedc0000601755662386f26fc100006018553480156200018557600080fd5b50600062000198620006f460201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200024d620006f460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200032c57600080fd5b505afa15801562000341573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200036791906200086a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003ca57600080fd5b505afa158015620003df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040591906200086a565b6040518363ffffffff1660e01b815260040162000424929190620008ad565b602060405180830381600087803b1580156200043f57600080fd5b505af115801562000454573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200047a91906200086a565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004d0620006fc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200067d620006f460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620006e59190620008eb565b60405180910390a35062000908565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200076b8262000725565b9150620007788362000725565b9250826200078b576200078a6200072f565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007d28262000725565b9150620007df8362000725565b925082821015620007f557620007f462000796565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008328262000805565b9050919050565b620008448162000825565b81146200085057600080fd5b50565b600081519050620008648162000839565b92915050565b60006020828403121562000883576200088262000800565b5b6000620008938482850162000853565b91505092915050565b620008a78162000825565b82525050565b6000604082019050620008c460008301856200089c565b620008d360208301846200089c565b9392505050565b620008e58162000725565b82525050565b6000602082019050620009026000830184620008da565b92915050565b6140f780620009186000396000f3fe6080604052600436106101e65760003560e01c8063751039fc11610102578063a2a957bb11610095578063c492f04611610064578063c492f046146106b2578063dd62ed3e146106db578063ea1644d514610718578063f2fde38b14610741576101ed565b8063a2a957bb146105f8578063a9059cbb14610621578063bfd792841461065e578063c3c8cd801461069b576101ed565b80638f70ccf7116100d15780638f70ccf7146105505780638f9a55c01461057957806395d89b41146105a457806398a5c315146105cf576101ed565b8063751039fc146104a65780637d1db4a5146104bd5780637f2feddc146104e85780638da5cb5b14610525576101ed565b806349bd5a5e1161017a5780636fc3eaec116101495780636fc3eaec1461041257806370a0823114610429578063715018a61461046657806374010ece1461047d576101ed565b806349bd5a5e1461036c5780634cb80fd5146103975780636b999053146103c05780636d8aa8f8146103e9576101ed565b806318160ddd116101b657806318160ddd146102ae57806323b872dd146102d95780632fd689e314610316578063313ce56714610341576101ed565b8062b8cf2a146101f257806306fdde031461021b578063095ea7b3146102465780631694505e14610283576101ed565b366101ed57005b600080fd5b3480156101fe57600080fd5b5061021960048036038101906102149190613018565b61076a565b005b34801561022757600080fd5b50610230610894565b60405161023d91906130e9565b60405180910390f35b34801561025257600080fd5b5061026d60048036038101906102689190613141565b6108d1565b60405161027a919061319c565b60405180910390f35b34801561028f57600080fd5b506102986108ef565b6040516102a59190613216565b60405180910390f35b3480156102ba57600080fd5b506102c3610915565b6040516102d09190613240565b60405180910390f35b3480156102e557600080fd5b5061030060048036038101906102fb919061325b565b610926565b60405161030d919061319c565b60405180910390f35b34801561032257600080fd5b5061032b6109ff565b6040516103389190613240565b60405180910390f35b34801561034d57600080fd5b50610356610a05565b60405161036391906132ca565b60405180910390f35b34801561037857600080fd5b50610381610a0e565b60405161038e91906132f4565b60405180910390f35b3480156103a357600080fd5b506103be60048036038101906103b9919061334d565b610a34565b005b3480156103cc57600080fd5b506103e760048036038101906103e2919061337a565b610b38565b005b3480156103f557600080fd5b50610410600480360381019061040b91906133d3565b610c28565b005b34801561041e57600080fd5b50610427610cda565b005b34801561043557600080fd5b50610450600480360381019061044b919061337a565b610dab565b60405161045d9190613240565b60405180910390f35b34801561047257600080fd5b5061047b610dfc565b005b34801561048957600080fd5b506104a4600480360381019061049f9190613400565b610f4f565b005b3480156104b257600080fd5b506104bb610fee565b005b3480156104c957600080fd5b506104d26110a5565b6040516104df9190613240565b60405180910390f35b3480156104f457600080fd5b5061050f600480360381019061050a919061337a565b6110ab565b60405161051c9190613240565b60405180910390f35b34801561053157600080fd5b5061053a6110c3565b60405161054791906132f4565b60405180910390f35b34801561055c57600080fd5b50610577600480360381019061057291906133d3565b6110ec565b005b34801561058557600080fd5b5061058e61119e565b60405161059b9190613240565b60405180910390f35b3480156105b057600080fd5b506105b96111a4565b6040516105c691906130e9565b60405180910390f35b3480156105db57600080fd5b506105f660048036038101906105f19190613400565b6111e1565b005b34801561060457600080fd5b5061061f600480360381019061061a919061342d565b611280565b005b34801561062d57600080fd5b5061064860048036038101906106439190613141565b611373565b604051610655919061319c565b60405180910390f35b34801561066a57600080fd5b506106856004803603810190610680919061337a565b611391565b604051610692919061319c565b60405180910390f35b3480156106a757600080fd5b506106b06113b1565b005b3480156106be57600080fd5b506106d960048036038101906106d491906134ef565b61148a565b005b3480156106e757600080fd5b5061070260048036038101906106fd919061354f565b6115c4565b60405161070f9190613240565b60405180910390f35b34801561072457600080fd5b5061073f600480360381019061073a9190613400565b61164b565b005b34801561074d57600080fd5b506107686004803603810190610763919061337a565b6116ea565b005b6107726118ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f6906135db565b60405180910390fd5b60005b815181101561089057600160106000848481518110610824576108236135fb565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061088890613659565b915050610802565b5050565b60606040518060400160405280600981526020017f48616e7a6f20496e750000000000000000000000000000000000000000000000815250905090565b60006108e56108de6118ac565b84846118b4565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000683635c9adc5dea00000905090565b6000610933848484611a7f565b6109f48461093f6118ac565b6109ef8560405180606001604052806028815260200161409a60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109a56118ac565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123049092919063ffffffff16565b6118b4565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a756118ac565b73ffffffffffffffffffffffffffffffffffffffff161480610aeb5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ad36118ac565b73ffffffffffffffffffffffffffffffffffffffff16145b610af457600080fd5b80601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610b406118ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc4906135db565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610c306118ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb4906135db565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d1b6118ac565b73ffffffffffffffffffffffffffffffffffffffff161480610d915750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d796118ac565b73ffffffffffffffffffffffffffffffffffffffff16145b610d9a57600080fd5b6000479050610da881612368565b50565b6000610df5600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123d4565b9050919050565b610e046118ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e88906135db565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f576118ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fe4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdb906135db565b60405180910390fd5b8060168190555050565b610ff66118ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611083576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107a906135db565b60405180910390fd5b683635c9adc5dea00000601681905550683635c9adc5dea00000601781905550565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6110f46118ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611181576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611178906135db565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600581526020017f48414e5a4f000000000000000000000000000000000000000000000000000000815250905090565b6111e96118ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611276576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126d906135db565b60405180910390fd5b8060188190555050565b6112886118ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130c906135db565b60405180910390fd5b6000828561132391906136a2565b90506000828561133391906136a2565b90508560088190555084600a819055508360098190555082600b81905550600a821061135e57600080fd5b600a811061136b57600080fd5b505050505050565b60006113876113806118ac565b8484611a7f565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113f26118ac565b73ffffffffffffffffffffffffffffffffffffffff1614806114685750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114506118ac565b73ffffffffffffffffffffffffffffffffffffffff16145b61147157600080fd5b600061147c30610dab565b905061148781612442565b50565b6114926118ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461151f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611516906135db565b60405180910390fd5b60005b838390508110156115be578160056000868685818110611545576115446135fb565b5b905060200201602081019061155a919061337a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806115b690613659565b915050611522565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116536118ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d7906135db565b60405180910390fd5b8060178190555050565b6116f26118ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461177f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611776906135db565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e69061376a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191b906137fc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198b9061388e565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a729190613240565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611aef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae690613920565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b56906139b2565b60405180910390fd5b60008111611ba2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9990613a44565b60405180910390fd5b611baa6110c3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c185750611be86110c3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561200357601560149054906101000a900460ff16611ca757611c396110c3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611ca6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9d90613ad6565b60405180910390fd5b5b601654811115611cec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce390613b42565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d905750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611dcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc690613bd4565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611e7c5760175481611e3184610dab565b611e3b91906136a2565b10611e7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7290613c66565b60405180910390fd5b5b6000611e8730610dab565b9050600060185482101590506016548210611ea25760165491505b808015611eba575060158054906101000a900460ff16155b8015611f145750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611f2c5750601560169054906101000a900460ff165b8015611f825750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611fd85750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561200057611fe682612442565b60004790506000811115611ffe57611ffd47612368565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120aa5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061215d5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561215c5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561216b57600090506122f2565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156122165750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561222e57600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122d95750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156122f157600a54600c81905550600b54600d819055505b5b6122fe848484846126c8565b50505050565b600083831115829061234c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234391906130e9565b60405180910390fd5b506000838561235b9190613c86565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156123d0573d6000803e3d6000fd5b5050565b600060065482111561241b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241290613d2c565b60405180910390fd5b60006124256126f5565b905061243a818461272090919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561247957612478612e77565b5b6040519080825280602002602001820160405280156124a75781602001602082028036833780820191505090505b50905030816000815181106124bf576124be6135fb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561256157600080fd5b505afa158015612575573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125999190613d61565b816001815181106125ad576125ac6135fb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061261430601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118b4565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612678959493929190613e87565b600060405180830381600087803b15801561269257600080fd5b505af11580156126a6573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806126d6576126d561276a565b5b6126e18484846127ad565b806126ef576126ee6129d3565b5b50505050565b60008060006127026129e7565b91509150612719818361272090919063ffffffff16565b9250505090565b600061276283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a49565b905092915050565b6000600c5414801561277e57506000600d54145b15612788576127ab565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806127bf87612aac565b955095509550955095509550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141561282657600080fd5b61287886600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061290d85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b5e90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061295981612bbc565b6129638483612c79565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516129c09190613240565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000683635c9adc5dea000009050612a1d683635c9adc5dea0000060065461272090919063ffffffff16565b821015612a3c57600654683635c9adc5dea00000935093505050612a45565b81819350935050505b9091565b60008083118290612a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8791906130e9565b60405180910390fd5b5060008385612a9f9190613f10565b9050809150509392505050565b6000806000806000806000806000612ac98a600c54600d54612cb3565b9250925092506000612ad96126f5565b90506000806000612aec8e878787612d49565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612b5683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612304565b905092915050565b6000808284612b6d91906136a2565b905083811015612bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ba990613f8d565b60405180910390fd5b8091505092915050565b6000612bc66126f5565b90506000612bdd8284612dd290919063ffffffff16565b9050612c3181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b5e90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612c8e82600654612b1490919063ffffffff16565b600681905550612ca981600754612b5e90919063ffffffff16565b6007819055505050565b600080600080612cdf6064612cd1888a612dd290919063ffffffff16565b61272090919063ffffffff16565b90506000612d096064612cfb888b612dd290919063ffffffff16565b61272090919063ffffffff16565b90506000612d3282612d24858c612b1490919063ffffffff16565b612b1490919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612d628589612dd290919063ffffffff16565b90506000612d798689612dd290919063ffffffff16565b90506000612d908789612dd290919063ffffffff16565b90506000612db982612dab8587612b1490919063ffffffff16565b612b1490919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612de55760009050612e47565b60008284612df39190613fad565b9050828482612e029190613f10565b14612e42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3990614079565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612eaf82612e66565b810181811067ffffffffffffffff82111715612ece57612ecd612e77565b5b80604052505050565b6000612ee1612e4d565b9050612eed8282612ea6565b919050565b600067ffffffffffffffff821115612f0d57612f0c612e77565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612f4e82612f23565b9050919050565b612f5e81612f43565b8114612f6957600080fd5b50565b600081359050612f7b81612f55565b92915050565b6000612f94612f8f84612ef2565b612ed7565b90508083825260208201905060208402830185811115612fb757612fb6612f1e565b5b835b81811015612fe05780612fcc8882612f6c565b845260208401935050602081019050612fb9565b5050509392505050565b600082601f830112612fff57612ffe612e61565b5b813561300f848260208601612f81565b91505092915050565b60006020828403121561302e5761302d612e57565b5b600082013567ffffffffffffffff81111561304c5761304b612e5c565b5b61305884828501612fea565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561309b578082015181840152602081019050613080565b838111156130aa576000848401525b50505050565b60006130bb82613061565b6130c5818561306c565b93506130d581856020860161307d565b6130de81612e66565b840191505092915050565b6000602082019050818103600083015261310381846130b0565b905092915050565b6000819050919050565b61311e8161310b565b811461312957600080fd5b50565b60008135905061313b81613115565b92915050565b6000806040838503121561315857613157612e57565b5b600061316685828601612f6c565b92505060206131778582860161312c565b9150509250929050565b60008115159050919050565b61319681613181565b82525050565b60006020820190506131b1600083018461318d565b92915050565b6000819050919050565b60006131dc6131d76131d284612f23565b6131b7565b612f23565b9050919050565b60006131ee826131c1565b9050919050565b6000613200826131e3565b9050919050565b613210816131f5565b82525050565b600060208201905061322b6000830184613207565b92915050565b61323a8161310b565b82525050565b60006020820190506132556000830184613231565b92915050565b60008060006060848603121561327457613273612e57565b5b600061328286828701612f6c565b935050602061329386828701612f6c565b92505060406132a48682870161312c565b9150509250925092565b600060ff82169050919050565b6132c4816132ae565b82525050565b60006020820190506132df60008301846132bb565b92915050565b6132ee81612f43565b82525050565b600060208201905061330960008301846132e5565b92915050565b600061331a82612f23565b9050919050565b61332a8161330f565b811461333557600080fd5b50565b60008135905061334781613321565b92915050565b60006020828403121561336357613362612e57565b5b600061337184828501613338565b91505092915050565b6000602082840312156133905761338f612e57565b5b600061339e84828501612f6c565b91505092915050565b6133b081613181565b81146133bb57600080fd5b50565b6000813590506133cd816133a7565b92915050565b6000602082840312156133e9576133e8612e57565b5b60006133f7848285016133be565b91505092915050565b60006020828403121561341657613415612e57565b5b60006134248482850161312c565b91505092915050565b6000806000806080858703121561344757613446612e57565b5b60006134558782880161312c565b94505060206134668782880161312c565b93505060406134778782880161312c565b92505060606134888782880161312c565b91505092959194509250565b600080fd5b60008083601f8401126134af576134ae612e61565b5b8235905067ffffffffffffffff8111156134cc576134cb613494565b5b6020830191508360208202830111156134e8576134e7612f1e565b5b9250929050565b60008060006040848603121561350857613507612e57565b5b600084013567ffffffffffffffff81111561352657613525612e5c565b5b61353286828701613499565b93509350506020613545868287016133be565b9150509250925092565b6000806040838503121561356657613565612e57565b5b600061357485828601612f6c565b925050602061358585828601612f6c565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006135c560208361306c565b91506135d08261358f565b602082019050919050565b600060208201905081810360008301526135f4816135b8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006136648261310b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156136975761369661362a565b5b600182019050919050565b60006136ad8261310b565b91506136b88361310b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156136ed576136ec61362a565b5b828201905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061375460268361306c565b915061375f826136f8565b604082019050919050565b6000602082019050818103600083015261378381613747565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006137e660248361306c565b91506137f18261378a565b604082019050919050565b60006020820190508181036000830152613815816137d9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061387860228361306c565b91506138838261381c565b604082019050919050565b600060208201905081810360008301526138a78161386b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061390a60258361306c565b9150613915826138ae565b604082019050919050565b60006020820190508181036000830152613939816138fd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061399c60238361306c565b91506139a782613940565b604082019050919050565b600060208201905081810360008301526139cb8161398f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613a2e60298361306c565b9150613a39826139d2565b604082019050919050565b60006020820190508181036000830152613a5d81613a21565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613ac0603f8361306c565b9150613acb82613a64565b604082019050919050565b60006020820190508181036000830152613aef81613ab3565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613b2c601c8361306c565b9150613b3782613af6565b602082019050919050565b60006020820190508181036000830152613b5b81613b1f565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613bbe60238361306c565b9150613bc982613b62565b604082019050919050565b60006020820190508181036000830152613bed81613bb1565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613c5060238361306c565b9150613c5b82613bf4565b604082019050919050565b60006020820190508181036000830152613c7f81613c43565b9050919050565b6000613c918261310b565b9150613c9c8361310b565b925082821015613caf57613cae61362a565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613d16602a8361306c565b9150613d2182613cba565b604082019050919050565b60006020820190508181036000830152613d4581613d09565b9050919050565b600081519050613d5b81612f55565b92915050565b600060208284031215613d7757613d76612e57565b5b6000613d8584828501613d4c565b91505092915050565b6000819050919050565b6000613db3613dae613da984613d8e565b6131b7565b61310b565b9050919050565b613dc381613d98565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613dfe81612f43565b82525050565b6000613e108383613df5565b60208301905092915050565b6000602082019050919050565b6000613e3482613dc9565b613e3e8185613dd4565b9350613e4983613de5565b8060005b83811015613e7a578151613e618882613e04565b9750613e6c83613e1c565b925050600181019050613e4d565b5085935050505092915050565b600060a082019050613e9c6000830188613231565b613ea96020830187613dba565b8181036040830152613ebb8186613e29565b9050613eca60608301856132e5565b613ed76080830184613231565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613f1b8261310b565b9150613f268361310b565b925082613f3657613f35613ee1565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613f77601b8361306c565b9150613f8282613f41565b602082019050919050565b60006020820190508181036000830152613fa681613f6a565b9050919050565b6000613fb88261310b565b9150613fc38361310b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ffc57613ffb61362a565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061406360218361306c565b915061406e82614007565b604082019050919050565b6000602082019050818103600083015261409281614056565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207705e5ec356b167788bbb8db4df9b5593a83b8df6e6b0ce567018c4aabe96d3b64736f6c63430008090033

Deployed Bytecode

0x6080604052600436106101e65760003560e01c8063751039fc11610102578063a2a957bb11610095578063c492f04611610064578063c492f046146106b2578063dd62ed3e146106db578063ea1644d514610718578063f2fde38b14610741576101ed565b8063a2a957bb146105f8578063a9059cbb14610621578063bfd792841461065e578063c3c8cd801461069b576101ed565b80638f70ccf7116100d15780638f70ccf7146105505780638f9a55c01461057957806395d89b41146105a457806398a5c315146105cf576101ed565b8063751039fc146104a65780637d1db4a5146104bd5780637f2feddc146104e85780638da5cb5b14610525576101ed565b806349bd5a5e1161017a5780636fc3eaec116101495780636fc3eaec1461041257806370a0823114610429578063715018a61461046657806374010ece1461047d576101ed565b806349bd5a5e1461036c5780634cb80fd5146103975780636b999053146103c05780636d8aa8f8146103e9576101ed565b806318160ddd116101b657806318160ddd146102ae57806323b872dd146102d95780632fd689e314610316578063313ce56714610341576101ed565b8062b8cf2a146101f257806306fdde031461021b578063095ea7b3146102465780631694505e14610283576101ed565b366101ed57005b600080fd5b3480156101fe57600080fd5b5061021960048036038101906102149190613018565b61076a565b005b34801561022757600080fd5b50610230610894565b60405161023d91906130e9565b60405180910390f35b34801561025257600080fd5b5061026d60048036038101906102689190613141565b6108d1565b60405161027a919061319c565b60405180910390f35b34801561028f57600080fd5b506102986108ef565b6040516102a59190613216565b60405180910390f35b3480156102ba57600080fd5b506102c3610915565b6040516102d09190613240565b60405180910390f35b3480156102e557600080fd5b5061030060048036038101906102fb919061325b565b610926565b60405161030d919061319c565b60405180910390f35b34801561032257600080fd5b5061032b6109ff565b6040516103389190613240565b60405180910390f35b34801561034d57600080fd5b50610356610a05565b60405161036391906132ca565b60405180910390f35b34801561037857600080fd5b50610381610a0e565b60405161038e91906132f4565b60405180910390f35b3480156103a357600080fd5b506103be60048036038101906103b9919061334d565b610a34565b005b3480156103cc57600080fd5b506103e760048036038101906103e2919061337a565b610b38565b005b3480156103f557600080fd5b50610410600480360381019061040b91906133d3565b610c28565b005b34801561041e57600080fd5b50610427610cda565b005b34801561043557600080fd5b50610450600480360381019061044b919061337a565b610dab565b60405161045d9190613240565b60405180910390f35b34801561047257600080fd5b5061047b610dfc565b005b34801561048957600080fd5b506104a4600480360381019061049f9190613400565b610f4f565b005b3480156104b257600080fd5b506104bb610fee565b005b3480156104c957600080fd5b506104d26110a5565b6040516104df9190613240565b60405180910390f35b3480156104f457600080fd5b5061050f600480360381019061050a919061337a565b6110ab565b60405161051c9190613240565b60405180910390f35b34801561053157600080fd5b5061053a6110c3565b60405161054791906132f4565b60405180910390f35b34801561055c57600080fd5b50610577600480360381019061057291906133d3565b6110ec565b005b34801561058557600080fd5b5061058e61119e565b60405161059b9190613240565b60405180910390f35b3480156105b057600080fd5b506105b96111a4565b6040516105c691906130e9565b60405180910390f35b3480156105db57600080fd5b506105f660048036038101906105f19190613400565b6111e1565b005b34801561060457600080fd5b5061061f600480360381019061061a919061342d565b611280565b005b34801561062d57600080fd5b5061064860048036038101906106439190613141565b611373565b604051610655919061319c565b60405180910390f35b34801561066a57600080fd5b506106856004803603810190610680919061337a565b611391565b604051610692919061319c565b60405180910390f35b3480156106a757600080fd5b506106b06113b1565b005b3480156106be57600080fd5b506106d960048036038101906106d491906134ef565b61148a565b005b3480156106e757600080fd5b5061070260048036038101906106fd919061354f565b6115c4565b60405161070f9190613240565b60405180910390f35b34801561072457600080fd5b5061073f600480360381019061073a9190613400565b61164b565b005b34801561074d57600080fd5b506107686004803603810190610763919061337a565b6116ea565b005b6107726118ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f6906135db565b60405180910390fd5b60005b815181101561089057600160106000848481518110610824576108236135fb565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061088890613659565b915050610802565b5050565b60606040518060400160405280600981526020017f48616e7a6f20496e750000000000000000000000000000000000000000000000815250905090565b60006108e56108de6118ac565b84846118b4565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000683635c9adc5dea00000905090565b6000610933848484611a7f565b6109f48461093f6118ac565b6109ef8560405180606001604052806028815260200161409a60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109a56118ac565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123049092919063ffffffff16565b6118b4565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a756118ac565b73ffffffffffffffffffffffffffffffffffffffff161480610aeb5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ad36118ac565b73ffffffffffffffffffffffffffffffffffffffff16145b610af457600080fd5b80601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610b406118ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc4906135db565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610c306118ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb4906135db565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d1b6118ac565b73ffffffffffffffffffffffffffffffffffffffff161480610d915750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d796118ac565b73ffffffffffffffffffffffffffffffffffffffff16145b610d9a57600080fd5b6000479050610da881612368565b50565b6000610df5600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123d4565b9050919050565b610e046118ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e88906135db565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f576118ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fe4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdb906135db565b60405180910390fd5b8060168190555050565b610ff66118ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611083576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107a906135db565b60405180910390fd5b683635c9adc5dea00000601681905550683635c9adc5dea00000601781905550565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6110f46118ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611181576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611178906135db565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600581526020017f48414e5a4f000000000000000000000000000000000000000000000000000000815250905090565b6111e96118ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611276576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126d906135db565b60405180910390fd5b8060188190555050565b6112886118ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130c906135db565b60405180910390fd5b6000828561132391906136a2565b90506000828561133391906136a2565b90508560088190555084600a819055508360098190555082600b81905550600a821061135e57600080fd5b600a811061136b57600080fd5b505050505050565b60006113876113806118ac565b8484611a7f565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113f26118ac565b73ffffffffffffffffffffffffffffffffffffffff1614806114685750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114506118ac565b73ffffffffffffffffffffffffffffffffffffffff16145b61147157600080fd5b600061147c30610dab565b905061148781612442565b50565b6114926118ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461151f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611516906135db565b60405180910390fd5b60005b838390508110156115be578160056000868685818110611545576115446135fb565b5b905060200201602081019061155a919061337a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806115b690613659565b915050611522565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116536118ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d7906135db565b60405180910390fd5b8060178190555050565b6116f26118ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461177f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611776906135db565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e69061376a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191b906137fc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198b9061388e565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a729190613240565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611aef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae690613920565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b56906139b2565b60405180910390fd5b60008111611ba2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9990613a44565b60405180910390fd5b611baa6110c3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c185750611be86110c3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561200357601560149054906101000a900460ff16611ca757611c396110c3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611ca6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9d90613ad6565b60405180910390fd5b5b601654811115611cec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce390613b42565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d905750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611dcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc690613bd4565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611e7c5760175481611e3184610dab565b611e3b91906136a2565b10611e7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7290613c66565b60405180910390fd5b5b6000611e8730610dab565b9050600060185482101590506016548210611ea25760165491505b808015611eba575060158054906101000a900460ff16155b8015611f145750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611f2c5750601560169054906101000a900460ff165b8015611f825750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611fd85750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561200057611fe682612442565b60004790506000811115611ffe57611ffd47612368565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120aa5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061215d5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561215c5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561216b57600090506122f2565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156122165750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561222e57600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122d95750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156122f157600a54600c81905550600b54600d819055505b5b6122fe848484846126c8565b50505050565b600083831115829061234c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234391906130e9565b60405180910390fd5b506000838561235b9190613c86565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156123d0573d6000803e3d6000fd5b5050565b600060065482111561241b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241290613d2c565b60405180910390fd5b60006124256126f5565b905061243a818461272090919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561247957612478612e77565b5b6040519080825280602002602001820160405280156124a75781602001602082028036833780820191505090505b50905030816000815181106124bf576124be6135fb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561256157600080fd5b505afa158015612575573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125999190613d61565b816001815181106125ad576125ac6135fb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061261430601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118b4565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612678959493929190613e87565b600060405180830381600087803b15801561269257600080fd5b505af11580156126a6573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806126d6576126d561276a565b5b6126e18484846127ad565b806126ef576126ee6129d3565b5b50505050565b60008060006127026129e7565b91509150612719818361272090919063ffffffff16565b9250505090565b600061276283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a49565b905092915050565b6000600c5414801561277e57506000600d54145b15612788576127ab565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806127bf87612aac565b955095509550955095509550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141561282657600080fd5b61287886600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061290d85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b5e90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061295981612bbc565b6129638483612c79565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516129c09190613240565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000683635c9adc5dea000009050612a1d683635c9adc5dea0000060065461272090919063ffffffff16565b821015612a3c57600654683635c9adc5dea00000935093505050612a45565b81819350935050505b9091565b60008083118290612a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8791906130e9565b60405180910390fd5b5060008385612a9f9190613f10565b9050809150509392505050565b6000806000806000806000806000612ac98a600c54600d54612cb3565b9250925092506000612ad96126f5565b90506000806000612aec8e878787612d49565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612b5683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612304565b905092915050565b6000808284612b6d91906136a2565b905083811015612bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ba990613f8d565b60405180910390fd5b8091505092915050565b6000612bc66126f5565b90506000612bdd8284612dd290919063ffffffff16565b9050612c3181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b5e90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612c8e82600654612b1490919063ffffffff16565b600681905550612ca981600754612b5e90919063ffffffff16565b6007819055505050565b600080600080612cdf6064612cd1888a612dd290919063ffffffff16565b61272090919063ffffffff16565b90506000612d096064612cfb888b612dd290919063ffffffff16565b61272090919063ffffffff16565b90506000612d3282612d24858c612b1490919063ffffffff16565b612b1490919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612d628589612dd290919063ffffffff16565b90506000612d798689612dd290919063ffffffff16565b90506000612d908789612dd290919063ffffffff16565b90506000612db982612dab8587612b1490919063ffffffff16565b612b1490919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612de55760009050612e47565b60008284612df39190613fad565b9050828482612e029190613f10565b14612e42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3990614079565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612eaf82612e66565b810181811067ffffffffffffffff82111715612ece57612ecd612e77565b5b80604052505050565b6000612ee1612e4d565b9050612eed8282612ea6565b919050565b600067ffffffffffffffff821115612f0d57612f0c612e77565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612f4e82612f23565b9050919050565b612f5e81612f43565b8114612f6957600080fd5b50565b600081359050612f7b81612f55565b92915050565b6000612f94612f8f84612ef2565b612ed7565b90508083825260208201905060208402830185811115612fb757612fb6612f1e565b5b835b81811015612fe05780612fcc8882612f6c565b845260208401935050602081019050612fb9565b5050509392505050565b600082601f830112612fff57612ffe612e61565b5b813561300f848260208601612f81565b91505092915050565b60006020828403121561302e5761302d612e57565b5b600082013567ffffffffffffffff81111561304c5761304b612e5c565b5b61305884828501612fea565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561309b578082015181840152602081019050613080565b838111156130aa576000848401525b50505050565b60006130bb82613061565b6130c5818561306c565b93506130d581856020860161307d565b6130de81612e66565b840191505092915050565b6000602082019050818103600083015261310381846130b0565b905092915050565b6000819050919050565b61311e8161310b565b811461312957600080fd5b50565b60008135905061313b81613115565b92915050565b6000806040838503121561315857613157612e57565b5b600061316685828601612f6c565b92505060206131778582860161312c565b9150509250929050565b60008115159050919050565b61319681613181565b82525050565b60006020820190506131b1600083018461318d565b92915050565b6000819050919050565b60006131dc6131d76131d284612f23565b6131b7565b612f23565b9050919050565b60006131ee826131c1565b9050919050565b6000613200826131e3565b9050919050565b613210816131f5565b82525050565b600060208201905061322b6000830184613207565b92915050565b61323a8161310b565b82525050565b60006020820190506132556000830184613231565b92915050565b60008060006060848603121561327457613273612e57565b5b600061328286828701612f6c565b935050602061329386828701612f6c565b92505060406132a48682870161312c565b9150509250925092565b600060ff82169050919050565b6132c4816132ae565b82525050565b60006020820190506132df60008301846132bb565b92915050565b6132ee81612f43565b82525050565b600060208201905061330960008301846132e5565b92915050565b600061331a82612f23565b9050919050565b61332a8161330f565b811461333557600080fd5b50565b60008135905061334781613321565b92915050565b60006020828403121561336357613362612e57565b5b600061337184828501613338565b91505092915050565b6000602082840312156133905761338f612e57565b5b600061339e84828501612f6c565b91505092915050565b6133b081613181565b81146133bb57600080fd5b50565b6000813590506133cd816133a7565b92915050565b6000602082840312156133e9576133e8612e57565b5b60006133f7848285016133be565b91505092915050565b60006020828403121561341657613415612e57565b5b60006134248482850161312c565b91505092915050565b6000806000806080858703121561344757613446612e57565b5b60006134558782880161312c565b94505060206134668782880161312c565b93505060406134778782880161312c565b92505060606134888782880161312c565b91505092959194509250565b600080fd5b60008083601f8401126134af576134ae612e61565b5b8235905067ffffffffffffffff8111156134cc576134cb613494565b5b6020830191508360208202830111156134e8576134e7612f1e565b5b9250929050565b60008060006040848603121561350857613507612e57565b5b600084013567ffffffffffffffff81111561352657613525612e5c565b5b61353286828701613499565b93509350506020613545868287016133be565b9150509250925092565b6000806040838503121561356657613565612e57565b5b600061357485828601612f6c565b925050602061358585828601612f6c565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006135c560208361306c565b91506135d08261358f565b602082019050919050565b600060208201905081810360008301526135f4816135b8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006136648261310b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156136975761369661362a565b5b600182019050919050565b60006136ad8261310b565b91506136b88361310b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156136ed576136ec61362a565b5b828201905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061375460268361306c565b915061375f826136f8565b604082019050919050565b6000602082019050818103600083015261378381613747565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006137e660248361306c565b91506137f18261378a565b604082019050919050565b60006020820190508181036000830152613815816137d9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061387860228361306c565b91506138838261381c565b604082019050919050565b600060208201905081810360008301526138a78161386b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061390a60258361306c565b9150613915826138ae565b604082019050919050565b60006020820190508181036000830152613939816138fd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061399c60238361306c565b91506139a782613940565b604082019050919050565b600060208201905081810360008301526139cb8161398f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613a2e60298361306c565b9150613a39826139d2565b604082019050919050565b60006020820190508181036000830152613a5d81613a21565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613ac0603f8361306c565b9150613acb82613a64565b604082019050919050565b60006020820190508181036000830152613aef81613ab3565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613b2c601c8361306c565b9150613b3782613af6565b602082019050919050565b60006020820190508181036000830152613b5b81613b1f565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613bbe60238361306c565b9150613bc982613b62565b604082019050919050565b60006020820190508181036000830152613bed81613bb1565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613c5060238361306c565b9150613c5b82613bf4565b604082019050919050565b60006020820190508181036000830152613c7f81613c43565b9050919050565b6000613c918261310b565b9150613c9c8361310b565b925082821015613caf57613cae61362a565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613d16602a8361306c565b9150613d2182613cba565b604082019050919050565b60006020820190508181036000830152613d4581613d09565b9050919050565b600081519050613d5b81612f55565b92915050565b600060208284031215613d7757613d76612e57565b5b6000613d8584828501613d4c565b91505092915050565b6000819050919050565b6000613db3613dae613da984613d8e565b6131b7565b61310b565b9050919050565b613dc381613d98565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613dfe81612f43565b82525050565b6000613e108383613df5565b60208301905092915050565b6000602082019050919050565b6000613e3482613dc9565b613e3e8185613dd4565b9350613e4983613de5565b8060005b83811015613e7a578151613e618882613e04565b9750613e6c83613e1c565b925050600181019050613e4d565b5085935050505092915050565b600060a082019050613e9c6000830188613231565b613ea96020830187613dba565b8181036040830152613ebb8186613e29565b9050613eca60608301856132e5565b613ed76080830184613231565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613f1b8261310b565b9150613f268361310b565b925082613f3657613f35613ee1565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613f77601b8361306c565b9150613f8282613f41565b602082019050919050565b60006020820190508181036000830152613fa681613f6a565b9050919050565b6000613fb88261310b565b9150613fc38361310b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ffc57613ffb61362a565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061406360218361306c565b915061406e82614007565b604082019050919050565b6000602082019050818103600083015261409281614056565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207705e5ec356b167788bbb8db4df9b5593a83b8df6e6b0ce567018c4aabe96d3b64736f6c63430008090033

Deployed Bytecode Sourcemap

5837:13987:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14610:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8306:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9231:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7161:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8583:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9432:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7473:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8492:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7209:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14209:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14787:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19206:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14389:213;;;;;;;;;;;;;:::i;:::-;;8686:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3324:148;;;;;;;;;;;;;:::i;:::-;;19346:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18822:141;;;;;;;;;;;;;:::i;:::-;;7359:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6925:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3110:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13872:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7415:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8397:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19015:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18323:491;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8832:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6887:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13981:214;;;;;;;;;;;;;:::i;:::-;;19585:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9039:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19462:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3480:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14610:169;3247:12;:10;:12::i;:::-;3237:22;;:6;;;;;;;;;;:22;;;3229:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14686:9:::1;14681:91;14705:5;:12;14701:1;:16;14681:91;;;14756:4;14739;:14;14744:5;14750:1;14744:8;;;;;;;;:::i;:::-;;;;;;;;14739:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14719:3;;;;;:::i;:::-;;;;14681:91;;;;14610:169:::0;:::o;8306:83::-;8343:13;8376:5;;;;;;;;;;;;;;;;;8369:12;;8306:83;:::o;9231:193::-;9333:4;9355:39;9364:12;:10;:12::i;:::-;9378:7;9387:6;9355:8;:39::i;:::-;9412:4;9405:11;;9231:193;;;;:::o;7161:41::-;;;;;;;;;;;;;:::o;8583:95::-;8636:7;6386:21;8656:14;;8583:95;:::o;9432:446::-;9564:4;9581:36;9591:6;9599:9;9610:6;9581:9;:36::i;:::-;9628:220;9651:6;9672:12;:10;:12::i;:::-;9699:138;9755:6;9699:138;;;;;;;;;;;;;;;;;:11;:19;9711:6;9699:19;;;;;;;;;;;;;;;:33;9719:12;:10;:12::i;:::-;9699:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;9628:8;:220::i;:::-;9866:4;9859:11;;9432:446;;;;;:::o;7473:53::-;;;;:::o;8492:83::-;8533:5;6060:1;8551:16;;8492:83;:::o;7209:28::-;;;;;;;;;;;;;:::o;14209:172::-;14312:7;;;;;;;;;;;14296:23;;:12;:10;:12::i;:::-;:23;;;:50;;;;14339:7;;;;;;;;;;;14323:23;;:12;:10;:12::i;:::-;:23;;;14296:50;14288:59;;;;;;14368:5;14358:7;;:15;;;;;;;;;;;;;;;;;;14209:172;:::o;14787:92::-;3247:12;:10;:12::i;:::-;3237:22;;:6;;;;;;;;;;:22;;;3229:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14866:5:::1;14851:4;:12;14856:6;14851:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;14787:92:::0;:::o;19206:101::-;3247:12;:10;:12::i;:::-;3237:22;;:6;;;;;;;;;;:22;;;3229:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19287:12:::1;19273:11;;:26;;;;;;;;;;;;;;;;;;19206:101:::0;:::o;14389:213::-;14455:7;;;;;;;;;;;14439:23;;:12;:10;:12::i;:::-;:23;;;:50;;;;14482:7;;;;;;;;;;;14466:23;;:12;:10;:12::i;:::-;:23;;;14439:50;14431:59;;;;;;14501:26;14530:21;14501:50;;14562:32;14575:18;14562:12;:32::i;:::-;14420:182;14389:213::o;8686:138::-;8752:7;8779:37;8799:7;:16;8807:7;8799:16;;;;;;;;;;;;;;;;8779:19;:37::i;:::-;8772:44;;8686:138;;;:::o;3324:148::-;3247:12;:10;:12::i;:::-;3237:22;;:6;;;;;;;;;;:22;;;3229:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3431:1:::1;3394:40;;3415:6;::::0;::::1;;;;;;;;3394:40;;;;;;;;;;;;3462:1;3445:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3324:148::o:0;19346:108::-;3247:12;:10;:12::i;:::-;3237:22;;:6;;;;;;;;;;:22;;;3229:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19435:11:::1;19420:12;:26;;;;19346:108:::0;:::o;18822:141::-;3247:12;:10;:12::i;:::-;3237:22;;:6;;;;;;;;;;:22;;;3229:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18886:21:::1;18871:12;:36;;;;18932:21;18915:14;:38;;;;18822:141::o:0;7359:49::-;;;;:::o;6925:43::-;;;;;;;;;;;;;;;;;:::o;3110:79::-;3148:7;3175:6;;;;;;;;;;;3168:13;;3110:79;:::o;13872:101::-;3247:12;:10;:12::i;:::-;3237:22;;:6;;;;;;;;;;:22;;;3229:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13953:12:::1;13939:11;;:26;;;;;;;;;;;;;;;;;;13872:101:::0;:::o;7415:51::-;;;;:::o;8397:87::-;8436:13;8469:7;;;;;;;;;;;;;;;;;8462:14;;8397:87;:::o;19015:139::-;3247:12;:10;:12::i;:::-;3237:22;;:6;;;;;;;;;;:22;;;3229:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19128:18:::1;19106:19;:40;;;;19015:139:::0;:::o;18323:491::-;3247:12;:10;:12::i;:::-;3237:22;;:6;;;;;;;;;;:22;;;3229:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18457:20:::1;18494:11;18480:13;:25;;;;:::i;:::-;18457:48;;18516:21;18555:12;18540:14;:27;;;;:::i;:::-;18516:51;;18595:13;18578:14;:30;;;;18637:14;18619:15;:32;;;;18677:11;18662:12;:26;;;;18715:12;18699:13;:28;;;;18761:2;18746:12;:17;18738:26;;;::::0;::::1;;18799:2;18783:13;:18;18775:27;;;::::0;::::1;;18446:368;;18323:491:::0;;;;:::o;8832:199::-;8937:4;8959:42;8969:12;:10;:12::i;:::-;8983:9;8994:6;8959:9;:42::i;:::-;9019:4;9012:11;;8832:199;;;;:::o;6887:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;13981:214::-;14047:7;;;;;;;;;;;14031:23;;:12;:10;:12::i;:::-;:23;;;:50;;;;14074:7;;;;;;;;;;;14058:23;;:12;:10;:12::i;:::-;:23;;;14031:50;14023:59;;;;;;14093:23;14119:24;14137:4;14119:9;:24::i;:::-;14093:50;;14154:33;14171:15;14154:16;:33::i;:::-;14012:183;13981:214::o;19585:234::-;3247:12;:10;:12::i;:::-;3237:22;;:6;;;;;;;;;;:22;;;3229:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19702:9:::1;19698:114;19721:8;;:15;;19717:1;:19;19698:114;;;19792:8;19758:18;:31;19777:8;;19786:1;19777:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;19758:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;19738:3;;;;;:::i;:::-;;;;19698:114;;;;19585:234:::0;;;:::o;9039:184::-;9156:7;9188:11;:18;9200:5;9188:18;;;;;;;;;;;;;;;:27;9207:7;9188:27;;;;;;;;;;;;;;;;9181:34;;9039:184;;;;:::o;19462:115::-;3247:12;:10;:12::i;:::-;3237:22;;:6;;;;;;;;;;:22;;;3229:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19556:13:::1;19539:14;:30;;;;19462:115:::0;:::o;3480:244::-;3247:12;:10;:12::i;:::-;3237:22;;:6;;;;;;;;;;:22;;;3229:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3589:1:::1;3569:22;;:8;:22;;;;3561:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3679:8;3650:38;;3671:6;::::0;::::1;;;;;;;;3650:38;;;;;;;;;;;;3708:8;3699:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3480:244:::0;:::o;1869:98::-;1922:7;1949:10;1942:17;;1869:98;:::o;10569:369::-;10713:1;10696:19;;:5;:19;;;;10688:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10794:1;10775:21;;:7;:21;;;;10767:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10876:6;10846:11;:18;10858:5;10846:18;;;;;;;;;;;;;;;:27;10865:7;10846:27;;;;;;;;;;;;;;;:36;;;;10914:7;10898:32;;10907:5;10898:32;;;10923:6;10898:32;;;;;;:::i;:::-;;;;;;;;10569:369;;;:::o;10946:2330::-;11084:1;11068:18;;:4;:18;;;;11060:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11161:1;11147:16;;:2;:16;;;;11139:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11231:1;11222:6;:10;11214:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11303:7;:5;:7::i;:::-;11295:15;;:4;:15;;;;:32;;;;;11320:7;:5;:7::i;:::-;11314:13;;:2;:13;;;;11295:32;11291:1259;;;11384:11;;;;;;;;;;;11379:144;;11432:7;:5;:7::i;:::-;11424:15;;:4;:15;;;11416:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;11379:144;11557:12;;11547:6;:22;;11539:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;11626:4;:10;11631:4;11626:10;;;;;;;;;;;;;;;;;;;;;;;;;11625:11;:24;;;;;11641:4;:8;11646:2;11641:8;;;;;;;;;;;;;;;;;;;;;;;;;11640:9;11625:24;11617:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;11715:13;;;;;;;;;;;11709:19;;:2;:19;;;11706:146;;11782:14;;11773:6;11757:13;11767:2;11757:9;:13::i;:::-;:22;;;;:::i;:::-;:39;11749:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;11706:146;11868:28;11899:24;11917:4;11899:9;:24::i;:::-;11868:55;;11938:12;11977:19;;11953:20;:43;;11938:58;;12040:12;;12016:20;:36;12013:124;;12109:12;;12086:35;;12013:124;12157:7;:18;;;;;12169:6;;;;;;;;;;12168:7;12157:18;:43;;;;;12187:13;;;;;;;;;;;12179:21;;:4;:21;;;;12157:43;:58;;;;;12204:11;;;;;;;;;;;12157:58;:87;;;;;12220:18;:24;12239:4;12220:24;;;;;;;;;;;;;;;;;;;;;;;;;12219:25;12157:87;:114;;;;;12249:18;:22;12268:2;12249:22;;;;;;;;;;;;;;;;;;;;;;;;;12248:23;12157:114;12153:386;;;12292:38;12309:20;12292:16;:38::i;:::-;12349:26;12378:21;12349:50;;12443:1;12422:18;:22;12418:106;;;12469:35;12482:21;12469:12;:35::i;:::-;12418:106;12273:266;12153:386;11329:1221;;11291:1259;12562:12;12577:4;12562:19;;12626:18;:24;12645:4;12626:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;12654:18;:22;12673:2;12654:22;;;;;;;;;;;;;;;;;;;;;;;;;12626:50;12625:102;;;;12690:13;;;;;;;;;;;12682:21;;:4;:21;;;;:44;;;;;12713:13;;;;;;;;;;;12707:19;;:2;:19;;;;12682:44;12625:102;12621:594;;;12754:5;12744:15;;12621:594;;;12837:13;;;;;;;;;;;12829:21;;:4;:21;;;:55;;;;;12868:15;;;;;;;;;;;12854:30;;:2;:30;;;;12829:55;12826:162;;;12917:14;;12905:9;:26;;;;12960:12;;12950:7;:22;;;;12826:162;13047:13;;;;;;;;;;;13041:19;;:2;:19;;;:55;;;;;13080:15;;;;;;;;;;;13064:32;;:4;:32;;;;13041:55;13037:165;;;13129:15;;13117:9;:27;;;;13173:13;;13163:7;:23;;;;13037:165;12621:594;13227:41;13242:4;13248:2;13252:6;13260:7;13227:14;:41::i;:::-;11049:2227;10946:2330;;;:::o;4088:224::-;4208:7;4241:1;4236;:6;;4244:12;4228:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4268:9;4284:1;4280;:5;;;;:::i;:::-;4268:17;;4303:1;4296:8;;;4088:224;;;;;:::o;13775:89::-;13832:7;;;;;;;;;;;:16;;:24;13849:6;13832:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13775:89;:::o;9886:323::-;9981:7;10039;;10028;:18;;10006:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;10127:19;10149:10;:8;:10::i;:::-;10127:32;;10177:24;10189:11;10177:7;:11;;:24;;;;:::i;:::-;10170:31;;;9886:323;;;:::o;13284:483::-;7629:4;7620:6;;:13;;;;;;;;;;;;;;;;;;13362:21:::1;13400:1;13386:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13362:40;;13431:4;13413;13418:1;13413:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13457:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13447:4;13452:1;13447:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;13490:62;13507:4;13522:15;;;;;;;;;;;13540:11;13490:8;:62::i;:::-;13563:15;;;;;;;;;;;:66;;;13644:11;13670:1;13686:4;13713;13733:15;13563:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13351:416;7665:5:::0;7656:6;;:14;;;;;;;;;;;;;;;;;;13284:483;:::o;14887:282::-;15043:7;15038:28;;15052:14;:12;:14::i;:::-;15038:28;15077:44;15095:6;15103:9;15114:6;15077:17;:44::i;:::-;15137:7;15132:29;;15146:15;:13;:15::i;:::-;15132:29;14887:282;;;;:::o;17886:164::-;17928:7;17949:15;17966;17985:19;:17;:19::i;:::-;17948:56;;;;18022:20;18034:7;18022;:11;;:20;;;;:::i;:::-;18015:27;;;;17886:164;:::o;4574:132::-;4632:7;4659:39;4663:1;4666;4659:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4652:46;;4574:132;;;;:::o;10217:219::-;10277:1;10264:9;;:14;:30;;;;;10293:1;10282:7;;:12;10264:30;10260:43;;;10296:7;;10260:43;10335:9;;10315:17;:29;;;;10373:7;;10355:15;:25;;;;10405:1;10393:9;:13;;;;10427:1;10417:7;:11;;;;10217:219;:::o;15177:648::-;15324:15;15354:23;15392:12;15419:23;15457:12;15484:13;15511:19;15522:7;15511:10;:19::i;:::-;15309:221;;;;;;;;;;;;15560:7;;;;;;;;;;;15549:18;;:9;:18;;;;15541:27;;;;;;15597:28;15617:7;15597;:15;15605:6;15597:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;15579:7;:15;15587:6;15579:15;;;;;;;;;;;;;;;:46;;;;15657:39;15680:15;15657:7;:18;15665:9;15657:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;15636:7;:18;15644:9;15636:18;;;;;;;;;;;;;;;:60;;;;15707:16;15717:5;15707:9;:16::i;:::-;15734:23;15746:4;15752;15734:11;:23::i;:::-;15790:9;15773:44;;15782:6;15773:44;;;15801:15;15773:44;;;;;;:::i;:::-;;;;;;;;15298:527;;;;;;15177:648;;;:::o;10444:117::-;10500:17;;10488:9;:29;;;;10538:15;;10528:7;:25;;;;10444:117::o;18058:257::-;18109:7;18118;18138:15;18156:7;;18138:25;;18174:15;6386:21;18174:25;;18224:20;6386:21;18224:7;;:11;;:20;;;;:::i;:::-;18214:7;:30;18210:61;;;18254:7;;6386:21;18246:25;;;;;;;;18210:61;18290:7;18299;18282:25;;;;;;18058:257;;;:::o;4714:223::-;4834:7;4866:1;4862;:5;4869:12;4854:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4893:9;4909:1;4905;:5;;;;:::i;:::-;4893:17;;4928:1;4921:8;;;4714:223;;;;;:::o;16244:615::-;16344:7;16366;16388;16410;16432;16454;16490:23;16515:12;16529:13;16559:40;16571:7;16580:9;;16591:7;;16559:11;:40::i;:::-;16489:110;;;;;;16610:19;16632:10;:8;:10::i;:::-;16610:32;;16654:15;16671:23;16696:12;16725:46;16737:7;16746:4;16752:5;16759:11;16725;:46::i;:::-;16653:118;;;;;;16790:7;16799:15;16816:4;16822:15;16839:4;16845:5;16782:69;;;;;;;;;;;;;;;;;;;16244:615;;;;;;;:::o;3944:136::-;4002:7;4029:43;4033:1;4036;4029:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4022:50;;3944:136;;;;:::o;3757:179::-;3815:7;3835:9;3851:1;3847;:5;;;;:::i;:::-;3835:17;;3876:1;3871;:6;;3863:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3927:1;3920:8;;;3757:179;;;;:::o;15833:211::-;15886:19;15908:10;:8;:10::i;:::-;15886:32;;15929:13;15945:22;15955:11;15945:5;:9;;:22;;;;:::i;:::-;15929:38;;16003:33;16030:5;16003:7;:22;16019:4;16003:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15978:7;:22;15994:4;15978:22;;;;;;;;;;;;;;;:58;;;;15875:169;;15833:211;:::o;16052:147::-;16130:17;16142:4;16130:7;;:11;;:17;;;;:::i;:::-;16120:7;:27;;;;16171:20;16186:4;16171:10;;:14;;:20;;;;:::i;:::-;16158:10;:33;;;;16052:147;;:::o;16867:469::-;17036:7;17058;17080;17115:12;17130:30;17156:3;17130:21;17142:8;17130:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;17115:45;;17171:13;17187:28;17211:3;17187:19;17199:6;17187:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;17171:44;;17226:23;17252:28;17274:5;17252:17;17264:4;17252:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17226:54;;17299:15;17316:4;17322:5;17291:37;;;;;;;;;16867:469;;;;;;;:::o;17344:534::-;17538:7;17560;17582;17617:15;17635:24;17647:11;17635:7;:11;;:24;;;;:::i;:::-;17617:42;;17670:12;17685:21;17694:11;17685:4;:8;;:21;;;;:::i;:::-;17670:36;;17717:13;17733:22;17743:11;17733:5;:9;;:22;;;;:::i;:::-;17717:38;;17766:23;17792:28;17814:5;17792:17;17804:4;17792:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17766:54;;17839:7;17848:15;17865:4;17831:39;;;;;;;;;;17344:534;;;;;;;;:::o;4320:246::-;4378:7;4407:1;4402;:6;4398:47;;;4432:1;4425:8;;;;4398:47;4455:9;4471:1;4467;:5;;;;:::i;:::-;4455:17;;4500:1;4495;4491;:5;;;;:::i;:::-;:10;4483:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4557:1;4550:8;;;4320:246;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:307::-;4139:1;4149:113;4163:6;4160:1;4157:13;4149:113;;;4248:1;4243:3;4239:11;4233:18;4229:1;4224:3;4220:11;4213:39;4185:2;4182:1;4178:10;4173:15;;4149:113;;;4280:6;4277:1;4274:13;4271:101;;;4360:1;4351:6;4346:3;4342:16;4335:27;4271:101;4120:258;4071:307;;;:::o;4384:364::-;4472:3;4500:39;4533:5;4500:39;:::i;:::-;4555:71;4619:6;4614:3;4555:71;:::i;:::-;4548:78;;4635:52;4680:6;4675:3;4668:4;4661:5;4657:16;4635:52;:::i;:::-;4712:29;4734:6;4712:29;:::i;:::-;4707:3;4703:39;4696:46;;4476:272;4384:364;;;;:::o;4754:313::-;4867:4;4905:2;4894:9;4890:18;4882:26;;4954:9;4948:4;4944:20;4940:1;4929:9;4925:17;4918:47;4982:78;5055:4;5046:6;4982:78;:::i;:::-;4974:86;;4754:313;;;;:::o;5073:77::-;5110:7;5139:5;5128:16;;5073:77;;;:::o;5156:122::-;5229:24;5247:5;5229:24;:::i;:::-;5222:5;5219:35;5209:63;;5268:1;5265;5258:12;5209:63;5156:122;:::o;5284:139::-;5330:5;5368:6;5355:20;5346:29;;5384:33;5411:5;5384:33;:::i;:::-;5284:139;;;;:::o;5429:474::-;5497:6;5505;5554:2;5542:9;5533:7;5529:23;5525:32;5522:119;;;5560:79;;:::i;:::-;5522:119;5680:1;5705:53;5750:7;5741:6;5730:9;5726:22;5705:53;:::i;:::-;5695:63;;5651:117;5807:2;5833:53;5878:7;5869:6;5858:9;5854:22;5833:53;:::i;:::-;5823:63;;5778:118;5429:474;;;;;:::o;5909:90::-;5943:7;5986:5;5979:13;5972:21;5961:32;;5909:90;;;:::o;6005:109::-;6086:21;6101:5;6086:21;:::i;:::-;6081:3;6074:34;6005:109;;:::o;6120:210::-;6207:4;6245:2;6234:9;6230:18;6222:26;;6258:65;6320:1;6309:9;6305:17;6296:6;6258:65;:::i;:::-;6120:210;;;;:::o;6336:60::-;6364:3;6385:5;6378:12;;6336:60;;;:::o;6402:142::-;6452:9;6485:53;6503:34;6512:24;6530:5;6512:24;:::i;:::-;6503:34;:::i;:::-;6485:53;:::i;:::-;6472:66;;6402:142;;;:::o;6550:126::-;6600:9;6633:37;6664:5;6633:37;:::i;:::-;6620:50;;6550:126;;;:::o;6682:152::-;6758:9;6791:37;6822:5;6791:37;:::i;:::-;6778:50;;6682:152;;;:::o;6840:183::-;6953:63;7010:5;6953:63;:::i;:::-;6948:3;6941:76;6840:183;;:::o;7029:274::-;7148:4;7186:2;7175:9;7171:18;7163:26;;7199:97;7293:1;7282:9;7278:17;7269:6;7199:97;:::i;:::-;7029:274;;;;:::o;7309:118::-;7396:24;7414:5;7396:24;:::i;:::-;7391:3;7384:37;7309:118;;:::o;7433:222::-;7526:4;7564:2;7553:9;7549:18;7541:26;;7577:71;7645:1;7634:9;7630:17;7621:6;7577:71;:::i;:::-;7433:222;;;;:::o;7661:619::-;7738:6;7746;7754;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;8056:2;8082:53;8127:7;8118:6;8107:9;8103:22;8082:53;:::i;:::-;8072:63;;8027:118;8184:2;8210:53;8255:7;8246:6;8235:9;8231:22;8210:53;:::i;:::-;8200:63;;8155:118;7661:619;;;;;:::o;8286:86::-;8321:7;8361:4;8354:5;8350:16;8339:27;;8286:86;;;:::o;8378:112::-;8461:22;8477:5;8461:22;:::i;:::-;8456:3;8449:35;8378:112;;:::o;8496:214::-;8585:4;8623:2;8612:9;8608:18;8600:26;;8636:67;8700:1;8689:9;8685:17;8676:6;8636:67;:::i;:::-;8496:214;;;;:::o;8716:118::-;8803:24;8821:5;8803:24;:::i;:::-;8798:3;8791:37;8716:118;;:::o;8840:222::-;8933:4;8971:2;8960:9;8956:18;8948:26;;8984:71;9052:1;9041:9;9037:17;9028:6;8984:71;:::i;:::-;8840:222;;;;:::o;9068:104::-;9113:7;9142:24;9160:5;9142:24;:::i;:::-;9131:35;;9068:104;;;:::o;9178:138::-;9259:32;9285:5;9259:32;:::i;:::-;9252:5;9249:43;9239:71;;9306:1;9303;9296:12;9239:71;9178:138;:::o;9322:155::-;9376:5;9414:6;9401:20;9392:29;;9430:41;9465:5;9430:41;:::i;:::-;9322:155;;;;:::o;9483:345::-;9550:6;9599:2;9587:9;9578:7;9574:23;9570:32;9567:119;;;9605:79;;:::i;:::-;9567:119;9725:1;9750:61;9803:7;9794:6;9783:9;9779:22;9750:61;:::i;:::-;9740:71;;9696:125;9483:345;;;;:::o;9834:329::-;9893:6;9942:2;9930:9;9921:7;9917:23;9913:32;9910:119;;;9948:79;;:::i;:::-;9910:119;10068:1;10093:53;10138:7;10129:6;10118:9;10114:22;10093:53;:::i;:::-;10083:63;;10039:117;9834:329;;;;:::o;10169:116::-;10239:21;10254:5;10239:21;:::i;:::-;10232:5;10229:32;10219:60;;10275:1;10272;10265:12;10219:60;10169:116;:::o;10291:133::-;10334:5;10372:6;10359:20;10350:29;;10388:30;10412:5;10388:30;:::i;:::-;10291:133;;;;:::o;10430:323::-;10486:6;10535:2;10523:9;10514:7;10510:23;10506:32;10503:119;;;10541:79;;:::i;:::-;10503:119;10661:1;10686:50;10728:7;10719:6;10708:9;10704:22;10686:50;:::i;:::-;10676:60;;10632:114;10430:323;;;;:::o;10759:329::-;10818:6;10867:2;10855:9;10846:7;10842:23;10838:32;10835:119;;;10873:79;;:::i;:::-;10835:119;10993:1;11018:53;11063:7;11054:6;11043:9;11039:22;11018:53;:::i;:::-;11008:63;;10964:117;10759:329;;;;:::o;11094:765::-;11180:6;11188;11196;11204;11253:3;11241:9;11232:7;11228:23;11224:33;11221:120;;;11260:79;;:::i;:::-;11221:120;11380:1;11405:53;11450:7;11441:6;11430:9;11426:22;11405:53;:::i;:::-;11395:63;;11351:117;11507:2;11533:53;11578:7;11569:6;11558:9;11554:22;11533:53;:::i;:::-;11523:63;;11478:118;11635:2;11661:53;11706:7;11697:6;11686:9;11682:22;11661:53;:::i;:::-;11651:63;;11606:118;11763:2;11789:53;11834:7;11825:6;11814:9;11810:22;11789:53;:::i;:::-;11779:63;;11734:118;11094:765;;;;;;;:::o;11865:117::-;11974:1;11971;11964:12;12005:568;12078:8;12088:6;12138:3;12131:4;12123:6;12119:17;12115:27;12105:122;;12146:79;;:::i;:::-;12105:122;12259:6;12246:20;12236:30;;12289:18;12281:6;12278:30;12275:117;;;12311:79;;:::i;:::-;12275:117;12425:4;12417:6;12413:17;12401:29;;12479:3;12471:4;12463:6;12459:17;12449:8;12445:32;12442:41;12439:128;;;12486:79;;:::i;:::-;12439:128;12005:568;;;;;:::o;12579:698::-;12671:6;12679;12687;12736:2;12724:9;12715:7;12711:23;12707:32;12704:119;;;12742:79;;:::i;:::-;12704:119;12890:1;12879:9;12875:17;12862:31;12920:18;12912:6;12909:30;12906:117;;;12942:79;;:::i;:::-;12906:117;13055:80;13127:7;13118:6;13107:9;13103:22;13055:80;:::i;:::-;13037:98;;;;12833:312;13184:2;13210:50;13252:7;13243:6;13232:9;13228:22;13210:50;:::i;:::-;13200:60;;13155:115;12579:698;;;;;:::o;13283:474::-;13351:6;13359;13408:2;13396:9;13387:7;13383:23;13379:32;13376:119;;;13414:79;;:::i;:::-;13376:119;13534:1;13559:53;13604:7;13595:6;13584:9;13580:22;13559:53;:::i;:::-;13549:63;;13505:117;13661:2;13687:53;13732:7;13723:6;13712:9;13708:22;13687:53;:::i;:::-;13677:63;;13632:118;13283:474;;;;;:::o;13763:182::-;13903:34;13899:1;13891:6;13887:14;13880:58;13763:182;:::o;13951:366::-;14093:3;14114:67;14178:2;14173:3;14114:67;:::i;:::-;14107:74;;14190:93;14279:3;14190:93;:::i;:::-;14308:2;14303:3;14299:12;14292:19;;13951:366;;;:::o;14323:419::-;14489:4;14527:2;14516:9;14512:18;14504:26;;14576:9;14570:4;14566:20;14562:1;14551:9;14547:17;14540:47;14604:131;14730:4;14604:131;:::i;:::-;14596:139;;14323:419;;;:::o;14748:180::-;14796:77;14793:1;14786:88;14893:4;14890:1;14883:15;14917:4;14914:1;14907:15;14934:180;14982:77;14979:1;14972:88;15079:4;15076:1;15069:15;15103:4;15100:1;15093:15;15120:233;15159:3;15182:24;15200:5;15182:24;:::i;:::-;15173:33;;15228:66;15221:5;15218:77;15215:103;;;15298:18;;:::i;:::-;15215:103;15345:1;15338:5;15334:13;15327:20;;15120:233;;;:::o;15359:305::-;15399:3;15418:20;15436:1;15418:20;:::i;:::-;15413:25;;15452:20;15470:1;15452:20;:::i;:::-;15447:25;;15606:1;15538:66;15534:74;15531:1;15528:81;15525:107;;;15612:18;;:::i;:::-;15525:107;15656:1;15653;15649:9;15642:16;;15359:305;;;;:::o;15670:225::-;15810:34;15806:1;15798:6;15794:14;15787:58;15879:8;15874:2;15866:6;15862:15;15855:33;15670:225;:::o;15901:366::-;16043:3;16064:67;16128:2;16123:3;16064:67;:::i;:::-;16057:74;;16140:93;16229:3;16140:93;:::i;:::-;16258:2;16253:3;16249:12;16242:19;;15901:366;;;:::o;16273:419::-;16439:4;16477:2;16466:9;16462:18;16454:26;;16526:9;16520:4;16516:20;16512:1;16501:9;16497:17;16490:47;16554:131;16680:4;16554:131;:::i;:::-;16546:139;;16273:419;;;:::o;16698:223::-;16838:34;16834:1;16826:6;16822:14;16815:58;16907:6;16902:2;16894:6;16890:15;16883:31;16698:223;:::o;16927:366::-;17069:3;17090:67;17154:2;17149:3;17090:67;:::i;:::-;17083:74;;17166:93;17255:3;17166:93;:::i;:::-;17284:2;17279:3;17275:12;17268:19;;16927:366;;;:::o;17299:419::-;17465:4;17503:2;17492:9;17488:18;17480:26;;17552:9;17546:4;17542:20;17538:1;17527:9;17523:17;17516:47;17580:131;17706:4;17580:131;:::i;:::-;17572:139;;17299:419;;;:::o;17724:221::-;17864:34;17860:1;17852:6;17848:14;17841:58;17933:4;17928:2;17920:6;17916:15;17909:29;17724:221;:::o;17951:366::-;18093:3;18114:67;18178:2;18173:3;18114:67;:::i;:::-;18107:74;;18190:93;18279:3;18190:93;:::i;:::-;18308:2;18303:3;18299:12;18292:19;;17951:366;;;:::o;18323:419::-;18489:4;18527:2;18516:9;18512:18;18504:26;;18576:9;18570:4;18566:20;18562:1;18551:9;18547:17;18540:47;18604:131;18730:4;18604:131;:::i;:::-;18596:139;;18323:419;;;:::o;18748:224::-;18888:34;18884:1;18876:6;18872:14;18865:58;18957:7;18952:2;18944:6;18940:15;18933:32;18748:224;:::o;18978:366::-;19120:3;19141:67;19205:2;19200:3;19141:67;:::i;:::-;19134:74;;19217:93;19306:3;19217:93;:::i;:::-;19335:2;19330:3;19326:12;19319:19;;18978:366;;;:::o;19350:419::-;19516:4;19554:2;19543:9;19539:18;19531:26;;19603:9;19597:4;19593:20;19589:1;19578:9;19574:17;19567:47;19631:131;19757:4;19631:131;:::i;:::-;19623:139;;19350:419;;;:::o;19775:222::-;19915:34;19911:1;19903:6;19899:14;19892:58;19984:5;19979:2;19971:6;19967:15;19960:30;19775:222;:::o;20003:366::-;20145:3;20166:67;20230:2;20225:3;20166:67;:::i;:::-;20159:74;;20242:93;20331:3;20242:93;:::i;:::-;20360:2;20355:3;20351:12;20344:19;;20003:366;;;:::o;20375:419::-;20541:4;20579:2;20568:9;20564:18;20556:26;;20628:9;20622:4;20618:20;20614:1;20603:9;20599:17;20592:47;20656:131;20782:4;20656:131;:::i;:::-;20648:139;;20375:419;;;:::o;20800:228::-;20940:34;20936:1;20928:6;20924:14;20917:58;21009:11;21004:2;20996:6;20992:15;20985:36;20800:228;:::o;21034:366::-;21176:3;21197:67;21261:2;21256:3;21197:67;:::i;:::-;21190:74;;21273:93;21362:3;21273:93;:::i;:::-;21391:2;21386:3;21382:12;21375:19;;21034:366;;;:::o;21406:419::-;21572:4;21610:2;21599:9;21595:18;21587:26;;21659:9;21653:4;21649:20;21645:1;21634:9;21630:17;21623:47;21687:131;21813:4;21687:131;:::i;:::-;21679:139;;21406:419;;;:::o;21831:250::-;21971:34;21967:1;21959:6;21955:14;21948:58;22040:33;22035:2;22027:6;22023:15;22016:58;21831:250;:::o;22087:366::-;22229:3;22250:67;22314:2;22309:3;22250:67;:::i;:::-;22243:74;;22326:93;22415:3;22326:93;:::i;:::-;22444:2;22439:3;22435:12;22428:19;;22087:366;;;:::o;22459:419::-;22625:4;22663:2;22652:9;22648:18;22640:26;;22712:9;22706:4;22702:20;22698:1;22687:9;22683:17;22676:47;22740:131;22866:4;22740:131;:::i;:::-;22732:139;;22459:419;;;:::o;22884:178::-;23024:30;23020:1;23012:6;23008:14;23001:54;22884:178;:::o;23068:366::-;23210:3;23231:67;23295:2;23290:3;23231:67;:::i;:::-;23224:74;;23307:93;23396:3;23307:93;:::i;:::-;23425:2;23420:3;23416:12;23409:19;;23068:366;;;:::o;23440:419::-;23606:4;23644:2;23633:9;23629:18;23621:26;;23693:9;23687:4;23683:20;23679:1;23668:9;23664:17;23657:47;23721:131;23847:4;23721:131;:::i;:::-;23713:139;;23440:419;;;:::o;23865:222::-;24005:34;24001:1;23993:6;23989:14;23982:58;24074:5;24069:2;24061:6;24057:15;24050:30;23865:222;:::o;24093:366::-;24235:3;24256:67;24320:2;24315:3;24256:67;:::i;:::-;24249:74;;24332:93;24421:3;24332:93;:::i;:::-;24450:2;24445:3;24441:12;24434:19;;24093:366;;;:::o;24465:419::-;24631:4;24669:2;24658:9;24654:18;24646:26;;24718:9;24712:4;24708:20;24704:1;24693:9;24689:17;24682:47;24746:131;24872:4;24746:131;:::i;:::-;24738:139;;24465:419;;;:::o;24890:222::-;25030:34;25026:1;25018:6;25014:14;25007:58;25099:5;25094:2;25086:6;25082:15;25075:30;24890:222;:::o;25118:366::-;25260:3;25281:67;25345:2;25340:3;25281:67;:::i;:::-;25274:74;;25357:93;25446:3;25357:93;:::i;:::-;25475:2;25470:3;25466:12;25459:19;;25118:366;;;:::o;25490:419::-;25656:4;25694:2;25683:9;25679:18;25671:26;;25743:9;25737:4;25733:20;25729:1;25718:9;25714:17;25707:47;25771:131;25897:4;25771:131;:::i;:::-;25763:139;;25490:419;;;:::o;25915:191::-;25955:4;25975:20;25993:1;25975:20;:::i;:::-;25970:25;;26009:20;26027:1;26009:20;:::i;:::-;26004:25;;26048:1;26045;26042:8;26039:34;;;26053:18;;:::i;:::-;26039:34;26098:1;26095;26091:9;26083:17;;25915:191;;;;:::o;26112:229::-;26252:34;26248:1;26240:6;26236:14;26229:58;26321:12;26316:2;26308:6;26304:15;26297:37;26112:229;:::o;26347:366::-;26489:3;26510:67;26574:2;26569:3;26510:67;:::i;:::-;26503:74;;26586:93;26675:3;26586:93;:::i;:::-;26704:2;26699:3;26695:12;26688:19;;26347:366;;;:::o;26719:419::-;26885:4;26923:2;26912:9;26908:18;26900:26;;26972:9;26966:4;26962:20;26958:1;26947:9;26943:17;26936:47;27000:131;27126:4;27000:131;:::i;:::-;26992:139;;26719:419;;;:::o;27144:143::-;27201:5;27232:6;27226:13;27217:22;;27248:33;27275:5;27248:33;:::i;:::-;27144:143;;;;:::o;27293:351::-;27363:6;27412:2;27400:9;27391:7;27387:23;27383:32;27380:119;;;27418:79;;:::i;:::-;27380:119;27538:1;27563:64;27619:7;27610:6;27599:9;27595:22;27563:64;:::i;:::-;27553:74;;27509:128;27293:351;;;;:::o;27650:85::-;27695:7;27724:5;27713:16;;27650:85;;;:::o;27741:158::-;27799:9;27832:61;27850:42;27859:32;27885:5;27859:32;:::i;:::-;27850:42;:::i;:::-;27832:61;:::i;:::-;27819:74;;27741:158;;;:::o;27905:147::-;28000:45;28039:5;28000:45;:::i;:::-;27995:3;27988:58;27905:147;;:::o;28058:114::-;28125:6;28159:5;28153:12;28143:22;;28058:114;;;:::o;28178:184::-;28277:11;28311:6;28306:3;28299:19;28351:4;28346:3;28342:14;28327:29;;28178:184;;;;:::o;28368:132::-;28435:4;28458:3;28450:11;;28488:4;28483:3;28479:14;28471:22;;28368:132;;;:::o;28506:108::-;28583:24;28601:5;28583:24;:::i;:::-;28578:3;28571:37;28506:108;;:::o;28620:179::-;28689:10;28710:46;28752:3;28744:6;28710:46;:::i;:::-;28788:4;28783:3;28779:14;28765:28;;28620:179;;;;:::o;28805:113::-;28875:4;28907;28902:3;28898:14;28890:22;;28805:113;;;:::o;28954:732::-;29073:3;29102:54;29150:5;29102:54;:::i;:::-;29172:86;29251:6;29246:3;29172:86;:::i;:::-;29165:93;;29282:56;29332:5;29282:56;:::i;:::-;29361:7;29392:1;29377:284;29402:6;29399:1;29396:13;29377:284;;;29478:6;29472:13;29505:63;29564:3;29549:13;29505:63;:::i;:::-;29498:70;;29591:60;29644:6;29591:60;:::i;:::-;29581:70;;29437:224;29424:1;29421;29417:9;29412:14;;29377:284;;;29381:14;29677:3;29670:10;;29078:608;;;28954:732;;;;:::o;29692:831::-;29955:4;29993:3;29982:9;29978:19;29970:27;;30007:71;30075:1;30064:9;30060:17;30051:6;30007:71;:::i;:::-;30088:80;30164:2;30153:9;30149:18;30140:6;30088:80;:::i;:::-;30215:9;30209:4;30205:20;30200:2;30189:9;30185:18;30178:48;30243:108;30346:4;30337:6;30243:108;:::i;:::-;30235:116;;30361:72;30429:2;30418:9;30414:18;30405:6;30361:72;:::i;:::-;30443:73;30511:3;30500:9;30496:19;30487:6;30443:73;:::i;:::-;29692:831;;;;;;;;:::o;30529:180::-;30577:77;30574:1;30567:88;30674:4;30671:1;30664:15;30698:4;30695:1;30688:15;30715:185;30755:1;30772:20;30790:1;30772:20;:::i;:::-;30767:25;;30806:20;30824:1;30806:20;:::i;:::-;30801:25;;30845:1;30835:35;;30850:18;;:::i;:::-;30835:35;30892:1;30889;30885:9;30880:14;;30715:185;;;;:::o;30906:177::-;31046:29;31042:1;31034:6;31030:14;31023:53;30906:177;:::o;31089:366::-;31231:3;31252:67;31316:2;31311:3;31252:67;:::i;:::-;31245:74;;31328:93;31417:3;31328:93;:::i;:::-;31446:2;31441:3;31437:12;31430:19;;31089:366;;;:::o;31461:419::-;31627:4;31665:2;31654:9;31650:18;31642:26;;31714:9;31708:4;31704:20;31700:1;31689:9;31685:17;31678:47;31742:131;31868:4;31742:131;:::i;:::-;31734:139;;31461:419;;;:::o;31886:348::-;31926:7;31949:20;31967:1;31949:20;:::i;:::-;31944:25;;31983:20;32001:1;31983:20;:::i;:::-;31978:25;;32171:1;32103:66;32099:74;32096:1;32093:81;32088:1;32081:9;32074:17;32070:105;32067:131;;;32178:18;;:::i;:::-;32067:131;32226:1;32223;32219:9;32208:20;;31886:348;;;;:::o;32240:220::-;32380:34;32376:1;32368:6;32364:14;32357:58;32449:3;32444:2;32436:6;32432:15;32425:28;32240:220;:::o;32466:366::-;32608:3;32629:67;32693:2;32688:3;32629:67;:::i;:::-;32622:74;;32705:93;32794:3;32705:93;:::i;:::-;32823:2;32818:3;32814:12;32807:19;;32466:366;;;:::o;32838:419::-;33004:4;33042:2;33031:9;33027:18;33019:26;;33091:9;33085:4;33081:20;33077:1;33066:9;33062:17;33055:47;33119:131;33245:4;33119:131;:::i;:::-;33111:139;;32838:419;;;:::o

Swarm Source

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