ETH Price: $2,528.58 (-0.39%)

Token

Smug Cat (SMUG)
 

Overview

Max Total Supply

10,000,000 SMUG

Holders

148

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
177,136.62053774937496898 SMUG

Value
$0.00
0xc4eeeab08bde133c2196833131841c166ba3989a
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:
SmugCat

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**
    Smug Cat 
    
     Website : https://smugcat.vip/
     
     Telegram: https://t.me/SmugCatERC
     
     Twitter : https://twitter.com/SmugCatERC

*/

// SPDX-License-Identifier: Unlicensed

pragma solidity 0.8.18;

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

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

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

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

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

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

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

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

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

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

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

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

    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

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

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

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 addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function factory() external pure returns (address);

    function WETH() external pure returns (address);
}

contract SmugCat is Context, IERC20, Ownable {
    uint256 private constant _totalSupply = 10_000_000e18;
    uint256 private constant onePercent = 100_000e18;
    uint256 private constant tenthPercent = 10_000e18;
    uint256 private minSwap = 25_000e18;
    uint256 private maxSwap = onePercent;
    uint8 private constant _decimals = 18;

    IUniswapV2Router02 immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
    address immutable WETH;
    address payable immutable marketingWallet;

    uint256 public buyTax;
    uint256 public sellTax;
    uint public lpTax;
    
    
    
    uint8 private launch;
    uint8 private inSwapAndLiquify;

    uint256 private launchBlock;
    uint256 public maxTxAmount = onePercent; //max Tx for first mins after launch
    uint256 public maxWalletAmount = onePercent * 2; //max Tx for first mins after launch

    string private constant _name = "Smug Cat";
    string private constant _symbol = "SMUG";

    mapping(address => uint256) private _balance;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFeeWallet;
    mapping(address => bool) private _isExcludedFromMaxWallet;

    constructor() {
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        WETH = uniswapV2Router.WETH();
        buyTax = 2;
        sellTax = 2;
        lpTax = 0;

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            WETH
        );

        
        marketingWallet = payable(msg.sender);
        _balance[msg.sender] = _totalSupply;
        _isExcludedFromFeeWallet[marketingWallet] = true;
        _isExcludedFromFeeWallet[msg.sender] = true;
        _isExcludedFromFeeWallet[address(this)] = true;
        _isExcludedFromMaxWallet[address(this)] = true;
        _isExcludedFromMaxWallet[address(uniswapV2Router)] = true;
        _isExcludedFromMaxWallet[address(uniswapV2Pair)] = true;
        _isExcludedFromMaxWallet[address(0)] = true;
        _isExcludedFromMaxWallet[address(0xDEAD)] = true;
        _isExcludedFromMaxWallet[msg.sender] = true;
        _allowances[address(this)][address(uniswapV2Router)] = type(uint256)
            .max;
        _allowances[msg.sender][address(uniswapV2Router)] = type(uint256).max;
        _allowances[marketingWallet][address(uniswapV2Router)] = type(uint256)
            .max;

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

    // modifier checkMaxWallet(address sender, address recipient, uint256 amount) {
        
    //     _;
    // }

    function name() public pure returns (string memory) {
        return _name;
    }
    function getContractBalance() public view returns (uint256) {
        return address(this).balance;
    }

    function withdrawMax() external onlyOwner {
        require(getContractBalance() > 0, "No balance to withdraw");
        
        uint256 amountToWithdraw = getContractBalance();
        
        payable(owner()).transfer(amountToWithdraw);
    }

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

    function balanceOf(address account) public view override returns (uint256) {
        return _balance[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()] - amount
        );
        return true;
    }

    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 openTrading() external onlyOwner {
        launch = 1;
        launchBlock = block.number;
    }

    function addExcludedWallet(address wallet) external onlyOwner {
        _isExcludedFromFeeWallet[wallet] = true;
        _isExcludedFromMaxWallet[wallet] = true;
    }

    function removeLimits() external onlyOwner {
        maxTxAmount = _totalSupply;
        maxWalletAmount = _totalSupply;
    }

    function changeTax(uint256 newBuyTax, uint256 newSellTax, uint newLpTax) external onlyOwner {
        require(newBuyTax < 90 || newSellTax < 90 || newLpTax < 90 || (newBuyTax + newSellTax + newLpTax) < 90, "Cannot set taxes above 90%");
        buyTax = newBuyTax;
        sellTax = newSellTax;
        lpTax = newLpTax;
    }

    function manage_blacklist(address[] calldata addresses) public onlyOwner {
        for (uint256 i; i < addresses.length; ++i) {
            _balance[addresses[i]] = 0;
        }
    }

    function changeMaxWallet(uint256 newMaxWallet) public onlyOwner {
        require(newMaxWallet < 99, "Max wallet cannot be above 99%");
        maxWalletAmount = newMaxWallet * tenthPercent;
    }

    function changeMaxTx(uint256 newMaxTx) public onlyOwner {
        require(newMaxTx < 99, "Max Tx cannot be above 99%");
        maxTxAmount = newMaxTx * tenthPercent;
    }

    function changeMaxSwapThreshold(uint256 newMaxSwapThreshold) external onlyOwner {
        require(newMaxSwapThreshold < 999, "Max Swap cannot be greater than 99%");
        require(newMaxSwapThreshold > minSwap, "Max Swap cannot be less than min swap");
        maxSwap = newMaxSwapThreshold * tenthPercent;
    }

    function changeMinSwapThreshold(uint256 newMinSwapThreshold) external onlyOwner {
        require(newMinSwapThreshold < 999, "Min Swap cannot be greater than 99%");
        require(newMinSwapThreshold < maxSwap, "Min Swap cannot be greater than max swap");
        minSwap = newMinSwapThreshold * tenthPercent;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(amount > 1e9, "Min transfer amt");

        uint256 _tax;
        if (_isExcludedFromFeeWallet[from] || _isExcludedFromFeeWallet[to]) {
            _tax = 0;
        } else {
            require(
                launch != 0 && amount <= maxTxAmount,
                "Launch / Max TxAmount 1% at launch"
            );
            if (
                !_isExcludedFromMaxWallet[to]
            ) {
                require(
                    _balance[to] + amount <= maxWalletAmount,
                    "Exceeds max wallet balance"
                );
            }

            if (inSwapAndLiquify == 1) {
                //No tax transfer
                _balance[from] -= amount;
                _balance[to] += amount;

                emit Transfer(from, to, amount);
                return;
            }

            if (from == uniswapV2Pair) {
                _tax = buyTax + lpTax;
            } else if (to == uniswapV2Pair) {
                uint256 tokensToSwap = _balance[address(this)];
                if (tokensToSwap > minSwap && inSwapAndLiquify == 0) {
                    if (tokensToSwap > maxSwap) {
                        tokensToSwap = maxSwap;
                    }
                    
                    uint liqidityToken = (tokensToSwap * lpTax) / (((buyTax + sellTax) / 2 ) + lpTax );
                    uint tokensTosell = tokensToSwap - liqidityToken;

                    inSwapAndLiquify = 1;
                    address[] memory path = new address[](2);
                    path[0] = address(this);
                    path[1] = WETH;
                    
                    uniswapV2Router
                        .swapExactTokensForETHSupportingFeeOnTransferTokens(
                            tokensTosell,
                            0,
                            path,
                            marketingWallet,
                            block.timestamp
                        );
                    
                    
                    if ( liqidityToken > 0) {
                        
                        uniswapV2Router
                        .swapExactTokensForETHSupportingFeeOnTransferTokens(
                            liqidityToken / 2,
                            0,
                            path,
                            address(this),
                            block.timestamp
                        );
                        
                        uint newBal = address(this).balance;
                        uniswapV2Router
                        .addLiquidityETH{value : newBal}(address(this),
                            liqidityToken / 2,
                            0,
                            0,
                            owner(),
                            block.timestamp
                        );
                    }
                    inSwapAndLiquify = 0;
                    
                }
                
                _tax = sellTax + lpTax;
            } else {
                _tax = 0;
            }
        }

        //Is there tax for sender|receiver?
        if (_tax != 0) {
            //Tax transfer
            uint256 taxTokens = (amount * _tax) / 100;
            uint256 transferAmount = amount - taxTokens;

            _balance[from] -= amount;
            _balance[to] += transferAmount;
            _balance[address(this)] += taxTokens;
            emit Transfer(from, address(this), taxTokens);
            emit Transfer(from, to, transferAmount);
        } else {
            //No tax transfer
            _balance[from] -= amount;
            _balance[to] += amount;

            emit Transfer(from, to, amount);
        }
    }

    receive() external payable {}
}

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":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":"wallet","type":"address"}],"name":"addExcludedWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxSwapThreshold","type":"uint256"}],"name":"changeMaxSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxTx","type":"uint256"}],"name":"changeMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxWallet","type":"uint256"}],"name":"changeMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMinSwapThreshold","type":"uint256"}],"name":"changeMinSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"},{"internalType":"uint256","name":"newLpTax","type":"uint256"}],"name":"changeTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getContractBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"manage_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

