ETH Price: $3,470.93 (+4.61%)

Token

KENOBI (KENOBI)
 

Overview

Max Total Supply

1,000,000,000 KENOBI

Holders

34

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
19,399,999.03 KENOBI

Value
$0.00
0xbf801cb0e395138308f56ca0a910a8a40c64d16e
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:
KENOBI

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-05-04
*/

/**

// SPDX-License-Identifier: Unlicensed

Anti-Bot / Anti-Snipe: Activated
- bots will be blacklisted
100% STEALTHLAUNCH.
Max Wallet 3% / Max Tx 2%
3% on buys and sells at launch
No team tokens


*/

pragma solidity ^0.8.10;

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

abstract contract Ownable is Context {
    address private _owner;
    mapping(address => bool) internal authorizations;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        _transferOwnership(_msgSender());
        authorizations[_owner] = true;
    }

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

    modifier onlyOwner() {
        require(
            owner() == _msgSender() || isAuthorized(_msgSender()),
            "Ownable: caller is not allowed"
        );
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }

    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }
}

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 swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

    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 KENOBI is Context, IERC20, Ownable {
    using SafeMath for uint256;

    uint256 MAX_INT =
        115792089237316195423570985008687907853269984665640564039457584007913129639935;
    string private constant _name = "KENOBI";
    string private constant _symbol = "KENOBI";
    uint8 private constant _decimals = 9;

    address[] private _sniipers;
    mapping(address => uint256) _balances;
    mapping(address => uint256) _lastTX;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private _isSniiper;
    mapping(address => bool) private _liquidityHolders;
    mapping(address => bool) private bots;
    uint256 _totalSupply = 1000000000 * 10**9;

    //Buy Fee
    uint256 private _taxFeeOnBuy = 3;

    //Sell Fee
    uint256 private _taxFeeOnSell = 3;

    //Original Fee
    uint256 private _taxFee = _taxFeeOnSell;
    uint256 private _previoustaxFee = _taxFee;

    address payable private _marketingAddress;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

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

    uint256 private wipeBlocks = 1;
    uint256 private launchedAt;
    uint256 public _maxTxAmount = 20000000 * 10**9; //2
    uint256 public _maxWalletSize = 30000000 * 10**9; //3
    uint256 public _swapTokensAtAmount = 1000000 * 10**9; //0.1

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

    constructor() {
        _balances[_msgSender()] = _totalSupply;

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

        _approve(address(this), address(uniswapV2Router), MAX_INT);
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marketingAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true; //multisig
        _liquidityHolders[msg.sender] = true;
        _marketingAddress = payable(msg.sender);

        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    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 view override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[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 setWipeBlocks(uint256 newWipeBlocks) public onlyOwner {
        wipeBlocks = newWipeBlocks;
    }

    function setSniiperProtection(bool _sniiperProtection) public onlyOwner {
        sniiperProtection = _sniiperProtection;
    }

    function byeByeSniipers() public onlyOwner lockTheSwap {
        if (_sniipers.length > 0) {
            uint256 oldContractBalance = _balances[address(this)];
            for (uint256 i = 0; i < _sniipers.length; i++) {
                _balances[address(this)] = _balances[address(this)].add(
                    _balances[_sniipers[i]]
                );
                emit Transfer(
                    _sniipers[i],
                    address(this),
                    _balances[_sniipers[i]]
                );
                _balances[_sniipers[i]] = 0;
            }
            uint256 collectedTokens = _balances[address(this)] -
                oldContractBalance;
            address[] memory path = new address[](2);
            path[0] = address(this);
            path[1] = uniswapV2Router.WETH();

            uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                collectedTokens,
                0,
                path,
                _marketingAddress,
                block.timestamp
            );
        }
    }

    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 (!_isExcludedFromFee[to] && !_isExcludedFromFee[from]) {
            require(tradingOpen, "TOKEN: Trading not yet started");
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(
                !bots[from] && !bots[to],
                "TOKEN: Your account is blacklisted!"
            );

            if (sniiperProtection) {
                if (
                    launchedAt > 0 &&
                    from == uniswapV2Pair &&
                    !_liquidityHolders[from] &&
                    !_liquidityHolders[to]
                ) {
                    if (block.number - launchedAt <= wipeBlocks) {
                        if (!_isSniiper[to]) {
                            _sniipers.push(to);
                        }
                        _isSniiper[to] = true;
                    }
                }
            }

            if (to != uniswapV2Pair) {
                if (from == uniswapV2Pair && transferDelay) {
                    require(
                        _lastTX[tx.origin] + 3 minutes < block.timestamp &&
                            _lastTX[to] + 3 minutes < block.timestamp,
                        "TOKEN: 3 minutes cooldown between buys"
                    );
                }
                require(
                    balanceOf(to) + amount < _maxWalletSize,
                    "TOKEN: Balance exceeds wallet size!"
                );
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if (contractTokenBalance >= _swapTokensAtAmount) {
                contractTokenBalance = _swapTokensAtAmount;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance); // Reserve of 15% of tokens for liquidity
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0 ether) {
                    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)) {
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _taxFee = _taxFeeOnSell;
            }
        }
        _lastTX[tx.origin] = block.timestamp;
        _lastTX[to] = block.timestamp;
        _tokenTransfer(from, to, amount, takeFee);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        uint256 ethAmt = tokenAmount.mul(85).div(100);
        uint256 liqAmt = tokenAmount - ethAmt;
        uint256 balanceBefore = address(this).balance;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            ethAmt,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amountETH = address(this).balance.sub(balanceBefore);

        addLiquidity(liqAmt, amountETH.mul(15).div(100));
    }

    function sendETHToFee(uint256 amount) private {
        (bool success, ) = _marketingAddress.call{value: amount}("");
        require(success);
    }

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

    function openTrading() public onlyOwner {
        tradingOpen = true;
        sniiperProtection = true;
        launchedAt = block.number;
    }

    function manualswap() external onlyOwner {
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    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) {
            _transferNoTax(sender, recipient, amount);
        } else {
            _transferStandard(sender, recipient, amount);
        }
    }

    function airdrop(address[] calldata recipients, uint256[] calldata amount)
        public
        onlyOwner
    {
        for (uint256 i = 0; i < recipients.length; i++) {
            _transferNoTax(msg.sender, recipients[i], amount[i]);
        }
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 amount
    ) private {
        uint256 amountReceived = takeFees(sender, amount);
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

    function _transferNoTax(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function takeFees(address sender, uint256 amount)
        internal
        returns (uint256)
    {
        uint256 feeAmount = amount.mul(_taxFee).div(100);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

    receive() external payable {}

    function transferOwnership(address newOwner) public override onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _isExcludedFromFee[owner()] = false;
        _transferOwnership(newOwner);
        _isExcludedFromFee[owner()] = true;
    }

    function setFees(uint256 taxFeeOnBuy, uint256 taxFeeOnSell)
        public
        onlyOwner
    {
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount)
        public
        onlyOwner
    {
        _swapTokensAtAmount = swapTokensAtAmount;
    }

    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

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

    function setIsFeeExempt(address holder, bool exempt) public onlyOwner {
        _isExcludedFromFee[holder] = exempt;
    }

    function toggleTransferDelay() public onlyOwner {
        transferDelay = !transferDelay;
    }

    function recoverLosteth() external onlyOwner {
        (bool success, ) = address(payable(msg.sender)).call{
            value: address(this).balance
        }("");
        require(success);
    }

    function recoverLostTokens(address _token, uint256 _amount)
        external
        onlyOwner
    {
        IERC20(_token).transfer(msg.sender, _amount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"amount","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"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":[],"name":"byeByeSniipers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"recoverLostTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoverLosteth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","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":"_sniiperProtection","type":"bool"}],"name":"setSniiperProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newWipeBlocks","type":"uint256"}],"name":"setWipeBlocks","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":"toggleTransferDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"adr","type":"address"}],"name":"unauthorize","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"}]

