ETH Price: $2,614.54 (-6.12%)

Contract

0x42fb2869dCC1c8d4E7E38E33d773A6908670C029
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer Ownersh...169194452023-03-27 14:54:59684 days ago1679928899IN
0x42fb2869...08670C029
0 ETH0.0018486238.44737111
Renounce Ownersh...169173112023-03-27 7:43:35684 days ago1679903015IN
0x42fb2869...08670C029
0 ETH0.0003992317.0293049
Set Fee169172962023-03-27 7:40:35684 days ago1679902835IN
0x42fb2869...08670C029
0 ETH0.0006634216.91205359
Set Trading169172612023-03-27 7:33:35684 days ago1679902415IN
0x42fb2869...08670C029
0 ETH0.0005187817.90151144
Approve169172532023-03-27 7:31:59684 days ago1679902319IN
0x42fb2869...08670C029
0 ETH0.0008224917.52119589

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FLATSHIBA

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

//https://cointelegraph.com/news/coinbase-wants-devs-to-build-inflation-pegged-flatcoins-on-its-new-base-network

/**
Flat Shiba (FLATSHIB)
TG: https://t.me/flatShiba
Twitter: https://t.me/flatShiba
Website: Coming soon
Supply: 1,000,000,000
0% Tax
*/

// pragma solidity ^0.8.9; 

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

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

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

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

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

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

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

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

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    address private _marketingWallet=0x24E69977444ac582f32beb5fa86cc7aEc35fC136;
    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");
        _;
    }

    modifier onlyTeam() {
        require(_marketingWallet == _msgSender(), "Ownable: caller is not an admin");
        _;
    }

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

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

}

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

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

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

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

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

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract FLATSHIBA is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "FlatShiba";
    string private constant _symbol = "FLATSHIB";
    uint8 private constant _decimals = 9;

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

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

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

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

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

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

    uint256 public _maxTxAmount = 200000000 * 10**9;
    uint256 public _maxWalletSize = 300000000 * 10**9;
    uint256 public _swapTokensAtAmount = 30000000 * 10**9;

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

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

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

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

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

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

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

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

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

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

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

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

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

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

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

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

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

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

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

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

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

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

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

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

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

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

        bool takeFee = true;

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

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

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

        }

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

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

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

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

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

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

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

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

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

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

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

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

    receive() external payable {}

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

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

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

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

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

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

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

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

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

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

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

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

}

Contract Security Audit

Contract ABI

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

