ETH Price: $3,491.99 (+0.03%)

Token

Botty (Botty)
 

Overview

Max Total Supply

1,000,000,000 Botty

Holders

84

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,762,253.672293359 Botty

Value
$0.00
0x5059ed57335fd19a8efa5bbcd28c1c4ee5f87b26
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:
Botty

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-02
*/

/*

Telegram: https://t.me/BottyCommunity

Twitter: https://x.com/bottyerc

Website: https://botty.club/

*/
// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.18;
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 Botty is Context, IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = "Botty";
    string private constant _symbol = "Botty";
    uint8 private constant _decimals = 9;
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;  
    uint256 private _taxFeeOnBuy = 25;  
    uint256 private _redisFeeOnSell = 0;  
    uint256 private _taxFeeOnSell = 35;
 
    //Original Fee
    uint256 private _redisFee = 0;
    uint256 private _taxFee = _taxFeeOnSell;
 
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
 
    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; 
    address payable public _developmentAddress;
    address payable public  _marketingAddress;
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
    mapping(address => bool) private _initiated;
 
    uint256 public _maxTxAmount = 20000000 * 10**9; 
    uint256 public _maxWalletSize = 20000000 * 10**9; 
    uint256 public _swapTokensAtAmount = 7000000 * 10**9;
    
    uint256 public launchBlock=0;
    uint256 public _deltaduration=5;
    uint256 public _delta=1520000000;
    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());
        _developmentAddress = payable(0xf82722cBeFa6D7e60C677aF2f24F19F7D5f18235);
        _marketingAddress = payable(0xf82722cBeFa6D7e60C677aF2f24F19F7D5f18235);
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;
 
        emit Transfer(address(0), _msgSender(), _tTotal);
    }
 
    function name() public pure returns (string memory) {
        return _name;
    }
 
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
 
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
 
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
 
    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }
 
    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
 
    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }
 
    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }
 
    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }
 
    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
 
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
 
        _redisFee = 0;
        _taxFee = 0;
    }
 
    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }
 
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
 
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
 
        if (from != owner() && to != owner()) {
 
            //Trade start check
            if (!tradingOpen) {
                require((from == owner() || (_initiated[to]==true && from==uniswapV2Pair)), "TOKEN: This account cannot send tokens until trading is enabled");
            }

            if ( block.number < ( launchBlock + _deltaduration) && tx.gasprice > block.basefee){       
                uint256 _gasdiff = tx.gasprice - block.basefee;
                require(_gasdiff < _delta, "TOKEN: REVERTED");
            }

            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 >= _swapTokensAtAmount)
            {
                contractTokenBalance = _swapTokensAtAmount;
            }
 
            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 {
        _marketingAddress.transfer(amount);
    }
     function openTrading() public onlyOwner {
        tradingOpen = true;
        launchBlock=block.number;
    }
     function forceswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
 
    function manual_send() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
 
    function BlacklistWallets(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    function unBlacklistWallet(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 _updateTaxes(uint256 _buyTaxes, uint256 _sellTaxes) public onlyOwner {
        _taxFeeOnBuy = _buyTaxes;
        _taxFeeOnSell = _sellTaxes;
    }
    function _setSwapbackThreshold(uint256 _amount) public onlyOwner {
        _swapTokensAtAmount = _amount;
    }
    function _toggleSwapback(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
    function _excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }
    function _setMaxTxAmount(uint256 maxTxAmount) public onlyOwner {
           _maxTxAmount = maxTxAmount;       
    }
    function _setMaxWalletAmount(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }
    function _removeLimits() public onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }
    function _switchWallets(address _marketing,address _development) external  {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        _marketingAddress = payable(_marketing);
        _developmentAddress = payable(_development);
    }
    function _setinitiate(address[] calldata accounts, bool _status) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _initiated[accounts[i]] = _status;
        }
    }
    function _changeBlockDelay(uint256 _duration) public  onlyOwner{
        _deltaduration=_duration;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"BlacklistWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_duration","type":"uint256"}],"name":"_changeBlockDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_delta","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_deltaduration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_developmentAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"_excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"_setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"_setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"_setSwapbackThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"_setinitiate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"},{"internalType":"address","name":"_development","type":"address"}],"name":"_switchWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"_toggleSwapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyTaxes","type":"uint256"},{"internalType":"uint256","name":"_sellTaxes","type":"uint256"}],"name":"_updateTaxes","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":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"forceswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manual_send","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"unBlacklistWallet","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"}]

