ETH Price: $3,289.08 (+1.46%)
Gas: 2 Gwei

Token

Godjak Coin (GODJAK)
 

Overview

Max Total Supply

777,777,777,777,777 GODJAK

Holders

95

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000644478 GODJAK

Value
$0.00
0xcf75d7f7105ac5e973a307f11b266b4f14913a0d
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:
Godjak

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-27
*/

/**


█████████████████████████████████████████████████████████████████████████████████████████████
█░░░░░░░░░░░░░░█░░░░░░░░░░░░░░█░░░░░░░░░░░░███████████░░░░░░█░░░░░░░░░░░░░░█░░░░░░██░░░░░░░░█
█░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀▄▀▄▀▄▀░░░░█████████░░▄▀░░█░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀░░██░░▄▀▄▀░░█
█░░▄▀░░░░░░░░░░█░░▄▀░░░░░░▄▀░░█░░▄▀░░░░▄▀▄▀░░█████████░░▄▀░░█░░▄▀░░░░░░▄▀░░█░░▄▀░░██░░▄▀░░░░█
█░░▄▀░░█████████░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀░░█████████░░▄▀░░█░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀░░███
█░░▄▀░░█████████░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀░░█████████░░▄▀░░█░░▄▀░░░░░░▄▀░░█░░▄▀░░░░░░▄▀░░███
█░░▄▀░░██░░░░░░█░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀░░█████████░░▄▀░░█░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀▄▀▄▀▄▀▄▀░░███
█░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀░░█░░░░░░██░░▄▀░░█░░▄▀░░░░░░▄▀░░█░░▄▀░░░░░░▄▀░░███
█░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀░░███
█░░▄▀░░░░░░▄▀░░█░░▄▀░░░░░░▄▀░░█░░▄▀░░░░▄▀▄▀░░█░░▄▀░░░░░░▄▀░░█░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀░░░░█
█░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀▄▀▄▀▄▀░░░░█░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀▄▀░░█
█░░░░░░░░░░░░░░█░░░░░░░░░░░░░░█░░░░░░░░░░░░███░░░░░░░░░░░░░░█░░░░░░██░░░░░░█░░░░░░██░░░░░░░░█
█████████████████████████████████████████████████████████████████████████████████████████████


    Telegram: https://t.me/Godjakerc
    X: https://x.com/godjaketh
    Web: https://godjak.com

*/

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.9;
 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
 
interface IERC20 {
    function totalSupply() external view returns (uint256);
 
    function balanceOf(address account) external view returns (uint256);
 
    function transfer(address recipient, uint256 amount) external returns (bool);
 
    function allowance(address owner, address spender) external view returns (uint256);
 
    function approve(address spender, uint256 amount) external returns (bool);
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
 
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}
 
contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
 
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
 
    function owner() public view returns (address) {
        return _owner;
    }
 
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
 
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
 
}
 
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
 
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
 
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
 
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
 
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
 
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}
 
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
 
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
 
    function factory() external pure returns (address);
 
    function WETH() external pure returns (address);
 
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}
 
contract Godjak is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "Godjak Coin";
    string private constant _symbol = "GODJAK";
    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 = 777_777_777_777_777 * 10**_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;  
    uint256 private _taxFeeOnBuy = 30;  
    uint256 private _redisFeeOnSell = 0;  
    uint256 private _taxFeeOnSell = 70;
 
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
 
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
 
    mapping(address => bool) public bots; 
    mapping (address => uint256) public _buyMap;
    
    address payable private _marketingAddress = payable(0x0b2500B23DdA4E6f9f3f8e9B99Df6eCA5c6a86F7);
    address payable private _teamAddress = payable(0x0b2500B23DdA4E6f9f3f8e9B99Df6eCA5c6a86F7); 
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
 
    uint256 public _maxTxAmount = 2 * (_tTotal/100);
    uint256 public _maxWalletSize = 2 * (_tTotal/100);
    uint256 public _swapTokensAtAmount = 1 * (_tTotal/1000);
 
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor() {
 
        _rOwned[_msgSender()] = _rTotal;
 
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
 
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_teamAddress] = 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(), "TOKEN: This account cannot send tokens until trading is enabled");
            }
 
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
 
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
 
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        bool takeFee = true;
 
        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
 
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
 
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
 
        }
 
        _tokenTransfer(from, to, amount, takeFee);
    }
 
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 
    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }
 
    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }
 
    function manualswap() external {
        require(_msgSender() == _teamAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
 
    function manualsend() external {
        require(_msgSender() == _teamAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
 
    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
 
    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
 
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }
 
    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }
 
    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }
 
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }
 
    receive() external payable {}
 
    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }
 
    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }
 
    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }
 
    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }
 
    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
 
    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;

    }
 
    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
 
    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
 
    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
           _maxTxAmount = maxTxAmount;
        
    }
 
    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }
    
    function setMaxTxAndWallet() public onlyOwner {
        _maxWalletSize = _tTotal;
        _maxTxAmount = _tTotal;
    }
 
    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

}

Contract Security Audit

Contract ABI

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

