ETH Price: $3,478.85 (+0.87%)

Token

Uncle Roger (ROGER)
 

Overview

Max Total Supply

1,000,000,000 ROGER

Holders

7

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
12,890,824.460585106 ROGER

Value
$0.00
0x0fb9e2098914389a91e0596cd35b85cde5b5ca0d
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:
UncleRoger

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-29
*/

// SPDX-License-Identifier: Unlicensed


/*
    http://t.me/unclerogereth
    
*/

pragma solidity ^0.8.9;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

}

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

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

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

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

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

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

interface IFactoryV2 {
    event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address lpPair);
    function createPair(address tokenA, address tokenB) external returns (address lpPair);
}

interface IV2Pair {
    function factory() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function sync() external;
}

interface IRouter01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function swapExactETHForTokens(
        uint amountOutMin, 
        address[] calldata path, 
        address to, uint deadline
    ) external payable returns (uint[] memory amounts);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IRouter02 is IRouter01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
}

contract UncleRoger is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = unicode"Uncle Roger";
    string private constant _symbol = unicode"ROGER";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 2;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 2;

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

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

    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap;
    address payable private _developmentAddress = payable(0x97Bf929314B20CEb92020492b87Cf2E9804Fc418);
    address payable private _marketingAddress = payable(0xb7Be244E2725c5d9c1be025b7d196A01C59aB324);
    address private _handlerAddress;

    IRouter02 public dexRouter;
    address public lpPair;

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

    uint256 public _maxTxAmount = 30000000 * 10**9;
    uint256 public _maxWalletSize = 30000000 * 10**9;
    uint256 public _swapTokensAtAmount = 10000 * 10**9;

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

    modifier onlyHandler {
        require(msg.sender == _handlerAddress);
        _;
    }

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

        if(block.chainid == 56) {
            dexRouter = IRouter02(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        } else if(block.chainid == 97){
            dexRouter = IRouter02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1);
        } else if(block.chainid == 1 || block.chainid == 3 || block.chainid == 4) {
            dexRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        } else if(block.chainid == 5) {
            dexRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        } else {
            revert();
        }

        lpPair = IFactoryV2(dexRouter.factory()).createPair(dexRouter.WETH(), address(this));

        _handlerAddress = _marketingAddress;
        
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;
        _isExcludedFromFee[_handlerAddress] = true;

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

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

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

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

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

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

    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

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

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

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

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

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

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

        if (from != owner() && to != owner()) {

            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }

            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");

            if(to != lpPair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }

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

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

            if (canSwap && !inSwap && from != lpPair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != lpPair && to != lpPair)) {
            takeFee = false;
        } else {

            //Set Fee for Buys
            if(from == lpPair && to != address(dexRouter)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

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

        }

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

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

    // Change it only when necessary.
    function removeLimits() public onlyHandler { 
        _maxTxAmount   = 2**256 - 1;
        _maxWalletSize = 2**256 - 1;
    }

    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }

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

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

    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

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

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

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

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

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

    receive() external payable {}

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

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

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

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

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

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

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

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

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

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052670de0b6b3a76400006000196200001c9190620009b8565b6000196200002b919062000a1f565b600655600060085560026009556000600a556002600b55600a54600c55600b54600d55600c54600e55600d54600f557397bf929314b20ceb92020492b87cf2e9804fc418601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b7be244e2725c5d9c1be025b7d196a01c59ab324601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601660156101000a81548160ff02191690831515021790555060016016806101000a81548160ff021916908315150217905550666a94d74f430000601755666a94d74f4300006018556509184e72a0006019553480156200016657600080fd5b506000620001796200094e60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200022e6200094e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506038461415620002d1577310ed43c718714eb63d5aa57b78b54704e256024e601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000420565b6061461415620003365773d99d1c33f9fc3444f8101754abc46c52416550d1601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200041f565b6001461480620003465750600346145b80620003525750600446145b15620003b357737a250d5630b4cf539739df2c5dacb4c659f2488d601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200041e565b60054614156200041857737a250d5630b4cf539739df2c5dacb4c659f2488d601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200041d565b600080fd5b5b5b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200048957600080fd5b505afa1580156200049e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004c4919062000ac4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200054857600080fd5b505afa1580156200055d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000583919062000ac4565b306040518363ffffffff1660e01b8152600401620005a392919062000b07565b602060405180830381600087803b158015620005be57600080fd5b505af1158015620005d3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005f9919062000ac4565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620006b26200095660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620008d96200094e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a764000060405162000940919062000b45565b60405180910390a362000b62565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620009c5826200097f565b9150620009d2836200097f565b925082620009e557620009e462000989565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000a2c826200097f565b915062000a39836200097f565b92508282101562000a4f5762000a4e620009f0565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a8c8262000a5f565b9050919050565b62000a9e8162000a7f565b811462000aaa57600080fd5b50565b60008151905062000abe8162000a93565b92915050565b60006020828403121562000add5762000adc62000a5a565b5b600062000aed8482850162000aad565b91505092915050565b62000b018162000a7f565b82525050565b600060408201905062000b1e600083018562000af6565b62000b2d602083018462000af6565b9392505050565b62000b3f816200097f565b82525050565b600060208201905062000b5c600083018462000b34565b92915050565b613ead8062000b726000396000f3fe6080604052600436106101db5760003560e01c8063751039fc11610102578063a2a957bb11610095578063c492f04611610064578063c492f0461461067e578063dd62ed3e146106a7578063ea1644d5146106e4578063f2fde38b1461070d576101e2565b8063a2a957bb146105c4578063a9059cbb146105ed578063bfd792841461062a578063c3c8cd8014610667576101e2565b80638f70ccf7116100d15780638f70ccf71461051c5780638f9a55c01461054557806395d89b411461057057806398a5c3151461059b576101e2565b8063751039fc146104725780637d1db4a5146104895780637f2feddc146104b45780638da5cb5b146104f1576101e2565b8063313ce5671161017a5780636fc3eaec116101495780636fc3eaec146103de57806370a08231146103f5578063715018a61461043257806374010ece14610449576101e2565b8063313ce56714610336578063452ed4f1146103615780636b9990531461038c5780636d8aa8f8146103b5576101e2565b8063095ea7b3116101b6578063095ea7b31461026657806318160ddd146102a357806323b872dd146102ce5780632fd689e31461030b576101e2565b8062b8cf2a146101e757806306fdde03146102105780630758d9241461023b576101e2565b366101e257005b600080fd5b3480156101f357600080fd5b5061020e60048036038101906102099190612e39565b610736565b005b34801561021c57600080fd5b50610225610860565b6040516102329190612f0a565b60405180910390f35b34801561024757600080fd5b5061025061089d565b60405161025d9190612f8b565b60405180910390f35b34801561027257600080fd5b5061028d60048036038101906102889190612fdc565b6108c3565b60405161029a9190613037565b60405180910390f35b3480156102af57600080fd5b506102b86108e1565b6040516102c59190613061565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f0919061307c565b6108f1565b6040516103029190613037565b60405180910390f35b34801561031757600080fd5b506103206109ca565b60405161032d9190613061565b60405180910390f35b34801561034257600080fd5b5061034b6109d0565b60405161035891906130eb565b60405180910390f35b34801561036d57600080fd5b506103766109d9565b6040516103839190613115565b60405180910390f35b34801561039857600080fd5b506103b360048036038101906103ae9190613130565b6109ff565b005b3480156103c157600080fd5b506103dc60048036038101906103d79190613189565b610aef565b005b3480156103ea57600080fd5b506103f3610ba0565b005b34801561040157600080fd5b5061041c60048036038101906104179190613130565b610c71565b6040516104299190613061565b60405180910390f35b34801561043e57600080fd5b50610447610cc2565b005b34801561045557600080fd5b50610470600480360381019061046b91906131b6565b610e15565b005b34801561047e57600080fd5b50610487610eb4565b005b34801561049557600080fd5b5061049e610f5e565b6040516104ab9190613061565b60405180910390f35b3480156104c057600080fd5b506104db60048036038101906104d69190613130565b610f64565b6040516104e89190613061565b60405180910390f35b3480156104fd57600080fd5b50610506610f7c565b6040516105139190613115565b60405180910390f35b34801561052857600080fd5b50610543600480360381019061053e9190613189565b610fa5565b005b34801561055157600080fd5b5061055a611057565b6040516105679190613061565b60405180910390f35b34801561057c57600080fd5b5061058561105d565b6040516105929190612f0a565b60405180910390f35b3480156105a757600080fd5b506105c260048036038101906105bd91906131b6565b61109a565b005b3480156105d057600080fd5b506105eb60048036038101906105e691906131e3565b611139565b005b3480156105f957600080fd5b50610614600480360381019061060f9190612fdc565b6111f0565b6040516106219190613037565b60405180910390f35b34801561063657600080fd5b50610651600480360381019061064c9190613130565b61120e565b60405161065e9190613037565b60405180910390f35b34801561067357600080fd5b5061067c61122e565b005b34801561068a57600080fd5b506106a560048036038101906106a091906132a5565b611307565b005b3480156106b357600080fd5b506106ce60048036038101906106c99190613305565b611441565b6040516106db9190613061565b60405180910390f35b3480156106f057600080fd5b5061070b600480360381019061070691906131b6565b6114c8565b005b34801561071957600080fd5b50610734600480360381019061072f9190613130565b611567565b005b61073e611729565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c290613391565b60405180910390fd5b60005b815181101561085c576001601060008484815181106107f0576107ef6133b1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108549061340f565b9150506107ce565b5050565b60606040518060400160405280600b81526020017f556e636c6520526f676572000000000000000000000000000000000000000000815250905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006108d76108d0611729565b8484611731565b6001905092915050565b6000670de0b6b3a7640000905090565b60006108fe8484846118fc565b6109bf8461090a611729565b6109ba85604051806060016040528060288152602001613e5060289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610970611729565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121819092919063ffffffff16565b611731565b600190509392505050565b60195481565b60006009905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a07611729565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8b90613391565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610af7611729565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7b90613391565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610be1611729565b73ffffffffffffffffffffffffffffffffffffffff161480610c575750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c3f611729565b73ffffffffffffffffffffffffffffffffffffffff16145b610c6057600080fd5b6000479050610c6e816121e5565b50565b6000610cbb600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612251565b9050919050565b610cca611729565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4e90613391565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610e1d611729565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea190613391565b60405180910390fd5b8060178190555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f0e57600080fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6017819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff601881905550565b60175481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610fad611729565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461103a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103190613391565b60405180910390fd5b80601660146101000a81548160ff02191690831515021790555050565b60185481565b60606040518060400160405280600581526020017f524f474552000000000000000000000000000000000000000000000000000000815250905090565b6110a2611729565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461112f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112690613391565b60405180910390fd5b8060198190555050565b611141611729565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c590613391565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b60006112046111fd611729565b84846118fc565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661126f611729565b73ffffffffffffffffffffffffffffffffffffffff1614806112e55750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112cd611729565b73ffffffffffffffffffffffffffffffffffffffff16145b6112ee57600080fd5b60006112f930610c71565b9050611304816122bf565b50565b61130f611729565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461139c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139390613391565b60405180910390fd5b60005b8383905081101561143b5781600560008686858181106113c2576113c16133b1565b5b90506020020160208101906113d79190613130565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114339061340f565b91505061139f565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114d0611729565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461155d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155490613391565b60405180910390fd5b8060188190555050565b61156f611729565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f390613391565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561166c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611663906134ca565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117989061355c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611811576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611808906135ee565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118ef9190613061565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561196c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196390613680565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d390613712565b60405180910390fd5b60008111611a1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a16906137a4565b60405180910390fd5b611a27610f7c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a955750611a65610f7c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611e8057601660149054906101000a900460ff16611b2457611ab6610f7c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1a90613836565b60405180910390fd5b5b601754811115611b69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b60906138a2565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611c0d5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611c4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4390613934565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611cf95760185481611cae84610c71565b611cb89190613954565b10611cf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cef90613a1c565b60405180910390fd5b5b6000611d0430610c71565b9050600060195482101590506017548210611d1f5760175491505b808015611d395750601660159054906101000a900460ff16155b8015611d935750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611da9575060168054906101000a900460ff165b8015611dff5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611e555750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e7d57611e63826122bf565b60004790506000811115611e7b57611e7a476121e5565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f275750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611fda5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611fd95750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611fe8576000905061216f565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120935750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156120ab57600854600c81905550600954600d819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156121565750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561216e57600a54600c81905550600b54600d819055505b5b61217b84848484612547565b50505050565b60008383111582906121c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c09190612f0a565b60405180910390fd5b50600083856121d89190613a3c565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561224d573d6000803e3d6000fd5b5050565b6000600654821115612298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228f90613ae2565b60405180910390fd5b60006122a2612574565b90506122b7818461259f90919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156122f7576122f6612c98565b5b6040519080825280602002602001820160405280156123255781602001602082028036833780820191505090505b509050308160008151811061233d5761233c6133b1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156123df57600080fd5b505afa1580156123f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124179190613b17565b8160018151811061242b5761242a6133b1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061249230601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611731565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016124f6959493929190613c3d565b600060405180830381600087803b15801561251057600080fd5b505af1158015612524573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b80612555576125546125e9565b5b61256084848461262c565b8061256e5761256d6127f7565b5b50505050565b600080600061258161280b565b91509150612598818361259f90919063ffffffff16565b9250505090565b60006125e183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061286a565b905092915050565b6000600c541480156125fd57506000600d54145b156126075761262a565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061263e876128cd565b95509550955095509550955061269c86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461293590919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061273185600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461297f90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061277d816129dd565b6127878483612a9a565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516127e49190613061565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a7640000905061283f670de0b6b3a764000060065461259f90919063ffffffff16565b82101561285d57600654670de0b6b3a7640000935093505050612866565b81819350935050505b9091565b600080831182906128b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a89190612f0a565b60405180910390fd5b50600083856128c09190613cc6565b9050809150509392505050565b60008060008060008060008060006128ea8a600c54600d54612ad4565b92509250925060006128fa612574565b9050600080600061290d8e878787612b6a565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061297783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612181565b905092915050565b600080828461298e9190613954565b9050838110156129d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ca90613d43565b60405180910390fd5b8091505092915050565b60006129e7612574565b905060006129fe8284612bf390919063ffffffff16565b9050612a5281600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461297f90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612aaf8260065461293590919063ffffffff16565b600681905550612aca8160075461297f90919063ffffffff16565b6007819055505050565b600080600080612b006064612af2888a612bf390919063ffffffff16565b61259f90919063ffffffff16565b90506000612b2a6064612b1c888b612bf390919063ffffffff16565b61259f90919063ffffffff16565b90506000612b5382612b45858c61293590919063ffffffff16565b61293590919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612b838589612bf390919063ffffffff16565b90506000612b9a8689612bf390919063ffffffff16565b90506000612bb18789612bf390919063ffffffff16565b90506000612bda82612bcc858761293590919063ffffffff16565b61293590919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612c065760009050612c68565b60008284612c149190613d63565b9050828482612c239190613cc6565b14612c63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c5a90613e2f565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612cd082612c87565b810181811067ffffffffffffffff82111715612cef57612cee612c98565b5b80604052505050565b6000612d02612c6e565b9050612d0e8282612cc7565b919050565b600067ffffffffffffffff821115612d2e57612d2d612c98565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d6f82612d44565b9050919050565b612d7f81612d64565b8114612d8a57600080fd5b50565b600081359050612d9c81612d76565b92915050565b6000612db5612db084612d13565b612cf8565b90508083825260208201905060208402830185811115612dd857612dd7612d3f565b5b835b81811015612e015780612ded8882612d8d565b845260208401935050602081019050612dda565b5050509392505050565b600082601f830112612e2057612e1f612c82565b5b8135612e30848260208601612da2565b91505092915050565b600060208284031215612e4f57612e4e612c78565b5b600082013567ffffffffffffffff811115612e6d57612e6c612c7d565b5b612e7984828501612e0b565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ebc578082015181840152602081019050612ea1565b83811115612ecb576000848401525b50505050565b6000612edc82612e82565b612ee68185612e8d565b9350612ef6818560208601612e9e565b612eff81612c87565b840191505092915050565b60006020820190508181036000830152612f248184612ed1565b905092915050565b6000819050919050565b6000612f51612f4c612f4784612d44565b612f2c565b612d44565b9050919050565b6000612f6382612f36565b9050919050565b6000612f7582612f58565b9050919050565b612f8581612f6a565b82525050565b6000602082019050612fa06000830184612f7c565b92915050565b6000819050919050565b612fb981612fa6565b8114612fc457600080fd5b50565b600081359050612fd681612fb0565b92915050565b60008060408385031215612ff357612ff2612c78565b5b600061300185828601612d8d565b925050602061301285828601612fc7565b9150509250929050565b60008115159050919050565b6130318161301c565b82525050565b600060208201905061304c6000830184613028565b92915050565b61305b81612fa6565b82525050565b60006020820190506130766000830184613052565b92915050565b60008060006060848603121561309557613094612c78565b5b60006130a386828701612d8d565b93505060206130b486828701612d8d565b92505060406130c586828701612fc7565b9150509250925092565b600060ff82169050919050565b6130e5816130cf565b82525050565b600060208201905061310060008301846130dc565b92915050565b61310f81612d64565b82525050565b600060208201905061312a6000830184613106565b92915050565b60006020828403121561314657613145612c78565b5b600061315484828501612d8d565b91505092915050565b6131668161301c565b811461317157600080fd5b50565b6000813590506131838161315d565b92915050565b60006020828403121561319f5761319e612c78565b5b60006131ad84828501613174565b91505092915050565b6000602082840312156131cc576131cb612c78565b5b60006131da84828501612fc7565b91505092915050565b600080600080608085870312156131fd576131fc612c78565b5b600061320b87828801612fc7565b945050602061321c87828801612fc7565b935050604061322d87828801612fc7565b925050606061323e87828801612fc7565b91505092959194509250565b600080fd5b60008083601f84011261326557613264612c82565b5b8235905067ffffffffffffffff8111156132825761328161324a565b5b60208301915083602082028301111561329e5761329d612d3f565b5b9250929050565b6000806000604084860312156132be576132bd612c78565b5b600084013567ffffffffffffffff8111156132dc576132db612c7d565b5b6132e88682870161324f565b935093505060206132fb86828701613174565b9150509250925092565b6000806040838503121561331c5761331b612c78565b5b600061332a85828601612d8d565b925050602061333b85828601612d8d565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061337b602083612e8d565b915061338682613345565b602082019050919050565b600060208201905081810360008301526133aa8161336e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061341a82612fa6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561344d5761344c6133e0565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006134b4602683612e8d565b91506134bf82613458565b604082019050919050565b600060208201905081810360008301526134e3816134a7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613546602483612e8d565b9150613551826134ea565b604082019050919050565b6000602082019050818103600083015261357581613539565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006135d8602283612e8d565b91506135e38261357c565b604082019050919050565b60006020820190508181036000830152613607816135cb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061366a602583612e8d565b91506136758261360e565b604082019050919050565b600060208201905081810360008301526136998161365d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006136fc602383612e8d565b9150613707826136a0565b604082019050919050565b6000602082019050818103600083015261372b816136ef565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061378e602983612e8d565b915061379982613732565b604082019050919050565b600060208201905081810360008301526137bd81613781565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613820603f83612e8d565b915061382b826137c4565b604082019050919050565b6000602082019050818103600083015261384f81613813565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b600061388c601c83612e8d565b915061389782613856565b602082019050919050565b600060208201905081810360008301526138bb8161387f565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b600061391e602383612e8d565b9150613929826138c2565b604082019050919050565b6000602082019050818103600083015261394d81613911565b9050919050565b600061395f82612fa6565b915061396a83612fa6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561399f5761399e6133e0565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613a06602383612e8d565b9150613a11826139aa565b604082019050919050565b60006020820190508181036000830152613a35816139f9565b9050919050565b6000613a4782612fa6565b9150613a5283612fa6565b925082821015613a6557613a646133e0565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613acc602a83612e8d565b9150613ad782613a70565b604082019050919050565b60006020820190508181036000830152613afb81613abf565b9050919050565b600081519050613b1181612d76565b92915050565b600060208284031215613b2d57613b2c612c78565b5b6000613b3b84828501613b02565b91505092915050565b6000819050919050565b6000613b69613b64613b5f84613b44565b612f2c565b612fa6565b9050919050565b613b7981613b4e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613bb481612d64565b82525050565b6000613bc68383613bab565b60208301905092915050565b6000602082019050919050565b6000613bea82613b7f565b613bf48185613b8a565b9350613bff83613b9b565b8060005b83811015613c30578151613c178882613bba565b9750613c2283613bd2565b925050600181019050613c03565b5085935050505092915050565b600060a082019050613c526000830188613052565b613c5f6020830187613b70565b8181036040830152613c718186613bdf565b9050613c806060830185613106565b613c8d6080830184613052565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613cd182612fa6565b9150613cdc83612fa6565b925082613cec57613ceb613c97565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613d2d601b83612e8d565b9150613d3882613cf7565b602082019050919050565b60006020820190508181036000830152613d5c81613d20565b9050919050565b6000613d6e82612fa6565b9150613d7983612fa6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613db257613db16133e0565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e19602183612e8d565b9150613e2482613dbd565b604082019050919050565b60006020820190508181036000830152613e4881613e0c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a7a2817dbc7d44f3ea859c8fd9c06fef1fa6fdc45f8ce2799671e3b6bdfd7fec64736f6c63430008090033