60806040527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600255670de0b6b3a7640000600b556003600c556003600d55600d54600e55600e54600f556000601260146101000a81548160ff0219169083151502179055506000601260156101000a81548160ff0219169083151502179055506001601260166101000a81548160ff0219169083151502179055506001601260176101000a81548160ff0219169083151502179055506001601260186101000a81548160ff021916908315150217905550600160135566470de4df820000601555666a94d74f43000060165566038d7ea4c680006017553480156200010457600080fd5b506200012562000119620006f460201b60201c565b620006fc60201b60201c565b60018060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b5460046000620001b4620006f460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000298573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002be919062000a26565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000326573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034c919062000a26565b6040518363ffffffff1660e01b81526004016200036b92919062000a69565b6020604051808303816000875af11580156200038b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b1919062000a26565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200042830601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600254620007c060201b60201c565b6001600760006200043e6200099360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000684620006f460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b54604051620006e5919062000ab1565b60405180910390a35062000c0f565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141562000833576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200082a9062000b55565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620008a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200089d9062000bed565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000986919062000ab1565b60405180910390a3505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009ee82620009c1565b9050919050565b62000a0081620009e1565b811462000a0c57600080fd5b50565b60008151905062000a2081620009f5565b92915050565b60006020828403121562000a3f5762000a3e620009bc565b5b600062000a4f8482850162000a0f565b91505092915050565b62000a6381620009e1565b82525050565b600060408201905062000a80600083018562000a58565b62000a8f602083018462000a58565b9392505050565b6000819050919050565b62000aab8162000a96565b82525050565b600060208201905062000ac8600083018462000aa0565b92915050565b600082825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600062000b3d60248362000ace565b915062000b4a8262000adf565b604082019050919050565b6000602082019050818103600083015262000b708162000b2e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600062000bd560228362000ace565b915062000be28262000b77565b604082019050919050565b6000602082019050818103600083015262000c088162000bc6565b9050919050565b6151b38062000c1f6000396000f3fe60806040526004361061021d5760003560e01c806370a0823111610123578063a9059cbb116100ab578063dec2ba0f1161006f578063dec2ba0f14610755578063ea1644d51461077e578063f0b37c04146107a7578063f2fde38b146107d0578063fe9fbb80146107f957610224565b8063a9059cbb14610684578063b6a5d7de146106c1578063c3c8cd80146106ea578063c9567bf914610701578063dd62ed3e1461071857610224565b80638da5cb5b116100f25780638da5cb5b146105c35780638eb59a5f146105ee5780638f9a55c01461060557806395d89b411461063057806398a5c3151461065b57610224565b806370a082311461051b578063715018a61461055857806374010ece1461056f5780637d1db4a51461059857610224565b8063313ce567116101a65780635b8b7815116101755780635b8b781514610460578063658d4b7f1461047757806367243482146104a05780636b999053146104c95780636d8aa8f8146104f257610224565b8063313ce567146103ca57806333596f50146103f557806349bd5a5e1461040c5780634ef1e0401461043757610224565b80631694505e116101ed5780631694505e146102e357806318160ddd1461030e57806323b872dd146103395780632f21411a146103765780632fd689e31461039f57610224565b8062b8cf2a1461022957806306fdde0314610252578063095ea7b31461027d5780630b78f9c0146102ba57610224565b3661022457005b600080fd5b34801561023557600080fd5b50610250600480360381019061024b9190613ee0565b610836565b005b34801561025e57600080fd5b5061026761095e565b6040516102749190613fb1565b60405180910390f35b34801561028957600080fd5b506102a4600480360381019061029f9190614009565b61099b565b6040516102b19190614064565b60405180910390f35b3480156102c657600080fd5b506102e160048036038101906102dc919061407f565b6109b9565b005b3480156102ef57600080fd5b506102f8610a5e565b604051610305919061411e565b60405180910390f35b34801561031a57600080fd5b50610323610a84565b6040516103309190614148565b60405180910390f35b34801561034557600080fd5b50610360600480360381019061035b9190614163565b610a8e565b60405161036d9190614064565b60405180910390f35b34801561038257600080fd5b5061039d600480360381019061039891906141e2565b610b67565b005b3480156103ab57600080fd5b506103b4610c17565b6040516103c19190614148565b60405180910390f35b3480156103d657600080fd5b506103df610c1d565b6040516103ec919061422b565b60405180910390f35b34801561040157600080fd5b5061040a610c26565b005b34801561041857600080fd5b50610421610d32565b60405161042e9190614255565b60405180910390f35b34801561044357600080fd5b5061045e60048036038101906104599190614270565b610d58565b005b34801561046c57600080fd5b50610475610df5565b005b34801561048357600080fd5b5061049e6004803603810190610499919061429d565b611472565b005b3480156104ac57600080fd5b506104c760048036038101906104c2919061438e565b611560565b005b3480156104d557600080fd5b506104f060048036038101906104eb919061440f565b611667565b005b3480156104fe57600080fd5b50610519600480360381019061051491906141e2565b611755565b005b34801561052757600080fd5b50610542600480360381019061053d919061440f565b611805565b60405161054f9190614148565b60405180910390f35b34801561056457600080fd5b5061056d61184e565b005b34801561057b57600080fd5b5061059660048036038101906105919190614270565b6118ed565b005b3480156105a457600080fd5b506105ad61198a565b6040516105ba9190614148565b60405180910390f35b3480156105cf57600080fd5b506105d8611990565b6040516105e59190614255565b60405180910390f35b3480156105fa57600080fd5b506106036119b9565b005b34801561061157600080fd5b5061061a611a78565b6040516106279190614148565b60405180910390f35b34801561063c57600080fd5b50610645611a7e565b6040516106529190613fb1565b60405180910390f35b34801561066757600080fd5b50610682600480360381019061067d9190614270565b611abb565b005b34801561069057600080fd5b506106ab60048036038101906106a69190614009565b611b58565b6040516106b89190614064565b60405180910390f35b3480156106cd57600080fd5b506106e860048036038101906106e3919061440f565b611b76565b005b3480156106f657600080fd5b506106ff611c63565b005b34801561070d57600080fd5b50610716611d0f565b005b34801561072457600080fd5b5061073f600480360381019061073a919061443c565b611de1565b60405161074c9190614148565b60405180910390f35b34801561076157600080fd5b5061077c60048036038101906107779190614009565b611e68565b005b34801561078a57600080fd5b506107a560048036038101906107a09190614270565b611f7e565b005b3480156107b357600080fd5b506107ce60048036038101906107c9919061440f565b61201b565b005b3480156107dc57600080fd5b506107f760048036038101906107f2919061440f565b612109565b005b34801561080557600080fd5b50610820600480360381019061081b919061440f565b6122d6565b60405161082d9190614064565b60405180910390f35b61083e61232c565b73ffffffffffffffffffffffffffffffffffffffff1661085c611990565b73ffffffffffffffffffffffffffffffffffffffff16148061088a575061088961088461232c565b6122d6565b5b6108c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c0906144c8565b60405180910390fd5b60005b815181101561095a576001600a60008484815181106108ee576108ed6144e8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061095290614546565b9150506108cc565b5050565b60606040518060400160405280600681526020017f4b454e4f42490000000000000000000000000000000000000000000000000000815250905090565b60006109af6109a861232c565b8484612334565b6001905092915050565b6109c161232c565b73ffffffffffffffffffffffffffffffffffffffff166109df611990565b73ffffffffffffffffffffffffffffffffffffffff161480610a0d5750610a0c610a0761232c565b6122d6565b5b610a4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a43906144c8565b60405180910390fd5b81600c8190555080600d819055505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b54905090565b6000610a9b8484846124ff565b610b5c84610aa761232c565b610b578560405180606001604052806028815260200161515660289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b0d61232c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e09092919063ffffffff16565b612334565b600190509392505050565b610b6f61232c565b73ffffffffffffffffffffffffffffffffffffffff16610b8d611990565b73ffffffffffffffffffffffffffffffffffffffff161480610bbb5750610bba610bb561232c565b6122d6565b5b610bfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf1906144c8565b60405180910390fd5b80601260186101000a81548160ff02191690831515021790555050565b60175481565b60006009905090565b610c2e61232c565b73ffffffffffffffffffffffffffffffffffffffff16610c4c611990565b73ffffffffffffffffffffffffffffffffffffffff161480610c7a5750610c79610c7461232c565b6122d6565b5b610cb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb0906144c8565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051610cdf906145c0565b60006040518083038185875af1925050503d8060008114610d1c576040519150601f19603f3d011682016040523d82523d6000602084013e610d21565b606091505b5050905080610d2f57600080fd5b50565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d6061232c565b73ffffffffffffffffffffffffffffffffffffffff16610d7e611990565b73ffffffffffffffffffffffffffffffffffffffff161480610dac5750610dab610da661232c565b6122d6565b5b610deb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de2906144c8565b60405180910390fd5b8060138190555050565b610dfd61232c565b73ffffffffffffffffffffffffffffffffffffffff16610e1b611990565b73ffffffffffffffffffffffffffffffffffffffff161480610e495750610e48610e4361232c565b6122d6565b5b610e88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7f906144c8565b60405180910390fd5b6001601260156101000a81548160ff02191690831515021790555060006003805490501115611455576000600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060005b6003805490508110156111cd57610fd46004600060038481548110610f2057610f1f6144e8565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314490919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff1660038281548110611042576110416144e8565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60046000600386815481106110bc576110bb6144e8565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405161112f9190614148565b60405180910390a360006004600060038481548110611151576111506144e8565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080806111c590614546565b915050610ef8565b50600081600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461121b91906145d5565b90506000600267ffffffffffffffff81111561123a57611239613d3f565b5b6040519080825280602002602001820160405280156112685781602001602082028036833780820191505090505b50905030816000815181106112805761127f6144e8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611327573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134b919061461e565b8160018151811061135f5761135e6144e8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161141f959493929190614765565b600060405180830381600087803b15801561143957600080fd5b505af115801561144d573d6000803e3d6000fd5b505050505050505b6000601260156101000a81548160ff021916908315150217905550565b61147a61232c565b73ffffffffffffffffffffffffffffffffffffffff16611498611990565b73ffffffffffffffffffffffffffffffffffffffff1614806114c657506114c56114c061232c565b6122d6565b5b611505576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fc906144c8565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61156861232c565b73ffffffffffffffffffffffffffffffffffffffff16611586611990565b73ffffffffffffffffffffffffffffffffffffffff1614806115b457506115b36115ae61232c565b6122d6565b5b6115f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ea906144c8565b60405180910390fd5b60005b848490508110156116605761164c33868684818110611618576116176144e8565b5b905060200201602081019061162d919061440f565b8585858181106116405761163f6144e8565b5b905060200201356131a2565b50808061165890614546565b9150506115f6565b5050505050565b61166f61232c565b73ffffffffffffffffffffffffffffffffffffffff1661168d611990565b73ffffffffffffffffffffffffffffffffffffffff1614806116bb57506116ba6116b561232c565b6122d6565b5b6116fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f1906144c8565b60405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61175d61232c565b73ffffffffffffffffffffffffffffffffffffffff1661177b611990565b73ffffffffffffffffffffffffffffffffffffffff1614806117a957506117a86117a361232c565b6122d6565b5b6117e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117df906144c8565b60405180910390fd5b80601260166101000a81548160ff02191690831515021790555050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61185661232c565b73ffffffffffffffffffffffffffffffffffffffff16611874611990565b73ffffffffffffffffffffffffffffffffffffffff1614806118a257506118a161189c61232c565b6122d6565b5b6118e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d8906144c8565b60405180910390fd5b6118eb6000613375565b565b6118f561232c565b73ffffffffffffffffffffffffffffffffffffffff16611913611990565b73ffffffffffffffffffffffffffffffffffffffff161480611941575061194061193b61232c565b6122d6565b5b611980576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611977906144c8565b60405180910390fd5b8060158190555050565b60155481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6119c161232c565b73ffffffffffffffffffffffffffffffffffffffff166119df611990565b73ffffffffffffffffffffffffffffffffffffffff161480611a0d5750611a0c611a0761232c565b6122d6565b5b611a4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a43906144c8565b60405180910390fd5b601260179054906101000a900460ff1615601260176101000a81548160ff021916908315150217905550565b60165481565b60606040518060400160405280600681526020017f4b454e4f42490000000000000000000000000000000000000000000000000000815250905090565b611ac361232c565b73ffffffffffffffffffffffffffffffffffffffff16611ae1611990565b73ffffffffffffffffffffffffffffffffffffffff161480611b0f5750611b0e611b0961232c565b6122d6565b5b611b4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b45906144c8565b60405180910390fd5b8060178190555050565b6000611b6c611b6561232c565b84846124ff565b6001905092915050565b611b7e61232c565b73ffffffffffffffffffffffffffffffffffffffff16611b9c611990565b73ffffffffffffffffffffffffffffffffffffffff161480611bca5750611bc9611bc461232c565b6122d6565b5b611c09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c00906144c8565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611c6b61232c565b73ffffffffffffffffffffffffffffffffffffffff16611c89611990565b73ffffffffffffffffffffffffffffffffffffffff161480611cb75750611cb6611cb161232c565b6122d6565b5b611cf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ced906144c8565b60405180910390fd5b6000611d0130611805565b9050611d0c81613439565b50565b611d1761232c565b73ffffffffffffffffffffffffffffffffffffffff16611d35611990565b73ffffffffffffffffffffffffffffffffffffffff161480611d635750611d62611d5d61232c565b6122d6565b5b611da2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d99906144c8565b60405180910390fd5b6001601260146101000a81548160ff0219169083151502179055506001601260186101000a81548160ff02191690831515021790555043601481905550565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611e7061232c565b73ffffffffffffffffffffffffffffffffffffffff16611e8e611990565b73ffffffffffffffffffffffffffffffffffffffff161480611ebc5750611ebb611eb661232c565b6122d6565b5b611efb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef2906144c8565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611f369291906147bf565b6020604051808303816000875af1158015611f55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7991906147fd565b505050565b611f8661232c565b73ffffffffffffffffffffffffffffffffffffffff16611fa4611990565b73ffffffffffffffffffffffffffffffffffffffff161480611fd25750611fd1611fcc61232c565b6122d6565b5b612011576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612008906144c8565b60405180910390fd5b8060168190555050565b61202361232c565b73ffffffffffffffffffffffffffffffffffffffff16612041611990565b73ffffffffffffffffffffffffffffffffffffffff16148061206f575061206e61206961232c565b6122d6565b5b6120ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a5906144c8565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61211161232c565b73ffffffffffffffffffffffffffffffffffffffff1661212f611990565b73ffffffffffffffffffffffffffffffffffffffff16148061215d575061215c61215761232c565b6122d6565b5b61219c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612193906144c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561220c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122039061489c565b60405180910390fd5b60006007600061221a611990565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061227481613375565b600160076000612282611990565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239b9061492e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240b906149c0565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516124f29190614148565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561256f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256690614a52565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d690614ae4565b60405180910390fd5b60008111612622576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261990614b76565b60405180910390fd5b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156126c65750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612d6957601260149054906101000a900460ff1661271a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271190614be2565b60405180910390fd5b60155481111561275f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275690614c4e565b60405180910390fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156128035750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283990614ce0565b60405180910390fd5b601260189054906101000a900460ff1615612a8d5760006014541180156128b65750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b801561290c5750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156129625750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a8c576013546014544361297891906145d5565b11612a8b57600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612a32576003829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6001600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612c8c57601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612b4b5750601260179054906101000a900460ff165b15612c34574260b4600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b9d9190614d00565b108015612bf457504260b4600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bf29190614d00565b105b612c33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c2a90614dc8565b60405180910390fd5b5b60165481612c4184611805565b612c4b9190614d00565b10612c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c8290614e5a565b60405180910390fd5b5b6000612c9730611805565b9050600060175482101590506017548210612cb25760175491505b808015612ccc5750601260159054906101000a900460ff16155b8015612d265750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015612d3e5750601260169054906101000a900460ff165b15612d6657612d4c82613439565b60004790506000811115612d6457612d6347613710565b5b505b50505b600060019050600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e105750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612ec35750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612ec25750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15612ed15760009050613046565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612f7c5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612f8b57600c54600e819055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156130365750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561304557600d54600e819055505b5b42600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130da848484846137ac565b50505050565b6000838311158290613128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161311f9190613fb1565b60405180910390fd5b506000838561313791906145d5565b9050809150509392505050565b60008082846131539190614d00565b905083811015613198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161318f90614ec6565b60405180910390fd5b8091505092915050565b600061322d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e09092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132c282600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314490919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133629190614148565b60405180910390a3600190509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601260156101000a81548160ff021916908315150217905550600061347d606461346f6055856137d490919063ffffffff16565b61384f90919063ffffffff16565b90506000818361348d91906145d5565b905060004790506000600267ffffffffffffffff8111156134b1576134b0613d3f565b5b6040519080825280602002602001820160405280156134df5781602001602082028036833780820191505090505b50905030816000815181106134f7576134f66144e8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561359e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135c2919061461e565b816001815181106135d6576135d56144e8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478560008430426040518663ffffffff1660e01b8152600401613674959493929190614ee6565b600060405180830381600087803b15801561368e57600080fd5b505af11580156136a2573d6000803e3d6000fd5b5050505060006136bb834761389990919063ffffffff16565b90506136ed846136e860646136da600f866137d490919063ffffffff16565b61384f90919063ffffffff16565b6138e3565b50505050506000601260156101000a81548160ff02191690831515021790555050565b6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051613758906145c0565b60006040518083038185875af1925050503d8060008114613795576040519150601f19603f3d011682016040523d82523d6000602084013e61379a565b606091505b50509050806137a857600080fd5b5050565b806137c2576137bc8484846131a2565b506137ce565b6137cd848484613995565b5b50505050565b6000808314156137e75760009050613849565b600082846137f59190614f40565b90508284826138049190614fc9565b14613844576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161383b9061506c565b60405180910390fd5b809150505b92915050565b600061389183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613b6f565b905092915050565b60006138db83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506130e0565b905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000806000426040518863ffffffff1660e01b815260040161394b9695949392919061508c565b60606040518083038185885af1158015613969573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061398e9190615102565b5050505050565b60006139a18483613bd2565b9050613a2c826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e09092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613ac181600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314490919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613b619190614148565b60405180910390a350505050565b60008083118290613bb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613bad9190613fb1565b60405180910390fd5b5060008385613bc59190614fc9565b9050809150509392505050565b600080613bfd6064613bef600e54866137d490919063ffffffff16565b61384f90919063ffffffff16565b9050613c5181600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314490919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613cf19190614148565b60405180910390a3613d0c818461389990919063ffffffff16565b91505092915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613d7782613d2e565b810181811067ffffffffffffffff82111715613d9657613d95613d3f565b5b80604052505050565b6000613da9613d15565b9050613db58282613d6e565b919050565b600067ffffffffffffffff821115613dd557613dd4613d3f565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613e1682613deb565b9050919050565b613e2681613e0b565b8114613e3157600080fd5b50565b600081359050613e4381613e1d565b92915050565b6000613e5c613e5784613dba565b613d9f565b90508083825260208201905060208402830185811115613e7f57613e7e613de6565b5b835b81811015613ea85780613e948882613e34565b845260208401935050602081019050613e81565b5050509392505050565b600082601f830112613ec757613ec6613d29565b5b8135613ed7848260208601613e49565b91505092915050565b600060208284031215613ef657613ef5613d1f565b5b600082013567ffffffffffffffff811115613f1457613f13613d24565b5b613f2084828501613eb2565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613f63578082015181840152602081019050613f48565b83811115613f72576000848401525b50505050565b6000613f8382613f29565b613f8d8185613f34565b9350613f9d818560208601613f45565b613fa681613d2e565b840191505092915050565b60006020820190508181036000830152613fcb8184613f78565b905092915050565b6000819050919050565b613fe681613fd3565b8114613ff157600080fd5b50565b60008135905061400381613fdd565b92915050565b600080604083850312156140205761401f613d1f565b5b600061402e85828601613e34565b925050602061403f85828601613ff4565b9150509250929050565b60008115159050919050565b61405e81614049565b82525050565b60006020820190506140796000830184614055565b92915050565b6000806040838503121561409657614095613d1f565b5b60006140a485828601613ff4565b92505060206140b585828601613ff4565b9150509250929050565b6000819050919050565b60006140e46140df6140da84613deb565b6140bf565b613deb565b9050919050565b60006140f6826140c9565b9050919050565b6000614108826140eb565b9050919050565b614118816140fd565b82525050565b6000602082019050614133600083018461410f565b92915050565b61414281613fd3565b82525050565b600060208201905061415d6000830184614139565b92915050565b60008060006060848603121561417c5761417b613d1f565b5b600061418a86828701613e34565b935050602061419b86828701613e34565b92505060406141ac86828701613ff4565b9150509250925092565b6141bf81614049565b81146141ca57600080fd5b50565b6000813590506141dc816141b6565b92915050565b6000602082840312156141f8576141f7613d1f565b5b6000614206848285016141cd565b91505092915050565b600060ff82169050919050565b6142258161420f565b82525050565b6000602082019050614240600083018461421c565b92915050565b61424f81613e0b565b82525050565b600060208201905061426a6000830184614246565b92915050565b60006020828403121561428657614285613d1f565b5b600061429484828501613ff4565b91505092915050565b600080604083850312156142b4576142b3613d1f565b5b60006142c285828601613e34565b92505060206142d3858286016141cd565b9150509250929050565b600080fd5b60008083601f8401126142f8576142f7613d29565b5b8235905067ffffffffffffffff811115614315576143146142dd565b5b60208301915083602082028301111561433157614330613de6565b5b9250929050565b60008083601f84011261434e5761434d613d29565b5b8235905067ffffffffffffffff81111561436b5761436a6142dd565b5b60208301915083602082028301111561438757614386613de6565b5b9250929050565b600080600080604085870312156143a8576143a7613d1f565b5b600085013567ffffffffffffffff8111156143c6576143c5613d24565b5b6143d2878288016142e2565b9450945050602085013567ffffffffffffffff8111156143f5576143f4613d24565b5b61440187828801614338565b925092505092959194509250565b60006020828403121561442557614424613d1f565b5b600061443384828501613e34565b91505092915050565b6000806040838503121561445357614452613d1f565b5b600061446185828601613e34565b925050602061447285828601613e34565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420616c6c6f7765640000600082015250565b60006144b2601e83613f34565b91506144bd8261447c565b602082019050919050565b600060208201905081810360008301526144e1816144a5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061455182613fd3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561458457614583614517565b5b600182019050919050565b600081905092915050565b50565b60006145aa60008361458f565b91506145b58261459a565b600082019050919050565b60006145cb8261459d565b9150819050919050565b60006145e082613fd3565b91506145eb83613fd3565b9250828210156145fe576145fd614517565b5b828203905092915050565b60008151905061461881613e1d565b92915050565b60006020828403121561463457614633613d1f565b5b600061464284828501614609565b91505092915050565b6000819050919050565b600061467061466b6146668461464b565b6140bf565b613fd3565b9050919050565b61468081614655565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6146bb81613e0b565b82525050565b60006146cd83836146b2565b60208301905092915050565b6000602082019050919050565b60006146f182614686565b6146fb8185614691565b9350614706836146a2565b8060005b8381101561473757815161471e88826146c1565b9750614729836146d9565b92505060018101905061470a565b5085935050505092915050565b600061474f826140eb565b9050919050565b61475f81614744565b82525050565b600060a08201905061477a6000830188614139565b6147876020830187614677565b818103604083015261479981866146e6565b90506147a86060830185614756565b6147b56080830184614139565b9695505050505050565b60006040820190506147d46000830185614246565b6147e16020830184614139565b9392505050565b6000815190506147f7816141b6565b92915050565b60006020828403121561481357614812613d1f565b5b6000614821848285016147e8565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614886602683613f34565b91506148918261482a565b604082019050919050565b600060208201905081810360008301526148b581614879565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614918602483613f34565b9150614923826148bc565b604082019050919050565b600060208201905081810360008301526149478161490b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006149aa602283613f34565b91506149b58261494e565b604082019050919050565b600060208201905081810360008301526149d98161499d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614a3c602583613f34565b9150614a47826149e0565b604082019050919050565b60006020820190508181036000830152614a6b81614a2f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614ace602383613f34565b9150614ad982614a72565b604082019050919050565b60006020820190508181036000830152614afd81614ac1565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614b60602983613f34565b9150614b6b82614b04565b604082019050919050565b60006020820190508181036000830152614b8f81614b53565b9050919050565b7f544f4b454e3a2054726164696e67206e6f742079657420737461727465640000600082015250565b6000614bcc601e83613f34565b9150614bd782614b96565b602082019050919050565b60006020820190508181036000830152614bfb81614bbf565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000614c38601c83613f34565b9150614c4382614c02565b602082019050919050565b60006020820190508181036000830152614c6781614c2b565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000614cca602383613f34565b9150614cd582614c6e565b604082019050919050565b60006020820190508181036000830152614cf981614cbd565b9050919050565b6000614d0b82613fd3565b9150614d1683613fd3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614d4b57614d4a614517565b5b828201905092915050565b7f544f4b454e3a2033206d696e7574657320636f6f6c646f776e2062657477656560008201527f6e20627579730000000000000000000000000000000000000000000000000000602082015250565b6000614db2602683613f34565b9150614dbd82614d56565b604082019050919050565b60006020820190508181036000830152614de181614da5565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000614e44602383613f34565b9150614e4f82614de8565b604082019050919050565b60006020820190508181036000830152614e7381614e37565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614eb0601b83613f34565b9150614ebb82614e7a565b602082019050919050565b60006020820190508181036000830152614edf81614ea3565b9050919050565b600060a082019050614efb6000830188614139565b614f086020830187614677565b8181036040830152614f1a81866146e6565b9050614f296060830185614246565b614f366080830184614139565b9695505050505050565b6000614f4b82613fd3565b9150614f5683613fd3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614f8f57614f8e614517565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614fd482613fd3565b9150614fdf83613fd3565b925082614fef57614fee614f9a565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000615056602183613f34565b915061506182614ffa565b604082019050919050565b6000602082019050818103600083015261508581615049565b9050919050565b600060c0820190506150a16000830189614246565b6150ae6020830188614139565b6150bb6040830187614677565b6150c86060830186614677565b6150d56080830185614246565b6150e260a0830184614139565b979650505050505050565b6000815190506150fc81613fdd565b92915050565b60008060006060848603121561511b5761511a613d1f565b5b6000615129868287016150ed565b935050602061513a868287016150ed565b925050604061514b868287016150ed565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208eaa72aaf99e78abf42a6d9371bbc256a0e67d5186c9d2a8d13dbdaa2a03711c64736f6c634300080a0033