60806040526009600a6200001491906200091e565b6602c36280289c716200002891906200096e565b5f19620000369190620009e5565b5f1962000044919062000a1c565b6006555f600855601e6009555f600a556046600b55600a54600c55600b54600d55600c54600e55600d54600f55730b2500b23dda4e6f9f3f8e9b99df6eca5c6a86f760125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550730b2500b23dda4e6f9f3f8e9b99df6eca5c6a86f760135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f6015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff02191690831515021790555060646009600a6200015f91906200091e565b6602c36280289c716200017391906200096e565b6200017f919062000a56565b60026200018d91906200096e565b60165560646009600a620001a291906200091e565b6602c36280289c71620001b691906200096e565b620001c2919062000a56565b6002620001d091906200096e565b6017556103e86009600a620001e691906200091e565b6602c36280289c71620001fa91906200096e565b62000206919062000a56565b60016200021491906200096e565b60185534801562000223575f80fd5b505f620002356200075e60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460025f620002e76200075e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003c6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003ec919062000af2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000452573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000478919062000af2565b6040518363ffffffff1660e01b81526004016200049792919062000b33565b6020604051808303815f875af1158015620004b4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004da919062000af2565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160055f6200052e6200076560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620006ce6200075e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200072c91906200091e565b6602c36280289c716200074091906200096e565b6040516200074f919062000b6f565b60405180910390a35062000b8a565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200081657808604811115620007ee57620007ed6200078c565b5b6001851615620007fe5780820291505b80810290506200080e85620007b9565b9450620007ce565b94509492505050565b5f8262000830576001905062000902565b816200083f575f905062000902565b8160018114620008585760028114620008635762000899565b600191505062000902565b60ff8411156200087857620008776200078c565b5b8360020a9150848211156200089257620008916200078c565b5b5062000902565b5060208310610133831016604e8410600b8410161715620008d35782820a905083811115620008cd57620008cc6200078c565b5b62000902565b620008e28484846001620007c5565b92509050818404811115620008fc57620008fb6200078c565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200092a8262000909565b9150620009378362000912565b9250620009667fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200081f565b905092915050565b5f6200097a8262000909565b9150620009878362000909565b9250828202620009978162000909565b91508282048414831517620009b157620009b06200078c565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620009f18262000909565b9150620009fe8362000909565b92508262000a115762000a10620009b8565b5b828206905092915050565b5f62000a288262000909565b915062000a358362000909565b925082820390508181111562000a505762000a4f6200078c565b5b92915050565b5f62000a628262000909565b915062000a6f8362000909565b92508262000a825762000a81620009b8565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000abc8262000a91565b9050919050565b62000ace8162000ab0565b811462000ad9575f80fd5b50565b5f8151905062000aec8162000ac3565b92915050565b5f6020828403121562000b0a5762000b0962000a8d565b5b5f62000b198482850162000adc565b91505092915050565b62000b2d8162000ab0565b82525050565b5f60408201905062000b485f83018562000b22565b62000b57602083018462000b22565b9392505050565b62000b698162000909565b82525050565b5f60208201905062000b845f83018462000b5e565b92915050565b613e9e8062000b985f395ff3fe6080604052600436106101da575f3560e01c806374010ece11610101578063a2a957bb11610094578063c492f04611610063578063c492f04614610661578063dd62ed3e14610689578063ea1644d5146106c5578063f2fde38b146106ed576101e1565b8063a2a957bb146105ab578063a9059cbb146105d3578063bfd792841461060f578063c3c8cd801461064b576101e1565b80638f70ccf7116100d05780638f70ccf7146105075780638f9a55c01461052f57806395d89b411461055957806398a5c31514610583576101e1565b806374010ece1461044f5780637d1db4a5146104775780637f2feddc146104a15780638da5cb5b146104dd576101e1565b80632fd689e3116101795780636d8aa8f8116101485780636d8aa8f8146103bf5780636fc3eaec146103e757806370a08231146103fd578063715018a614610439576101e1565b80632fd689e314610319578063313ce5671461034357806349bd5a5e1461036d5780636b99905314610397576101e1565b80631694505e116101b55780631694505e1461027357806318160ddd1461029d57806320ec96b0146102c757806323b872dd146102dd576101e1565b8062b8cf2a146101e557806306fdde031461020d578063095ea7b314610237576101e1565b366101e157005b5f80fd5b3480156101f0575f80fd5b5061020b60048036038101906102069190612dc0565b610715565b005b348015610218575f80fd5b50610221610834565b60405161022e9190612e81565b60405180910390f35b348015610242575f80fd5b5061025d60048036038101906102589190612ed4565b610871565b60405161026a9190612f2c565b60405180910390f35b34801561027e575f80fd5b5061028761088e565b6040516102949190612fa0565b60405180910390f35b3480156102a8575f80fd5b506102b16108b3565b6040516102be9190612fc8565b60405180910390f35b3480156102d2575f80fd5b506102db6108d9565b005b3480156102e8575f80fd5b5061030360048036038101906102fe9190612fe1565b6109bb565b6040516103109190612f2c565b60405180910390f35b348015610324575f80fd5b5061032d610a8f565b60405161033a9190612fc8565b60405180910390f35b34801561034e575f80fd5b50610357610a95565b604051610364919061304c565b60405180910390f35b348015610378575f80fd5b50610381610a9d565b60405161038e9190613074565b60405180910390f35b3480156103a2575f80fd5b506103bd60048036038101906103b8919061308d565b610ac2565b005b3480156103ca575f80fd5b506103e560048036038101906103e091906130e2565b610bad565b005b3480156103f2575f80fd5b506103fb610c5e565b005b348015610408575f80fd5b50610423600480360381019061041e919061308d565b610d2b565b6040516104309190612fc8565b60405180910390f35b348015610444575f80fd5b5061044d610d79565b005b34801561045a575f80fd5b506104756004803603810190610470919061310d565b610ec7565b005b348015610482575f80fd5b5061048b610f65565b6040516104989190612fc8565b60405180910390f35b3480156104ac575f80fd5b506104c760048036038101906104c2919061308d565b610f6b565b6040516104d49190612fc8565b60405180910390f35b3480156104e8575f80fd5b506104f1610f80565b6040516104fe9190613074565b60405180910390f35b348015610512575f80fd5b5061052d600480360381019061052891906130e2565b610fa7565b005b34801561053a575f80fd5b50610543611058565b6040516105509190612fc8565b60405180910390f35b348015610564575f80fd5b5061056d61105e565b60405161057a9190612e81565b60405180910390f35b34801561058e575f80fd5b506105a960048036038101906105a4919061310d565b61109b565b005b3480156105b6575f80fd5b506105d160048036038101906105cc9190613138565b611139565b005b3480156105de575f80fd5b506105f960048036038101906105f49190612ed4565b6111ef565b6040516106069190612f2c565b60405180910390f35b34801561061a575f80fd5b506106356004803603810190610630919061308d565b61120c565b6040516106429190612f2c565b60405180910390f35b348015610656575f80fd5b5061065f611229565b005b34801561066c575f80fd5b50610687600480360381019061068291906131f5565b6112fe565b005b348015610694575f80fd5b506106af60048036038101906106aa9190613252565b61142d565b6040516106bc9190612fc8565b60405180910390f35b3480156106d0575f80fd5b506106eb60048036038101906106e6919061310d565b6114af565b005b3480156106f8575f80fd5b50610713600480360381019061070e919061308d565b61154d565b005b61071d61170a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a0906132da565b60405180910390fd5b5f5b815181101561083057600160105f8484815181106107cc576107cb6132f8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506107ab565b5050565b60606040518060400160405280600b81526020017f476f646a616b20436f696e000000000000000000000000000000000000000000815250905090565b5f61088461087d61170a565b8484611711565b6001905092915050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6009600a6108c29190613481565b6602c36280289c716108d491906134cb565b905090565b6108e161170a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461096d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610964906132da565b60405180910390fd5b6009600a61097b9190613481565b6602c36280289c7161098d91906134cb565b6017819055506009600a6109a19190613481565b6602c36280289c716109b391906134cb565b601681905550565b5f6109c78484846118d4565b610a84846109d361170a565b610a7f85604051806060016040528060288152602001613e416028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610a3661170a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121349092919063ffffffff16565b611711565b600190509392505050565b60185481565b5f6009905090565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610aca61170a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4d906132da565b60405180910390fd5b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610bb561170a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c38906132da565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c9e61170a565b73ffffffffffffffffffffffffffffffffffffffff161480610d13575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cfb61170a565b73ffffffffffffffffffffffffffffffffffffffff16145b610d1b575f80fd5b5f479050610d2881612196565b50565b5f610d7260025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121fe565b9050919050565b610d8161170a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e04906132da565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ecf61170a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f52906132da565b60405180910390fd5b8060168190555050565b60165481565b6011602052805f5260405f205f915090505481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610faf61170a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461103b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611032906132da565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600681526020017f474f444a414b0000000000000000000000000000000000000000000000000000815250905090565b6110a361170a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461112f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611126906132da565b60405180910390fd5b8060188190555050565b61114161170a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c4906132da565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b5f6112026111fb61170a565b84846118d4565b6001905092915050565b6010602052805f5260405f205f915054906101000a900460ff1681565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661126961170a565b73ffffffffffffffffffffffffffffffffffffffff1614806112de575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112c661170a565b73ffffffffffffffffffffffffffffffffffffffff16145b6112e6575f80fd5b5f6112f030610d2b565b90506112fb8161226a565b50565b61130661170a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611392576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611389906132da565b60405180910390fd5b5f5b83839050811015611427578160055f8686858181106113b6576113b56132f8565b5b90506020020160208101906113cb919061308d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050611394565b50505050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6114b761170a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611543576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153a906132da565b60405180910390fd5b8060178190555050565b61155561170a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d8906132da565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361164f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116469061357c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361177f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117769061360a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e490613698565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118c79190612fc8565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611942576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193990613726565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a7906137b4565b60405180910390fd5b5f81116119f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e990613842565b60405180910390fd5b6119fa610f80565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a685750611a38610f80565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611e4157601560149054906101000a900460ff16611af757611a89610f80565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611af6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aed906138d0565b60405180910390fd5b5b601654811115611b3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3390613938565b60405180910390fd5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611bda575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c10906139c6565b60405180910390fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611cc55760175481611c7a84610d2b565b611c8491906139e4565b10611cc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbb90613a87565b60405180910390fd5b5b5f611ccf30610d2b565b90505f60185482101590506016548210611ce95760165491505b808015611d01575060158054906101000a900460ff16155b8015611d5a575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611d725750601560169054906101000a900460ff165b8015611dc5575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611e18575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611e3e57611e268261226a565b5f4790505f811115611e3c57611e3b47612196565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611ee1575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611f92575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f91575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611f9f575f9050612122565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612048575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561206057600854600c81905550600954600d819055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612109575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561212157600a54600c81905550600b54600d819055505b5b61212e848484846124d3565b50505050565b5f83831115829061217b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121729190612e81565b60405180910390fd5b505f83856121899190613aa5565b9050809150509392505050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156121fa573d5f803e3d5ffd5b5050565b5f600654821115612244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223b90613b48565b60405180910390fd5b5f61224d612500565b9050612262818461252990919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156122a05761229f612c2a565b5b6040519080825280602002602001820160405280156122ce5781602001602082028036833780820191505090505b50905030815f815181106122e5576122e46132f8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612389573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123ad9190613b7a565b816001815181106123c1576123c06132f8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124273060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611711565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612489959493929190613c95565b5f604051808303815f87803b1580156124a0575f80fd5b505af11580156124b2573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b806124e1576124e0612572565b5b6124ec8484846125ab565b806124fa576124f961276b565b5b50505050565b5f805f61250b61277f565b91509150612522818361252990919063ffffffff16565b9250505090565b5f61256a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612820565b905092915050565b5f600c5414801561258457505f600d54145b6125a957600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f806125ba87612881565b9550955095509550955095506126168660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128e190919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506126a78560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461292a90919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506126f181612987565b6126fb8483612a3e565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516127589190612fc8565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f60065490505f6009600a6127969190613481565b6602c36280289c716127a891906134cb565b90506127de6009600a6127bb9190613481565b6602c36280289c716127cd91906134cb565b60065461252990919063ffffffff16565b821015612813576006546009600a6127f69190613481565b6602c36280289c7161280891906134cb565b93509350505061281c565b81819350935050505b9091565b5f8083118290612866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285d9190612e81565b60405180910390fd5b505f83856128749190613d1a565b9050809150509392505050565b5f805f805f805f805f6128998a600c54600d54612a78565b9250925092505f6128a8612500565b90505f805f6128b98e878787612b0a565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61292283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612134565b905092915050565b5f80828461293891906139e4565b90508381101561297d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297490613d94565b60405180910390fd5b8091505092915050565b5f612990612500565b90505f6129a68284612b8e90919063ffffffff16565b90506129f88160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461292a90919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b612a53826006546128e190919063ffffffff16565b600681905550612a6e8160075461292a90919063ffffffff16565b6007819055505050565b5f805f80612aa26064612a94888a612b8e90919063ffffffff16565b61252990919063ffffffff16565b90505f612acb6064612abd888b612b8e90919063ffffffff16565b61252990919063ffffffff16565b90505f612af382612ae5858c6128e190919063ffffffff16565b6128e190919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612b218589612b8e90919063ffffffff16565b90505f612b378689612b8e90919063ffffffff16565b90505f612b4d8789612b8e90919063ffffffff16565b90505f612b7582612b6785876128e190919063ffffffff16565b6128e190919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612b9e575f9050612bff565b5f8284612bab91906134cb565b9050828482612bba9190613d1a565b14612bfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf190613e22565b60405180910390fd5b809150505b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612c6082612c1a565b810181811067ffffffffffffffff82111715612c7f57612c7e612c2a565b5b80604052505050565b5f612c91612c05565b9050612c9d8282612c57565b919050565b5f67ffffffffffffffff821115612cbc57612cbb612c2a565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612cfa82612cd1565b9050919050565b612d0a81612cf0565b8114612d14575f80fd5b50565b5f81359050612d2581612d01565b92915050565b5f612d3d612d3884612ca2565b612c88565b90508083825260208201905060208402830185811115612d6057612d5f612ccd565b5b835b81811015612d895780612d758882612d17565b845260208401935050602081019050612d62565b5050509392505050565b5f82601f830112612da757612da6612c16565b5b8135612db7848260208601612d2b565b91505092915050565b5f60208284031215612dd557612dd4612c0e565b5b5f82013567ffffffffffffffff811115612df257612df1612c12565b5b612dfe84828501612d93565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612e3e578082015181840152602081019050612e23565b5f8484015250505050565b5f612e5382612e07565b612e5d8185612e11565b9350612e6d818560208601612e21565b612e7681612c1a565b840191505092915050565b5f6020820190508181035f830152612e998184612e49565b905092915050565b5f819050919050565b612eb381612ea1565b8114612ebd575f80fd5b50565b5f81359050612ece81612eaa565b92915050565b5f8060408385031215612eea57612ee9612c0e565b5b5f612ef785828601612d17565b9250506020612f0885828601612ec0565b9150509250929050565b5f8115159050919050565b612f2681612f12565b82525050565b5f602082019050612f3f5f830184612f1d565b92915050565b5f819050919050565b5f612f68612f63612f5e84612cd1565b612f45565b612cd1565b9050919050565b5f612f7982612f4e565b9050919050565b5f612f8a82612f6f565b9050919050565b612f9a81612f80565b82525050565b5f602082019050612fb35f830184612f91565b92915050565b612fc281612ea1565b82525050565b5f602082019050612fdb5f830184612fb9565b92915050565b5f805f60608486031215612ff857612ff7612c0e565b5b5f61300586828701612d17565b935050602061301686828701612d17565b925050604061302786828701612ec0565b9150509250925092565b5f60ff82169050919050565b61304681613031565b82525050565b5f60208201905061305f5f83018461303d565b92915050565b61306e81612cf0565b82525050565b5f6020820190506130875f830184613065565b92915050565b5f602082840312156130a2576130a1612c0e565b5b5f6130af84828501612d17565b91505092915050565b6130c181612f12565b81146130cb575f80fd5b50565b5f813590506130dc816130b8565b92915050565b5f602082840312156130f7576130f6612c0e565b5b5f613104848285016130ce565b91505092915050565b5f6020828403121561312257613121612c0e565b5b5f61312f84828501612ec0565b91505092915050565b5f805f80608085870312156131505761314f612c0e565b5b5f61315d87828801612ec0565b945050602061316e87828801612ec0565b935050604061317f87828801612ec0565b925050606061319087828801612ec0565b91505092959194509250565b5f80fd5b5f8083601f8401126131b5576131b4612c16565b5b8235905067ffffffffffffffff8111156131d2576131d161319c565b5b6020830191508360208202830111156131ee576131ed612ccd565b5b9250929050565b5f805f6040848603121561320c5761320b612c0e565b5b5f84013567ffffffffffffffff81111561322957613228612c12565b5b613235868287016131a0565b93509350506020613248868287016130ce565b9150509250925092565b5f806040838503121561326857613267612c0e565b5b5f61327585828601612d17565b925050602061328685828601612d17565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6132c4602083612e11565b91506132cf82613290565b602082019050919050565b5f6020820190508181035f8301526132f1816132b8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156133a75780860481111561338357613382613325565b5b60018516156133925780820291505b80810290506133a085613352565b9450613367565b94509492505050565b5f826133bf576001905061347a565b816133cc575f905061347a565b81600181146133e257600281146133ec5761341b565b600191505061347a565b60ff8411156133fe576133fd613325565b5b8360020a91508482111561341557613414613325565b5b5061347a565b5060208310610133831016604e8410600b84101617156134505782820a90508381111561344b5761344a613325565b5b61347a565b61345d848484600161335e565b9250905081840481111561347457613473613325565b5b81810290505b9392505050565b5f61348b82612ea1565b915061349683613031565b92506134c37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846133b0565b905092915050565b5f6134d582612ea1565b91506134e083612ea1565b92508282026134ee81612ea1565b9150828204841483151761350557613504613325565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613566602683612e11565b91506135718261350c565b604082019050919050565b5f6020820190508181035f8301526135938161355a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6135f4602483612e11565b91506135ff8261359a565b604082019050919050565b5f6020820190508181035f830152613621816135e8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613682602283612e11565b915061368d82613628565b604082019050919050565b5f6020820190508181035f8301526136af81613676565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613710602583612e11565b915061371b826136b6565b604082019050919050565b5f6020820190508181035f83015261373d81613704565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61379e602383612e11565b91506137a982613744565b604082019050919050565b5f6020820190508181035f8301526137cb81613792565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61382c602983612e11565b9150613837826137d2565b604082019050919050565b5f6020820190508181035f83015261385981613820565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f6138ba603f83612e11565b91506138c582613860565b604082019050919050565b5f6020820190508181035f8301526138e7816138ae565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f613922601c83612e11565b915061392d826138ee565b602082019050919050565b5f6020820190508181035f83015261394f81613916565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f6139b0602383612e11565b91506139bb82613956565b604082019050919050565b5f6020820190508181035f8301526139dd816139a4565b9050919050565b5f6139ee82612ea1565b91506139f983612ea1565b9250828201905080821115613a1157613a10613325565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f613a71602383612e11565b9150613a7c82613a17565b604082019050919050565b5f6020820190508181035f830152613a9e81613a65565b9050919050565b5f613aaf82612ea1565b9150613aba83612ea1565b9250828203905081811115613ad257613ad1613325565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613b32602a83612e11565b9150613b3d82613ad8565b604082019050919050565b5f6020820190508181035f830152613b5f81613b26565b9050919050565b5f81519050613b7481612d01565b92915050565b5f60208284031215613b8f57613b8e612c0e565b5b5f613b9c84828501613b66565b91505092915050565b5f819050919050565b5f613bc8613bc3613bbe84613ba5565b612f45565b612ea1565b9050919050565b613bd881613bae565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613c1081612cf0565b82525050565b5f613c218383613c07565b60208301905092915050565b5f602082019050919050565b5f613c4382613bde565b613c4d8185613be8565b9350613c5883613bf8565b805f5b83811015613c88578151613c6f8882613c16565b9750613c7a83613c2d565b925050600181019050613c5b565b5085935050505092915050565b5f60a082019050613ca85f830188612fb9565b613cb56020830187613bcf565b8181036040830152613cc78186613c39565b9050613cd66060830185613065565b613ce36080830184612fb9565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613d2482612ea1565b9150613d2f83612ea1565b925082613d3f57613d3e613ced565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613d7e601b83612e11565b9150613d8982613d4a565b602082019050919050565b5f6020820190508181035f830152613dab81613d72565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613e0c602183612e11565b9150613e1782613db2565b604082019050919050565b5f6020820190508181035f830152613e3981613e00565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209ae81c352a0edd432929d073a5bb10d000e838902d7b1787dbc287d155eca56964736f6c63430008160033