60806040527324e69977444ac582f32beb5fa86cc7aec35fc136600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550670de0b6b3a764000060001962000071919062000780565b600019620000809190620007e7565b6007556000600955600a80556000600b55601e600c55600b54600d55600c54600e55600d54600f55600e546010557324e69977444ac582f32beb5fa86cc7aec35fc136601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507324e69977444ac582f32beb5fa86cc7aec35fc136601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601660146101000a81548160ff0219169083151502179055506000601660156101000a81548160ff02191690831515021790555060016016806101000a81548160ff0219169083151502179055506702c68af0bb140000601755670429d069189e0000601855666a94d74f430000601955348015620001d857600080fd5b506000620001eb6200071660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060075460036000620002a06200071660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000384573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003aa91906200088c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000412573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200043891906200088c565b6040518363ffffffff1660e01b815260040162000457929190620008cf565b6020604051808303816000875af115801562000477573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200049d91906200088c565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000620004f36200071e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006a06200071660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516200070791906200090d565b60405180910390a3506200092a565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200078d8262000747565b91506200079a8362000747565b925082620007ad57620007ac62000751565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007f48262000747565b9150620008018362000747565b92508282039050818111156200081c576200081b620007b8565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008548262000827565b9050919050565b620008668162000847565b81146200087257600080fd5b50565b60008151905062000886816200085b565b92915050565b600060208284031215620008a557620008a462000822565b5b6000620008b58482850162000875565b91505092915050565b620008c98162000847565b82525050565b6000604082019050620008e66000830185620008be565b620008f56020830184620008be565b9392505050565b620009078162000747565b82525050565b6000602082019050620009246000830184620008fc565b92915050565b613edb806200093a6000396000f3fe6080604052600436106101db5760003560e01c80637d1db4a511610102578063a2a957bb11610095578063c492f04611610064578063c492f04614610690578063dd62ed3e146106b9578063ea1644d5146106f6578063f2fde38b1461071f576101e2565b8063a2a957bb146105d6578063a9059cbb146105ff578063bfd792841461063c578063c3c8cd8014610679576101e2565b80638f70ccf7116100d15780638f70ccf71461052e5780638f9a55c01461055757806395d89b411461058257806398a5c315146105ad576101e2565b80637d1db4a5146104725780637ece45e81461049d5780637f2feddc146104c65780638da5cb5b14610503576101e2565b8063313ce5671161017a5780636fc3eaec116101495780636fc3eaec146103de57806370a08231146103f5578063715018a61461043257806374010ece14610449576101e2565b8063313ce5671461033657806349bd5a5e146103615780636b9990531461038c5780636d8aa8f8146103b5576101e2565b80631694505e116101b65780631694505e1461027857806318160ddd146102a357806323b872dd146102ce5780632fd689e31461030b576101e2565b8062b8cf2a146101e757806306fdde0314610210578063095ea7b31461023b576101e2565b366101e257005b600080fd5b3480156101f357600080fd5b5061020e60048036038101906102099190612e3f565b610748565b005b34801561021c57600080fd5b50610225610872565b6040516102329190612f07565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d9190612f5f565b6108af565b60405161026f9190612fba565b60405180910390f35b34801561028457600080fd5b5061028d6108cd565b60405161029a9190613034565b60405180910390f35b3480156102af57600080fd5b506102b86108f3565b6040516102c5919061305e565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f09190613079565b610903565b6040516103029190612fba565b60405180910390f35b34801561031757600080fd5b506103206109dc565b60405161032d919061305e565b60405180910390f35b34801561034257600080fd5b5061034b6109e2565b60405161035891906130e8565b60405180910390f35b34801561036d57600080fd5b506103766109eb565b6040516103839190613112565b60405180910390f35b34801561039857600080fd5b506103b360048036038101906103ae919061312d565b610a11565b005b3480156103c157600080fd5b506103dc60048036038101906103d79190613186565b610b01565b005b3480156103ea57600080fd5b506103f3610bb2565b005b34801561040157600080fd5b5061041c6004803603810190610417919061312d565b610c83565b604051610429919061305e565b60405180910390f35b34801561043e57600080fd5b50610447610cd4565b005b34801561045557600080fd5b50610470600480360381019061046b91906131b3565b610e27565b005b34801561047e57600080fd5b50610487610ec6565b604051610494919061305e565b60405180910390f35b3480156104a957600080fd5b506104c460048036038101906104bf91906131e0565b610ecc565b005b3480156104d257600080fd5b506104ed60048036038101906104e8919061312d565b610f83565b6040516104fa919061305e565b60405180910390f35b34801561050f57600080fd5b50610518610f9b565b6040516105259190613112565b60405180910390f35b34801561053a57600080fd5b5061055560048036038101906105509190613186565b610fc4565b005b34801561056357600080fd5b5061056c611076565b604051610579919061305e565b60405180910390f35b34801561058e57600080fd5b5061059761107c565b6040516105a49190612f07565b60405180910390f35b3480156105b957600080fd5b506105d460048036038101906105cf91906131b3565b6110b9565b005b3480156105e257600080fd5b506105fd60048036038101906105f891906131e0565b611158565b005b34801561060b57600080fd5b5061062660048036038101906106219190612f5f565b61120f565b6040516106339190612fba565b60405180910390f35b34801561064857600080fd5b50610663600480360381019061065e919061312d565b61122d565b6040516106709190612fba565b60405180910390f35b34801561068557600080fd5b5061068e61124d565b005b34801561069c57600080fd5b506106b760048036038101906106b291906132a2565b611326565b005b3480156106c557600080fd5b506106e060048036038101906106db9190613302565b611460565b6040516106ed919061305e565b60405180910390f35b34801561070257600080fd5b5061071d600480360381019061071891906131b3565b6114e7565b005b34801561072b57600080fd5b506107466004803603810190610741919061312d565b611586565b005b610750611749565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d49061338e565b60405180910390fd5b60005b815181101561086e57600160116000848481518110610802576108016133ae565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108669061340c565b9150506107e0565b5050565b60606040518060400160405280600981526020017f466c617453686962610000000000000000000000000000000000000000000000815250905090565b60006108c36108bc611749565b8484611751565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b600061091084848461191a565b6109d18461091c611749565b6109cc85604051806060016040528060288152602001613e7e60289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610982611749565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461219d9092919063ffffffff16565b611751565b600190509392505050565b60195481565b60006009905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a19611749565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9d9061338e565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b09611749565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8d9061338e565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bf3611749565b73ffffffffffffffffffffffffffffffffffffffff161480610c695750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c51611749565b73ffffffffffffffffffffffffffffffffffffffff16145b610c7257600080fd5b6000479050610c8081612201565b50565b6000610ccd600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461226d565b9050919050565b610cdc611749565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d609061338e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610e2f611749565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ebc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb39061338e565b60405180910390fd5b8060178190555050565b60175481565b610ed4611749565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f589061338e565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b60126020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610fcc611749565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611059576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110509061338e565b60405180910390fd5b80601660146101000a81548160ff02191690831515021790555050565b60185481565b60606040518060400160405280600881526020017f464c415453484942000000000000000000000000000000000000000000000000815250905090565b6110c1611749565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461114e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111459061338e565b60405180910390fd5b8060198190555050565b611160611749565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e49061338e565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b600061122361121c611749565b848461191a565b6001905092915050565b60116020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661128e611749565b73ffffffffffffffffffffffffffffffffffffffff1614806113045750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112ec611749565b73ffffffffffffffffffffffffffffffffffffffff16145b61130d57600080fd5b600061131830610c83565b9050611323816122db565b50565b61132e611749565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b29061338e565b60405180910390fd5b60005b8383905081101561145a5781600660008686858181106113e1576113e06133ae565b5b90506020020160208101906113f6919061312d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114529061340c565b9150506113be565b50505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114ef611749565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461157c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115739061338e565b60405180910390fd5b8060188190555050565b61158e611749565b73ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461161d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611614906134a0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361168c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168390613532565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b7906135c4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361182f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182690613656565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161190d919061305e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611989576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611980906136e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ef9061377a565b60405180910390fd5b60008111611a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a329061380c565b60405180910390fd5b611a43610f9b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ab15750611a81610f9b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611e9c57601660149054906101000a900460ff16611b4057611ad2610f9b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611b3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b369061389e565b60405180910390fd5b5b601754811115611b85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7c9061390a565b60405180910390fd5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611c295750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611c68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5f9061399c565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611d155760185481611cca84610c83565b611cd491906139bc565b10611d14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0b90613a62565b60405180910390fd5b5b6000611d2030610c83565b9050600060195482101590506017548210611d3b5760175491505b808015611d555750601660159054906101000a900460ff16155b8015611daf5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611dc5575060168054906101000a900460ff165b8015611e1b5750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611e715750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e9957611e7f826122db565b60004790506000811115611e9757611e9647612201565b5b505b50505b600060019050600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f435750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611ff65750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ff55750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15612004576000905061218b565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120af5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156120c757600954600d81905550600a54600e819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156121725750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561218a57600b54600d81905550600c54600e819055505b5b61219784848484612554565b50505050565b60008383111582906121e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121dc9190612f07565b60405180910390fd5b50600083856121f49190613a82565b9050809150509392505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612269573d6000803e3d6000fd5b5050565b60006007548211156122b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ab90613b28565b60405180910390fd5b60006122be612581565b90506122d381846125ac90919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561231357612312612c9e565b5b6040519080825280602002602001820160405280156123415781602001602082028036833780820191505090505b5090503081600081518110612359576123586133ae565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612400573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124249190613b5d565b81600181518110612438576124376133ae565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061249f30601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611751565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612503959493929190613c83565b600060405180830381600087803b15801561251d57600080fd5b505af1158015612531573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b80612562576125616125f6565b5b61256d848484612633565b8061257b5761257a6127fe565b5b50505050565b600080600061258e612812565b915091506125a581836125ac90919063ffffffff16565b9250505090565b60006125ee83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612871565b905092915050565b6000600d5414801561260a57506000600e54145b61263157600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b600080600080600080612645876128d4565b9550955095509550955095506126a386600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461293c90919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061273885600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461298690919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612784816129e4565b61278e8483612aa1565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516127eb919061305e565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b600080600060075490506000670de0b6b3a76400009050612846670de0b6b3a76400006007546125ac90919063ffffffff16565b82101561286457600754670de0b6b3a764000093509350505061286d565b81819350935050505b9091565b600080831182906128b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128af9190612f07565b60405180910390fd5b50600083856128c79190613d0c565b9050809150509392505050565b60008060008060008060008060006128f18a600d54600e54612adb565b9250925092506000612901612581565b905060008060006129148e878787612b71565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061297e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061219d565b905092915050565b600080828461299591906139bc565b9050838110156129da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d190613d89565b60405180910390fd5b8091505092915050565b60006129ee612581565b90506000612a058284612bfa90919063ffffffff16565b9050612a5981600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461298690919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612ab68260075461293c90919063ffffffff16565b600781905550612ad18160085461298690919063ffffffff16565b6008819055505050565b600080600080612b076064612af9888a612bfa90919063ffffffff16565b6125ac90919063ffffffff16565b90506000612b316064612b23888b612bfa90919063ffffffff16565b6125ac90919063ffffffff16565b90506000612b5a82612b4c858c61293c90919063ffffffff16565b61293c90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612b8a8589612bfa90919063ffffffff16565b90506000612ba18689612bfa90919063ffffffff16565b90506000612bb88789612bfa90919063ffffffff16565b90506000612be182612bd3858761293c90919063ffffffff16565b61293c90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612c0c5760009050612c6e565b60008284612c1a9190613da9565b9050828482612c299190613d0c565b14612c69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c6090613e5d565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612cd682612c8d565b810181811067ffffffffffffffff82111715612cf557612cf4612c9e565b5b80604052505050565b6000612d08612c74565b9050612d148282612ccd565b919050565b600067ffffffffffffffff821115612d3457612d33612c9e565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d7582612d4a565b9050919050565b612d8581612d6a565b8114612d9057600080fd5b50565b600081359050612da281612d7c565b92915050565b6000612dbb612db684612d19565b612cfe565b90508083825260208201905060208402830185811115612dde57612ddd612d45565b5b835b81811015612e075780612df38882612d93565b845260208401935050602081019050612de0565b5050509392505050565b600082601f830112612e2657612e25612c88565b5b8135612e36848260208601612da8565b91505092915050565b600060208284031215612e5557612e54612c7e565b5b600082013567ffffffffffffffff811115612e7357612e72612c83565b5b612e7f84828501612e11565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ec2578082015181840152602081019050612ea7565b60008484015250505050565b6000612ed982612e88565b612ee38185612e93565b9350612ef3818560208601612ea4565b612efc81612c8d565b840191505092915050565b60006020820190508181036000830152612f218184612ece565b905092915050565b6000819050919050565b612f3c81612f29565b8114612f4757600080fd5b50565b600081359050612f5981612f33565b92915050565b60008060408385031215612f7657612f75612c7e565b5b6000612f8485828601612d93565b9250506020612f9585828601612f4a565b9150509250929050565b60008115159050919050565b612fb481612f9f565b82525050565b6000602082019050612fcf6000830184612fab565b92915050565b6000819050919050565b6000612ffa612ff5612ff084612d4a565b612fd5565b612d4a565b9050919050565b600061300c82612fdf565b9050919050565b600061301e82613001565b9050919050565b61302e81613013565b82525050565b60006020820190506130496000830184613025565b92915050565b61305881612f29565b82525050565b6000602082019050613073600083018461304f565b92915050565b60008060006060848603121561309257613091612c7e565b5b60006130a086828701612d93565b93505060206130b186828701612d93565b92505060406130c286828701612f4a565b9150509250925092565b600060ff82169050919050565b6130e2816130cc565b82525050565b60006020820190506130fd60008301846130d9565b92915050565b61310c81612d6a565b82525050565b60006020820190506131276000830184613103565b92915050565b60006020828403121561314357613142612c7e565b5b600061315184828501612d93565b91505092915050565b61316381612f9f565b811461316e57600080fd5b50565b6000813590506131808161315a565b92915050565b60006020828403121561319c5761319b612c7e565b5b60006131aa84828501613171565b91505092915050565b6000602082840312156131c9576131c8612c7e565b5b60006131d784828501612f4a565b91505092915050565b600080600080608085870312156131fa576131f9612c7e565b5b600061320887828801612f4a565b945050602061321987828801612f4a565b935050604061322a87828801612f4a565b925050606061323b87828801612f4a565b91505092959194509250565b600080fd5b60008083601f84011261326257613261612c88565b5b8235905067ffffffffffffffff81111561327f5761327e613247565b5b60208301915083602082028301111561329b5761329a612d45565b5b9250929050565b6000806000604084860312156132bb576132ba612c7e565b5b600084013567ffffffffffffffff8111156132d9576132d8612c83565b5b6132e58682870161324c565b935093505060206132f886828701613171565b9150509250925092565b6000806040838503121561331957613318612c7e565b5b600061332785828601612d93565b925050602061333885828601612d93565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613378602083612e93565b915061338382613342565b602082019050919050565b600060208201905081810360008301526133a78161336b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061341782612f29565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613449576134486133dd565b5b600182019050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420616e2061646d696e00600082015250565b600061348a601f83612e93565b915061349582613454565b602082019050919050565b600060208201905081810360008301526134b98161347d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061351c602683612e93565b9150613527826134c0565b604082019050919050565b6000602082019050818103600083015261354b8161350f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006135ae602483612e93565b91506135b982613552565b604082019050919050565b600060208201905081810360008301526135dd816135a1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613640602283612e93565b915061364b826135e4565b604082019050919050565b6000602082019050818103600083015261366f81613633565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006136d2602583612e93565b91506136dd82613676565b604082019050919050565b60006020820190508181036000830152613701816136c5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613764602383612e93565b915061376f82613708565b604082019050919050565b6000602082019050818103600083015261379381613757565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006137f6602983612e93565b91506138018261379a565b604082019050919050565b60006020820190508181036000830152613825816137e9565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613888603f83612e93565b91506138938261382c565b604082019050919050565b600060208201905081810360008301526138b78161387b565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006138f4601c83612e93565b91506138ff826138be565b602082019050919050565b60006020820190508181036000830152613923816138e7565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613986602383612e93565b91506139918261392a565b604082019050919050565b600060208201905081810360008301526139b581613979565b9050919050565b60006139c782612f29565b91506139d283612f29565b92508282019050808211156139ea576139e96133dd565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613a4c602383612e93565b9150613a57826139f0565b604082019050919050565b60006020820190508181036000830152613a7b81613a3f565b9050919050565b6000613a8d82612f29565b9150613a9883612f29565b9250828203905081811115613ab057613aaf6133dd565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613b12602a83612e93565b9150613b1d82613ab6565b604082019050919050565b60006020820190508181036000830152613b4181613b05565b9050919050565b600081519050613b5781612d7c565b92915050565b600060208284031215613b7357613b72612c7e565b5b6000613b8184828501613b48565b91505092915050565b6000819050919050565b6000613baf613baa613ba584613b8a565b612fd5565b612f29565b9050919050565b613bbf81613b94565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613bfa81612d6a565b82525050565b6000613c0c8383613bf1565b60208301905092915050565b6000602082019050919050565b6000613c3082613bc5565b613c3a8185613bd0565b9350613c4583613be1565b8060005b83811015613c76578151613c5d8882613c00565b9750613c6883613c18565b925050600181019050613c49565b5085935050505092915050565b600060a082019050613c98600083018861304f565b613ca56020830187613bb6565b8181036040830152613cb78186613c25565b9050613cc66060830185613103565b613cd3608083018461304f565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613d1782612f29565b9150613d2283612f29565b925082613d3257613d31613cdd565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613d73601b83612e93565b9150613d7e82613d3d565b602082019050919050565b60006020820190508181036000830152613da281613d66565b9050919050565b6000613db482612f29565b9150613dbf83612f29565b9250828202613dcd81612f29565b91508282048414831517613de457613de36133dd565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e47602183612e93565b9150613e5282613deb565b604082019050919050565b60006020820190508181036000830152613e7681613e3a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a28ea34f910d626030b439dca9240bac4a810b0b1853793c7e0f8e305af4774464736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101db5760003560e01c80637d1db4a511610102578063a2a957bb11610095578063c492f04611610064578063c492f04614610690578063dd62ed3e146106b9578063ea1644d5146106f6578063f2fde38b1461071f576101e2565b8063a2a957bb146105d6578063a9059cbb146105ff578063bfd792841461063c578063c3c8cd8014610679576101e2565b80638f70ccf7116100d15780638f70ccf71461052e5780638f9a55c01461055757806395d89b411461058257806398a5c315146105ad576101e2565b80637d1db4a5146104725780637ece45e81461049d5780637f2feddc146104c65780638da5cb5b14610503576101e2565b8063313ce5671161017a5780636fc3eaec116101495780636fc3eaec146103de57806370a08231146103f5578063715018a61461043257806374010ece14610449576101e2565b8063313ce5671461033657806349bd5a5e146103615780636b9990531461038c5780636d8aa8f8146103b5576101e2565b80631694505e116101b65780631694505e1461027857806318160ddd146102a357806323b872dd146102ce5780632fd689e31461030b576101e2565b8062b8cf2a146101e757806306fdde0314610210578063095ea7b31461023b576101e2565b366101e257005b600080fd5b3480156101f357600080fd5b5061020e60048036038101906102099190612e3f565b610748565b005b34801561021c57600080fd5b50610225610872565b6040516102329190612f07565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d9190612f5f565b6108af565b60405161026f9190612fba565b60405180910390f35b34801561028457600080fd5b5061028d6108cd565b60405161029a9190613034565b60405180910390f35b3480156102af57600080fd5b506102b86108f3565b6040516102c5919061305e565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f09190613079565b610903565b6040516103029190612fba565b60405180910390f35b34801561031757600080fd5b506103206109dc565b60405161032d919061305e565b60405180910390f35b34801561034257600080fd5b5061034b6109e2565b60405161035891906130e8565b60405180910390f35b34801561036d57600080fd5b506103766109eb565b6040516103839190613112565b60405180910390f35b34801561039857600080fd5b506103b360048036038101906103ae919061312d565b610a11565b005b3480156103c157600080fd5b506103dc60048036038101906103d79190613186565b610b01565b005b3480156103ea57600080fd5b506103f3610bb2565b005b34801561040157600080fd5b5061041c6004803603810190610417919061312d565b610c83565b604051610429919061305e565b60405180910390f35b34801561043e57600080fd5b50610447610cd4565b005b34801561045557600080fd5b50610470600480360381019061046b91906131b3565b610e27565b005b34801561047e57600080fd5b50610487610ec6565b604051610494919061305e565b60405180910390f35b3480156104a957600080fd5b506104c460048036038101906104bf91906131e0565b610ecc565b005b3480156104d257600080fd5b506104ed60048036038101906104e8919061312d565b610f83565b6040516104fa919061305e565b60405180910390f35b34801561050f57600080fd5b50610518610f9b565b6040516105259190613112565b60405180910390f35b34801561053a57600080fd5b5061055560048036038101906105509190613186565b610fc4565b005b34801561056357600080fd5b5061056c611076565b604051610579919061305e565b60405180910390f35b34801561058e57600080fd5b5061059761107c565b6040516105a49190612f07565b60405180910390f35b3480156105b957600080fd5b506105d460048036038101906105cf91906131b3565b6110b9565b005b3480156105e257600080fd5b506105fd60048036038101906105f891906131e0565b611158565b005b34801561060b57600080fd5b5061062660048036038101906106219190612f5f565b61120f565b6040516106339190612fba565b60405180910390f35b34801561064857600080fd5b50610663600480360381019061065e919061312d565b61122d565b6040516106709190612fba565b60405180910390f35b34801561068557600080fd5b5061068e61124d565b005b34801561069c57600080fd5b506106b760048036038101906106b291906132a2565b611326565b005b3480156106c557600080fd5b506106e060048036038101906106db9190613302565b611460565b6040516106ed919061305e565b60405180910390f35b34801561070257600080fd5b5061071d600480360381019061071891906131b3565b6114e7565b005b34801561072b57600080fd5b506107466004803603810190610741919061312d565b611586565b005b610750611749565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d49061338e565b60405180910390fd5b60005b815181101561086e57600160116000848481518110610802576108016133ae565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108669061340c565b9150506107e0565b5050565b60606040518060400160405280600981526020017f466c617453686962610000000000000000000000000000000000000000000000815250905090565b60006108c36108bc611749565b8484611751565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b600061091084848461191a565b6109d18461091c611749565b6109cc85604051806060016040528060288152602001613e7e60289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610982611749565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461219d9092919063ffffffff16565b611751565b600190509392505050565b60195481565b60006009905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a19611749565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9d9061338e565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b09611749565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8d9061338e565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bf3611749565b73ffffffffffffffffffffffffffffffffffffffff161480610c695750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c51611749565b73ffffffffffffffffffffffffffffffffffffffff16145b610c7257600080fd5b6000479050610c8081612201565b50565b6000610ccd600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461226d565b9050919050565b610cdc611749565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d609061338e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610e2f611749565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ebc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb39061338e565b60405180910390fd5b8060178190555050565b60175481565b610ed4611749565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f589061338e565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b60126020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610fcc611749565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611059576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110509061338e565b60405180910390fd5b80601660146101000a81548160ff02191690831515021790555050565b60185481565b60606040518060400160405280600881526020017f464c415453484942000000000000000000000000000000000000000000000000815250905090565b6110c1611749565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461114e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111459061338e565b60405180910390fd5b8060198190555050565b611160611749565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e49061338e565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b600061122361121c611749565b848461191a565b6001905092915050565b60116020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661128e611749565b73ffffffffffffffffffffffffffffffffffffffff1614806113045750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112ec611749565b73ffffffffffffffffffffffffffffffffffffffff16145b61130d57600080fd5b600061131830610c83565b9050611323816122db565b50565b61132e611749565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b29061338e565b60405180910390fd5b60005b8383905081101561145a5781600660008686858181106113e1576113e06133ae565b5b90506020020160208101906113f6919061312d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114529061340c565b9150506113be565b50505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114ef611749565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461157c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115739061338e565b60405180910390fd5b8060188190555050565b61158e611749565b73ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461161d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611614906134a0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361168c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168390613532565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b7906135c4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361182f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182690613656565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161190d919061305e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611989576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611980906136e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ef9061377a565b60405180910390fd5b60008111611a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a329061380c565b60405180910390fd5b611a43610f9b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ab15750611a81610f9b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611e9c57601660149054906101000a900460ff16611b4057611ad2610f9b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611b3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b369061389e565b60405180910390fd5b5b601754811115611b85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7c9061390a565b60405180910390fd5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611c295750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611c68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5f9061399c565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611d155760185481611cca84610c83565b611cd491906139bc565b10611d14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0b90613a62565b60405180910390fd5b5b6000611d2030610c83565b9050600060195482101590506017548210611d3b5760175491505b808015611d555750601660159054906101000a900460ff16155b8015611daf5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611dc5575060168054906101000a900460ff165b8015611e1b5750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611e715750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e9957611e7f826122db565b60004790506000811115611e9757611e9647612201565b5b505b50505b600060019050600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f435750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611ff65750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ff55750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15612004576000905061218b565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120af5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156120c757600954600d81905550600a54600e819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156121725750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561218a57600b54600d81905550600c54600e819055505b5b61219784848484612554565b50505050565b60008383111582906121e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121dc9190612f07565b60405180910390fd5b50600083856121f49190613a82565b9050809150509392505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612269573d6000803e3d6000fd5b5050565b60006007548211156122b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ab90613b28565b60405180910390fd5b60006122be612581565b90506122d381846125ac90919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561231357612312612c9e565b5b6040519080825280602002602001820160405280156123415781602001602082028036833780820191505090505b5090503081600081518110612359576123586133ae565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612400573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124249190613b5d565b81600181518110612438576124376133ae565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061249f30601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611751565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612503959493929190613c83565b600060405180830381600087803b15801561251d57600080fd5b505af1158015612531573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b80612562576125616125f6565b5b61256d848484612633565b8061257b5761257a6127fe565b5b50505050565b600080600061258e612812565b915091506125a581836125ac90919063ffffffff16565b9250505090565b60006125ee83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612871565b905092915050565b6000600d5414801561260a57506000600e54145b61263157600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b600080600080600080612645876128d4565b9550955095509550955095506126a386600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461293c90919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061273885600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461298690919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612784816129e4565b61278e8483612aa1565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516127eb919061305e565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b600080600060075490506000670de0b6b3a76400009050612846670de0b6b3a76400006007546125ac90919063ffffffff16565b82101561286457600754670de0b6b3a764000093509350505061286d565b81819350935050505b9091565b600080831182906128b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128af9190612f07565b60405180910390fd5b50600083856128c79190613d0c565b9050809150509392505050565b60008060008060008060008060006128f18a600d54600e54612adb565b9250925092506000612901612581565b905060008060006129148e878787612b71565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061297e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061219d565b905092915050565b600080828461299591906139bc565b9050838110156129da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d190613d89565b60405180910390fd5b8091505092915050565b60006129ee612581565b90506000612a058284612bfa90919063ffffffff16565b9050612a5981600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461298690919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612ab68260075461293c90919063ffffffff16565b600781905550612ad18160085461298690919063ffffffff16565b6008819055505050565b600080600080612b076064612af9888a612bfa90919063ffffffff16565b6125ac90919063ffffffff16565b90506000612b316064612b23888b612bfa90919063ffffffff16565b6125ac90919063ffffffff16565b90506000612b5a82612b4c858c61293c90919063ffffffff16565b61293c90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612b8a8589612bfa90919063ffffffff16565b90506000612ba18689612bfa90919063ffffffff16565b90506000612bb88789612bfa90919063ffffffff16565b90506000612be182612bd3858761293c90919063ffffffff16565b61293c90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612c0c5760009050612c6e565b60008284612c1a9190613da9565b9050828482612c299190613d0c565b14612c69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c6090613e5d565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612cd682612c8d565b810181811067ffffffffffffffff82111715612cf557612cf4612c9e565b5b80604052505050565b6000612d08612c74565b9050612d148282612ccd565b919050565b600067ffffffffffffffff821115612d3457612d33612c9e565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d7582612d4a565b9050919050565b612d8581612d6a565b8114612d9057600080fd5b50565b600081359050612da281612d7c565b92915050565b6000612dbb612db684612d19565b612cfe565b90508083825260208201905060208402830185811115612dde57612ddd612d45565b5b835b81811015612e075780612df38882612d93565b845260208401935050602081019050612de0565b5050509392505050565b600082601f830112612e2657612e25612c88565b5b8135612e36848260208601612da8565b91505092915050565b600060208284031215612e5557612e54612c7e565b5b600082013567ffffffffffffffff811115612e7357612e72612c83565b5b612e7f84828501612e11565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ec2578082015181840152602081019050612ea7565b60008484015250505050565b6000612ed982612e88565b612ee38185612e93565b9350612ef3818560208601612ea4565b612efc81612c8d565b840191505092915050565b60006020820190508181036000830152612f218184612ece565b905092915050565b6000819050919050565b612f3c81612f29565b8114612f4757600080fd5b50565b600081359050612f5981612f33565b92915050565b60008060408385031215612f7657612f75612c7e565b5b6000612f8485828601612d93565b9250506020612f9585828601612f4a565b9150509250929050565b60008115159050919050565b612fb481612f9f565b82525050565b6000602082019050612fcf6000830184612fab565b92915050565b6000819050919050565b6000612ffa612ff5612ff084612d4a565b612fd5565b612d4a565b9050919050565b600061300c82612fdf565b9050919050565b600061301e82613001565b9050919050565b61302e81613013565b82525050565b60006020820190506130496000830184613025565b92915050565b61305881612f29565b82525050565b6000602082019050613073600083018461304f565b92915050565b60008060006060848603121561309257613091612c7e565b5b60006130a086828701612d93565b93505060206130b186828701612d93565b92505060406130c286828701612f4a565b9150509250925092565b600060ff82169050919050565b6130e2816130cc565b82525050565b60006020820190506130fd60008301846130d9565b92915050565b61310c81612d6a565b82525050565b60006020820190506131276000830184613103565b92915050565b60006020828403121561314357613142612c7e565b5b600061315184828501612d93565b91505092915050565b61316381612f9f565b811461316e57600080fd5b50565b6000813590506131808161315a565b92915050565b60006020828403121561319c5761319b612c7e565b5b60006131aa84828501613171565b91505092915050565b6000602082840312156131c9576131c8612c7e565b5b60006131d784828501612f4a565b91505092915050565b600080600080608085870312156131fa576131f9612c7e565b5b600061320887828801612f4a565b945050602061321987828801612f4a565b935050604061322a87828801612f4a565b925050606061323b87828801612f4a565b91505092959194509250565b600080fd5b60008083601f84011261326257613261612c88565b5b8235905067ffffffffffffffff81111561327f5761327e613247565b5b60208301915083602082028301111561329b5761329a612d45565b5b9250929050565b6000806000604084860312156132bb576132ba612c7e565b5b600084013567ffffffffffffffff8111156132d9576132d8612c83565b5b6132e58682870161324c565b935093505060206132f886828701613171565b9150509250925092565b6000806040838503121561331957613318612c7e565b5b600061332785828601612d93565b925050602061333885828601612d93565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613378602083612e93565b915061338382613342565b602082019050919050565b600060208201905081810360008301526133a78161336b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061341782612f29565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613449576134486133dd565b5b600182019050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420616e2061646d696e00600082015250565b600061348a601f83612e93565b915061349582613454565b602082019050919050565b600060208201905081810360008301526134b98161347d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061351c602683612e93565b9150613527826134c0565b604082019050919050565b6000602082019050818103600083015261354b8161350f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006135ae602483612e93565b91506135b982613552565b604082019050919050565b600060208201905081810360008301526135dd816135a1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613640602283612e93565b915061364b826135e4565b604082019050919050565b6000602082019050818103600083015261366f81613633565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006136d2602583612e93565b91506136dd82613676565b604082019050919050565b60006020820190508181036000830152613701816136c5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613764602383612e93565b915061376f82613708565b604082019050919050565b6000602082019050818103600083015261379381613757565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006137f6602983612e93565b91506138018261379a565b604082019050919050565b60006020820190508181036000830152613825816137e9565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613888603f83612e93565b91506138938261382c565b604082019050919050565b600060208201905081810360008301526138b78161387b565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006138f4601c83612e93565b91506138ff826138be565b602082019050919050565b60006020820190508181036000830152613923816138e7565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613986602383612e93565b91506139918261392a565b604082019050919050565b600060208201905081810360008301526139b581613979565b9050919050565b60006139c782612f29565b91506139d283612f29565b92508282019050808211156139ea576139e96133dd565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613a4c602383612e93565b9150613a57826139f0565b604082019050919050565b60006020820190508181036000830152613a7b81613a3f565b9050919050565b6000613a8d82612f29565b9150613a9883612f29565b9250828203905081811115613ab057613aaf6133dd565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613b12602a83612e93565b9150613b1d82613ab6565b604082019050919050565b60006020820190508181036000830152613b4181613b05565b9050919050565b600081519050613b5781612d7c565b92915050565b600060208284031215613b7357613b72612c7e565b5b6000613b8184828501613b48565b91505092915050565b6000819050919050565b6000613baf613baa613ba584613b8a565b612fd5565b612f29565b9050919050565b613bbf81613b94565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613bfa81612d6a565b82525050565b6000613c0c8383613bf1565b60208301905092915050565b6000602082019050919050565b6000613c3082613bc5565b613c3a8185613bd0565b9350613c4583613be1565b8060005b83811015613c76578151613c5d8882613c00565b9750613c6883613c18565b925050600181019050613c49565b5085935050505092915050565b600060a082019050613c98600083018861304f565b613ca56020830187613bb6565b8181036040830152613cb78186613c25565b9050613cc66060830185613103565b613cd3608083018461304f565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613d1782612f29565b9150613d2283612f29565b925082613d3257613d31613cdd565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613d73601b83612e93565b9150613d7e82613d3d565b602082019050919050565b60006020820190508181036000830152613da281613d66565b9050919050565b6000613db482612f29565b9150613dbf83612f29565b9250828202613dcd81612f29565b91508282048414831517613de457613de36133dd565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e47602183612e93565b9150613e5282613deb565b604082019050919050565b60006020820190508181036000830152613e7681613e3a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a28ea34f910d626030b439dca9240bac4a810b0b1853793c7e0f8e305af4774464736f6c63430008120033