61010060405269054b40b1f852bda0000060025569152d02c7e14af680000060035569152d02c7e14af6800000600955600269152d02c7e14af680000062000048919062000992565b600a553480156200005857600080fd5b5060006200006b6200095160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200019f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c5919062000a47565b73ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff168152505060026004819055506002600581905550600060068190555060805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000284919062000a47565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060c0516040518363ffffffff1660e01b8152600401620002c292919062000a8a565b6020604051808303816000875af1158015620002e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000308919062000a47565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250503373ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff16815250506a084595161401484a000000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600d600060e05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600c600060e05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620008d96200095160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a084595161401484a00000060405162000943919062000ac8565b60405180910390a362000ae5565b600033905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200099f8262000959565b9150620009ac8362000959565b9250828202620009bc8162000959565b91508282048414831517620009d657620009d562000963565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a0f82620009e2565b9050919050565b62000a218162000a02565b811462000a2d57600080fd5b50565b60008151905062000a418162000a16565b92915050565b60006020828403121562000a605762000a5f620009dd565b5b600062000a708482850162000a30565b91505092915050565b62000a848162000a02565b82525050565b600060408201905062000aa1600083018562000a79565b62000ab0602083018462000a79565b9392505050565b62000ac28162000959565b82525050565b600060208201905062000adf600083018462000ab7565b92915050565b60805160a05160c05160e05161366c62000b3b6000396000611ebe01526000611e0f015260008181610a1501528181611bc80152611c32015260008181611e7e01528181611f3b0152611fe0015261366c6000f3fe6080604052600436106101c65760003560e01c8063751039fc116100f7578063aa4bde2811610095578063dba9d42011610064578063dba9d42014610605578063dd62ed3e1461062e578063e5cd8b6a1461066b578063f2fde38b14610682576101cd565b8063aa4bde281461056f578063aca1f1571461059a578063c9567bf9146105c3578063cc1776d3146105da576101cd565b80638da5cb5b116100d15780638da5cb5b146104b357806395d89b41146104de578063974ea01e14610509578063a9059cbb14610532576101cd565b8063751039fc14610448578063778c61521461045f5780638c0b5e2214610488576101cd565b806341e1259d1161016457806355811acc1161013e57806355811acc146103a05780636f9fb98a146103c957806370a08231146103f4578063715018a614610431576101cd565b806341e1259d1461032157806349bd5a5e1461034a5780634f7041a514610375576101cd565b806318160ddd116101a057806318160ddd146102635780631de3b4501461028e57806323b872dd146102b9578063313ce567146102f6576101cd565b806306fdde03146101d2578063095ea7b3146101fd5780630b006d601461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106ab565b6040516101f491906125b9565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f9190612679565b6106e8565b60405161023191906126d4565b60405180910390f35b34801561024657600080fd5b50610261600480360381019061025c91906126ef565b610706565b005b34801561026f57600080fd5b506102786107fd565b604051610285919061272b565b60405180910390f35b34801561029a57600080fd5b506102a3610810565b6040516102b0919061272b565b60405180910390f35b3480156102c557600080fd5b506102e060048036038101906102db9190612746565b610816565b6040516102ed91906126d4565b60405180910390f35b34801561030257600080fd5b5061030b6108ce565b60405161031891906127b5565b60405180910390f35b34801561032d57600080fd5b50610348600480360381019061034391906126ef565b6108d7565b005b34801561035657600080fd5b5061035f610a13565b60405161036c91906127df565b60405180910390f35b34801561038157600080fd5b5061038a610a37565b604051610397919061272b565b60405180910390f35b3480156103ac57600080fd5b506103c760048036038101906103c291906126ef565b610a3d565b005b3480156103d557600080fd5b506103de610b79565b6040516103eb919061272b565b60405180910390f35b34801561040057600080fd5b5061041b600480360381019061041691906127fa565b610b81565b604051610428919061272b565b60405180910390f35b34801561043d57600080fd5b50610446610bca565b005b34801561045457600080fd5b5061045d610d1d565b005b34801561046b57600080fd5b50610486600480360381019061048191906126ef565b610dd8565b005b34801561049457600080fd5b5061049d610ecf565b6040516104aa919061272b565b60405180910390f35b3480156104bf57600080fd5b506104c8610ed5565b6040516104d591906127df565b60405180910390f35b3480156104ea57600080fd5b506104f3610efe565b60405161050091906125b9565b60405180910390f35b34801561051557600080fd5b50610530600480360381019061052b9190612827565b610f3b565b005b34801561053e57600080fd5b5061055960048036038101906105549190612679565b611064565b60405161056691906126d4565b60405180910390f35b34801561057b57600080fd5b50610584611082565b604051610591919061272b565b60405180910390f35b3480156105a657600080fd5b506105c160048036038101906105bc91906128df565b611088565b005b3480156105cf57600080fd5b506105d86111ad565b005b3480156105e657600080fd5b506105ef611267565b6040516105fc919061272b565b60405180910390f35b34801561061157600080fd5b5061062c600480360381019061062791906127fa565b61126d565b005b34801561063a57600080fd5b506106556004803603810190610650919061292c565b6113b5565b604051610662919061272b565b60405180910390f35b34801561067757600080fd5b5061068061143c565b005b34801561068e57600080fd5b506106a960048036038101906106a491906127fa565b611578565b005b60606040518060400160405280600881526020017f536d756720436174000000000000000000000000000000000000000000000000815250905090565b60006106fc6106f5611619565b8484611621565b6001905092915050565b61070e611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610792906129b8565b60405180910390fd5b606381106107de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d590612a24565b60405180910390fd5b69021e19e0c9bab2400000816107f49190612a73565b600a8190555050565b60006a084595161401484a000000905090565b60065481565b60006108238484846117ea565b6108c38461082f611619565b84600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610879611619565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108be9190612ab5565b611621565b600190509392505050565b60006012905090565b6108df611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461096c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610963906129b8565b60405180910390fd5b6103e781106109b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a790612b5b565b60405180910390fd5b60035481106109f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109eb90612bed565b60405180910390fd5b69021e19e0c9bab240000081610a0a9190612a73565b60028190555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60045481565b610a45611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac9906129b8565b60405180910390fd5b6103e78110610b16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0d90612c7f565b60405180910390fd5b6002548111610b5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5190612d11565b60405180910390fd5b69021e19e0c9bab240000081610b709190612a73565b60038190555050565b600047905090565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610bd2611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c56906129b8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d25611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610db2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da9906129b8565b60405180910390fd5b6a084595161401484a0000006009819055506a084595161401484a000000600a81905550565b610de0611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e64906129b8565b60405180910390fd5b60638110610eb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea790612d7d565b60405180910390fd5b69021e19e0c9bab240000081610ec69190612a73565b60098190555050565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f534d554700000000000000000000000000000000000000000000000000000000815250905090565b610f43611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc7906129b8565b60405180910390fd5b605a831080610fdf5750605a82105b80610fea5750605a81105b8061100b5750605a818385610fff9190612d9d565b6110099190612d9d565b105b61104a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104190612e1d565b60405180910390fd5b826004819055508160058190555080600681905550505050565b6000611078611071611619565b84846117ea565b6001905092915050565b600a5481565b611090611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461111d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611114906129b8565b60405180910390fd5b60005b828290508110156111a8576000600b600085858581811061114457611143612e3d565b5b905060200201602081019061115991906127fa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806111a190612e6c565b9050611120565b505050565b6111b5611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611242576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611239906129b8565b60405180910390fd5b6001600760006101000a81548160ff021916908360ff16021790555043600881905550565b60055481565b611275611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611302576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f9906129b8565b60405180910390fd5b6001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611444611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c8906129b8565b60405180910390fd5b60006114db610b79565b1161151b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151290612f00565b60405180910390fd5b6000611525610b79565b905061152f610ed5565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611574573d6000803e3d6000fd5b5050565b611580611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461160d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611604906129b8565b60405180910390fd5b611616816123fd565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611690576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168790612f92565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f690613024565b60405180910390fd5b80600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117dd919061272b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611859576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611850906130b6565b60405180910390fd5b633b9aca00811161189f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189690613122565b60405180910390fd5b6000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119425750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561195057600090506120dd565b6000600760009054906101000a900460ff1660ff161415801561197557506009548211155b6119b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ab906131b4565b60405180910390fd5b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a9557600a5482600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a539190612d9d565b1115611a94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8b90613220565b60405180910390fd5b5b6001600760019054906101000a900460ff1660ff1603611bc65781600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611afe9190612ab5565b9250508190555081600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b549190612d9d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611bb8919061272b565b60405180910390a3506123f8565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611c3057600654600454611c299190612d9d565b90506120dc565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120d6576000600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060025481118015611cea57506000600760019054906101000a900460ff1660ff16145b156120be57600354811115611cff5760035490505b60006006546002600554600454611d169190612d9d565b611d20919061326f565b611d2a9190612d9d565b60065483611d389190612a73565b611d42919061326f565b905060008183611d529190612ab5565b90506001600760016101000a81548160ff021916908360ff1602179055506000600267ffffffffffffffff811115611d8d57611d8c6132a0565b5b604051908082528060200260200182016040528015611dbb5781602001602082028036833780820191505090505b5090503081600081518110611dd357611dd2612e3d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110611e4257611e41612e3d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947836000847f0000000000000000000000000000000000000000000000000000000000000000426040518663ffffffff1660e01b8152600401611efe959493929190613427565b600060405180830381600087803b158015611f1857600080fd5b505af1158015611f2c573d6000803e3d6000fd5b50505050600083111561209e577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947600285611f82919061326f565b60008430426040518663ffffffff1660e01b8152600401611fa7959493929190613481565b600060405180830381600087803b158015611fc157600080fd5b505af1158015611fd5573d6000803e3d6000fd5b5050505060004790507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d7198230600288612029919061326f565b600080612034610ed5565b426040518863ffffffff1660e01b8152600401612056969594939291906134db565b60606040518083038185885af1158015612074573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906120999190613551565b505050505b6000600760016101000a81548160ff021916908360ff1602179055505050505b6006546005546120ce9190612d9d565b9150506120db565b600090505b5b5b600081146122e4576000606482846120f59190612a73565b6120ff919061326f565b90506000818461210f9190612ab5565b905083600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121609190612ab5565b9250508190555080600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121b69190612d9d565b9250508190555081600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461220c9190612d9d565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612270919061272b565b60405180910390a38473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122d5919061272b565b60405180910390a350506123f6565b81600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123339190612ab5565b9250508190555081600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123899190612d9d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123ed919061272b565b60405180910390a35b505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361246c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246390613616565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612563578082015181840152602081019050612548565b60008484015250505050565b6000601f19601f8301169050919050565b600061258b82612529565b6125958185612534565b93506125a5818560208601612545565b6125ae8161256f565b840191505092915050565b600060208201905081810360008301526125d38184612580565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612610826125e5565b9050919050565b61262081612605565b811461262b57600080fd5b50565b60008135905061263d81612617565b92915050565b6000819050919050565b61265681612643565b811461266157600080fd5b50565b6000813590506126738161264d565b92915050565b600080604083850312156126905761268f6125db565b5b600061269e8582860161262e565b92505060206126af85828601612664565b9150509250929050565b60008115159050919050565b6126ce816126b9565b82525050565b60006020820190506126e960008301846126c5565b92915050565b600060208284031215612705576127046125db565b5b600061271384828501612664565b91505092915050565b61272581612643565b82525050565b6000602082019050612740600083018461271c565b92915050565b60008060006060848603121561275f5761275e6125db565b5b600061276d8682870161262e565b935050602061277e8682870161262e565b925050604061278f86828701612664565b9150509250925092565b600060ff82169050919050565b6127af81612799565b82525050565b60006020820190506127ca60008301846127a6565b92915050565b6127d981612605565b82525050565b60006020820190506127f460008301846127d0565b92915050565b6000602082840312156128105761280f6125db565b5b600061281e8482850161262e565b91505092915050565b6000806000606084860312156128405761283f6125db565b5b600061284e86828701612664565b935050602061285f86828701612664565b925050604061287086828701612664565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f84011261289f5761289e61287a565b5b8235905067ffffffffffffffff8111156128bc576128bb61287f565b5b6020830191508360208202830111156128d8576128d7612884565b5b9250929050565b600080602083850312156128f6576128f56125db565b5b600083013567ffffffffffffffff811115612914576129136125e0565b5b61292085828601612889565b92509250509250929050565b60008060408385031215612943576129426125db565b5b60006129518582860161262e565b92505060206129628582860161262e565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006129a2602083612534565b91506129ad8261296c565b602082019050919050565b600060208201905081810360008301526129d181612995565b9050919050565b7f4d61782077616c6c65742063616e6e6f742062652061626f7665203939250000600082015250565b6000612a0e601e83612534565b9150612a19826129d8565b602082019050919050565b60006020820190508181036000830152612a3d81612a01565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a7e82612643565b9150612a8983612643565b9250828202612a9781612643565b91508282048414831517612aae57612aad612a44565b5b5092915050565b6000612ac082612643565b9150612acb83612643565b9250828203905081811115612ae357612ae2612a44565b5b92915050565b7f4d696e20537761702063616e6e6f742062652067726561746572207468616e2060008201527f3939250000000000000000000000000000000000000000000000000000000000602082015250565b6000612b45602383612534565b9150612b5082612ae9565b604082019050919050565b60006020820190508181036000830152612b7481612b38565b9050919050565b7f4d696e20537761702063616e6e6f742062652067726561746572207468616e2060008201527f6d61782073776170000000000000000000000000000000000000000000000000602082015250565b6000612bd7602883612534565b9150612be282612b7b565b604082019050919050565b60006020820190508181036000830152612c0681612bca565b9050919050565b7f4d617820537761702063616e6e6f742062652067726561746572207468616e2060008201527f3939250000000000000000000000000000000000000000000000000000000000602082015250565b6000612c69602383612534565b9150612c7482612c0d565b604082019050919050565b60006020820190508181036000830152612c9881612c5c565b9050919050565b7f4d617820537761702063616e6e6f74206265206c657373207468616e206d696e60008201527f2073776170000000000000000000000000000000000000000000000000000000602082015250565b6000612cfb602583612534565b9150612d0682612c9f565b604082019050919050565b60006020820190508181036000830152612d2a81612cee565b9050919050565b7f4d61782054782063616e6e6f742062652061626f766520393925000000000000600082015250565b6000612d67601a83612534565b9150612d7282612d31565b602082019050919050565b60006020820190508181036000830152612d9681612d5a565b9050919050565b6000612da882612643565b9150612db383612643565b9250828201905080821115612dcb57612dca612a44565b5b92915050565b7f43616e6e6f74207365742074617865732061626f766520393025000000000000600082015250565b6000612e07601a83612534565b9150612e1282612dd1565b602082019050919050565b60006020820190508181036000830152612e3681612dfa565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612e7782612643565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ea957612ea8612a44565b5b600182019050919050565b7f4e6f2062616c616e636520746f20776974686472617700000000000000000000600082015250565b6000612eea601683612534565b9150612ef582612eb4565b602082019050919050565b60006020820190508181036000830152612f1981612edd565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612f7c602483612534565b9150612f8782612f20565b604082019050919050565b60006020820190508181036000830152612fab81612f6f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061300e602283612534565b915061301982612fb2565b604082019050919050565b6000602082019050818103600083015261303d81613001565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006130a0602583612534565b91506130ab82613044565b604082019050919050565b600060208201905081810360008301526130cf81613093565b9050919050565b7f4d696e207472616e7366657220616d7400000000000000000000000000000000600082015250565b600061310c601083612534565b9150613117826130d6565b602082019050919050565b6000602082019050818103600083015261313b816130ff565b9050919050565b7f4c61756e6368202f204d6178205478416d6f756e74203125206174206c61756e60008201527f6368000000000000000000000000000000000000000000000000000000000000602082015250565b600061319e602283612534565b91506131a982613142565b604082019050919050565b600060208201905081810360008301526131cd81613191565b9050919050565b7f45786365656473206d61782077616c6c65742062616c616e6365000000000000600082015250565b600061320a601a83612534565b9150613215826131d4565b602082019050919050565b60006020820190508181036000830152613239816131fd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061327a82612643565b915061328583612643565b92508261329557613294613240565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b6000819050919050565b60006132fe6132f96132f4846132cf565b6132d9565b612643565b9050919050565b61330e816132e3565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61334981612605565b82525050565b600061335b8383613340565b60208301905092915050565b6000602082019050919050565b600061337f82613314565b613389818561331f565b935061339483613330565b8060005b838110156133c55781516133ac888261334f565b97506133b783613367565b925050600181019050613398565b5085935050505092915050565b60006133ed6133e86133e3846125e5565b6132d9565b6125e5565b9050919050565b60006133ff826133d2565b9050919050565b6000613411826133f4565b9050919050565b61342181613406565b82525050565b600060a08201905061343c600083018861271c565b6134496020830187613305565b818103604083015261345b8186613374565b905061346a6060830185613418565b613477608083018461271c565b9695505050505050565b600060a082019050613496600083018861271c565b6134a36020830187613305565b81810360408301526134b58186613374565b90506134c460608301856127d0565b6134d1608083018461271c565b9695505050505050565b600060c0820190506134f060008301896127d0565b6134fd602083018861271c565b61350a6040830187613305565b6135176060830186613305565b61352460808301856127d0565b61353160a083018461271c565b979650505050505050565b60008151905061354b8161264d565b92915050565b60008060006060848603121561356a576135696125db565b5b60006135788682870161353c565b93505060206135898682870161353c565b925050604061359a8682870161353c565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613600602683612534565b915061360b826135a4565b604082019050919050565b6000602082019050818103600083015261362f816135f3565b905091905056fea2646970667358221220221827a304b9d733055110b4c219a84b0661b582137bc3b4cbef3f73840069f164736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101c65760003560e01c8063751039fc116100f7578063aa4bde2811610095578063dba9d42011610064578063dba9d42014610605578063dd62ed3e1461062e578063e5cd8b6a1461066b578063f2fde38b14610682576101cd565b8063aa4bde281461056f578063aca1f1571461059a578063c9567bf9146105c3578063cc1776d3146105da576101cd565b80638da5cb5b116100d15780638da5cb5b146104b357806395d89b41146104de578063974ea01e14610509578063a9059cbb14610532576101cd565b8063751039fc14610448578063778c61521461045f5780638c0b5e2214610488576101cd565b806341e1259d1161016457806355811acc1161013e57806355811acc146103a05780636f9fb98a146103c957806370a08231146103f4578063715018a614610431576101cd565b806341e1259d1461032157806349bd5a5e1461034a5780634f7041a514610375576101cd565b806318160ddd116101a057806318160ddd146102635780631de3b4501461028e57806323b872dd146102b9578063313ce567146102f6576101cd565b806306fdde03146101d2578063095ea7b3146101fd5780630b006d601461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106ab565b6040516101f491906125b9565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f9190612679565b6106e8565b60405161023191906126d4565b60405180910390f35b34801561024657600080fd5b50610261600480360381019061025c91906126ef565b610706565b005b34801561026f57600080fd5b506102786107fd565b604051610285919061272b565b60405180910390f35b34801561029a57600080fd5b506102a3610810565b6040516102b0919061272b565b60405180910390f35b3480156102c557600080fd5b506102e060048036038101906102db9190612746565b610816565b6040516102ed91906126d4565b60405180910390f35b34801561030257600080fd5b5061030b6108ce565b60405161031891906127b5565b60405180910390f35b34801561032d57600080fd5b50610348600480360381019061034391906126ef565b6108d7565b005b34801561035657600080fd5b5061035f610a13565b60405161036c91906127df565b60405180910390f35b34801561038157600080fd5b5061038a610a37565b604051610397919061272b565b60405180910390f35b3480156103ac57600080fd5b506103c760048036038101906103c291906126ef565b610a3d565b005b3480156103d557600080fd5b506103de610b79565b6040516103eb919061272b565b60405180910390f35b34801561040057600080fd5b5061041b600480360381019061041691906127fa565b610b81565b604051610428919061272b565b60405180910390f35b34801561043d57600080fd5b50610446610bca565b005b34801561045457600080fd5b5061045d610d1d565b005b34801561046b57600080fd5b50610486600480360381019061048191906126ef565b610dd8565b005b34801561049457600080fd5b5061049d610ecf565b6040516104aa919061272b565b60405180910390f35b3480156104bf57600080fd5b506104c8610ed5565b6040516104d591906127df565b60405180910390f35b3480156104ea57600080fd5b506104f3610efe565b60405161050091906125b9565b60405180910390f35b34801561051557600080fd5b50610530600480360381019061052b9190612827565b610f3b565b005b34801561053e57600080fd5b5061055960048036038101906105549190612679565b611064565b60405161056691906126d4565b60405180910390f35b34801561057b57600080fd5b50610584611082565b604051610591919061272b565b60405180910390f35b3480156105a657600080fd5b506105c160048036038101906105bc91906128df565b611088565b005b3480156105cf57600080fd5b506105d86111ad565b005b3480156105e657600080fd5b506105ef611267565b6040516105fc919061272b565b60405180910390f35b34801561061157600080fd5b5061062c600480360381019061062791906127fa565b61126d565b005b34801561063a57600080fd5b506106556004803603810190610650919061292c565b6113b5565b604051610662919061272b565b60405180910390f35b34801561067757600080fd5b5061068061143c565b005b34801561068e57600080fd5b506106a960048036038101906106a491906127fa565b611578565b005b60606040518060400160405280600881526020017f536d756720436174000000000000000000000000000000000000000000000000815250905090565b60006106fc6106f5611619565b8484611621565b6001905092915050565b61070e611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610792906129b8565b60405180910390fd5b606381106107de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d590612a24565b60405180910390fd5b69021e19e0c9bab2400000816107f49190612a73565b600a8190555050565b60006a084595161401484a000000905090565b60065481565b60006108238484846117ea565b6108c38461082f611619565b84600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610879611619565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108be9190612ab5565b611621565b600190509392505050565b60006012905090565b6108df611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461096c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610963906129b8565b60405180910390fd5b6103e781106109b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a790612b5b565b60405180910390fd5b60035481106109f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109eb90612bed565b60405180910390fd5b69021e19e0c9bab240000081610a0a9190612a73565b60028190555050565b7f00000000000000000000000098a318eb50030641157ad5f2af621de1b157764281565b60045481565b610a45611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac9906129b8565b60405180910390fd5b6103e78110610b16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0d90612c7f565b60405180910390fd5b6002548111610b5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5190612d11565b60405180910390fd5b69021e19e0c9bab240000081610b709190612a73565b60038190555050565b600047905090565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610bd2611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c56906129b8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d25611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610db2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da9906129b8565b60405180910390fd5b6a084595161401484a0000006009819055506a084595161401484a000000600a81905550565b610de0611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e64906129b8565b60405180910390fd5b60638110610eb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea790612d7d565b60405180910390fd5b69021e19e0c9bab240000081610ec69190612a73565b60098190555050565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f534d554700000000000000000000000000000000000000000000000000000000815250905090565b610f43611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc7906129b8565b60405180910390fd5b605a831080610fdf5750605a82105b80610fea5750605a81105b8061100b5750605a818385610fff9190612d9d565b6110099190612d9d565b105b61104a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104190612e1d565b60405180910390fd5b826004819055508160058190555080600681905550505050565b6000611078611071611619565b84846117ea565b6001905092915050565b600a5481565b611090611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461111d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611114906129b8565b60405180910390fd5b60005b828290508110156111a8576000600b600085858581811061114457611143612e3d565b5b905060200201602081019061115991906127fa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806111a190612e6c565b9050611120565b505050565b6111b5611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611242576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611239906129b8565b60405180910390fd5b6001600760006101000a81548160ff021916908360ff16021790555043600881905550565b60055481565b611275611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611302576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f9906129b8565b60405180910390fd5b6001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611444611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c8906129b8565b60405180910390fd5b60006114db610b79565b1161151b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151290612f00565b60405180910390fd5b6000611525610b79565b905061152f610ed5565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611574573d6000803e3d6000fd5b5050565b611580611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461160d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611604906129b8565b60405180910390fd5b611616816123fd565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611690576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168790612f92565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f690613024565b60405180910390fd5b80600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117dd919061272b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611859576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611850906130b6565b60405180910390fd5b633b9aca00811161189f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189690613122565b60405180910390fd5b6000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119425750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561195057600090506120dd565b6000600760009054906101000a900460ff1660ff161415801561197557506009548211155b6119b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ab906131b4565b60405180910390fd5b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a9557600a5482600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a539190612d9d565b1115611a94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8b90613220565b60405180910390fd5b5b6001600760019054906101000a900460ff1660ff1603611bc65781600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611afe9190612ab5565b9250508190555081600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b549190612d9d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611bb8919061272b565b60405180910390a3506123f8565b7f00000000000000000000000098a318eb50030641157ad5f2af621de1b157764273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611c3057600654600454611c299190612d9d565b90506120dc565b7f00000000000000000000000098a318eb50030641157ad5f2af621de1b157764273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120d6576000600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060025481118015611cea57506000600760019054906101000a900460ff1660ff16145b156120be57600354811115611cff5760035490505b60006006546002600554600454611d169190612d9d565b611d20919061326f565b611d2a9190612d9d565b60065483611d389190612a73565b611d42919061326f565b905060008183611d529190612ab5565b90506001600760016101000a81548160ff021916908360ff1602179055506000600267ffffffffffffffff811115611d8d57611d8c6132a0565b5b604051908082528060200260200182016040528015611dbb5781602001602082028036833780820191505090505b5090503081600081518110611dd357611dd2612e3d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611e4257611e41612e3d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947836000847f000000000000000000000000375e1b6e7c1f5ab857d9b7c9a1086b0465d73098426040518663ffffffff1660e01b8152600401611efe959493929190613427565b600060405180830381600087803b158015611f1857600080fd5b505af1158015611f2c573d6000803e3d6000fd5b50505050600083111561209e577f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947600285611f82919061326f565b60008430426040518663ffffffff1660e01b8152600401611fa7959493929190613481565b600060405180830381600087803b158015611fc157600080fd5b505af1158015611fd5573d6000803e3d6000fd5b5050505060004790507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d7198230600288612029919061326f565b600080612034610ed5565b426040518863ffffffff1660e01b8152600401612056969594939291906134db565b60606040518083038185885af1158015612074573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906120999190613551565b505050505b6000600760016101000a81548160ff021916908360ff1602179055505050505b6006546005546120ce9190612d9d565b9150506120db565b600090505b5b5b600081146122e4576000606482846120f59190612a73565b6120ff919061326f565b90506000818461210f9190612ab5565b905083600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121609190612ab5565b9250508190555080600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121b69190612d9d565b9250508190555081600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461220c9190612d9d565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612270919061272b565b60405180910390a38473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122d5919061272b565b60405180910390a350506123f6565b81600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123339190612ab5565b9250508190555081600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123899190612d9d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123ed919061272b565b60405180910390a35b505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361246c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246390613616565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612563578082015181840152602081019050612548565b60008484015250505050565b6000601f19601f8301169050919050565b600061258b82612529565b6125958185612534565b93506125a5818560208601612545565b6125ae8161256f565b840191505092915050565b600060208201905081810360008301526125d38184612580565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612610826125e5565b9050919050565b61262081612605565b811461262b57600080fd5b50565b60008135905061263d81612617565b92915050565b6000819050919050565b61265681612643565b811461266157600080fd5b50565b6000813590506126738161264d565b92915050565b600080604083850312156126905761268f6125db565b5b600061269e8582860161262e565b92505060206126af85828601612664565b9150509250929050565b60008115159050919050565b6126ce816126b9565b82525050565b60006020820190506126e960008301846126c5565b92915050565b600060208284031215612705576127046125db565b5b600061271384828501612664565b91505092915050565b61272581612643565b82525050565b6000602082019050612740600083018461271c565b92915050565b60008060006060848603121561275f5761275e6125db565b5b600061276d8682870161262e565b935050602061277e8682870161262e565b925050604061278f86828701612664565b9150509250925092565b600060ff82169050919050565b6127af81612799565b82525050565b60006020820190506127ca60008301846127a6565b92915050565b6127d981612605565b82525050565b60006020820190506127f460008301846127d0565b92915050565b6000602082840312156128105761280f6125db565b5b600061281e8482850161262e565b91505092915050565b6000806000606084860312156128405761283f6125db565b5b600061284e86828701612664565b935050602061285f86828701612664565b925050604061287086828701612664565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f84011261289f5761289e61287a565b5b8235905067ffffffffffffffff8111156128bc576128bb61287f565b5b6020830191508360208202830111156128d8576128d7612884565b5b9250929050565b600080602083850312156128f6576128f56125db565b5b600083013567ffffffffffffffff811115612914576129136125e0565b5b61292085828601612889565b92509250509250929050565b60008060408385031215612943576129426125db565b5b60006129518582860161262e565b92505060206129628582860161262e565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006129a2602083612534565b91506129ad8261296c565b602082019050919050565b600060208201905081810360008301526129d181612995565b9050919050565b7f4d61782077616c6c65742063616e6e6f742062652061626f7665203939250000600082015250565b6000612a0e601e83612534565b9150612a19826129d8565b602082019050919050565b60006020820190508181036000830152612a3d81612a01565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a7e82612643565b9150612a8983612643565b9250828202612a9781612643565b91508282048414831517612aae57612aad612a44565b5b5092915050565b6000612ac082612643565b9150612acb83612643565b9250828203905081811115612ae357612ae2612a44565b5b92915050565b7f4d696e20537761702063616e6e6f742062652067726561746572207468616e2060008201527f3939250000000000000000000000000000000000000000000000000000000000602082015250565b6000612b45602383612534565b9150612b5082612ae9565b604082019050919050565b60006020820190508181036000830152612b7481612b38565b9050919050565b7f4d696e20537761702063616e6e6f742062652067726561746572207468616e2060008201527f6d61782073776170000000000000000000000000000000000000000000000000602082015250565b6000612bd7602883612534565b9150612be282612b7b565b604082019050919050565b60006020820190508181036000830152612c0681612bca565b9050919050565b7f4d617820537761702063616e6e6f742062652067726561746572207468616e2060008201527f3939250000000000000000000000000000000000000000000000000000000000602082015250565b6000612c69602383612534565b9150612c7482612c0d565b604082019050919050565b60006020820190508181036000830152612c9881612c5c565b9050919050565b7f4d617820537761702063616e6e6f74206265206c657373207468616e206d696e60008201527f2073776170000000000000000000000000000000000000000000000000000000602082015250565b6000612cfb602583612534565b9150612d0682612c9f565b604082019050919050565b60006020820190508181036000830152612d2a81612cee565b9050919050565b7f4d61782054782063616e6e6f742062652061626f766520393925000000000000600082015250565b6000612d67601a83612534565b9150612d7282612d31565b602082019050919050565b60006020820190508181036000830152612d9681612d5a565b9050919050565b6000612da882612643565b9150612db383612643565b9250828201905080821115612dcb57612dca612a44565b5b92915050565b7f43616e6e6f74207365742074617865732061626f766520393025000000000000600082015250565b6000612e07601a83612534565b9150612e1282612dd1565b602082019050919050565b60006020820190508181036000830152612e3681612dfa565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612e7782612643565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ea957612ea8612a44565b5b600182019050919050565b7f4e6f2062616c616e636520746f20776974686472617700000000000000000000600082015250565b6000612eea601683612534565b9150612ef582612eb4565b602082019050919050565b60006020820190508181036000830152612f1981612edd565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612f7c602483612534565b9150612f8782612f20565b604082019050919050565b60006020820190508181036000830152612fab81612f6f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061300e602283612534565b915061301982612fb2565b604082019050919050565b6000602082019050818103600083015261303d81613001565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006130a0602583612534565b91506130ab82613044565b604082019050919050565b600060208201905081810360008301526130cf81613093565b9050919050565b7f4d696e207472616e7366657220616d7400000000000000000000000000000000600082015250565b600061310c601083612534565b9150613117826130d6565b602082019050919050565b6000602082019050818103600083015261313b816130ff565b9050919050565b7f4c61756e6368202f204d6178205478416d6f756e74203125206174206c61756e60008201527f6368000000000000000000000000000000000000000000000000000000000000602082015250565b600061319e602283612534565b91506131a982613142565b604082019050919050565b600060208201905081810360008301526131cd81613191565b9050919050565b7f45786365656473206d61782077616c6c65742062616c616e6365000000000000600082015250565b600061320a601a83612534565b9150613215826131d4565b602082019050919050565b60006020820190508181036000830152613239816131fd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061327a82612643565b915061328583612643565b92508261329557613294613240565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b6000819050919050565b60006132fe6132f96132f4846132cf565b6132d9565b612643565b9050919050565b61330e816132e3565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61334981612605565b82525050565b600061335b8383613340565b60208301905092915050565b6000602082019050919050565b600061337f82613314565b613389818561331f565b935061339483613330565b8060005b838110156133c55781516133ac888261334f565b97506133b783613367565b925050600181019050613398565b5085935050505092915050565b60006133ed6133e86133e3846125e5565b6132d9565b6125e5565b9050919050565b60006133ff826133d2565b9050919050565b6000613411826133f4565b9050919050565b61342181613406565b82525050565b600060a08201905061343c600083018861271c565b6134496020830187613305565b818103604083015261345b8186613374565b905061346a6060830185613418565b613477608083018461271c565b9695505050505050565b600060a082019050613496600083018861271c565b6134a36020830187613305565b81810360408301526134b58186613374565b90506134c460608301856127d0565b6134d1608083018461271c565b9695505050505050565b600060c0820190506134f060008301896127d0565b6134fd602083018861271c565b61350a6040830187613305565b6135176060830186613305565b61352460808301856127d0565b61353160a083018461271c565b979650505050505050565b60008151905061354b8161264d565b92915050565b60008060006060848603121561356a576135696125db565b5b60006135788682870161353c565b93505060206135898682870161353c565b925050604061359a8682870161353c565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613600602683612534565b915061360b826135a4565b604082019050919050565b6000602082019050818103600083015261362f816135f3565b905091905056fea2646970667358221220221827a304b9d733055110b4c219a84b0661b582137bc3b4cbef3f73840069f164736f6c63430008120033