Deployed Bytecode

0x6080604052600436106101da575f3560e01c806374010ece11610101578063a2a957bb11610094578063c492f04611610063578063c492f04614610661578063dd62ed3e14610689578063ea1644d5146106c5578063f2fde38b146106ed576101e1565b8063a2a957bb146105ab578063a9059cbb146105d3578063bfd792841461060f578063c3c8cd801461064b576101e1565b80638f70ccf7116100d05780638f70ccf7146105075780638f9a55c01461052f57806395d89b411461055957806398a5c31514610583576101e1565b806374010ece1461044f5780637d1db4a5146104775780637f2feddc146104a15780638da5cb5b146104dd576101e1565b80632fd689e3116101795780636d8aa8f8116101485780636d8aa8f8146103bf5780636fc3eaec146103e757806370a08231146103fd578063715018a614610439576101e1565b80632fd689e314610319578063313ce5671461034357806349bd5a5e1461036d5780636b99905314610397576101e1565b80631694505e116101b55780631694505e1461027357806318160ddd1461029d57806320ec96b0146102c757806323b872dd146102dd576101e1565b8062b8cf2a146101e557806306fdde031461020d578063095ea7b314610237576101e1565b366101e157005b5f80fd5b3480156101f0575f80fd5b5061020b60048036038101906102069190612dc0565b610715565b005b348015610218575f80fd5b50610221610834565b60405161022e9190612e81565b60405180910390f35b348015610242575f80fd5b5061025d60048036038101906102589190612ed4565b610871565b60405161026a9190612f2c565b60405180910390f35b34801561027e575f80fd5b5061028761088e565b6040516102949190612fa0565b60405180910390f35b3480156102a8575f80fd5b506102b16108b3565b6040516102be9190612fc8565b60405180910390f35b3480156102d2575f80fd5b506102db6108d9565b005b3480156102e8575f80fd5b5061030360048036038101906102fe9190612fe1565b6109bb565b6040516103109190612f2c565b60405180910390f35b348015610324575f80fd5b5061032d610a8f565b60405161033a9190612fc8565b60405180910390f35b34801561034e575f80fd5b50610357610a95565b604051610364919061304c565b60405180910390f35b348015610378575f80fd5b50610381610a9d565b60405161038e9190613074565b60405180910390f35b3480156103a2575f80fd5b506103bd60048036038101906103b8919061308d565b610ac2565b005b3480156103ca575f80fd5b506103e560048036038101906103e091906130e2565b610bad565b005b3480156103f2575f80fd5b506103fb610c5e565b005b348015610408575f80fd5b50610423600480360381019061041e919061308d565b610d2b565b6040516104309190612fc8565b60405180910390f35b348015610444575f80fd5b5061044d610d79565b005b34801561045a575f80fd5b506104756004803603810190610470919061310d565b610ec7565b005b348015610482575f80fd5b5061048b610f65565b6040516104989190612fc8565b60405180910390f35b3480156104ac575f80fd5b506104c760048036038101906104c2919061308d565b610f6b565b6040516104d49190612fc8565b60405180910390f35b3480156104e8575f80fd5b506104f1610f80565b6040516104fe9190613074565b60405180910390f35b348015610512575f80fd5b5061052d600480360381019061052891906130e2565b610fa7565b005b34801561053a575f80fd5b50610543611058565b6040516105509190612fc8565b60405180910390f35b348015610564575f80fd5b5061056d61105e565b60405161057a9190612e81565b60405180910390f35b34801561058e575f80fd5b506105a960048036038101906105a4919061310d565b61109b565b005b3480156105b6575f80fd5b506105d160048036038101906105cc9190613138565b611139565b005b3480156105de575f80fd5b506105f960048036038101906105f49190612ed4565b6111ef565b6040516106069190612f2c565b60405180910390f35b34801561061a575f80fd5b506106356004803603810190610630919061308d565b61120c565b6040516106429190612f2c565b60405180910390f35b348015610656575f80fd5b5061065f611229565b005b34801561066c575f80fd5b50610687600480360381019061068291906131f5565b6112fe565b005b348015610694575f80fd5b506106af60048036038101906106aa9190613252565b61142d565b6040516106bc9190612fc8565b60405180910390f35b3480156106d0575f80fd5b506106eb60048036038101906106e6919061310d565b6114af565b005b3480156106f8575f80fd5b50610713600480360381019061070e919061308d565b61154d565b005b61071d61170a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a0906132da565b60405180910390fd5b5f5b815181101561083057600160105f8484815181106107cc576107cb6132f8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506107ab565b5050565b60606040518060400160405280600b81526020017f476f646a616b20436f696e000000000000000000000000000000000000000000815250905090565b5f61088461087d61170a565b8484611711565b6001905092915050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6009600a6108c29190613481565b6602c36280289c716108d491906134cb565b905090565b6108e161170a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461096d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610964906132da565b60405180910390fd5b6009600a61097b9190613481565b6602c36280289c7161098d91906134cb565b6017819055506009600a6109a19190613481565b6602c36280289c716109b391906134cb565b601681905550565b5f6109c78484846118d4565b610a84846109d361170a565b610a7f85604051806060016040528060288152602001613e416028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610a3661170a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121349092919063ffffffff16565b611711565b600190509392505050565b60185481565b5f6009905090565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610aca61170a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4d906132da565b60405180910390fd5b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610bb561170a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c38906132da565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c9e61170a565b73ffffffffffffffffffffffffffffffffffffffff161480610d13575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cfb61170a565b73ffffffffffffffffffffffffffffffffffffffff16145b610d1b575f80fd5b5f479050610d2881612196565b50565b5f610d7260025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121fe565b9050919050565b610d8161170a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e04906132da565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ecf61170a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f52906132da565b60405180910390fd5b8060168190555050565b60165481565b6011602052805f5260405f205f915090505481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610faf61170a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461103b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611032906132da565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600681526020017f474f444a414b0000000000000000000000000000000000000000000000000000815250905090565b6110a361170a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461112f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611126906132da565b60405180910390fd5b8060188190555050565b61114161170a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c4906132da565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b5f6112026111fb61170a565b84846118d4565b6001905092915050565b6010602052805f5260405f205f915054906101000a900460ff1681565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661126961170a565b73ffffffffffffffffffffffffffffffffffffffff1614806112de575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112c661170a565b73ffffffffffffffffffffffffffffffffffffffff16145b6112e6575f80fd5b5f6112f030610d2b565b90506112fb8161226a565b50565b61130661170a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611392576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611389906132da565b60405180910390fd5b5f5b83839050811015611427578160055f8686858181106113b6576113b56132f8565b5b90506020020160208101906113cb919061308d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050611394565b50505050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6114b761170a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611543576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153a906132da565b60405180910390fd5b8060178190555050565b61155561170a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d8906132da565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361164f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116469061357c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361177f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117769061360a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e490613698565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118c79190612fc8565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611942576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193990613726565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a7906137b4565b60405180910390fd5b5f81116119f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e990613842565b60405180910390fd5b6119fa610f80565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a685750611a38610f80565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611e4157601560149054906101000a900460ff16611af757611a89610f80565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611af6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aed906138d0565b60405180910390fd5b5b601654811115611b3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3390613938565b60405180910390fd5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611bda575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c10906139c6565b60405180910390fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611cc55760175481611c7a84610d2b565b611c8491906139e4565b10611cc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbb90613a87565b60405180910390fd5b5b5f611ccf30610d2b565b90505f60185482101590506016548210611ce95760165491505b808015611d01575060158054906101000a900460ff16155b8015611d5a575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611d725750601560169054906101000a900460ff165b8015611dc5575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611e18575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611e3e57611e268261226a565b5f4790505f811115611e3c57611e3b47612196565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611ee1575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611f92575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f91575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611f9f575f9050612122565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612048575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561206057600854600c81905550600954600d819055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612109575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561212157600a54600c81905550600b54600d819055505b5b61212e848484846124d3565b50505050565b5f83831115829061217b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121729190612e81565b60405180910390fd5b505f83856121899190613aa5565b9050809150509392505050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156121fa573d5f803e3d5ffd5b5050565b5f600654821115612244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223b90613b48565b60405180910390fd5b5f61224d612500565b9050612262818461252990919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156122a05761229f612c2a565b5b6040519080825280602002602001820160405280156122ce5781602001602082028036833780820191505090505b50905030815f815181106122e5576122e46132f8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612389573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123ad9190613b7a565b816001815181106123c1576123c06132f8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124273060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611711565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612489959493929190613c95565b5f604051808303815f87803b1580156124a0575f80fd5b505af11580156124b2573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b806124e1576124e0612572565b5b6124ec8484846125ab565b806124fa576124f961276b565b5b50505050565b5f805f61250b61277f565b91509150612522818361252990919063ffffffff16565b9250505090565b5f61256a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612820565b905092915050565b5f600c5414801561258457505f600d54145b6125a957600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f806125ba87612881565b9550955095509550955095506126168660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128e190919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506126a78560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461292a90919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506126f181612987565b6126fb8483612a3e565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516127589190612fc8565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f60065490505f6009600a6127969190613481565b6602c36280289c716127a891906134cb565b90506127de6009600a6127bb9190613481565b6602c36280289c716127cd91906134cb565b60065461252990919063ffffffff16565b821015612813576006546009600a6127f69190613481565b6602c36280289c7161280891906134cb565b93509350505061281c565b81819350935050505b9091565b5f8083118290612866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285d9190612e81565b60405180910390fd5b505f83856128749190613d1a565b9050809150509392505050565b5f805f805f805f805f6128998a600c54600d54612a78565b9250925092505f6128a8612500565b90505f805f6128b98e878787612b0a565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61292283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612134565b905092915050565b5f80828461293891906139e4565b90508381101561297d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297490613d94565b60405180910390fd5b8091505092915050565b5f612990612500565b90505f6129a68284612b8e90919063ffffffff16565b90506129f88160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461292a90919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b612a53826006546128e190919063ffffffff16565b600681905550612a6e8160075461292a90919063ffffffff16565b6007819055505050565b5f805f80612aa26064612a94888a612b8e90919063ffffffff16565b61252990919063ffffffff16565b90505f612acb6064612abd888b612b8e90919063ffffffff16565b61252990919063ffffffff16565b90505f612af382612ae5858c6128e190919063ffffffff16565b6128e190919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612b218589612b8e90919063ffffffff16565b90505f612b378689612b8e90919063ffffffff16565b90505f612b4d8789612b8e90919063ffffffff16565b90505f612b7582612b6785876128e190919063ffffffff16565b6128e190919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612b9e575f9050612bff565b5f8284612bab91906134cb565b9050828482612bba9190613d1a565b14612bfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf190613e22565b60405180910390fd5b809150505b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612c6082612c1a565b810181811067ffffffffffffffff82111715612c7f57612c7e612c2a565b5b80604052505050565b5f612c91612c05565b9050612c9d8282612c57565b919050565b5f67ffffffffffffffff821115612cbc57612cbb612c2a565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612cfa82612cd1565b9050919050565b612d0a81612cf0565b8114612d14575f80fd5b50565b5f81359050612d2581612d01565b92915050565b5f612d3d612d3884612ca2565b612c88565b90508083825260208201905060208402830185811115612d6057612d5f612ccd565b5b835b81811015612d895780612d758882612d17565b845260208401935050602081019050612d62565b5050509392505050565b5f82601f830112612da757612da6612c16565b5b8135612db7848260208601612d2b565b91505092915050565b5f60208284031215612dd557612dd4612c0e565b5b5f82013567ffffffffffffffff811115612df257612df1612c12565b5b612dfe84828501612d93565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612e3e578082015181840152602081019050612e23565b5f8484015250505050565b5f612e5382612e07565b612e5d8185612e11565b9350612e6d818560208601612e21565b612e7681612c1a565b840191505092915050565b5f6020820190508181035f830152612e998184612e49565b905092915050565b5f819050919050565b612eb381612ea1565b8114612ebd575f80fd5b50565b5f81359050612ece81612eaa565b92915050565b5f8060408385031215612eea57612ee9612c0e565b5b5f612ef785828601612d17565b9250506020612f0885828601612ec0565b9150509250929050565b5f8115159050919050565b612f2681612f12565b82525050565b5f602082019050612f3f5f830184612f1d565b92915050565b5f819050919050565b5f612f68612f63612f5e84612cd1565b612f45565b612cd1565b9050919050565b5f612f7982612f4e565b9050919050565b5f612f8a82612f6f565b9050919050565b612f9a81612f80565b82525050565b5f602082019050612fb35f830184612f91565b92915050565b612fc281612ea1565b82525050565b5f602082019050612fdb5f830184612fb9565b92915050565b5f805f60608486031215612ff857612ff7612c0e565b5b5f61300586828701612d17565b935050602061301686828701612d17565b925050604061302786828701612ec0565b9150509250925092565b5f60ff82169050919050565b61304681613031565b82525050565b5f60208201905061305f5f83018461303d565b92915050565b61306e81612cf0565b82525050565b5f6020820190506130875f830184613065565b92915050565b5f602082840312156130a2576130a1612c0e565b5b5f6130af84828501612d17565b91505092915050565b6130c181612f12565b81146130cb575f80fd5b50565b5f813590506130dc816130b8565b92915050565b5f602082840312156130f7576130f6612c0e565b5b5f613104848285016130ce565b91505092915050565b5f6020828403121561312257613121612c0e565b5b5f61312f84828501612ec0565b91505092915050565b5f805f80608085870312156131505761314f612c0e565b5b5f61315d87828801612ec0565b945050602061316e87828801612ec0565b935050604061317f87828801612ec0565b925050606061319087828801612ec0565b91505092959194509250565b5f80fd5b5f8083601f8401126131b5576131b4612c16565b5b8235905067ffffffffffffffff8111156131d2576131d161319c565b5b6020830191508360208202830111156131ee576131ed612ccd565b5b9250929050565b5f805f6040848603121561320c5761320b612c0e565b5b5f84013567ffffffffffffffff81111561322957613228612c12565b5b613235868287016131a0565b93509350506020613248868287016130ce565b9150509250925092565b5f806040838503121561326857613267612c0e565b5b5f61327585828601612d17565b925050602061328685828601612d17565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6132c4602083612e11565b91506132cf82613290565b602082019050919050565b5f6020820190508181035f8301526132f1816132b8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156133a75780860481111561338357613382613325565b5b60018516156133925780820291505b80810290506133a085613352565b9450613367565b94509492505050565b5f826133bf576001905061347a565b816133cc575f905061347a565b81600181146133e257600281146133ec5761341b565b600191505061347a565b60ff8411156133fe576133fd613325565b5b8360020a91508482111561341557613414613325565b5b5061347a565b5060208310610133831016604e8410600b84101617156134505782820a90508381111561344b5761344a613325565b5b61347a565b61345d848484600161335e565b9250905081840481111561347457613473613325565b5b81810290505b9392505050565b5f61348b82612ea1565b915061349683613031565b92506134c37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846133b0565b905092915050565b5f6134d582612ea1565b91506134e083612ea1565b92508282026134ee81612ea1565b9150828204841483151761350557613504613325565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613566602683612e11565b91506135718261350c565b604082019050919050565b5f6020820190508181035f8301526135938161355a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6135f4602483612e11565b91506135ff8261359a565b604082019050919050565b5f6020820190508181035f830152613621816135e8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613682602283612e11565b915061368d82613628565b604082019050919050565b5f6020820190508181035f8301526136af81613676565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613710602583612e11565b915061371b826136b6565b604082019050919050565b5f6020820190508181035f83015261373d81613704565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61379e602383612e11565b91506137a982613744565b604082019050919050565b5f6020820190508181035f8301526137cb81613792565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61382c602983612e11565b9150613837826137d2565b604082019050919050565b5f6020820190508181035f83015261385981613820565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f6138ba603f83612e11565b91506138c582613860565b604082019050919050565b5f6020820190508181035f8301526138e7816138ae565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f613922601c83612e11565b915061392d826138ee565b602082019050919050565b5f6020820190508181035f83015261394f81613916565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f6139b0602383612e11565b91506139bb82613956565b604082019050919050565b5f6020820190508181035f8301526139dd816139a4565b9050919050565b5f6139ee82612ea1565b91506139f983612ea1565b9250828201905080821115613a1157613a10613325565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f613a71602383612e11565b9150613a7c82613a17565b604082019050919050565b5f6020820190508181035f830152613a9e81613a65565b9050919050565b5f613aaf82612ea1565b9150613aba83612ea1565b9250828203905081811115613ad257613ad1613325565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613b32602a83612e11565b9150613b3d82613ad8565b604082019050919050565b5f6020820190508181035f830152613b5f81613b26565b9050919050565b5f81519050613b7481612d01565b92915050565b5f60208284031215613b8f57613b8e612c0e565b5b5f613b9c84828501613b66565b91505092915050565b5f819050919050565b5f613bc8613bc3613bbe84613ba5565b612f45565b612ea1565b9050919050565b613bd881613bae565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613c1081612cf0565b82525050565b5f613c218383613c07565b60208301905092915050565b5f602082019050919050565b5f613c4382613bde565b613c4d8185613be8565b9350613c5883613bf8565b805f5b83811015613c88578151613c6f8882613c16565b9750613c7a83613c2d565b925050600181019050613c5b565b5085935050505092915050565b5f60a082019050613ca85f830188612fb9565b613cb56020830187613bcf565b8181036040830152613cc78186613c39565b9050613cd66060830185613065565b613ce36080830184612fb9565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613d2482612ea1565b9150613d2f83612ea1565b925082613d3f57613d3e613ced565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613d7e601b83612e11565b9150613d8982613d4a565b602082019050919050565b5f6020820190508181035f830152613dab81613d72565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613e0c602183612e11565b9150613e1782613db2565b604082019050919050565b5f6020820190508181035f830152613e3981613e00565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209ae81c352a0edd432929d073a5bb10d000e838902d7b1787dbc287d155eca56964736f6c63430008160033