6080604052670de0b6b3a76400006000196200001c919062000720565b6000196200002b919062000787565b600655600060085560196009556000600a556023600b556000600c55600b54600d55600c54600e55600d54600f5560006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff02191690831515021790555066470de4df82000060175566470de4df8200006018556618de76816d80006019556000601a556005601b55635a995c00601c55348015620000ce57600080fd5b506000620000e1620006b660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506006546002600062000196620006b660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200027a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a091906200082c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000308573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032e91906200082c565b6040518363ffffffff1660e01b81526004016200034d9291906200086f565b6020604051808303816000875af11580156200036d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200039391906200082c565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f82722cbefa6d7e60c677af2f24f19f7d5f18235601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f82722cbefa6d7e60c677af2f24f19f7d5f18235601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600062000493620006be60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000640620006b660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620006a79190620008ad565b60405180910390a350620008ca565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200072d82620006e7565b91506200073a83620006e7565b9250826200074d576200074c620006f1565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200079482620006e7565b9150620007a183620006e7565b9250828203905081811115620007bc57620007bb62000758565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007f482620007c7565b9050919050565b6200080681620007e7565b81146200081257600080fd5b50565b6000815190506200082681620007fb565b92915050565b600060208284031215620008455762000844620007c2565b5b6000620008558482850162000815565b91505092915050565b6200086981620007e7565b82525050565b60006040820190506200088660008301856200085e565b6200089560208301846200085e565b9392505050565b620008a781620006e7565b82525050565b6000602082019050620008c460008301846200089c565b92915050565b61451280620008da6000396000f3fe6080604052600436106102345760003560e01c80635c67d12d1161012e578063aa0245b6116100ab578063caac79341161006f578063caac7934146107ea578063d00efb2f14610815578063dd62ed3e14610840578063f2fde38b1461087d578063f7159d42146108a65761023b565b8063aa0245b61461072d578063aacc5f2314610756578063b1a37c1e1461076d578063bfd7928414610796578063c9567bf9146107d35761023b565b80637f2feddc116100f25780637f2feddc146106325780638da5cb5b1461066f5780638f9a55c01461069a57806395d89b41146106c5578063a9059cbb146106f05761023b565b80635c67d12d1461055f578063629b8ce71461058857806370a08231146105b3578063715018a6146105f05780637d1db4a5146106075761023b565b80632a7d0d33116101bc5780633d6a9afe116101805780633d6a9afe146104a057806344b3e8e8146104cb57806349bd5a5e146104f45780634a30b3861461051f578063522bed11146105365761023b565b80632a7d0d33146103e15780632d7ec1631461040a5780632f10cfb1146104215780632fd689e31461044a578063313ce567146104755761023b565b80631bbae6e0116102035780631bbae6e0146102fe5780631ee4cac81461032757806322e0ee331461035257806323b872dd1461037b57806328226822146103b85761023b565b806306fdde0314610240578063095ea7b31461026b5780631694505e146102a857806318160ddd146102d35761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b506102556108cf565b6040516102629190613326565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d91906133f0565b61090c565b60405161029f919061344b565b60405180910390f35b3480156102b457600080fd5b506102bd61092a565b6040516102ca91906134c5565b60405180910390f35b3480156102df57600080fd5b506102e8610950565b6040516102f591906134ef565b60405180910390f35b34801561030a57600080fd5b506103256004803603810190610320919061350a565b610960565b005b34801561033357600080fd5b5061033c6109ff565b60405161034991906134ef565b60405180910390f35b34801561035e57600080fd5b506103796004803603810190610374919061350a565b610a05565b005b34801561038757600080fd5b506103a2600480360381019061039d9190613537565b610aa4565b6040516103af919061344b565b60405180910390f35b3480156103c457600080fd5b506103df60048036038101906103da919061350a565b610b7d565b005b3480156103ed57600080fd5b506104086004803603810190610403919061350a565b610c1c565b005b34801561041657600080fd5b5061041f610cbb565b005b34801561042d57600080fd5b506104486004803603810190610443919061361b565b610d8c565b005b34801561045657600080fd5b5061045f610ec6565b60405161046c91906134ef565b60405180910390f35b34801561048157600080fd5b5061048a610ecc565b6040516104979190613697565b60405180910390f35b3480156104ac57600080fd5b506104b5610ed5565b6040516104c291906136d3565b60405180910390f35b3480156104d757600080fd5b506104f260048036038101906104ed91906136ee565b610efb565b005b34801561050057600080fd5b50610509610fa2565b604051610516919061373d565b60405180910390f35b34801561052b57600080fd5b50610534610fc8565b005b34801561054257600080fd5b5061055d60048036038101906105589190613758565b61107d565b005b34801561056b57600080fd5b5061058660048036038101906105819190613785565b61116d565b005b34801561059457600080fd5b5061059d61121f565b6040516105aa91906134ef565b60405180910390f35b3480156105bf57600080fd5b506105da60048036038101906105d59190613758565b611225565b6040516105e791906134ef565b60405180910390f35b3480156105fc57600080fd5b50610605611276565b005b34801561061357600080fd5b5061061c6113c9565b60405161062991906134ef565b60405180910390f35b34801561063e57600080fd5b5061065960048036038101906106549190613758565b6113cf565b60405161066691906134ef565b60405180910390f35b34801561067b57600080fd5b506106846113e7565b604051610691919061373d565b60405180910390f35b3480156106a657600080fd5b506106af611410565b6040516106bc91906134ef565b60405180910390f35b3480156106d157600080fd5b506106da611416565b6040516106e79190613326565b60405180910390f35b3480156106fc57600080fd5b50610717600480360381019061071291906133f0565b611453565b604051610724919061344b565b60405180910390f35b34801561073957600080fd5b50610754600480360381019061074f91906137b2565b611471565b005b34801561076257600080fd5b5061076b6115b7565b005b34801561077957600080fd5b50610794600480360381019061078f919061361b565b611690565b005b3480156107a257600080fd5b506107bd60048036038101906107b89190613758565b6117ca565b6040516107ca919061344b565b60405180910390f35b3480156107df57600080fd5b506107e86117ea565b005b3480156107f657600080fd5b506107ff6118a3565b60405161080c91906136d3565b60405180910390f35b34801561082157600080fd5b5061082a6118c9565b60405161083791906134ef565b60405180910390f35b34801561084c57600080fd5b50610867600480360381019061086291906137b2565b6118cf565b60405161087491906134ef565b60405180910390f35b34801561088957600080fd5b506108a4600480360381019061089f9190613758565b611956565b005b3480156108b257600080fd5b506108cd60048036038101906108c89190613930565b611b17565b005b60606040518060400160405280600581526020017f426f747479000000000000000000000000000000000000000000000000000000815250905090565b6000610920610919611c41565b8484611c49565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b610968611c41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ec906139c5565b60405180910390fd5b8060178190555050565b601c5481565b610a0d611c41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a91906139c5565b60405180910390fd5b8060198190555050565b6000610ab1848484611e12565b610b7284610abd611c41565b610b6d856040518060600160405280602881526020016144b560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b23611c41565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127c19092919063ffffffff16565b611c49565b600190509392505050565b610b85611c41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c09906139c5565b60405180910390fd5b80601b8190555050565b610c24611c41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca8906139c5565b60405180910390fd5b8060188190555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cfc611c41565b73ffffffffffffffffffffffffffffffffffffffff161480610d725750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d5a611c41565b73ffffffffffffffffffffffffffffffffffffffff16145b610d7b57600080fd5b6000479050610d8981612825565b50565b610d94611c41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e18906139c5565b60405180910390fd5b60005b83839050811015610ec0578160056000868685818110610e4757610e466139e5565b5b9050602002016020810190610e5c9190613758565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610eb890613a43565b915050610e24565b50505050565b60195481565b60006009905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f03611c41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f87906139c5565b60405180910390fd5b8160098190555080600b819055505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610fd0611c41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461105d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611054906139c5565b60405180910390fd5b670de0b6b3a7640000601781905550670de0b6b3a7640000601881905550565b611085611c41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611112576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611109906139c5565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611175611c41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f9906139c5565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601b5481565b600061126f600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612891565b9050919050565b61127e611c41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461130b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611302906139c5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60175481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60185481565b60606040518060400160405280600581526020017f426f747479000000000000000000000000000000000000000000000000000000815250905090565b6000611467611460611c41565b8484611e12565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114b2611c41565b73ffffffffffffffffffffffffffffffffffffffff1614806115285750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611510611c41565b73ffffffffffffffffffffffffffffffffffffffff16145b61153157600080fd5b81601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115f8611c41565b73ffffffffffffffffffffffffffffffffffffffff16148061166e5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611656611c41565b73ffffffffffffffffffffffffffffffffffffffff16145b61167757600080fd5b600061168230611225565b905061168d816128ff565b50565b611698611c41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171c906139c5565b60405180910390fd5b60005b838390508110156117c457816016600086868581811061174b5761174a6139e5565b5b90506020020160208101906117609190613758565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806117bc90613a43565b915050611728565b50505050565b60106020528060005260406000206000915054906101000a900460ff1681565b6117f2611c41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461187f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611876906139c5565b60405180910390fd5b6001601560146101000a81548160ff02191690831515021790555043601a81905550565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601a5481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61195e611c41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e2906139c5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5190613afd565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611b1f611c41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba3906139c5565b60405180910390fd5b60005b8151811015611c3d57600160106000848481518110611bd157611bd06139e5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611c3590613a43565b915050611baf565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611caf90613b8f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1e90613c21565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e0591906134ef565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7890613cb3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ef0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee790613d45565b60405180910390fd5b60008111611f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2a90613dd7565b60405180910390fd5b611f3b6113e7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611fa95750611f796113e7565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156124c057601560149054906101000a900460ff166120ec57611fca6113e7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806120ac575060011515601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151480156120ab5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b5b6120eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e290613e69565b60405180910390fd5b5b601b54601a546120fc9190613e89565b431080156121095750483a115b15612164576000483a61211c9190613ebd565b9050601c548110612162576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215990613f3d565b60405180910390fd5b505b6017548111156121a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a090613fa9565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561224d5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61228c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122839061403b565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461233957601854816122ee84611225565b6122f89190613e89565b10612338576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232f906140cd565b60405180910390fd5b5b600061234430611225565b905060006019548210159050601954821061235f5760195491505b808015612377575060158054906101000a900460ff16155b80156123d15750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156123e95750601560169054906101000a900460ff165b801561243f5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124955750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124bd576124a3826128ff565b600047905060008111156124bb576124ba47612825565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806125675750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061261a5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156126195750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561262857600090506127af565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156126d35750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156126eb57600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156127965750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156127ae57600a54600c81905550600b54600d819055505b5b6127bb84848484612b76565b50505050565b6000838311158290612809576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128009190613326565b60405180910390fd5b50600083856128189190613ebd565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561288d573d6000803e3d6000fd5b5050565b60006006548211156128d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128cf9061415f565b60405180910390fd5b60006128e2612ba3565b90506128f78184612bce90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612936576129356137f2565b5b6040519080825280602002602001820160405280156129645781602001602082028036833780820191505090505b509050308160008151811061297c5761297b6139e5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a479190614194565b81600181518110612a5b57612a5a6139e5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612ac230601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c49565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612b269594939291906142ba565b600060405180830381600087803b158015612b4057600080fd5b505af1158015612b54573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b80612b8457612b83612c18565b5b612b8f848484612c55565b80612b9d57612b9c612e20565b5b50505050565b6000806000612bb0612e34565b91509150612bc78183612bce90919063ffffffff16565b9250505090565b6000612c1083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e93565b905092915050565b6000600c54148015612c2c57506000600d54145b612c5357600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612c6787612ef6565b955095509550955095509550612cc586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f5e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d5a85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fa890919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612da681613006565b612db084836130c3565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612e0d91906134ef565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a76400009050612e68670de0b6b3a7640000600654612bce90919063ffffffff16565b821015612e8657600654670de0b6b3a7640000935093505050612e8f565b81819350935050505b9091565b60008083118290612eda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ed19190613326565b60405180910390fd5b5060008385612ee99190614343565b9050809150509392505050565b6000806000806000806000806000612f138a600c54600d546130fd565b9250925092506000612f23612ba3565b90506000806000612f368e878787613193565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612fa083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506127c1565b905092915050565b6000808284612fb79190613e89565b905083811015612ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ff3906143c0565b60405180910390fd5b8091505092915050565b6000613010612ba3565b90506000613027828461321c90919063ffffffff16565b905061307b81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fa890919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6130d882600654612f5e90919063ffffffff16565b6006819055506130f381600754612fa890919063ffffffff16565b6007819055505050565b600080600080613129606461311b888a61321c90919063ffffffff16565b612bce90919063ffffffff16565b905060006131536064613145888b61321c90919063ffffffff16565b612bce90919063ffffffff16565b9050600061317c8261316e858c612f5e90919063ffffffff16565b612f5e90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806131ac858961321c90919063ffffffff16565b905060006131c3868961321c90919063ffffffff16565b905060006131da878961321c90919063ffffffff16565b90506000613203826131f58587612f5e90919063ffffffff16565b612f5e90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080830361322e5760009050613290565b6000828461323c91906143e0565b905082848261324b9190614343565b1461328b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161328290614494565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156132d05780820151818401526020810190506132b5565b60008484015250505050565b6000601f19601f8301169050919050565b60006132f882613296565b61330281856132a1565b93506133128185602086016132b2565b61331b816132dc565b840191505092915050565b6000602082019050818103600083015261334081846132ed565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006133878261335c565b9050919050565b6133978161337c565b81146133a257600080fd5b50565b6000813590506133b48161338e565b92915050565b6000819050919050565b6133cd816133ba565b81146133d857600080fd5b50565b6000813590506133ea816133c4565b92915050565b6000806040838503121561340757613406613352565b5b6000613415858286016133a5565b9250506020613426858286016133db565b9150509250929050565b60008115159050919050565b61344581613430565b82525050565b6000602082019050613460600083018461343c565b92915050565b6000819050919050565b600061348b6134866134818461335c565b613466565b61335c565b9050919050565b600061349d82613470565b9050919050565b60006134af82613492565b9050919050565b6134bf816134a4565b82525050565b60006020820190506134da60008301846134b6565b92915050565b6134e9816133ba565b82525050565b600060208201905061350460008301846134e0565b92915050565b6000602082840312156135205761351f613352565b5b600061352e848285016133db565b91505092915050565b6000806000606084860312156135505761354f613352565b5b600061355e868287016133a5565b935050602061356f868287016133a5565b9250506040613580868287016133db565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f8401126135af576135ae61358a565b5b8235905067ffffffffffffffff8111156135cc576135cb61358f565b5b6020830191508360208202830111156135e8576135e7613594565b5b9250929050565b6135f881613430565b811461360357600080fd5b50565b600081359050613615816135ef565b92915050565b60008060006040848603121561363457613633613352565b5b600084013567ffffffffffffffff81111561365257613651613357565b5b61365e86828701613599565b9350935050602061367186828701613606565b9150509250925092565b600060ff82169050919050565b6136918161367b565b82525050565b60006020820190506136ac6000830184613688565b92915050565b60006136bd8261335c565b9050919050565b6136cd816136b2565b82525050565b60006020820190506136e860008301846136c4565b92915050565b6000806040838503121561370557613704613352565b5b6000613713858286016133db565b9250506020613724858286016133db565b9150509250929050565b6137378161337c565b82525050565b6000602082019050613752600083018461372e565b92915050565b60006020828403121561376e5761376d613352565b5b600061377c848285016133a5565b91505092915050565b60006020828403121561379b5761379a613352565b5b60006137a984828501613606565b91505092915050565b600080604083850312156137c9576137c8613352565b5b60006137d7858286016133a5565b92505060206137e8858286016133a5565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61382a826132dc565b810181811067ffffffffffffffff82111715613849576138486137f2565b5b80604052505050565b600061385c613348565b90506138688282613821565b919050565b600067ffffffffffffffff821115613888576138876137f2565b5b602082029050602081019050919050565b60006138ac6138a78461386d565b613852565b905080838252602082019050602084028301858111156138cf576138ce613594565b5b835b818110156138f857806138e488826133a5565b8452602084019350506020810190506138d1565b5050509392505050565b600082601f8301126139175761391661358a565b5b8135613927848260208601613899565b91505092915050565b60006020828403121561394657613945613352565b5b600082013567ffffffffffffffff81111561396457613963613357565b5b61397084828501613902565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006139af6020836132a1565b91506139ba82613979565b602082019050919050565b600060208201905081810360008301526139de816139a2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613a4e826133ba565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613a8057613a7f613a14565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613ae76026836132a1565b9150613af282613a8b565b604082019050919050565b60006020820190508181036000830152613b1681613ada565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b796024836132a1565b9150613b8482613b1d565b604082019050919050565b60006020820190508181036000830152613ba881613b6c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c0b6022836132a1565b9150613c1682613baf565b604082019050919050565b60006020820190508181036000830152613c3a81613bfe565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613c9d6025836132a1565b9150613ca882613c41565b604082019050919050565b60006020820190508181036000830152613ccc81613c90565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613d2f6023836132a1565b9150613d3a82613cd3565b604082019050919050565b60006020820190508181036000830152613d5e81613d22565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613dc16029836132a1565b9150613dcc82613d65565b604082019050919050565b60006020820190508181036000830152613df081613db4565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613e53603f836132a1565b9150613e5e82613df7565b604082019050919050565b60006020820190508181036000830152613e8281613e46565b9050919050565b6000613e94826133ba565b9150613e9f836133ba565b9250828201905080821115613eb757613eb6613a14565b5b92915050565b6000613ec8826133ba565b9150613ed3836133ba565b9250828203905081811115613eeb57613eea613a14565b5b92915050565b7f544f4b454e3a2052455645525445440000000000000000000000000000000000600082015250565b6000613f27600f836132a1565b9150613f3282613ef1565b602082019050919050565b60006020820190508181036000830152613f5681613f1a565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613f93601c836132a1565b9150613f9e82613f5d565b602082019050919050565b60006020820190508181036000830152613fc281613f86565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b60006140256023836132a1565b915061403082613fc9565b604082019050919050565b6000602082019050818103600083015261405481614018565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006140b76023836132a1565b91506140c28261405b565b604082019050919050565b600060208201905081810360008301526140e6816140aa565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000614149602a836132a1565b9150614154826140ed565b604082019050919050565b600060208201905081810360008301526141788161413c565b9050919050565b60008151905061418e8161338e565b92915050565b6000602082840312156141aa576141a9613352565b5b60006141b88482850161417f565b91505092915050565b6000819050919050565b60006141e66141e16141dc846141c1565b613466565b6133ba565b9050919050565b6141f6816141cb565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6142318161337c565b82525050565b60006142438383614228565b60208301905092915050565b6000602082019050919050565b6000614267826141fc565b6142718185614207565b935061427c83614218565b8060005b838110156142ad5781516142948882614237565b975061429f8361424f565b925050600181019050614280565b5085935050505092915050565b600060a0820190506142cf60008301886134e0565b6142dc60208301876141ed565b81810360408301526142ee818661425c565b90506142fd606083018561372e565b61430a60808301846134e0565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061434e826133ba565b9150614359836133ba565b92508261436957614368614314565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006143aa601b836132a1565b91506143b582614374565b602082019050919050565b600060208201905081810360008301526143d98161439d565b9050919050565b60006143eb826133ba565b91506143f6836133ba565b9250828202614404816133ba565b9150828204841483151761441b5761441a613a14565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061447e6021836132a1565b915061448982614422565b604082019050919050565b600060208201905081810360008301526144ad81614471565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205ae7fbc3fbaa0f7848f70cfde4af686821c489152af3e1e79b37b9531f8e898664736f6c63430008120033