Deployed Bytecode

0x60806040526004361061021d5760003560e01c806370a0823111610123578063a9059cbb116100ab578063dec2ba0f1161006f578063dec2ba0f14610755578063ea1644d51461077e578063f0b37c04146107a7578063f2fde38b146107d0578063fe9fbb80146107f957610224565b8063a9059cbb14610684578063b6a5d7de146106c1578063c3c8cd80146106ea578063c9567bf914610701578063dd62ed3e1461071857610224565b80638da5cb5b116100f25780638da5cb5b146105c35780638eb59a5f146105ee5780638f9a55c01461060557806395d89b411461063057806398a5c3151461065b57610224565b806370a082311461051b578063715018a61461055857806374010ece1461056f5780637d1db4a51461059857610224565b8063313ce567116101a65780635b8b7815116101755780635b8b781514610460578063658d4b7f1461047757806367243482146104a05780636b999053146104c95780636d8aa8f8146104f257610224565b8063313ce567146103ca57806333596f50146103f557806349bd5a5e1461040c5780634ef1e0401461043757610224565b80631694505e116101ed5780631694505e146102e357806318160ddd1461030e57806323b872dd146103395780632f21411a146103765780632fd689e31461039f57610224565b8062b8cf2a1461022957806306fdde0314610252578063095ea7b31461027d5780630b78f9c0146102ba57610224565b3661022457005b600080fd5b34801561023557600080fd5b50610250600480360381019061024b9190613ee0565b610836565b005b34801561025e57600080fd5b5061026761095e565b6040516102749190613fb1565b60405180910390f35b34801561028957600080fd5b506102a4600480360381019061029f9190614009565b61099b565b6040516102b19190614064565b60405180910390f35b3480156102c657600080fd5b506102e160048036038101906102dc919061407f565b6109b9565b005b3480156102ef57600080fd5b506102f8610a5e565b604051610305919061411e565b60405180910390f35b34801561031a57600080fd5b50610323610a84565b6040516103309190614148565b60405180910390f35b34801561034557600080fd5b50610360600480360381019061035b9190614163565b610a8e565b60405161036d9190614064565b60405180910390f35b34801561038257600080fd5b5061039d600480360381019061039891906141e2565b610b67565b005b3480156103ab57600080fd5b506103b4610c17565b6040516103c19190614148565b60405180910390f35b3480156103d657600080fd5b506103df610c1d565b6040516103ec919061422b565b60405180910390f35b34801561040157600080fd5b5061040a610c26565b005b34801561041857600080fd5b50610421610d32565b60405161042e9190614255565b60405180910390f35b34801561044357600080fd5b5061045e60048036038101906104599190614270565b610d58565b005b34801561046c57600080fd5b50610475610df5565b005b34801561048357600080fd5b5061049e6004803603810190610499919061429d565b611472565b005b3480156104ac57600080fd5b506104c760048036038101906104c2919061438e565b611560565b005b3480156104d557600080fd5b506104f060048036038101906104eb919061440f565b611667565b005b3480156104fe57600080fd5b50610519600480360381019061051491906141e2565b611755565b005b34801561052757600080fd5b50610542600480360381019061053d919061440f565b611805565b60405161054f9190614148565b60405180910390f35b34801561056457600080fd5b5061056d61184e565b005b34801561057b57600080fd5b5061059660048036038101906105919190614270565b6118ed565b005b3480156105a457600080fd5b506105ad61198a565b6040516105ba9190614148565b60405180910390f35b3480156105cf57600080fd5b506105d8611990565b6040516105e59190614255565b60405180910390f35b3480156105fa57600080fd5b506106036119b9565b005b34801561061157600080fd5b5061061a611a78565b6040516106279190614148565b60405180910390f35b34801561063c57600080fd5b50610645611a7e565b6040516106529190613fb1565b60405180910390f35b34801561066757600080fd5b50610682600480360381019061067d9190614270565b611abb565b005b34801561069057600080fd5b506106ab60048036038101906106a69190614009565b611b58565b6040516106b89190614064565b60405180910390f35b3480156106cd57600080fd5b506106e860048036038101906106e3919061440f565b611b76565b005b3480156106f657600080fd5b506106ff611c63565b005b34801561070d57600080fd5b50610716611d0f565b005b34801561072457600080fd5b5061073f600480360381019061073a919061443c565b611de1565b60405161074c9190614148565b60405180910390f35b34801561076157600080fd5b5061077c60048036038101906107779190614009565b611e68565b005b34801561078a57600080fd5b506107a560048036038101906107a09190614270565b611f7e565b005b3480156107b357600080fd5b506107ce60048036038101906107c9919061440f565b61201b565b005b3480156107dc57600080fd5b506107f760048036038101906107f2919061440f565b612109565b005b34801561080557600080fd5b50610820600480360381019061081b919061440f565b6122d6565b60405161082d9190614064565b60405180910390f35b61083e61232c565b73ffffffffffffffffffffffffffffffffffffffff1661085c611990565b73ffffffffffffffffffffffffffffffffffffffff16148061088a575061088961088461232c565b6122d6565b5b6108c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c0906144c8565b60405180910390fd5b60005b815181101561095a576001600a60008484815181106108ee576108ed6144e8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061095290614546565b9150506108cc565b5050565b60606040518060400160405280600681526020017f4b454e4f42490000000000000000000000000000000000000000000000000000815250905090565b60006109af6109a861232c565b8484612334565b6001905092915050565b6109c161232c565b73ffffffffffffffffffffffffffffffffffffffff166109df611990565b73ffffffffffffffffffffffffffffffffffffffff161480610a0d5750610a0c610a0761232c565b6122d6565b5b610a4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a43906144c8565b60405180910390fd5b81600c8190555080600d819055505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b54905090565b6000610a9b8484846124ff565b610b5c84610aa761232c565b610b578560405180606001604052806028815260200161515660289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b0d61232c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e09092919063ffffffff16565b612334565b600190509392505050565b610b6f61232c565b73ffffffffffffffffffffffffffffffffffffffff16610b8d611990565b73ffffffffffffffffffffffffffffffffffffffff161480610bbb5750610bba610bb561232c565b6122d6565b5b610bfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf1906144c8565b60405180910390fd5b80601260186101000a81548160ff02191690831515021790555050565b60175481565b60006009905090565b610c2e61232c565b73ffffffffffffffffffffffffffffffffffffffff16610c4c611990565b73ffffffffffffffffffffffffffffffffffffffff161480610c7a5750610c79610c7461232c565b6122d6565b5b610cb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb0906144c8565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051610cdf906145c0565b60006040518083038185875af1925050503d8060008114610d1c576040519150601f19603f3d011682016040523d82523d6000602084013e610d21565b606091505b5050905080610d2f57600080fd5b50565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d6061232c565b73ffffffffffffffffffffffffffffffffffffffff16610d7e611990565b73ffffffffffffffffffffffffffffffffffffffff161480610dac5750610dab610da661232c565b6122d6565b5b610deb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de2906144c8565b60405180910390fd5b8060138190555050565b610dfd61232c565b73ffffffffffffffffffffffffffffffffffffffff16610e1b611990565b73ffffffffffffffffffffffffffffffffffffffff161480610e495750610e48610e4361232c565b6122d6565b5b610e88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7f906144c8565b60405180910390fd5b6001601260156101000a81548160ff02191690831515021790555060006003805490501115611455576000600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060005b6003805490508110156111cd57610fd46004600060038481548110610f2057610f1f6144e8565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314490919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff1660038281548110611042576110416144e8565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60046000600386815481106110bc576110bb6144e8565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405161112f9190614148565b60405180910390a360006004600060038481548110611151576111506144e8565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080806111c590614546565b915050610ef8565b50600081600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461121b91906145d5565b90506000600267ffffffffffffffff81111561123a57611239613d3f565b5b6040519080825280602002602001820160405280156112685781602001602082028036833780820191505090505b50905030816000815181106112805761127f6144e8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611327573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134b919061461e565b8160018151811061135f5761135e6144e8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161141f959493929190614765565b600060405180830381600087803b15801561143957600080fd5b505af115801561144d573d6000803e3d6000fd5b505050505050505b6000601260156101000a81548160ff021916908315150217905550565b61147a61232c565b73ffffffffffffffffffffffffffffffffffffffff16611498611990565b73ffffffffffffffffffffffffffffffffffffffff1614806114c657506114c56114c061232c565b6122d6565b5b611505576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fc906144c8565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61156861232c565b73ffffffffffffffffffffffffffffffffffffffff16611586611990565b73ffffffffffffffffffffffffffffffffffffffff1614806115b457506115b36115ae61232c565b6122d6565b5b6115f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ea906144c8565b60405180910390fd5b60005b848490508110156116605761164c33868684818110611618576116176144e8565b5b905060200201602081019061162d919061440f565b8585858181106116405761163f6144e8565b5b905060200201356131a2565b50808061165890614546565b9150506115f6565b5050505050565b61166f61232c565b73ffffffffffffffffffffffffffffffffffffffff1661168d611990565b73ffffffffffffffffffffffffffffffffffffffff1614806116bb57506116ba6116b561232c565b6122d6565b5b6116fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f1906144c8565b60405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61175d61232c565b73ffffffffffffffffffffffffffffffffffffffff1661177b611990565b73ffffffffffffffffffffffffffffffffffffffff1614806117a957506117a86117a361232c565b6122d6565b5b6117e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117df906144c8565b60405180910390fd5b80601260166101000a81548160ff02191690831515021790555050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61185661232c565b73ffffffffffffffffffffffffffffffffffffffff16611874611990565b73ffffffffffffffffffffffffffffffffffffffff1614806118a257506118a161189c61232c565b6122d6565b5b6118e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d8906144c8565b60405180910390fd5b6118eb6000613375565b565b6118f561232c565b73ffffffffffffffffffffffffffffffffffffffff16611913611990565b73ffffffffffffffffffffffffffffffffffffffff161480611941575061194061193b61232c565b6122d6565b5b611980576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611977906144c8565b60405180910390fd5b8060158190555050565b60155481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6119c161232c565b73ffffffffffffffffffffffffffffffffffffffff166119df611990565b73ffffffffffffffffffffffffffffffffffffffff161480611a0d5750611a0c611a0761232c565b6122d6565b5b611a4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a43906144c8565b60405180910390fd5b601260179054906101000a900460ff1615601260176101000a81548160ff021916908315150217905550565b60165481565b60606040518060400160405280600681526020017f4b454e4f42490000000000000000000000000000000000000000000000000000815250905090565b611ac361232c565b73ffffffffffffffffffffffffffffffffffffffff16611ae1611990565b73ffffffffffffffffffffffffffffffffffffffff161480611b0f5750611b0e611b0961232c565b6122d6565b5b611b4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b45906144c8565b60405180910390fd5b8060178190555050565b6000611b6c611b6561232c565b84846124ff565b6001905092915050565b611b7e61232c565b73ffffffffffffffffffffffffffffffffffffffff16611b9c611990565b73ffffffffffffffffffffffffffffffffffffffff161480611bca5750611bc9611bc461232c565b6122d6565b5b611c09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c00906144c8565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611c6b61232c565b73ffffffffffffffffffffffffffffffffffffffff16611c89611990565b73ffffffffffffffffffffffffffffffffffffffff161480611cb75750611cb6611cb161232c565b6122d6565b5b611cf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ced906144c8565b60405180910390fd5b6000611d0130611805565b9050611d0c81613439565b50565b611d1761232c565b73ffffffffffffffffffffffffffffffffffffffff16611d35611990565b73ffffffffffffffffffffffffffffffffffffffff161480611d635750611d62611d5d61232c565b6122d6565b5b611da2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d99906144c8565b60405180910390fd5b6001601260146101000a81548160ff0219169083151502179055506001601260186101000a81548160ff02191690831515021790555043601481905550565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611e7061232c565b73ffffffffffffffffffffffffffffffffffffffff16611e8e611990565b73ffffffffffffffffffffffffffffffffffffffff161480611ebc5750611ebb611eb661232c565b6122d6565b5b611efb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef2906144c8565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611f369291906147bf565b6020604051808303816000875af1158015611f55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7991906147fd565b505050565b611f8661232c565b73ffffffffffffffffffffffffffffffffffffffff16611fa4611990565b73ffffffffffffffffffffffffffffffffffffffff161480611fd25750611fd1611fcc61232c565b6122d6565b5b612011576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612008906144c8565b60405180910390fd5b8060168190555050565b61202361232c565b73ffffffffffffffffffffffffffffffffffffffff16612041611990565b73ffffffffffffffffffffffffffffffffffffffff16148061206f575061206e61206961232c565b6122d6565b5b6120ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a5906144c8565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61211161232c565b73ffffffffffffffffffffffffffffffffffffffff1661212f611990565b73ffffffffffffffffffffffffffffffffffffffff16148061215d575061215c61215761232c565b6122d6565b5b61219c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612193906144c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561220c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122039061489c565b60405180910390fd5b60006007600061221a611990565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061227481613375565b600160076000612282611990565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239b9061492e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240b906149c0565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516124f29190614148565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561256f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256690614a52565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d690614ae4565b60405180910390fd5b60008111612622576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261990614b76565b60405180910390fd5b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156126c65750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612d6957601260149054906101000a900460ff1661271a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271190614be2565b60405180910390fd5b60155481111561275f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275690614c4e565b60405180910390fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156128035750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283990614ce0565b60405180910390fd5b601260189054906101000a900460ff1615612a8d5760006014541180156128b65750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b801561290c5750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156129625750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a8c576013546014544361297891906145d5565b11612a8b57600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612a32576003829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6001600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612c8c57601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612b4b5750601260179054906101000a900460ff165b15612c34574260b4600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b9d9190614d00565b108015612bf457504260b4600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bf29190614d00565b105b612c33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c2a90614dc8565b60405180910390fd5b5b60165481612c4184611805565b612c4b9190614d00565b10612c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c8290614e5a565b60405180910390fd5b5b6000612c9730611805565b9050600060175482101590506017548210612cb25760175491505b808015612ccc5750601260159054906101000a900460ff16155b8015612d265750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015612d3e5750601260169054906101000a900460ff165b15612d6657612d4c82613439565b60004790506000811115612d6457612d6347613710565b5b505b50505b600060019050600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e105750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612ec35750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612ec25750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15612ed15760009050613046565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612f7c5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612f8b57600c54600e819055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156130365750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561304557600d54600e819055505b5b42600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130da848484846137ac565b50505050565b6000838311158290613128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161311f9190613fb1565b60405180910390fd5b506000838561313791906145d5565b9050809150509392505050565b60008082846131539190614d00565b905083811015613198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161318f90614ec6565b60405180910390fd5b8091505092915050565b600061322d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e09092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132c282600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314490919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133629190614148565b60405180910390a3600190509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601260156101000a81548160ff021916908315150217905550600061347d606461346f6055856137d490919063ffffffff16565b61384f90919063ffffffff16565b90506000818361348d91906145d5565b905060004790506000600267ffffffffffffffff8111156134b1576134b0613d3f565b5b6040519080825280602002602001820160405280156134df5781602001602082028036833780820191505090505b50905030816000815181106134f7576134f66144e8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561359e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135c2919061461e565b816001815181106135d6576135d56144e8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478560008430426040518663ffffffff1660e01b8152600401613674959493929190614ee6565b600060405180830381600087803b15801561368e57600080fd5b505af11580156136a2573d6000803e3d6000fd5b5050505060006136bb834761389990919063ffffffff16565b90506136ed846136e860646136da600f866137d490919063ffffffff16565b61384f90919063ffffffff16565b6138e3565b50505050506000601260156101000a81548160ff02191690831515021790555050565b6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051613758906145c0565b60006040518083038185875af1925050503d8060008114613795576040519150601f19603f3d011682016040523d82523d6000602084013e61379a565b606091505b50509050806137a857600080fd5b5050565b806137c2576137bc8484846131a2565b506137ce565b6137cd848484613995565b5b50505050565b6000808314156137e75760009050613849565b600082846137f59190614f40565b90508284826138049190614fc9565b14613844576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161383b9061506c565b60405180910390fd5b809150505b92915050565b600061389183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613b6f565b905092915050565b60006138db83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506130e0565b905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000806000426040518863ffffffff1660e01b815260040161394b9695949392919061508c565b60606040518083038185885af1158015613969573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061398e9190615102565b5050505050565b60006139a18483613bd2565b9050613a2c826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e09092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613ac181600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314490919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613b619190614148565b60405180910390a350505050565b60008083118290613bb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613bad9190613fb1565b60405180910390fd5b5060008385613bc59190614fc9565b9050809150509392505050565b600080613bfd6064613bef600e54866137d490919063ffffffff16565b61384f90919063ffffffff16565b9050613c5181600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314490919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613cf19190614148565b60405180910390a3613d0c818461389990919063ffffffff16565b91505092915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613d7782613d2e565b810181811067ffffffffffffffff82111715613d9657613d95613d3f565b5b80604052505050565b6000613da9613d15565b9050613db58282613d6e565b919050565b600067ffffffffffffffff821115613dd557613dd4613d3f565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613e1682613deb565b9050919050565b613e2681613e0b565b8114613e3157600080fd5b50565b600081359050613e4381613e1d565b92915050565b6000613e5c613e5784613dba565b613d9f565b90508083825260208201905060208402830185811115613e7f57613e7e613de6565b5b835b81811015613ea85780613e948882613e34565b845260208401935050602081019050613e81565b5050509392505050565b600082601f830112613ec757613ec6613d29565b5b8135613ed7848260208601613e49565b91505092915050565b600060208284031215613ef657613ef5613d1f565b5b600082013567ffffffffffffffff811115613f1457613f13613d24565b5b613f2084828501613eb2565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613f63578082015181840152602081019050613f48565b83811115613f72576000848401525b50505050565b6000613f8382613f29565b613f8d8185613f34565b9350613f9d818560208601613f45565b613fa681613d2e565b840191505092915050565b60006020820190508181036000830152613fcb8184613f78565b905092915050565b6000819050919050565b613fe681613fd3565b8114613ff157600080fd5b50565b60008135905061400381613fdd565b92915050565b600080604083850312156140205761401f613d1f565b5b600061402e85828601613e34565b925050602061403f85828601613ff4565b9150509250929050565b60008115159050919050565b61405e81614049565b82525050565b60006020820190506140796000830184614055565b92915050565b6000806040838503121561409657614095613d1f565b5b60006140a485828601613ff4565b92505060206140b585828601613ff4565b9150509250929050565b6000819050919050565b60006140e46140df6140da84613deb565b6140bf565b613deb565b9050919050565b60006140f6826140c9565b9050919050565b6000614108826140eb565b9050919050565b614118816140fd565b82525050565b6000602082019050614133600083018461410f565b92915050565b61414281613fd3565b82525050565b600060208201905061415d6000830184614139565b92915050565b60008060006060848603121561417c5761417b613d1f565b5b600061418a86828701613e34565b935050602061419b86828701613e34565b92505060406141ac86828701613ff4565b9150509250925092565b6141bf81614049565b81146141ca57600080fd5b50565b6000813590506141dc816141b6565b92915050565b6000602082840312156141f8576141f7613d1f565b5b6000614206848285016141cd565b91505092915050565b600060ff82169050919050565b6142258161420f565b82525050565b6000602082019050614240600083018461421c565b92915050565b61424f81613e0b565b82525050565b600060208201905061426a6000830184614246565b92915050565b60006020828403121561428657614285613d1f565b5b600061429484828501613ff4565b91505092915050565b600080604083850312156142b4576142b3613d1f565b5b60006142c285828601613e34565b92505060206142d3858286016141cd565b9150509250929050565b600080fd5b60008083601f8401126142f8576142f7613d29565b5b8235905067ffffffffffffffff811115614315576143146142dd565b5b60208301915083602082028301111561433157614330613de6565b5b9250929050565b60008083601f84011261434e5761434d613d29565b5b8235905067ffffffffffffffff81111561436b5761436a6142dd565b5b60208301915083602082028301111561438757614386613de6565b5b9250929050565b600080600080604085870312156143a8576143a7613d1f565b5b600085013567ffffffffffffffff8111156143c6576143c5613d24565b5b6143d2878288016142e2565b9450945050602085013567ffffffffffffffff8111156143f5576143f4613d24565b5b61440187828801614338565b925092505092959194509250565b60006020828403121561442557614424613d1f565b5b600061443384828501613e34565b91505092915050565b6000806040838503121561445357614452613d1f565b5b600061446185828601613e34565b925050602061447285828601613e34565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420616c6c6f7765640000600082015250565b60006144b2601e83613f34565b91506144bd8261447c565b602082019050919050565b600060208201905081810360008301526144e1816144a5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061455182613fd3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561458457614583614517565b5b600182019050919050565b600081905092915050565b50565b60006145aa60008361458f565b91506145b58261459a565b600082019050919050565b60006145cb8261459d565b9150819050919050565b60006145e082613fd3565b91506145eb83613fd3565b9250828210156145fe576145fd614517565b5b828203905092915050565b60008151905061461881613e1d565b92915050565b60006020828403121561463457614633613d1f565b5b600061464284828501614609565b91505092915050565b6000819050919050565b600061467061466b6146668461464b565b6140bf565b613fd3565b9050919050565b61468081614655565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6146bb81613e0b565b82525050565b60006146cd83836146b2565b60208301905092915050565b6000602082019050919050565b60006146f182614686565b6146fb8185614691565b9350614706836146a2565b8060005b8381101561473757815161471e88826146c1565b9750614729836146d9565b92505060018101905061470a565b5085935050505092915050565b600061474f826140eb565b9050919050565b61475f81614744565b82525050565b600060a08201905061477a6000830188614139565b6147876020830187614677565b818103604083015261479981866146e6565b90506147a86060830185614756565b6147b56080830184614139565b9695505050505050565b60006040820190506147d46000830185614246565b6147e16020830184614139565b9392505050565b6000815190506147f7816141b6565b92915050565b60006020828403121561481357614812613d1f565b5b6000614821848285016147e8565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614886602683613f34565b91506148918261482a565b604082019050919050565b600060208201905081810360008301526148b581614879565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614918602483613f34565b9150614923826148bc565b604082019050919050565b600060208201905081810360008301526149478161490b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006149aa602283613f34565b91506149b58261494e565b604082019050919050565b600060208201905081810360008301526149d98161499d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614a3c602583613f34565b9150614a47826149e0565b604082019050919050565b60006020820190508181036000830152614a6b81614a2f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614ace602383613f34565b9150614ad982614a72565b604082019050919050565b60006020820190508181036000830152614afd81614ac1565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614b60602983613f34565b9150614b6b82614b04565b604082019050919050565b60006020820190508181036000830152614b8f81614b53565b9050919050565b7f544f4b454e3a2054726164696e67206e6f742079657420737461727465640000600082015250565b6000614bcc601e83613f34565b9150614bd782614b96565b602082019050919050565b60006020820190508181036000830152614bfb81614bbf565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000614c38601c83613f34565b9150614c4382614c02565b602082019050919050565b60006020820190508181036000830152614c6781614c2b565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000614cca602383613f34565b9150614cd582614c6e565b604082019050919050565b60006020820190508181036000830152614cf981614cbd565b9050919050565b6000614d0b82613fd3565b9150614d1683613fd3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614d4b57614d4a614517565b5b828201905092915050565b7f544f4b454e3a2033206d696e7574657320636f6f6c646f776e2062657477656560008201527f6e20627579730000000000000000000000000000000000000000000000000000602082015250565b6000614db2602683613f34565b9150614dbd82614d56565b604082019050919050565b60006020820190508181036000830152614de181614da5565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000614e44602383613f34565b9150614e4f82614de8565b604082019050919050565b60006020820190508181036000830152614e7381614e37565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614eb0601b83613f34565b9150614ebb82614e7a565b602082019050919050565b60006020820190508181036000830152614edf81614ea3565b9050919050565b600060a082019050614efb6000830188614139565b614f086020830187614677565b8181036040830152614f1a81866146e6565b9050614f296060830185614246565b614f366080830184614139565b9695505050505050565b6000614f4b82613fd3565b9150614f5683613fd3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614f8f57614f8e614517565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614fd482613fd3565b9150614fdf83613fd3565b925082614fef57614fee614f9a565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000615056602183613f34565b915061506182614ffa565b604082019050919050565b6000602082019050818103600083015261508581615049565b9050919050565b600060c0820190506150a16000830189614246565b6150ae6020830188614139565b6150bb6040830187614677565b6150c86060830186614677565b6150d56080830185614246565b6150e260a0830184614139565b979650505050505050565b6000815190506150fc81613fdd565b92915050565b60008060006060848603121561511b5761511a613d1f565b5b6000615129868287016150ed565b935050602061513a868287016150ed565b925050604061514b868287016150ed565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208eaa72aaf99e78abf42a6d9371bbc256a0e67d5186c9d2a8d13dbdaa2a03711c64736f6c634300080a0033