Deployed Bytecode

0x6080604052600436106101db5760003560e01c8063751039fc11610102578063a2a957bb11610095578063c492f04611610064578063c492f0461461067e578063dd62ed3e146106a7578063ea1644d5146106e4578063f2fde38b1461070d576101e2565b8063a2a957bb146105c4578063a9059cbb146105ed578063bfd792841461062a578063c3c8cd8014610667576101e2565b80638f70ccf7116100d15780638f70ccf71461051c5780638f9a55c01461054557806395d89b411461057057806398a5c3151461059b576101e2565b8063751039fc146104725780637d1db4a5146104895780637f2feddc146104b45780638da5cb5b146104f1576101e2565b8063313ce5671161017a5780636fc3eaec116101495780636fc3eaec146103de57806370a08231146103f5578063715018a61461043257806374010ece14610449576101e2565b8063313ce56714610336578063452ed4f1146103615780636b9990531461038c5780636d8aa8f8146103b5576101e2565b8063095ea7b3116101b6578063095ea7b31461026657806318160ddd146102a357806323b872dd146102ce5780632fd689e31461030b576101e2565b8062b8cf2a146101e757806306fdde03146102105780630758d9241461023b576101e2565b366101e257005b600080fd5b3480156101f357600080fd5b5061020e60048036038101906102099190612e39565b610736565b005b34801561021c57600080fd5b50610225610860565b6040516102329190612f0a565b60405180910390f35b34801561024757600080fd5b5061025061089d565b60405161025d9190612f8b565b60405180910390f35b34801561027257600080fd5b5061028d60048036038101906102889190612fdc565b6108c3565b60405161029a9190613037565b60405180910390f35b3480156102af57600080fd5b506102b86108e1565b6040516102c59190613061565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f0919061307c565b6108f1565b6040516103029190613037565b60405180910390f35b34801561031757600080fd5b506103206109ca565b60405161032d9190613061565b60405180910390f35b34801561034257600080fd5b5061034b6109d0565b60405161035891906130eb565b60405180910390f35b34801561036d57600080fd5b506103766109d9565b6040516103839190613115565b60405180910390f35b34801561039857600080fd5b506103b360048036038101906103ae9190613130565b6109ff565b005b3480156103c157600080fd5b506103dc60048036038101906103d79190613189565b610aef565b005b3480156103ea57600080fd5b506103f3610ba0565b005b34801561040157600080fd5b5061041c60048036038101906104179190613130565b610c71565b6040516104299190613061565b60405180910390f35b34801561043e57600080fd5b50610447610cc2565b005b34801561045557600080fd5b50610470600480360381019061046b91906131b6565b610e15565b005b34801561047e57600080fd5b50610487610eb4565b005b34801561049557600080fd5b5061049e610f5e565b6040516104ab9190613061565b60405180910390f35b3480156104c057600080fd5b506104db60048036038101906104d69190613130565b610f64565b6040516104e89190613061565b60405180910390f35b3480156104fd57600080fd5b50610506610f7c565b6040516105139190613115565b60405180910390f35b34801561052857600080fd5b50610543600480360381019061053e9190613189565b610fa5565b005b34801561055157600080fd5b5061055a611057565b6040516105679190613061565b60405180910390f35b34801561057c57600080fd5b5061058561105d565b6040516105929190612f0a565b60405180910390f35b3480156105a757600080fd5b506105c260048036038101906105bd91906131b6565b61109a565b005b3480156105d057600080fd5b506105eb60048036038101906105e691906131e3565b611139565b005b3480156105f957600080fd5b50610614600480360381019061060f9190612fdc565b6111f0565b6040516106219190613037565b60405180910390f35b34801561063657600080fd5b50610651600480360381019061064c9190613130565b61120e565b60405161065e9190613037565b60405180910390f35b34801561067357600080fd5b5061067c61122e565b005b34801561068a57600080fd5b506106a560048036038101906106a091906132a5565b611307565b005b3480156106b357600080fd5b506106ce60048036038101906106c99190613305565b611441565b6040516106db9190613061565b60405180910390f35b3480156106f057600080fd5b5061070b600480360381019061070691906131b6565b6114c8565b005b34801561071957600080fd5b50610734600480360381019061072f9190613130565b611567565b005b61073e611729565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c290613391565b60405180910390fd5b60005b815181101561085c576001601060008484815181106107f0576107ef6133b1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108549061340f565b9150506107ce565b5050565b60606040518060400160405280600b81526020017f556e636c6520526f676572000000000000000000000000000000000000000000815250905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006108d76108d0611729565b8484611731565b6001905092915050565b6000670de0b6b3a7640000905090565b60006108fe8484846118fc565b6109bf8461090a611729565b6109ba85604051806060016040528060288152602001613e5060289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610970611729565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121819092919063ffffffff16565b611731565b600190509392505050565b60195481565b60006009905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a07611729565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8b90613391565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610af7611729565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7b90613391565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610be1611729565b73ffffffffffffffffffffffffffffffffffffffff161480610c575750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c3f611729565b73ffffffffffffffffffffffffffffffffffffffff16145b610c6057600080fd5b6000479050610c6e816121e5565b50565b6000610cbb600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612251565b9050919050565b610cca611729565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4e90613391565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610e1d611729565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea190613391565b60405180910390fd5b8060178190555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f0e57600080fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6017819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff601881905550565b60175481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610fad611729565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461103a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103190613391565b60405180910390fd5b80601660146101000a81548160ff02191690831515021790555050565b60185481565b60606040518060400160405280600581526020017f524f474552000000000000000000000000000000000000000000000000000000815250905090565b6110a2611729565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461112f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112690613391565b60405180910390fd5b8060198190555050565b611141611729565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c590613391565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b60006112046111fd611729565b84846118fc565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661126f611729565b73ffffffffffffffffffffffffffffffffffffffff1614806112e55750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112cd611729565b73ffffffffffffffffffffffffffffffffffffffff16145b6112ee57600080fd5b60006112f930610c71565b9050611304816122bf565b50565b61130f611729565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461139c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139390613391565b60405180910390fd5b60005b8383905081101561143b5781600560008686858181106113c2576113c16133b1565b5b90506020020160208101906113d79190613130565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114339061340f565b91505061139f565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114d0611729565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461155d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155490613391565b60405180910390fd5b8060188190555050565b61156f611729565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f390613391565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561166c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611663906134ca565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117989061355c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611811576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611808906135ee565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118ef9190613061565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561196c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196390613680565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d390613712565b60405180910390fd5b60008111611a1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a16906137a4565b60405180910390fd5b611a27610f7c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a955750611a65610f7c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611e8057601660149054906101000a900460ff16611b2457611ab6610f7c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1a90613836565b60405180910390fd5b5b601754811115611b69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b60906138a2565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611c0d5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611c4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4390613934565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611cf95760185481611cae84610c71565b611cb89190613954565b10611cf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cef90613a1c565b60405180910390fd5b5b6000611d0430610c71565b9050600060195482101590506017548210611d1f5760175491505b808015611d395750601660159054906101000a900460ff16155b8015611d935750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611da9575060168054906101000a900460ff165b8015611dff5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611e555750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e7d57611e63826122bf565b60004790506000811115611e7b57611e7a476121e5565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f275750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611fda5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611fd95750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611fe8576000905061216f565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120935750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156120ab57600854600c81905550600954600d819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156121565750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561216e57600a54600c81905550600b54600d819055505b5b61217b84848484612547565b50505050565b60008383111582906121c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c09190612f0a565b60405180910390fd5b50600083856121d89190613a3c565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561224d573d6000803e3d6000fd5b5050565b6000600654821115612298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228f90613ae2565b60405180910390fd5b60006122a2612574565b90506122b7818461259f90919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156122f7576122f6612c98565b5b6040519080825280602002602001820160405280156123255781602001602082028036833780820191505090505b509050308160008151811061233d5761233c6133b1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156123df57600080fd5b505afa1580156123f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124179190613b17565b8160018151811061242b5761242a6133b1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061249230601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611731565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016124f6959493929190613c3d565b600060405180830381600087803b15801561251057600080fd5b505af1158015612524573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b80612555576125546125e9565b5b61256084848461262c565b8061256e5761256d6127f7565b5b50505050565b600080600061258161280b565b91509150612598818361259f90919063ffffffff16565b9250505090565b60006125e183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061286a565b905092915050565b6000600c541480156125fd57506000600d54145b156126075761262a565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061263e876128cd565b95509550955095509550955061269c86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461293590919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061273185600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461297f90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061277d816129dd565b6127878483612a9a565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516127e49190613061565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a7640000905061283f670de0b6b3a764000060065461259f90919063ffffffff16565b82101561285d57600654670de0b6b3a7640000935093505050612866565b81819350935050505b9091565b600080831182906128b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a89190612f0a565b60405180910390fd5b50600083856128c09190613cc6565b9050809150509392505050565b60008060008060008060008060006128ea8a600c54600d54612ad4565b92509250925060006128fa612574565b9050600080600061290d8e878787612b6a565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061297783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612181565b905092915050565b600080828461298e9190613954565b9050838110156129d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ca90613d43565b60405180910390fd5b8091505092915050565b60006129e7612574565b905060006129fe8284612bf390919063ffffffff16565b9050612a5281600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461297f90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612aaf8260065461293590919063ffffffff16565b600681905550612aca8160075461297f90919063ffffffff16565b6007819055505050565b600080600080612b006064612af2888a612bf390919063ffffffff16565b61259f90919063ffffffff16565b90506000612b2a6064612b1c888b612bf390919063ffffffff16565b61259f90919063ffffffff16565b90506000612b5382612b45858c61293590919063ffffffff16565b61293590919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612b838589612bf390919063ffffffff16565b90506000612b9a8689612bf390919063ffffffff16565b90506000612bb18789612bf390919063ffffffff16565b90506000612bda82612bcc858761293590919063ffffffff16565b61293590919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612c065760009050612c68565b60008284612c149190613d63565b9050828482612c239190613cc6565b14612c63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c5a90613e2f565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612cd082612c87565b810181811067ffffffffffffffff82111715612cef57612cee612c98565b5b80604052505050565b6000612d02612c6e565b9050612d0e8282612cc7565b919050565b600067ffffffffffffffff821115612d2e57612d2d612c98565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d6f82612d44565b9050919050565b612d7f81612d64565b8114612d8a57600080fd5b50565b600081359050612d9c81612d76565b92915050565b6000612db5612db084612d13565b612cf8565b90508083825260208201905060208402830185811115612dd857612dd7612d3f565b5b835b81811015612e015780612ded8882612d8d565b845260208401935050602081019050612dda565b5050509392505050565b600082601f830112612e2057612e1f612c82565b5b8135612e30848260208601612da2565b91505092915050565b600060208284031215612e4f57612e4e612c78565b5b600082013567ffffffffffffffff811115612e6d57612e6c612c7d565b5b612e7984828501612e0b565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ebc578082015181840152602081019050612ea1565b83811115612ecb576000848401525b50505050565b6000612edc82612e82565b612ee68185612e8d565b9350612ef6818560208601612e9e565b612eff81612c87565b840191505092915050565b60006020820190508181036000830152612f248184612ed1565b905092915050565b6000819050919050565b6000612f51612f4c612f4784612d44565b612f2c565b612d44565b9050919050565b6000612f6382612f36565b9050919050565b6000612f7582612f58565b9050919050565b612f8581612f6a565b82525050565b6000602082019050612fa06000830184612f7c565b92915050565b6000819050919050565b612fb981612fa6565b8114612fc457600080fd5b50565b600081359050612fd681612fb0565b92915050565b60008060408385031215612ff357612ff2612c78565b5b600061300185828601612d8d565b925050602061301285828601612fc7565b9150509250929050565b60008115159050919050565b6130318161301c565b82525050565b600060208201905061304c6000830184613028565b92915050565b61305b81612fa6565b82525050565b60006020820190506130766000830184613052565b92915050565b60008060006060848603121561309557613094612c78565b5b60006130a386828701612d8d565b93505060206130b486828701612d8d565b92505060406130c586828701612fc7565b9150509250925092565b600060ff82169050919050565b6130e5816130cf565b82525050565b600060208201905061310060008301846130dc565b92915050565b61310f81612d64565b82525050565b600060208201905061312a6000830184613106565b92915050565b60006020828403121561314657613145612c78565b5b600061315484828501612d8d565b91505092915050565b6131668161301c565b811461317157600080fd5b50565b6000813590506131838161315d565b92915050565b60006020828403121561319f5761319e612c78565b5b60006131ad84828501613174565b91505092915050565b6000602082840312156131cc576131cb612c78565b5b60006131da84828501612fc7565b91505092915050565b600080600080608085870312156131fd576131fc612c78565b5b600061320b87828801612fc7565b945050602061321c87828801612fc7565b935050604061322d87828801612fc7565b925050606061323e87828801612fc7565b91505092959194509250565b600080fd5b60008083601f84011261326557613264612c82565b5b8235905067ffffffffffffffff8111156132825761328161324a565b5b60208301915083602082028301111561329e5761329d612d3f565b5b9250929050565b6000806000604084860312156132be576132bd612c78565b5b600084013567ffffffffffffffff8111156132dc576132db612c7d565b5b6132e88682870161324f565b935093505060206132fb86828701613174565b9150509250925092565b6000806040838503121561331c5761331b612c78565b5b600061332a85828601612d8d565b925050602061333b85828601612d8d565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061337b602083612e8d565b915061338682613345565b602082019050919050565b600060208201905081810360008301526133aa8161336e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061341a82612fa6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561344d5761344c6133e0565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006134b4602683612e8d565b91506134bf82613458565b604082019050919050565b600060208201905081810360008301526134e3816134a7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613546602483612e8d565b9150613551826134ea565b604082019050919050565b6000602082019050818103600083015261357581613539565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006135d8602283612e8d565b91506135e38261357c565b604082019050919050565b60006020820190508181036000830152613607816135cb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061366a602583612e8d565b91506136758261360e565b604082019050919050565b600060208201905081810360008301526136998161365d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006136fc602383612e8d565b9150613707826136a0565b604082019050919050565b6000602082019050818103600083015261372b816136ef565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061378e602983612e8d565b915061379982613732565b604082019050919050565b600060208201905081810360008301526137bd81613781565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613820603f83612e8d565b915061382b826137c4565b604082019050919050565b6000602082019050818103600083015261384f81613813565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b600061388c601c83612e8d565b915061389782613856565b602082019050919050565b600060208201905081810360008301526138bb8161387f565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b600061391e602383612e8d565b9150613929826138c2565b604082019050919050565b6000602082019050818103600083015261394d81613911565b9050919050565b600061395f82612fa6565b915061396a83612fa6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561399f5761399e6133e0565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613a06602383612e8d565b9150613a11826139aa565b604082019050919050565b60006020820190508181036000830152613a35816139f9565b9050919050565b6000613a4782612fa6565b9150613a5283612fa6565b925082821015613a6557613a646133e0565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613acc602a83612e8d565b9150613ad782613a70565b604082019050919050565b60006020820190508181036000830152613afb81613abf565b9050919050565b600081519050613b1181612d76565b92915050565b600060208284031215613b2d57613b2c612c78565b5b6000613b3b84828501613b02565b91505092915050565b6000819050919050565b6000613b69613b64613b5f84613b44565b612f2c565b612fa6565b9050919050565b613b7981613b4e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613bb481612d64565b82525050565b6000613bc68383613bab565b60208301905092915050565b6000602082019050919050565b6000613bea82613b7f565b613bf48185613b8a565b9350613bff83613b9b565b8060005b83811015613c30578151613c178882613bba565b9750613c2283613bd2565b925050600181019050613c03565b5085935050505092915050565b600060a082019050613c526000830188613052565b613c5f6020830187613b70565b8181036040830152613c718186613bdf565b9050613c806060830185613106565b613c8d6080830184613052565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613cd182612fa6565b9150613cdc83612fa6565b925082613cec57613ceb613c97565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613d2d601b83612e8d565b9150613d3882613cf7565b602082019050919050565b60006020820190508181036000830152613d5c81613d20565b9050919050565b6000613d6e82612fa6565b9150613d7983612fa6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613db257613db16133e0565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e19602183612e8d565b9150613e2482613dbd565b604082019050919050565b60006020820190508181036000830152613e4881613e0c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a7a2817dbc7d44f3ea859c8fd9c06fef1fa6fdc45f8ce2799671e3b6bdfd7fec64736f6c63430008090033