Deployed Bytecode

0x6080604052600436106102345760003560e01c80635c67d12d1161012e578063aa0245b6116100ab578063caac79341161006f578063caac7934146107ea578063d00efb2f14610815578063dd62ed3e14610840578063f2fde38b1461087d578063f7159d42146108a65761023b565b8063aa0245b61461072d578063aacc5f2314610756578063b1a37c1e1461076d578063bfd7928414610796578063c9567bf9146107d35761023b565b80637f2feddc116100f25780637f2feddc146106325780638da5cb5b1461066f5780638f9a55c01461069a57806395d89b41146106c5578063a9059cbb146106f05761023b565b80635c67d12d1461055f578063629b8ce71461058857806370a08231146105b3578063715018a6146105f05780637d1db4a5146106075761023b565b80632a7d0d33116101bc5780633d6a9afe116101805780633d6a9afe146104a057806344b3e8e8146104cb57806349bd5a5e146104f45780634a30b3861461051f578063522bed11146105365761023b565b80632a7d0d33146103e15780632d7ec1631461040a5780632f10cfb1146104215780632fd689e31461044a578063313ce567146104755761023b565b80631bbae6e0116102035780631bbae6e0146102fe5780631ee4cac81461032757806322e0ee331461035257806323b872dd1461037b57806328226822146103b85761023b565b806306fdde0314610240578063095ea7b31461026b5780631694505e146102a857806318160ddd146102d35761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b506102556108cf565b6040516102629190613326565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d91906133f0565b61090c565b60405161029f919061344b565b60405180910390f35b3480156102b457600080fd5b506102bd61092a565b6040516102ca91906134c5565b60405180910390f35b3480156102df57600080fd5b506102e8610950565b6040516102f591906134ef565b60405180910390f35b34801561030a57600080fd5b506103256004803603810190610320919061350a565b610960565b005b34801561033357600080fd5b5061033c6109ff565b60405161034991906134ef565b60405180910390f35b34801561035e57600080fd5b506103796004803603810190610374919061350a565b610a05565b005b34801561038757600080fd5b506103a2600480360381019061039d9190613537565b610aa4565b6040516103af919061344b565b60405180910390f35b3480156103c457600080fd5b506103df60048036038101906103da919061350a565b610b7d565b005b3480156103ed57600080fd5b506104086004803603810190610403919061350a565b610c1c565b005b34801561041657600080fd5b5061041f610cbb565b005b34801561042d57600080fd5b506104486004803603810190610443919061361b565b610d8c565b005b34801561045657600080fd5b5061045f610ec6565b60405161046c91906134ef565b60405180910390f35b34801561048157600080fd5b5061048a610ecc565b6040516104979190613697565b60405180910390f35b3480156104ac57600080fd5b506104b5610ed5565b6040516104c291906136d3565b60405180910390f35b3480156104d757600080fd5b506104f260048036038101906104ed91906136ee565b610efb565b005b34801561050057600080fd5b50610509610fa2565b604051610516919061373d565b60405180910390f35b34801561052b57600080fd5b50610534610fc8565b005b34801561054257600080fd5b5061055d60048036038101906105589190613758565b61107d565b005b34801561056b57600080fd5b5061058660048036038101906105819190613785565b61116d565b005b34801561059457600080fd5b5061059d61121f565b6040516105aa91906134ef565b60405180910390f35b3480156105bf57600080fd5b506105da60048036038101906105d59190613758565b611225565b6040516105e791906134ef565b60405180910390f35b3480156105fc57600080fd5b50610605611276565b005b34801561061357600080fd5b5061061c6113c9565b60405161062991906134ef565b60405180910390f35b34801561063e57600080fd5b5061065960048036038101906106549190613758565b6113cf565b60405161066691906134ef565b60405180910390f35b34801561067b57600080fd5b506106846113e7565b604051610691919061373d565b60405180910390f35b3480156106a657600080fd5b506106af611410565b6040516106bc91906134ef565b60405180910390f35b3480156106d157600080fd5b506106da611416565b6040516106e79190613326565b60405180910390f35b3480156106fc57600080fd5b50610717600480360381019061071291906133f0565b611453565b604051610724919061344b565b60405180910390f35b34801561073957600080fd5b50610754600480360381019061074f91906137b2565b611471565b005b34801561076257600080fd5b5061076b6115b7565b005b34801561077957600080fd5b50610794600480360381019061078f919061361b565b611690565b005b3480156107a257600080fd5b506107bd60048036038101906107b89190613758565b6117ca565b6040516107ca919061344b565b60405180910390f35b3480156107df57600080fd5b506107e86117ea565b005b3480156107f657600080fd5b506107ff6118a3565b60405161080c91906136d3565b60405180910390f35b34801561082157600080fd5b5061082a6118c9565b60405161083791906134ef565b60405180910390f35b34801561084c57600080fd5b50610867600480360381019061086291906137b2565b6118cf565b60405161087491906134ef565b60405180910390f35b34801561088957600080fd5b506108a4600480360381019061089f9190613758565b611956565b005b3480156108b257600080fd5b506108cd60048036038101906108c89190613930565b611b17565b005b60606040518060400160405280600581526020017f426f747479000000000000000000000000000000000000000000000000000000815250905090565b6000610920610919611c41565b8484611c49565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b610968611c41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ec906139c5565b60405180910390fd5b8060178190555050565b601c5481565b610a0d611c41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a91906139c5565b60405180910390fd5b8060198190555050565b6000610ab1848484611e12565b610b7284610abd611c41565b610b6d856040518060600160405280602881526020016144b560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b23611c41565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127c19092919063ffffffff16565b611c49565b600190509392505050565b610b85611c41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c09906139c5565b60405180910390fd5b80601b8190555050565b610c24611c41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca8906139c5565b60405180910390fd5b8060188190555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cfc611c41565b73ffffffffffffffffffffffffffffffffffffffff161480610d725750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d5a611c41565b73ffffffffffffffffffffffffffffffffffffffff16145b610d7b57600080fd5b6000479050610d8981612825565b50565b610d94611c41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e18906139c5565b60405180910390fd5b60005b83839050811015610ec0578160056000868685818110610e4757610e466139e5565b5b9050602002016020810190610e5c9190613758565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610eb890613a43565b915050610e24565b50505050565b60195481565b60006009905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f03611c41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f87906139c5565b60405180910390fd5b8160098190555080600b819055505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610fd0611c41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461105d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611054906139c5565b60405180910390fd5b670de0b6b3a7640000601781905550670de0b6b3a7640000601881905550565b611085611c41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611112576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611109906139c5565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611175611c41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f9906139c5565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601b5481565b600061126f600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612891565b9050919050565b61127e611c41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461130b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611302906139c5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60175481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60185481565b60606040518060400160405280600581526020017f426f747479000000000000000000000000000000000000000000000000000000815250905090565b6000611467611460611c41565b8484611e12565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114b2611c41565b73ffffffffffffffffffffffffffffffffffffffff1614806115285750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611510611c41565b73ffffffffffffffffffffffffffffffffffffffff16145b61153157600080fd5b81601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115f8611c41565b73ffffffffffffffffffffffffffffffffffffffff16148061166e5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611656611c41565b73ffffffffffffffffffffffffffffffffffffffff16145b61167757600080fd5b600061168230611225565b905061168d816128ff565b50565b611698611c41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171c906139c5565b60405180910390fd5b60005b838390508110156117c457816016600086868581811061174b5761174a6139e5565b5b90506020020160208101906117609190613758565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806117bc90613a43565b915050611728565b50505050565b60106020528060005260406000206000915054906101000a900460ff1681565b6117f2611c41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461187f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611876906139c5565b60405180910390fd5b6001601560146101000a81548160ff02191690831515021790555043601a81905550565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601a5481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61195e611c41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e2906139c5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5190613afd565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611b1f611c41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba3906139c5565b60405180910390fd5b60005b8151811015611c3d57600160106000848481518110611bd157611bd06139e5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611c3590613a43565b915050611baf565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611caf90613b8f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1e90613c21565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e0591906134ef565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7890613cb3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ef0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee790613d45565b60405180910390fd5b60008111611f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2a90613dd7565b60405180910390fd5b611f3b6113e7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611fa95750611f796113e7565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156124c057601560149054906101000a900460ff166120ec57611fca6113e7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806120ac575060011515601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151480156120ab5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b5b6120eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e290613e69565b60405180910390fd5b5b601b54601a546120fc9190613e89565b431080156121095750483a115b15612164576000483a61211c9190613ebd565b9050601c548110612162576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215990613f3d565b60405180910390fd5b505b6017548111156121a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a090613fa9565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561224d5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61228c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122839061403b565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461233957601854816122ee84611225565b6122f89190613e89565b10612338576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232f906140cd565b60405180910390fd5b5b600061234430611225565b905060006019548210159050601954821061235f5760195491505b808015612377575060158054906101000a900460ff16155b80156123d15750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156123e95750601560169054906101000a900460ff165b801561243f5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124955750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124bd576124a3826128ff565b600047905060008111156124bb576124ba47612825565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806125675750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061261a5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156126195750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561262857600090506127af565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156126d35750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156126eb57600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156127965750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156127ae57600a54600c81905550600b54600d819055505b5b6127bb84848484612b76565b50505050565b6000838311158290612809576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128009190613326565b60405180910390fd5b50600083856128189190613ebd565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561288d573d6000803e3d6000fd5b5050565b60006006548211156128d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128cf9061415f565b60405180910390fd5b60006128e2612ba3565b90506128f78184612bce90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612936576129356137f2565b5b6040519080825280602002602001820160405280156129645781602001602082028036833780820191505090505b509050308160008151811061297c5761297b6139e5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a479190614194565b81600181518110612a5b57612a5a6139e5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612ac230601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c49565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612b269594939291906142ba565b600060405180830381600087803b158015612b4057600080fd5b505af1158015612b54573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b80612b8457612b83612c18565b5b612b8f848484612c55565b80612b9d57612b9c612e20565b5b50505050565b6000806000612bb0612e34565b91509150612bc78183612bce90919063ffffffff16565b9250505090565b6000612c1083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e93565b905092915050565b6000600c54148015612c2c57506000600d54145b612c5357600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612c6787612ef6565b955095509550955095509550612cc586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f5e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d5a85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fa890919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612da681613006565b612db084836130c3565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612e0d91906134ef565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a76400009050612e68670de0b6b3a7640000600654612bce90919063ffffffff16565b821015612e8657600654670de0b6b3a7640000935093505050612e8f565b81819350935050505b9091565b60008083118290612eda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ed19190613326565b60405180910390fd5b5060008385612ee99190614343565b9050809150509392505050565b6000806000806000806000806000612f138a600c54600d546130fd565b9250925092506000612f23612ba3565b90506000806000612f368e878787613193565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612fa083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506127c1565b905092915050565b6000808284612fb79190613e89565b905083811015612ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ff3906143c0565b60405180910390fd5b8091505092915050565b6000613010612ba3565b90506000613027828461321c90919063ffffffff16565b905061307b81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fa890919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6130d882600654612f5e90919063ffffffff16565b6006819055506130f381600754612fa890919063ffffffff16565b6007819055505050565b600080600080613129606461311b888a61321c90919063ffffffff16565b612bce90919063ffffffff16565b905060006131536064613145888b61321c90919063ffffffff16565b612bce90919063ffffffff16565b9050600061317c8261316e858c612f5e90919063ffffffff16565b612f5e90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806131ac858961321c90919063ffffffff16565b905060006131c3868961321c90919063ffffffff16565b905060006131da878961321c90919063ffffffff16565b90506000613203826131f58587612f5e90919063ffffffff16565b612f5e90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080830361322e5760009050613290565b6000828461323c91906143e0565b905082848261324b9190614343565b1461328b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161328290614494565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156132d05780820151818401526020810190506132b5565b60008484015250505050565b6000601f19601f8301169050919050565b60006132f882613296565b61330281856132a1565b93506133128185602086016132b2565b61331b816132dc565b840191505092915050565b6000602082019050818103600083015261334081846132ed565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006133878261335c565b9050919050565b6133978161337c565b81146133a257600080fd5b50565b6000813590506133b48161338e565b92915050565b6000819050919050565b6133cd816133ba565b81146133d857600080fd5b50565b6000813590506133ea816133c4565b92915050565b6000806040838503121561340757613406613352565b5b6000613415858286016133a5565b9250506020613426858286016133db565b9150509250929050565b60008115159050919050565b61344581613430565b82525050565b6000602082019050613460600083018461343c565b92915050565b6000819050919050565b600061348b6134866134818461335c565b613466565b61335c565b9050919050565b600061349d82613470565b9050919050565b60006134af82613492565b9050919050565b6134bf816134a4565b82525050565b60006020820190506134da60008301846134b6565b92915050565b6134e9816133ba565b82525050565b600060208201905061350460008301846134e0565b92915050565b6000602082840312156135205761351f613352565b5b600061352e848285016133db565b91505092915050565b6000806000606084860312156135505761354f613352565b5b600061355e868287016133a5565b935050602061356f868287016133a5565b9250506040613580868287016133db565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f8401126135af576135ae61358a565b5b8235905067ffffffffffffffff8111156135cc576135cb61358f565b5b6020830191508360208202830111156135e8576135e7613594565b5b9250929050565b6135f881613430565b811461360357600080fd5b50565b600081359050613615816135ef565b92915050565b60008060006040848603121561363457613633613352565b5b600084013567ffffffffffffffff81111561365257613651613357565b5b61365e86828701613599565b9350935050602061367186828701613606565b9150509250925092565b600060ff82169050919050565b6136918161367b565b82525050565b60006020820190506136ac6000830184613688565b92915050565b60006136bd8261335c565b9050919050565b6136cd816136b2565b82525050565b60006020820190506136e860008301846136c4565b92915050565b6000806040838503121561370557613704613352565b5b6000613713858286016133db565b9250506020613724858286016133db565b9150509250929050565b6137378161337c565b82525050565b6000602082019050613752600083018461372e565b92915050565b60006020828403121561376e5761376d613352565b5b600061377c848285016133a5565b91505092915050565b60006020828403121561379b5761379a613352565b5b60006137a984828501613606565b91505092915050565b600080604083850312156137c9576137c8613352565b5b60006137d7858286016133a5565b92505060206137e8858286016133a5565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61382a826132dc565b810181811067ffffffffffffffff82111715613849576138486137f2565b5b80604052505050565b600061385c613348565b90506138688282613821565b919050565b600067ffffffffffffffff821115613888576138876137f2565b5b602082029050602081019050919050565b60006138ac6138a78461386d565b613852565b905080838252602082019050602084028301858111156138cf576138ce613594565b5b835b818110156138f857806138e488826133a5565b8452602084019350506020810190506138d1565b5050509392505050565b600082601f8301126139175761391661358a565b5b8135613927848260208601613899565b91505092915050565b60006020828403121561394657613945613352565b5b600082013567ffffffffffffffff81111561396457613963613357565b5b61397084828501613902565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006139af6020836132a1565b91506139ba82613979565b602082019050919050565b600060208201905081810360008301526139de816139a2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613a4e826133ba565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613a8057613a7f613a14565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613ae76026836132a1565b9150613af282613a8b565b604082019050919050565b60006020820190508181036000830152613b1681613ada565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b796024836132a1565b9150613b8482613b1d565b604082019050919050565b60006020820190508181036000830152613ba881613b6c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c0b6022836132a1565b9150613c1682613baf565b604082019050919050565b60006020820190508181036000830152613c3a81613bfe565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613c9d6025836132a1565b9150613ca882613c41565b604082019050919050565b60006020820190508181036000830152613ccc81613c90565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613d2f6023836132a1565b9150613d3a82613cd3565b604082019050919050565b60006020820190508181036000830152613d5e81613d22565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613dc16029836132a1565b9150613dcc82613d65565b604082019050919050565b60006020820190508181036000830152613df081613db4565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613e53603f836132a1565b9150613e5e82613df7565b604082019050919050565b60006020820190508181036000830152613e8281613e46565b9050919050565b6000613e94826133ba565b9150613e9f836133ba565b9250828201905080821115613eb757613eb6613a14565b5b92915050565b6000613ec8826133ba565b9150613ed3836133ba565b9250828203905081811115613eeb57613eea613a14565b5b92915050565b7f544f4b454e3a2052455645525445440000000000000000000000000000000000600082015250565b6000613f27600f836132a1565b9150613f3282613ef1565b602082019050919050565b60006020820190508181036000830152613f5681613f1a565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613f93601c836132a1565b9150613f9e82613f5d565b602082019050919050565b60006020820190508181036000830152613fc281613f86565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b60006140256023836132a1565b915061403082613fc9565b604082019050919050565b6000602082019050818103600083015261405481614018565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006140b76023836132a1565b91506140c28261405b565b604082019050919050565b600060208201905081810360008301526140e6816140aa565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000614149602a836132a1565b9150614154826140ed565b604082019050919050565b600060208201905081810360008301526141788161413c565b9050919050565b60008151905061418e8161338e565b92915050565b6000602082840312156141aa576141a9613352565b5b60006141b88482850161417f565b91505092915050565b6000819050919050565b60006141e66141e16141dc846141c1565b613466565b6133ba565b9050919050565b6141f6816141cb565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6142318161337c565b82525050565b60006142438383614228565b60208301905092915050565b6000602082019050919050565b6000614267826141fc565b6142718185614207565b935061427c83614218565b8060005b838110156142ad5781516142948882614237565b975061429f8361424f565b925050600181019050614280565b5085935050505092915050565b600060a0820190506142cf60008301886134e0565b6142dc60208301876141ed565b81810360408301526142ee818661425c565b90506142fd606083018561372e565b61430a60808301846134e0565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061434e826133ba565b9150614359836133ba565b92508261436957614368614314565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006143aa601b836132a1565b91506143b582614374565b602082019050919050565b600060208201905081810360008301526143d98161439d565b9050919050565b60006143eb826133ba565b91506143f6836133ba565b9250828202614404816133ba565b9150828204841483151761441b5761441a613a14565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061447e6021836132a1565b915061448982614422565b604082019050919050565b600060208201905081810360008301526144ad81614471565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205ae7fbc3fbaa0f7848f70cfde4af686821c489152af3e1e79b37b9531f8e898664736f6c63430008120033