Deployed Bytecode Sourcemap

4511:13813:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13195:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7023:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7948:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5860:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7300:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8149:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6168:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7209:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5908:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13372:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17706:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12952:235;;;;;;;;;;;;;:::i;:::-;;7403:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2000:148;;;;;;;;;;;;;:::i;:::-;;17846:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6058:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16870:294;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5602:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1651:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12599:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6112:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7114:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17515:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17172:291;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7549:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5564:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12708:236;;;;;;;;;;;;;:::i;:::-;;18085:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7756:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17962:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2156:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13195:169;1788:12;:10;:12::i;:::-;1778:22;;:6;;;;;;;;;;:22;;;1770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13271:9:::1;13266:91;13290:5;:12;13286:1;:16;13266:91;;;13341:4;13324;:14;13329:5;13335:1;13329:8;;;;;;;;:::i;:::-;;;;;;;;13324:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13304:3;;;;;:::i;:::-;;;;13266:91;;;;13195:169:::0;:::o;7023:83::-;7060:13;7093:5;;;;;;;;;;;;;;;;;7086:12;;7023:83;:::o;7948:193::-;8050:4;8072:39;8081:12;:10;:12::i;:::-;8095:7;8104:6;8072:8;:39::i;:::-;8129:4;8122:11;;7948:193;;;;:::o;5860:41::-;;;;;;;;;;;;;:::o;7300:95::-;7353:7;5064:18;7373:14;;7300:95;:::o;8149:446::-;8281:4;8298:36;8308:6;8316:9;8327:6;8298:9;:36::i;:::-;8345:220;8368:6;8389:12;:10;:12::i;:::-;8416:138;8472:6;8416:138;;;;;;;;;;;;;;;;;:11;:19;8428:6;8416:19;;;;;;;;;;;;;;;:33;8436:12;:10;:12::i;:::-;8416:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8345:8;:220::i;:::-;8583:4;8576:11;;8149:446;;;;;:::o;6168:53::-;;;;:::o;7209:83::-;7250:5;4738:1;7268:16;;7209:83;:::o;5908:28::-;;;;;;;;;;;;;:::o;13372:92::-;1788:12;:10;:12::i;:::-;1778:22;;:6;;;;;;;;;;:22;;;1770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13451:5:::1;13436:4;:12;13441:6;13436:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13372:92:::0;:::o;17706:101::-;1788:12;:10;:12::i;:::-;1778:22;;:6;;;;;;;;;;:22;;;1770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17787:12:::1;17773:11;::::0;:26:::1;;;;;;;;;;;;;;;;;;17706:101:::0;:::o;12952:235::-;13018:19;;;;;;;;;;;13002:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;13057:17;;;;;;;;;;;13041:33;;:12;:10;:12::i;:::-;:33;;;13002:72;12994:81;;;;;;13086:26;13115:21;13086:50;;13147:32;13160:18;13147:12;:32::i;:::-;12983:204;12952:235::o;7403:138::-;7469:7;7496:37;7516:7;:16;7524:7;7516:16;;;;;;;;;;;;;;;;7496:19;:37::i;:::-;7489:44;;7403:138;;;:::o;2000:148::-;1788:12;:10;:12::i;:::-;1778:22;;:6;;;;;;;;;;:22;;;1770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2107:1:::1;2070:40;;2091:6;::::0;::::1;;;;;;;;2070:40;;;;;;;;;;;;2138:1;2121:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2000:148::o:0;17846:108::-;1788:12;:10;:12::i;:::-;1778:22;;:6;;;;;;;;;;:22;;;1770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17935:11:::1;17920:12;:26;;;;17846:108:::0;:::o;6058:47::-;;;;:::o;16870:294::-;1788:12;:10;:12::i;:::-;1778:22;;:6;;;;;;;;;;:22;;;1770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17024:13:::1;17007:14;:30;;;;17066:14;17048:15;:32;;;;17106:11;17091:12;:26;;;;17144:12;17128:13;:28;;;;16870:294:::0;;;;:::o;5602:43::-;;;;;;;;;;;;;;;;;:::o;1651:79::-;1689:7;1716:6;;;;;;;;;;;1709:13;;1651:79;:::o;12599:101::-;1788:12;:10;:12::i;:::-;1778:22;;:6;;;;;;;;;;:22;;;1770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12680:12:::1;12666:11;;:26;;;;;;;;;;;;;;;;;;12599:101:::0;:::o;6112:49::-;;;;:::o;7114:87::-;7153:13;7186:7;;;;;;;;;;;;;;;;;7179:14;;7114:87;:::o;17515:139::-;1788:12;:10;:12::i;:::-;1778:22;;:6;;;;;;;;;;:22;;;1770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17628:18:::1;17606:19;:40;;;;17515:139:::0;:::o;17172:291::-;1788:12;:10;:12::i;:::-;1778:22;;:6;;;;;;;;;;:22;;;1770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17323:13:::1;17306:14;:30;;;;17365:14;17347:15;:32;;;;17405:11;17390:12;:26;;;;17443:12;17427:13;:28;;;;17172:291:::0;;;;:::o;7549:199::-;7654:4;7676:42;7686:12;:10;:12::i;:::-;7700:9;7711:6;7676:9;:42::i;:::-;7736:4;7729:11;;7549:199;;;;:::o;5564:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12708:236::-;12774:19;;;;;;;;;;;12758:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12813:17;;;;;;;;;;;12797:33;;:12;:10;:12::i;:::-;:33;;;12758:72;12750:81;;;;;;12842:23;12868:24;12886:4;12868:9;:24::i;:::-;12842:50;;12903:33;12920:15;12903:16;:33::i;:::-;12739:205;12708:236::o;18085:234::-;1788:12;:10;:12::i;:::-;1778:22;;:6;;;;;;;;;;:22;;;1770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18202:9:::1;18198:114;18221:8;;:15;;18217:1;:19;18198:114;;;18292:8;18258:18;:31;18277:8;;18286:1;18277:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18258:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;18238:3;;;;;:::i;:::-;;;;18198:114;;;;18085:234:::0;;;:::o;7756:184::-;7873:7;7905:11;:18;7917:5;7905:18;;;;;;;;;;;;;;;:27;7924:7;7905:27;;;;;;;;;;;;;;;;7898:34;;7756:184;;;;:::o;17962:115::-;1788:12;:10;:12::i;:::-;1778:22;;:6;;;;;;;;;;:22;;;1770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18056:13:::1;18039:14;:30;;;;17962:115:::0;:::o;2156:242::-;1924:12;:10;:12::i;:::-;1904:32;;:16;;;;;;;;;;;:32;;;1896:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;2263:1:::1;2243:22;;:8;:22;;::::0;2235:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2353:8;2324:38;;2345:6;::::0;::::1;;;;;;;;2324:38;;;;;;;;;;;;2382:8;2373:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2156:242:::0;:::o;328:98::-;381:7;408:10;401:17;;328:98;:::o;9286:369::-;9430:1;9413:19;;:5;:19;;;9405:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9511:1;9492:21;;:7;:21;;;9484:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9593:6;9563:11;:18;9575:5;9563:18;;;;;;;;;;;;;;;:27;9582:7;9563:27;;;;;;;;;;;;;;;:36;;;;9631:7;9615:32;;9624:5;9615:32;;;9640:6;9615:32;;;;;;:::i;:::-;;;;;;;;9286:369;;;:::o;9663:2330::-;9801:1;9785:18;;:4;:18;;;9777:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9878:1;9864:16;;:2;:16;;;9856:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9948:1;9939:6;:10;9931:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10020:7;:5;:7::i;:::-;10012:15;;:4;:15;;;;:32;;;;;10037:7;:5;:7::i;:::-;10031:13;;:2;:13;;;;10012:32;10008:1259;;;10101:11;;;;;;;;;;;10096:144;;10149:7;:5;:7::i;:::-;10141:15;;:4;:15;;;10133:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10096:144;10274:12;;10264:6;:22;;10256:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10343:4;:10;10348:4;10343:10;;;;;;;;;;;;;;;;;;;;;;;;;10342:11;:24;;;;;10358:4;:8;10363:2;10358:8;;;;;;;;;;;;;;;;;;;;;;;;;10357:9;10342:24;10334:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10432:13;;;;;;;;;;;10426:19;;:2;:19;;;10423:146;;10499:14;;10490:6;10474:13;10484:2;10474:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10466:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10423:146;10585:28;10616:24;10634:4;10616:9;:24::i;:::-;10585:55;;10655:12;10694:19;;10670:20;:43;;10655:58;;10757:12;;10733:20;:36;10730:124;;10826:12;;10803:35;;10730:124;10874:7;:18;;;;;10886:6;;;;;;;;;;;10885:7;10874:18;:43;;;;;10904:13;;;;;;;;;;;10896:21;;:4;:21;;;;10874:43;:58;;;;;10921:11;;;;;;;;;;10874:58;:87;;;;;10937:18;:24;10956:4;10937:24;;;;;;;;;;;;;;;;;;;;;;;;;10936:25;10874:87;:114;;;;;10966:18;:22;10985:2;10966:22;;;;;;;;;;;;;;;;;;;;;;;;;10965:23;10874:114;10870:386;;;11009:38;11026:20;11009:16;:38::i;:::-;11066:26;11095:21;11066:50;;11160:1;11139:18;:22;11135:106;;;11186:35;11199:21;11186:12;:35::i;:::-;11135:106;10990:266;10870:386;10046:1221;;10008:1259;11279:12;11294:4;11279:19;;11343:18;:24;11362:4;11343:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11371:18;:22;11390:2;11371:22;;;;;;;;;;;;;;;;;;;;;;;;;11343:50;11342:102;;;;11407:13;;;;;;;;;;;11399:21;;:4;:21;;;;:44;;;;;11430:13;;;;;;;;;;;11424:19;;:2;:19;;;;11399:44;11342:102;11338:594;;;11471:5;11461:15;;11338:594;;;11554:13;;;;;;;;;;;11546:21;;:4;:21;;;:55;;;;;11585:15;;;;;;;;;;;11571:30;;:2;:30;;;;11546:55;11543:162;;;11634:14;;11622:9;:26;;;;11677:12;;11667:7;:22;;;;11543:162;11764:13;;;;;;;;;;;11758:19;;:2;:19;;;:55;;;;;11797:15;;;;;;;;;;;11781:32;;:4;:32;;;;11758:55;11754:165;;;11846:15;;11834:9;:27;;;;11890:13;;11880:7;:23;;;;11754:165;11338:594;11944:41;11959:4;11965:2;11969:6;11977:7;11944:14;:41::i;:::-;9766:2227;9663:2330;;;:::o;2762:224::-;2882:7;2915:1;2910;:6;;2918:12;2902:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2942:9;2958:1;2954;:5;;;;:::i;:::-;2942:17;;2977:1;2970:8;;;2762:224;;;;;:::o;12492:99::-;12549:17;;;;;;;;;;;:26;;:34;12576:6;12549:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12492:99;:::o;8603:323::-;8698:7;8756;;8745;:18;;8723:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8844:19;8866:10;:8;:10::i;:::-;8844:32;;8894:24;8906:11;8894:7;:11;;:24;;;;:::i;:::-;8887:31;;;8603:323;;;:::o;12001:483::-;6324:4;6315:6;;:13;;;;;;;;;;;;;;;;;;12079:21:::1;12117:1;12103:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12079:40;;12148:4;12130;12135:1;12130:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12174:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12164:4;12169:1;12164:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12207:62;12224:4;12239:15;;;;;;;;;;;12257:11;12207:8;:62::i;:::-;12280:15;;;;;;;;;;;:66;;;12361:11;12387:1;12403:4;12430;12450:15;12280:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12068:416;6360:5:::0;6351:6;;:14;;;;;;;;;;;;;;;;;;12001:483;:::o;13472:282::-;13628:7;13623:28;;13637:14;:12;:14::i;:::-;13623:28;13662:44;13680:6;13688:9;13699:6;13662:17;:44::i;:::-;13722:7;13717:29;;13731:15;:13;:15::i;:::-;13717:29;13472:282;;;;:::o;16433:164::-;16475:7;16496:15;16513;16532:19;:17;:19::i;:::-;16495:56;;;;16569:20;16581:7;16569;:11;;:20;;;;:::i;:::-;16562:27;;;;16433:164;:::o;3248:132::-;3306:7;3333:39;3337:1;3340;3333:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3326:46;;3248:132;;;;:::o;8934:219::-;8994:1;8981:9;;:14;:30;;;;;9010:1;8999:7;;:12;8981:30;9013:7;8977:43;9052:9;;9032:17;:29;;;;9090:7;;9072:15;:25;;;;9122:1;9110:9;:13;;;;9144:1;9134:7;:11;;;;8934:219;:::o;13762:610::-;13909:15;13939:23;13977:12;14004:23;14042:12;14069:13;14096:19;14107:7;14096:10;:19::i;:::-;13894:221;;;;;;;;;;;;14144:28;14164:7;14144;:15;14152:6;14144:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14126:7;:15;14134:6;14126:15;;;;;;;;;;;;;;;:46;;;;14204:39;14227:15;14204:7;:18;14212:9;14204:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14183:7;:18;14191:9;14183:18;;;;;;;;;;;;;;;:60;;;;14254:16;14264:5;14254:9;:16::i;:::-;14281:23;14293:4;14299;14281:11;:23::i;:::-;14337:9;14320:44;;14329:6;14320:44;;;14348:15;14320:44;;;;;;:::i;:::-;;;;;;;;13883:489;;;;;;13762:610;;;:::o;9161:117::-;9217:17;;9205:9;:29;;;;9255:15;;9245:7;:25;;;;9161:117::o;16605:257::-;16656:7;16665;16685:15;16703:7;;16685:25;;16721:15;5064:18;16721:25;;16771:20;5064:18;16771:7;;:11;;:20;;;;:::i;:::-;16761:7;:30;16757:61;;;16801:7;;5064:18;16793:25;;;;;;;;16757:61;16837:7;16846;16829:25;;;;;;16605:257;;;:::o;3388:223::-;3508:7;3540:1;3536;:5;3543:12;3528:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3567:9;3583:1;3579;:5;;;;:::i;:::-;3567:17;;3602:1;3595:8;;;3388:223;;;;;:::o;14791:615::-;14891:7;14913;14935;14957;14979;15001;15037:23;15062:12;15076:13;15106:40;15118:7;15127:9;;15138:7;;15106:11;:40::i;:::-;15036:110;;;;;;15157:19;15179:10;:8;:10::i;:::-;15157:32;;15201:15;15218:23;15243:12;15272:46;15284:7;15293:4;15299:5;15306:11;15272;:46::i;:::-;15200:118;;;;;;15337:7;15346:15;15363:4;15369:15;15386:4;15392:5;15329:69;;;;;;;;;;;;;;;;;;;14791:615;;;;;;;:::o;2618:136::-;2676:7;2703:43;2707:1;2710;2703:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2696:50;;2618:136;;;;:::o;2431:179::-;2489:7;2509:9;2525:1;2521;:5;;;;:::i;:::-;2509:17;;2550:1;2545;:6;;2537:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2601:1;2594:8;;;2431:179;;;;:::o;14380:211::-;14433:19;14455:10;:8;:10::i;:::-;14433:32;;14476:13;14492:22;14502:11;14492:5;:9;;:22;;;;:::i;:::-;14476:38;;14550:33;14577:5;14550:7;:22;14566:4;14550:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14525:7;:22;14541:4;14525:22;;;;;;;;;;;;;;;:58;;;;14422:169;;14380:211;:::o;14599:147::-;14677:17;14689:4;14677:7;;:11;;:17;;;;:::i;:::-;14667:7;:27;;;;14718:20;14733:4;14718:10;;:14;;:20;;;;:::i;:::-;14705:10;:33;;;;14599:147;;:::o;15414:469::-;15583:7;15605;15627;15662:12;15677:30;15703:3;15677:21;15689:8;15677:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15662:45;;15718:13;15734:28;15758:3;15734:19;15746:6;15734:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15718:44;;15773:23;15799:28;15821:5;15799:17;15811:4;15799:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15773:54;;15846:15;15863:4;15869:5;15838:37;;;;;;;;;15414:469;;;;;;;:::o;15891:534::-;16085:7;16107;16129;16164:15;16182:24;16194:11;16182:7;:11;;:24;;;;:::i;:::-;16164:42;;16217:12;16232:21;16241:11;16232:4;:8;;:21;;;;:::i;:::-;16217:36;;16264:13;16280:22;16290:11;16280:5;:9;;:22;;;;:::i;:::-;16264:38;;16313:23;16339:28;16361:5;16339:17;16351:4;16339:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16313:54;;16386:7;16395:15;16412:4;16378:39;;;;;;;;;;15891:534;;;;;;;;:::o;2994:246::-;3052:7;3081:1;3076;:6;3072:47;;3106:1;3099:8;;;;3072:47;3129:9;3145:1;3141;:5;;;;:::i;:::-;3129:17;;3174:1;3169;3165;:5;;;;:::i;:::-;:10;3157:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3231:1;3224:8;;;2994:246;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:246::-;4152:1;4162:113;4176:6;4173:1;4170:13;4162:113;;;4261:1;4256:3;4252:11;4246:18;4242:1;4237:3;4233:11;4226:39;4198:2;4195:1;4191:10;4186:15;;4162:113;;;4309:1;4300:6;4295:3;4291:16;4284:27;4133:184;4071:246;;;:::o;4323:377::-;4411:3;4439:39;4472:5;4439:39;:::i;:::-;4494:71;4558:6;4553:3;4494:71;:::i;:::-;4487:78;;4574:65;4632:6;4627:3;4620:4;4613:5;4609:16;4574:65;:::i;:::-;4664:29;4686:6;4664:29;:::i;:::-;4659:3;4655:39;4648:46;;4415:285;4323:377;;;;:::o;4706:313::-;4819:4;4857:2;4846:9;4842:18;4834:26;;4906:9;4900:4;4896:20;4892:1;4881:9;4877:17;4870:47;4934:78;5007:4;4998:6;4934:78;:::i;:::-;4926:86;;4706:313;;;;:::o;5025:77::-;5062:7;5091:5;5080:16;;5025:77;;;:::o;5108:122::-;5181:24;5199:5;5181:24;:::i;:::-;5174:5;5171:35;5161:63;;5220:1;5217;5210:12;5161:63;5108:122;:::o;5236:139::-;5282:5;5320:6;5307:20;5298:29;;5336:33;5363:5;5336:33;:::i;:::-;5236:139;;;;:::o;5381:474::-;5449:6;5457;5506:2;5494:9;5485:7;5481:23;5477:32;5474:119;;;5512:79;;:::i;:::-;5474:119;5632:1;5657:53;5702:7;5693:6;5682:9;5678:22;5657:53;:::i;:::-;5647:63;;5603:117;5759:2;5785:53;5830:7;5821:6;5810:9;5806:22;5785:53;:::i;:::-;5775:63;;5730:118;5381:474;;;;;:::o;5861:90::-;5895:7;5938:5;5931:13;5924:21;5913:32;;5861:90;;;:::o;5957:109::-;6038:21;6053:5;6038:21;:::i;:::-;6033:3;6026:34;5957:109;;:::o;6072:210::-;6159:4;6197:2;6186:9;6182:18;6174:26;;6210:65;6272:1;6261:9;6257:17;6248:6;6210:65;:::i;:::-;6072:210;;;;:::o;6288:60::-;6316:3;6337:5;6330:12;;6288:60;;;:::o;6354:142::-;6404:9;6437:53;6455:34;6464:24;6482:5;6464:24;:::i;:::-;6455:34;:::i;:::-;6437:53;:::i;:::-;6424:66;;6354:142;;;:::o;6502:126::-;6552:9;6585:37;6616:5;6585:37;:::i;:::-;6572:50;;6502:126;;;:::o;6634:152::-;6710:9;6743:37;6774:5;6743:37;:::i;:::-;6730:50;;6634:152;;;:::o;6792:183::-;6905:63;6962:5;6905:63;:::i;:::-;6900:3;6893:76;6792:183;;:::o;6981:274::-;7100:4;7138:2;7127:9;7123:18;7115:26;;7151:97;7245:1;7234:9;7230:17;7221:6;7151:97;:::i;:::-;6981:274;;;;:::o;7261:118::-;7348:24;7366:5;7348:24;:::i;:::-;7343:3;7336:37;7261:118;;:::o;7385:222::-;7478:4;7516:2;7505:9;7501:18;7493:26;;7529:71;7597:1;7586:9;7582:17;7573:6;7529:71;:::i;:::-;7385:222;;;;:::o;7613:619::-;7690:6;7698;7706;7755:2;7743:9;7734:7;7730:23;7726:32;7723:119;;;7761:79;;:::i;:::-;7723:119;7881:1;7906:53;7951:7;7942:6;7931:9;7927:22;7906:53;:::i;:::-;7896:63;;7852:117;8008:2;8034:53;8079:7;8070:6;8059:9;8055:22;8034:53;:::i;:::-;8024:63;;7979:118;8136:2;8162:53;8207:7;8198:6;8187:9;8183:22;8162:53;:::i;:::-;8152:63;;8107:118;7613:619;;;;;:::o;8238:86::-;8273:7;8313:4;8306:5;8302:16;8291:27;;8238:86;;;:::o;8330:112::-;8413:22;8429:5;8413:22;:::i;:::-;8408:3;8401:35;8330:112;;:::o;8448:214::-;8537:4;8575:2;8564:9;8560:18;8552:26;;8588:67;8652:1;8641:9;8637:17;8628:6;8588:67;:::i;:::-;8448:214;;;;:::o;8668:118::-;8755:24;8773:5;8755:24;:::i;:::-;8750:3;8743:37;8668:118;;:::o;8792:222::-;8885:4;8923:2;8912:9;8908:18;8900:26;;8936:71;9004:1;8993:9;8989:17;8980:6;8936:71;:::i;:::-;8792:222;;;;:::o;9020:329::-;9079:6;9128:2;9116:9;9107:7;9103:23;9099:32;9096:119;;;9134:79;;:::i;:::-;9096:119;9254:1;9279:53;9324:7;9315:6;9304:9;9300:22;9279:53;:::i;:::-;9269:63;;9225:117;9020:329;;;;:::o;9355:116::-;9425:21;9440:5;9425:21;:::i;:::-;9418:5;9415:32;9405:60;;9461:1;9458;9451:12;9405:60;9355:116;:::o;9477:133::-;9520:5;9558:6;9545:20;9536:29;;9574:30;9598:5;9574:30;:::i;:::-;9477:133;;;;:::o;9616:323::-;9672:6;9721:2;9709:9;9700:7;9696:23;9692:32;9689:119;;;9727:79;;:::i;:::-;9689:119;9847:1;9872:50;9914:7;9905:6;9894:9;9890:22;9872:50;:::i;:::-;9862:60;;9818:114;9616:323;;;;:::o;9945:329::-;10004:6;10053:2;10041:9;10032:7;10028:23;10024:32;10021:119;;;10059:79;;:::i;:::-;10021:119;10179:1;10204:53;10249:7;10240:6;10229:9;10225:22;10204:53;:::i;:::-;10194:63;;10150:117;9945:329;;;;:::o;10280:765::-;10366:6;10374;10382;10390;10439:3;10427:9;10418:7;10414:23;10410:33;10407:120;;;10446:79;;:::i;:::-;10407:120;10566:1;10591:53;10636:7;10627:6;10616:9;10612:22;10591:53;:::i;:::-;10581:63;;10537:117;10693:2;10719:53;10764:7;10755:6;10744:9;10740:22;10719:53;:::i;:::-;10709:63;;10664:118;10821:2;10847:53;10892:7;10883:6;10872:9;10868:22;10847:53;:::i;:::-;10837:63;;10792:118;10949:2;10975:53;11020:7;11011:6;11000:9;10996:22;10975:53;:::i;:::-;10965:63;;10920:118;10280:765;;;;;;;:::o;11051:117::-;11160:1;11157;11150:12;11191:568;11264:8;11274:6;11324:3;11317:4;11309:6;11305:17;11301:27;11291:122;;11332:79;;:::i;:::-;11291:122;11445:6;11432:20;11422:30;;11475:18;11467:6;11464:30;11461:117;;;11497:79;;:::i;:::-;11461:117;11611:4;11603:6;11599:17;11587:29;;11665:3;11657:4;11649:6;11645:17;11635:8;11631:32;11628:41;11625:128;;;11672:79;;:::i;:::-;11625:128;11191:568;;;;;:::o;11765:698::-;11857:6;11865;11873;11922:2;11910:9;11901:7;11897:23;11893:32;11890:119;;;11928:79;;:::i;:::-;11890:119;12076:1;12065:9;12061:17;12048:31;12106:18;12098:6;12095:30;12092:117;;;12128:79;;:::i;:::-;12092:117;12241:80;12313:7;12304:6;12293:9;12289:22;12241:80;:::i;:::-;12223:98;;;;12019:312;12370:2;12396:50;12438:7;12429:6;12418:9;12414:22;12396:50;:::i;:::-;12386:60;;12341:115;11765:698;;;;;:::o;12469:474::-;12537:6;12545;12594:2;12582:9;12573:7;12569:23;12565:32;12562:119;;;12600:79;;:::i;:::-;12562:119;12720:1;12745:53;12790:7;12781:6;12770:9;12766:22;12745:53;:::i;:::-;12735:63;;12691:117;12847:2;12873:53;12918:7;12909:6;12898:9;12894:22;12873:53;:::i;:::-;12863:63;;12818:118;12469:474;;;;;:::o;12949:182::-;13089:34;13085:1;13077:6;13073:14;13066:58;12949:182;:::o;13137:366::-;13279:3;13300:67;13364:2;13359:3;13300:67;:::i;:::-;13293:74;;13376:93;13465:3;13376:93;:::i;:::-;13494:2;13489:3;13485:12;13478:19;;13137:366;;;:::o;13509:419::-;13675:4;13713:2;13702:9;13698:18;13690:26;;13762:9;13756:4;13752:20;13748:1;13737:9;13733:17;13726:47;13790:131;13916:4;13790:131;:::i;:::-;13782:139;;13509:419;;;:::o;13934:180::-;13982:77;13979:1;13972:88;14079:4;14076:1;14069:15;14103:4;14100:1;14093:15;14120:180;14168:77;14165:1;14158:88;14265:4;14262:1;14255:15;14289:4;14286:1;14279:15;14306:233;14345:3;14368:24;14386:5;14368:24;:::i;:::-;14359:33;;14414:66;14407:5;14404:77;14401:103;;14484:18;;:::i;:::-;14401:103;14531:1;14524:5;14520:13;14513:20;;14306:233;;;:::o;14545:181::-;14685:33;14681:1;14673:6;14669:14;14662:57;14545:181;:::o;14732:366::-;14874:3;14895:67;14959:2;14954:3;14895:67;:::i;:::-;14888:74;;14971:93;15060:3;14971:93;:::i;:::-;15089:2;15084:3;15080:12;15073:19;;14732:366;;;:::o;15104:419::-;15270:4;15308:2;15297:9;15293:18;15285:26;;15357:9;15351:4;15347:20;15343:1;15332:9;15328:17;15321:47;15385:131;15511:4;15385:131;:::i;:::-;15377:139;;15104:419;;;:::o;15529:225::-;15669:34;15665:1;15657:6;15653:14;15646:58;15738:8;15733:2;15725:6;15721:15;15714:33;15529:225;:::o;15760:366::-;15902:3;15923:67;15987:2;15982:3;15923:67;:::i;:::-;15916:74;;15999:93;16088:3;15999:93;:::i;:::-;16117:2;16112:3;16108:12;16101:19;;15760:366;;;:::o;16132:419::-;16298:4;16336:2;16325:9;16321:18;16313:26;;16385:9;16379:4;16375:20;16371:1;16360:9;16356:17;16349:47;16413:131;16539:4;16413:131;:::i;:::-;16405:139;;16132:419;;;:::o;16557:223::-;16697:34;16693:1;16685:6;16681:14;16674:58;16766:6;16761:2;16753:6;16749:15;16742:31;16557:223;:::o;16786:366::-;16928:3;16949:67;17013:2;17008:3;16949:67;:::i;:::-;16942:74;;17025:93;17114:3;17025:93;:::i;:::-;17143:2;17138:3;17134:12;17127:19;;16786:366;;;:::o;17158:419::-;17324:4;17362:2;17351:9;17347:18;17339:26;;17411:9;17405:4;17401:20;17397:1;17386:9;17382:17;17375:47;17439:131;17565:4;17439:131;:::i;:::-;17431:139;;17158:419;;;:::o;17583:221::-;17723:34;17719:1;17711:6;17707:14;17700:58;17792:4;17787:2;17779:6;17775:15;17768:29;17583:221;:::o;17810:366::-;17952:3;17973:67;18037:2;18032:3;17973:67;:::i;:::-;17966:74;;18049:93;18138:3;18049:93;:::i;:::-;18167:2;18162:3;18158:12;18151:19;;17810:366;;;:::o;18182:419::-;18348:4;18386:2;18375:9;18371:18;18363:26;;18435:9;18429:4;18425:20;18421:1;18410:9;18406:17;18399:47;18463:131;18589:4;18463:131;:::i;:::-;18455:139;;18182:419;;;:::o;18607:224::-;18747:34;18743:1;18735:6;18731:14;18724:58;18816:7;18811:2;18803:6;18799:15;18792:32;18607:224;:::o;18837:366::-;18979:3;19000:67;19064:2;19059:3;19000:67;:::i;:::-;18993:74;;19076:93;19165:3;19076:93;:::i;:::-;19194:2;19189:3;19185:12;19178:19;;18837:366;;;:::o;19209:419::-;19375:4;19413:2;19402:9;19398:18;19390:26;;19462:9;19456:4;19452:20;19448:1;19437:9;19433:17;19426:47;19490:131;19616:4;19490:131;:::i;:::-;19482:139;;19209:419;;;:::o;19634:222::-;19774:34;19770:1;19762:6;19758:14;19751:58;19843:5;19838:2;19830:6;19826:15;19819:30;19634:222;:::o;19862:366::-;20004:3;20025:67;20089:2;20084:3;20025:67;:::i;:::-;20018:74;;20101:93;20190:3;20101:93;:::i;:::-;20219:2;20214:3;20210:12;20203:19;;19862:366;;;:::o;20234:419::-;20400:4;20438:2;20427:9;20423:18;20415:26;;20487:9;20481:4;20477:20;20473:1;20462:9;20458:17;20451:47;20515:131;20641:4;20515:131;:::i;:::-;20507:139;;20234:419;;;:::o;20659:228::-;20799:34;20795:1;20787:6;20783:14;20776:58;20868:11;20863:2;20855:6;20851:15;20844:36;20659:228;:::o;20893:366::-;21035:3;21056:67;21120:2;21115:3;21056:67;:::i;:::-;21049:74;;21132:93;21221:3;21132:93;:::i;:::-;21250:2;21245:3;21241:12;21234:19;;20893:366;;;:::o;21265:419::-;21431:4;21469:2;21458:9;21454:18;21446:26;;21518:9;21512:4;21508:20;21504:1;21493:9;21489:17;21482:47;21546:131;21672:4;21546:131;:::i;:::-;21538:139;;21265:419;;;:::o;21690:250::-;21830:34;21826:1;21818:6;21814:14;21807:58;21899:33;21894:2;21886:6;21882:15;21875:58;21690:250;:::o;21946:366::-;22088:3;22109:67;22173:2;22168:3;22109:67;:::i;:::-;22102:74;;22185:93;22274:3;22185:93;:::i;:::-;22303:2;22298:3;22294:12;22287:19;;21946:366;;;:::o;22318:419::-;22484:4;22522:2;22511:9;22507:18;22499:26;;22571:9;22565:4;22561:20;22557:1;22546:9;22542:17;22535:47;22599:131;22725:4;22599:131;:::i;:::-;22591:139;;22318:419;;;:::o;22743:178::-;22883:30;22879:1;22871:6;22867:14;22860:54;22743:178;:::o;22927:366::-;23069:3;23090:67;23154:2;23149:3;23090:67;:::i;:::-;23083:74;;23166:93;23255:3;23166:93;:::i;:::-;23284:2;23279:3;23275:12;23268:19;;22927:366;;;:::o;23299:419::-;23465:4;23503:2;23492:9;23488:18;23480:26;;23552:9;23546:4;23542:20;23538:1;23527:9;23523:17;23516:47;23580:131;23706:4;23580:131;:::i;:::-;23572:139;;23299:419;;;:::o;23724:222::-;23864:34;23860:1;23852:6;23848:14;23841:58;23933:5;23928:2;23920:6;23916:15;23909:30;23724:222;:::o;23952:366::-;24094:3;24115:67;24179:2;24174:3;24115:67;:::i;:::-;24108:74;;24191:93;24280:3;24191:93;:::i;:::-;24309:2;24304:3;24300:12;24293:19;;23952:366;;;:::o;24324:419::-;24490:4;24528:2;24517:9;24513:18;24505:26;;24577:9;24571:4;24567:20;24563:1;24552:9;24548:17;24541:47;24605:131;24731:4;24605:131;:::i;:::-;24597:139;;24324:419;;;:::o;24749:191::-;24789:3;24808:20;24826:1;24808:20;:::i;:::-;24803:25;;24842:20;24860:1;24842:20;:::i;:::-;24837:25;;24885:1;24882;24878:9;24871:16;;24906:3;24903:1;24900:10;24897:36;;;24913:18;;:::i;:::-;24897:36;24749:191;;;;:::o;24946:222::-;25086:34;25082:1;25074:6;25070:14;25063:58;25155:5;25150:2;25142:6;25138:15;25131:30;24946:222;:::o;25174:366::-;25316:3;25337:67;25401:2;25396:3;25337:67;:::i;:::-;25330:74;;25413:93;25502:3;25413:93;:::i;:::-;25531:2;25526:3;25522:12;25515:19;;25174:366;;;:::o;25546:419::-;25712:4;25750:2;25739:9;25735:18;25727:26;;25799:9;25793:4;25789:20;25785:1;25774:9;25770:17;25763:47;25827:131;25953:4;25827:131;:::i;:::-;25819:139;;25546:419;;;:::o;25971:194::-;26011:4;26031:20;26049:1;26031:20;:::i;:::-;26026:25;;26065:20;26083:1;26065:20;:::i;:::-;26060:25;;26109:1;26106;26102:9;26094:17;;26133:1;26127:4;26124:11;26121:37;;;26138:18;;:::i;:::-;26121:37;25971:194;;;;:::o;26171:229::-;26311:34;26307:1;26299:6;26295:14;26288:58;26380:12;26375:2;26367:6;26363:15;26356:37;26171:229;:::o;26406:366::-;26548:3;26569:67;26633:2;26628:3;26569:67;:::i;:::-;26562:74;;26645:93;26734:3;26645:93;:::i;:::-;26763:2;26758:3;26754:12;26747:19;;26406:366;;;:::o;26778:419::-;26944:4;26982:2;26971:9;26967:18;26959:26;;27031:9;27025:4;27021:20;27017:1;27006:9;27002:17;26995:47;27059:131;27185:4;27059:131;:::i;:::-;27051:139;;26778:419;;;:::o;27203:143::-;27260:5;27291:6;27285:13;27276:22;;27307:33;27334:5;27307:33;:::i;:::-;27203:143;;;;:::o;27352:351::-;27422:6;27471:2;27459:9;27450:7;27446:23;27442:32;27439:119;;;27477:79;;:::i;:::-;27439:119;27597:1;27622:64;27678:7;27669:6;27658:9;27654:22;27622:64;:::i;:::-;27612:74;;27568:128;27352:351;;;;:::o;27709:85::-;27754:7;27783:5;27772:16;;27709:85;;;:::o;27800:158::-;27858:9;27891:61;27909:42;27918:32;27944:5;27918:32;:::i;:::-;27909:42;:::i;:::-;27891:61;:::i;:::-;27878:74;;27800:158;;;:::o;27964:147::-;28059:45;28098:5;28059:45;:::i;:::-;28054:3;28047:58;27964:147;;:::o;28117:114::-;28184:6;28218:5;28212:12;28202:22;;28117:114;;;:::o;28237:184::-;28336:11;28370:6;28365:3;28358:19;28410:4;28405:3;28401:14;28386:29;;28237:184;;;;:::o;28427:132::-;28494:4;28517:3;28509:11;;28547:4;28542:3;28538:14;28530:22;;28427:132;;;:::o;28565:108::-;28642:24;28660:5;28642:24;:::i;:::-;28637:3;28630:37;28565:108;;:::o;28679:179::-;28748:10;28769:46;28811:3;28803:6;28769:46;:::i;:::-;28847:4;28842:3;28838:14;28824:28;;28679:179;;;;:::o;28864:113::-;28934:4;28966;28961:3;28957:14;28949:22;;28864:113;;;:::o;29013:732::-;29132:3;29161:54;29209:5;29161:54;:::i;:::-;29231:86;29310:6;29305:3;29231:86;:::i;:::-;29224:93;;29341:56;29391:5;29341:56;:::i;:::-;29420:7;29451:1;29436:284;29461:6;29458:1;29455:13;29436:284;;;29537:6;29531:13;29564:63;29623:3;29608:13;29564:63;:::i;:::-;29557:70;;29650:60;29703:6;29650:60;:::i;:::-;29640:70;;29496:224;29483:1;29480;29476:9;29471:14;;29436:284;;;29440:14;29736:3;29729:10;;29137:608;;;29013:732;;;;:::o;29751:831::-;30014:4;30052:3;30041:9;30037:19;30029:27;;30066:71;30134:1;30123:9;30119:17;30110:6;30066:71;:::i;:::-;30147:80;30223:2;30212:9;30208:18;30199:6;30147:80;:::i;:::-;30274:9;30268:4;30264:20;30259:2;30248:9;30244:18;30237:48;30302:108;30405:4;30396:6;30302:108;:::i;:::-;30294:116;;30420:72;30488:2;30477:9;30473:18;30464:6;30420:72;:::i;:::-;30502:73;30570:3;30559:9;30555:19;30546:6;30502:73;:::i;:::-;29751:831;;;;;;;;:::o;30588:180::-;30636:77;30633:1;30626:88;30733:4;30730:1;30723:15;30757:4;30754:1;30747:15;30774:185;30814:1;30831:20;30849:1;30831:20;:::i;:::-;30826:25;;30865:20;30883:1;30865:20;:::i;:::-;30860:25;;30904:1;30894:35;;30909:18;;:::i;:::-;30894:35;30951:1;30948;30944:9;30939:14;;30774:185;;;;:::o;30965:177::-;31105:29;31101:1;31093:6;31089:14;31082:53;30965:177;:::o;31148:366::-;31290:3;31311:67;31375:2;31370:3;31311:67;:::i;:::-;31304:74;;31387:93;31476:3;31387:93;:::i;:::-;31505:2;31500:3;31496:12;31489:19;;31148:366;;;:::o;31520:419::-;31686:4;31724:2;31713:9;31709:18;31701:26;;31773:9;31767:4;31763:20;31759:1;31748:9;31744:17;31737:47;31801:131;31927:4;31801:131;:::i;:::-;31793:139;;31520:419;;;:::o;31945:410::-;31985:7;32008:20;32026:1;32008:20;:::i;:::-;32003:25;;32042:20;32060:1;32042:20;:::i;:::-;32037:25;;32097:1;32094;32090:9;32119:30;32137:11;32119:30;:::i;:::-;32108:41;;32298:1;32289:7;32285:15;32282:1;32279:22;32259:1;32252:9;32232:83;32209:139;;32328:18;;:::i;:::-;32209:139;31993:362;31945:410;;;;:::o;32361:220::-;32501:34;32497:1;32489:6;32485:14;32478:58;32570:3;32565:2;32557:6;32553:15;32546:28;32361:220;:::o;32587:366::-;32729:3;32750:67;32814:2;32809:3;32750:67;:::i;:::-;32743:74;;32826:93;32915:3;32826:93;:::i;:::-;32944:2;32939:3;32935:12;32928:19;;32587:366;;;:::o;32959:419::-;33125:4;33163:2;33152:9;33148:18;33140:26;;33212:9;33206:4;33202:20;33198:1;33187:9;33183:17;33176:47;33240:131;33366:4;33240:131;:::i;:::-;33232:139;;32959:419;;;:::o

Swarm Source

ipfs://a28ea34f910d626030b439dca9240bac4a810b0b1853793c7e0f8e305af47744

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.