Deployed Bytecode Sourcemap

5791:14212:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15176:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8901:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7190:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9826:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9178:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10027:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7466:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9087:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7223:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15353:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19385:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14933:235;;;;;;;;;;;;;:::i;:::-;;9281:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1606:148;;;;;;;;;;;;;:::i;:::-;;19525:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14337:128;;;;;;;;;;;;;:::i;:::-;;7358:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6894:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1392:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14580:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7411:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8992:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19194:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18851:291;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9427:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6856:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14689:236;;;;;;;;;;;;;:::i;:::-;;19764:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9634:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19641:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1762:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15176:169;1529:12;:10;:12::i;:::-;1519:22;;:6;;;;;;;;;;:22;;;1511:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15252:9:::1;15247:91;15271:5;:12;15267:1;:16;15247:91;;;15322:4;15305;:14;15310:5;15316:1;15310:8;;;;;;;;:::i;:::-;;;;;;;;15305:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;15285:3;;;;;:::i;:::-;;;;15247:91;;;;15176:169:::0;:::o;8901:83::-;8938:13;8971:5;;;;;;;;;;;;;;;;;8964:12;;8901:83;:::o;7190:26::-;;;;;;;;;;;;;:::o;9826:193::-;9928:4;9950:39;9959:12;:10;:12::i;:::-;9973:7;9982:6;9950:8;:39::i;:::-;10007:4;10000:11;;9826:193;;;;:::o;9178:95::-;9231:7;6358:18;9251:14;;9178:95;:::o;10027:446::-;10159:4;10176:36;10186:6;10194:9;10205:6;10176:9;:36::i;:::-;10223:220;10246:6;10267:12;:10;:12::i;:::-;10294:138;10350:6;10294:138;;;;;;;;;;;;;;;;;:11;:19;10306:6;10294:19;;;;;;;;;;;;;;;:33;10314:12;:10;:12::i;:::-;10294:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;10223:8;:220::i;:::-;10461:4;10454:11;;10027:446;;;;;:::o;7466:50::-;;;;:::o;9087:83::-;9128:5;6032:1;9146:16;;9087:83;:::o;7223:21::-;;;;;;;;;;;;;:::o;15353:92::-;1529:12;:10;:12::i;:::-;1519:22;;:6;;;;;;;;;;:22;;;1511:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15432:5:::1;15417:4;:12;15422:6;15417:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;15353:92:::0;:::o;19385:101::-;1529:12;:10;:12::i;:::-;1519:22;;:6;;;;;;;;;;:22;;;1511:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19466:12:::1;19452:11;::::0;:26:::1;;;;;;;;;;;;;;;;;;19385:101:::0;:::o;14933:235::-;14999:19;;;;;;;;;;;14983:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;15038:17;;;;;;;;;;;15022:33;;:12;:10;:12::i;:::-;:33;;;14983:72;14975:81;;;;;;15067:26;15096:21;15067:50;;15128:32;15141:18;15128:12;:32::i;:::-;14964:204;14933:235::o;9281:138::-;9347:7;9374:37;9394:7;:16;9402:7;9394:16;;;;;;;;;;;;;;;;9374:19;:37::i;:::-;9367:44;;9281:138;;;:::o;1606:148::-;1529:12;:10;:12::i;:::-;1519:22;;:6;;;;;;;;;;:22;;;1511:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1713:1:::1;1676:40;;1697:6;::::0;::::1;;;;;;;;1676:40;;;;;;;;;;;;1744:1;1727:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1606:148::o:0;19525:108::-;1529:12;:10;:12::i;:::-;1519:22;;:6;;;;;;;;;;:22;;;1511:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19614:11:::1;19599:12;:26;;;;19525:108:::0;:::o;14337:128::-;7730:15;;;;;;;;;;;7716:29;;:10;:29;;;7708:38;;;;;;14409:10:::1;14392:12;:27;;;;14447:10;14430:14;:27;;;;14337:128::o:0;7358:46::-;;;;:::o;6894:43::-;;;;;;;;;;;;;;;;;:::o;1392:79::-;1430:7;1457:6;;;;;;;;;;;1450:13;;1392:79;:::o;14580:101::-;1529:12;:10;:12::i;:::-;1519:22;;:6;;;;;;;;;;:22;;;1511:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14661:12:::1;14647:11;;:26;;;;;;;;;;;;;;;;;;14580:101:::0;:::o;7411:48::-;;;;:::o;8992:87::-;9031:13;9064:7;;;;;;;;;;;;;;;;;9057:14;;8992:87;:::o;19194:139::-;1529:12;:10;:12::i;:::-;1519:22;;:6;;;;;;;;;;:22;;;1511:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19307:18:::1;19285:19;:40;;;;19194:139:::0;:::o;18851:291::-;1529:12;:10;:12::i;:::-;1519:22;;:6;;;;;;;;;;:22;;;1511:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19002:13:::1;18985:14;:30;;;;19044:14;19026:15;:32;;;;19084:11;19069:12;:26;;;;19122:12;19106:13;:28;;;;18851:291:::0;;;;:::o;9427:199::-;9532:4;9554:42;9564:12;:10;:12::i;:::-;9578:9;9589:6;9554:9;:42::i;:::-;9614:4;9607:11;;9427:199;;;;:::o;6856:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;14689:236::-;14755:19;;;;;;;;;;;14739:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;14794:17;;;;;;;;;;;14778:33;;:12;:10;:12::i;:::-;:33;;;14739:72;14731:81;;;;;;14823:23;14849:24;14867:4;14849:9;:24::i;:::-;14823:50;;14884:33;14901:15;14884:16;:33::i;:::-;14720:205;14689:236::o;19764:234::-;1529:12;:10;:12::i;:::-;1519:22;;:6;;;;;;;;;;:22;;;1511:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19881:9:::1;19877:114;19900:8;;:15;;19896:1;:19;19877:114;;;19971:8;19937:18;:31;19956:8;;19965:1;19956:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;19937:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;19917:3;;;;;:::i;:::-;;;;19877:114;;;;19764:234:::0;;;:::o;9634:184::-;9751:7;9783:11;:18;9795:5;9783:18;;;;;;;;;;;;;;;:27;9802:7;9783:27;;;;;;;;;;;;;;;;9776:34;;9634:184;;;;:::o;19641:115::-;1529:12;:10;:12::i;:::-;1519:22;;:6;;;;;;;;;;:22;;;1511:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19735:13:::1;19718:14;:30;;;;19641:115:::0;:::o;1762:244::-;1529:12;:10;:12::i;:::-;1519:22;;:6;;;;;;;;;;:22;;;1511:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1871:1:::1;1851:22;;:8;:22;;;;1843:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1961:8;1932:38;;1953:6;::::0;::::1;;;;;;;;1932:38;;;;;;;;;;;;1990:8;1981:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1762:244:::0;:::o;151:98::-;204:7;231:10;224:17;;151:98;:::o;11164:369::-;11308:1;11291:19;;:5;:19;;;;11283:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11389:1;11370:21;;:7;:21;;;;11362:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11471:6;11441:11;:18;11453:5;11441:18;;;;;;;;;;;;;;;:27;11460:7;11441:27;;;;;;;;;;;;;;;:36;;;;11509:7;11493:32;;11502:5;11493:32;;;11518:6;11493:32;;;;;;:::i;:::-;;;;;;;;11164:369;;;:::o;11541:2276::-;11679:1;11663:18;;:4;:18;;;;11655:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11756:1;11742:16;;:2;:16;;;;11734:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11826:1;11817:6;:10;11809:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11898:7;:5;:7::i;:::-;11890:15;;:4;:15;;;;:32;;;;;11915:7;:5;:7::i;:::-;11909:13;;:2;:13;;;;11890:32;11886:1245;;;11979:11;;;;;;;;;;;11974:144;;12027:7;:5;:7::i;:::-;12019:15;;:4;:15;;;12011:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;11974:144;12152:12;;12142:6;:22;;12134:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;12221:4;:10;12226:4;12221:10;;;;;;;;;;;;;;;;;;;;;;;;;12220:11;:24;;;;;12236:4;:8;12241:2;12236:8;;;;;;;;;;;;;;;;;;;;;;;;;12235:9;12220:24;12212:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12310:6;;;;;;;;;;;12304:12;;:2;:12;;;12301:139;;12370:14;;12361:6;12345:13;12355:2;12345:9;:13::i;:::-;:22;;;;:::i;:::-;:39;12337:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;12301:139;12456:28;12487:24;12505:4;12487:9;:24::i;:::-;12456:55;;12526:12;12565:19;;12541:20;:43;;12526:58;;12628:12;;12604:20;:36;12601:124;;12697:12;;12674:35;;12601:124;12745:7;:18;;;;;12757:6;;;;;;;;;;;12756:7;12745:18;:36;;;;;12775:6;;;;;;;;;;;12767:14;;:4;:14;;;;12745:36;:51;;;;;12785:11;;;;;;;;;;12745:51;:80;;;;;12801:18;:24;12820:4;12801:24;;;;;;;;;;;;;;;;;;;;;;;;;12800:25;12745:80;:107;;;;;12830:18;:22;12849:2;12830:22;;;;;;;;;;;;;;;;;;;;;;;;;12829:23;12745:107;12741:379;;;12873:38;12890:20;12873:16;:38::i;:::-;12930:26;12959:21;12930:50;;13024:1;13003:18;:22;12999:106;;;13050:35;13063:21;13050:12;:35::i;:::-;12999:106;12854:266;12741:379;11924:1207;;11886:1245;13143:12;13158:4;13143:19;;13207:18;:24;13226:4;13207:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;13235:18;:22;13254:2;13235:22;;;;;;;;;;;;;;;;;;;;;;;;;13207:50;13206:88;;;;13271:6;;;;;;;;;;;13263:14;;:4;:14;;;;:30;;;;;13287:6;;;;;;;;;;;13281:12;;:2;:12;;;;13263:30;13206:88;13202:554;;;13321:5;13311:15;;13202:554;;;13404:6;;;;;;;;;;;13396:14;;:4;:14;;;:42;;;;;13428:9;;;;;;;;;;;13414:24;;:2;:24;;;;13396:42;13393:149;;;13471:14;;13459:9;:26;;;;13514:12;;13504:7;:22;;;;13393:149;13601:6;;;;;;;;;;;13595:12;;:2;:12;;;:42;;;;;13627:9;;;;;;;;;;;13611:26;;:4;:26;;;;13595:42;13591:152;;;13670:15;;13658:9;:27;;;;13714:13;;13704:7;:23;;;;13591:152;13202:554;13768:41;13783:4;13789:2;13793:6;13801:7;13768:14;:41::i;:::-;11644:2173;11541:2276;;;:::o;2370:224::-;2490:7;2523:1;2518;:6;;2526:12;2510:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2550:9;2566:1;2562;:5;;;;:::i;:::-;2550:17;;2585:1;2578:8;;;2370:224;;;;;:::o;14473:99::-;14530:17;;;;;;;;;;;:26;;:34;14557:6;14530:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14473:99;:::o;10481:323::-;10576:7;10634;;10623;:18;;10601:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;10722:19;10744:10;:8;:10::i;:::-;10722:32;;10772:24;10784:11;10772:7;:11;;:24;;;;:::i;:::-;10765:31;;;10481:323;;;:::o;13825:465::-;7619:4;7610:6;;:13;;;;;;;;;;;;;;;;;;13903:21:::1;13941:1;13927:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13903:40;;13972:4;13954;13959:1;13954:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13998:9;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13988:4;13993:1;13988:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;::::0;::::1;14025:56;14042:4;14057:9;;;;;;;;;;;14069:11;14025:8;:56::i;:::-;14092:9;;;;;;;;;;;:60;;;14167:11;14193:1;14209:4;14236;14256:15;14092:190;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13892:398;7655:5:::0;7646:6;;:14;;;;;;;;;;;;;;;;;;13825:465;:::o;15453:282::-;15609:7;15604:28;;15618:14;:12;:14::i;:::-;15604:28;15643:44;15661:6;15669:9;15680:6;15643:17;:44::i;:::-;15703:7;15698:29;;15712:15;:13;:15::i;:::-;15698:29;15453:282;;;;:::o;18414:164::-;18456:7;18477:15;18494;18513:19;:17;:19::i;:::-;18476:56;;;;18550:20;18562:7;18550;:11;;:20;;;;:::i;:::-;18543:27;;;;18414:164;:::o;2856:132::-;2914:7;2941:39;2945:1;2948;2941:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2934:46;;2856:132;;;;:::o;10812:219::-;10872:1;10859:9;;:14;:30;;;;;10888:1;10877:7;;:12;10859:30;10855:43;;;10891:7;;10855:43;10930:9;;10910:17;:29;;;;10968:7;;10950:15;:25;;;;11000:1;10988:9;:13;;;;11022:1;11012:7;:11;;;;10812:219;:::o;15743:610::-;15890:15;15920:23;15958:12;15985:23;16023:12;16050:13;16077:19;16088:7;16077:10;:19::i;:::-;15875:221;;;;;;;;;;;;16125:28;16145:7;16125;:15;16133:6;16125:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;16107:7;:15;16115:6;16107:15;;;;;;;;;;;;;;;:46;;;;16185:39;16208:15;16185:7;:18;16193:9;16185:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;16164:7;:18;16172:9;16164:18;;;;;;;;;;;;;;;:60;;;;16235:16;16245:5;16235:9;:16::i;:::-;16262:23;16274:4;16280;16262:11;:23::i;:::-;16318:9;16301:44;;16310:6;16301:44;;;16329:15;16301:44;;;;;;:::i;:::-;;;;;;;;15864:489;;;;;;15743:610;;;:::o;11039:117::-;11095:17;;11083:9;:29;;;;11133:15;;11123:7;:25;;;;11039:117::o;18586:257::-;18637:7;18646;18666:15;18684:7;;18666:25;;18702:15;6358:18;18702:25;;18752:20;6358:18;18752:7;;:11;;:20;;;;:::i;:::-;18742:7;:30;18738:61;;;18782:7;;6358:18;18774:25;;;;;;;;18738:61;18818:7;18827;18810:25;;;;;;18586:257;;;:::o;2996:223::-;3116:7;3148:1;3144;:5;3151:12;3136:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3175:9;3191:1;3187;:5;;;;:::i;:::-;3175:17;;3210:1;3203:8;;;2996:223;;;;;:::o;16772:615::-;16872:7;16894;16916;16938;16960;16982;17018:23;17043:12;17057:13;17087:40;17099:7;17108:9;;17119:7;;17087:11;:40::i;:::-;17017:110;;;;;;17138:19;17160:10;:8;:10::i;:::-;17138:32;;17182:15;17199:23;17224:12;17253:46;17265:7;17274:4;17280:5;17287:11;17253;:46::i;:::-;17181:118;;;;;;17318:7;17327:15;17344:4;17350:15;17367:4;17373:5;17310:69;;;;;;;;;;;;;;;;;;;16772:615;;;;;;;:::o;2226:136::-;2284:7;2311:43;2315:1;2318;2311:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2304:50;;2226:136;;;;:::o;2039:179::-;2097:7;2117:9;2133:1;2129;:5;;;;:::i;:::-;2117:17;;2158:1;2153;:6;;2145:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2209:1;2202:8;;;2039:179;;;;:::o;16361:211::-;16414:19;16436:10;:8;:10::i;:::-;16414:32;;16457:13;16473:22;16483:11;16473:5;:9;;:22;;;;:::i;:::-;16457:38;;16531:33;16558:5;16531:7;:22;16547:4;16531:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;16506:7;:22;16522:4;16506:22;;;;;;;;;;;;;;;:58;;;;16403:169;;16361:211;:::o;16580:147::-;16658:17;16670:4;16658:7;;:11;;:17;;;;:::i;:::-;16648:7;:27;;;;16699:20;16714:4;16699:10;;:14;;:20;;;;:::i;:::-;16686:10;:33;;;;16580:147;;:::o;17395:469::-;17564:7;17586;17608;17643:12;17658:30;17684:3;17658:21;17670:8;17658:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;17643:45;;17699:13;17715:28;17739:3;17715:19;17727:6;17715:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;17699:44;;17754:23;17780:28;17802:5;17780:17;17792:4;17780:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17754:54;;17827:15;17844:4;17850:5;17819:37;;;;;;;;;17395:469;;;;;;;:::o;17872:534::-;18066:7;18088;18110;18145:15;18163:24;18175:11;18163:7;:11;;:24;;;;:::i;:::-;18145:42;;18198:12;18213:21;18222:11;18213:4;:8;;:21;;;;:::i;:::-;18198:36;;18245:13;18261:22;18271:11;18261:5;:9;;:22;;;;:::i;:::-;18245:38;;18294:23;18320:28;18342:5;18320:17;18332:4;18320:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;18294:54;;18367:7;18376:15;18393:4;18359:39;;;;;;;;;;17872:534;;;;;;;;:::o;2602:246::-;2660:7;2689:1;2684;:6;2680:47;;;2714:1;2707:8;;;;2680:47;2737:9;2753:1;2749;:5;;;;:::i;:::-;2737:17;;2782:1;2777;2773;:5;;;;:::i;:::-;:10;2765:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2839:1;2832:8;;;2602:246;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:307::-;4139:1;4149:113;4163:6;4160:1;4157:13;4149:113;;;4248:1;4243:3;4239:11;4233:18;4229:1;4224:3;4220:11;4213:39;4185:2;4182:1;4178:10;4173:15;;4149:113;;;4280:6;4277:1;4274:13;4271:101;;;4360:1;4351:6;4346:3;4342:16;4335:27;4271:101;4120:258;4071:307;;;:::o;4384:364::-;4472:3;4500:39;4533:5;4500:39;:::i;:::-;4555:71;4619:6;4614:3;4555:71;:::i;:::-;4548:78;;4635:52;4680:6;4675:3;4668:4;4661:5;4657:16;4635:52;:::i;:::-;4712:29;4734:6;4712:29;:::i;:::-;4707:3;4703:39;4696:46;;4476:272;4384:364;;;;:::o;4754:313::-;4867:4;4905:2;4894:9;4890:18;4882:26;;4954:9;4948:4;4944:20;4940:1;4929:9;4925:17;4918:47;4982:78;5055:4;5046:6;4982:78;:::i;:::-;4974:86;;4754:313;;;;:::o;5073:60::-;5101:3;5122:5;5115:12;;5073:60;;;:::o;5139:142::-;5189:9;5222:53;5240:34;5249:24;5267:5;5249:24;:::i;:::-;5240:34;:::i;:::-;5222:53;:::i;:::-;5209:66;;5139:142;;;:::o;5287:126::-;5337:9;5370:37;5401:5;5370:37;:::i;:::-;5357:50;;5287:126;;;:::o;5419:143::-;5486:9;5519:37;5550:5;5519:37;:::i;:::-;5506:50;;5419:143;;;:::o;5568:165::-;5672:54;5720:5;5672:54;:::i;:::-;5667:3;5660:67;5568:165;;:::o;5739:256::-;5849:4;5887:2;5876:9;5872:18;5864:26;;5900:88;5985:1;5974:9;5970:17;5961:6;5900:88;:::i;:::-;5739:256;;;;:::o;6001:77::-;6038:7;6067:5;6056:16;;6001:77;;;:::o;6084:122::-;6157:24;6175:5;6157:24;:::i;:::-;6150:5;6147:35;6137:63;;6196:1;6193;6186:12;6137:63;6084:122;:::o;6212:139::-;6258:5;6296:6;6283:20;6274:29;;6312:33;6339:5;6312:33;:::i;:::-;6212:139;;;;:::o;6357:474::-;6425:6;6433;6482:2;6470:9;6461:7;6457:23;6453:32;6450:119;;;6488:79;;:::i;:::-;6450:119;6608:1;6633:53;6678:7;6669:6;6658:9;6654:22;6633:53;:::i;:::-;6623:63;;6579:117;6735:2;6761:53;6806:7;6797:6;6786:9;6782:22;6761:53;:::i;:::-;6751:63;;6706:118;6357:474;;;;;:::o;6837:90::-;6871:7;6914:5;6907:13;6900:21;6889:32;;6837:90;;;:::o;6933:109::-;7014:21;7029:5;7014:21;:::i;:::-;7009:3;7002:34;6933:109;;:::o;7048:210::-;7135:4;7173:2;7162:9;7158:18;7150:26;;7186:65;7248:1;7237:9;7233:17;7224:6;7186:65;:::i;:::-;7048:210;;;;:::o;7264:118::-;7351:24;7369:5;7351:24;:::i;:::-;7346:3;7339:37;7264:118;;:::o;7388:222::-;7481:4;7519:2;7508:9;7504:18;7496:26;;7532:71;7600:1;7589:9;7585:17;7576:6;7532:71;:::i;:::-;7388:222;;;;:::o;7616:619::-;7693:6;7701;7709;7758:2;7746:9;7737:7;7733:23;7729:32;7726:119;;;7764:79;;:::i;:::-;7726:119;7884:1;7909:53;7954:7;7945:6;7934:9;7930:22;7909:53;:::i;:::-;7899:63;;7855:117;8011:2;8037:53;8082:7;8073:6;8062:9;8058:22;8037:53;:::i;:::-;8027:63;;7982:118;8139:2;8165:53;8210:7;8201:6;8190:9;8186:22;8165:53;:::i;:::-;8155:63;;8110:118;7616:619;;;;;:::o;8241:86::-;8276:7;8316:4;8309:5;8305:16;8294:27;;8241:86;;;:::o;8333:112::-;8416:22;8432:5;8416:22;:::i;:::-;8411:3;8404:35;8333:112;;:::o;8451:214::-;8540:4;8578:2;8567:9;8563:18;8555:26;;8591:67;8655:1;8644:9;8640:17;8631:6;8591:67;:::i;:::-;8451:214;;;;:::o;8671:118::-;8758:24;8776:5;8758:24;:::i;:::-;8753:3;8746:37;8671:118;;:::o;8795:222::-;8888:4;8926:2;8915:9;8911:18;8903:26;;8939:71;9007:1;8996:9;8992:17;8983:6;8939:71;:::i;:::-;8795:222;;;;:::o;9023:329::-;9082:6;9131:2;9119:9;9110:7;9106:23;9102:32;9099:119;;;9137:79;;:::i;:::-;9099:119;9257:1;9282:53;9327:7;9318:6;9307:9;9303:22;9282:53;:::i;:::-;9272:63;;9228:117;9023:329;;;;:::o;9358:116::-;9428:21;9443:5;9428:21;:::i;:::-;9421:5;9418:32;9408:60;;9464:1;9461;9454:12;9408:60;9358:116;:::o;9480:133::-;9523:5;9561:6;9548:20;9539:29;;9577:30;9601:5;9577:30;:::i;:::-;9480:133;;;;:::o;9619:323::-;9675:6;9724:2;9712:9;9703:7;9699:23;9695:32;9692:119;;;9730:79;;:::i;:::-;9692:119;9850:1;9875:50;9917:7;9908:6;9897:9;9893:22;9875:50;:::i;:::-;9865:60;;9821:114;9619:323;;;;:::o;9948:329::-;10007:6;10056:2;10044:9;10035:7;10031:23;10027:32;10024:119;;;10062:79;;:::i;:::-;10024:119;10182:1;10207:53;10252:7;10243:6;10232:9;10228:22;10207:53;:::i;:::-;10197:63;;10153:117;9948:329;;;;:::o;10283:765::-;10369:6;10377;10385;10393;10442:3;10430:9;10421:7;10417:23;10413:33;10410:120;;;10449:79;;:::i;:::-;10410:120;10569:1;10594:53;10639:7;10630:6;10619:9;10615:22;10594:53;:::i;:::-;10584:63;;10540:117;10696:2;10722:53;10767:7;10758:6;10747:9;10743:22;10722:53;:::i;:::-;10712:63;;10667:118;10824:2;10850:53;10895:7;10886:6;10875:9;10871:22;10850:53;:::i;:::-;10840:63;;10795:118;10952:2;10978:53;11023:7;11014:6;11003:9;10999:22;10978:53;:::i;:::-;10968:63;;10923:118;10283:765;;;;;;;:::o;11054:117::-;11163:1;11160;11153:12;11194:568;11267:8;11277:6;11327:3;11320:4;11312:6;11308:17;11304:27;11294:122;;11335:79;;:::i;:::-;11294:122;11448:6;11435:20;11425:30;;11478:18;11470:6;11467:30;11464:117;;;11500:79;;:::i;:::-;11464:117;11614:4;11606:6;11602:17;11590:29;;11668:3;11660:4;11652:6;11648:17;11638:8;11634:32;11631:41;11628:128;;;11675:79;;:::i;:::-;11628:128;11194:568;;;;;:::o;11768:698::-;11860:6;11868;11876;11925:2;11913:9;11904:7;11900:23;11896:32;11893:119;;;11931:79;;:::i;:::-;11893:119;12079:1;12068:9;12064:17;12051:31;12109:18;12101:6;12098:30;12095:117;;;12131:79;;:::i;:::-;12095:117;12244:80;12316:7;12307:6;12296:9;12292:22;12244:80;:::i;:::-;12226:98;;;;12022:312;12373:2;12399:50;12441:7;12432:6;12421:9;12417:22;12399:50;:::i;:::-;12389:60;;12344:115;11768:698;;;;;:::o;12472:474::-;12540:6;12548;12597:2;12585:9;12576:7;12572:23;12568:32;12565:119;;;12603:79;;:::i;:::-;12565:119;12723:1;12748:53;12793:7;12784:6;12773:9;12769:22;12748:53;:::i;:::-;12738:63;;12694:117;12850:2;12876:53;12921:7;12912:6;12901:9;12897:22;12876:53;:::i;:::-;12866:63;;12821:118;12472:474;;;;;:::o;12952:182::-;13092:34;13088:1;13080:6;13076:14;13069:58;12952:182;:::o;13140:366::-;13282:3;13303:67;13367:2;13362:3;13303:67;:::i;:::-;13296:74;;13379:93;13468:3;13379:93;:::i;:::-;13497:2;13492:3;13488:12;13481:19;;13140:366;;;:::o;13512:419::-;13678:4;13716:2;13705:9;13701:18;13693:26;;13765:9;13759:4;13755:20;13751:1;13740:9;13736:17;13729:47;13793:131;13919:4;13793:131;:::i;:::-;13785:139;;13512:419;;;:::o;13937:180::-;13985:77;13982:1;13975:88;14082:4;14079:1;14072:15;14106:4;14103:1;14096:15;14123:180;14171:77;14168:1;14161:88;14268:4;14265:1;14258:15;14292:4;14289:1;14282:15;14309:233;14348:3;14371:24;14389:5;14371:24;:::i;:::-;14362:33;;14417:66;14410:5;14407:77;14404:103;;;14487:18;;:::i;:::-;14404:103;14534:1;14527:5;14523:13;14516:20;;14309:233;;;:::o;14548:225::-;14688:34;14684:1;14676:6;14672:14;14665:58;14757:8;14752:2;14744:6;14740:15;14733:33;14548:225;:::o;14779:366::-;14921:3;14942:67;15006:2;15001:3;14942:67;:::i;:::-;14935:74;;15018:93;15107:3;15018:93;:::i;:::-;15136:2;15131:3;15127:12;15120:19;;14779:366;;;:::o;15151:419::-;15317:4;15355:2;15344:9;15340:18;15332:26;;15404:9;15398:4;15394:20;15390:1;15379:9;15375:17;15368:47;15432:131;15558:4;15432:131;:::i;:::-;15424:139;;15151:419;;;:::o;15576:223::-;15716:34;15712:1;15704:6;15700:14;15693:58;15785:6;15780:2;15772:6;15768:15;15761:31;15576:223;:::o;15805:366::-;15947:3;15968:67;16032:2;16027:3;15968:67;:::i;:::-;15961:74;;16044:93;16133:3;16044:93;:::i;:::-;16162:2;16157:3;16153:12;16146:19;;15805:366;;;:::o;16177:419::-;16343:4;16381:2;16370:9;16366:18;16358:26;;16430:9;16424:4;16420:20;16416:1;16405:9;16401:17;16394:47;16458:131;16584:4;16458:131;:::i;:::-;16450:139;;16177:419;;;:::o;16602:221::-;16742:34;16738:1;16730:6;16726:14;16719:58;16811:4;16806:2;16798:6;16794:15;16787:29;16602:221;:::o;16829:366::-;16971:3;16992:67;17056:2;17051:3;16992:67;:::i;:::-;16985:74;;17068:93;17157:3;17068:93;:::i;:::-;17186:2;17181:3;17177:12;17170:19;;16829:366;;;:::o;17201:419::-;17367:4;17405:2;17394:9;17390:18;17382:26;;17454:9;17448:4;17444:20;17440:1;17429:9;17425:17;17418:47;17482:131;17608:4;17482:131;:::i;:::-;17474:139;;17201:419;;;:::o;17626:224::-;17766:34;17762:1;17754:6;17750:14;17743:58;17835:7;17830:2;17822:6;17818:15;17811:32;17626:224;:::o;17856:366::-;17998:3;18019:67;18083:2;18078:3;18019:67;:::i;:::-;18012:74;;18095:93;18184:3;18095:93;:::i;:::-;18213:2;18208:3;18204:12;18197:19;;17856:366;;;:::o;18228:419::-;18394:4;18432:2;18421:9;18417:18;18409:26;;18481:9;18475:4;18471:20;18467:1;18456:9;18452:17;18445:47;18509:131;18635:4;18509:131;:::i;:::-;18501:139;;18228:419;;;:::o;18653:222::-;18793:34;18789:1;18781:6;18777:14;18770:58;18862:5;18857:2;18849:6;18845:15;18838:30;18653:222;:::o;18881:366::-;19023:3;19044:67;19108:2;19103:3;19044:67;:::i;:::-;19037:74;;19120:93;19209:3;19120:93;:::i;:::-;19238:2;19233:3;19229:12;19222:19;;18881:366;;;:::o;19253:419::-;19419:4;19457:2;19446:9;19442:18;19434:26;;19506:9;19500:4;19496:20;19492:1;19481:9;19477:17;19470:47;19534:131;19660:4;19534:131;:::i;:::-;19526:139;;19253:419;;;:::o;19678:228::-;19818:34;19814:1;19806:6;19802:14;19795:58;19887:11;19882:2;19874:6;19870:15;19863:36;19678:228;:::o;19912:366::-;20054:3;20075:67;20139:2;20134:3;20075:67;:::i;:::-;20068:74;;20151:93;20240:3;20151:93;:::i;:::-;20269:2;20264:3;20260:12;20253:19;;19912:366;;;:::o;20284:419::-;20450:4;20488:2;20477:9;20473:18;20465:26;;20537:9;20531:4;20527:20;20523:1;20512:9;20508:17;20501:47;20565:131;20691:4;20565:131;:::i;:::-;20557:139;;20284:419;;;:::o;20709:250::-;20849:34;20845:1;20837:6;20833:14;20826:58;20918:33;20913:2;20905:6;20901:15;20894:58;20709:250;:::o;20965:366::-;21107:3;21128:67;21192:2;21187:3;21128:67;:::i;:::-;21121:74;;21204:93;21293:3;21204:93;:::i;:::-;21322:2;21317:3;21313:12;21306:19;;20965:366;;;:::o;21337:419::-;21503:4;21541:2;21530:9;21526:18;21518:26;;21590:9;21584:4;21580:20;21576:1;21565:9;21561:17;21554:47;21618:131;21744:4;21618:131;:::i;:::-;21610:139;;21337:419;;;:::o;21762:178::-;21902:30;21898:1;21890:6;21886:14;21879:54;21762:178;:::o;21946:366::-;22088:3;22109:67;22173:2;22168:3;22109:67;:::i;:::-;22102:74;;22185:93;22274:3;22185:93;:::i;:::-;22303:2;22298:3;22294:12;22287:19;;21946:366;;;:::o;22318:419::-;22484:4;22522:2;22511:9;22507:18;22499:26;;22571:9;22565:4;22561:20;22557:1;22546:9;22542:17;22535:47;22599:131;22725:4;22599:131;:::i;:::-;22591:139;;22318:419;;;:::o;22743:222::-;22883:34;22879:1;22871:6;22867:14;22860:58;22952:5;22947:2;22939:6;22935:15;22928:30;22743:222;:::o;22971:366::-;23113:3;23134:67;23198:2;23193:3;23134:67;:::i;:::-;23127:74;;23210:93;23299:3;23210:93;:::i;:::-;23328:2;23323:3;23319:12;23312:19;;22971:366;;;:::o;23343:419::-;23509:4;23547:2;23536:9;23532:18;23524:26;;23596:9;23590:4;23586:20;23582:1;23571:9;23567:17;23560:47;23624:131;23750:4;23624:131;:::i;:::-;23616:139;;23343:419;;;:::o;23768:305::-;23808:3;23827:20;23845:1;23827:20;:::i;:::-;23822:25;;23861:20;23879:1;23861:20;:::i;:::-;23856:25;;24015:1;23947:66;23943:74;23940:1;23937:81;23934:107;;;24021:18;;:::i;:::-;23934:107;24065:1;24062;24058:9;24051:16;;23768:305;;;;:::o;24079:222::-;24219:34;24215:1;24207:6;24203:14;24196:58;24288:5;24283:2;24275:6;24271:15;24264:30;24079:222;:::o;24307:366::-;24449:3;24470:67;24534:2;24529:3;24470:67;:::i;:::-;24463:74;;24546:93;24635:3;24546:93;:::i;:::-;24664:2;24659:3;24655:12;24648:19;;24307:366;;;:::o;24679:419::-;24845:4;24883:2;24872:9;24868:18;24860:26;;24932:9;24926:4;24922:20;24918:1;24907:9;24903:17;24896:47;24960:131;25086:4;24960:131;:::i;:::-;24952:139;;24679:419;;;:::o;25104:191::-;25144:4;25164:20;25182:1;25164:20;:::i;:::-;25159:25;;25198:20;25216:1;25198:20;:::i;:::-;25193:25;;25237:1;25234;25231:8;25228:34;;;25242:18;;:::i;:::-;25228:34;25287:1;25284;25280:9;25272:17;;25104:191;;;;:::o;25301:229::-;25441:34;25437:1;25429:6;25425:14;25418:58;25510:12;25505:2;25497:6;25493:15;25486:37;25301:229;:::o;25536:366::-;25678:3;25699:67;25763:2;25758:3;25699:67;:::i;:::-;25692:74;;25775:93;25864:3;25775:93;:::i;:::-;25893:2;25888:3;25884:12;25877:19;;25536:366;;;:::o;25908:419::-;26074:4;26112:2;26101:9;26097:18;26089:26;;26161:9;26155:4;26151:20;26147:1;26136:9;26132:17;26125:47;26189:131;26315:4;26189:131;:::i;:::-;26181:139;;25908:419;;;:::o;26333:143::-;26390:5;26421:6;26415:13;26406:22;;26437:33;26464:5;26437:33;:::i;:::-;26333:143;;;;:::o;26482:351::-;26552:6;26601:2;26589:9;26580:7;26576:23;26572:32;26569:119;;;26607:79;;:::i;:::-;26569:119;26727:1;26752:64;26808:7;26799:6;26788:9;26784:22;26752:64;:::i;:::-;26742:74;;26698:128;26482:351;;;;:::o;26839:85::-;26884:7;26913:5;26902:16;;26839:85;;;:::o;26930:158::-;26988:9;27021:61;27039:42;27048:32;27074:5;27048:32;:::i;:::-;27039:42;:::i;:::-;27021:61;:::i;:::-;27008:74;;26930:158;;;:::o;27094:147::-;27189:45;27228:5;27189:45;:::i;:::-;27184:3;27177:58;27094:147;;:::o;27247:114::-;27314:6;27348:5;27342:12;27332:22;;27247:114;;;:::o;27367:184::-;27466:11;27500:6;27495:3;27488:19;27540:4;27535:3;27531:14;27516:29;;27367:184;;;;:::o;27557:132::-;27624:4;27647:3;27639:11;;27677:4;27672:3;27668:14;27660:22;;27557:132;;;:::o;27695:108::-;27772:24;27790:5;27772:24;:::i;:::-;27767:3;27760:37;27695:108;;:::o;27809:179::-;27878:10;27899:46;27941:3;27933:6;27899:46;:::i;:::-;27977:4;27972:3;27968:14;27954:28;;27809:179;;;;:::o;27994:113::-;28064:4;28096;28091:3;28087:14;28079:22;;27994:113;;;:::o;28143:732::-;28262:3;28291:54;28339:5;28291:54;:::i;:::-;28361:86;28440:6;28435:3;28361:86;:::i;:::-;28354:93;;28471:56;28521:5;28471:56;:::i;:::-;28550:7;28581:1;28566:284;28591:6;28588:1;28585:13;28566:284;;;28667:6;28661:13;28694:63;28753:3;28738:13;28694:63;:::i;:::-;28687:70;;28780:60;28833:6;28780:60;:::i;:::-;28770:70;;28626:224;28613:1;28610;28606:9;28601:14;;28566:284;;;28570:14;28866:3;28859:10;;28267:608;;;28143:732;;;;:::o;28881:831::-;29144:4;29182:3;29171:9;29167:19;29159:27;;29196:71;29264:1;29253:9;29249:17;29240:6;29196:71;:::i;:::-;29277:80;29353:2;29342:9;29338:18;29329:6;29277:80;:::i;:::-;29404:9;29398:4;29394:20;29389:2;29378:9;29374:18;29367:48;29432:108;29535:4;29526:6;29432:108;:::i;:::-;29424:116;;29550:72;29618:2;29607:9;29603:18;29594:6;29550:72;:::i;:::-;29632:73;29700:3;29689:9;29685:19;29676:6;29632:73;:::i;:::-;28881:831;;;;;;;;:::o;29718:180::-;29766:77;29763:1;29756:88;29863:4;29860:1;29853:15;29887:4;29884:1;29877:15;29904:185;29944:1;29961:20;29979:1;29961:20;:::i;:::-;29956:25;;29995:20;30013:1;29995:20;:::i;:::-;29990:25;;30034:1;30024:35;;30039:18;;:::i;:::-;30024:35;30081:1;30078;30074:9;30069:14;;29904:185;;;;:::o;30095:177::-;30235:29;30231:1;30223:6;30219:14;30212:53;30095:177;:::o;30278:366::-;30420:3;30441:67;30505:2;30500:3;30441:67;:::i;:::-;30434:74;;30517:93;30606:3;30517:93;:::i;:::-;30635:2;30630:3;30626:12;30619:19;;30278:366;;;:::o;30650:419::-;30816:4;30854:2;30843:9;30839:18;30831:26;;30903:9;30897:4;30893:20;30889:1;30878:9;30874:17;30867:47;30931:131;31057:4;30931:131;:::i;:::-;30923:139;;30650:419;;;:::o;31075:348::-;31115:7;31138:20;31156:1;31138:20;:::i;:::-;31133:25;;31172:20;31190:1;31172:20;:::i;:::-;31167:25;;31360:1;31292:66;31288:74;31285:1;31282:81;31277:1;31270:9;31263:17;31259:105;31256:131;;;31367:18;;:::i;:::-;31256:131;31415:1;31412;31408:9;31397:20;;31075:348;;;;:::o;31429:220::-;31569:34;31565:1;31557:6;31553:14;31546:58;31638:3;31633:2;31625:6;31621:15;31614:28;31429:220;:::o;31655:366::-;31797:3;31818:67;31882:2;31877:3;31818:67;:::i;:::-;31811:74;;31894:93;31983:3;31894:93;:::i;:::-;32012:2;32007:3;32003:12;31996:19;;31655:366;;;:::o;32027:419::-;32193:4;32231:2;32220:9;32216:18;32208:26;;32280:9;32274:4;32270:20;32266:1;32255:9;32251:17;32244:47;32308:131;32434:4;32308:131;:::i;:::-;32300:139;;32027:419;;;:::o

Swarm Source

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