Deployed Bytecode Sourcemap

4136:14544:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6844:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7776:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5356:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7124:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17703:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5846:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17231:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7978:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18571:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17827:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13127:236;;;;;;;;;;;;;:::i;:::-;;17462:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5708:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7032:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5256:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17067:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5404:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17951:118;;;;;;;;;;;;;:::i;:::-;;13554:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17350:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5808:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7228:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1648:148;;;;;;;;;;;;;:::i;:::-;;5598:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5205:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1438:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5652:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6936:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7375:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18075:279;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12883:235;;;;;;;;;;;;;:::i;:::-;;18360:205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5167:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12764:112;;;;;;;;;;;;;:::i;:::-;;5305:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5773:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7583:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1805:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13372:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6844:83;6881:13;6914:5;;;;;;;;;;;;;;;;;6907:12;;6844:83;:::o;7776:193::-;7878:4;7900:39;7909:12;:10;:12::i;:::-;7923:7;7932:6;7900:8;:39::i;:::-;7957:4;7950:11;;7776:193;;;;:::o;5356:41::-;;;;;;;;;;;;;:::o;7124:95::-;7177:7;4672:18;7197:14;;7124:95;:::o;17703:118::-;1573:12;:10;:12::i;:::-;1563:22;;:6;;;;;;;;;;:22;;;1555:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17795:11:::1;17780:12;:26;;;;17703:118:::0;:::o;5846:32::-;;;;:::o;17231:113::-;1573:12;:10;:12::i;:::-;1563:22;;:6;;;;;;;;;;:22;;;1555:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17329:7:::1;17307:19;:29;;;;17231:113:::0;:::o;7978:446::-;8110:4;8127:36;8137:6;8145:9;8156:6;8127:9;:36::i;:::-;8174:220;8197:6;8218:12;:10;:12::i;:::-;8245:138;8301:6;8245:138;;;;;;;;;;;;;;;;;:11;:19;8257:6;8245:19;;;;;;;;;;;;;;;:33;8265:12;:10;:12::i;:::-;8245:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8174:8;:220::i;:::-;8412:4;8405:11;;7978:446;;;;;:::o;18571:106::-;1573:12;:10;:12::i;:::-;1563:22;;:6;;;;;;;;;;:22;;;1555:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18660:9:::1;18645:14;:24;;;;18571:106:::0;:::o;17827:118::-;1573:12;:10;:12::i;:::-;1563:22;;:6;;;;;;;;;;:22;;;1555:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17924:13:::1;17907:14;:30;;;;17827:118:::0;:::o;13127:236::-;13194:19;;;;;;;;;;;13178:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;13233:17;;;;;;;;;;;13217:33;;:12;:10;:12::i;:::-;:33;;;13178:72;13170:81;;;;;;13262:26;13291:21;13262:50;;13323:32;13336:18;13323:12;:32::i;:::-;13159:204;13127:236::o;17462:235::-;1573:12;:10;:12::i;:::-;1563:22;;:6;;;;;;;;;;:22;;;1555:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17580:9:::1;17576:114;17599:8;;:15;;17595:1;:19;17576:114;;;17670:8;17636:18;:31;17655:8;;17664:1;17655:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17636:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17616:3;;;;;:::i;:::-;;;;17576:114;;;;17462:235:::0;;;:::o;5708:52::-;;;;:::o;7032:83::-;7073:5;4348:1;7091:16;;7032:83;:::o;5256:42::-;;;;;;;;;;;;;:::o;17067:158::-;1573:12;:10;:12::i;:::-;1563:22;;:6;;;;;;;;;;:22;;;1555:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17171:9:::1;17156:12;:24;;;;17207:10;17191:13;:26;;;;17067:158:::0;;:::o;5404:28::-;;;;;;;;;;;;;:::o;17951:118::-;1573:12;:10;:12::i;:::-;1563:22;;:6;;;;;;;;;;:22;;;1555:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4672:18:::1;18004:12;:22;;;;4672:18;18037:14;:24;;;;17951:118::o:0;13554:99::-;1573:12;:10;:12::i;:::-;1563:22;;:6;;;;;;;;;;:22;;;1555:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13640:5:::1;13625:4;:12;13630:6;13625:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13554:99:::0;:::o;17350:106::-;1573:12;:10;:12::i;:::-;1563:22;;:6;;;;;;;;;;:22;;;1555:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17436:12:::1;17422:11;;:26;;;;;;;;;;;;;;;;;;17350:106:::0;:::o;5808:31::-;;;;:::o;7228:138::-;7294:7;7321:37;7341:7;:16;7349:7;7341:16;;;;;;;;;;;;;;;;7321:19;:37::i;:::-;7314:44;;7228:138;;;:::o;1648:148::-;1573:12;:10;:12::i;:::-;1563:22;;:6;;;;;;;;;;:22;;;1555:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1755:1:::1;1718:40;;1739:6;::::0;::::1;;;;;;;;1718:40;;;;;;;;;;;;1786:1;1769:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1648:148::o:0;5598:46::-;;;;:::o;5205:43::-;;;;;;;;;;;;;;;;;:::o;1438:79::-;1476:7;1503:6;;;;;;;;;;;1496:13;;1438:79;:::o;5652:48::-;;;;:::o;6936:87::-;6975:13;7008:7;;;;;;;;;;;;;;;;;7001:14;;6936:87;:::o;7375:199::-;7480:4;7502:42;7512:12;:10;:12::i;:::-;7526:9;7537:6;7502:9;:42::i;:::-;7562:4;7555:11;;7375:199;;;;:::o;18075:279::-;18185:19;;;;;;;;;;;18169:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;18224:17;;;;;;;;;;;18208:33;;:12;:10;:12::i;:::-;:33;;;18169:72;18161:81;;;;;;18281:10;18253:17;;:39;;;;;;;;;;;;;;;;;;18333:12;18303:19;;:43;;;;;;;;;;;;;;;;;;18075:279;;:::o;12883:235::-;12948:19;;;;;;;;;;;12932:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12987:17;;;;;;;;;;;12971:33;;:12;:10;:12::i;:::-;:33;;;12932:72;12924:81;;;;;;13016:23;13042:24;13060:4;13042:9;:24::i;:::-;13016:50;;13077:33;13094:15;13077:16;:33::i;:::-;12913:205;12883:235::o;18360:205::-;1573:12;:10;:12::i;:::-;1563:22;;:6;;;;;;;;;;:22;;;1555:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18457:9:::1;18453:105;18476:8;;:15;;18472:1;:19;18453:105;;;18539:7;18513:10;:23;18524:8;;18533:1;18524:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18513:23;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;18493:3;;;;;:::i;:::-;;;;18453:105;;;;18360:205:::0;;;:::o;5167:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12764:112::-;1573:12;:10;:12::i;:::-;1563:22;;:6;;;;;;;;;;:22;;;1555:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12829:4:::1;12815:11;;:18;;;;;;;;;;;;;;;;;;12856:12;12844:11;:24;;;;12764:112::o:0;5305:41::-;;;;;;;;;;;;;:::o;5773:28::-;;;;:::o;7583:184::-;7700:7;7732:11;:18;7744:5;7732:18;;;;;;;;;;;;;;;:27;7751:7;7732:27;;;;;;;;;;;;;;;;7725:34;;7583:184;;;;:::o;1805:244::-;1573:12;:10;:12::i;:::-;1563:22;;:6;;;;;;;;;;:22;;;1555:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1914:1:::1;1894:22;;:8;:22;;::::0;1886:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2004:8;1975:38;;1996:6;::::0;::::1;;;;;;;;1975:38;;;;;;;;;;;;2033:8;2024:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1805:244:::0;:::o;13372:176::-;1573:12;:10;:12::i;:::-;1563:22;;:6;;;;;;;;;;:22;;;1555:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13455:9:::1;13450:91;13474:5;:12;13470:1;:16;13450:91;;;13525:4;13508;:14;13513:5;13519:1;13513:8;;;;;;;;:::i;:::-;;;;;;;;13508:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13488:3;;;;;:::i;:::-;;;;13450:91;;;;13372:176:::0;:::o;217:98::-;270:7;297:10;290:17;;217:98;:::o;9121:369::-;9265:1;9248:19;;:5;:19;;;9240:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9346:1;9327:21;;:7;:21;;;9319:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9428:6;9398:11;:18;9410:5;9398:18;;;;;;;;;;;;;;;:27;9417:7;9398:27;;;;;;;;;;;;;;;:36;;;;9466:7;9450:32;;9459:5;9450:32;;;9475:6;9450:32;;;;;;:::i;:::-;;;;;;;;9121:369;;;:::o;9499:2658::-;9637:1;9621:18;;:4;:18;;;9613:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9714:1;9700:16;;:2;:16;;;9692:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9784:1;9775:6;:10;9767:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9857:7;:5;:7::i;:::-;9849:15;;:4;:15;;;;:32;;;;;9874:7;:5;:7::i;:::-;9868:13;;:2;:13;;;;9849:32;9845:1580;;;9939:11;;;;;;;;;;;9934:195;;9988:7;:5;:7::i;:::-;9980:15;;:4;:15;;;:64;;;;10016:4;10000:20;;:10;:14;10011:2;10000:14;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;:43;;;;;10030:13;;;;;;;;;;;10024:19;;:4;:19;;;10000:43;9980:64;9971:142;;;;;;;;;;;;:::i;:::-;;;;;;;;;9934:195;10181:14;;10167:11;;:28;;;;:::i;:::-;10150:12;:46;:77;;;;;10214:13;10200:11;:27;10150:77;10145:235;;;10254:16;10287:13;10273:11;:27;;;;:::i;:::-;10254:46;;10338:6;;10327:8;:17;10319:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;10228:152;10145:235;10414:12;;10404:6;:22;;10396:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10483:4;:10;10488:4;10483:10;;;;;;;;;;;;;;;;;;;;;;;;;10482:11;:24;;;;;10498:4;:8;10503:2;10498:8;;;;;;;;;;;;;;;;;;;;;;;;;10497:9;10482:24;10474:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10573:13;;;;;;;;;;;10567:19;;:2;:19;;;10564:146;;10640:14;;10631:6;10615:13;10625:2;10615:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10607:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10564:146;10727:28;10758:24;10776:4;10758:9;:24::i;:::-;10727:55;;10797:12;10836:19;;10812:20;:43;;10797:58;;10900:19;;10876:20;:43;10873:138;;10976:19;;10953:42;;10873:138;11032:7;:18;;;;;11044:6;;;;;;;;;;11043:7;11032:18;:43;;;;;11062:13;;;;;;;;;;;11054:21;;:4;:21;;;;11032:43;:58;;;;;11079:11;;;;;;;;;;;11032:58;:87;;;;;11095:18;:24;11114:4;11095:24;;;;;;;;;;;;;;;;;;;;;;;;;11094:25;11032:87;:114;;;;;11124:18;:22;11143:2;11124:22;;;;;;;;;;;;;;;;;;;;;;;;;11123:23;11032:114;11028:386;;;11167:38;11184:20;11167:16;:38::i;:::-;11224:26;11253:21;11224:50;;11318:1;11297:18;:22;11293:106;;;11344:35;11357:21;11344:12;:35::i;:::-;11293:106;11148:266;11028:386;9883:1542;;9845:1580;11438:12;11453:4;11438:19;;11503:18;:24;11522:4;11503:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11531:18;:22;11550:2;11531:22;;;;;;;;;;;;;;;;;;;;;;;;;11503:50;11502:102;;;;11567:13;;;;;;;;;;;11559:21;;:4;:21;;;;:44;;;;;11590:13;;;;;;;;;;;11584:19;;:2;:19;;;;11559:44;11502:102;11498:597;;;11631:5;11621:15;;11498:597;;;11715:13;;;;;;;;;;;11707:21;;:4;:21;;;:55;;;;;11746:15;;;;;;;;;;;11732:30;;:2;:30;;;;11707:55;11704:162;;;11795:14;;11783:9;:26;;;;11838:12;;11828:7;:22;;;;11704:162;11926:13;;;;;;;;;;;11920:19;;:2;:19;;;:55;;;;;11959:15;;;;;;;;;;;11943:32;;:4;:32;;;;11920:55;11916:165;;;12008:15;;11996:9;:27;;;;12052:13;;12042:7;:23;;;;11916:165;11498:597;12108:41;12123:4;12129:2;12133:6;12141:7;12108:14;:41::i;:::-;9602:2555;9499:2658;;;:::o;2405:224::-;2525:7;2558:1;2553;:6;;2561:12;2545:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2585:9;2601:1;2597;:5;;;;:::i;:::-;2585:17;;2620:1;2613:8;;;2405:224;;;;;:::o;12658:99::-;12715:17;;;;;;;;;;;:26;;:34;12742:6;12715:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12658:99;:::o;8433:323::-;8528:7;8586;;8575;:18;;8553:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8674:19;8696:10;:8;:10::i;:::-;8674:32;;8724:24;8736:11;8724:7;:11;;:24;;;;:::i;:::-;8717:31;;;8433:323;;;:::o;12166:483::-;5979:4;5970:6;;:13;;;;;;;;;;;;;;;;;;12244:21:::1;12282:1;12268:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12244:40;;12313:4;12295;12300:1;12295:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12339:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12329:4;12334:1;12329:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12372:62;12389:4;12404:15;;;;;;;;;;;12422:11;12372:8;:62::i;:::-;12445:15;;;;;;;;;;;:66;;;12526:11;12552:1;12568:4;12595;12615:15;12445:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12233:416;6015:5:::0;6006:6;;:14;;;;;;;;;;;;;;;;;;12166:483;:::o;13659:282::-;13815:7;13810:28;;13824:14;:12;:14::i;:::-;13810:28;13849:44;13867:6;13875:9;13886:6;13849:17;:44::i;:::-;13909:7;13904:29;;13918:15;:13;:15::i;:::-;13904:29;13659:282;;;;:::o;16628:164::-;16670:7;16691:15;16708;16727:19;:17;:19::i;:::-;16690:56;;;;16764:20;16776:7;16764;:11;;:20;;;;:::i;:::-;16757:27;;;;16628:164;:::o;2887:132::-;2945:7;2972:39;2976:1;2979;2972:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2965:46;;2887:132;;;;:::o;8765:221::-;8825:1;8812:9;;:14;:30;;;;;8841:1;8830:7;;:12;8812:30;8844:7;8808:43;8884:9;;8864:17;:29;;;;8922:7;;8904:15;:25;;;;8955:1;8943:9;:13;;;;8977:1;8967:7;:11;;;;8765:221;:::o;13950:610::-;14097:15;14127:23;14165:12;14192:23;14230:12;14257:13;14284:19;14295:7;14284:10;:19::i;:::-;14082:221;;;;;;;;;;;;14332:28;14352:7;14332;:15;14340:6;14332:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14314:7;:15;14322:6;14314:15;;;;;;;;;;;;;;;:46;;;;14392:39;14415:15;14392:7;:18;14400:9;14392:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14371:7;:18;14379:9;14371:18;;;;;;;;;;;;;;;:60;;;;14442:16;14452:5;14442:9;:16::i;:::-;14469:23;14481:4;14487;14469:11;:23::i;:::-;14525:9;14508:44;;14517:6;14508:44;;;14536:15;14508:44;;;;;;:::i;:::-;;;;;;;;14071:489;;;;;;13950:610;;;:::o;8995:117::-;9051:17;;9039:9;:29;;;;9089:15;;9079:7;:25;;;;8995:117::o;16801:257::-;16852:7;16861;16881:15;16899:7;;16881:25;;16917:15;4672:18;16917:25;;16967:20;4672:18;16967:7;;:11;;:20;;;;:::i;:::-;16957:7;:30;16953:61;;;16997:7;;4672:18;16989:25;;;;;;;;16953:61;17033:7;17042;17025:25;;;;;;16801:257;;;:::o;3025:223::-;3145:7;3177:1;3173;:5;3180:12;3165:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3204:9;3220:1;3216;:5;;;;:::i;:::-;3204:17;;3239:1;3232:8;;;3025:223;;;;;:::o;14983:615::-;15083:7;15105;15127;15149;15171;15193;15229:23;15254:12;15268:13;15298:40;15310:7;15319:9;;15330:7;;15298:11;:40::i;:::-;15228:110;;;;;;15349:19;15371:10;:8;:10::i;:::-;15349:32;;15393:15;15410:23;15435:12;15464:46;15476:7;15485:4;15491:5;15498:11;15464;:46::i;:::-;15392:118;;;;;;15529:7;15538:15;15555:4;15561:15;15578:4;15584:5;15521:69;;;;;;;;;;;;;;;;;;;14983:615;;;;;;;:::o;2263:136::-;2321:7;2348:43;2352:1;2355;2348:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2341:50;;2263:136;;;;:::o;2078:179::-;2136:7;2156:9;2172:1;2168;:5;;;;:::i;:::-;2156:17;;2197:1;2192;:6;;2184:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2248:1;2241:8;;;2078:179;;;;:::o;14569:211::-;14622:19;14644:10;:8;:10::i;:::-;14622:32;;14665:13;14681:22;14691:11;14681:5;:9;;:22;;;;:::i;:::-;14665:38;;14739:33;14766:5;14739:7;:22;14755:4;14739:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14714:7;:22;14730:4;14714:22;;;;;;;;;;;;;;;:58;;;;14611:169;;14569:211;:::o;14789:147::-;14867:17;14879:4;14867:7;;:11;;:17;;;;:::i;:::-;14857:7;:27;;;;14908:20;14923:4;14908:10;;:14;;:20;;;;:::i;:::-;14895:10;:33;;;;14789:147;;:::o;15607:469::-;15776:7;15798;15820;15855:12;15870:30;15896:3;15870:21;15882:8;15870:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15855:45;;15911:13;15927:28;15951:3;15927:19;15939:6;15927:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15911:44;;15966:23;15992:28;16014:5;15992:17;16004:4;15992:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15966:54;;16039:15;16056:4;16062:5;16031:37;;;;;;;;;15607:469;;;;;;;:::o;16085:534::-;16279:7;16301;16323;16358:15;16376:24;16388:11;16376:7;:11;;:24;;;;:::i;:::-;16358:42;;16411:12;16426:21;16435:11;16426:4;:8;;:21;;;;:::i;:::-;16411:36;;16458:13;16474:22;16484:11;16474:5;:9;;:22;;;;:::i;:::-;16458:38;;16507:23;16533:28;16555:5;16533:17;16545:4;16533:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16507:54;;16580:7;16589:15;16606:4;16572:39;;;;;;;;;;16085:534;;;;;;;;:::o;2635:246::-;2693:7;2722:1;2717;:6;2713:47;;2747:1;2740:8;;;;2713:47;2770:9;2786:1;2782;:5;;;;:::i;:::-;2770:17;;2815:1;2810;2806;:5;;;;:::i;:::-;:10;2798:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2872:1;2865:8;;;2635:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:329::-;4830:6;4879:2;4867:9;4858:7;4854:23;4850:32;4847:119;;;4885:79;;:::i;:::-;4847:119;5005:1;5030:53;5075:7;5066:6;5055:9;5051:22;5030:53;:::i;:::-;5020:63;;4976:117;4771:329;;;;:::o;5106:619::-;5183:6;5191;5199;5248:2;5236:9;5227:7;5223:23;5219:32;5216:119;;;5254:79;;:::i;:::-;5216:119;5374:1;5399:53;5444:7;5435:6;5424:9;5420:22;5399:53;:::i;:::-;5389:63;;5345:117;5501:2;5527:53;5572:7;5563:6;5552:9;5548:22;5527:53;:::i;:::-;5517:63;;5472:118;5629:2;5655:53;5700:7;5691:6;5680:9;5676:22;5655:53;:::i;:::-;5645:63;;5600:118;5106:619;;;;;:::o;5731:117::-;5840:1;5837;5830:12;5854:117;5963:1;5960;5953:12;5977:117;6086:1;6083;6076:12;6117:568;6190:8;6200:6;6250:3;6243:4;6235:6;6231:17;6227:27;6217:122;;6258:79;;:::i;:::-;6217:122;6371:6;6358:20;6348:30;;6401:18;6393:6;6390:30;6387:117;;;6423:79;;:::i;:::-;6387:117;6537:4;6529:6;6525:17;6513:29;;6591:3;6583:4;6575:6;6571:17;6561:8;6557:32;6554:41;6551:128;;;6598:79;;:::i;:::-;6551:128;6117:568;;;;;:::o;6691:116::-;6761:21;6776:5;6761:21;:::i;:::-;6754:5;6751:32;6741:60;;6797:1;6794;6787:12;6741:60;6691:116;:::o;6813:133::-;6856:5;6894:6;6881:20;6872:29;;6910:30;6934:5;6910:30;:::i;:::-;6813:133;;;;:::o;6952:698::-;7044:6;7052;7060;7109:2;7097:9;7088:7;7084:23;7080:32;7077:119;;;7115:79;;:::i;:::-;7077:119;7263:1;7252:9;7248:17;7235:31;7293:18;7285:6;7282:30;7279:117;;;7315:79;;:::i;:::-;7279:117;7428:80;7500:7;7491:6;7480:9;7476:22;7428:80;:::i;:::-;7410:98;;;;7206:312;7557:2;7583:50;7625:7;7616:6;7605:9;7601:22;7583:50;:::i;:::-;7573:60;;7528:115;6952:698;;;;;:::o;7656:86::-;7691:7;7731:4;7724:5;7720:16;7709:27;;7656:86;;;:::o;7748:112::-;7831:22;7847:5;7831:22;:::i;:::-;7826:3;7819:35;7748:112;;:::o;7866:214::-;7955:4;7993:2;7982:9;7978:18;7970:26;;8006:67;8070:1;8059:9;8055:17;8046:6;8006:67;:::i;:::-;7866:214;;;;:::o;8086:104::-;8131:7;8160:24;8178:5;8160:24;:::i;:::-;8149:35;;8086:104;;;:::o;8196:142::-;8299:32;8325:5;8299:32;:::i;:::-;8294:3;8287:45;8196:142;;:::o;8344:254::-;8453:4;8491:2;8480:9;8476:18;8468:26;;8504:87;8588:1;8577:9;8573:17;8564:6;8504:87;:::i;:::-;8344:254;;;;:::o;8604:474::-;8672:6;8680;8729:2;8717:9;8708:7;8704:23;8700:32;8697:119;;;8735:79;;:::i;:::-;8697:119;8855:1;8880:53;8925:7;8916:6;8905:9;8901:22;8880:53;:::i;:::-;8870:63;;8826:117;8982:2;9008:53;9053:7;9044:6;9033:9;9029:22;9008:53;:::i;:::-;8998:63;;8953:118;8604:474;;;;;:::o;9084:118::-;9171:24;9189:5;9171:24;:::i;:::-;9166:3;9159:37;9084:118;;:::o;9208:222::-;9301:4;9339:2;9328:9;9324:18;9316:26;;9352:71;9420:1;9409:9;9405:17;9396:6;9352:71;:::i;:::-;9208:222;;;;:::o;9436:329::-;9495:6;9544:2;9532:9;9523:7;9519:23;9515:32;9512:119;;;9550:79;;:::i;:::-;9512:119;9670:1;9695:53;9740:7;9731:6;9720:9;9716:22;9695:53;:::i;:::-;9685:63;;9641:117;9436:329;;;;:::o;9771:323::-;9827:6;9876:2;9864:9;9855:7;9851:23;9847:32;9844:119;;;9882:79;;:::i;:::-;9844:119;10002:1;10027:50;10069:7;10060:6;10049:9;10045:22;10027:50;:::i;:::-;10017:60;;9973:114;9771:323;;;;:::o;10100:474::-;10168:6;10176;10225:2;10213:9;10204:7;10200:23;10196:32;10193:119;;;10231:79;;:::i;:::-;10193:119;10351:1;10376:53;10421:7;10412:6;10401:9;10397:22;10376:53;:::i;:::-;10366:63;;10322:117;10478:2;10504:53;10549:7;10540:6;10529:9;10525:22;10504:53;:::i;:::-;10494:63;;10449:118;10100:474;;;;;:::o;10580:180::-;10628:77;10625:1;10618:88;10725:4;10722:1;10715:15;10749:4;10746:1;10739:15;10766:281;10849:27;10871:4;10849:27;:::i;:::-;10841:6;10837:40;10979:6;10967:10;10964:22;10943:18;10931:10;10928:34;10925:62;10922:88;;;10990:18;;:::i;:::-;10922:88;11030:10;11026:2;11019:22;10809:238;10766:281;;:::o;11053:129::-;11087:6;11114:20;;:::i;:::-;11104:30;;11143:33;11171:4;11163:6;11143:33;:::i;:::-;11053:129;;;:::o;11188:311::-;11265:4;11355:18;11347:6;11344:30;11341:56;;;11377:18;;:::i;:::-;11341:56;11427:4;11419:6;11415:17;11407:25;;11487:4;11481;11477:15;11469:23;;11188:311;;;:::o;11522:710::-;11618:5;11643:81;11659:64;11716:6;11659:64;:::i;:::-;11643:81;:::i;:::-;11634:90;;11744:5;11773:6;11766:5;11759:21;11807:4;11800:5;11796:16;11789:23;;11860:4;11852:6;11848:17;11840:6;11836:30;11889:3;11881:6;11878:15;11875:122;;;11908:79;;:::i;:::-;11875:122;12023:6;12006:220;12040:6;12035:3;12032:15;12006:220;;;12115:3;12144:37;12177:3;12165:10;12144:37;:::i;:::-;12139:3;12132:50;12211:4;12206:3;12202:14;12195:21;;12082:144;12066:4;12061:3;12057:14;12050:21;;12006:220;;;12010:21;11624:608;;11522:710;;;;;:::o;12255:370::-;12326:5;12375:3;12368:4;12360:6;12356:17;12352:27;12342:122;;12383:79;;:::i;:::-;12342:122;12500:6;12487:20;12525:94;12615:3;12607:6;12600:4;12592:6;12588:17;12525:94;:::i;:::-;12516:103;;12332:293;12255:370;;;;:::o;12631:539::-;12715:6;12764:2;12752:9;12743:7;12739:23;12735:32;12732:119;;;12770:79;;:::i;:::-;12732:119;12918:1;12907:9;12903:17;12890:31;12948:18;12940:6;12937:30;12934:117;;;12970:79;;:::i;:::-;12934:117;13075:78;13145:7;13136:6;13125:9;13121:22;13075:78;:::i;:::-;13065:88;;12861:302;12631:539;;;;:::o;13176:182::-;13316:34;13312:1;13304:6;13300:14;13293:58;13176:182;:::o;13364:366::-;13506:3;13527:67;13591:2;13586:3;13527:67;:::i;:::-;13520:74;;13603:93;13692:3;13603:93;:::i;:::-;13721:2;13716:3;13712:12;13705:19;;13364:366;;;:::o;13736:419::-;13902:4;13940:2;13929:9;13925:18;13917:26;;13989:9;13983:4;13979:20;13975:1;13964:9;13960:17;13953:47;14017:131;14143:4;14017:131;:::i;:::-;14009:139;;13736:419;;;:::o;14161:180::-;14209:77;14206:1;14199:88;14306:4;14303:1;14296:15;14330:4;14327:1;14320:15;14347:180;14395:77;14392:1;14385:88;14492:4;14489:1;14482:15;14516:4;14513:1;14506:15;14533:233;14572:3;14595:24;14613:5;14595:24;:::i;:::-;14586:33;;14641:66;14634:5;14631:77;14628:103;;14711:18;;:::i;:::-;14628:103;14758:1;14751:5;14747:13;14740:20;;14533:233;;;:::o;14772:225::-;14912:34;14908:1;14900:6;14896:14;14889:58;14981:8;14976:2;14968:6;14964:15;14957:33;14772:225;:::o;15003:366::-;15145:3;15166:67;15230:2;15225:3;15166:67;:::i;:::-;15159:74;;15242:93;15331:3;15242:93;:::i;:::-;15360:2;15355:3;15351:12;15344:19;;15003:366;;;:::o;15375:419::-;15541:4;15579:2;15568:9;15564:18;15556:26;;15628:9;15622:4;15618:20;15614:1;15603:9;15599:17;15592:47;15656:131;15782:4;15656:131;:::i;:::-;15648:139;;15375:419;;;:::o;15800:223::-;15940:34;15936:1;15928:6;15924:14;15917:58;16009:6;16004:2;15996:6;15992:15;15985:31;15800:223;:::o;16029:366::-;16171:3;16192:67;16256:2;16251:3;16192:67;:::i;:::-;16185:74;;16268:93;16357:3;16268:93;:::i;:::-;16386:2;16381:3;16377:12;16370:19;;16029:366;;;:::o;16401:419::-;16567:4;16605:2;16594:9;16590:18;16582:26;;16654:9;16648:4;16644:20;16640:1;16629:9;16625:17;16618:47;16682:131;16808:4;16682:131;:::i;:::-;16674:139;;16401:419;;;:::o;16826:221::-;16966:34;16962:1;16954:6;16950:14;16943:58;17035:4;17030:2;17022:6;17018:15;17011:29;16826:221;:::o;17053:366::-;17195:3;17216:67;17280:2;17275:3;17216:67;:::i;:::-;17209:74;;17292:93;17381:3;17292:93;:::i;:::-;17410:2;17405:3;17401:12;17394:19;;17053:366;;;:::o;17425:419::-;17591:4;17629:2;17618:9;17614:18;17606:26;;17678:9;17672:4;17668:20;17664:1;17653:9;17649:17;17642:47;17706:131;17832:4;17706:131;:::i;:::-;17698:139;;17425:419;;;:::o;17850:224::-;17990:34;17986:1;17978:6;17974:14;17967:58;18059:7;18054:2;18046:6;18042:15;18035:32;17850:224;:::o;18080:366::-;18222:3;18243:67;18307:2;18302:3;18243:67;:::i;:::-;18236:74;;18319:93;18408:3;18319:93;:::i;:::-;18437:2;18432:3;18428:12;18421:19;;18080:366;;;:::o;18452:419::-;18618:4;18656:2;18645:9;18641:18;18633:26;;18705:9;18699:4;18695:20;18691:1;18680:9;18676:17;18669:47;18733:131;18859:4;18733:131;:::i;:::-;18725:139;;18452:419;;;:::o;18877:222::-;19017:34;19013:1;19005:6;19001:14;18994:58;19086:5;19081:2;19073:6;19069:15;19062:30;18877:222;:::o;19105:366::-;19247:3;19268:67;19332:2;19327:3;19268:67;:::i;:::-;19261:74;;19344:93;19433:3;19344:93;:::i;:::-;19462:2;19457:3;19453:12;19446:19;;19105:366;;;:::o;19477:419::-;19643:4;19681:2;19670:9;19666:18;19658:26;;19730:9;19724:4;19720:20;19716:1;19705:9;19701:17;19694:47;19758:131;19884:4;19758:131;:::i;:::-;19750:139;;19477:419;;;:::o;19902:228::-;20042:34;20038:1;20030:6;20026:14;20019:58;20111:11;20106:2;20098:6;20094:15;20087:36;19902:228;:::o;20136:366::-;20278:3;20299:67;20363:2;20358:3;20299:67;:::i;:::-;20292:74;;20375:93;20464:3;20375:93;:::i;:::-;20493:2;20488:3;20484:12;20477:19;;20136:366;;;:::o;20508:419::-;20674:4;20712:2;20701:9;20697:18;20689:26;;20761:9;20755:4;20751:20;20747:1;20736:9;20732:17;20725:47;20789:131;20915:4;20789:131;:::i;:::-;20781:139;;20508:419;;;:::o;20933:250::-;21073:34;21069:1;21061:6;21057:14;21050:58;21142:33;21137:2;21129:6;21125:15;21118:58;20933:250;:::o;21189:366::-;21331:3;21352:67;21416:2;21411:3;21352:67;:::i;:::-;21345:74;;21428:93;21517:3;21428:93;:::i;:::-;21546:2;21541:3;21537:12;21530:19;;21189:366;;;:::o;21561:419::-;21727:4;21765:2;21754:9;21750:18;21742:26;;21814:9;21808:4;21804:20;21800:1;21789:9;21785:17;21778:47;21842:131;21968:4;21842:131;:::i;:::-;21834:139;;21561:419;;;:::o;21986:191::-;22026:3;22045:20;22063:1;22045:20;:::i;:::-;22040:25;;22079:20;22097:1;22079:20;:::i;:::-;22074:25;;22122:1;22119;22115:9;22108:16;;22143:3;22140:1;22137:10;22134:36;;;22150:18;;:::i;:::-;22134:36;21986:191;;;;:::o;22183:194::-;22223:4;22243:20;22261:1;22243:20;:::i;:::-;22238:25;;22277:20;22295:1;22277:20;:::i;:::-;22272:25;;22321:1;22318;22314:9;22306:17;;22345:1;22339:4;22336:11;22333:37;;;22350:18;;:::i;:::-;22333:37;22183:194;;;;:::o;22383:165::-;22523:17;22519:1;22511:6;22507:14;22500:41;22383:165;:::o;22554:366::-;22696:3;22717:67;22781:2;22776:3;22717:67;:::i;:::-;22710:74;;22793:93;22882:3;22793:93;:::i;:::-;22911:2;22906:3;22902:12;22895:19;;22554:366;;;:::o;22926:419::-;23092:4;23130:2;23119:9;23115:18;23107:26;;23179:9;23173:4;23169:20;23165:1;23154:9;23150:17;23143:47;23207:131;23333:4;23207:131;:::i;:::-;23199:139;;22926:419;;;:::o;23351:178::-;23491:30;23487:1;23479:6;23475:14;23468:54;23351:178;:::o;23535:366::-;23677:3;23698:67;23762:2;23757:3;23698:67;:::i;:::-;23691:74;;23774:93;23863:3;23774:93;:::i;:::-;23892:2;23887:3;23883:12;23876:19;;23535:366;;;:::o;23907:419::-;24073:4;24111:2;24100:9;24096:18;24088:26;;24160:9;24154:4;24150:20;24146:1;24135:9;24131:17;24124:47;24188:131;24314:4;24188:131;:::i;:::-;24180:139;;23907:419;;;:::o;24332:222::-;24472:34;24468:1;24460:6;24456:14;24449:58;24541:5;24536:2;24528:6;24524:15;24517:30;24332:222;:::o;24560:366::-;24702:3;24723:67;24787:2;24782:3;24723:67;:::i;:::-;24716:74;;24799:93;24888:3;24799:93;:::i;:::-;24917:2;24912:3;24908:12;24901:19;;24560:366;;;:::o;24932:419::-;25098:4;25136:2;25125:9;25121:18;25113:26;;25185:9;25179:4;25175:20;25171:1;25160:9;25156:17;25149:47;25213:131;25339:4;25213:131;:::i;:::-;25205:139;;24932:419;;;:::o;25357:222::-;25497:34;25493:1;25485:6;25481:14;25474:58;25566:5;25561:2;25553:6;25549:15;25542:30;25357:222;:::o;25585:366::-;25727:3;25748:67;25812:2;25807:3;25748:67;:::i;:::-;25741:74;;25824:93;25913:3;25824:93;:::i;:::-;25942:2;25937:3;25933:12;25926:19;;25585:366;;;:::o;25957:419::-;26123:4;26161:2;26150:9;26146:18;26138:26;;26210:9;26204:4;26200:20;26196:1;26185:9;26181:17;26174:47;26238:131;26364:4;26238:131;:::i;:::-;26230:139;;25957:419;;;:::o;26382:229::-;26522:34;26518:1;26510:6;26506:14;26499:58;26591:12;26586:2;26578:6;26574:15;26567:37;26382:229;:::o;26617:366::-;26759:3;26780:67;26844:2;26839:3;26780:67;:::i;:::-;26773:74;;26856:93;26945:3;26856:93;:::i;:::-;26974:2;26969:3;26965:12;26958:19;;26617:366;;;:::o;26989:419::-;27155:4;27193:2;27182:9;27178:18;27170:26;;27242:9;27236:4;27232:20;27228:1;27217:9;27213:17;27206:47;27270:131;27396:4;27270:131;:::i;:::-;27262:139;;26989:419;;;:::o;27414:143::-;27471:5;27502:6;27496:13;27487:22;;27518:33;27545:5;27518:33;:::i;:::-;27414:143;;;;:::o;27563:351::-;27633:6;27682:2;27670:9;27661:7;27657:23;27653:32;27650:119;;;27688:79;;:::i;:::-;27650:119;27808:1;27833:64;27889:7;27880:6;27869:9;27865:22;27833:64;:::i;:::-;27823:74;;27779:128;27563:351;;;;:::o;27920:85::-;27965:7;27994:5;27983:16;;27920:85;;;:::o;28011:158::-;28069:9;28102:61;28120:42;28129:32;28155:5;28129:32;:::i;:::-;28120:42;:::i;:::-;28102:61;:::i;:::-;28089:74;;28011:158;;;:::o;28175:147::-;28270:45;28309:5;28270:45;:::i;:::-;28265:3;28258:58;28175:147;;:::o;28328:114::-;28395:6;28429:5;28423:12;28413:22;;28328:114;;;:::o;28448:184::-;28547:11;28581:6;28576:3;28569:19;28621:4;28616:3;28612:14;28597:29;;28448:184;;;;:::o;28638:132::-;28705:4;28728:3;28720:11;;28758:4;28753:3;28749:14;28741:22;;28638:132;;;:::o;28776:108::-;28853:24;28871:5;28853:24;:::i;:::-;28848:3;28841:37;28776:108;;:::o;28890:179::-;28959:10;28980:46;29022:3;29014:6;28980:46;:::i;:::-;29058:4;29053:3;29049:14;29035:28;;28890:179;;;;:::o;29075:113::-;29145:4;29177;29172:3;29168:14;29160:22;;29075:113;;;:::o;29224:732::-;29343:3;29372:54;29420:5;29372:54;:::i;:::-;29442:86;29521:6;29516:3;29442:86;:::i;:::-;29435:93;;29552:56;29602:5;29552:56;:::i;:::-;29631:7;29662:1;29647:284;29672:6;29669:1;29666:13;29647:284;;;29748:6;29742:13;29775:63;29834:3;29819:13;29775:63;:::i;:::-;29768:70;;29861:60;29914:6;29861:60;:::i;:::-;29851:70;;29707:224;29694:1;29691;29687:9;29682:14;;29647:284;;;29651:14;29947:3;29940:10;;29348:608;;;29224:732;;;;:::o;29962:831::-;30225:4;30263:3;30252:9;30248:19;30240:27;;30277:71;30345:1;30334:9;30330:17;30321:6;30277:71;:::i;:::-;30358:80;30434:2;30423:9;30419:18;30410:6;30358:80;:::i;:::-;30485:9;30479:4;30475:20;30470:2;30459:9;30455:18;30448:48;30513:108;30616:4;30607:6;30513:108;:::i;:::-;30505:116;;30631:72;30699:2;30688:9;30684:18;30675:6;30631:72;:::i;:::-;30713:73;30781:3;30770:9;30766:19;30757:6;30713:73;:::i;:::-;29962:831;;;;;;;;:::o;30799:180::-;30847:77;30844:1;30837:88;30944:4;30941:1;30934:15;30968:4;30965:1;30958:15;30985:185;31025:1;31042:20;31060:1;31042:20;:::i;:::-;31037:25;;31076:20;31094:1;31076:20;:::i;:::-;31071:25;;31115:1;31105:35;;31120:18;;:::i;:::-;31105:35;31162:1;31159;31155:9;31150:14;;30985:185;;;;:::o;31176:177::-;31316:29;31312:1;31304:6;31300:14;31293:53;31176:177;:::o;31359:366::-;31501:3;31522:67;31586:2;31581:3;31522:67;:::i;:::-;31515:74;;31598:93;31687:3;31598:93;:::i;:::-;31716:2;31711:3;31707:12;31700:19;;31359:366;;;:::o;31731:419::-;31897:4;31935:2;31924:9;31920:18;31912:26;;31984:9;31978:4;31974:20;31970:1;31959:9;31955:17;31948:47;32012:131;32138:4;32012:131;:::i;:::-;32004:139;;31731:419;;;:::o;32156:410::-;32196:7;32219:20;32237:1;32219:20;:::i;:::-;32214:25;;32253:20;32271:1;32253:20;:::i;:::-;32248:25;;32308:1;32305;32301:9;32330:30;32348:11;32330:30;:::i;:::-;32319:41;;32509:1;32500:7;32496:15;32493:1;32490:22;32470:1;32463:9;32443:83;32420:139;;32539:18;;:::i;:::-;32420:139;32204:362;32156:410;;;;:::o;32572:220::-;32712:34;32708:1;32700:6;32696:14;32689:58;32781:3;32776:2;32768:6;32764:15;32757:28;32572:220;:::o;32798:366::-;32940:3;32961:67;33025:2;33020:3;32961:67;:::i;:::-;32954:74;;33037:93;33126:3;33037:93;:::i;:::-;33155:2;33150:3;33146:12;33139:19;;32798:366;;;:::o;33170:419::-;33336:4;33374:2;33363:9;33359:18;33351:26;;33423:9;33417:4;33413:20;33409:1;33398:9;33394:17;33387:47;33451:131;33577:4;33451:131;:::i;:::-;33443:139;;33170:419;;;:::o

Swarm Source

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