ETH Price: $2,502.92 (-0.87%)
Gas: 1.62 Gwei

Token

Goose Egg (EGG)
 

Overview

Max Total Supply

1,000,000,000,000,000 EGG

Holders

24

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
18,905,000,000,000.000179661 EGG

Value
$0.00
0xb3cd06b4044778c38ba3e7ee67cda505e2e1a647
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:
GooseEgg

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-07-15
*/

/**
 
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

    string private constant _name = "Goose Egg";
    string private constant _symbol = "EGG";
    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 = 1000000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
   
    //Buy Fee
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 5;
   
    //Sell Fee
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 5;
   
    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
   
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
   
    mapping(address => bool) public bots;
    mapping (address => bool) public preTrader;
    mapping(address => uint256) private cooldown;
   
    address payable private _developmentAddress = payable(0x6030AC5d05614072038c3c1DB84f9CdE84931fe5);
    address payable private _marketingAddress = payable(0x6030AC5d05614072038c3c1DB84f9CdE84931fe5);
   
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
   
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
   
    uint256 public _maxTxAmount = 20000000000000 * 10**9; //1
    uint256 public _maxWalletSize = 30000000000000 * 10**9; //3
    uint256 public _swapTokensAtAmount = 1000000000000 * 10**9; //0.1

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

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

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;
       
        preTrader[owner()] = true;
       
        bots[address(0x66f049111958809841Bbe4b81c034Da2D953AA0c)] = true;
        bots[address(0x000000005736775Feb0C8568e7DEe77222a26880)] = true;
        bots[address(0x00000000003b3cc22aF3aE1EAc0440BcEe416B40)] = true;
        bots[address(0xD8E83d3d1a91dFefafd8b854511c44685a20fa3D)] = true;
        bots[address(0xbcC7f6355bc08f6b7d3a41322CE4627118314763)] = true;
        bots[address(0x1d6E8BAC6EA3730825bde4B005ed7B2B39A2932d)] = true;
        bots[address(0x000000000035B5e5ad9019092C665357240f594e)] = true;
        bots[address(0x1315c6C26123383a2Eb369a53Fb72C4B9f227EeC)] = true;
        bots[address(0xD8E83d3d1a91dFefafd8b854511c44685a20fa3D)] = true;
        bots[address(0x90484Bb9bc05fD3B5FF1fe412A492676cd81790C)] = true;
        bots[address(0xA62c5bA4D3C95b3dDb247EAbAa2C8E56BAC9D6dA)] = true;
        bots[address(0x42c1b5e32d625b6C618A02ae15189035e0a92FE7)] = true;
        bots[address(0xA94E56EFc384088717bb6edCccEc289A72Ec2381)] = true;
        bots[address(0xf13FFadd3682feD42183AF8F3f0b409A9A0fdE31)] = true;
        bots[address(0x376a6EFE8E98f3ae2af230B3D45B8Cc5e962bC27)] = true;
        bots[address(0xEE2A9147ffC94A73f6b945A6DB532f8466B78830)] = true;
        bots[address(0xdE2a6d80989C3992e11B155430c3F59792FF8Bb7)] = true;
        bots[address(0x1e62A12D4981e428D3F4F28DF261fdCB2CE743Da)] = true;
        bots[address(0x5136a9A5D077aE4247C7706b577F77153C32A01C)] = true;
        bots[address(0x0E388888309d64e97F97a4740EC9Ed3DADCA71be)] = true;
        bots[address(0x255D9BA73a51e02d26a5ab90d534DB8a80974a12)] = true;
        bots[address(0xA682A66Ea044Aa1DC3EE315f6C36414F73054b47)] = true;
        bots[address(0x80e09203480A49f3Cf30a4714246f7af622ba470)] = true;
        bots[address(0x12e48B837AB8cB9104C5B95700363547bA81c8a4)] = true;
        bots[address(0x3066Cc1523dE539D36f94597e233719727599693)] = true;
        bots[address(0x201044fa39866E6dD3552D922CDa815899F63f20)] = true;
        bots[address(0x6F3aC41265916DD06165b750D88AB93baF1a11F8)] = true;
        bots[address(0x27C71ef1B1bb5a9C9Ee0CfeCEf4072AbAc686ba6)] = true;
        bots[address(0x27C71ef1B1bb5a9C9Ee0CfeCEf4072AbAc686ba6)] = true;
        bots[address(0x5668e6e8f3C31D140CC0bE918Ab8bB5C5B593418)] = true;
        bots[address(0x4b9BDDFB48fB1529125C14f7730346fe0E8b5b40)] = true;
        bots[address(0x7e2b3808cFD46fF740fBd35C584D67292A407b95)] = true;
        bots[address(0xe89C7309595E3e720D8B316F065ecB2730e34757)] = true;
        bots[address(0x725AD056625326B490B128E02759007BA5E4eBF1)] = true;
        bots[address(0x9AFdA3AdFC3588B4404f79792a97F2116957300C)] = true;
        bots[address(0xC44C985AD8533581dB924123195Ed8700377835e)] = true;
        bots[address(0x0BbacDa63eEB8F1F46162CEb4245aFaE0159A55b)] = true;
        bots[address(0xA5A5D38366C213b1c8caeA7107321937B412C700)] = true;
        bots[address(0xbCb05a3F85d34f0194C70d5914d5C4E28f11Cc02)] = true;
        bots[address(0x2c22a4d9EDC17a7B1e8F17836d9051970Ef0947D)] = true;
        bots[address(0x42AD5aAAF1b94Eff0776f3F7F86234dD1c124456)] = true;
        bots[address(0x67F800Af89484FB207bF7af891B334ea28a2C204)] = true;
        bots[address(0x72Dd84c78D5a735C4A0a954C037a8b9aC176A362)] = true;
        bots[address(0x840eA0F0A71Cfc8b56C3518A029186300B738Ac4)] = true;
        bots[address(0x666bED4762790FAB9fB6D9635ab5A009d4D5D216)] = true;
        bots[address(0xf8EfD62b7f6E397a387a7FB232a54fe8f59C6B2A)] = true;
        bots[address(0xE15e17eAd2853DFbCE8D32B90F2a1D2833d791b1)] = true;
        bots[address(0xE76f1F9b8B94781663ECAC78486E7BbD6c101Bb8)] = true;
        bots[address(0x2fB8e9Fe1AD2764687Aaa1806290a1c178446Def)] = true;
        bots[address(0x0bd10a26BbA585D74Bb1E7C05eB608e948354A6d)] = true;
        bots[address(0xeb467F831233c47b25877eaF895773C6031D7E71)] = true;
        bots[address(0x02df832F6f4Af41C05c8B7E572A70491Fe7dD9A0)] = true;
        bots[address(0xF7bdf0b509E64b67e66b8b145c6895f0f440cc24)] = true;
        bots[address(0xcdc0acE8714468fd5871A5365aCE0A9Babdd2Cb5)] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        if (from != owner() && to != owner() && !preTrader[from] && !preTrader[to]) {
           
            //Trade start check
            if (!tradingOpen) {
                require(preTrader[from], "TOKEN: This account cannot send tokens until trading is enabled");
            }
             
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
           
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
           
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

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

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
           
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
   
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
           
        }

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

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

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

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

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

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

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

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

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

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

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

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

    receive() external payable {}

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

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

        return (tTransferAmount, tFee, tTeam);
    }

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

        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();

        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
   
        return (rSupply, tSupply);
    }
   
    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
       
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
   
    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
   
    //Set max transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }
   
    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }
 
    function allowPreTrading(address account, bool allowed) public onlyOwner {
        require(preTrader[account] != allowed, "TOKEN: Already enabled.");
        preTrader[account] = allowed;
    }
}

Contract Security Audit

Contract ABI

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

608060405269d3c21bcecceda10000006000196200001e919062001f5b565b6000196200002d919062001ee2565b600655600060085560056009556000600a556005600b55600a54600c55600b54600d55600c54600e55600d54600f55736030ac5d05614072038c3c1db84f9cde84931fe5601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736030ac5d05614072038c3c1db84f9cde84931fe5601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601660156101000a81548160ff02191690831515021790555060016016806101000a81548160ff02191690831515021790555069043c33c193756480000060175569065a4da25d3016c00000601855683635c9adc5dea000006019553480156200017157600080fd5b5060006200018462001e0260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200023962001e0260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200031857600080fd5b505afa1580156200032d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000353919062001e4a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003b657600080fd5b505afa158015620003cb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003f1919062001e4a565b6040518363ffffffff1660e01b81526004016200041092919062001e98565b602060405180830381600087803b1580156200042b57600080fd5b505af115801562000440573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000466919062001e4a565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004bc62001e0a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601160006200066f62001e0a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007366f049111958809841bbe4b81c034da2d953aa0c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060006f5736775feb0c8568e7dee77222a2688073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060006e3b3cc22af3ae1eac0440bcee416b4073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073d8e83d3d1a91dfefafd8b854511c44685a20fa3d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073bcc7f6355bc08f6b7d3a41322ce462711831476373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000731d6e8bac6ea3730825bde4b005ed7b2b39a2932d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060006e35b5e5ad9019092c665357240f594e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000731315c6c26123383a2eb369a53fb72c4b9f227eec73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073d8e83d3d1a91dfefafd8b854511c44685a20fa3d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007390484bb9bc05fd3b5ff1fe412a492676cd81790c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073a62c5ba4d3c95b3ddb247eabaa2c8e56bac9d6da73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007342c1b5e32d625b6c618a02ae15189035e0a92fe773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073a94e56efc384088717bb6edcccec289a72ec238173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073f13ffadd3682fed42183af8f3f0b409a9a0fde3173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073376a6efe8e98f3ae2af230b3d45b8cc5e962bc2773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073ee2a9147ffc94a73f6b945a6db532f8466b7883073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073de2a6d80989c3992e11b155430c3f59792ff8bb773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000731e62a12d4981e428d3f4f28df261fdcb2ce743da73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000735136a9a5d077ae4247c7706b577f77153c32a01c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000730e388888309d64e97f97a4740ec9ed3dadca71be73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073255d9ba73a51e02d26a5ab90d534db8a80974a1273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073a682a66ea044aa1dc3ee315f6c36414f73054b4773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007380e09203480a49f3cf30a4714246f7af622ba47073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007312e48b837ab8cb9104c5b95700363547ba81c8a473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000733066cc1523de539d36f94597e23371972759969373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073201044fa39866e6dd3552d922cda815899f63f2073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000736f3ac41265916dd06165b750d88ab93baf1a11f873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007327c71ef1b1bb5a9c9ee0cfecef4072abac686ba673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007327c71ef1b1bb5a9c9ee0cfecef4072abac686ba673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000735668e6e8f3c31d140cc0be918ab8bb5c5b59341873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000734b9bddfb48fb1529125c14f7730346fe0e8b5b4073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000737e2b3808cfd46ff740fbd35c584d67292a407b9573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073e89c7309595e3e720d8b316f065ecb2730e3475773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073725ad056625326b490b128e02759007ba5e4ebf173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000739afda3adfc3588b4404f79792a97f2116957300c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073c44c985ad8533581db924123195ed8700377835e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000730bbacda63eeb8f1f46162ceb4245afae0159a55b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073a5a5d38366c213b1c8caea7107321937b412c70073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073bcb05a3f85d34f0194c70d5914d5c4e28f11cc0273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000732c22a4d9edc17a7b1e8f17836d9051970ef0947d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007342ad5aaaf1b94eff0776f3f7f86234dd1c12445673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007367f800af89484fb207bf7af891b334ea28a2c20473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007372dd84c78d5a735c4a0a954c037a8b9ac176a36273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073840ea0f0a71cfc8b56c3518a029186300b738ac473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073666bed4762790fab9fb6d9635ab5a009d4d5d21673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073f8efd62b7f6e397a387a7fb232a54fe8f59c6b2a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073e15e17ead2853dfbce8d32b90f2a1d2833d791b173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073e76f1f9b8b94781663ecac78486e7bbd6c101bb873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000732fb8e9fe1ad2764687aaa1806290a1c178446def73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000730bd10a26bba585d74bb1e7c05eb608e948354a6d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073eb467f831233c47b25877eaf895773c6031d7e7173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007302df832f6f4af41c05c8b7e572a70491fe7dd9a073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073f7bdf0b509e64b67e66b8b145c6895f0f440cc2473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073cdc0ace8714468fd5871a5365ace0a9babdd2cb573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062001d8a62001e0260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69d3c21bcecceda100000060405162001df3919062001ec5565b60405180910390a3506200200b565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008151905062001e448162001ff1565b92915050565b60006020828403121562001e5d57600080fd5b600062001e6d8482850162001e33565b91505092915050565b62001e818162001f1d565b82525050565b62001e928162001f51565b82525050565b600060408201905062001eaf600083018562001e76565b62001ebe602083018462001e76565b9392505050565b600060208201905062001edc600083018462001e87565b92915050565b600062001eef8262001f51565b915062001efc8362001f51565b92508282101562001f125762001f1162001f93565b5b828203905092915050565b600062001f2a8262001f31565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600062001f688262001f51565b915062001f758362001f51565b92508262001f885762001f8762001fc2565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b62001ffc8162001f1d565b81146200200857600080fd5b50565b614195806200201b6000396000f3fe6080604052600436106101db5760003560e01c806374010ece11610102578063bdd795ef11610095578063dd62ed3e11610064578063dd62ed3e14610690578063dfa5bc81146106cd578063ea1644d5146106f6578063f2fde38b1461071f576101e2565b8063bdd795ef146105d6578063bfd7928414610613578063c3c8cd8014610650578063c492f04614610667576101e2565b806395d89b41116100d157806395d89b411461051c57806398a5c31514610547578063a2a957bb14610570578063a9059cbb14610599576101e2565b806374010ece146104725780637d1db4a51461049b5780638da5cb5b146104c65780638f9a55c0146104f1576101e2565b80632fd689e31161017a5780636d8aa8f8116101495780636d8aa8f8146103de5780636fc3eaec1461040757806370a082311461041e578063715018a61461045b576101e2565b80632fd689e314610334578063313ce5671461035f57806349bd5a5e1461038a5780636b999053146103b5576101e2565b80631694505e116101b65780631694505e1461027857806318160ddd146102a357806323b872dd146102ce5780632f9c45691461030b576101e2565b8062b8cf2a146101e757806306fdde0314610210578063095ea7b31461023b576101e2565b366101e257005b600080fd5b3480156101f357600080fd5b5061020e6004803603810190610209919061325a565b610748565b005b34801561021c57600080fd5b50610225610898565b60405161023291906136c6565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d91906131c6565b6108d5565b60405161026f9190613690565b60405180910390f35b34801561028457600080fd5b5061028d6108f3565b60405161029a91906136ab565b60405180910390f35b3480156102af57600080fd5b506102b8610919565b6040516102c591906138c8565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f0919061313b565b61092b565b6040516103029190613690565b60405180910390f35b34801561031757600080fd5b50610332600480360381019061032d919061318a565b610a04565b005b34801561034057600080fd5b50610349610b87565b60405161035691906138c8565b60405180910390f35b34801561036b57600080fd5b50610374610b8d565b604051610381919061393d565b60405180910390f35b34801561039657600080fd5b5061039f610b96565b6040516103ac9190613675565b60405180910390f35b3480156103c157600080fd5b506103dc60048036038101906103d791906130ad565b610bbc565b005b3480156103ea57600080fd5b506104056004803603810190610400919061329b565b610cac565b005b34801561041357600080fd5b5061041c610d5d565b005b34801561042a57600080fd5b50610445600480360381019061044091906130ad565b610e2e565b60405161045291906138c8565b60405180910390f35b34801561046757600080fd5b50610470610e7f565b005b34801561047e57600080fd5b50610499600480360381019061049491906132c4565b610fd2565b005b3480156104a757600080fd5b506104b0611071565b6040516104bd91906138c8565b60405180910390f35b3480156104d257600080fd5b506104db611077565b6040516104e89190613675565b60405180910390f35b3480156104fd57600080fd5b506105066110a0565b60405161051391906138c8565b60405180910390f35b34801561052857600080fd5b506105316110a6565b60405161053e91906136c6565b60405180910390f35b34801561055357600080fd5b5061056e600480360381019061056991906132c4565b6110e3565b005b34801561057c57600080fd5b50610597600480360381019061059291906132ed565b611182565b005b3480156105a557600080fd5b506105c060048036038101906105bb91906131c6565b611239565b6040516105cd9190613690565b60405180910390f35b3480156105e257600080fd5b506105fd60048036038101906105f891906130ad565b611257565b60405161060a9190613690565b60405180910390f35b34801561061f57600080fd5b5061063a600480360381019061063591906130ad565b611277565b6040516106479190613690565b60405180910390f35b34801561065c57600080fd5b50610665611297565b005b34801561067357600080fd5b5061068e60048036038101906106899190613202565b611370565b005b34801561069c57600080fd5b506106b760048036038101906106b291906130ff565b6114d0565b6040516106c491906138c8565b60405180910390f35b3480156106d957600080fd5b506106f460048036038101906106ef919061329b565b611557565b005b34801561070257600080fd5b5061071d600480360381019061071891906132c4565b611609565b005b34801561072b57600080fd5b50610746600480360381019061074191906130ad565b6116a8565b005b61075061186a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d490613828565b60405180910390fd5b60005b815181101561089457600160106000848481518110610828577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061088c90613c02565b9150506107e0565b5050565b60606040518060400160405280600981526020017f476f6f7365204567670000000000000000000000000000000000000000000000815250905090565b60006108e96108e261186a565b8484611872565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600069d3c21bcecceda1000000905090565b6000610938848484611a3d565b6109f98461094461186a565b6109f48560405180606001604052806028815260200161413860289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109aa61186a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123859092919063ffffffff16565b611872565b600190509392505050565b610a0c61186a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9090613828565b60405180910390fd5b801515601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610b2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b23906137e8565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60195481565b60006009905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610bc461186a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4890613828565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610cb461186a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3890613828565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d9e61186a565b73ffffffffffffffffffffffffffffffffffffffff161480610e145750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dfc61186a565b73ffffffffffffffffffffffffffffffffffffffff16145b610e1d57600080fd5b6000479050610e2b816123e9565b50565b6000610e78600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124e4565b9050919050565b610e8761186a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0b90613828565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610fda61186a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105e90613828565b60405180910390fd5b8060178190555050565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60185481565b60606040518060400160405280600381526020017f4547470000000000000000000000000000000000000000000000000000000000815250905090565b6110eb61186a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116f90613828565b60405180910390fd5b8060198190555050565b61118a61186a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611217576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120e90613828565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061124d61124661186a565b8484611a3d565b6001905092915050565b60116020528060005260406000206000915054906101000a900460ff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112d861186a565b73ffffffffffffffffffffffffffffffffffffffff16148061134e5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661133661186a565b73ffffffffffffffffffffffffffffffffffffffff16145b61135757600080fd5b600061136230610e2e565b905061136d81612552565b50565b61137861186a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611405576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fc90613828565b60405180910390fd5b60005b838390508110156114ca578160056000868685818110611451577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201602081019061146691906130ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114c290613c02565b915050611408565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61155f61186a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e390613828565b60405180910390fd5b80601660146101000a81548160ff02191690831515021790555050565b61161161186a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461169e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169590613828565b60405180910390fd5b8060188190555050565b6116b061186a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461173d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173490613828565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a490613768565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d9906138a8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611952576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194990613788565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a3091906138c8565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611aad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa490613868565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b14906136e8565b60405180910390fd5b60008111611b60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5790613848565b60405180910390fd5b611b68611077565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611bd65750611ba6611077565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c2c5750601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c825750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561208457601660149054906101000a900460ff16611d2857601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611d27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1e90613708565b60405180910390fd5b5b601754811115611d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6490613748565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e115750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611e50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e47906137a8565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611efd5760185481611eb284610e2e565b611ebc91906139fe565b10611efc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef390613888565b60405180910390fd5b5b6000611f0830610e2e565b9050600060195482101590506017548210611f235760175491505b808015611f3d5750601660159054906101000a900460ff16155b8015611f975750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611fad575060168054906101000a900460ff165b80156120035750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120595750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120815761206782612552565b6000479050600081111561207f5761207e476123e9565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061212b5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806121de5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156121dd5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156121ec5760009050612373565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156122975750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122af57600854600c81905550600954600d819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561235a5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561237257600a54600c81905550600b54600d819055505b5b61237f8484848461284c565b50505050565b60008383111582906123cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c491906136c6565b60405180910390fd5b50600083856123dc9190613adf565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61243960028461287990919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612464573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6124b560028461287990919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156124e0573d6000803e3d6000fd5b5050565b600060065482111561252b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252290613728565b60405180910390fd5b60006125356128c3565b905061254a818461287990919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156125b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156125de5781602001602082028036833780820191505090505b509050308160008151811061261c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156126be57600080fd5b505afa1580156126d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126f691906130d6565b81600181518110612730577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061279730601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611872565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016127fb9594939291906138e3565b600060405180830381600087803b15801561281557600080fd5b505af1158015612829573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b8061285a576128596128ee565b5b612865848484612931565b8061287357612872612afc565b5b50505050565b60006128bb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b10565b905092915050565b60008060006128d0612b73565b915091506128e7818361287990919063ffffffff16565b9250505090565b6000600c5414801561290257506000600d54145b1561290c5761292f565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061294387612bd8565b9550955095509550955095506129a186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c4090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a3685600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c8a90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a8281612ce8565b612a8c8483612da5565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612ae991906138c8565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008083118290612b57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b4e91906136c6565b60405180910390fd5b5060008385612b669190613a54565b9050809150509392505050565b60008060006006549050600069d3c21bcecceda10000009050612bab69d3c21bcecceda100000060065461287990919063ffffffff16565b821015612bcb5760065469d3c21bcecceda1000000935093505050612bd4565b81819350935050505b9091565b6000806000806000806000806000612bf58a600c54600d54612ddf565b9250925092506000612c056128c3565b90506000806000612c188e878787612e75565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612c8283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612385565b905092915050565b6000808284612c9991906139fe565b905083811015612cde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cd5906137c8565b60405180910390fd5b8091505092915050565b6000612cf26128c3565b90506000612d098284612efe90919063ffffffff16565b9050612d5d81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c8a90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612dba82600654612c4090919063ffffffff16565b600681905550612dd581600754612c8a90919063ffffffff16565b6007819055505050565b600080600080612e0b6064612dfd888a612efe90919063ffffffff16565b61287990919063ffffffff16565b90506000612e356064612e27888b612efe90919063ffffffff16565b61287990919063ffffffff16565b90506000612e5e82612e50858c612c4090919063ffffffff16565b612c4090919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612e8e8589612efe90919063ffffffff16565b90506000612ea58689612efe90919063ffffffff16565b90506000612ebc8789612efe90919063ffffffff16565b90506000612ee582612ed78587612c4090919063ffffffff16565b612c4090919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612f115760009050612f73565b60008284612f1f9190613a85565b9050828482612f2e9190613a54565b14612f6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f6590613808565b60405180910390fd5b809150505b92915050565b6000612f8c612f878461397d565b613958565b90508083825260208201905082856020860282011115612fab57600080fd5b60005b85811015612fdb5781612fc18882612fe5565b845260208401935060208301925050600181019050612fae565b5050509392505050565b600081359050612ff4816140f2565b92915050565b600081519050613009816140f2565b92915050565b60008083601f84011261302157600080fd5b8235905067ffffffffffffffff81111561303a57600080fd5b60208301915083602082028301111561305257600080fd5b9250929050565b600082601f83011261306a57600080fd5b813561307a848260208601612f79565b91505092915050565b60008135905061309281614109565b92915050565b6000813590506130a781614120565b92915050565b6000602082840312156130bf57600080fd5b60006130cd84828501612fe5565b91505092915050565b6000602082840312156130e857600080fd5b60006130f684828501612ffa565b91505092915050565b6000806040838503121561311257600080fd5b600061312085828601612fe5565b925050602061313185828601612fe5565b9150509250929050565b60008060006060848603121561315057600080fd5b600061315e86828701612fe5565b935050602061316f86828701612fe5565b925050604061318086828701613098565b9150509250925092565b6000806040838503121561319d57600080fd5b60006131ab85828601612fe5565b92505060206131bc85828601613083565b9150509250929050565b600080604083850312156131d957600080fd5b60006131e785828601612fe5565b92505060206131f885828601613098565b9150509250929050565b60008060006040848603121561321757600080fd5b600084013567ffffffffffffffff81111561323157600080fd5b61323d8682870161300f565b9350935050602061325086828701613083565b9150509250925092565b60006020828403121561326c57600080fd5b600082013567ffffffffffffffff81111561328657600080fd5b61329284828501613059565b91505092915050565b6000602082840312156132ad57600080fd5b60006132bb84828501613083565b91505092915050565b6000602082840312156132d657600080fd5b60006132e484828501613098565b91505092915050565b6000806000806080858703121561330357600080fd5b600061331187828801613098565b945050602061332287828801613098565b935050604061333387828801613098565b925050606061334487828801613098565b91505092959194509250565b600061335c8383613368565b60208301905092915050565b61337181613b13565b82525050565b61338081613b13565b82525050565b6000613391826139b9565b61339b81856139dc565b93506133a6836139a9565b8060005b838110156133d75781516133be8882613350565b97506133c9836139cf565b9250506001810190506133aa565b5085935050505092915050565b6133ed81613b25565b82525050565b6133fc81613b68565b82525050565b61340b81613b8c565b82525050565b600061341c826139c4565b61342681856139ed565b9350613436818560208601613b9e565b61343f81613cd8565b840191505092915050565b60006134576023836139ed565b915061346282613ce9565b604082019050919050565b600061347a603f836139ed565b915061348582613d38565b604082019050919050565b600061349d602a836139ed565b91506134a882613d87565b604082019050919050565b60006134c0601c836139ed565b91506134cb82613dd6565b602082019050919050565b60006134e36026836139ed565b91506134ee82613dff565b604082019050919050565b60006135066022836139ed565b915061351182613e4e565b604082019050919050565b60006135296023836139ed565b915061353482613e9d565b604082019050919050565b600061354c601b836139ed565b915061355782613eec565b602082019050919050565b600061356f6017836139ed565b915061357a82613f15565b602082019050919050565b60006135926021836139ed565b915061359d82613f3e565b604082019050919050565b60006135b56020836139ed565b91506135c082613f8d565b602082019050919050565b60006135d86029836139ed565b91506135e382613fb6565b604082019050919050565b60006135fb6025836139ed565b915061360682614005565b604082019050919050565b600061361e6023836139ed565b915061362982614054565b604082019050919050565b60006136416024836139ed565b915061364c826140a3565b604082019050919050565b61366081613b51565b82525050565b61366f81613b5b565b82525050565b600060208201905061368a6000830184613377565b92915050565b60006020820190506136a560008301846133e4565b92915050565b60006020820190506136c060008301846133f3565b92915050565b600060208201905081810360008301526136e08184613411565b905092915050565b600060208201905081810360008301526137018161344a565b9050919050565b600060208201905081810360008301526137218161346d565b9050919050565b6000602082019050818103600083015261374181613490565b9050919050565b60006020820190508181036000830152613761816134b3565b9050919050565b60006020820190508181036000830152613781816134d6565b9050919050565b600060208201905081810360008301526137a1816134f9565b9050919050565b600060208201905081810360008301526137c18161351c565b9050919050565b600060208201905081810360008301526137e18161353f565b9050919050565b6000602082019050818103600083015261380181613562565b9050919050565b6000602082019050818103600083015261382181613585565b9050919050565b60006020820190508181036000830152613841816135a8565b9050919050565b60006020820190508181036000830152613861816135cb565b9050919050565b60006020820190508181036000830152613881816135ee565b9050919050565b600060208201905081810360008301526138a181613611565b9050919050565b600060208201905081810360008301526138c181613634565b9050919050565b60006020820190506138dd6000830184613657565b92915050565b600060a0820190506138f86000830188613657565b6139056020830187613402565b81810360408301526139178186613386565b90506139266060830185613377565b6139336080830184613657565b9695505050505050565b60006020820190506139526000830184613666565b92915050565b6000613962613973565b905061396e8282613bd1565b919050565b6000604051905090565b600067ffffffffffffffff82111561399857613997613ca9565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613a0982613b51565b9150613a1483613b51565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a4957613a48613c4b565b5b828201905092915050565b6000613a5f82613b51565b9150613a6a83613b51565b925082613a7a57613a79613c7a565b5b828204905092915050565b6000613a9082613b51565b9150613a9b83613b51565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ad457613ad3613c4b565b5b828202905092915050565b6000613aea82613b51565b9150613af583613b51565b925082821015613b0857613b07613c4b565b5b828203905092915050565b6000613b1e82613b31565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613b7382613b7a565b9050919050565b6000613b8582613b31565b9050919050565b6000613b9782613b51565b9050919050565b60005b83811015613bbc578082015181840152602081019050613ba1565b83811115613bcb576000848401525b50505050565b613bda82613cd8565b810181811067ffffffffffffffff82111715613bf957613bf8613ca9565b5b80604052505050565b6000613c0d82613b51565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613c4057613c3f613c4b565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f544f4b454e3a20416c726561647920656e61626c65642e000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6140fb81613b13565b811461410657600080fd5b50565b61411281613b25565b811461411d57600080fd5b50565b61412981613b51565b811461413457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207522406a422e0686f780e42651d2010e86e67d5d3e8d0d4d1323ac306806730b64736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101db5760003560e01c806374010ece11610102578063bdd795ef11610095578063dd62ed3e11610064578063dd62ed3e14610690578063dfa5bc81146106cd578063ea1644d5146106f6578063f2fde38b1461071f576101e2565b8063bdd795ef146105d6578063bfd7928414610613578063c3c8cd8014610650578063c492f04614610667576101e2565b806395d89b41116100d157806395d89b411461051c57806398a5c31514610547578063a2a957bb14610570578063a9059cbb14610599576101e2565b806374010ece146104725780637d1db4a51461049b5780638da5cb5b146104c65780638f9a55c0146104f1576101e2565b80632fd689e31161017a5780636d8aa8f8116101495780636d8aa8f8146103de5780636fc3eaec1461040757806370a082311461041e578063715018a61461045b576101e2565b80632fd689e314610334578063313ce5671461035f57806349bd5a5e1461038a5780636b999053146103b5576101e2565b80631694505e116101b65780631694505e1461027857806318160ddd146102a357806323b872dd146102ce5780632f9c45691461030b576101e2565b8062b8cf2a146101e757806306fdde0314610210578063095ea7b31461023b576101e2565b366101e257005b600080fd5b3480156101f357600080fd5b5061020e6004803603810190610209919061325a565b610748565b005b34801561021c57600080fd5b50610225610898565b60405161023291906136c6565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d91906131c6565b6108d5565b60405161026f9190613690565b60405180910390f35b34801561028457600080fd5b5061028d6108f3565b60405161029a91906136ab565b60405180910390f35b3480156102af57600080fd5b506102b8610919565b6040516102c591906138c8565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f0919061313b565b61092b565b6040516103029190613690565b60405180910390f35b34801561031757600080fd5b50610332600480360381019061032d919061318a565b610a04565b005b34801561034057600080fd5b50610349610b87565b60405161035691906138c8565b60405180910390f35b34801561036b57600080fd5b50610374610b8d565b604051610381919061393d565b60405180910390f35b34801561039657600080fd5b5061039f610b96565b6040516103ac9190613675565b60405180910390f35b3480156103c157600080fd5b506103dc60048036038101906103d791906130ad565b610bbc565b005b3480156103ea57600080fd5b506104056004803603810190610400919061329b565b610cac565b005b34801561041357600080fd5b5061041c610d5d565b005b34801561042a57600080fd5b50610445600480360381019061044091906130ad565b610e2e565b60405161045291906138c8565b60405180910390f35b34801561046757600080fd5b50610470610e7f565b005b34801561047e57600080fd5b50610499600480360381019061049491906132c4565b610fd2565b005b3480156104a757600080fd5b506104b0611071565b6040516104bd91906138c8565b60405180910390f35b3480156104d257600080fd5b506104db611077565b6040516104e89190613675565b60405180910390f35b3480156104fd57600080fd5b506105066110a0565b60405161051391906138c8565b60405180910390f35b34801561052857600080fd5b506105316110a6565b60405161053e91906136c6565b60405180910390f35b34801561055357600080fd5b5061056e600480360381019061056991906132c4565b6110e3565b005b34801561057c57600080fd5b50610597600480360381019061059291906132ed565b611182565b005b3480156105a557600080fd5b506105c060048036038101906105bb91906131c6565b611239565b6040516105cd9190613690565b60405180910390f35b3480156105e257600080fd5b506105fd60048036038101906105f891906130ad565b611257565b60405161060a9190613690565b60405180910390f35b34801561061f57600080fd5b5061063a600480360381019061063591906130ad565b611277565b6040516106479190613690565b60405180910390f35b34801561065c57600080fd5b50610665611297565b005b34801561067357600080fd5b5061068e60048036038101906106899190613202565b611370565b005b34801561069c57600080fd5b506106b760048036038101906106b291906130ff565b6114d0565b6040516106c491906138c8565b60405180910390f35b3480156106d957600080fd5b506106f460048036038101906106ef919061329b565b611557565b005b34801561070257600080fd5b5061071d600480360381019061071891906132c4565b611609565b005b34801561072b57600080fd5b50610746600480360381019061074191906130ad565b6116a8565b005b61075061186a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d490613828565b60405180910390fd5b60005b815181101561089457600160106000848481518110610828577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061088c90613c02565b9150506107e0565b5050565b60606040518060400160405280600981526020017f476f6f7365204567670000000000000000000000000000000000000000000000815250905090565b60006108e96108e261186a565b8484611872565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600069d3c21bcecceda1000000905090565b6000610938848484611a3d565b6109f98461094461186a565b6109f48560405180606001604052806028815260200161413860289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109aa61186a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123859092919063ffffffff16565b611872565b600190509392505050565b610a0c61186a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9090613828565b60405180910390fd5b801515601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610b2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b23906137e8565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60195481565b60006009905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610bc461186a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4890613828565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610cb461186a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3890613828565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d9e61186a565b73ffffffffffffffffffffffffffffffffffffffff161480610e145750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dfc61186a565b73ffffffffffffffffffffffffffffffffffffffff16145b610e1d57600080fd5b6000479050610e2b816123e9565b50565b6000610e78600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124e4565b9050919050565b610e8761186a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0b90613828565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610fda61186a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105e90613828565b60405180910390fd5b8060178190555050565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60185481565b60606040518060400160405280600381526020017f4547470000000000000000000000000000000000000000000000000000000000815250905090565b6110eb61186a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116f90613828565b60405180910390fd5b8060198190555050565b61118a61186a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611217576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120e90613828565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061124d61124661186a565b8484611a3d565b6001905092915050565b60116020528060005260406000206000915054906101000a900460ff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112d861186a565b73ffffffffffffffffffffffffffffffffffffffff16148061134e5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661133661186a565b73ffffffffffffffffffffffffffffffffffffffff16145b61135757600080fd5b600061136230610e2e565b905061136d81612552565b50565b61137861186a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611405576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fc90613828565b60405180910390fd5b60005b838390508110156114ca578160056000868685818110611451577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201602081019061146691906130ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114c290613c02565b915050611408565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61155f61186a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e390613828565b60405180910390fd5b80601660146101000a81548160ff02191690831515021790555050565b61161161186a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461169e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169590613828565b60405180910390fd5b8060188190555050565b6116b061186a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461173d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173490613828565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a490613768565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d9906138a8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611952576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194990613788565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a3091906138c8565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611aad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa490613868565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b14906136e8565b60405180910390fd5b60008111611b60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5790613848565b60405180910390fd5b611b68611077565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611bd65750611ba6611077565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c2c5750601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c825750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561208457601660149054906101000a900460ff16611d2857601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611d27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1e90613708565b60405180910390fd5b5b601754811115611d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6490613748565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e115750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611e50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e47906137a8565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611efd5760185481611eb284610e2e565b611ebc91906139fe565b10611efc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef390613888565b60405180910390fd5b5b6000611f0830610e2e565b9050600060195482101590506017548210611f235760175491505b808015611f3d5750601660159054906101000a900460ff16155b8015611f975750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611fad575060168054906101000a900460ff165b80156120035750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120595750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120815761206782612552565b6000479050600081111561207f5761207e476123e9565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061212b5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806121de5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156121dd5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156121ec5760009050612373565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156122975750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122af57600854600c81905550600954600d819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561235a5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561237257600a54600c81905550600b54600d819055505b5b61237f8484848461284c565b50505050565b60008383111582906123cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c491906136c6565b60405180910390fd5b50600083856123dc9190613adf565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61243960028461287990919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612464573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6124b560028461287990919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156124e0573d6000803e3d6000fd5b5050565b600060065482111561252b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252290613728565b60405180910390fd5b60006125356128c3565b905061254a818461287990919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156125b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156125de5781602001602082028036833780820191505090505b509050308160008151811061261c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156126be57600080fd5b505afa1580156126d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126f691906130d6565b81600181518110612730577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061279730601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611872565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016127fb9594939291906138e3565b600060405180830381600087803b15801561281557600080fd5b505af1158015612829573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b8061285a576128596128ee565b5b612865848484612931565b8061287357612872612afc565b5b50505050565b60006128bb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b10565b905092915050565b60008060006128d0612b73565b915091506128e7818361287990919063ffffffff16565b9250505090565b6000600c5414801561290257506000600d54145b1561290c5761292f565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061294387612bd8565b9550955095509550955095506129a186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c4090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a3685600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c8a90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a8281612ce8565b612a8c8483612da5565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612ae991906138c8565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008083118290612b57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b4e91906136c6565b60405180910390fd5b5060008385612b669190613a54565b9050809150509392505050565b60008060006006549050600069d3c21bcecceda10000009050612bab69d3c21bcecceda100000060065461287990919063ffffffff16565b821015612bcb5760065469d3c21bcecceda1000000935093505050612bd4565b81819350935050505b9091565b6000806000806000806000806000612bf58a600c54600d54612ddf565b9250925092506000612c056128c3565b90506000806000612c188e878787612e75565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612c8283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612385565b905092915050565b6000808284612c9991906139fe565b905083811015612cde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cd5906137c8565b60405180910390fd5b8091505092915050565b6000612cf26128c3565b90506000612d098284612efe90919063ffffffff16565b9050612d5d81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c8a90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612dba82600654612c4090919063ffffffff16565b600681905550612dd581600754612c8a90919063ffffffff16565b6007819055505050565b600080600080612e0b6064612dfd888a612efe90919063ffffffff16565b61287990919063ffffffff16565b90506000612e356064612e27888b612efe90919063ffffffff16565b61287990919063ffffffff16565b90506000612e5e82612e50858c612c4090919063ffffffff16565b612c4090919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612e8e8589612efe90919063ffffffff16565b90506000612ea58689612efe90919063ffffffff16565b90506000612ebc8789612efe90919063ffffffff16565b90506000612ee582612ed78587612c4090919063ffffffff16565b612c4090919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612f115760009050612f73565b60008284612f1f9190613a85565b9050828482612f2e9190613a54565b14612f6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f6590613808565b60405180910390fd5b809150505b92915050565b6000612f8c612f878461397d565b613958565b90508083825260208201905082856020860282011115612fab57600080fd5b60005b85811015612fdb5781612fc18882612fe5565b845260208401935060208301925050600181019050612fae565b5050509392505050565b600081359050612ff4816140f2565b92915050565b600081519050613009816140f2565b92915050565b60008083601f84011261302157600080fd5b8235905067ffffffffffffffff81111561303a57600080fd5b60208301915083602082028301111561305257600080fd5b9250929050565b600082601f83011261306a57600080fd5b813561307a848260208601612f79565b91505092915050565b60008135905061309281614109565b92915050565b6000813590506130a781614120565b92915050565b6000602082840312156130bf57600080fd5b60006130cd84828501612fe5565b91505092915050565b6000602082840312156130e857600080fd5b60006130f684828501612ffa565b91505092915050565b6000806040838503121561311257600080fd5b600061312085828601612fe5565b925050602061313185828601612fe5565b9150509250929050565b60008060006060848603121561315057600080fd5b600061315e86828701612fe5565b935050602061316f86828701612fe5565b925050604061318086828701613098565b9150509250925092565b6000806040838503121561319d57600080fd5b60006131ab85828601612fe5565b92505060206131bc85828601613083565b9150509250929050565b600080604083850312156131d957600080fd5b60006131e785828601612fe5565b92505060206131f885828601613098565b9150509250929050565b60008060006040848603121561321757600080fd5b600084013567ffffffffffffffff81111561323157600080fd5b61323d8682870161300f565b9350935050602061325086828701613083565b9150509250925092565b60006020828403121561326c57600080fd5b600082013567ffffffffffffffff81111561328657600080fd5b61329284828501613059565b91505092915050565b6000602082840312156132ad57600080fd5b60006132bb84828501613083565b91505092915050565b6000602082840312156132d657600080fd5b60006132e484828501613098565b91505092915050565b6000806000806080858703121561330357600080fd5b600061331187828801613098565b945050602061332287828801613098565b935050604061333387828801613098565b925050606061334487828801613098565b91505092959194509250565b600061335c8383613368565b60208301905092915050565b61337181613b13565b82525050565b61338081613b13565b82525050565b6000613391826139b9565b61339b81856139dc565b93506133a6836139a9565b8060005b838110156133d75781516133be8882613350565b97506133c9836139cf565b9250506001810190506133aa565b5085935050505092915050565b6133ed81613b25565b82525050565b6133fc81613b68565b82525050565b61340b81613b8c565b82525050565b600061341c826139c4565b61342681856139ed565b9350613436818560208601613b9e565b61343f81613cd8565b840191505092915050565b60006134576023836139ed565b915061346282613ce9565b604082019050919050565b600061347a603f836139ed565b915061348582613d38565b604082019050919050565b600061349d602a836139ed565b91506134a882613d87565b604082019050919050565b60006134c0601c836139ed565b91506134cb82613dd6565b602082019050919050565b60006134e36026836139ed565b91506134ee82613dff565b604082019050919050565b60006135066022836139ed565b915061351182613e4e565b604082019050919050565b60006135296023836139ed565b915061353482613e9d565b604082019050919050565b600061354c601b836139ed565b915061355782613eec565b602082019050919050565b600061356f6017836139ed565b915061357a82613f15565b602082019050919050565b60006135926021836139ed565b915061359d82613f3e565b604082019050919050565b60006135b56020836139ed565b91506135c082613f8d565b602082019050919050565b60006135d86029836139ed565b91506135e382613fb6565b604082019050919050565b60006135fb6025836139ed565b915061360682614005565b604082019050919050565b600061361e6023836139ed565b915061362982614054565b604082019050919050565b60006136416024836139ed565b915061364c826140a3565b604082019050919050565b61366081613b51565b82525050565b61366f81613b5b565b82525050565b600060208201905061368a6000830184613377565b92915050565b60006020820190506136a560008301846133e4565b92915050565b60006020820190506136c060008301846133f3565b92915050565b600060208201905081810360008301526136e08184613411565b905092915050565b600060208201905081810360008301526137018161344a565b9050919050565b600060208201905081810360008301526137218161346d565b9050919050565b6000602082019050818103600083015261374181613490565b9050919050565b60006020820190508181036000830152613761816134b3565b9050919050565b60006020820190508181036000830152613781816134d6565b9050919050565b600060208201905081810360008301526137a1816134f9565b9050919050565b600060208201905081810360008301526137c18161351c565b9050919050565b600060208201905081810360008301526137e18161353f565b9050919050565b6000602082019050818103600083015261380181613562565b9050919050565b6000602082019050818103600083015261382181613585565b9050919050565b60006020820190508181036000830152613841816135a8565b9050919050565b60006020820190508181036000830152613861816135cb565b9050919050565b60006020820190508181036000830152613881816135ee565b9050919050565b600060208201905081810360008301526138a181613611565b9050919050565b600060208201905081810360008301526138c181613634565b9050919050565b60006020820190506138dd6000830184613657565b92915050565b600060a0820190506138f86000830188613657565b6139056020830187613402565b81810360408301526139178186613386565b90506139266060830185613377565b6139336080830184613657565b9695505050505050565b60006020820190506139526000830184613666565b92915050565b6000613962613973565b905061396e8282613bd1565b919050565b6000604051905090565b600067ffffffffffffffff82111561399857613997613ca9565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613a0982613b51565b9150613a1483613b51565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a4957613a48613c4b565b5b828201905092915050565b6000613a5f82613b51565b9150613a6a83613b51565b925082613a7a57613a79613c7a565b5b828204905092915050565b6000613a9082613b51565b9150613a9b83613b51565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ad457613ad3613c4b565b5b828202905092915050565b6000613aea82613b51565b9150613af583613b51565b925082821015613b0857613b07613c4b565b5b828203905092915050565b6000613b1e82613b31565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613b7382613b7a565b9050919050565b6000613b8582613b31565b9050919050565b6000613b9782613b51565b9050919050565b60005b83811015613bbc578082015181840152602081019050613ba1565b83811115613bcb576000848401525b50505050565b613bda82613cd8565b810181811067ffffffffffffffff82111715613bf957613bf8613ca9565b5b80604052505050565b6000613c0d82613b51565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613c4057613c3f613c4b565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f544f4b454e3a20416c726561647920656e61626c65642e000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6140fb81613b13565b811461410657600080fd5b50565b61411281613b25565b811461411d57600080fd5b50565b61412981613b51565b811461413457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207522406a422e0686f780e42651d2010e86e67d5d3e8d0d4d1323ac306806730b64736f6c63430008040033

Deployed Bytecode Sourcemap

4090:18201:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17224:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10857:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11782:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5553:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11134:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11983:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22092:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5877:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11043:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5601:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17401:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21468:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16981:235;;;;;;;;;;;;;:::i;:::-;;11237:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1571:148;;;;;;;;;;;;;:::i;:::-;;21607:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5749:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1357:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5812:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10948:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21274:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20922:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11383:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5237:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5194:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16737:236;;;;;;;;;;;;;:::i;:::-;;21849:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11590:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16631:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21726:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1730:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17224:169;1494:12;:10;:12::i;:::-;1484:22;;:6;;;;;;;;;;:22;;;1476:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17300:9:::1;17295:91;17319:5;:12;17315:1;:16;17295:91;;;17370:4;17353;:14;17358:5;17364:1;17358:8;;;;;;;;;;;;;;;;;;;;;;17353:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;17333:3;;;;;:::i;:::-;;;;17295:91;;;;17224:169:::0;:::o;10857:83::-;10894:13;10927:5;;;;;;;;;;;;;;;;;10920:12;;10857:83;:::o;11782:193::-;11884:4;11906:39;11915:12;:10;:12::i;:::-;11929:7;11938:6;11906:8;:39::i;:::-;11963:4;11956:11;;11782:193;;;;:::o;5553:41::-;;;;;;;;;;;;;:::o;11134:95::-;11187:7;4640:24;11207:14;;11134:95;:::o;11983:446::-;12115:4;12132:36;12142:6;12150:9;12161:6;12132:9;:36::i;:::-;12179:220;12202:6;12223:12;:10;:12::i;:::-;12250:138;12306:6;12250:138;;;;;;;;;;;;;;;;;:11;:19;12262:6;12250:19;;;;;;;;;;;;;;;:33;12270:12;:10;:12::i;:::-;12250:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;12179:8;:220::i;:::-;12417:4;12410:11;;11983:446;;;;;:::o;22092:196::-;1494:12;:10;:12::i;:::-;1484:22;;:6;;;;;;;;;;:22;;;1476:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22206:7:::1;22184:29;;:9;:18;22194:7;22184:18;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;;22176:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;22273:7;22252:9;:18;22262:7;22252:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;22092:196:::0;;:::o;5877:58::-;;;;:::o;11043:83::-;11084:5;4314:1;11102:16;;11043:83;:::o;5601:28::-;;;;;;;;;;;;;:::o;17401:92::-;1494:12;:10;:12::i;:::-;1484:22;;:6;;;;;;;;;;:22;;;1476:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17480:5:::1;17465:4;:12;17470:6;17465:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;17401:92:::0;:::o;21468:101::-;1494:12;:10;:12::i;:::-;1484:22;;:6;;;;;;;;;;:22;;;1476:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21549:12:::1;21535:11;::::0;:26:::1;;;;;;;;;;;;;;;;;;21468:101:::0;:::o;16981:235::-;17047:19;;;;;;;;;;;17031:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;17086:17;;;;;;;;;;;17070:33;;:12;:10;:12::i;:::-;:33;;;17031:72;17023:81;;;;;;17115:26;17144:21;17115:50;;17176:32;17189:18;17176:12;:32::i;:::-;16981:235;:::o;11237:138::-;11303:7;11330:37;11350:7;:16;11358:7;11350:16;;;;;;;;;;;;;;;;11330:19;:37::i;:::-;11323:44;;11237:138;;;:::o;1571:148::-;1494:12;:10;:12::i;:::-;1484:22;;:6;;;;;;;;;;:22;;;1476:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1678:1:::1;1641:40;;1662:6;::::0;::::1;;;;;;;;1641:40;;;;;;;;;;;;1709:1;1692:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1571:148::o:0;21607:108::-;1494:12;:10;:12::i;:::-;1484:22;;:6;;;;;;;;;;:22;;;1476:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21696:11:::1;21681:12;:26;;;;21607:108:::0;:::o;5749:52::-;;;;:::o;1357:79::-;1395:7;1422:6;;;;;;;;;;;1415:13;;1357:79;:::o;5812:54::-;;;;:::o;10948:87::-;10987:13;11020:7;;;;;;;;;;;;;;;;;11013:14;;10948:87;:::o;21274:139::-;1494:12;:10;:12::i;:::-;1484:22;;:6;;;;;;;;;;:22;;;1476:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21387:18:::1;21365:19;:40;;;;21274:139:::0;:::o;20922:300::-;1494:12;:10;:12::i;:::-;1484:22;;:6;;;;;;;;;;:22;;;1476:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21073:13:::1;21056:14;:30;;;;21115:14;21097:15;:32;;;;21164:11;21149:12;:26;;;;21202:12;21186:13;:28;;;;20922:300:::0;;;;:::o;11383:199::-;11488:4;11510:42;11520:12;:10;:12::i;:::-;11534:9;11545:6;11510:9;:42::i;:::-;11570:4;11563:11;;11383:199;;;;:::o;5237:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;5194:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;16737:236::-;16803:19;;;;;;;;;;;16787:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;16842:17;;;;;;;;;;;16826:33;;:12;:10;:12::i;:::-;:33;;;16787:72;16779:81;;;;;;16871:23;16897:24;16915:4;16897:9;:24::i;:::-;16871:50;;16932:33;16949:15;16932:16;:33::i;:::-;16737:236;:::o;21849:234::-;1494:12;:10;:12::i;:::-;1484:22;;:6;;;;;;;;;;:22;;;1476:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21966:9:::1;21962:114;21985:8;;:15;;21981:1;:19;21962:114;;;22056:8;22022:18;:31;22041:8;;22050:1;22041:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22022:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;22002:3;;;;;:::i;:::-;;;;21962:114;;;;21849:234:::0;;;:::o;11590:184::-;11707:7;11739:11;:18;11751:5;11739:18;;;;;;;;;;;;;;;:27;11758:7;11739:27;;;;;;;;;;;;;;;;11732:34;;11590:184;;;;:::o;16631:98::-;1494:12;:10;:12::i;:::-;1484:22;;:6;;;;;;;;;;:22;;;1476:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16709:12:::1;16695:11;;:26;;;;;;;;;;;;;;;;;;16631:98:::0;:::o;21726:115::-;1494:12;:10;:12::i;:::-;1484:22;;:6;;;;;;;;;;:22;;;1476:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21820:13:::1;21803:14;:30;;;;21726:115:::0;:::o;1730:244::-;1494:12;:10;:12::i;:::-;1484:22;;:6;;;;;;;;;;:22;;;1476:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1839:1:::1;1819:22;;:8;:22;;;;1811:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1929:8;1900:38;;1921:6;::::0;::::1;;;;;;;;1900:38;;;;;;;;;;;;1958:8;1949:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1730:244:::0;:::o;116:98::-;169:7;196:10;189:17;;116:98;:::o;13130:369::-;13274:1;13257:19;;:5;:19;;;;13249:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13355:1;13336:21;;:7;:21;;;;13328:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13437:6;13407:11;:18;13419:5;13407:18;;;;;;;;;;;;;;;:27;13426:7;13407:27;;;;;;;;;;;;;;;:36;;;;13475:7;13459:32;;13468:5;13459:32;;;13484:6;13459:32;;;;;;:::i;:::-;;;;;;;;13130:369;;;:::o;13507:2457::-;13645:1;13629:18;;:4;:18;;;;13621:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13722:1;13708:16;;:2;:16;;;;13700:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13792:1;13783:6;:10;13775:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13864:7;:5;:7::i;:::-;13856:15;;:4;:15;;;;:32;;;;;13881:7;:5;:7::i;:::-;13875:13;;:2;:13;;;;13856:32;:52;;;;;13893:9;:15;13903:4;13893:15;;;;;;;;;;;;;;;;;;;;;;;;;13892:16;13856:52;:70;;;;;13913:9;:13;13923:2;13913:13;;;;;;;;;;;;;;;;;;;;;;;;;13912:14;13856:70;13852:1354;;;13994:11;;;;;;;;;;;13989:144;;14034:9;:15;14044:4;14034:15;;;;;;;;;;;;;;;;;;;;;;;;;14026:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;13989:144;14180:12;;14170:6;:22;;14162:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;14249:4;:10;14254:4;14249:10;;;;;;;;;;;;;;;;;;;;;;;;;14248:11;:24;;;;;14264:4;:8;14269:2;14264:8;;;;;;;;;;;;;;;;;;;;;;;;;14263:9;14248:24;14240:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;14349:13;;;;;;;;;;;14343:19;;:2;:19;;;14340:146;;14416:14;;14407:6;14391:13;14401:2;14391:9;:13::i;:::-;:22;;;;:::i;:::-;:39;14383:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;14340:146;14513:28;14544:24;14562:4;14544:9;:24::i;:::-;14513:55;;14583:12;14622:19;;14598:20;:43;;14583:58;;14685:12;;14661:20;:36;14658:124;;14754:12;;14731:35;;14658:124;14813:7;:18;;;;;14825:6;;;;;;;;;;;14824:7;14813:18;:43;;;;;14843:13;;;;;;;;;;;14835:21;;:4;:21;;;;14813:43;:58;;;;;14860:11;;;;;;;;;;14813:58;:87;;;;;14876:18;:24;14895:4;14876:24;;;;;;;;;;;;;;;;;;;;;;;;;14875:25;14813:87;:114;;;;;14905:18;:22;14924:2;14905:22;;;;;;;;;;;;;;;;;;;;;;;;;14904:23;14813:114;14809:386;;;14948:38;14965:20;14948:16;:38::i;:::-;15005:26;15034:21;15005:50;;15099:1;15078:18;:22;15074:106;;;15125:35;15138:21;15125:12;:35::i;:::-;15074:106;14809:386;;13852:1354;;;15225:12;15240:4;15225:19;;15289:18;:24;15308:4;15289:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;15317:18;:22;15336:2;15317:22;;;;;;;;;;;;;;;;;;;;;;;;;15289:50;15288:102;;;;15353:13;;;;;;;;;;;15345:21;;:4;:21;;;;:44;;;;;15376:13;;;;;;;;;;;15370:19;;:2;:19;;;;15345:44;15288:102;15284:619;;;15417:5;15407:15;;15284:619;;;15511:13;;;;;;;;;;;15503:21;;:4;:21;;;:55;;;;;15542:15;;;;;;;;;;;15528:30;;:2;:30;;;;15503:55;15500:162;;;15591:14;;15579:9;:26;;;;15634:12;;15624:7;:22;;;;15500:162;15724:13;;;;;;;;;;;15718:19;;:2;:19;;;:55;;;;;15757:15;;;;;;;;;;;15741:32;;:4;:32;;;;15718:55;15714:165;;;15806:15;;15794:9;:27;;;;15850:13;;15840:7;:23;;;;15714:165;15284:619;15915:41;15930:4;15936:2;15940:6;15948:7;15915:14;:41::i;:::-;13507:2457;;;;:::o;2341:224::-;2461:7;2494:1;2489;:6;;2497:12;2481:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2521:9;2537:1;2533;:5;;;;:::i;:::-;2521:17;;2556:1;2549:8;;;2341:224;;;;;:::o;16463:160::-;16520:19;;;;;;;;;;;:28;;:43;16549:13;16560:1;16549:6;:10;;:13;;;;:::i;:::-;16520:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16574:17;;;;;;;;;;;:26;;:41;16601:13;16612:1;16601:6;:10;;:13;;;;:::i;:::-;16574:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16463:160;:::o;12437:323::-;12532:7;12590;;12579;:18;;12557:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;12678:19;12700:10;:8;:10::i;:::-;12678:32;;12728:24;12740:11;12728:7;:11;;:24;;;;:::i;:::-;12721:31;;;12437:323;;;:::o;15972:483::-;6044:4;6035:6;;:13;;;;;;;;;;;;;;;;;;16050:21:::1;16088:1;16074:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16050:40;;16119:4;16101;16106:1;16101:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;16145:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16135:4;16140:1;16135:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;16178:62;16195:4;16210:15;;;;;;;;;;;16228:11;16178:8;:62::i;:::-;16251:15;;;;;;;;;;;:66;;;16332:11;16358:1;16374:4;16401;16421:15;16251:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;6059:1;6080:5:::0;6071:6;;:14;;;;;;;;;;;;;;;;;;15972:483;:::o;17501:282::-;17657:7;17652:28;;17666:14;:12;:14::i;:::-;17652:28;17691:44;17709:6;17717:9;17728:6;17691:17;:44::i;:::-;17751:7;17746:29;;17760:15;:13;:15::i;:::-;17746:29;17501:282;;;;:::o;2827:132::-;2885:7;2912:39;2916:1;2919;2912:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2905:46;;2827:132;;;;:::o;20475:166::-;20517:7;20538:15;20555;20574:19;:17;:19::i;:::-;20537:56;;;;20613:20;20625:7;20613;:11;;:20;;;;:::i;:::-;20606:27;;;;20475:166;:::o;12768:229::-;12828:1;12815:9;;:14;:30;;;;;12844:1;12833:7;;:12;12815:30;12811:43;;;12847:7;;12811:43;12889:9;;12869:17;:29;;;;12927:7;;12909:15;:25;;;;12966:1;12954:9;:13;;;;12988:1;12978:7;:11;;;;12768:229;:::o;17791:610::-;17938:15;17968:23;18006:12;18033:23;18071:12;18098:13;18125:19;18136:7;18125:10;:19::i;:::-;17923:221;;;;;;;;;;;;18173:28;18193:7;18173;:15;18181:6;18173:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;18155:7;:15;18163:6;18155:15;;;;;;;;;;;;;;;:46;;;;18233:39;18256:15;18233:7;:18;18241:9;18233:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;18212:7;:18;18220:9;18212:18;;;;;;;;;;;;;;;:60;;;;18283:16;18293:5;18283:9;:16::i;:::-;18310:23;18322:4;18328;18310:11;:23::i;:::-;18366:9;18349:44;;18358:6;18349:44;;;18377:15;18349:44;;;;;;:::i;:::-;;;;;;;;17791:610;;;;;;;;;:::o;13005:117::-;13061:17;;13049:9;:29;;;;13099:15;;13089:7;:25;;;;13005:117::o;2967:223::-;3087:7;3119:1;3115;:5;3122:12;3107:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3146:9;3162:1;3158;:5;;;;:::i;:::-;3146:17;;3181:1;3174:8;;;2967:223;;;;;:::o;20649:262::-;20700:7;20709;20729:15;20747:7;;20729:25;;20765:15;4640:24;20765:25;;20815:20;4640:24;20815:7;;:11;;:20;;;;:::i;:::-;20805:7;:30;20801:61;;;20845:7;;4640:24;20837:25;;;;;;;;20801:61;20886:7;20895;20878:25;;;;;;20649:262;;;:::o;18820:624::-;18920:7;18942;18964;18986;19008;19030;19066:23;19091:12;19105:13;19135:40;19147:7;19156:9;;19167:7;;19135:11;:40::i;:::-;19065:110;;;;;;19186:19;19208:10;:8;:10::i;:::-;19186:32;;19230:15;19247:23;19272:12;19301:46;19313:7;19322:4;19328:5;19335:11;19301;:46::i;:::-;19229:118;;;;;;19375:7;19384:15;19401:4;19407:15;19424:4;19430:5;19367:69;;;;;;;;;;;;;;;;;;;18820:624;;;;;;;:::o;2197:136::-;2255:7;2282:43;2286:1;2289;2282:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2275:50;;2197:136;;;;:::o;2010:179::-;2068:7;2088:9;2104:1;2100;:5;;;;:::i;:::-;2088:17;;2129:1;2124;:6;;2116:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2180:1;2173:8;;;2010:179;;;;:::o;18409:211::-;18462:19;18484:10;:8;:10::i;:::-;18462:32;;18505:13;18521:22;18531:11;18521:5;:9;;:22;;;;:::i;:::-;18505:38;;18579:33;18606:5;18579:7;:22;18595:4;18579:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;18554:7;:22;18570:4;18554:22;;;;;;;;;;;;;;;:58;;;;18409:211;;;:::o;18628:147::-;18706:17;18718:4;18706:7;;:11;;:17;;;;:::i;:::-;18696:7;:27;;;;18747:20;18762:4;18747:10;;:14;;:20;;;;:::i;:::-;18734:10;:33;;;;18628:147;;:::o;19452:471::-;19621:7;19643;19665;19700:12;19715:30;19741:3;19715:21;19727:8;19715:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;19700:45;;19756:13;19772:28;19796:3;19772:19;19784:6;19772:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;19756:44;;19811:23;19837:28;19859:5;19837:17;19849:4;19837:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;19811:54;;19886:15;19903:4;19909:5;19878:37;;;;;;;;;19452:471;;;;;;;:::o;19931:536::-;20125:7;20147;20169;20204:15;20222:24;20234:11;20222:7;:11;;:24;;;;:::i;:::-;20204:42;;20257:12;20272:21;20281:11;20272:4;:8;;:21;;;;:::i;:::-;20257:36;;20304:13;20320:22;20330:11;20320:5;:9;;:22;;;;:::i;:::-;20304:38;;20353:23;20379:28;20401:5;20379:17;20391:4;20379:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;20353:54;;20428:7;20437:15;20454:4;20420:39;;;;;;;;;;19931:536;;;;;;;;:::o;2573:246::-;2631:7;2660:1;2655;:6;2651:47;;;2685:1;2678:8;;;;2651:47;2708:9;2724:1;2720;:5;;;;:::i;:::-;2708:17;;2753:1;2748;2744;:5;;;;:::i;:::-;:10;2736:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2810:1;2803:8;;;2573:246;;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;996:367::-;1069:8;1079:6;1129:3;1122:4;1114:6;1110:17;1106:27;1096:2;;1147:1;1144;1137:12;1096:2;1183:6;1170:20;1160:30;;1213:18;1205:6;1202:30;1199:2;;;1245:1;1242;1235:12;1199:2;1282:4;1274:6;1270:17;1258:29;;1336:3;1328:4;1320:6;1316:17;1306:8;1302:32;1299:41;1296:2;;;1353:1;1350;1343:12;1296:2;1086:277;;;;;:::o;1386:303::-;1457:5;1506:3;1499:4;1491:6;1487:17;1483:27;1473:2;;1524:1;1521;1514:12;1473:2;1564:6;1551:20;1589:94;1679:3;1671:6;1664:4;1656:6;1652:17;1589:94;:::i;:::-;1580:103;;1463:226;;;;;:::o;1695:133::-;1738:5;1776:6;1763:20;1754:29;;1792:30;1816:5;1792:30;:::i;:::-;1744:84;;;;:::o;1834:139::-;1880:5;1918:6;1905:20;1896:29;;1934:33;1961:5;1934:33;:::i;:::-;1886:87;;;;:::o;1979:262::-;2038:6;2087:2;2075:9;2066:7;2062:23;2058:32;2055:2;;;2103:1;2100;2093:12;2055:2;2146:1;2171:53;2216:7;2207:6;2196:9;2192:22;2171:53;:::i;:::-;2161:63;;2117:117;2045:196;;;;:::o;2247:284::-;2317:6;2366:2;2354:9;2345:7;2341:23;2337:32;2334:2;;;2382:1;2379;2372:12;2334:2;2425:1;2450:64;2506:7;2497:6;2486:9;2482:22;2450:64;:::i;:::-;2440:74;;2396:128;2324:207;;;;:::o;2537:407::-;2605:6;2613;2662:2;2650:9;2641:7;2637:23;2633:32;2630:2;;;2678:1;2675;2668:12;2630:2;2721:1;2746:53;2791:7;2782:6;2771:9;2767:22;2746:53;:::i;:::-;2736:63;;2692:117;2848:2;2874:53;2919:7;2910:6;2899:9;2895:22;2874:53;:::i;:::-;2864:63;;2819:118;2620:324;;;;;:::o;2950:552::-;3027:6;3035;3043;3092:2;3080:9;3071:7;3067:23;3063:32;3060:2;;;3108:1;3105;3098:12;3060:2;3151:1;3176:53;3221:7;3212:6;3201:9;3197:22;3176:53;:::i;:::-;3166:63;;3122:117;3278:2;3304:53;3349:7;3340:6;3329:9;3325:22;3304:53;:::i;:::-;3294:63;;3249:118;3406:2;3432:53;3477:7;3468:6;3457:9;3453:22;3432:53;:::i;:::-;3422:63;;3377:118;3050:452;;;;;:::o;3508:401::-;3573:6;3581;3630:2;3618:9;3609:7;3605:23;3601:32;3598:2;;;3646:1;3643;3636:12;3598:2;3689:1;3714:53;3759:7;3750:6;3739:9;3735:22;3714:53;:::i;:::-;3704:63;;3660:117;3816:2;3842:50;3884:7;3875:6;3864:9;3860:22;3842:50;:::i;:::-;3832:60;;3787:115;3588:321;;;;;:::o;3915:407::-;3983:6;3991;4040:2;4028:9;4019:7;4015:23;4011:32;4008:2;;;4056:1;4053;4046:12;4008:2;4099:1;4124:53;4169:7;4160:6;4149:9;4145:22;4124:53;:::i;:::-;4114:63;;4070:117;4226:2;4252:53;4297:7;4288:6;4277:9;4273:22;4252:53;:::i;:::-;4242:63;;4197:118;3998:324;;;;;:::o;4328:564::-;4420:6;4428;4436;4485:2;4473:9;4464:7;4460:23;4456:32;4453:2;;;4501:1;4498;4491:12;4453:2;4572:1;4561:9;4557:17;4544:31;4602:18;4594:6;4591:30;4588:2;;;4634:1;4631;4624:12;4588:2;4670:80;4742:7;4733:6;4722:9;4718:22;4670:80;:::i;:::-;4652:98;;;;4515:245;4799:2;4825:50;4867:7;4858:6;4847:9;4843:22;4825:50;:::i;:::-;4815:60;;4770:115;4443:449;;;;;:::o;4898:405::-;4982:6;5031:2;5019:9;5010:7;5006:23;5002:32;4999:2;;;5047:1;5044;5037:12;4999:2;5118:1;5107:9;5103:17;5090:31;5148:18;5140:6;5137:30;5134:2;;;5180:1;5177;5170:12;5134:2;5208:78;5278:7;5269:6;5258:9;5254:22;5208:78;:::i;:::-;5198:88;;5061:235;4989:314;;;;:::o;5309:256::-;5365:6;5414:2;5402:9;5393:7;5389:23;5385:32;5382:2;;;5430:1;5427;5420:12;5382:2;5473:1;5498:50;5540:7;5531:6;5520:9;5516:22;5498:50;:::i;:::-;5488:60;;5444:114;5372:193;;;;:::o;5571:262::-;5630:6;5679:2;5667:9;5658:7;5654:23;5650:32;5647:2;;;5695:1;5692;5685:12;5647:2;5738:1;5763:53;5808:7;5799:6;5788:9;5784:22;5763:53;:::i;:::-;5753:63;;5709:117;5637:196;;;;:::o;5839:698::-;5925:6;5933;5941;5949;5998:3;5986:9;5977:7;5973:23;5969:33;5966:2;;;6015:1;6012;6005:12;5966:2;6058:1;6083:53;6128:7;6119:6;6108:9;6104:22;6083:53;:::i;:::-;6073:63;;6029:117;6185:2;6211:53;6256:7;6247:6;6236:9;6232:22;6211:53;:::i;:::-;6201:63;;6156:118;6313:2;6339:53;6384:7;6375:6;6364:9;6360:22;6339:53;:::i;:::-;6329:63;;6284:118;6441:2;6467:53;6512:7;6503:6;6492:9;6488:22;6467:53;:::i;:::-;6457:63;;6412:118;5956:581;;;;;;;:::o;6543:179::-;6612:10;6633:46;6675:3;6667:6;6633:46;:::i;:::-;6711:4;6706:3;6702:14;6688:28;;6623:99;;;;:::o;6728:108::-;6805:24;6823:5;6805:24;:::i;:::-;6800:3;6793:37;6783:53;;:::o;6842:118::-;6929:24;6947:5;6929:24;:::i;:::-;6924:3;6917:37;6907:53;;:::o;6996:732::-;7115:3;7144:54;7192:5;7144:54;:::i;:::-;7214:86;7293:6;7288:3;7214:86;:::i;:::-;7207:93;;7324:56;7374:5;7324:56;:::i;:::-;7403:7;7434:1;7419:284;7444:6;7441:1;7438:13;7419:284;;;7520:6;7514:13;7547:63;7606:3;7591:13;7547:63;:::i;:::-;7540:70;;7633:60;7686:6;7633:60;:::i;:::-;7623:70;;7479:224;7466:1;7463;7459:9;7454:14;;7419:284;;;7423:14;7719:3;7712:10;;7120:608;;;;;;;:::o;7734:109::-;7815:21;7830:5;7815:21;:::i;:::-;7810:3;7803:34;7793:50;;:::o;7849:183::-;7962:63;8019:5;7962:63;:::i;:::-;7957:3;7950:76;7940:92;;:::o;8038:147::-;8133:45;8172:5;8133:45;:::i;:::-;8128:3;8121:58;8111:74;;:::o;8191:364::-;8279:3;8307:39;8340:5;8307:39;:::i;:::-;8362:71;8426:6;8421:3;8362:71;:::i;:::-;8355:78;;8442:52;8487:6;8482:3;8475:4;8468:5;8464:16;8442:52;:::i;:::-;8519:29;8541:6;8519:29;:::i;:::-;8514:3;8510:39;8503:46;;8283:272;;;;;:::o;8561:366::-;8703:3;8724:67;8788:2;8783:3;8724:67;:::i;:::-;8717:74;;8800:93;8889:3;8800:93;:::i;:::-;8918:2;8913:3;8909:12;8902:19;;8707:220;;;:::o;8933:366::-;9075:3;9096:67;9160:2;9155:3;9096:67;:::i;:::-;9089:74;;9172:93;9261:3;9172:93;:::i;:::-;9290:2;9285:3;9281:12;9274:19;;9079:220;;;:::o;9305:366::-;9447:3;9468:67;9532:2;9527:3;9468:67;:::i;:::-;9461:74;;9544:93;9633:3;9544:93;:::i;:::-;9662:2;9657:3;9653:12;9646:19;;9451:220;;;:::o;9677:366::-;9819:3;9840:67;9904:2;9899:3;9840:67;:::i;:::-;9833:74;;9916:93;10005:3;9916:93;:::i;:::-;10034:2;10029:3;10025:12;10018:19;;9823:220;;;:::o;10049:366::-;10191:3;10212:67;10276:2;10271:3;10212:67;:::i;:::-;10205:74;;10288:93;10377:3;10288:93;:::i;:::-;10406:2;10401:3;10397:12;10390:19;;10195:220;;;:::o;10421:366::-;10563:3;10584:67;10648:2;10643:3;10584:67;:::i;:::-;10577:74;;10660:93;10749:3;10660:93;:::i;:::-;10778:2;10773:3;10769:12;10762:19;;10567:220;;;:::o;10793:366::-;10935:3;10956:67;11020:2;11015:3;10956:67;:::i;:::-;10949:74;;11032:93;11121:3;11032:93;:::i;:::-;11150:2;11145:3;11141:12;11134:19;;10939:220;;;:::o;11165:366::-;11307:3;11328:67;11392:2;11387:3;11328:67;:::i;:::-;11321:74;;11404:93;11493:3;11404:93;:::i;:::-;11522:2;11517:3;11513:12;11506:19;;11311:220;;;:::o;11537:366::-;11679:3;11700:67;11764:2;11759:3;11700:67;:::i;:::-;11693:74;;11776:93;11865:3;11776:93;:::i;:::-;11894:2;11889:3;11885:12;11878:19;;11683:220;;;:::o;11909:366::-;12051:3;12072:67;12136:2;12131:3;12072:67;:::i;:::-;12065:74;;12148:93;12237:3;12148:93;:::i;:::-;12266:2;12261:3;12257:12;12250:19;;12055:220;;;:::o;12281:366::-;12423:3;12444:67;12508:2;12503:3;12444:67;:::i;:::-;12437:74;;12520:93;12609:3;12520:93;:::i;:::-;12638:2;12633:3;12629:12;12622:19;;12427:220;;;:::o;12653:366::-;12795:3;12816:67;12880:2;12875:3;12816:67;:::i;:::-;12809:74;;12892:93;12981:3;12892:93;:::i;:::-;13010:2;13005:3;13001:12;12994:19;;12799:220;;;:::o;13025:366::-;13167:3;13188:67;13252:2;13247:3;13188:67;:::i;:::-;13181:74;;13264:93;13353:3;13264:93;:::i;:::-;13382:2;13377:3;13373:12;13366:19;;13171:220;;;:::o;13397:366::-;13539:3;13560:67;13624:2;13619:3;13560:67;:::i;:::-;13553:74;;13636:93;13725:3;13636:93;:::i;:::-;13754:2;13749:3;13745:12;13738:19;;13543:220;;;:::o;13769:366::-;13911:3;13932:67;13996:2;13991:3;13932:67;:::i;:::-;13925:74;;14008:93;14097:3;14008:93;:::i;:::-;14126:2;14121:3;14117:12;14110:19;;13915:220;;;:::o;14141:118::-;14228:24;14246:5;14228:24;:::i;:::-;14223:3;14216:37;14206:53;;:::o;14265:112::-;14348:22;14364:5;14348:22;:::i;:::-;14343:3;14336:35;14326:51;;:::o;14383:222::-;14476:4;14514:2;14503:9;14499:18;14491:26;;14527:71;14595:1;14584:9;14580:17;14571:6;14527:71;:::i;:::-;14481:124;;;;:::o;14611:210::-;14698:4;14736:2;14725:9;14721:18;14713:26;;14749:65;14811:1;14800:9;14796:17;14787:6;14749:65;:::i;:::-;14703:118;;;;:::o;14827:274::-;14946:4;14984:2;14973:9;14969:18;14961:26;;14997:97;15091:1;15080:9;15076:17;15067:6;14997:97;:::i;:::-;14951:150;;;;:::o;15107:313::-;15220:4;15258:2;15247:9;15243:18;15235:26;;15307:9;15301:4;15297:20;15293:1;15282:9;15278:17;15271:47;15335:78;15408:4;15399:6;15335:78;:::i;:::-;15327:86;;15225:195;;;;:::o;15426:419::-;15592:4;15630:2;15619:9;15615:18;15607:26;;15679:9;15673:4;15669:20;15665:1;15654:9;15650:17;15643:47;15707:131;15833:4;15707:131;:::i;:::-;15699:139;;15597:248;;;:::o;15851:419::-;16017:4;16055:2;16044:9;16040:18;16032:26;;16104:9;16098:4;16094:20;16090:1;16079:9;16075:17;16068:47;16132:131;16258:4;16132:131;:::i;:::-;16124:139;;16022:248;;;:::o;16276:419::-;16442:4;16480:2;16469:9;16465:18;16457:26;;16529:9;16523:4;16519:20;16515:1;16504:9;16500:17;16493:47;16557:131;16683:4;16557:131;:::i;:::-;16549:139;;16447:248;;;:::o;16701:419::-;16867:4;16905:2;16894:9;16890:18;16882:26;;16954:9;16948:4;16944:20;16940:1;16929:9;16925:17;16918:47;16982:131;17108:4;16982:131;:::i;:::-;16974:139;;16872:248;;;:::o;17126:419::-;17292:4;17330:2;17319:9;17315:18;17307:26;;17379:9;17373:4;17369:20;17365:1;17354:9;17350:17;17343:47;17407:131;17533:4;17407:131;:::i;:::-;17399:139;;17297:248;;;:::o;17551:419::-;17717:4;17755:2;17744:9;17740:18;17732:26;;17804:9;17798:4;17794:20;17790:1;17779:9;17775:17;17768:47;17832:131;17958:4;17832:131;:::i;:::-;17824:139;;17722:248;;;:::o;17976:419::-;18142:4;18180:2;18169:9;18165:18;18157:26;;18229:9;18223:4;18219:20;18215:1;18204:9;18200:17;18193:47;18257:131;18383:4;18257:131;:::i;:::-;18249:139;;18147:248;;;:::o;18401:419::-;18567:4;18605:2;18594:9;18590:18;18582:26;;18654:9;18648:4;18644:20;18640:1;18629:9;18625:17;18618:47;18682:131;18808:4;18682:131;:::i;:::-;18674:139;;18572:248;;;:::o;18826:419::-;18992:4;19030:2;19019:9;19015:18;19007:26;;19079:9;19073:4;19069:20;19065:1;19054:9;19050:17;19043:47;19107:131;19233:4;19107:131;:::i;:::-;19099:139;;18997:248;;;:::o;19251:419::-;19417:4;19455:2;19444:9;19440:18;19432:26;;19504:9;19498:4;19494:20;19490:1;19479:9;19475:17;19468:47;19532:131;19658:4;19532:131;:::i;:::-;19524:139;;19422:248;;;:::o;19676:419::-;19842:4;19880:2;19869:9;19865:18;19857:26;;19929:9;19923:4;19919:20;19915:1;19904:9;19900:17;19893:47;19957:131;20083:4;19957:131;:::i;:::-;19949:139;;19847:248;;;:::o;20101:419::-;20267:4;20305:2;20294:9;20290:18;20282:26;;20354:9;20348:4;20344:20;20340:1;20329:9;20325:17;20318:47;20382:131;20508:4;20382:131;:::i;:::-;20374:139;;20272:248;;;:::o;20526:419::-;20692:4;20730:2;20719:9;20715:18;20707:26;;20779:9;20773:4;20769:20;20765:1;20754:9;20750:17;20743:47;20807:131;20933:4;20807:131;:::i;:::-;20799:139;;20697:248;;;:::o;20951:419::-;21117:4;21155:2;21144:9;21140:18;21132:26;;21204:9;21198:4;21194:20;21190:1;21179:9;21175:17;21168:47;21232:131;21358:4;21232:131;:::i;:::-;21224:139;;21122:248;;;:::o;21376:419::-;21542:4;21580:2;21569:9;21565:18;21557:26;;21629:9;21623:4;21619:20;21615:1;21604:9;21600:17;21593:47;21657:131;21783:4;21657:131;:::i;:::-;21649:139;;21547:248;;;:::o;21801:222::-;21894:4;21932:2;21921:9;21917:18;21909:26;;21945:71;22013:1;22002:9;21998:17;21989:6;21945:71;:::i;:::-;21899:124;;;;:::o;22029:831::-;22292:4;22330:3;22319:9;22315:19;22307:27;;22344:71;22412:1;22401:9;22397:17;22388:6;22344:71;:::i;:::-;22425:80;22501:2;22490:9;22486:18;22477:6;22425:80;:::i;:::-;22552:9;22546:4;22542:20;22537:2;22526:9;22522:18;22515:48;22580:108;22683:4;22674:6;22580:108;:::i;:::-;22572:116;;22698:72;22766:2;22755:9;22751:18;22742:6;22698:72;:::i;:::-;22780:73;22848:3;22837:9;22833:19;22824:6;22780:73;:::i;:::-;22297:563;;;;;;;;:::o;22866:214::-;22955:4;22993:2;22982:9;22978:18;22970:26;;23006:67;23070:1;23059:9;23055:17;23046:6;23006:67;:::i;:::-;22960:120;;;;:::o;23086:129::-;23120:6;23147:20;;:::i;:::-;23137:30;;23176:33;23204:4;23196:6;23176:33;:::i;:::-;23127:88;;;:::o;23221:75::-;23254:6;23287:2;23281:9;23271:19;;23261:35;:::o;23302:311::-;23379:4;23469:18;23461:6;23458:30;23455:2;;;23491:18;;:::i;:::-;23455:2;23541:4;23533:6;23529:17;23521:25;;23601:4;23595;23591:15;23583:23;;23384:229;;;:::o;23619:132::-;23686:4;23709:3;23701:11;;23739:4;23734:3;23730:14;23722:22;;23691:60;;;:::o;23757:114::-;23824:6;23858:5;23852:12;23842:22;;23831:40;;;:::o;23877:99::-;23929:6;23963:5;23957:12;23947:22;;23936:40;;;:::o;23982:113::-;24052:4;24084;24079:3;24075:14;24067:22;;24057:38;;;:::o;24101:184::-;24200:11;24234:6;24229:3;24222:19;24274:4;24269:3;24265:14;24250:29;;24212:73;;;;:::o;24291:169::-;24375:11;24409:6;24404:3;24397:19;24449:4;24444:3;24440:14;24425:29;;24387:73;;;;:::o;24466:305::-;24506:3;24525:20;24543:1;24525:20;:::i;:::-;24520:25;;24559:20;24577:1;24559:20;:::i;:::-;24554:25;;24713:1;24645:66;24641:74;24638:1;24635:81;24632:2;;;24719:18;;:::i;:::-;24632:2;24763:1;24760;24756:9;24749:16;;24510:261;;;;:::o;24777:185::-;24817:1;24834:20;24852:1;24834:20;:::i;:::-;24829:25;;24868:20;24886:1;24868:20;:::i;:::-;24863:25;;24907:1;24897:2;;24912:18;;:::i;:::-;24897:2;24954:1;24951;24947:9;24942:14;;24819:143;;;;:::o;24968:348::-;25008:7;25031:20;25049:1;25031:20;:::i;:::-;25026:25;;25065:20;25083:1;25065:20;:::i;:::-;25060:25;;25253:1;25185:66;25181:74;25178:1;25175:81;25170:1;25163:9;25156:17;25152:105;25149:2;;;25260:18;;:::i;:::-;25149:2;25308:1;25305;25301:9;25290:20;;25016:300;;;;:::o;25322:191::-;25362:4;25382:20;25400:1;25382:20;:::i;:::-;25377:25;;25416:20;25434:1;25416:20;:::i;:::-;25411:25;;25455:1;25452;25449:8;25446:2;;;25460:18;;:::i;:::-;25446:2;25505:1;25502;25498:9;25490:17;;25367:146;;;;:::o;25519:96::-;25556:7;25585:24;25603:5;25585:24;:::i;:::-;25574:35;;25564:51;;;:::o;25621:90::-;25655:7;25698:5;25691:13;25684:21;25673:32;;25663:48;;;:::o;25717:126::-;25754:7;25794:42;25787:5;25783:54;25772:65;;25762:81;;;:::o;25849:77::-;25886:7;25915:5;25904:16;;25894:32;;;:::o;25932:86::-;25967:7;26007:4;26000:5;25996:16;25985:27;;25975:43;;;:::o;26024:178::-;26100:9;26133:63;26190:5;26133:63;:::i;:::-;26120:76;;26110:92;;;:::o;26208:139::-;26284:9;26317:24;26335:5;26317:24;:::i;:::-;26304:37;;26294:53;;;:::o;26353:121::-;26411:9;26444:24;26462:5;26444:24;:::i;:::-;26431:37;;26421:53;;;:::o;26480:307::-;26548:1;26558:113;26572:6;26569:1;26566:13;26558:113;;;26657:1;26652:3;26648:11;26642:18;26638:1;26633:3;26629:11;26622:39;26594:2;26591:1;26587:10;26582:15;;26558:113;;;26689:6;26686:1;26683:13;26680:2;;;26769:1;26760:6;26755:3;26751:16;26744:27;26680:2;26529:258;;;;:::o;26793:281::-;26876:27;26898:4;26876:27;:::i;:::-;26868:6;26864:40;27006:6;26994:10;26991:22;26970:18;26958:10;26955:34;26952:62;26949:2;;;27017:18;;:::i;:::-;26949:2;27057:10;27053:2;27046:22;26836:238;;;:::o;27080:233::-;27119:3;27142:24;27160:5;27142:24;:::i;:::-;27133:33;;27188:66;27181:5;27178:77;27175:2;;;27258:18;;:::i;:::-;27175:2;27305:1;27298:5;27294:13;27287:20;;27123:190;;;:::o;27319:180::-;27367:77;27364:1;27357:88;27464:4;27461:1;27454:15;27488:4;27485:1;27478:15;27505:180;27553:77;27550:1;27543:88;27650:4;27647:1;27640:15;27674:4;27671:1;27664:15;27691:180;27739:77;27736:1;27729:88;27836:4;27833:1;27826:15;27860:4;27857:1;27850:15;27877:102;27918:6;27969:2;27965:7;27960:2;27953:5;27949:14;27945:28;27935:38;;27925:54;;;:::o;27985:222::-;28125:34;28121:1;28113:6;28109:14;28102:58;28194:5;28189:2;28181:6;28177:15;28170:30;28091:116;:::o;28213:250::-;28353:34;28349:1;28341:6;28337:14;28330:58;28422:33;28417:2;28409:6;28405:15;28398:58;28319:144;:::o;28469:229::-;28609:34;28605:1;28597:6;28593:14;28586:58;28678:12;28673:2;28665:6;28661:15;28654:37;28575:123;:::o;28704:178::-;28844:30;28840:1;28832:6;28828:14;28821:54;28810:72;:::o;28888:225::-;29028:34;29024:1;29016:6;29012:14;29005:58;29097:8;29092:2;29084:6;29080:15;29073:33;28994:119;:::o;29119:221::-;29259:34;29255:1;29247:6;29243:14;29236:58;29328:4;29323:2;29315:6;29311:15;29304:29;29225:115;:::o;29346:222::-;29486:34;29482:1;29474:6;29470:14;29463:58;29555:5;29550:2;29542:6;29538:15;29531:30;29452:116;:::o;29574:177::-;29714:29;29710:1;29702:6;29698:14;29691:53;29680:71;:::o;29757:173::-;29897:25;29893:1;29885:6;29881:14;29874:49;29863:67;:::o;29936:220::-;30076:34;30072:1;30064:6;30060:14;30053:58;30145:3;30140:2;30132:6;30128:15;30121:28;30042:114;:::o;30162:182::-;30302:34;30298:1;30290:6;30286:14;30279:58;30268:76;:::o;30350:228::-;30490:34;30486:1;30478:6;30474:14;30467:58;30559:11;30554:2;30546:6;30542:15;30535:36;30456:122;:::o;30584:224::-;30724:34;30720:1;30712:6;30708:14;30701:58;30793:7;30788:2;30780:6;30776:15;30769:32;30690:118;:::o;30814:222::-;30954:34;30950:1;30942:6;30938:14;30931:58;31023:5;31018:2;31010:6;31006:15;30999:30;30920:116;:::o;31042:223::-;31182:34;31178:1;31170:6;31166:14;31159:58;31251:6;31246:2;31238:6;31234:15;31227:31;31148:117;:::o;31271:122::-;31344:24;31362:5;31344:24;:::i;:::-;31337:5;31334:35;31324:2;;31383:1;31380;31373:12;31324:2;31314:79;:::o;31399:116::-;31469:21;31484:5;31469:21;:::i;:::-;31462:5;31459:32;31449:2;;31505:1;31502;31495:12;31449:2;31439:76;:::o;31521:122::-;31594:24;31612:5;31594:24;:::i;:::-;31587:5;31584:35;31574:2;;31633:1;31630;31623:12;31574:2;31564:79;:::o

Swarm Source

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