Deployed Bytecode Sourcemap

7868:13704:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16579:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10387:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11319:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9230:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10667:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21202:122;;;;;;;;;;;;;:::i;:::-;;11521:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9532:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10575:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9278:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16757:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20804:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16342:228;;;;;;;;;;;;;:::i;:::-;;10771:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5341:148;;;;;;;;;;;;;:::i;:::-;;20945:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9422:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8971:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5125:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15994:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9476:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10479:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20612:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20266:293;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10918:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8927:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16104:229;;;;;;;;;;;;;:::i;:::-;;21333:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11126:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21075:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5498:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16579:169;5263:12;:10;:12::i;:::-;5253:22;;:6;;;;;;;;;;:22;;;5245:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16655:9:::1;16650:91;16674:5;:12;16670:1;:16;16650:91;;;16725:4;16708;:14;16713:5;16719:1;16713:8;;;;;;;;:::i;:::-;;;;;;;;16708:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;16688:3;;;;;;;16650:91;;;;16579:169:::0;:::o;10387:83::-;10424:13;10457:5;;;;;;;;;;;;;;;;;10450:12;;10387:83;:::o;11319:193::-;11421:4;11443:39;11452:12;:10;:12::i;:::-;11466:7;11475:6;11443:8;:39::i;:::-;11500:4;11493:11;;11319:193;;;;:::o;9230:41::-;;;;;;;;;;;;;:::o;10667:95::-;10720:7;8094:1;8443:2;:13;;;;:::i;:::-;8421:19;:35;;;;:::i;:::-;10740:14;;10667:95;:::o;21202:122::-;5263:12;:10;:12::i;:::-;5253:22;;:6;;;;;;;;;;:22;;;5245:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8094:1:::1;8443:2;:13;;;;:::i;:::-;8421:19;:35;;;;:::i;:::-;21259:14;:24;;;;8094:1;8443:2;:13;;;;:::i;:::-;8421:19;:35;;;;:::i;:::-;21294:12;:22;;;;21202:122::o:0;11521:446::-;11653:4;11670:36;11680:6;11688:9;11699:6;11670:9;:36::i;:::-;11717:220;11740:6;11761:12;:10;:12::i;:::-;11788:138;11844:6;11788:138;;;;;;;;;;;;;;;;;:11;:19;11800:6;11788:19;;;;;;;;;;;;;;;:33;11808:12;:10;:12::i;:::-;11788:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;11717:8;:220::i;:::-;11955:4;11948:11;;11521:446;;;;;:::o;9532:55::-;;;;:::o;10575:83::-;10616:5;8094:1;10634:16;;10575:83;:::o;9278:28::-;;;;;;;;;;;;;:::o;16757:92::-;5263:12;:10;:12::i;:::-;5253:22;;:6;;;;;;;;;;:22;;;5245:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16836:5:::1;16821:4;:12;16826:6;16821:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;16757:92:::0;:::o;20804:101::-;5263:12;:10;:12::i;:::-;5253:22;;:6;;;;;;;;;;:22;;;5245:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20885:12:::1;20871:11;;:26;;;;;;;;;;;;;;;;;;20804:101:::0;:::o;16342:228::-;16408:12;;;;;;;;;;;16392:28;;:12;:10;:12::i;:::-;:28;;;:65;;;;16440:17;;;;;;;;;;;16424:33;;:12;:10;:12::i;:::-;:33;;;16392:65;16384:74;;;;;;16469:26;16498:21;16469:50;;16530:32;16543:18;16530:12;:32::i;:::-;16373:197;16342:228::o;10771:138::-;10837:7;10864:37;10884:7;:16;10892:7;10884:16;;;;;;;;;;;;;;;;10864:19;:37::i;:::-;10857:44;;10771:138;;;:::o;5341:148::-;5263:12;:10;:12::i;:::-;5253:22;;:6;;;;;;;;;;:22;;;5245:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5448:1:::1;5411:40;;5432:6;::::0;::::1;;;;;;;;5411:40;;;;;;;;;;;;5479:1;5462:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5341:148::o:0;20945:121::-;5263:12;:10;:12::i;:::-;5253:22;;:6;;;;;;;;;;:22;;;5245:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21037:11:::1;21022:12;:26;;;;20945:121:::0;:::o;9422:47::-;;;;:::o;8971:43::-;;;;;;;;;;;;;;;;;:::o;5125:79::-;5163:7;5190:6;;;;;;;;;;;5183:13;;5125:79;:::o;15994:101::-;5263:12;:10;:12::i;:::-;5253:22;;:6;;;;;;;;;;:22;;;5245:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16075:12:::1;16061:11;;:26;;;;;;;;;;;;;;;;;;15994:101:::0;:::o;9476:49::-;;;;:::o;10479:87::-;10518:13;10551:7;;;;;;;;;;;;;;;;;10544:14;;10479:87;:::o;20612:139::-;5263:12;:10;:12::i;:::-;5253:22;;:6;;;;;;;;;;:22;;;5245:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20725:18:::1;20703:19;:40;;;;20612:139:::0;:::o;20266:293::-;5263:12;:10;:12::i;:::-;5253:22;;:6;;;;;;;;;;:22;;;5245:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20417:13:::1;20400:14;:30;;;;20459:14;20441:15;:32;;;;20499:11;20484:12;:26;;;;20537:12;20521:13;:28;;;;20266:293:::0;;;;:::o;10918:199::-;11023:4;11045:42;11055:12;:10;:12::i;:::-;11069:9;11080:6;11045:9;:42::i;:::-;11105:4;11098:11;;10918:199;;;;:::o;8927:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;16104:229::-;16170:12;;;;;;;;;;;16154:28;;:12;:10;:12::i;:::-;:28;;;:65;;;;16202:17;;;;;;;;;;;16186:33;;:12;:10;:12::i;:::-;:33;;;16154:65;16146:74;;;;;;16231:23;16257:24;16275:4;16257:9;:24::i;:::-;16231:50;;16292:33;16309:15;16292:16;:33::i;:::-;16135:198;16104:229::o;21333:234::-;5263:12;:10;:12::i;:::-;5253:22;;:6;;;;;;;;;;:22;;;5245:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21450:9:::1;21446:114;21469:8;;:15;;21465:1;:19;21446:114;;;21540:8;21506:18;:31;21525:8;;21534:1;21525:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;21506:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;21486:3;;;;;;;21446:114;;;;21333:234:::0;;;:::o;11126:184::-;11243:7;11275:11;:18;11287:5;11275:18;;;;;;;;;;;;;;;:27;11294:7;11275:27;;;;;;;;;;;;;;;;11268:34;;11126:184;;;;:::o;21075:115::-;5263:12;:10;:12::i;:::-;5253:22;;:6;;;;;;;;;;:22;;;5245:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21169:13:::1;21152:14;:30;;;;21075:115:::0;:::o;5498:244::-;5263:12;:10;:12::i;:::-;5253:22;;:6;;;;;;;;;;:22;;;5245:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5607:1:::1;5587:22;;:8;:22;;::::0;5579:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;5697:8;5668:38;;5689:6;::::0;::::1;;;;;;;;5668:38;;;;;;;;;;;;5726:8;5717:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5498:244:::0;:::o;3874:98::-;3927:7;3954:10;3947:17;;3874:98;:::o;12664:369::-;12808:1;12791:19;;:5;:19;;;12783:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12889:1;12870:21;;:7;:21;;;12862:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12971:6;12941:11;:18;12953:5;12941:18;;;;;;;;;;;;;;;:27;12960:7;12941:27;;;;;;;;;;;;;;;:36;;;;13009:7;12993:32;;13002:5;12993:32;;;13018:6;12993:32;;;;;;:::i;:::-;;;;;;;;12664:369;;;:::o;13042:2343::-;13180:1;13164:18;;:4;:18;;;13156:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13257:1;13243:16;;:2;:16;;;13235:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13327:1;13318:6;:10;13310:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13400:7;:5;:7::i;:::-;13392:15;;:4;:15;;;;:32;;;;;13417:7;:5;:7::i;:::-;13411:13;;:2;:13;;;;13392:32;13388:1265;;;13482:11;;;;;;;;;;;13477:144;;13530:7;:5;:7::i;:::-;13522:15;;:4;:15;;;13514:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;13477:144;13656:12;;13646:6;:22;;13638:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;13725:4;:10;13730:4;13725:10;;;;;;;;;;;;;;;;;;;;;;;;;13724:11;:24;;;;;13740:4;:8;13745:2;13740:8;;;;;;;;;;;;;;;;;;;;;;;;;13739:9;13724:24;13716:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;13815:13;;;;;;;;;;;13809:19;;:2;:19;;;13806:146;;13882:14;;13873:6;13857:13;13867:2;13857:9;:13::i;:::-;:22;;;;:::i;:::-;:39;13849:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;13806:146;13969:28;14000:24;14018:4;14000:9;:24::i;:::-;13969:55;;14039:12;14078:19;;14054:20;:43;;14039:58;;14142:12;;14118:20;:36;14115:124;;14211:12;;14188:35;;14115:124;14260:7;:18;;;;;14272:6;;;;;;;;;;14271:7;14260:18;:43;;;;;14290:13;;;;;;;;;;;14282:21;;:4;:21;;;;14260:43;:58;;;;;14307:11;;;;;;;;;;;14260:58;:87;;;;;14323:18;:24;14342:4;14323:24;;;;;;;;;;;;;;;;;;;;;;;;;14322:25;14260:87;:114;;;;;14352:18;:22;14371:2;14352:22;;;;;;;;;;;;;;;;;;;;;;;;;14351:23;14260:114;14256:386;;;14395:38;14412:20;14395:16;:38::i;:::-;14452:26;14481:21;14452:50;;14546:1;14525:18;:22;14521:106;;;14572:35;14585:21;14572:12;:35::i;:::-;14521:106;14376:266;14256:386;13426:1227;;13388:1265;14666:12;14681:4;14666:19;;14731:18;:24;14750:4;14731:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;14759:18;:22;14778:2;14759:22;;;;;;;;;;;;;;;;;;;;;;;;;14731:50;14730:102;;;;14795:13;;;;;;;;;;;14787:21;;:4;:21;;;;:44;;;;;14818:13;;;;;;;;;;;14812:19;;:2;:19;;;;14787:44;14730:102;14726:597;;;14859:5;14849:15;;14726:597;;;14943:13;;;;;;;;;;;14935:21;;:4;:21;;;:55;;;;;14974:15;;;;;;;;;;;14960:30;;:2;:30;;;;14935:55;14932:162;;;15023:14;;15011:9;:26;;;;15066:12;;15056:7;:22;;;;14932:162;15154:13;;;;;;;;;;;15148:19;;:2;:19;;;:55;;;;;15187:15;;;;;;;;;;;15171:32;;:4;:32;;;;15148:55;15144:165;;;15236:15;;15224:9;:27;;;;15280:13;;15270:7;:23;;;;15144:165;14726:597;15336:41;15351:4;15357:2;15361:6;15369:7;15336:14;:41::i;:::-;13145:2240;13042:2343;;;:::o;6110:224::-;6230:7;6263:1;6258;:6;;6266:12;6250:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;6290:9;6306:1;6302;:5;;;;:::i;:::-;6290:17;;6325:1;6318:8;;;6110:224;;;;;:::o;15886:99::-;15943:17;;;;;;;;;;;:26;;:34;15970:6;15943:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15886:99;:::o;11976:323::-;12071:7;12129;;12118;:18;;12096:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;12217:19;12239:10;:8;:10::i;:::-;12217:32;;12267:24;12279:11;12267:7;:11;;:24;;;;:::i;:::-;12260:31;;;11976:323;;;:::o;15394:483::-;9691:4;9682:6;;:13;;;;;;;;;;;;;;;;;;15472:21:::1;15510:1;15496:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15472:40;;15541:4;15523;15528:1;15523:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;15567:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15557:4;15562:1;15557:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;15600:62;15617:4;15632:15;;;;;;;;;;;15650:11;15600:8;:62::i;:::-;15673:15;;;;;;;;;;;:66;;;15754:11;15780:1;15796:4;15823;15843:15;15673:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15461:416;9727:5:::0;9718:6;;:14;;;;;;;;;;;;;;;;;;15394:483;:::o;16858:282::-;17014:7;17009:28;;17023:14;:12;:14::i;:::-;17009:28;17048:44;17066:6;17074:9;17085:6;17048:17;:44::i;:::-;17108:7;17103:29;;17117:15;:13;:15::i;:::-;17103:29;16858:282;;;;:::o;19827:164::-;19869:7;19890:15;19907;19926:19;:17;:19::i;:::-;19889:56;;;;19963:20;19975:7;19963;:11;;:20;;;;:::i;:::-;19956:27;;;;19827:164;:::o;6598:132::-;6656:7;6683:39;6687:1;6690;6683:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;6676:46;;6598:132;;;;:::o;12308:221::-;12368:1;12355:9;;:14;:30;;;;;12384:1;12373:7;;:12;12355:30;12387:7;12351:43;12427:9;;12407:17;:29;;;;12465:7;;12447:15;:25;;;;12498:1;12486:9;:13;;;;12520:1;12510:7;:11;;;;12308:221;:::o;17149:610::-;17296:15;17326:23;17364:12;17391:23;17429:12;17456:13;17483:19;17494:7;17483:10;:19::i;:::-;17281:221;;;;;;;;;;;;17531:28;17551:7;17531;:15;17539:6;17531:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;17513:7;:15;17521:6;17513:15;;;;;;;;;;;;;;;:46;;;;17591:39;17614:15;17591:7;:18;17599:9;17591:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;17570:7;:18;17578:9;17570:18;;;;;;;;;;;;;;;:60;;;;17641:16;17651:5;17641:9;:16::i;:::-;17668:23;17680:4;17686;17668:11;:23::i;:::-;17724:9;17707:44;;17716:6;17707:44;;;17735:15;17707:44;;;;;;:::i;:::-;;;;;;;;17270:489;;;;;;17149:610;;;:::o;12538:117::-;12594:17;;12582:9;:29;;;;12632:15;;12622:7;:25;;;;12538:117::o;20000:257::-;20051:7;20060;20080:15;20098:7;;20080:25;;20116:15;8094:1;8443:2;:13;;;;:::i;:::-;8421:19;:35;;;;:::i;:::-;20116:25;;20166:20;8094:1;8443:2;:13;;;;:::i;:::-;8421:19;:35;;;;:::i;:::-;20166:7;;:11;;:20;;;;:::i;:::-;20156:7;:30;20152:61;;;20196:7;;8094:1;8443:2;:13;;;;:::i;:::-;8421:19;:35;;;;:::i;:::-;20188:25;;;;;;;;20152:61;20232:7;20241;20224:25;;;;;;20000:257;;;:::o;6739:223::-;6859:7;6891:1;6887;:5;6894:12;6879:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;6918:9;6934:1;6930;:5;;;;:::i;:::-;6918:17;;6953:1;6946:8;;;6739:223;;;;;:::o;18182:615::-;18282:7;18304;18326;18348;18370;18392;18428:23;18453:12;18467:13;18497:40;18509:7;18518:9;;18529:7;;18497:11;:40::i;:::-;18427:110;;;;;;18548:19;18570:10;:8;:10::i;:::-;18548:32;;18592:15;18609:23;18634:12;18663:46;18675:7;18684:4;18690:5;18697:11;18663;:46::i;:::-;18591:118;;;;;;18728:7;18737:15;18754:4;18760:15;18777:4;18783:5;18720:69;;;;;;;;;;;;;;;;;;;18182:615;;;;;;;:::o;5965:136::-;6023:7;6050:43;6054:1;6057;6050:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;6043:50;;5965:136;;;;:::o;5777:179::-;5835:7;5855:9;5871:1;5867;:5;;;;:::i;:::-;5855:17;;5896:1;5891;:6;;5883:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;5947:1;5940:8;;;5777:179;;;;:::o;17768:211::-;17821:19;17843:10;:8;:10::i;:::-;17821:32;;17864:13;17880:22;17890:11;17880:5;:9;;:22;;;;:::i;:::-;17864:38;;17938:33;17965:5;17938:7;:22;17954:4;17938:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;17913:7;:22;17929:4;17913:22;;;;;;;;;;;;;;;:58;;;;17810:169;;17768:211;:::o;17988:147::-;18066:17;18078:4;18066:7;;:11;;:17;;;;:::i;:::-;18056:7;:27;;;;18107:20;18122:4;18107:10;;:14;;:20;;;;:::i;:::-;18094:10;:33;;;;17988:147;;:::o;18806:469::-;18975:7;18997;19019;19054:12;19069:30;19095:3;19069:21;19081:8;19069:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;19054:45;;19110:13;19126:28;19150:3;19126:19;19138:6;19126:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;19110:44;;19165:23;19191:28;19213:5;19191:17;19203:4;19191:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;19165:54;;19238:15;19255:4;19261:5;19230:37;;;;;;;;;18806:469;;;;;;;:::o;19284:534::-;19478:7;19500;19522;19557:15;19575:24;19587:11;19575:7;:11;;:24;;;;:::i;:::-;19557:42;;19610:12;19625:21;19634:11;19625:4;:8;;:21;;;;:::i;:::-;19610:36;;19657:13;19673:22;19683:11;19673:5;:9;;:22;;;;:::i;:::-;19657:38;;19706:23;19732:28;19754:5;19732:17;19744:4;19732:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;19706:54;;19779:7;19788:15;19805:4;19771:39;;;;;;;;;;19284:534;;;;;;;;:::o;6343:246::-;6401:7;6430:1;6425;:6;6421:47;;6455:1;6448:8;;;;6421:47;6478:9;6494:1;6490;:5;;;;:::i;:::-;6478:17;;6523:1;6518;6514;:5;;;;:::i;:::-;:10;6506:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;6580:1;6573:8;;;6343:246;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:246::-;4152:1;4162:113;4176:6;4173:1;4170:13;4162:113;;;4261:1;4256:3;4252:11;4246:18;4242:1;4237:3;4233:11;4226:39;4198:2;4195:1;4191:10;4186:15;;4162:113;;;4309:1;4300:6;4295:3;4291:16;4284:27;4133:184;4071:246;;;:::o;4323:377::-;4411:3;4439:39;4472:5;4439:39;:::i;:::-;4494:71;4558:6;4553:3;4494:71;:::i;:::-;4487:78;;4574:65;4632:6;4627:3;4620:4;4613:5;4609:16;4574:65;:::i;:::-;4664:29;4686:6;4664:29;:::i;:::-;4659:3;4655:39;4648:46;;4415:285;4323:377;;;;:::o;4706:313::-;4819:4;4857:2;4846:9;4842:18;4834:26;;4906:9;4900:4;4896:20;4892:1;4881:9;4877:17;4870:47;4934:78;5007:4;4998:6;4934:78;:::i;:::-;4926:86;;4706:313;;;;:::o;5025:77::-;5062:7;5091:5;5080:16;;5025:77;;;:::o;5108:122::-;5181:24;5199:5;5181:24;:::i;:::-;5174:5;5171:35;5161:63;;5220:1;5217;5210:12;5161:63;5108:122;:::o;5236:139::-;5282:5;5320:6;5307:20;5298:29;;5336:33;5363:5;5336:33;:::i;:::-;5236:139;;;;:::o;5381:474::-;5449:6;5457;5506:2;5494:9;5485:7;5481:23;5477:32;5474:119;;;5512:79;;:::i;:::-;5474:119;5632:1;5657:53;5702:7;5693:6;5682:9;5678:22;5657:53;:::i;:::-;5647:63;;5603:117;5759:2;5785:53;5830:7;5821:6;5810:9;5806:22;5785:53;:::i;:::-;5775:63;;5730:118;5381:474;;;;;:::o;5861:90::-;5895:7;5938:5;5931:13;5924:21;5913:32;;5861:90;;;:::o;5957:109::-;6038:21;6053:5;6038:21;:::i;:::-;6033:3;6026:34;5957:109;;:::o;6072:210::-;6159:4;6197:2;6186:9;6182:18;6174:26;;6210:65;6272:1;6261:9;6257:17;6248:6;6210:65;:::i;:::-;6072:210;;;;:::o;6288:60::-;6316:3;6337:5;6330:12;;6288:60;;;:::o;6354:142::-;6404:9;6437:53;6455:34;6464:24;6482:5;6464:24;:::i;:::-;6455:34;:::i;:::-;6437:53;:::i;:::-;6424:66;;6354:142;;;:::o;6502:126::-;6552:9;6585:37;6616:5;6585:37;:::i;:::-;6572:50;;6502:126;;;:::o;6634:152::-;6710:9;6743:37;6774:5;6743:37;:::i;:::-;6730:50;;6634:152;;;:::o;6792:183::-;6905:63;6962:5;6905:63;:::i;:::-;6900:3;6893:76;6792:183;;:::o;6981:274::-;7100:4;7138:2;7127:9;7123:18;7115:26;;7151:97;7245:1;7234:9;7230:17;7221:6;7151:97;:::i;:::-;6981:274;;;;:::o;7261:118::-;7348:24;7366:5;7348:24;:::i;:::-;7343:3;7336:37;7261:118;;:::o;7385:222::-;7478:4;7516:2;7505:9;7501:18;7493:26;;7529:71;7597:1;7586:9;7582:17;7573:6;7529:71;:::i;:::-;7385:222;;;;:::o;7613:619::-;7690:6;7698;7706;7755:2;7743:9;7734:7;7730:23;7726:32;7723:119;;;7761:79;;:::i;:::-;7723:119;7881:1;7906:53;7951:7;7942:6;7931:9;7927:22;7906:53;:::i;:::-;7896:63;;7852:117;8008:2;8034:53;8079:7;8070:6;8059:9;8055:22;8034:53;:::i;:::-;8024:63;;7979:118;8136:2;8162:53;8207:7;8198:6;8187:9;8183:22;8162:53;:::i;:::-;8152:63;;8107:118;7613:619;;;;;:::o;8238:86::-;8273:7;8313:4;8306:5;8302:16;8291:27;;8238:86;;;:::o;8330:112::-;8413:22;8429:5;8413:22;:::i;:::-;8408:3;8401:35;8330:112;;:::o;8448:214::-;8537:4;8575:2;8564:9;8560:18;8552:26;;8588:67;8652:1;8641:9;8637:17;8628:6;8588:67;:::i;:::-;8448:214;;;;:::o;8668:118::-;8755:24;8773:5;8755:24;:::i;:::-;8750:3;8743:37;8668:118;;:::o;8792:222::-;8885:4;8923:2;8912:9;8908:18;8900:26;;8936:71;9004:1;8993:9;8989:17;8980:6;8936:71;:::i;:::-;8792:222;;;;:::o;9020:329::-;9079:6;9128:2;9116:9;9107:7;9103:23;9099:32;9096:119;;;9134:79;;:::i;:::-;9096:119;9254:1;9279:53;9324:7;9315:6;9304:9;9300:22;9279:53;:::i;:::-;9269:63;;9225:117;9020:329;;;;:::o;9355:116::-;9425:21;9440:5;9425:21;:::i;:::-;9418:5;9415:32;9405:60;;9461:1;9458;9451:12;9405:60;9355:116;:::o;9477:133::-;9520:5;9558:6;9545:20;9536:29;;9574:30;9598:5;9574:30;:::i;:::-;9477:133;;;;:::o;9616:323::-;9672:6;9721:2;9709:9;9700:7;9696:23;9692:32;9689:119;;;9727:79;;:::i;:::-;9689:119;9847:1;9872:50;9914:7;9905:6;9894:9;9890:22;9872:50;:::i;:::-;9862:60;;9818:114;9616:323;;;;:::o;9945:329::-;10004:6;10053:2;10041:9;10032:7;10028:23;10024:32;10021:119;;;10059:79;;:::i;:::-;10021:119;10179:1;10204:53;10249:7;10240:6;10229:9;10225:22;10204:53;:::i;:::-;10194:63;;10150:117;9945:329;;;;:::o;10280:765::-;10366:6;10374;10382;10390;10439:3;10427:9;10418:7;10414:23;10410:33;10407:120;;;10446:79;;:::i;:::-;10407:120;10566:1;10591:53;10636:7;10627:6;10616:9;10612:22;10591:53;:::i;:::-;10581:63;;10537:117;10693:2;10719:53;10764:7;10755:6;10744:9;10740:22;10719:53;:::i;:::-;10709:63;;10664:118;10821:2;10847:53;10892:7;10883:6;10872:9;10868:22;10847:53;:::i;:::-;10837:63;;10792:118;10949:2;10975:53;11020:7;11011:6;11000:9;10996:22;10975:53;:::i;:::-;10965:63;;10920:118;10280:765;;;;;;;:::o;11051:117::-;11160:1;11157;11150:12;11191:568;11264:8;11274:6;11324:3;11317:4;11309:6;11305:17;11301:27;11291:122;;11332:79;;:::i;:::-;11291:122;11445:6;11432:20;11422:30;;11475:18;11467:6;11464:30;11461:117;;;11497:79;;:::i;:::-;11461:117;11611:4;11603:6;11599:17;11587:29;;11665:3;11657:4;11649:6;11645:17;11635:8;11631:32;11628:41;11625:128;;;11672:79;;:::i;:::-;11625:128;11191:568;;;;;:::o;11765:698::-;11857:6;11865;11873;11922:2;11910:9;11901:7;11897:23;11893:32;11890:119;;;11928:79;;:::i;:::-;11890:119;12076:1;12065:9;12061:17;12048:31;12106:18;12098:6;12095:30;12092:117;;;12128:79;;:::i;:::-;12092:117;12241:80;12313:7;12304:6;12293:9;12289:22;12241:80;:::i;:::-;12223:98;;;;12019:312;12370:2;12396:50;12438:7;12429:6;12418:9;12414:22;12396:50;:::i;:::-;12386:60;;12341:115;11765:698;;;;;:::o;12469:474::-;12537:6;12545;12594:2;12582:9;12573:7;12569:23;12565:32;12562:119;;;12600:79;;:::i;:::-;12562:119;12720:1;12745:53;12790:7;12781:6;12770:9;12766:22;12745:53;:::i;:::-;12735:63;;12691:117;12847:2;12873:53;12918:7;12909:6;12898:9;12894:22;12873:53;:::i;:::-;12863:63;;12818:118;12469:474;;;;;:::o;12949:182::-;13089:34;13085:1;13077:6;13073:14;13066:58;12949:182;:::o;13137:366::-;13279:3;13300:67;13364:2;13359:3;13300:67;:::i;:::-;13293:74;;13376:93;13465:3;13376:93;:::i;:::-;13494:2;13489:3;13485:12;13478:19;;13137:366;;;:::o;13509:419::-;13675:4;13713:2;13702:9;13698:18;13690:26;;13762:9;13756:4;13752:20;13748:1;13737:9;13733:17;13726:47;13790:131;13916:4;13790:131;:::i;:::-;13782:139;;13509:419;;;:::o;13934:180::-;13982:77;13979:1;13972:88;14079:4;14076:1;14069:15;14103:4;14100:1;14093:15;14120:180;14168:77;14165:1;14158:88;14265:4;14262:1;14255:15;14289:4;14286:1;14279:15;14306:102;14348:8;14395:5;14392:1;14388:13;14367:34;;14306:102;;;:::o;14414:848::-;14475:5;14482:4;14506:6;14497:15;;14530:5;14521:14;;14544:712;14565:1;14555:8;14552:15;14544:712;;;14660:4;14655:3;14651:14;14645:4;14642:24;14639:50;;;14669:18;;:::i;:::-;14639:50;14719:1;14709:8;14705:16;14702:451;;;15134:4;15127:5;15123:16;15114:25;;14702:451;15184:4;15178;15174:15;15166:23;;15214:32;15237:8;15214:32;:::i;:::-;15202:44;;14544:712;;;14414:848;;;;;;;:::o;15268:1073::-;15322:5;15513:8;15503:40;;15534:1;15525:10;;15536:5;;15503:40;15562:4;15552:36;;15579:1;15570:10;;15581:5;;15552:36;15648:4;15696:1;15691:27;;;;15732:1;15727:191;;;;15641:277;;15691:27;15709:1;15700:10;;15711:5;;;15727:191;15772:3;15762:8;15759:17;15756:43;;;15779:18;;:::i;:::-;15756:43;15828:8;15825:1;15821:16;15812:25;;15863:3;15856:5;15853:14;15850:40;;;15870:18;;:::i;:::-;15850:40;15903:5;;;15641:277;;16027:2;16017:8;16014:16;16008:3;16002:4;15999:13;15995:36;15977:2;15967:8;15964:16;15959:2;15953:4;15950:12;15946:35;15930:111;15927:246;;;16083:8;16077:4;16073:19;16064:28;;16118:3;16111:5;16108:14;16105:40;;;16125:18;;:::i;:::-;16105:40;16158:5;;15927:246;16198:42;16236:3;16226:8;16220:4;16217:1;16198:42;:::i;:::-;16183:57;;;;16272:4;16267:3;16263:14;16256:5;16253:25;16250:51;;;16281:18;;:::i;:::-;16250:51;16330:4;16323:5;16319:16;16310:25;;15268:1073;;;;;;:::o;16347:281::-;16405:5;16429:23;16447:4;16429:23;:::i;:::-;16421:31;;16473:25;16489:8;16473:25;:::i;:::-;16461:37;;16517:104;16554:66;16544:8;16538:4;16517:104;:::i;:::-;16508:113;;16347:281;;;;:::o;16634:410::-;16674:7;16697:20;16715:1;16697:20;:::i;:::-;16692:25;;16731:20;16749:1;16731:20;:::i;:::-;16726:25;;16786:1;16783;16779:9;16808:30;16826:11;16808:30;:::i;:::-;16797:41;;16987:1;16978:7;16974:15;16971:1;16968:22;16948:1;16941:9;16921:83;16898:139;;17017:18;;:::i;:::-;16898:139;16682:362;16634:410;;;;:::o;17050:225::-;17190:34;17186:1;17178:6;17174:14;17167:58;17259:8;17254:2;17246:6;17242:15;17235:33;17050:225;:::o;17281:366::-;17423:3;17444:67;17508:2;17503:3;17444:67;:::i;:::-;17437:74;;17520:93;17609:3;17520:93;:::i;:::-;17638:2;17633:3;17629:12;17622:19;;17281:366;;;:::o;17653:419::-;17819:4;17857:2;17846:9;17842:18;17834:26;;17906:9;17900:4;17896:20;17892:1;17881:9;17877:17;17870:47;17934:131;18060:4;17934:131;:::i;:::-;17926:139;;17653:419;;;:::o;18078:223::-;18218:34;18214:1;18206:6;18202:14;18195:58;18287:6;18282:2;18274:6;18270:15;18263:31;18078:223;:::o;18307:366::-;18449:3;18470:67;18534:2;18529:3;18470:67;:::i;:::-;18463:74;;18546:93;18635:3;18546:93;:::i;:::-;18664:2;18659:3;18655:12;18648:19;;18307:366;;;:::o;18679:419::-;18845:4;18883:2;18872:9;18868:18;18860:26;;18932:9;18926:4;18922:20;18918:1;18907:9;18903:17;18896:47;18960:131;19086:4;18960:131;:::i;:::-;18952:139;;18679:419;;;:::o;19104:221::-;19244:34;19240:1;19232:6;19228:14;19221:58;19313:4;19308:2;19300:6;19296:15;19289:29;19104:221;:::o;19331:366::-;19473:3;19494:67;19558:2;19553:3;19494:67;:::i;:::-;19487:74;;19570:93;19659:3;19570:93;:::i;:::-;19688:2;19683:3;19679:12;19672:19;;19331:366;;;:::o;19703:419::-;19869:4;19907:2;19896:9;19892:18;19884:26;;19956:9;19950:4;19946:20;19942:1;19931:9;19927:17;19920:47;19984:131;20110:4;19984:131;:::i;:::-;19976:139;;19703:419;;;:::o;20128:224::-;20268:34;20264:1;20256:6;20252:14;20245:58;20337:7;20332:2;20324:6;20320:15;20313:32;20128:224;:::o;20358:366::-;20500:3;20521:67;20585:2;20580:3;20521:67;:::i;:::-;20514:74;;20597:93;20686:3;20597:93;:::i;:::-;20715:2;20710:3;20706:12;20699:19;;20358:366;;;:::o;20730:419::-;20896:4;20934:2;20923:9;20919:18;20911:26;;20983:9;20977:4;20973:20;20969:1;20958:9;20954:17;20947:47;21011:131;21137:4;21011:131;:::i;:::-;21003:139;;20730:419;;;:::o;21155:222::-;21295:34;21291:1;21283:6;21279:14;21272:58;21364:5;21359:2;21351:6;21347:15;21340:30;21155:222;:::o;21383:366::-;21525:3;21546:67;21610:2;21605:3;21546:67;:::i;:::-;21539:74;;21622:93;21711:3;21622:93;:::i;:::-;21740:2;21735:3;21731:12;21724:19;;21383:366;;;:::o;21755:419::-;21921:4;21959:2;21948:9;21944:18;21936:26;;22008:9;22002:4;21998:20;21994:1;21983:9;21979:17;21972:47;22036:131;22162:4;22036:131;:::i;:::-;22028:139;;21755:419;;;:::o;22180:228::-;22320:34;22316:1;22308:6;22304:14;22297:58;22389:11;22384:2;22376:6;22372:15;22365:36;22180:228;:::o;22414:366::-;22556:3;22577:67;22641:2;22636:3;22577:67;:::i;:::-;22570:74;;22653:93;22742:3;22653:93;:::i;:::-;22771:2;22766:3;22762:12;22755:19;;22414:366;;;:::o;22786:419::-;22952:4;22990:2;22979:9;22975:18;22967:26;;23039:9;23033:4;23029:20;23025:1;23014:9;23010:17;23003:47;23067:131;23193:4;23067:131;:::i;:::-;23059:139;;22786:419;;;:::o;23211:250::-;23351:34;23347:1;23339:6;23335:14;23328:58;23420:33;23415:2;23407:6;23403:15;23396:58;23211:250;:::o;23467:366::-;23609:3;23630:67;23694:2;23689:3;23630:67;:::i;:::-;23623:74;;23706:93;23795:3;23706:93;:::i;:::-;23824:2;23819:3;23815:12;23808:19;;23467:366;;;:::o;23839:419::-;24005:4;24043:2;24032:9;24028:18;24020:26;;24092:9;24086:4;24082:20;24078:1;24067:9;24063:17;24056:47;24120:131;24246:4;24120:131;:::i;:::-;24112:139;;23839:419;;;:::o;24264:178::-;24404:30;24400:1;24392:6;24388:14;24381:54;24264:178;:::o;24448:366::-;24590:3;24611:67;24675:2;24670:3;24611:67;:::i;:::-;24604:74;;24687:93;24776:3;24687:93;:::i;:::-;24805:2;24800:3;24796:12;24789:19;;24448:366;;;:::o;24820:419::-;24986:4;25024:2;25013:9;25009:18;25001:26;;25073:9;25067:4;25063:20;25059:1;25048:9;25044:17;25037:47;25101:131;25227:4;25101:131;:::i;:::-;25093:139;;24820:419;;;:::o;25245:222::-;25385:34;25381:1;25373:6;25369:14;25362:58;25454:5;25449:2;25441:6;25437:15;25430:30;25245:222;:::o;25473:366::-;25615:3;25636:67;25700:2;25695:3;25636:67;:::i;:::-;25629:74;;25712:93;25801:3;25712:93;:::i;:::-;25830:2;25825:3;25821:12;25814:19;;25473:366;;;:::o;25845:419::-;26011:4;26049:2;26038:9;26034:18;26026:26;;26098:9;26092:4;26088:20;26084:1;26073:9;26069:17;26062:47;26126:131;26252:4;26126:131;:::i;:::-;26118:139;;25845:419;;;:::o;26270:191::-;26310:3;26329:20;26347:1;26329:20;:::i;:::-;26324:25;;26363:20;26381:1;26363:20;:::i;:::-;26358:25;;26406:1;26403;26399:9;26392:16;;26427:3;26424:1;26421:10;26418:36;;;26434:18;;:::i;:::-;26418:36;26270:191;;;;:::o;26467:222::-;26607:34;26603:1;26595:6;26591:14;26584:58;26676:5;26671:2;26663:6;26659:15;26652:30;26467:222;:::o;26695:366::-;26837:3;26858:67;26922:2;26917:3;26858:67;:::i;:::-;26851:74;;26934:93;27023:3;26934:93;:::i;:::-;27052:2;27047:3;27043:12;27036:19;;26695:366;;;:::o;27067:419::-;27233:4;27271:2;27260:9;27256:18;27248:26;;27320:9;27314:4;27310:20;27306:1;27295:9;27291:17;27284:47;27348:131;27474:4;27348:131;:::i;:::-;27340:139;;27067:419;;;:::o;27492:194::-;27532:4;27552:20;27570:1;27552:20;:::i;:::-;27547:25;;27586:20;27604:1;27586:20;:::i;:::-;27581:25;;27630:1;27627;27623:9;27615:17;;27654:1;27648:4;27645:11;27642:37;;;27659:18;;:::i;:::-;27642:37;27492:194;;;;:::o;27692:229::-;27832:34;27828:1;27820:6;27816:14;27809:58;27901:12;27896:2;27888:6;27884:15;27877:37;27692:229;:::o;27927:366::-;28069:3;28090:67;28154:2;28149:3;28090:67;:::i;:::-;28083:74;;28166:93;28255:3;28166:93;:::i;:::-;28284:2;28279:3;28275:12;28268:19;;27927:366;;;:::o;28299:419::-;28465:4;28503:2;28492:9;28488:18;28480:26;;28552:9;28546:4;28542:20;28538:1;28527:9;28523:17;28516:47;28580:131;28706:4;28580:131;:::i;:::-;28572:139;;28299:419;;;:::o;28724:143::-;28781:5;28812:6;28806:13;28797:22;;28828:33;28855:5;28828:33;:::i;:::-;28724:143;;;;:::o;28873:351::-;28943:6;28992:2;28980:9;28971:7;28967:23;28963:32;28960:119;;;28998:79;;:::i;:::-;28960:119;29118:1;29143:64;29199:7;29190:6;29179:9;29175:22;29143:64;:::i;:::-;29133:74;;29089:128;28873:351;;;;:::o;29230:85::-;29275:7;29304:5;29293:16;;29230:85;;;:::o;29321:158::-;29379:9;29412:61;29430:42;29439:32;29465:5;29439:32;:::i;:::-;29430:42;:::i;:::-;29412:61;:::i;:::-;29399:74;;29321:158;;;:::o;29485:147::-;29580:45;29619:5;29580:45;:::i;:::-;29575:3;29568:58;29485:147;;:::o;29638:114::-;29705:6;29739:5;29733:12;29723:22;;29638:114;;;:::o;29758:184::-;29857:11;29891:6;29886:3;29879:19;29931:4;29926:3;29922:14;29907:29;;29758:184;;;;:::o;29948:132::-;30015:4;30038:3;30030:11;;30068:4;30063:3;30059:14;30051:22;;29948:132;;;:::o;30086:108::-;30163:24;30181:5;30163:24;:::i;:::-;30158:3;30151:37;30086:108;;:::o;30200:179::-;30269:10;30290:46;30332:3;30324:6;30290:46;:::i;:::-;30368:4;30363:3;30359:14;30345:28;;30200:179;;;;:::o;30385:113::-;30455:4;30487;30482:3;30478:14;30470:22;;30385:113;;;:::o;30534:732::-;30653:3;30682:54;30730:5;30682:54;:::i;:::-;30752:86;30831:6;30826:3;30752:86;:::i;:::-;30745:93;;30862:56;30912:5;30862:56;:::i;:::-;30941:7;30972:1;30957:284;30982:6;30979:1;30976:13;30957:284;;;31058:6;31052:13;31085:63;31144:3;31129:13;31085:63;:::i;:::-;31078:70;;31171:60;31224:6;31171:60;:::i;:::-;31161:70;;31017:224;31004:1;31001;30997:9;30992:14;;30957:284;;;30961:14;31257:3;31250:10;;30658:608;;;30534:732;;;;:::o;31272:831::-;31535:4;31573:3;31562:9;31558:19;31550:27;;31587:71;31655:1;31644:9;31640:17;31631:6;31587:71;:::i;:::-;31668:80;31744:2;31733:9;31729:18;31720:6;31668:80;:::i;:::-;31795:9;31789:4;31785:20;31780:2;31769:9;31765:18;31758:48;31823:108;31926:4;31917:6;31823:108;:::i;:::-;31815:116;;31941:72;32009:2;31998:9;31994:18;31985:6;31941:72;:::i;:::-;32023:73;32091:3;32080:9;32076:19;32067:6;32023:73;:::i;:::-;31272:831;;;;;;;;:::o;32109:180::-;32157:77;32154:1;32147:88;32254:4;32251:1;32244:15;32278:4;32275:1;32268:15;32295:185;32335:1;32352:20;32370:1;32352:20;:::i;:::-;32347:25;;32386:20;32404:1;32386:20;:::i;:::-;32381:25;;32425:1;32415:35;;32430:18;;:::i;:::-;32415:35;32472:1;32469;32465:9;32460:14;;32295:185;;;;:::o;32486:177::-;32626:29;32622:1;32614:6;32610:14;32603:53;32486:177;:::o;32669:366::-;32811:3;32832:67;32896:2;32891:3;32832:67;:::i;:::-;32825:74;;32908:93;32997:3;32908:93;:::i;:::-;33026:2;33021:3;33017:12;33010:19;;32669:366;;;:::o;33041:419::-;33207:4;33245:2;33234:9;33230:18;33222:26;;33294:9;33288:4;33284:20;33280:1;33269:9;33265:17;33258:47;33322:131;33448:4;33322:131;:::i;:::-;33314:139;;33041:419;;;:::o;33466:220::-;33606:34;33602:1;33594:6;33590:14;33583:58;33675:3;33670:2;33662:6;33658:15;33651:28;33466:220;:::o;33692:366::-;33834:3;33855:67;33919:2;33914:3;33855:67;:::i;:::-;33848:74;;33931:93;34020:3;33931:93;:::i;:::-;34049:2;34044:3;34040:12;34033:19;;33692:366;;;:::o;34064:419::-;34230:4;34268:2;34257:9;34253:18;34245:26;;34317:9;34311:4;34307:20;34303:1;34292:9;34288:17;34281:47;34345:131;34471:4;34345:131;:::i;:::-;34337:139;;34064:419;;;:::o

Swarm Source

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