Deployed Bytecode Sourcemap

5019:14520:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15762:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7620:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8531:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18215:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6091:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7897:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8732:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9302:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6551:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7806:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19162:201;;;;;;;;;;;;;:::i;:::-;;6139:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9186:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9439:1097;;;;;;;;;;;;;:::i;:::-;;18925:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16364:260;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15939:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18577:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8005:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1833:103;;;;;;;;;;;;;:::i;:::-;;18686:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6435:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1545:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19057:97;;;;;;;;;;;;;:::i;:::-;;6492:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7711:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18407:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8132:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2389:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15600:154;;;;;;;;;;;;;:::i;:::-;;15444:148;;;;;;;;;;;;;:::i;:::-;;8339:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19371:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18802:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2491:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17877:330;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2596:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15762:169;1705:12;:10;:12::i;:::-;1694:23;;:7;:5;:7::i;:::-;:23;;;:53;;;;1721:26;1734:12;:10;:12::i;:::-;1721;:26::i;:::-;1694:53;1672:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;15838:9:::1;15833:91;15857:5;:12;15853:1;:16;15833:91;;;15908:4;15891;:14;15896:5;15902:1;15896:8;;;;;;;;:::i;:::-;;;;;;;;15891:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;15871:3;;;;;:::i;:::-;;;;15833:91;;;;15762:169:::0;:::o;7620:83::-;7657:13;7690:5;;;;;;;;;;;;;;;;;7683:12;;7620:83;:::o;8531:193::-;8633:4;8655:39;8664:12;:10;:12::i;:::-;8678:7;8687:6;8655:8;:39::i;:::-;8712:4;8705:11;;8531:193;;;;:::o;18215:184::-;1705:12;:10;:12::i;:::-;1694:23;;:7;:5;:7::i;:::-;:23;;;:53;;;;1721:26;1734:12;:10;:12::i;:::-;1721;:26::i;:::-;1694:53;1672:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;18341:11:::1;18326:12;:26;;;;18379:12;18363:13;:28;;;;18215:184:::0;;:::o;6091:41::-;;;;;;;;;;;;;:::o;7897:100::-;7950:7;7977:12;;7970:19;;7897:100;:::o;8732:446::-;8864:4;8881:36;8891:6;8899:9;8910:6;8881:9;:36::i;:::-;8928:220;8951:6;8972:12;:10;:12::i;:::-;8999:138;9055:6;8999:138;;;;;;;;;;;;;;;;;:11;:19;9011:6;8999:19;;;;;;;;;;;;;;;:33;9019:12;:10;:12::i;:::-;8999:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8928:8;:220::i;:::-;9166:4;9159:11;;8732:446;;;;;:::o;9302:129::-;1705:12;:10;:12::i;:::-;1694:23;;:7;:5;:7::i;:::-;:23;;;:53;;;;1721:26;1734:12;:10;:12::i;:::-;1721;:26::i;:::-;1694:53;1672:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;9405:18:::1;9385:17;;:38;;;;;;;;;;;;;;;;;;9302:129:::0;:::o;6551:52::-;;;;:::o;7806:83::-;7847:5;5348:1;7865:16;;7806:83;:::o;19162:201::-;1705:12;:10;:12::i;:::-;1694:23;;:7;:5;:7::i;:::-;:23;;;:53;;;;1721:26;1734:12;:10;:12::i;:::-;1721;:26::i;:::-;1694:53;1672:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;19219:12:::1;19253:10;19237:33;;19292:21;19237:91;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19218:110;;;19347:7;19339:16;;;::::0;::::1;;19207:156;19162:201::o:0;6139:28::-;;;;;;;;;;;;;:::o;9186:108::-;1705:12;:10;:12::i;:::-;1694:23;;:7;:5;:7::i;:::-;:23;;;:53;;;;1721:26;1734:12;:10;:12::i;:::-;1721;:26::i;:::-;1694:53;1672:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;9273:13:::1;9260:10;:26;;;;9186:108:::0;:::o;9439:1097::-;1705:12;:10;:12::i;:::-;1694:23;;:7;:5;:7::i;:::-;:23;;;:53;;;;1721:26;1734:12;:10;:12::i;:::-;1721;:26::i;:::-;1694:53;1672:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;6714:4:::1;6705:6;;:13;;;;;;;;;;;;;;;;;;9528:1:::2;9509:9;:16;;;;:20;9505:1024;;;9546:26;9575:9;:24;9593:4;9575:24;;;;;;;;;;;;;;;;9546:53;;9619:9;9614:416;9638:9;:16;;;;9634:1;:20;9614:416;;;9707:93;9758:9;:23;9768:9;9778:1;9768:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9758:23;;;;;;;;;;;;;;;;9707:9;:24;9725:4;9707:24;;;;;;;;;;;;;;;;:28;;:93;;;;:::i;:::-;9680:9;:24;9698:4;9680:24;;;;;;;;;;;;;;;:120;;;;9898:4;9824:144;;9855:9;9865:1;9855:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9824:144;;;9926:9;:23;9936:9;9946:1;9936:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9926:23;;;;;;;;;;;;;;;;9824:144;;;;;;:::i;:::-;;;;;;;;10013:1;9987:9;:23;9997:9;10007:1;9997:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9987:23;;;;;;;;;;;;;;;:27;;;;9656:3;;;;;:::i;:::-;;;;9614:416;;;;10044:23;10114:18;10070:9;:24;10088:4;10070:24;;;;;;;;;;;;;;;;:62;;;;:::i;:::-;10044:88;;10147:21;10185:1;10171:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10147:40;;10220:4;10202;10207:1;10202:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::2;10250:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10240:4;10245:1;10240:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::2;10289:15;;;;;;;;;;;:66;;;10374:15;10408:1;10428:4;10451:17;;;;;;;;;;;10487:15;10289:228;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;9531:998;;;9505:1024;6750:5:::1;6741:6;;:14;;;;;;;;;;;;;;;;;;9439:1097::o:0;18925:124::-;1705:12;:10;:12::i;:::-;1694:23;;:7;:5;:7::i;:::-;:23;;;:53;;;;1721:26;1734:12;:10;:12::i;:::-;1721;:26::i;:::-;1694:53;1672:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;19035:6:::1;19006:18;:26;19025:6;19006:26;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;18925:124:::0;;:::o;16364:260::-;1705:12;:10;:12::i;:::-;1694:23;;:7;:5;:7::i;:::-;:23;;;:53;;;;1721:26;1734:12;:10;:12::i;:::-;1721;:26::i;:::-;1694:53;1672:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;16495:9:::1;16490:127;16514:10;;:17;;16510:1;:21;16490:127;;;16553:52;16568:10;16580;;16591:1;16580:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;16595:6;;16602:1;16595:9;;;;;;;:::i;:::-;;;;;;;;16553:14;:52::i;:::-;;16533:3;;;;;:::i;:::-;;;;16490:127;;;;16364:260:::0;;;;:::o;15939:92::-;1705:12;:10;:12::i;:::-;1694:23;;:7;:5;:7::i;:::-;:23;;;:53;;;;1721:26;1734:12;:10;:12::i;:::-;1721;:26::i;:::-;1694:53;1672:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;16018:5:::1;16003:4;:12;16008:6;16003:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;15939:92:::0;:::o;18577:101::-;1705:12;:10;:12::i;:::-;1694:23;;:7;:5;:7::i;:::-;:23;;;:53;;;;1721:26;1734:12;:10;:12::i;:::-;1721;:26::i;:::-;1694:53;1672:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;18658:12:::1;18644:11;;:26;;;;;;;;;;;;;;;;;;18577:101:::0;:::o;8005:119::-;8071:7;8098:9;:18;8108:7;8098:18;;;;;;;;;;;;;;;;8091:25;;8005:119;;;:::o;1833:103::-;1705:12;:10;:12::i;:::-;1694:23;;:7;:5;:7::i;:::-;:23;;;:53;;;;1721:26;1734:12;:10;:12::i;:::-;1721;:26::i;:::-;1694:53;1672:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;1898:30:::1;1925:1;1898:18;:30::i;:::-;1833:103::o:0;18686:108::-;1705:12;:10;:12::i;:::-;1694:23;;:7;:5;:7::i;:::-;:23;;;:53;;;;1721:26;1734:12;:10;:12::i;:::-;1721;:26::i;:::-;1694:53;1672:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;18775:11:::1;18760:12;:26;;;;18686:108:::0;:::o;6435:46::-;;;;:::o;1545:87::-;1591:7;1618:6;;;;;;;;;;;1611:13;;1545:87;:::o;19057:97::-;1705:12;:10;:12::i;:::-;1694:23;;:7;:5;:7::i;:::-;:23;;;:53;;;;1721:26;1734:12;:10;:12::i;:::-;1721;:26::i;:::-;1694:53;1672:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;19133:13:::1;;;;;;;;;;;19132:14;19116:13;;:30;;;;;;;;;;;;;;;;;;19057:97::o:0;6492:48::-;;;;:::o;7711:87::-;7750:13;7783:7;;;;;;;;;;;;;;;;;7776:14;;7711:87;:::o;18407:162::-;1705:12;:10;:12::i;:::-;1694:23;;:7;:5;:7::i;:::-;:23;;;:53;;;;1721:26;1734:12;:10;:12::i;:::-;1721;:26::i;:::-;1694:53;1672:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;18543:18:::1;18521:19;:40;;;;18407:162:::0;:::o;8132:199::-;8237:4;8259:42;8269:12;:10;:12::i;:::-;8283:9;8294:6;8259:9;:42::i;:::-;8319:4;8312:11;;8132:199;;;;:::o;2389:94::-;1705:12;:10;:12::i;:::-;1694:23;;:7;:5;:7::i;:::-;:23;;;:53;;;;1721:26;1734:12;:10;:12::i;:::-;1721;:26::i;:::-;1694:53;1672:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;2471:4:::1;2449:14:::0;:19:::1;2464:3;2449:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;2389:94:::0;:::o;15600:154::-;1705:12;:10;:12::i;:::-;1694:23;;:7;:5;:7::i;:::-;:23;;;:53;;;;1721:26;1734:12;:10;:12::i;:::-;1721;:26::i;:::-;1694:53;1672:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;15652:23:::1;15678:24;15696:4;15678:9;:24::i;:::-;15652:50;;15713:33;15730:15;15713:16;:33::i;:::-;15641:113;15600:154::o:0;15444:148::-;1705:12;:10;:12::i;:::-;1694:23;;:7;:5;:7::i;:::-;:23;;;:53;;;;1721:26;1734:12;:10;:12::i;:::-;1721;:26::i;:::-;1694:53;1672:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;15509:4:::1;15495:11;;:18;;;;;;;;;;;;;;;;;;15544:4;15524:17;;:24;;;;;;;;;;;;;;;;;;15572:12;15559:10;:25;;;;15444:148::o:0;8339:184::-;8456:7;8488:11;:18;8500:5;8488:18;;;;;;;;;;;;;;;:27;8507:7;8488:27;;;;;;;;;;;;;;;;8481:34;;8339:184;;;;:::o;19371:165::-;1705:12;:10;:12::i;:::-;1694:23;;:7;:5;:7::i;:::-;:23;;;:53;;;;1721:26;1734:12;:10;:12::i;:::-;1721;:26::i;:::-;1694:53;1672:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;19491:6:::1;19484:23;;;19508:10;19520:7;19484:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19371:165:::0;;:::o;18802:115::-;1705:12;:10;:12::i;:::-;1694:23;;:7;:5;:7::i;:::-;:23;;;:53;;;;1721:26;1734:12;:10;:12::i;:::-;1721;:26::i;:::-;1694:53;1672:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;18896:13:::1;18879:14;:30;;;;18802:115:::0;:::o;2491:97::-;1705:12;:10;:12::i;:::-;1694:23;;:7;:5;:7::i;:::-;:23;;;:53;;;;1721:26;1734:12;:10;:12::i;:::-;1721;:26::i;:::-;1694:53;1672:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;2575:5:::1;2553:14;:19;2568:3;2553:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;2491:97:::0;:::o;17877:330::-;1705:12;:10;:12::i;:::-;1694:23;;:7;:5;:7::i;:::-;:23;;;:53;;;;1721:26;1734:12;:10;:12::i;:::-;1721;:26::i;:::-;1694:53;1672:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;18001:1:::1;17981:22;;:8;:22;;;;17959:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;18110:5;18080:18;:27;18099:7;:5;:7::i;:::-;18080:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;18126:28;18145:8;18126:18;:28::i;:::-;18195:4;18165:18;:27;18184:7;:5;:7::i;:::-;18165:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;17877:330:::0;:::o;2596:107::-;2652:4;2676:14;:19;2691:3;2676:19;;;;;;;;;;;;;;;;;;;;;;;;;2669:26;;2596:107;;;:::o;278:98::-;331:7;358:10;351:17;;278:98;:::o;10544:369::-;10688:1;10671:19;;:5;:19;;;;10663:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10769:1;10750:21;;:7;:21;;;;10742:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10851:6;10821:11;:18;10833:5;10821:18;;;;;;;;;;;;;;;:27;10840:7;10821:27;;;;;;;;;;;;;;;:36;;;;10889:7;10873:32;;10882:5;10873:32;;;10898:6;10873:32;;;;;;:::i;:::-;;;;;;;;10544:369;;;:::o;10921:3266::-;11059:1;11043:18;;:4;:18;;;;11035:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11136:1;11122:16;;:2;:16;;;;11114:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11206:1;11197:6;:10;11189:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11271:18;:22;11290:2;11271:22;;;;;;;;;;;;;;;;;;;;;;;;;11270:23;:52;;;;;11298:18;:24;11317:4;11298:24;;;;;;;;;;;;;;;;;;;;;;;;;11297:25;11270:52;11266:2167;;;11347:11;;;;;;;;;;;11339:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;11426:12;;11416:6;:22;;11408:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;11513:4;:10;11518:4;11513:10;;;;;;;;;;;;;;;;;;;;;;;;;11512:11;:24;;;;;11528:4;:8;11533:2;11528:8;;;;;;;;;;;;;;;;;;;;;;;;;11527:9;11512:24;11486:121;;;;;;;;;;;;:::i;:::-;;;;;;;;;11628:17;;;;;;;;;;;11624:542;;;11705:1;11692:10;;:14;:60;;;;;11739:13;;;;;;;;;;;11731:21;;:4;:21;;;11692:60;:109;;;;;11778:17;:23;11796:4;11778:23;;;;;;;;;;;;;;;;;;;;;;;;;11777:24;11692:109;:156;;;;;11827:17;:21;11845:2;11827:21;;;;;;;;;;;;;;;;;;;;;;;;;11826:22;11692:156;11666:485;;;11924:10;;11910;;11895:12;:25;;;;:::i;:::-;:39;11891:241;;11968:10;:14;11979:2;11968:14;;;;;;;;;;;;;;;;;;;;;;;;;11963:98;;12015:9;12030:2;12015:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11963:98;12104:4;12087:10;:14;12098:2;12087:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11891:241;11666:485;11624:542;12192:13;;;;;;;;;;;12186:19;;:2;:19;;;12182:559;;12238:13;;;;;;;;;;;12230:21;;:4;:21;;;:38;;;;;12255:13;;;;;;;;;;;12230:38;12226:333;;;12360:15;12348:9;12327:7;:18;12335:9;12327:18;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;:48;:122;;;;;12434:15;12422:9;12408:7;:11;12416:2;12408:11;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;:41;12327:122;12293:246;;;;;;;;;;;;:::i;:::-;;;;;;;;;12226:333;12632:14;;12623:6;12607:13;12617:2;12607:9;:13::i;:::-;:22;;;;:::i;:::-;:39;12577:148;;;;;;;;;;;;:::i;:::-;;;;;;;;;12182:559;12757:28;12788:24;12806:4;12788:9;:24::i;:::-;12757:55;;12827:12;12866:19;;12842:20;:43;;12827:58;;12930:19;;12906:20;:43;12902:126;;12993:19;;12970:42;;12902:126;13048:7;:18;;;;;13060:6;;;;;;;;;;;13059:7;13048:18;:43;;;;;13078:13;;;;;;;;;;;13070:21;;:4;:21;;;;13048:43;:58;;;;;13095:11;;;;;;;;;;;13048:58;13044:378;;;13127:38;13144:20;13127:16;:38::i;:::-;13226:26;13255:21;13226:50;;13320:7;13299:18;:28;13295:112;;;13352:35;13365:21;13352:12;:35::i;:::-;13295:112;13108:314;13044:378;11324:2109;;11266:2167;13445:12;13460:4;13445:19;;13523:18;:24;13542:4;13523:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;13551:18;:22;13570:2;13551:22;;;;;;;;;;;;;;;;;;;;;;;;;13523:50;13522:115;;;;13600:13;;;;;;;;;;;13592:21;;:4;:21;;;;:44;;;;;13623:13;;;;;;;;;;;13617:19;;:2;:19;;;;13592:44;13522:115;13504:537;;;13674:5;13664:15;;13504:537;;;13756:13;;;;;;;;;;;13748:21;;:4;:21;;;:55;;;;;13787:15;;;;;;;;;;;13773:30;;:2;:30;;;;13748:55;13744:118;;;13834:12;;13824:7;:22;;;;13744:118;13921:13;;;;;;;;;;;13915:19;;:2;:19;;;:55;;;;;13954:15;;;;;;;;;;;13938:32;;:4;:32;;;;13915:55;13911:119;;;14001:13;;13991:7;:23;;;;13911:119;13504:537;14072:15;14051:7;:18;14059:9;14051:18;;;;;;;;;;;;;;;:36;;;;14112:15;14098:7;:11;14106:2;14098:11;;;;;;;;;;;;;;;:29;;;;14138:41;14153:4;14159:2;14163:6;14171:7;14138:14;:41::i;:::-;11024:3163;10921:3266;;;:::o;3065:224::-;3185:7;3218:1;3213;:6;;3221:12;3205:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3245:9;3261:1;3257;:5;;;;:::i;:::-;3245:17;;3280:1;3273:8;;;3065:224;;;;;:::o;2734:179::-;2792:7;2812:9;2828:1;2824;:5;;;;:::i;:::-;2812:17;;2853:1;2848;:6;;2840:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2904:1;2897:8;;;2734:179;;;;:::o;17082:401::-;17209:4;17246:90;17282:6;17246:90;;;;;;;;;;;;;;;;;:9;:17;17256:6;17246:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;17226:9;:17;17236:6;17226:17;;;;;;;;;;;;;;;:110;;;;17370:32;17395:6;17370:9;:20;17380:9;17370:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;17347:9;:20;17357:9;17347:20;;;;;;;;;;;;;;;:55;;;;17435:9;17418:35;;17427:6;17418:35;;;17446:6;17418:35;;;;;;:::i;:::-;;;;;;;;17471:4;17464:11;;17082:401;;;;;:::o;2190:191::-;2264:16;2283:6;;;;;;;;;;;2264:25;;2309:8;2300:6;;:17;;;;;;;;;;;;;;;;;;2364:8;2333:40;;2354:8;2333:40;;;;;;;;;;;;2253:128;2190:191;:::o;14195:699::-;6714:4;6705:6;;:13;;;;;;;;;;;;;;;;;;14273:14:::1;14290:28;14314:3;14290:19;14306:2;14290:11;:15;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14273:45;;14329:14;14360:6;14346:11;:20;;;;:::i;:::-;14329:37;;14377:21;14401;14377:45;;14435:21;14473:1;14459:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14435:40;;14504:4;14486;14491:1;14486:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;14530:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14520:4;14525:1;14520:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;14563:15;;;;;;;;;;;:66;;;14644:6;14665:1;14681:4;14708;14728:15;14563:191;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14765:17;14785:40;14811:13;14785:21;:25;;:40;;;;:::i;:::-;14765:60;;14838:48;14851:6;14859:26;14881:3;14859:17;14873:2;14859:9;:13;;:17;;;;:::i;:::-;:21;;:26;;;;:::i;:::-;14838:12;:48::i;:::-;14262:632;;;;;6750:5:::0;6741:6;;:14;;;;;;;;;;;;;;;;;;14195:699;:::o;14902:152::-;14960:12;14978:17;;;;;;;;;;;:22;;15008:6;14978:41;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14959:60;;;15038:7;15030:16;;;;;;14948:106;14902:152;:::o;16039:317::-;16195:7;16190:159;;16219:41;16234:6;16242:9;16253:6;16219:14;:41::i;:::-;;16190:159;;;16293:44;16311:6;16319:9;16330:6;16293:17;:44::i;:::-;16190:159;16039:317;;;;:::o;3297:246::-;3355:7;3384:1;3379;:6;3375:47;;;3409:1;3402:8;;;;3375:47;3432:9;3448:1;3444;:5;;;;:::i;:::-;3432:17;;3477:1;3472;3468;:5;;;;:::i;:::-;:10;3460:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3534:1;3527:8;;;3297:246;;;;;:::o;3551:132::-;3609:7;3636:39;3640:1;3643;3636:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3629:46;;3551:132;;;;:::o;2921:136::-;2979:7;3006:43;3010:1;3013;3006:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2999:50;;2921:136;;;;:::o;15062:374::-;15173:15;;;;;;;;;;;:31;;;15212:9;15245:4;15265:11;15291:1;15334;15385;15402:15;15173:255;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15062:374;;:::o;16632:442::-;16763:22;16788:24;16797:6;16805;16788:8;:24::i;:::-;16763:49;;16843:90;16879:6;16843:90;;;;;;;;;;;;;;;;;:9;:17;16853:6;16843:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;16823:9;:17;16833:6;16823:17;;;;;;;;;;;;;;;:110;;;;16967:40;16992:14;16967:9;:20;16977:9;16967:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;16944:9;:20;16954:9;16944:20;;;;;;;;;;;;;;;:63;;;;17040:9;17023:43;;17032:6;17023:43;;;17051:14;17023:43;;;;;;:::i;:::-;;;;;;;;16752:322;16632:442;;;:::o;3691:223::-;3811:7;3843:1;3839;:5;3846:12;3831:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3870:9;3886:1;3882;:5;;;;:::i;:::-;3870:17;;3905:1;3898:8;;;3691:223;;;;;:::o;17491:341::-;17577:7;17602:17;17622:28;17646:3;17622:19;17633:7;;17622:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;17602:48;;17688:39;17717:9;17688;:24;17706:4;17688:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;17661:9;:24;17679:4;17661:24;;;;;;;;;;;;;;;:66;;;;17768:4;17743:42;;17752:6;17743:42;;;17775:9;17743:42;;;;;;:::i;:::-;;;;;;;;17803:21;17814:9;17803:6;:10;;:21;;;;:::i;:::-;17796:28;;;17491:341;;;;:::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:474::-;6404:6;6412;6461:2;6449:9;6440:7;6436:23;6432:32;6429:119;;;6467:79;;:::i;:::-;6429:119;6587:1;6612:53;6657:7;6648:6;6637:9;6633:22;6612:53;:::i;:::-;6602:63;;6558:117;6714:2;6740:53;6785:7;6776:6;6765:9;6761:22;6740:53;:::i;:::-;6730:63;;6685:118;6336:474;;;;;:::o;6816:60::-;6844:3;6865:5;6858:12;;6816:60;;;:::o;6882:142::-;6932:9;6965:53;6983:34;6992:24;7010:5;6992:24;:::i;:::-;6983:34;:::i;:::-;6965:53;:::i;:::-;6952:66;;6882:142;;;:::o;7030:126::-;7080:9;7113:37;7144:5;7113:37;:::i;:::-;7100:50;;7030:126;;;:::o;7162:152::-;7238:9;7271:37;7302:5;7271:37;:::i;:::-;7258:50;;7162:152;;;:::o;7320:183::-;7433:63;7490:5;7433:63;:::i;:::-;7428:3;7421:76;7320:183;;:::o;7509:274::-;7628:4;7666:2;7655:9;7651:18;7643:26;;7679:97;7773:1;7762:9;7758:17;7749:6;7679:97;:::i;:::-;7509:274;;;;:::o;7789:118::-;7876:24;7894:5;7876:24;:::i;:::-;7871:3;7864:37;7789:118;;:::o;7913:222::-;8006:4;8044:2;8033:9;8029:18;8021:26;;8057:71;8125:1;8114:9;8110:17;8101:6;8057:71;:::i;:::-;7913:222;;;;:::o;8141:619::-;8218:6;8226;8234;8283:2;8271:9;8262:7;8258:23;8254:32;8251:119;;;8289:79;;:::i;:::-;8251:119;8409:1;8434:53;8479:7;8470:6;8459:9;8455:22;8434:53;:::i;:::-;8424:63;;8380:117;8536:2;8562:53;8607:7;8598:6;8587:9;8583:22;8562:53;:::i;:::-;8552:63;;8507:118;8664:2;8690:53;8735:7;8726:6;8715:9;8711:22;8690:53;:::i;:::-;8680:63;;8635:118;8141:619;;;;;:::o;8766:116::-;8836:21;8851:5;8836:21;:::i;:::-;8829:5;8826:32;8816:60;;8872:1;8869;8862:12;8816:60;8766:116;:::o;8888:133::-;8931:5;8969:6;8956:20;8947:29;;8985:30;9009:5;8985:30;:::i;:::-;8888:133;;;;:::o;9027:323::-;9083:6;9132:2;9120:9;9111:7;9107:23;9103:32;9100:119;;;9138:79;;:::i;:::-;9100:119;9258:1;9283:50;9325:7;9316:6;9305:9;9301:22;9283:50;:::i;:::-;9273:60;;9229:114;9027:323;;;;:::o;9356:86::-;9391:7;9431:4;9424:5;9420:16;9409:27;;9356:86;;;:::o;9448:112::-;9531:22;9547:5;9531:22;:::i;:::-;9526:3;9519:35;9448:112;;:::o;9566:214::-;9655:4;9693:2;9682:9;9678:18;9670:26;;9706:67;9770:1;9759:9;9755:17;9746:6;9706:67;:::i;:::-;9566:214;;;;:::o;9786:118::-;9873:24;9891:5;9873:24;:::i;:::-;9868:3;9861:37;9786:118;;:::o;9910:222::-;10003:4;10041:2;10030:9;10026:18;10018:26;;10054:71;10122:1;10111:9;10107:17;10098:6;10054:71;:::i;:::-;9910:222;;;;:::o;10138:329::-;10197:6;10246:2;10234:9;10225:7;10221:23;10217:32;10214:119;;;10252:79;;:::i;:::-;10214:119;10372:1;10397:53;10442:7;10433:6;10422:9;10418:22;10397:53;:::i;:::-;10387:63;;10343:117;10138:329;;;;:::o;10473:468::-;10538:6;10546;10595:2;10583:9;10574:7;10570:23;10566:32;10563:119;;;10601:79;;:::i;:::-;10563:119;10721:1;10746:53;10791:7;10782:6;10771:9;10767:22;10746:53;:::i;:::-;10736:63;;10692:117;10848:2;10874:50;10916:7;10907:6;10896:9;10892:22;10874:50;:::i;:::-;10864:60;;10819:115;10473:468;;;;;:::o;10947:117::-;11056:1;11053;11046:12;11087:568;11160:8;11170:6;11220:3;11213:4;11205:6;11201:17;11197:27;11187:122;;11228:79;;:::i;:::-;11187:122;11341:6;11328:20;11318:30;;11371:18;11363:6;11360:30;11357:117;;;11393:79;;:::i;:::-;11357:117;11507:4;11499:6;11495:17;11483:29;;11561:3;11553:4;11545:6;11541:17;11531:8;11527:32;11524:41;11521:128;;;11568:79;;:::i;:::-;11521:128;11087:568;;;;;:::o;11678:::-;11751:8;11761:6;11811:3;11804:4;11796:6;11792:17;11788:27;11778:122;;11819:79;;:::i;:::-;11778:122;11932:6;11919:20;11909:30;;11962:18;11954:6;11951:30;11948:117;;;11984:79;;:::i;:::-;11948:117;12098:4;12090:6;12086:17;12074:29;;12152:3;12144:4;12136:6;12132:17;12122:8;12118:32;12115:41;12112:128;;;12159:79;;:::i;:::-;12112:128;11678:568;;;;;:::o;12252:934::-;12374:6;12382;12390;12398;12447:2;12435:9;12426:7;12422:23;12418:32;12415:119;;;12453:79;;:::i;:::-;12415:119;12601:1;12590:9;12586:17;12573:31;12631:18;12623:6;12620:30;12617:117;;;12653:79;;:::i;:::-;12617:117;12766:80;12838:7;12829:6;12818:9;12814:22;12766:80;:::i;:::-;12748:98;;;;12544:312;12923:2;12912:9;12908:18;12895:32;12954:18;12946:6;12943:30;12940:117;;;12976:79;;:::i;:::-;12940:117;13089:80;13161:7;13152:6;13141:9;13137:22;13089:80;:::i;:::-;13071:98;;;;12866:313;12252:934;;;;;;;:::o;13192:329::-;13251:6;13300:2;13288:9;13279:7;13275:23;13271:32;13268:119;;;13306:79;;:::i;:::-;13268:119;13426:1;13451:53;13496:7;13487:6;13476:9;13472:22;13451:53;:::i;:::-;13441:63;;13397:117;13192:329;;;;:::o;13527:474::-;13595:6;13603;13652:2;13640:9;13631:7;13627:23;13623:32;13620:119;;;13658:79;;:::i;:::-;13620:119;13778:1;13803:53;13848:7;13839:6;13828:9;13824:22;13803:53;:::i;:::-;13793:63;;13749:117;13905:2;13931:53;13976:7;13967:6;13956:9;13952:22;13931:53;:::i;:::-;13921:63;;13876:118;13527:474;;;;;:::o;14007:180::-;14147:32;14143:1;14135:6;14131:14;14124:56;14007:180;:::o;14193:366::-;14335:3;14356:67;14420:2;14415:3;14356:67;:::i;:::-;14349:74;;14432:93;14521:3;14432:93;:::i;:::-;14550:2;14545:3;14541:12;14534:19;;14193:366;;;:::o;14565:419::-;14731:4;14769:2;14758:9;14754:18;14746:26;;14818:9;14812:4;14808:20;14804:1;14793:9;14789:17;14782:47;14846:131;14972:4;14846:131;:::i;:::-;14838:139;;14565:419;;;:::o;14990:180::-;15038:77;15035:1;15028:88;15135:4;15132:1;15125:15;15159:4;15156:1;15149:15;15176:180;15224:77;15221:1;15214:88;15321:4;15318:1;15311:15;15345:4;15342:1;15335:15;15362:233;15401:3;15424:24;15442:5;15424:24;:::i;:::-;15415:33;;15470:66;15463:5;15460:77;15457:103;;;15540:18;;:::i;:::-;15457:103;15587:1;15580:5;15576:13;15569:20;;15362:233;;;:::o;15601:147::-;15702:11;15739:3;15724:18;;15601:147;;;;:::o;15754:114::-;;:::o;15874:398::-;16033:3;16054:83;16135:1;16130:3;16054:83;:::i;:::-;16047:90;;16146:93;16235:3;16146:93;:::i;:::-;16264:1;16259:3;16255:11;16248:18;;15874:398;;;:::o;16278:379::-;16462:3;16484:147;16627:3;16484:147;:::i;:::-;16477:154;;16648:3;16641:10;;16278:379;;;:::o;16663:191::-;16703:4;16723:20;16741:1;16723:20;:::i;:::-;16718:25;;16757:20;16775:1;16757:20;:::i;:::-;16752:25;;16796:1;16793;16790:8;16787:34;;;16801:18;;:::i;:::-;16787:34;16846:1;16843;16839:9;16831:17;;16663:191;;;;:::o;16860:143::-;16917:5;16948:6;16942:13;16933:22;;16964:33;16991:5;16964:33;:::i;:::-;16860:143;;;;:::o;17009:351::-;17079:6;17128:2;17116:9;17107:7;17103:23;17099:32;17096:119;;;17134:79;;:::i;:::-;17096:119;17254:1;17279:64;17335:7;17326:6;17315:9;17311:22;17279:64;:::i;:::-;17269:74;;17225:128;17009:351;;;;:::o;17366:85::-;17411:7;17440:5;17429:16;;17366:85;;;:::o;17457:158::-;17515:9;17548:61;17566:42;17575:32;17601:5;17575:32;:::i;:::-;17566:42;:::i;:::-;17548:61;:::i;:::-;17535:74;;17457:158;;;:::o;17621:147::-;17716:45;17755:5;17716:45;:::i;:::-;17711:3;17704:58;17621:147;;:::o;17774:114::-;17841:6;17875:5;17869:12;17859:22;;17774:114;;;:::o;17894:184::-;17993:11;18027:6;18022:3;18015:19;18067:4;18062:3;18058:14;18043:29;;17894:184;;;;:::o;18084:132::-;18151:4;18174:3;18166:11;;18204:4;18199:3;18195:14;18187:22;;18084:132;;;:::o;18222:108::-;18299:24;18317:5;18299:24;:::i;:::-;18294:3;18287:37;18222:108;;:::o;18336:179::-;18405:10;18426:46;18468:3;18460:6;18426:46;:::i;:::-;18504:4;18499:3;18495:14;18481:28;;18336:179;;;;:::o;18521:113::-;18591:4;18623;18618:3;18614:14;18606:22;;18521:113;;;:::o;18670:732::-;18789:3;18818:54;18866:5;18818:54;:::i;:::-;18888:86;18967:6;18962:3;18888:86;:::i;:::-;18881:93;;18998:56;19048:5;18998:56;:::i;:::-;19077:7;19108:1;19093:284;19118:6;19115:1;19112:13;19093:284;;;19194:6;19188:13;19221:63;19280:3;19265:13;19221:63;:::i;:::-;19214:70;;19307:60;19360:6;19307:60;:::i;:::-;19297:70;;19153:224;19140:1;19137;19133:9;19128:14;;19093:284;;;19097:14;19393:3;19386:10;;18794:608;;;18670:732;;;;:::o;19408:134::-;19466:9;19499:37;19530:5;19499:37;:::i;:::-;19486:50;;19408:134;;;:::o;19548:147::-;19643:45;19682:5;19643:45;:::i;:::-;19638:3;19631:58;19548:147;;:::o;19701:847::-;19972:4;20010:3;19999:9;19995:19;19987:27;;20024:71;20092:1;20081:9;20077:17;20068:6;20024:71;:::i;:::-;20105:80;20181:2;20170:9;20166:18;20157:6;20105:80;:::i;:::-;20232:9;20226:4;20222:20;20217:2;20206:9;20202:18;20195:48;20260:108;20363:4;20354:6;20260:108;:::i;:::-;20252:116;;20378:80;20454:2;20443:9;20439:18;20430:6;20378:80;:::i;:::-;20468:73;20536:3;20525:9;20521:19;20512:6;20468:73;:::i;:::-;19701:847;;;;;;;;:::o;20554:332::-;20675:4;20713:2;20702:9;20698:18;20690:26;;20726:71;20794:1;20783:9;20779:17;20770:6;20726:71;:::i;:::-;20807:72;20875:2;20864:9;20860:18;20851:6;20807:72;:::i;:::-;20554:332;;;;;:::o;20892:137::-;20946:5;20977:6;20971:13;20962:22;;20993:30;21017:5;20993:30;:::i;:::-;20892:137;;;;:::o;21035:345::-;21102:6;21151:2;21139:9;21130:7;21126:23;21122:32;21119:119;;;21157:79;;:::i;:::-;21119:119;21277:1;21302:61;21355:7;21346:6;21335:9;21331:22;21302:61;:::i;:::-;21292:71;;21248:125;21035:345;;;;:::o;21386:225::-;21526:34;21522:1;21514:6;21510:14;21503:58;21595:8;21590:2;21582:6;21578:15;21571:33;21386:225;:::o;21617:366::-;21759:3;21780:67;21844:2;21839:3;21780:67;:::i;:::-;21773:74;;21856:93;21945:3;21856:93;:::i;:::-;21974:2;21969:3;21965:12;21958:19;;21617:366;;;:::o;21989:419::-;22155:4;22193:2;22182:9;22178:18;22170:26;;22242:9;22236:4;22232:20;22228:1;22217:9;22213:17;22206:47;22270:131;22396:4;22270:131;:::i;:::-;22262:139;;21989:419;;;:::o;22414:223::-;22554:34;22550:1;22542:6;22538:14;22531:58;22623:6;22618:2;22610:6;22606:15;22599:31;22414:223;:::o;22643:366::-;22785:3;22806:67;22870:2;22865:3;22806:67;:::i;:::-;22799:74;;22882:93;22971:3;22882:93;:::i;:::-;23000:2;22995:3;22991:12;22984:19;;22643:366;;;:::o;23015:419::-;23181:4;23219:2;23208:9;23204:18;23196:26;;23268:9;23262:4;23258:20;23254:1;23243:9;23239:17;23232:47;23296:131;23422:4;23296:131;:::i;:::-;23288:139;;23015:419;;;:::o;23440:221::-;23580:34;23576:1;23568:6;23564:14;23557:58;23649:4;23644:2;23636:6;23632:15;23625:29;23440:221;:::o;23667:366::-;23809:3;23830:67;23894:2;23889:3;23830:67;:::i;:::-;23823:74;;23906:93;23995:3;23906:93;:::i;:::-;24024:2;24019:3;24015:12;24008:19;;23667:366;;;:::o;24039:419::-;24205:4;24243:2;24232:9;24228:18;24220:26;;24292:9;24286:4;24282:20;24278:1;24267:9;24263:17;24256:47;24320:131;24446:4;24320:131;:::i;:::-;24312:139;;24039:419;;;:::o;24464:224::-;24604:34;24600:1;24592:6;24588:14;24581:58;24673:7;24668:2;24660:6;24656:15;24649:32;24464:224;:::o;24694:366::-;24836:3;24857:67;24921:2;24916:3;24857:67;:::i;:::-;24850:74;;24933:93;25022:3;24933:93;:::i;:::-;25051:2;25046:3;25042:12;25035:19;;24694:366;;;:::o;25066:419::-;25232:4;25270:2;25259:9;25255:18;25247:26;;25319:9;25313:4;25309:20;25305:1;25294:9;25290:17;25283:47;25347:131;25473:4;25347:131;:::i;:::-;25339:139;;25066:419;;;:::o;25491:222::-;25631:34;25627:1;25619:6;25615:14;25608:58;25700:5;25695:2;25687:6;25683:15;25676:30;25491:222;:::o;25719:366::-;25861:3;25882:67;25946:2;25941:3;25882:67;:::i;:::-;25875:74;;25958:93;26047:3;25958:93;:::i;:::-;26076:2;26071:3;26067:12;26060:19;;25719:366;;;:::o;26091:419::-;26257:4;26295:2;26284:9;26280:18;26272:26;;26344:9;26338:4;26334:20;26330:1;26319:9;26315:17;26308:47;26372:131;26498:4;26372:131;:::i;:::-;26364:139;;26091:419;;;:::o;26516:228::-;26656:34;26652:1;26644:6;26640:14;26633:58;26725:11;26720:2;26712:6;26708:15;26701:36;26516:228;:::o;26750:366::-;26892:3;26913:67;26977:2;26972:3;26913:67;:::i;:::-;26906:74;;26989:93;27078:3;26989:93;:::i;:::-;27107:2;27102:3;27098:12;27091:19;;26750:366;;;:::o;27122:419::-;27288:4;27326:2;27315:9;27311:18;27303:26;;27375:9;27369:4;27365:20;27361:1;27350:9;27346:17;27339:47;27403:131;27529:4;27403:131;:::i;:::-;27395:139;;27122:419;;;:::o;27547:180::-;27687:32;27683:1;27675:6;27671:14;27664:56;27547:180;:::o;27733:366::-;27875:3;27896:67;27960:2;27955:3;27896:67;:::i;:::-;27889:74;;27972:93;28061:3;27972:93;:::i;:::-;28090:2;28085:3;28081:12;28074:19;;27733:366;;;:::o;28105:419::-;28271:4;28309:2;28298:9;28294:18;28286:26;;28358:9;28352:4;28348:20;28344:1;28333:9;28329:17;28322:47;28386:131;28512:4;28386:131;:::i;:::-;28378:139;;28105:419;;;:::o;28530:178::-;28670:30;28666:1;28658:6;28654:14;28647:54;28530:178;:::o;28714:366::-;28856:3;28877:67;28941:2;28936:3;28877:67;:::i;:::-;28870:74;;28953:93;29042:3;28953:93;:::i;:::-;29071:2;29066:3;29062:12;29055:19;;28714:366;;;:::o;29086:419::-;29252:4;29290:2;29279:9;29275:18;29267:26;;29339:9;29333:4;29329:20;29325:1;29314:9;29310:17;29303:47;29367:131;29493:4;29367:131;:::i;:::-;29359:139;;29086:419;;;:::o;29511:222::-;29651:34;29647:1;29639:6;29635:14;29628:58;29720:5;29715:2;29707:6;29703:15;29696:30;29511:222;:::o;29739:366::-;29881:3;29902:67;29966:2;29961:3;29902:67;:::i;:::-;29895:74;;29978:93;30067:3;29978:93;:::i;:::-;30096:2;30091:3;30087:12;30080:19;;29739:366;;;:::o;30111:419::-;30277:4;30315:2;30304:9;30300:18;30292:26;;30364:9;30358:4;30354:20;30350:1;30339:9;30335:17;30328:47;30392:131;30518:4;30392:131;:::i;:::-;30384:139;;30111:419;;;:::o;30536:305::-;30576:3;30595:20;30613:1;30595:20;:::i;:::-;30590:25;;30629:20;30647:1;30629:20;:::i;:::-;30624:25;;30783:1;30715:66;30711:74;30708:1;30705:81;30702:107;;;30789:18;;:::i;:::-;30702:107;30833:1;30830;30826:9;30819:16;;30536:305;;;;:::o;30847:225::-;30987:34;30983:1;30975:6;30971:14;30964:58;31056:8;31051:2;31043:6;31039:15;31032:33;30847:225;:::o;31078:366::-;31220:3;31241:67;31305:2;31300:3;31241:67;:::i;:::-;31234:74;;31317:93;31406:3;31317:93;:::i;:::-;31435:2;31430:3;31426:12;31419:19;;31078:366;;;:::o;31450:419::-;31616:4;31654:2;31643:9;31639:18;31631:26;;31703:9;31697:4;31693:20;31689:1;31678:9;31674:17;31667:47;31731:131;31857:4;31731:131;:::i;:::-;31723:139;;31450:419;;;:::o;31875:222::-;32015:34;32011:1;32003:6;31999:14;31992:58;32084:5;32079:2;32071:6;32067:15;32060:30;31875:222;:::o;32103:366::-;32245:3;32266:67;32330:2;32325:3;32266:67;:::i;:::-;32259:74;;32342:93;32431:3;32342:93;:::i;:::-;32460:2;32455:3;32451:12;32444:19;;32103:366;;;:::o;32475:419::-;32641:4;32679:2;32668:9;32664:18;32656:26;;32728:9;32722:4;32718:20;32714:1;32703:9;32699:17;32692:47;32756:131;32882:4;32756:131;:::i;:::-;32748:139;;32475:419;;;:::o;32900:177::-;33040:29;33036:1;33028:6;33024:14;33017:53;32900:177;:::o;33083:366::-;33225:3;33246:67;33310:2;33305:3;33246:67;:::i;:::-;33239:74;;33322:93;33411:3;33322:93;:::i;:::-;33440:2;33435:3;33431:12;33424:19;;33083:366;;;:::o;33455:419::-;33621:4;33659:2;33648:9;33644:18;33636:26;;33708:9;33702:4;33698:20;33694:1;33683:9;33679:17;33672:47;33736:131;33862:4;33736:131;:::i;:::-;33728:139;;33455:419;;;:::o;33880:831::-;34143:4;34181:3;34170:9;34166:19;34158:27;;34195:71;34263:1;34252:9;34248:17;34239:6;34195:71;:::i;:::-;34276:80;34352:2;34341:9;34337:18;34328:6;34276:80;:::i;:::-;34403:9;34397:4;34393:20;34388:2;34377:9;34373:18;34366:48;34431:108;34534:4;34525:6;34431:108;:::i;:::-;34423:116;;34549:72;34617:2;34606:9;34602:18;34593:6;34549:72;:::i;:::-;34631:73;34699:3;34688:9;34684:19;34675:6;34631:73;:::i;:::-;33880:831;;;;;;;;:::o;34717:348::-;34757:7;34780:20;34798:1;34780:20;:::i;:::-;34775:25;;34814:20;34832:1;34814:20;:::i;:::-;34809:25;;35002:1;34934:66;34930:74;34927:1;34924:81;34919:1;34912:9;34905:17;34901:105;34898:131;;;35009:18;;:::i;:::-;34898:131;35057:1;35054;35050:9;35039:20;;34717:348;;;;:::o;35071:180::-;35119:77;35116:1;35109:88;35216:4;35213:1;35206:15;35240:4;35237:1;35230:15;35257:185;35297:1;35314:20;35332:1;35314:20;:::i;:::-;35309:25;;35348:20;35366:1;35348:20;:::i;:::-;35343:25;;35387:1;35377:35;;35392:18;;:::i;:::-;35377:35;35434:1;35431;35427:9;35422:14;;35257:185;;;;:::o;35448:220::-;35588:34;35584:1;35576:6;35572:14;35565:58;35657:3;35652:2;35644:6;35640:15;35633:28;35448:220;:::o;35674:366::-;35816:3;35837:67;35901:2;35896:3;35837:67;:::i;:::-;35830:74;;35913:93;36002:3;35913:93;:::i;:::-;36031:2;36026:3;36022:12;36015:19;;35674:366;;;:::o;36046:419::-;36212:4;36250:2;36239:9;36235:18;36227:26;;36299:9;36293:4;36289:20;36285:1;36274:9;36270:17;36263:47;36327:131;36453:4;36327:131;:::i;:::-;36319:139;;36046:419;;;:::o;36471:807::-;36720:4;36758:3;36747:9;36743:19;36735:27;;36772:71;36840:1;36829:9;36825:17;36816:6;36772:71;:::i;:::-;36853:72;36921:2;36910:9;36906:18;36897:6;36853:72;:::i;:::-;36935:80;37011:2;37000:9;36996:18;36987:6;36935:80;:::i;:::-;37025;37101:2;37090:9;37086:18;37077:6;37025:80;:::i;:::-;37115:73;37183:3;37172:9;37168:19;37159:6;37115:73;:::i;:::-;37198;37266:3;37255:9;37251:19;37242:6;37198:73;:::i;:::-;36471:807;;;;;;;;;:::o;37284:143::-;37341:5;37372:6;37366:13;37357:22;;37388:33;37415:5;37388:33;:::i;:::-;37284:143;;;;:::o;37433:663::-;37521:6;37529;37537;37586:2;37574:9;37565:7;37561:23;37557:32;37554:119;;;37592:79;;:::i;:::-;37554:119;37712:1;37737:64;37793:7;37784:6;37773:9;37769:22;37737:64;:::i;:::-;37727:74;;37683:128;37850:2;37876:64;37932:7;37923:6;37912:9;37908:22;37876:64;:::i;:::-;37866:74;;37821:129;37989:2;38015:64;38071:7;38062:6;38051:9;38047:22;38015:64;:::i;:::-;38005:74;;37960:129;37433:663;;;;;:::o

Swarm Source

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