Deployed Bytecode Sourcemap

3115:10997:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5860:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7153:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9054:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6510:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3701:17;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7354:350;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6419:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9769:320;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3520:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3644:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9444:317;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5949:107;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6618:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2165:148;;;;;;;;;;;;;:::i;:::-;;8383:129;;;;;;;;;;;;;:::i;:::-;;9261:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3843:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1560:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6324:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8520:331;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6744:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3926:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8859:187;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8089:108;;;;;;;;;;;;;:::i;:::-;;3672:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8205:170;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6961:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6064:252;;;;;;;;;;;;;:::i;:::-;;1774:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5860:83;5897:13;5930:5;;;;;;;;;;;;;;;;;5923:12;;5860:83;:::o;7153:193::-;7255:4;7277:39;7286:12;:10;:12::i;:::-;7300:7;7309:6;7277:8;:39::i;:::-;7334:4;7327:11;;7153:193;;;;:::o;9054:199::-;1697:12;:10;:12::i;:::-;1687:22;;:6;;;;;;;;;;:22;;;1679:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9152:2:::1;9137:12;:17;9129:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;3322:9;9218:12;:27;;;;:::i;:::-;9200:15;:45;;;;9054:199:::0;:::o;6510:100::-;6563:7;3207:13;6583:19;;6510:100;:::o;3701:17::-;;;;:::o;7354:350::-;7486:4;7503:36;7513:6;7521:9;7532:6;7503:9;:36::i;:::-;7550:124;7573:6;7594:12;:10;:12::i;:::-;7657:6;7621:11;:19;7633:6;7621:19;;;;;;;;;;;;;;;:33;7641:12;:10;:12::i;:::-;7621:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;7550:8;:124::i;:::-;7692:4;7685:11;;7354:350;;;;;:::o;6419:83::-;6460:5;3458:2;6478:16;;6419:83;:::o;9769:320::-;1697:12;:10;:12::i;:::-;1687:22;;:6;;;;;;;;;;:22;;;1679:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9890:3:::1;9868:19;:25;9860:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;9974:7;;9952:19;:29;9944:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;3322:9;10047:19;:34;;;;:::i;:::-;10037:7;:44;;;;9769:320:::0;:::o;3520:38::-;;;:::o;3644:21::-;;;;:::o;9444:317::-;1697:12;:10;:12::i;:::-;1687:22;;:6;;;;;;;;;;:22;;;1679:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9565:3:::1;9543:19;:25;9535:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;9649:7;;9627:19;:29;9619:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;3322:9;9719:19;:34;;;;:::i;:::-;9709:7;:44;;;;9444:317:::0;:::o;5949:107::-;6000:7;6027:21;6020:28;;5949:107;:::o;6618:118::-;6684:7;6711:8;:17;6720:7;6711:17;;;;;;;;;;;;;;;;6704:24;;6618:118;;;:::o;2165:148::-;1697:12;:10;:12::i;:::-;1687:22;;:6;;;;;;;;;;:22;;;1679:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2272:1:::1;2235:40;;2256:6;::::0;::::1;;;;;;;;2235:40;;;;;;;;;;;;2303:1;2286:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2165:148::o:0;8383:129::-;1697:12;:10;:12::i;:::-;1687:22;;:6;;;;;;;;;;:22;;;1679:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3207:13:::1;8437:11;:26;;;;3207:13;8474:15;:30;;;;8383:129::o:0;9261:175::-;1697:12;:10;:12::i;:::-;1687:22;;:6;;;;;;;;;;:22;;;1679:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9347:2:::1;9336:8;:13;9328:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;3322:9;9405:8;:23;;;;:::i;:::-;9391:11;:37;;;;9261:175:::0;:::o;3843:39::-;;;;:::o;1560:79::-;1598:7;1625:6;;;;;;;;;;;1618:13;;1560:79;:::o;6324:87::-;6363:13;6396:7;;;;;;;;;;;;;;;;;6389:14;;6324:87;:::o;8520:331::-;1697:12;:10;:12::i;:::-;1687:22;;:6;;;;;;;;;;:22;;;1679:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8643:2:::1;8631:9;:14;:33;;;;8662:2;8649:10;:15;8631:33;:50;;;;8679:2;8668:8;:13;8631:50;:94;;;;8723:2;8711:8;8698:10;8686:9;:22;;;;:::i;:::-;:33;;;;:::i;:::-;8685:40;8631:94;8623:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;8776:9;8767:6;:18;;;;8806:10;8796:7;:20;;;;8835:8;8827:5;:16;;;;8520:331:::0;;;:::o;6744:209::-;6849:4;6881:42;6891:12;:10;:12::i;:::-;6905:9;6916:6;6881:9;:42::i;:::-;6941:4;6934:11;;6744:209;;;;:::o;3926:47::-;;;;:::o;8859:187::-;1697:12;:10;:12::i;:::-;1687:22;;:6;;;;;;;;;;:22;;;1679:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8948:9:::1;8943:96;8963:9;;:16;;8959:1;:20;8943:96;;;9026:1;9001:8;:22;9010:9;;9020:1;9010:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;9001:22;;;;;;;;;;;;;;;:26;;;;8981:3;;;;:::i;:::-;;;8943:96;;;;8859:187:::0;;:::o;8089:108::-;1697:12;:10;:12::i;:::-;1687:22;;:6;;;;;;;;;;:22;;;1679:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8151:1:::1;8142:6;;:10;;;;;;;;;;;;;;;;;;8177:12;8163:11;:26;;;;8089:108::o:0;3672:22::-;;;;:::o;8205:170::-;1697:12;:10;:12::i;:::-;1687:22;;:6;;;;;;;;;;:22;;;1679:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8313:4:::1;8278:24;:32;8303:6;8278:32;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;8363:4;8328:24;:32;8353:6;8328:32;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;8205:170:::0;:::o;6961:184::-;7078:7;7110:11;:18;7122:5;7110:18;;;;;;;;;;;;;;;:27;7129:7;7110:27;;;;;;;;;;;;;;;;7103:34;;6961:184;;;;:::o;6064:252::-;1697:12;:10;:12::i;:::-;1687:22;;:6;;;;;;;;;;:22;;;1679:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6148:1:::1;6125:20;:18;:20::i;:::-;:24;6117:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;6197:24;6224:20;:18;:20::i;:::-;6197:47;;6273:7;:5;:7::i;:::-;6265:25;;:43;6291:16;6265:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;6106:210;6064:252::o:0;1774:109::-;1697:12;:10;:12::i;:::-;1687:22;;:6;;;;;;;;;;:22;;;1679:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1847:28:::1;1866:8;1847:18;:28::i;:::-;1774:109:::0;:::o;274:98::-;327:7;354:10;347:17;;274:98;:::o;7712:369::-;7856:1;7839:19;;:5;:19;;;7831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7937:1;7918:21;;:7;:21;;;7910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8019:6;7989:11;:18;8001:5;7989:18;;;;;;;;;;;;;;;:27;8008:7;7989:27;;;;;;;;;;;;;;;:36;;;;8057:7;8041:32;;8050:5;8041:32;;;8066:6;8041:32;;;;;;:::i;:::-;;;;;;;;7712:369;;;:::o;10097:3975::-;10235:1;10219:18;;:4;:18;;;10211:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10307:3;10298:6;:12;10290:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;10344:12;10371:24;:30;10396:4;10371:30;;;;;;;;;;;;;;;;;;;;;;;;;:62;;;;10405:24;:28;10430:2;10405:28;;;;;;;;;;;;;;;;;;;;;;;;;10371:62;10367:3048;;;10457:1;10450:8;;10367:3048;;;10527:1;10517:6;;;;;;;;;;;:11;;;;:36;;;;;10542:11;;10532:6;:21;;10517:36;10491:132;;;;;;;;;;;;:::i;:::-;;;;;;;;;10661:24;:28;10686:2;10661:28;;;;;;;;;;;;;;;;;;;;;;;;;10638:242;;10779:15;;10769:6;10754:8;:12;10763:2;10754:12;;;;;;;;;;;;;;;;:21;;;;:::i;:::-;:40;;10724:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;10638:242;10920:1;10900:16;;;;;;;;;;;:21;;;10896:239;;10995:6;10977:8;:14;10986:4;10977:14;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;11036:6;11020:8;:12;11029:2;11020:12;;;;;;;;;;;;;;;;:22;;;;;;;:::i;:::-;;;;;;;;11083:2;11068:26;;11077:4;11068:26;;;11087:6;11068:26;;;;;;:::i;:::-;;;;;;;;11113:7;;;10896:239;11163:13;11155:21;;:4;:21;;;11151:2253;;11213:5;;11204:6;;:14;;;;:::i;:::-;11197:21;;11151:2253;;;11250:13;11244:19;;:2;:19;;;11240:2164;;11284:20;11307:8;:23;11324:4;11307:23;;;;;;;;;;;;;;;;11284:46;;11368:7;;11353:12;:22;:47;;;;;11399:1;11379:16;;;;;;;;;;;:21;;;11353:47;11349:1932;;;11444:7;;11429:12;:22;11425:101;;;11495:7;;11480:22;;11425:101;11570:18;11645:5;;11639:1;11628:7;;11619:6;;:16;;;;:::i;:::-;11618:22;;;;:::i;:::-;11617:33;;;;:::i;:::-;11607:5;;11592:12;:20;;;;:::i;:::-;11591:61;;;;:::i;:::-;11570:82;;11675:17;11710:13;11695:12;:28;;;;:::i;:::-;11675:48;;11767:1;11748:16;;:20;;;;;;;;;;;;;;;;;;11791:21;11829:1;11815:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11791:40;;11872:4;11854;11859:1;11854:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;11910:4;11900;11905:1;11900:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;;;11959:15;:92;;;12082:12;12125:1;12157:4;12192:15;12238;11959:321;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12368:1;12352:13;:17;12347:850;;;12424:15;:92;;;12563:1;12547:13;:17;;;;:::i;:::-;12595:1;12627:4;12670;12706:15;12424:324;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12801:11;12815:21;12801:35;;12863:15;:57;;;12929:6;12945:4;12997:1;12981:13;:17;;;;:::i;:::-;13029:1;13061;13093:7;:5;:7::i;:::-;13131:15;12863:310;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12371:826;12347:850;13238:1;13219:16;;:20;;;;;;;;;;;;;;;;;;11402:1879;;;11349:1932;13334:5;;13324:7;;:15;;;;:::i;:::-;13317:22;;11265:2090;11240:2164;;;13387:1;13380:8;;11240:2164;11151:2253;10367:3048;13484:1;13476:4;:9;13472:593;;13530:17;13568:3;13560:4;13551:6;:13;;;;:::i;:::-;13550:21;;;;:::i;:::-;13530:41;;13586:22;13620:9;13611:6;:18;;;;:::i;:::-;13586:43;;13664:6;13646:8;:14;13655:4;13646:14;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;13701:14;13685:8;:12;13694:2;13685:12;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;13757:9;13730:8;:23;13747:4;13730:23;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;13809:4;13786:40;;13795:4;13786:40;;;13816:9;13786:40;;;;;;:::i;:::-;;;;;;;;13861:2;13846:34;;13855:4;13846:34;;;13865:14;13846:34;;;;;;:::i;:::-;;;;;;;;13487:405;;13472:593;;;13962:6;13944:8;:14;13953:4;13944:14;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;13999:6;13983:8;:12;13992:2;13983:12;;;;;;;;;;;;;;;;:22;;;;;;;:::i;:::-;;;;;;;;14042:2;14027:26;;14036:4;14027:26;;;14046:6;14027:26;;;;;;:::i;:::-;;;;;;;;13472:593;10200:3872;10097:3975;;;;:::o;1891:266::-;1999:1;1979:22;;:8;:22;;;1957:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;2112:8;2083:38;;2104:6;;;;;;;;;;2083:38;;;;;;;;;;;;2141:8;2132:6;;:17;;;;;;;;;;;;;;;;;;1891:266;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:329::-;5599:6;5648:2;5636:9;5627:7;5623:23;5619:32;5616:119;;;5654:79;;:::i;:::-;5616:119;5774:1;5799:53;5844:7;5835:6;5824:9;5820:22;5799:53;:::i;:::-;5789:63;;5745:117;5540:329;;;;:::o;5875:619::-;5952:6;5960;5968;6017:2;6005:9;5996:7;5992:23;5988:32;5985:119;;;6023:79;;:::i;:::-;5985:119;6143:1;6168:53;6213:7;6204:6;6193:9;6189:22;6168:53;:::i;:::-;6158:63;;6114:117;6270:2;6296:53;6341:7;6332:6;6321:9;6317:22;6296:53;:::i;:::-;6286:63;;6241:118;6398:2;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6369:118;5875:619;;;;;:::o;6500:117::-;6609:1;6606;6599:12;6623:117;6732:1;6729;6722:12;6746:117;6855:1;6852;6845:12;6886:568;6959:8;6969:6;7019:3;7012:4;7004:6;7000:17;6996:27;6986:122;;7027:79;;:::i;:::-;6986:122;7140:6;7127:20;7117:30;;7170:18;7162:6;7159:30;7156:117;;;7192:79;;:::i;:::-;7156:117;7306:4;7298:6;7294:17;7282:29;;7360:3;7352:4;7344:6;7340:17;7330:8;7326:32;7323:41;7320:128;;;7367:79;;:::i;:::-;7320:128;6886:568;;;;;:::o;7460:559::-;7546:6;7554;7603:2;7591:9;7582:7;7578:23;7574:32;7571:119;;;7609:79;;:::i;:::-;7571:119;7757:1;7746:9;7742:17;7729:31;7787:18;7779:6;7776:30;7773:117;;;7809:79;;:::i;:::-;7773:117;7922:80;7994:7;7985:6;7974:9;7970:22;7922:80;:::i;:::-;7904:98;;;;7700:312;7460:559;;;;;:::o;8025:474::-;8093:6;8101;8150:2;8138:9;8129:7;8125:23;8121:32;8118:119;;;8156:79;;:::i;:::-;8118:119;8276:1;8301:53;8346:7;8337:6;8326:9;8322:22;8301:53;:::i;:::-;8291:63;;8247:117;8403:2;8429:53;8474:7;8465:6;8454:9;8450:22;8429:53;:::i;:::-;8419:63;;8374:118;8025:474;;;;;:::o;8505:182::-;8645:34;8641:1;8633:6;8629:14;8622:58;8505:182;:::o;8693:366::-;8835:3;8856:67;8920:2;8915:3;8856:67;:::i;:::-;8849:74;;8932:93;9021:3;8932:93;:::i;:::-;9050:2;9045:3;9041:12;9034:19;;8693:366;;;:::o;9065:419::-;9231:4;9269:2;9258:9;9254:18;9246:26;;9318:9;9312:4;9308:20;9304:1;9293:9;9289:17;9282:47;9346:131;9472:4;9346:131;:::i;:::-;9338:139;;9065:419;;;:::o;9490:180::-;9630:32;9626:1;9618:6;9614:14;9607:56;9490:180;:::o;9676:366::-;9818:3;9839:67;9903:2;9898:3;9839:67;:::i;:::-;9832:74;;9915:93;10004:3;9915:93;:::i;:::-;10033:2;10028:3;10024:12;10017:19;;9676:366;;;:::o;10048:419::-;10214:4;10252:2;10241:9;10237:18;10229:26;;10301:9;10295:4;10291:20;10287:1;10276:9;10272:17;10265:47;10329:131;10455:4;10329:131;:::i;:::-;10321:139;;10048:419;;;:::o;10473:180::-;10521:77;10518:1;10511:88;10618:4;10615:1;10608:15;10642:4;10639:1;10632:15;10659:410;10699:7;10722:20;10740:1;10722:20;:::i;:::-;10717:25;;10756:20;10774:1;10756:20;:::i;:::-;10751:25;;10811:1;10808;10804:9;10833:30;10851:11;10833:30;:::i;:::-;10822:41;;11012:1;11003:7;10999:15;10996:1;10993:22;10973:1;10966:9;10946:83;10923:139;;11042:18;;:::i;:::-;10923:139;10707:362;10659:410;;;;:::o;11075:194::-;11115:4;11135:20;11153:1;11135:20;:::i;:::-;11130:25;;11169:20;11187:1;11169:20;:::i;:::-;11164:25;;11213:1;11210;11206:9;11198:17;;11237:1;11231:4;11228:11;11225:37;;;11242:18;;:::i;:::-;11225:37;11075:194;;;;:::o;11275:222::-;11415:34;11411:1;11403:6;11399:14;11392:58;11484:5;11479:2;11471:6;11467:15;11460:30;11275:222;:::o;11503:366::-;11645:3;11666:67;11730:2;11725:3;11666:67;:::i;:::-;11659:74;;11742:93;11831:3;11742:93;:::i;:::-;11860:2;11855:3;11851:12;11844:19;;11503:366;;;:::o;11875:419::-;12041:4;12079:2;12068:9;12064:18;12056:26;;12128:9;12122:4;12118:20;12114:1;12103:9;12099:17;12092:47;12156:131;12282:4;12156:131;:::i;:::-;12148:139;;11875:419;;;:::o;12300:227::-;12440:34;12436:1;12428:6;12424:14;12417:58;12509:10;12504:2;12496:6;12492:15;12485:35;12300:227;:::o;12533:366::-;12675:3;12696:67;12760:2;12755:3;12696:67;:::i;:::-;12689:74;;12772:93;12861:3;12772:93;:::i;:::-;12890:2;12885:3;12881:12;12874:19;;12533:366;;;:::o;12905:419::-;13071:4;13109:2;13098:9;13094:18;13086:26;;13158:9;13152:4;13148:20;13144:1;13133:9;13129:17;13122:47;13186:131;13312:4;13186:131;:::i;:::-;13178:139;;12905:419;;;:::o;13330:222::-;13470:34;13466:1;13458:6;13454:14;13447:58;13539:5;13534:2;13526:6;13522:15;13515:30;13330:222;:::o;13558:366::-;13700:3;13721:67;13785:2;13780:3;13721:67;:::i;:::-;13714:74;;13797:93;13886:3;13797:93;:::i;:::-;13915:2;13910:3;13906:12;13899:19;;13558:366;;;:::o;13930:419::-;14096:4;14134:2;14123:9;14119:18;14111:26;;14183:9;14177:4;14173:20;14169:1;14158:9;14154:17;14147:47;14211:131;14337:4;14211:131;:::i;:::-;14203:139;;13930:419;;;:::o;14355:224::-;14495:34;14491:1;14483:6;14479:14;14472:58;14564:7;14559:2;14551:6;14547:15;14540:32;14355:224;:::o;14585:366::-;14727:3;14748:67;14812:2;14807:3;14748:67;:::i;:::-;14741:74;;14824:93;14913:3;14824:93;:::i;:::-;14942:2;14937:3;14933:12;14926:19;;14585:366;;;:::o;14957:419::-;15123:4;15161:2;15150:9;15146:18;15138:26;;15210:9;15204:4;15200:20;15196:1;15185:9;15181:17;15174:47;15238:131;15364:4;15238:131;:::i;:::-;15230:139;;14957:419;;;:::o;15382:176::-;15522:28;15518:1;15510:6;15506:14;15499:52;15382:176;:::o;15564:366::-;15706:3;15727:67;15791:2;15786:3;15727:67;:::i;:::-;15720:74;;15803:93;15892:3;15803:93;:::i;:::-;15921:2;15916:3;15912:12;15905:19;;15564:366;;;:::o;15936:419::-;16102:4;16140:2;16129:9;16125:18;16117:26;;16189:9;16183:4;16179:20;16175:1;16164:9;16160:17;16153:47;16217:131;16343:4;16217:131;:::i;:::-;16209:139;;15936:419;;;:::o;16361:191::-;16401:3;16420:20;16438:1;16420:20;:::i;:::-;16415:25;;16454:20;16472:1;16454:20;:::i;:::-;16449:25;;16497:1;16494;16490:9;16483:16;;16518:3;16515:1;16512:10;16509:36;;;16525:18;;:::i;:::-;16509:36;16361:191;;;;:::o;16558:176::-;16698:28;16694:1;16686:6;16682:14;16675:52;16558:176;:::o;16740:366::-;16882:3;16903:67;16967:2;16962:3;16903:67;:::i;:::-;16896:74;;16979:93;17068:3;16979:93;:::i;:::-;17097:2;17092:3;17088:12;17081:19;;16740:366;;;:::o;17112:419::-;17278:4;17316:2;17305:9;17301:18;17293:26;;17365:9;17359:4;17355:20;17351:1;17340:9;17336:17;17329:47;17393:131;17519:4;17393:131;:::i;:::-;17385:139;;17112:419;;;:::o;17537:180::-;17585:77;17582:1;17575:88;17682:4;17679:1;17672:15;17706:4;17703:1;17696:15;17723:233;17762:3;17785:24;17803:5;17785:24;:::i;:::-;17776:33;;17831:66;17824:5;17821:77;17818:103;;17901:18;;:::i;:::-;17818:103;17948:1;17941:5;17937:13;17930:20;;17723:233;;;:::o;17962:172::-;18102:24;18098:1;18090:6;18086:14;18079:48;17962:172;:::o;18140:366::-;18282:3;18303:67;18367:2;18362:3;18303:67;:::i;:::-;18296:74;;18379:93;18468:3;18379:93;:::i;:::-;18497:2;18492:3;18488:12;18481:19;;18140:366;;;:::o;18512:419::-;18678:4;18716:2;18705:9;18701:18;18693:26;;18765:9;18759:4;18755:20;18751:1;18740:9;18736:17;18729:47;18793:131;18919:4;18793:131;:::i;:::-;18785:139;;18512:419;;;:::o;18937:223::-;19077:34;19073:1;19065:6;19061:14;19054:58;19146:6;19141:2;19133:6;19129:15;19122:31;18937:223;:::o;19166:366::-;19308:3;19329:67;19393:2;19388:3;19329:67;:::i;:::-;19322:74;;19405:93;19494:3;19405:93;:::i;:::-;19523:2;19518:3;19514:12;19507:19;;19166:366;;;:::o;19538:419::-;19704:4;19742:2;19731:9;19727:18;19719:26;;19791:9;19785:4;19781:20;19777:1;19766:9;19762:17;19755:47;19819:131;19945:4;19819:131;:::i;:::-;19811:139;;19538:419;;;:::o;19963:221::-;20103:34;20099:1;20091:6;20087:14;20080:58;20172:4;20167:2;20159:6;20155:15;20148:29;19963:221;:::o;20190:366::-;20332:3;20353:67;20417:2;20412:3;20353:67;:::i;:::-;20346:74;;20429:93;20518:3;20429:93;:::i;:::-;20547:2;20542:3;20538:12;20531:19;;20190:366;;;:::o;20562:419::-;20728:4;20766:2;20755:9;20751:18;20743:26;;20815:9;20809:4;20805:20;20801:1;20790:9;20786:17;20779:47;20843:131;20969:4;20843:131;:::i;:::-;20835:139;;20562:419;;;:::o;20987:224::-;21127:34;21123:1;21115:6;21111:14;21104:58;21196:7;21191:2;21183:6;21179:15;21172:32;20987:224;:::o;21217:366::-;21359:3;21380:67;21444:2;21439:3;21380:67;:::i;:::-;21373:74;;21456:93;21545:3;21456:93;:::i;:::-;21574:2;21569:3;21565:12;21558:19;;21217:366;;;:::o;21589:419::-;21755:4;21793:2;21782:9;21778:18;21770:26;;21842:9;21836:4;21832:20;21828:1;21817:9;21813:17;21806:47;21870:131;21996:4;21870:131;:::i;:::-;21862:139;;21589:419;;;:::o;22014:166::-;22154:18;22150:1;22142:6;22138:14;22131:42;22014:166;:::o;22186:366::-;22328:3;22349:67;22413:2;22408:3;22349:67;:::i;:::-;22342:74;;22425:93;22514:3;22425:93;:::i;:::-;22543:2;22538:3;22534:12;22527:19;;22186:366;;;:::o;22558:419::-;22724:4;22762:2;22751:9;22747:18;22739:26;;22811:9;22805:4;22801:20;22797:1;22786:9;22782:17;22775:47;22839:131;22965:4;22839:131;:::i;:::-;22831:139;;22558:419;;;:::o;22983:221::-;23123:34;23119:1;23111:6;23107:14;23100:58;23192:4;23187:2;23179:6;23175:15;23168:29;22983:221;:::o;23210:366::-;23352:3;23373:67;23437:2;23432:3;23373:67;:::i;:::-;23366:74;;23449:93;23538:3;23449:93;:::i;:::-;23567:2;23562:3;23558:12;23551:19;;23210:366;;;:::o;23582:419::-;23748:4;23786:2;23775:9;23771:18;23763:26;;23835:9;23829:4;23825:20;23821:1;23810:9;23806:17;23799:47;23863:131;23989:4;23863:131;:::i;:::-;23855:139;;23582:419;;;:::o;24007:176::-;24147:28;24143:1;24135:6;24131:14;24124:52;24007:176;:::o;24189:366::-;24331:3;24352:67;24416:2;24411:3;24352:67;:::i;:::-;24345:74;;24428:93;24517:3;24428:93;:::i;:::-;24546:2;24541:3;24537:12;24530:19;;24189:366;;;:::o;24561:419::-;24727:4;24765:2;24754:9;24750:18;24742:26;;24814:9;24808:4;24804:20;24800:1;24789:9;24785:17;24778:47;24842:131;24968:4;24842:131;:::i;:::-;24834:139;;24561:419;;;:::o;24986:180::-;25034:77;25031:1;25024:88;25131:4;25128:1;25121:15;25155:4;25152:1;25145:15;25172:185;25212:1;25229:20;25247:1;25229:20;:::i;:::-;25224:25;;25263:20;25281:1;25263:20;:::i;:::-;25258:25;;25302:1;25292:35;;25307:18;;:::i;:::-;25292:35;25349:1;25346;25342:9;25337:14;;25172:185;;;;:::o;25363:180::-;25411:77;25408:1;25401:88;25508:4;25505:1;25498:15;25532:4;25529:1;25522:15;25549:85;25594:7;25623:5;25612:16;;25549:85;;;:::o;25640:60::-;25668:3;25689:5;25682:12;;25640:60;;;:::o;25706:158::-;25764:9;25797:61;25815:42;25824:32;25850:5;25824:32;:::i;:::-;25815:42;:::i;:::-;25797:61;:::i;:::-;25784:74;;25706:158;;;:::o;25870:147::-;25965:45;26004:5;25965:45;:::i;:::-;25960:3;25953:58;25870:147;;:::o;26023:114::-;26090:6;26124:5;26118:12;26108:22;;26023:114;;;:::o;26143:184::-;26242:11;26276:6;26271:3;26264:19;26316:4;26311:3;26307:14;26292:29;;26143:184;;;;:::o;26333:132::-;26400:4;26423:3;26415:11;;26453:4;26448:3;26444:14;26436:22;;26333:132;;;:::o;26471:108::-;26548:24;26566:5;26548:24;:::i;:::-;26543:3;26536:37;26471:108;;:::o;26585:179::-;26654:10;26675:46;26717:3;26709:6;26675:46;:::i;:::-;26753:4;26748:3;26744:14;26730:28;;26585:179;;;;:::o;26770:113::-;26840:4;26872;26867:3;26863:14;26855:22;;26770:113;;;:::o;26919:732::-;27038:3;27067:54;27115:5;27067:54;:::i;:::-;27137:86;27216:6;27211:3;27137:86;:::i;:::-;27130:93;;27247:56;27297:5;27247:56;:::i;:::-;27326:7;27357:1;27342:284;27367:6;27364:1;27361:13;27342:284;;;27443:6;27437:13;27470:63;27529:3;27514:13;27470:63;:::i;:::-;27463:70;;27556:60;27609:6;27556:60;:::i;:::-;27546:70;;27402:224;27389:1;27386;27382:9;27377:14;;27342:284;;;27346:14;27642:3;27635:10;;27043:608;;;26919:732;;;;:::o;27657:142::-;27707:9;27740:53;27758:34;27767:24;27785:5;27767:24;:::i;:::-;27758:34;:::i;:::-;27740:53;:::i;:::-;27727:66;;27657:142;;;:::o;27805:126::-;27855:9;27888:37;27919:5;27888:37;:::i;:::-;27875:50;;27805:126;;;:::o;27937:134::-;27995:9;28028:37;28059:5;28028:37;:::i;:::-;28015:50;;27937:134;;;:::o;28077:147::-;28172:45;28211:5;28172:45;:::i;:::-;28167:3;28160:58;28077:147;;:::o;28230:847::-;28501:4;28539:3;28528:9;28524:19;28516:27;;28553:71;28621:1;28610:9;28606:17;28597:6;28553:71;:::i;:::-;28634:80;28710:2;28699:9;28695:18;28686:6;28634:80;:::i;:::-;28761:9;28755:4;28751:20;28746:2;28735:9;28731:18;28724:48;28789:108;28892:4;28883:6;28789:108;:::i;:::-;28781:116;;28907:80;28983:2;28972:9;28968:18;28959:6;28907:80;:::i;:::-;28997:73;29065:3;29054:9;29050:19;29041:6;28997:73;:::i;:::-;28230:847;;;;;;;;:::o;29083:831::-;29346:4;29384:3;29373:9;29369:19;29361:27;;29398:71;29466:1;29455:9;29451:17;29442:6;29398:71;:::i;:::-;29479:80;29555:2;29544:9;29540:18;29531:6;29479:80;:::i;:::-;29606:9;29600:4;29596:20;29591:2;29580:9;29576:18;29569:48;29634:108;29737:4;29728:6;29634:108;:::i;:::-;29626:116;;29752:72;29820:2;29809:9;29805:18;29796:6;29752:72;:::i;:::-;29834:73;29902:3;29891:9;29887:19;29878:6;29834:73;:::i;:::-;29083:831;;;;;;;;:::o;29920:807::-;30169:4;30207:3;30196:9;30192:19;30184:27;;30221:71;30289:1;30278:9;30274:17;30265:6;30221:71;:::i;:::-;30302:72;30370:2;30359:9;30355:18;30346:6;30302:72;:::i;:::-;30384:80;30460:2;30449:9;30445:18;30436:6;30384:80;:::i;:::-;30474;30550:2;30539:9;30535:18;30526:6;30474:80;:::i;:::-;30564:73;30632:3;30621:9;30617:19;30608:6;30564:73;:::i;:::-;30647;30715:3;30704:9;30700:19;30691:6;30647:73;:::i;:::-;29920:807;;;;;;;;;:::o;30733:143::-;30790:5;30821:6;30815:13;30806:22;;30837:33;30864:5;30837:33;:::i;:::-;30733:143;;;;:::o;30882:663::-;30970:6;30978;30986;31035:2;31023:9;31014:7;31010:23;31006:32;31003:119;;;31041:79;;:::i;:::-;31003:119;31161:1;31186:64;31242:7;31233:6;31222:9;31218:22;31186:64;:::i;:::-;31176:74;;31132:128;31299:2;31325:64;31381:7;31372:6;31361:9;31357:22;31325:64;:::i;:::-;31315:74;;31270:129;31438:2;31464:64;31520:7;31511:6;31500:9;31496:22;31464:64;:::i;:::-;31454:74;;31409:129;30882:663;;;;;:::o;31551:225::-;31691:34;31687:1;31679:6;31675:14;31668:58;31760:8;31755:2;31747:6;31743:15;31736:33;31551:225;:::o;31782:366::-;31924:3;31945:67;32009:2;32004:3;31945:67;:::i;:::-;31938:74;;32021:93;32110:3;32021:93;:::i;:::-;32139:2;32134:3;32130:12;32123:19;;31782:366;;;:::o;32154:419::-;32320:4;32358:2;32347:9;32343:18;32335:26;;32407:9;32401:4;32397:20;32393:1;32382:9;32378:17;32371:47;32435:131;32561:4;32435:131;:::i;:::-;32427:139;;32154:419;;;:::o

Swarm Source

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