ETH Price: $2,343.49 (-3.07%)

Contract

0xbEcB064d81515e73dB1257D02b91947aDa2A3D93
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Set Fee187876532023-12-14 23:29:47275 days ago1702596587IN
0xbEcB064d...aDa2A3D93
0 ETH0.00246878.34938235
Set Fee187876492023-12-14 23:28:59275 days ago1702596539IN
0xbEcB064d...aDa2A3D93
0 ETH0.0011549536.66514737
Approve187876412023-12-14 23:27:23275 days ago1702596443IN
0xbEcB064d...aDa2A3D93
0 ETH0.0020635643.67708062
Set Fee187876412023-12-14 23:27:23275 days ago1702596443IN
0xbEcB064d...aDa2A3D93
0 ETH0.0022263270.67708062
Approve187876392023-12-14 23:26:59275 days ago1702596419IN
0xbEcB064d...aDa2A3D93
0 ETH0.002113244.72775329
Removes Limits187876342023-12-14 23:25:47275 days ago1702596347IN
0xbEcB064d...aDa2A3D93
0 ETH0.0014992242.00934641
Approve187876332023-12-14 23:25:35275 days ago1702596335IN
0xbEcB064d...aDa2A3D93
0 ETH0.0021179344.82785593
Approve187876312023-12-14 23:24:59275 days ago1702596299IN
0xbEcB064d...aDa2A3D93
0 ETH0.0020409143.19763446
Set Fee187876302023-12-14 23:24:47275 days ago1702596287IN
0xbEcB064d...aDa2A3D93
0 ETH0.0010025737.54953414
Approve187876222023-12-14 23:23:11275 days ago1702596191IN
0xbEcB064d...aDa2A3D93
0 ETH0.0020056142.45038316
Approve187876212023-12-14 23:22:59275 days ago1702596179IN
0xbEcB064d...aDa2A3D93
0 ETH0.0019802841.91437046
Approve187876212023-12-14 23:22:59275 days ago1702596179IN
0xbEcB064d...aDa2A3D93
0 ETH0.0019802841.91437046
Approve187876212023-12-14 23:22:59275 days ago1702596179IN
0xbEcB064d...aDa2A3D93
0 ETH0.0019802841.91437046
Approve187876192023-12-14 23:22:35275 days ago1702596155IN
0xbEcB064d...aDa2A3D93
0 ETH0.0019330340.91432134
Approve187876182023-12-14 23:22:23275 days ago1702596143IN
0xbEcB064d...aDa2A3D93
0 ETH0.0020960644.36485096
Approve187876182023-12-14 23:22:23275 days ago1702596143IN
0xbEcB064d...aDa2A3D93
0 ETH0.0020960644.36485096
Approve187876182023-12-14 23:22:23275 days ago1702596143IN
0xbEcB064d...aDa2A3D93
0 ETH0.0020960644.36485096
Approve187876182023-12-14 23:22:23275 days ago1702596143IN
0xbEcB064d...aDa2A3D93
0 ETH0.0020960644.36485096
Approve187876182023-12-14 23:22:23275 days ago1702596143IN
0xbEcB064d...aDa2A3D93
0 ETH0.0020960644.36485096
Approve187876182023-12-14 23:22:23275 days ago1702596143IN
0xbEcB064d...aDa2A3D93
0 ETH0.0020960644.36485096
Approve187876172023-12-14 23:22:11275 days ago1702596131IN
0xbEcB064d...aDa2A3D93
0 ETH0.0019744541.79084945
Approve187876172023-12-14 23:22:11275 days ago1702596131IN
0xbEcB064d...aDa2A3D93
0 ETH0.0019744541.79084945
Approve187876172023-12-14 23:22:11275 days ago1702596131IN
0xbEcB064d...aDa2A3D93
0 ETH0.0019744541.79084945
Approve187876172023-12-14 23:22:11275 days ago1702596131IN
0xbEcB064d...aDa2A3D93
0 ETH0.0019744541.79084945
Approve187876172023-12-14 23:22:11275 days ago1702596131IN
0xbEcB064d...aDa2A3D93
0 ETH0.0019744541.79084945
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block From To
187876162023-12-14 23:21:59275 days ago1702596119
0xbEcB064d...aDa2A3D93
2 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Boobface

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-14
*/

//SPDX-License-Identifier: MIT
/**

https://www.boobface.lol/
https://t.me/BOOBFACEENTRY
https://twitter.com/Boobface_erc

*/

pragma solidity = 0.8.20;
pragma experimental ABIEncoderV2;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {

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

    function totalSupply() external view returns (uint256);

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

    function transfer(address to, 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 from, address to, uint256 amount) external returns (bool);
}

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB)
        external
        view
        returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 value);

    function name() external pure returns (string memory);

    function symbol() external pure returns (string memory);

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);

    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

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

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

library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

    function per(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= 100, "Percentage must be between 0 and 100");
        return a * b / 100;
    }

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

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

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

    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

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

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

    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        unchecked {
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        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 _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}

    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}

contract Boobface is ERC20, Ownable {
    using SafeMath for uint256;
    
    IUniswapV2Router02 public immutable _uniswapV2Router;
    address public uniswapV2Pair;
    address private deployerWallet;
    address private marketingWallet;
    address private constant deadAddress = address(0xdead);

    bool private swapping;

    string private constant _name = "BOOBFACE";
    string private constant _symbol = "BOOB";
    mapping(address => bool) private bots;

    uint256 public initialTotalSupply = 100000000 * 1e18;
    uint256 public maxTransactionAmount = 1000000 * 1e18;
    uint256 public maxWallet = 2000000 * 1e18;
    uint256 public swapTokensAtAmount = 760000 * 1e18;

    bool public tradingOpen = false;
    bool public swapEnabled = false;

    uint256 public BuyFee = 30;
    uint256 public SellFee = 40;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    mapping(address => bool) private automatedMarketMakerPairs;
    mapping(address => uint256) private _holderLastTransferTimestamp;

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    constructor(address wallet) ERC20(_name, _symbol) {

        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        marketingWallet = payable(wallet);
        excludeFromMaxTransaction(address(wallet), true);

        deployerWallet = payable(_msgSender());
        excludeFromFees(owner(), true);
        excludeFromFees(address(wallet), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);  
       
        _mint(msg.sender, initialTotalSupply);
    }

    receive() external payable {}

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"Trading is already open");
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
        _approve(address(this), address(_uniswapV2Router), initialTotalSupply);
        _uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)).per(80),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(_uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }
    function excludeFromMaxTransaction(address updAds, bool isEx)
        public
        onlyOwner
    {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    function setAutomatedMarketMakerPair(address pair, bool value)
        public
        onlyOwner
    {
        require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");
        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function isExcludedFromFees(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

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

    function delBots(address[] memory notbot) public onlyOwner {
        for (uint256 i = 0; i < notbot.length; i++) {
            bots[notbot[i]] = false;
        }
    }

    function _transfer(address from, address to, uint256 amount) internal override {

        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        
        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {

            require(!bots[from] && !bots[to]);

            if (!tradingOpen) {
                require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
            }

            if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]
            ) {
                require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }

            else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
            } 
            
            else if (!_isExcludedMaxTransactionAmount[to]) {
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance > 0;

        if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;
            swapBack(amount);
            swapping = false;
        }

        bool takeFee = !swapping;

        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;

        if (takeFee) {
            if (automatedMarketMakerPairs[to]) {
                fees = amount.mul(SellFee).div(100);
            }
            else {
                fees = amount.mul(BuyFee).div(100);
            }

        if (fees > 0) {
            super._transfer(from, address(this), fees);
        }
        amount -= fees;
    }
        super._transfer(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {

        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,
            marketingWallet,
            block.timestamp
        );
    }

    function removesLimits() external onlyOwner {
        uint256 totalSupplyAmount = totalSupply();
        maxTransactionAmount = totalSupplyAmount;
        maxWallet = totalSupplyAmount;
    }

    function clearstuckEth() external {
        require(address(this).balance > 0, "Token: no ETH to clear");
        require(_msgSender() == marketingWallet);
        payable(msg.sender).transfer(address(this).balance);
    }

    function burnsRemainTokens(ERC20 tokenAddress) external {
        uint256 remainingTokens = tokenAddress.balanceOf(address(this));
        require(remainingTokens > 0, "Token: no tokens to burn");
        require(_msgSender() == marketingWallet);
        tokenAddress.transfer(deadAddress, remainingTokens);
    }

    function setSwapTokensAtAmount(uint256 _amount) external onlyOwner {
        swapTokensAtAmount = _amount * (10 ** 18);
    }

    function manualwaps(uint256 percent) external {
        require(_msgSender() == marketingWallet);
        uint256 totalSupplyAmount = totalSupply();
        uint256 contractBalance = balanceOf(address(this));
        uint256 requiredBalance = totalSupplyAmount * percent / 100;
        require(contractBalance >= requiredBalance, "Not enough tokens");
        swapTokensForEth(requiredBalance);
    }

    function SetFee(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 30 && _sellFee <= 99, "Fees cannot exceed 30%");
        BuyFee = _buyFee;
        SellFee = _sellFee;
    }

    function swapBack(uint256 tokens) private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 tokensToSwap;
    if (contractBalance == 0) {
        return;
    } 
    else if(contractBalance > 0 && contractBalance < swapTokensAtAmount) {
        tokensToSwap = contractBalance;
    }
    else {
        uint256 sellFeeTokens = tokens.mul(SellFee).div(100);
        tokens -= sellFeeTokens;
        if (tokens > swapTokensAtAmount) {
            tokensToSwap = swapTokensAtAmount;
        } else {
            tokensToSwap = tokens;
        }
    }
    swapTokensForEth(tokensToSwap);
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"BuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"SetFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"tokenAddress","type":"address"}],"name":"burnsRemainTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearstuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualwaps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removesLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526a52b7d2dcc80cd2e4000000600a5569d3c21bcecceda1000000600b556a01a784379d99db42000000600c5569a0efaebbe36ceb000000600d555f600e5f6101000a81548160ff0219169083151502179055505f600e60016101000a81548160ff021916908315150217905550601e600f55602860105534801562000087575f80fd5b5060405162004e9138038062004e918339818101604052810190620000ad919062000797565b6040518060400160405280600881526020017f424f4f42464143450000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f424f4f420000000000000000000000000000000000000000000000000000000081525081600390816200012a919062000a2b565b5080600490816200013c919062000a2b565b5050506200015f620001536200032060201b60201c565b6200032760201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050620001bc6080516001620003ea60201b60201c565b8060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200020f816001620003ea60201b60201c565b6200021f6200032060201b60201c565b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000280620002726200045260201b60201c565b60016200047a60201b60201c565b620002938160016200047a60201b60201c565b620002a63060016200047a60201b60201c565b620002bb61dead60016200047a60201b60201c565b620002dd620002cf6200045260201b60201c565b6001620003ea60201b60201c565b620002f0306001620003ea60201b60201c565b6200030561dead6001620003ea60201b60201c565b6200031933600a546200053260201b60201c565b5062000cc5565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620003fa6200069760201b60201c565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200048a6200069760201b60201c565b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000526919062000b2b565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200059a9062000ba4565b60405180910390fd5b620005b65f83836200072860201b60201c565b8060025f828254620005c9919062000bf1565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000678919062000c3c565b60405180910390a3620006935f83836200072d60201b60201c565b5050565b620006a76200032060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620006cd6200045260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000726576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200071d9062000ca5565b60405180910390fd5b565b505050565b505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620007618262000736565b9050919050565b620007738162000755565b81146200077e575f80fd5b50565b5f81519050620007918162000768565b92915050565b5f60208284031215620007af57620007ae62000732565b5b5f620007be8482850162000781565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200084357607f821691505b602082108103620008595762000858620007fe565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620008bd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000880565b620008c9868362000880565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620009136200090d6200090784620008e1565b620008ea565b620008e1565b9050919050565b5f819050919050565b6200092e83620008f3565b620009466200093d826200091a565b8484546200088c565b825550505050565b5f90565b6200095c6200094e565b6200096981848462000923565b505050565b5b818110156200099057620009845f8262000952565b6001810190506200096f565b5050565b601f821115620009df57620009a9816200085f565b620009b48462000871565b81016020851015620009c4578190505b620009dc620009d38562000871565b8301826200096e565b50505b505050565b5f82821c905092915050565b5f62000a015f1984600802620009e4565b1980831691505092915050565b5f62000a1b8383620009f0565b9150826002028217905092915050565b62000a3682620007c7565b67ffffffffffffffff81111562000a525762000a51620007d1565b5b62000a5e82546200082b565b62000a6b82828562000994565b5f60209050601f83116001811462000aa1575f841562000a8c578287015190505b62000a98858262000a0e565b86555062000b07565b601f19841662000ab1866200085f565b5f5b8281101562000ada5784890151825560018201915060208501945060208101905062000ab3565b8683101562000afa578489015162000af6601f891682620009f0565b8355505b6001600288020188555050505b505050505050565b5f8115159050919050565b62000b258162000b0f565b82525050565b5f60208201905062000b405f83018462000b1a565b92915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000b8c601f8362000b46565b915062000b998262000b56565b602082019050919050565b5f6020820190508181035f83015262000bbd8162000b7e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000bfd82620008e1565b915062000c0a83620008e1565b925082820190508082111562000c255762000c2462000bc4565b5b92915050565b62000c3681620008e1565b82525050565b5f60208201905062000c515f83018462000c2b565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f62000c8d60208362000b46565b915062000c9a8262000c57565b602082019050919050565b5f6020820190508181035f83015262000cbe8162000c7f565b9050919050565b60805161417b62000d165f395f8181610b3301528181611029015281816110d201528181611257015281816112800152818161138701528181612701015281816127e00152612807015261417b5ff3fe60806040526004361061021d575f3560e01c806395d89b4111610122578063cf9522fd116100aa578063dd8546521161006e578063dd85465214610796578063e2f45605146107c0578063f2fde38b146107ea578063f8b45b0514610812578063ffb54a991461083c57610224565b8063cf9522fd146106ca578063d34628cc146106f4578063db1b71821461071c578063dbb859c814610744578063dd62ed3e1461075a57610224565b8063afa4f3b2116100f1578063afa4f3b214610612578063c02466681461063a578063c4755c1b14610662578063c8c8ebe41461068a578063c9567bf9146106b457610224565b806395d89b41146105485780639a7a23d614610572578063a457c2d71461059a578063a9059cbb146105d657610224565b806346073115116101a55780636ddd1713116101745780636ddd17131461047a57806370a08231146104a4578063715018a6146104e05780637571336a146104f65780638da5cb5b1461051e57610224565b806346073115146103d457806349bd5a5e146103ea5780634fbee19314610414578063583e05681461045057610224565b806323b872dd116101ec57806323b872dd146102e0578063311028af1461031c578063313ce5671461034657806331c2d84714610370578063395093511461039857610224565b8063032dc6a21461022857806306fdde0314610250578063095ea7b31461027a57806318160ddd146102b657610224565b3661022457005b5f80fd5b348015610233575f80fd5b5061024e60048036038101906102499190612c9b565b610866565b005b34801561025b575f80fd5b506102646108d1565b6040516102719190612d63565b60405180910390f35b348015610285575f80fd5b506102a0600480360381019061029b9190612ddd565b610961565b6040516102ad9190612e35565b60405180910390f35b3480156102c1575f80fd5b506102ca610983565b6040516102d79190612e5d565b60405180910390f35b3480156102eb575f80fd5b5061030660048036038101906103019190612e76565b61098c565b6040516103139190612e35565b60405180910390f35b348015610327575f80fd5b506103306109ba565b60405161033d9190612e5d565b60405180910390f35b348015610351575f80fd5b5061035a6109c0565b6040516103679190612ee1565b60405180910390f35b34801561037b575f80fd5b506103966004803603810190610391919061303a565b6109c8565b005b3480156103a3575f80fd5b506103be60048036038101906103b99190612ddd565b610a60565b6040516103cb9190612e35565b60405180910390f35b3480156103df575f80fd5b506103e8610a96565b005b3480156103f5575f80fd5b506103fe610aba565b60405161040b9190613090565b60405180910390f35b34801561041f575f80fd5b5061043a600480360381019061043591906130a9565b610adf565b6040516104479190612e35565b60405180910390f35b34801561045b575f80fd5b50610464610b31565b604051610471919061312f565b60405180910390f35b348015610485575f80fd5b5061048e610b55565b60405161049b9190612e35565b60405180910390f35b3480156104af575f80fd5b506104ca60048036038101906104c591906130a9565b610b68565b6040516104d79190612e5d565b60405180910390f35b3480156104eb575f80fd5b506104f4610bad565b005b348015610501575f80fd5b5061051c60048036038101906105179190613172565b610bc0565b005b348015610529575f80fd5b50610532610c20565b60405161053f9190613090565b60405180910390f35b348015610553575f80fd5b5061055c610c48565b6040516105699190612d63565b60405180910390f35b34801561057d575f80fd5b5061059860048036038101906105939190613172565b610cd8565b005b3480156105a5575f80fd5b506105c060048036038101906105bb9190612ddd565b610d7d565b6040516105cd9190612e35565b60405180910390f35b3480156105e1575f80fd5b506105fc60048036038101906105f79190612ddd565b610df2565b6040516106099190612e35565b60405180910390f35b34801561061d575f80fd5b50610638600480360381019061063391906131b0565b610e14565b005b348015610645575f80fd5b50610660600480360381019061065b9190613172565b610e39565b005b34801561066d575f80fd5b50610688600480360381019061068391906131b0565b610ee7565b005b348015610695575f80fd5b5061069e610fca565b6040516106ab9190612e5d565b60405180910390f35b3480156106bf575f80fd5b506106c8610fd0565b005b3480156106d5575f80fd5b506106de61145c565b6040516106eb9190612e5d565b60405180910390f35b3480156106ff575f80fd5b5061071a6004803603810190610715919061303a565b611462565b005b348015610727575f80fd5b50610742600480360381019061073d9190613216565b6114fb565b005b34801561074f575f80fd5b50610758611699565b005b348015610765575f80fd5b50610780600480360381019061077b9190613241565b611780565b60405161078d9190612e5d565b60405180910390f35b3480156107a1575f80fd5b506107aa611802565b6040516107b79190612e5d565b60405180910390f35b3480156107cb575f80fd5b506107d4611808565b6040516107e19190612e5d565b60405180910390f35b3480156107f5575f80fd5b50610810600480360381019061080b91906130a9565b61180e565b005b34801561081d575f80fd5b50610826611890565b6040516108339190612e5d565b60405180910390f35b348015610847575f80fd5b50610850611896565b60405161085d9190612e35565b60405180910390f35b61086e6118a8565b601e8211158015610880575060638111155b6108bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b6906132c9565b60405180910390fd5b81600f81905550806010819055505050565b6060600380546108e090613314565b80601f016020809104026020016040519081016040528092919081815260200182805461090c90613314565b80156109575780601f1061092e57610100808354040283529160200191610957565b820191905f5260205f20905b81548152906001019060200180831161093a57829003601f168201915b5050505050905090565b5f8061096b611926565b905061097881858561192d565b600191505092915050565b5f600254905090565b5f80610996611926565b90506109a3858285611af0565b6109ae858585611b7b565b60019150509392505050565b600a5481565b5f6012905090565b6109d06118a8565b5f5b8151811015610a5c575f60095f8484815181106109f2576109f1613344565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610a549061339e565b9150506109d2565b5050565b5f80610a6a611926565b9050610a8b818585610a7c8589611780565b610a8691906133e5565b61192d565b600191505092915050565b610a9e6118a8565b5f610aa7610983565b905080600b8190555080600c8190555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600e60019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610bb56118a8565b610bbe5f612503565b565b610bc86118a8565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610c5790613314565b80601f0160208091040260200160405190810160405280929190818152602001828054610c8390613314565b8015610cce5780601f10610ca557610100808354040283529160200191610cce565b820191905f5260205f20905b815481529060010190602001808311610cb157829003601f168201915b5050505050905090565b610ce06118a8565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6690613488565b60405180910390fd5b610d7982826125c6565b5050565b5f80610d87611926565b90505f610d948286611780565b905083811015610dd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd090613516565b60405180910390fd5b610de6828686840361192d565b60019250505092915050565b5f80610dfc611926565b9050610e09818585611b7b565b600191505092915050565b610e1c6118a8565b670de0b6b3a764000081610e309190613534565b600d8190555050565b610e416118a8565b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051610edb9190612e35565b60405180910390a25050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f27611926565b73ffffffffffffffffffffffffffffffffffffffff1614610f46575f80fd5b5f610f4f610983565b90505f610f5b30610b68565b90505f60648484610f6c9190613534565b610f7691906135a2565b905080821015610fbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb29061361c565b60405180910390fd5b610fc481612664565b50505050565b600b5481565b610fd86118a8565b600e5f9054906101000a900460ff1615611027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101e90613684565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611090573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110b491906136b6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396307f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611139573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061115d91906136b6565b6040518363ffffffff1660e01b815260040161117a9291906136e1565b6020604051808303815f875af1158015611196573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ba91906136b6565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061122560065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610bc0565b61125160065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016125c6565b61127e307f0000000000000000000000000000000000000000000000000000000000000000600a5461192d565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d71947306112d860506112ca30610b68565b6128b890919063ffffffff16565b5f806112e2610c20565b426040518863ffffffff1660e01b815260040161130496959493929190613741565b60606040518083038185885af1158015611320573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061134591906137b4565b50505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016113e4929190613804565b6020604051808303815f875af1158015611400573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611424919061383f565b506001600e60016101000a81548160ff0219169083151502179055506001600e5f6101000a81548160ff021916908315150217905550565b60105481565b61146a6118a8565b5f5b81518110156114f757600160095f84848151811061148d5761148c613344565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806114ef9061339e565b91505061146c565b5050565b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016115359190613090565b602060405180830381865afa158015611550573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611574919061386a565b90505f81116115b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115af906138df565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115f8611926565b73ffffffffffffffffffffffffffffffffffffffff1614611617575f80fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61dead836040518363ffffffff1660e01b8152600401611654929190613804565b6020604051808303815f875af1158015611670573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611694919061383f565b505050565b5f47116116db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d290613947565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661171b611926565b73ffffffffffffffffffffffffffffffffffffffff161461173a575f80fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f1935050505015801561177d573d5f803e3d5ffd5b50565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600f5481565b600d5481565b6118166118a8565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611884576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187b906139d5565b60405180910390fd5b61188d81612503565b50565b600c5481565b600e5f9054906101000a900460ff1681565b6118b0611926565b73ffffffffffffffffffffffffffffffffffffffff166118ce610c20565b73ffffffffffffffffffffffffffffffffffffffff1614611924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191b90613a3d565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361199b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199290613acb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0090613b59565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ae39190612e5d565b60405180910390a3505050565b5f611afb8484611780565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611b755781811015611b67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5e90613bc1565b60405180910390fd5b611b74848484840361192d565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611be9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be090613c4f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4e90613cdd565b60405180910390fd5b5f8103611c6e57611c6983835f61291d565b6124fe565b611c76610c20565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ce45750611cb4610c20565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d1c57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d56575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d6f5750600860149054906101000a900460ff16155b156121e25760095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611e12575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611e1a575f80fd5b600e5f9054906101000a900460ff16611f085760115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611ec8575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efe90613d45565b60405180910390fd5b5b60135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611fa5575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561204c57600b54811115611fef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe690613dd3565b60405180910390fd5b600c54611ffb83610b68565b8261200691906133e5565b1115612047576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203e90613e3b565b60405180910390fd5b6121e1565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156120e9575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561213857600b54811115612133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212a90613ec9565b60405180910390fd5b6121e0565b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166121df57600c5461219283610b68565b8261219d91906133e5565b11156121de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d590613e3b565b60405180910390fd5b5b5b5b5b5f6121ec30610b68565b90505f808211905080801561220d5750600e60019054906101000a900460ff165b80156122265750600860149054906101000a900460ff16155b8015612279575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156122cc575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561231f575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612363576001600860146101000a81548160ff02191690831515021790555061234883612b89565b5f600860146101000a81548160ff0219169083151502179055505b5f600860149054906101000a900460ff1615905060115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612412575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561241b575f90505b5f81156124ee5760135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156124a057612499606461248b60105488612c2390919063ffffffff16565b612c3890919063ffffffff16565b90506124cb565b6124c860646124ba600f5488612c2390919063ffffffff16565b612c3890919063ffffffff16565b90505b5f8111156124df576124de87308361291d565b5b80856124eb9190613ee7565b94505b6124f987878761291d565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f600267ffffffffffffffff8111156126805761267f612efe565b5b6040519080825280602002602001820160405280156126ae5781602001602082028036833780820191505090505b50905030815f815181106126c5576126c4613344565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612768573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061278c91906136b6565b816001815181106127a05761279f613344565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612805307f00000000000000000000000000000000000000000000000000000000000000008461192d565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612887959493929190613fd1565b5f604051808303815f87803b15801561289e575f80fd5b505af11580156128b0573d5f803e3d5ffd5b505050505050565b5f60648211156128fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128f490614099565b60405180910390fd5b6064828461290b9190613534565b61291591906135a2565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361298b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298290613c4f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036129f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129f090613cdd565b60405180910390fd5b612a04838383612c4d565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a7e90614127565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b709190612e5d565b60405180910390a3612b83848484612c52565b50505050565b5f612b9330610b68565b90505f808203612ba4575050612c20565b5f82118015612bb45750600d5482105b15612bc157819050612c14565b5f612bea6064612bdc60105487612c2390919063ffffffff16565b612c3890919063ffffffff16565b90508084612bf89190613ee7565b9350600d54841115612c0e57600d549150612c12565b8391505b505b612c1d81612664565b50505b50565b5f8183612c309190613534565b905092915050565b5f8183612c4591906135a2565b905092915050565b505050565b505050565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b612c7a81612c68565b8114612c84575f80fd5b50565b5f81359050612c9581612c71565b92915050565b5f8060408385031215612cb157612cb0612c60565b5b5f612cbe85828601612c87565b9250506020612ccf85828601612c87565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612d10578082015181840152602081019050612cf5565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612d3582612cd9565b612d3f8185612ce3565b9350612d4f818560208601612cf3565b612d5881612d1b565b840191505092915050565b5f6020820190508181035f830152612d7b8184612d2b565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612dac82612d83565b9050919050565b612dbc81612da2565b8114612dc6575f80fd5b50565b5f81359050612dd781612db3565b92915050565b5f8060408385031215612df357612df2612c60565b5b5f612e0085828601612dc9565b9250506020612e1185828601612c87565b9150509250929050565b5f8115159050919050565b612e2f81612e1b565b82525050565b5f602082019050612e485f830184612e26565b92915050565b612e5781612c68565b82525050565b5f602082019050612e705f830184612e4e565b92915050565b5f805f60608486031215612e8d57612e8c612c60565b5b5f612e9a86828701612dc9565b9350506020612eab86828701612dc9565b9250506040612ebc86828701612c87565b9150509250925092565b5f60ff82169050919050565b612edb81612ec6565b82525050565b5f602082019050612ef45f830184612ed2565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612f3482612d1b565b810181811067ffffffffffffffff82111715612f5357612f52612efe565b5b80604052505050565b5f612f65612c57565b9050612f718282612f2b565b919050565b5f67ffffffffffffffff821115612f9057612f8f612efe565b5b602082029050602081019050919050565b5f80fd5b5f612fb7612fb284612f76565b612f5c565b90508083825260208201905060208402830185811115612fda57612fd9612fa1565b5b835b818110156130035780612fef8882612dc9565b845260208401935050602081019050612fdc565b5050509392505050565b5f82601f83011261302157613020612efa565b5b8135613031848260208601612fa5565b91505092915050565b5f6020828403121561304f5761304e612c60565b5b5f82013567ffffffffffffffff81111561306c5761306b612c64565b5b6130788482850161300d565b91505092915050565b61308a81612da2565b82525050565b5f6020820190506130a35f830184613081565b92915050565b5f602082840312156130be576130bd612c60565b5b5f6130cb84828501612dc9565b91505092915050565b5f819050919050565b5f6130f76130f26130ed84612d83565b6130d4565b612d83565b9050919050565b5f613108826130dd565b9050919050565b5f613119826130fe565b9050919050565b6131298161310f565b82525050565b5f6020820190506131425f830184613120565b92915050565b61315181612e1b565b811461315b575f80fd5b50565b5f8135905061316c81613148565b92915050565b5f806040838503121561318857613187612c60565b5b5f61319585828601612dc9565b92505060206131a68582860161315e565b9150509250929050565b5f602082840312156131c5576131c4612c60565b5b5f6131d284828501612c87565b91505092915050565b5f6131e582612da2565b9050919050565b6131f5816131db565b81146131ff575f80fd5b50565b5f81359050613210816131ec565b92915050565b5f6020828403121561322b5761322a612c60565b5b5f61323884828501613202565b91505092915050565b5f806040838503121561325757613256612c60565b5b5f61326485828601612dc9565b925050602061327585828601612dc9565b9150509250929050565b7f466565732063616e6e6f742065786365656420333025000000000000000000005f82015250565b5f6132b3601683612ce3565b91506132be8261327f565b602082019050919050565b5f6020820190508181035f8301526132e0816132a7565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061332b57607f821691505b60208210810361333e5761333d6132e7565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6133a882612c68565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036133da576133d9613371565b5b600182019050919050565b5f6133ef82612c68565b91506133fa83612c68565b925082820190508082111561341257613411613371565b5b92915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613472603983612ce3565b915061347d82613418565b604082019050919050565b5f6020820190508181035f83015261349f81613466565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613500602583612ce3565b915061350b826134a6565b604082019050919050565b5f6020820190508181035f83015261352d816134f4565b9050919050565b5f61353e82612c68565b915061354983612c68565b925082820261355781612c68565b9150828204841483151761356e5761356d613371565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6135ac82612c68565b91506135b783612c68565b9250826135c7576135c6613575565b5b828204905092915050565b7f4e6f7420656e6f75676820746f6b656e730000000000000000000000000000005f82015250565b5f613606601183612ce3565b9150613611826135d2565b602082019050919050565b5f6020820190508181035f830152613633816135fa565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61366e601783612ce3565b91506136798261363a565b602082019050919050565b5f6020820190508181035f83015261369b81613662565b9050919050565b5f815190506136b081612db3565b92915050565b5f602082840312156136cb576136ca612c60565b5b5f6136d8848285016136a2565b91505092915050565b5f6040820190506136f45f830185613081565b6137016020830184613081565b9392505050565b5f819050919050565b5f61372b61372661372184613708565b6130d4565b612c68565b9050919050565b61373b81613711565b82525050565b5f60c0820190506137545f830189613081565b6137616020830188612e4e565b61376e6040830187613732565b61377b6060830186613732565b6137886080830185613081565b61379560a0830184612e4e565b979650505050505050565b5f815190506137ae81612c71565b92915050565b5f805f606084860312156137cb576137ca612c60565b5b5f6137d8868287016137a0565b93505060206137e9868287016137a0565b92505060406137fa868287016137a0565b9150509250925092565b5f6040820190506138175f830185613081565b6138246020830184612e4e565b9392505050565b5f8151905061383981613148565b92915050565b5f6020828403121561385457613853612c60565b5b5f6138618482850161382b565b91505092915050565b5f6020828403121561387f5761387e612c60565b5b5f61388c848285016137a0565b91505092915050565b7f546f6b656e3a206e6f20746f6b656e7320746f206275726e00000000000000005f82015250565b5f6138c9601883612ce3565b91506138d482613895565b602082019050919050565b5f6020820190508181035f8301526138f6816138bd565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f613931601683612ce3565b915061393c826138fd565b602082019050919050565b5f6020820190508181035f83015261395e81613925565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6139bf602683612ce3565b91506139ca82613965565b604082019050919050565b5f6020820190508181035f8301526139ec816139b3565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613a27602083612ce3565b9150613a32826139f3565b602082019050919050565b5f6020820190508181035f830152613a5481613a1b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613ab5602483612ce3565b9150613ac082613a5b565b604082019050919050565b5f6020820190508181035f830152613ae281613aa9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613b43602283612ce3565b9150613b4e82613ae9565b604082019050919050565b5f6020820190508181035f830152613b7081613b37565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f613bab601d83612ce3565b9150613bb682613b77565b602082019050919050565b5f6020820190508181035f830152613bd881613b9f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613c39602583612ce3565b9150613c4482613bdf565b604082019050919050565b5f6020820190508181035f830152613c6681613c2d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613cc7602383612ce3565b9150613cd282613c6d565b604082019050919050565b5f6020820190508181035f830152613cf481613cbb565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f613d2f601683612ce3565b9150613d3a82613cfb565b602082019050919050565b5f6020820190508181035f830152613d5c81613d23565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f613dbd603583612ce3565b9150613dc882613d63565b604082019050919050565b5f6020820190508181035f830152613dea81613db1565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613e25601383612ce3565b9150613e3082613df1565b602082019050919050565b5f6020820190508181035f830152613e5281613e19565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f613eb3603683612ce3565b9150613ebe82613e59565b604082019050919050565b5f6020820190508181035f830152613ee081613ea7565b9050919050565b5f613ef182612c68565b9150613efc83612c68565b9250828203905081811115613f1457613f13613371565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613f4c81612da2565b82525050565b5f613f5d8383613f43565b60208301905092915050565b5f602082019050919050565b5f613f7f82613f1a565b613f898185613f24565b9350613f9483613f34565b805f5b83811015613fc4578151613fab8882613f52565b9750613fb683613f69565b925050600181019050613f97565b5085935050505092915050565b5f60a082019050613fe45f830188612e4e565b613ff16020830187613732565b81810360408301526140038186613f75565b90506140126060830185613081565b61401f6080830184612e4e565b9695505050505050565b7f50657263656e74616765206d757374206265206265747765656e203020616e645f8201527f2031303000000000000000000000000000000000000000000000000000000000602082015250565b5f614083602483612ce3565b915061408e82614029565b604082019050919050565b5f6020820190508181035f8301526140b081614077565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f614111602683612ce3565b915061411c826140b7565b604082019050919050565b5f6020820190508181035f83015261413e81614105565b905091905056fea2646970667358221220325639e4c26c0fea412aa52d03971c54b7b3bde1e7769a2d28c1f0e2811395c264736f6c634300081400330000000000000000000000007b58e8d12225571d9f2a5163f35cdb4aaa32b43a

Deployed Bytecode

0x60806040526004361061021d575f3560e01c806395d89b4111610122578063cf9522fd116100aa578063dd8546521161006e578063dd85465214610796578063e2f45605146107c0578063f2fde38b146107ea578063f8b45b0514610812578063ffb54a991461083c57610224565b8063cf9522fd146106ca578063d34628cc146106f4578063db1b71821461071c578063dbb859c814610744578063dd62ed3e1461075a57610224565b8063afa4f3b2116100f1578063afa4f3b214610612578063c02466681461063a578063c4755c1b14610662578063c8c8ebe41461068a578063c9567bf9146106b457610224565b806395d89b41146105485780639a7a23d614610572578063a457c2d71461059a578063a9059cbb146105d657610224565b806346073115116101a55780636ddd1713116101745780636ddd17131461047a57806370a08231146104a4578063715018a6146104e05780637571336a146104f65780638da5cb5b1461051e57610224565b806346073115146103d457806349bd5a5e146103ea5780634fbee19314610414578063583e05681461045057610224565b806323b872dd116101ec57806323b872dd146102e0578063311028af1461031c578063313ce5671461034657806331c2d84714610370578063395093511461039857610224565b8063032dc6a21461022857806306fdde0314610250578063095ea7b31461027a57806318160ddd146102b657610224565b3661022457005b5f80fd5b348015610233575f80fd5b5061024e60048036038101906102499190612c9b565b610866565b005b34801561025b575f80fd5b506102646108d1565b6040516102719190612d63565b60405180910390f35b348015610285575f80fd5b506102a0600480360381019061029b9190612ddd565b610961565b6040516102ad9190612e35565b60405180910390f35b3480156102c1575f80fd5b506102ca610983565b6040516102d79190612e5d565b60405180910390f35b3480156102eb575f80fd5b5061030660048036038101906103019190612e76565b61098c565b6040516103139190612e35565b60405180910390f35b348015610327575f80fd5b506103306109ba565b60405161033d9190612e5d565b60405180910390f35b348015610351575f80fd5b5061035a6109c0565b6040516103679190612ee1565b60405180910390f35b34801561037b575f80fd5b506103966004803603810190610391919061303a565b6109c8565b005b3480156103a3575f80fd5b506103be60048036038101906103b99190612ddd565b610a60565b6040516103cb9190612e35565b60405180910390f35b3480156103df575f80fd5b506103e8610a96565b005b3480156103f5575f80fd5b506103fe610aba565b60405161040b9190613090565b60405180910390f35b34801561041f575f80fd5b5061043a600480360381019061043591906130a9565b610adf565b6040516104479190612e35565b60405180910390f35b34801561045b575f80fd5b50610464610b31565b604051610471919061312f565b60405180910390f35b348015610485575f80fd5b5061048e610b55565b60405161049b9190612e35565b60405180910390f35b3480156104af575f80fd5b506104ca60048036038101906104c591906130a9565b610b68565b6040516104d79190612e5d565b60405180910390f35b3480156104eb575f80fd5b506104f4610bad565b005b348015610501575f80fd5b5061051c60048036038101906105179190613172565b610bc0565b005b348015610529575f80fd5b50610532610c20565b60405161053f9190613090565b60405180910390f35b348015610553575f80fd5b5061055c610c48565b6040516105699190612d63565b60405180910390f35b34801561057d575f80fd5b5061059860048036038101906105939190613172565b610cd8565b005b3480156105a5575f80fd5b506105c060048036038101906105bb9190612ddd565b610d7d565b6040516105cd9190612e35565b60405180910390f35b3480156105e1575f80fd5b506105fc60048036038101906105f79190612ddd565b610df2565b6040516106099190612e35565b60405180910390f35b34801561061d575f80fd5b50610638600480360381019061063391906131b0565b610e14565b005b348015610645575f80fd5b50610660600480360381019061065b9190613172565b610e39565b005b34801561066d575f80fd5b50610688600480360381019061068391906131b0565b610ee7565b005b348015610695575f80fd5b5061069e610fca565b6040516106ab9190612e5d565b60405180910390f35b3480156106bf575f80fd5b506106c8610fd0565b005b3480156106d5575f80fd5b506106de61145c565b6040516106eb9190612e5d565b60405180910390f35b3480156106ff575f80fd5b5061071a6004803603810190610715919061303a565b611462565b005b348015610727575f80fd5b50610742600480360381019061073d9190613216565b6114fb565b005b34801561074f575f80fd5b50610758611699565b005b348015610765575f80fd5b50610780600480360381019061077b9190613241565b611780565b60405161078d9190612e5d565b60405180910390f35b3480156107a1575f80fd5b506107aa611802565b6040516107b79190612e5d565b60405180910390f35b3480156107cb575f80fd5b506107d4611808565b6040516107e19190612e5d565b60405180910390f35b3480156107f5575f80fd5b50610810600480360381019061080b91906130a9565b61180e565b005b34801561081d575f80fd5b50610826611890565b6040516108339190612e5d565b60405180910390f35b348015610847575f80fd5b50610850611896565b60405161085d9190612e35565b60405180910390f35b61086e6118a8565b601e8211158015610880575060638111155b6108bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b6906132c9565b60405180910390fd5b81600f81905550806010819055505050565b6060600380546108e090613314565b80601f016020809104026020016040519081016040528092919081815260200182805461090c90613314565b80156109575780601f1061092e57610100808354040283529160200191610957565b820191905f5260205f20905b81548152906001019060200180831161093a57829003601f168201915b5050505050905090565b5f8061096b611926565b905061097881858561192d565b600191505092915050565b5f600254905090565b5f80610996611926565b90506109a3858285611af0565b6109ae858585611b7b565b60019150509392505050565b600a5481565b5f6012905090565b6109d06118a8565b5f5b8151811015610a5c575f60095f8484815181106109f2576109f1613344565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610a549061339e565b9150506109d2565b5050565b5f80610a6a611926565b9050610a8b818585610a7c8589611780565b610a8691906133e5565b61192d565b600191505092915050565b610a9e6118a8565b5f610aa7610983565b905080600b8190555080600c8190555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b600e60019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610bb56118a8565b610bbe5f612503565b565b610bc86118a8565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610c5790613314565b80601f0160208091040260200160405190810160405280929190818152602001828054610c8390613314565b8015610cce5780601f10610ca557610100808354040283529160200191610cce565b820191905f5260205f20905b815481529060010190602001808311610cb157829003601f168201915b5050505050905090565b610ce06118a8565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6690613488565b60405180910390fd5b610d7982826125c6565b5050565b5f80610d87611926565b90505f610d948286611780565b905083811015610dd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd090613516565b60405180910390fd5b610de6828686840361192d565b60019250505092915050565b5f80610dfc611926565b9050610e09818585611b7b565b600191505092915050565b610e1c6118a8565b670de0b6b3a764000081610e309190613534565b600d8190555050565b610e416118a8565b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051610edb9190612e35565b60405180910390a25050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f27611926565b73ffffffffffffffffffffffffffffffffffffffff1614610f46575f80fd5b5f610f4f610983565b90505f610f5b30610b68565b90505f60648484610f6c9190613534565b610f7691906135a2565b905080821015610fbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb29061361c565b60405180910390fd5b610fc481612664565b50505050565b600b5481565b610fd86118a8565b600e5f9054906101000a900460ff1615611027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101e90613684565b60405180910390fd5b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611090573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110b491906136b6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611139573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061115d91906136b6565b6040518363ffffffff1660e01b815260040161117a9291906136e1565b6020604051808303815f875af1158015611196573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ba91906136b6565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061122560065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610bc0565b61125160065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016125c6565b61127e307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d600a5461192d565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71947306112d860506112ca30610b68565b6128b890919063ffffffff16565b5f806112e2610c20565b426040518863ffffffff1660e01b815260040161130496959493929190613741565b60606040518083038185885af1158015611320573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061134591906137b4565b50505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016113e4929190613804565b6020604051808303815f875af1158015611400573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611424919061383f565b506001600e60016101000a81548160ff0219169083151502179055506001600e5f6101000a81548160ff021916908315150217905550565b60105481565b61146a6118a8565b5f5b81518110156114f757600160095f84848151811061148d5761148c613344565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806114ef9061339e565b91505061146c565b5050565b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016115359190613090565b602060405180830381865afa158015611550573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611574919061386a565b90505f81116115b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115af906138df565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115f8611926565b73ffffffffffffffffffffffffffffffffffffffff1614611617575f80fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61dead836040518363ffffffff1660e01b8152600401611654929190613804565b6020604051808303815f875af1158015611670573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611694919061383f565b505050565b5f47116116db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d290613947565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661171b611926565b73ffffffffffffffffffffffffffffffffffffffff161461173a575f80fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f1935050505015801561177d573d5f803e3d5ffd5b50565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600f5481565b600d5481565b6118166118a8565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611884576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187b906139d5565b60405180910390fd5b61188d81612503565b50565b600c5481565b600e5f9054906101000a900460ff1681565b6118b0611926565b73ffffffffffffffffffffffffffffffffffffffff166118ce610c20565b73ffffffffffffffffffffffffffffffffffffffff1614611924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191b90613a3d565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361199b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199290613acb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0090613b59565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ae39190612e5d565b60405180910390a3505050565b5f611afb8484611780565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611b755781811015611b67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5e90613bc1565b60405180910390fd5b611b74848484840361192d565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611be9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be090613c4f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4e90613cdd565b60405180910390fd5b5f8103611c6e57611c6983835f61291d565b6124fe565b611c76610c20565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ce45750611cb4610c20565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d1c57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d56575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d6f5750600860149054906101000a900460ff16155b156121e25760095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611e12575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611e1a575f80fd5b600e5f9054906101000a900460ff16611f085760115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611ec8575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efe90613d45565b60405180910390fd5b5b60135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611fa5575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561204c57600b54811115611fef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe690613dd3565b60405180910390fd5b600c54611ffb83610b68565b8261200691906133e5565b1115612047576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203e90613e3b565b60405180910390fd5b6121e1565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156120e9575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561213857600b54811115612133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212a90613ec9565b60405180910390fd5b6121e0565b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166121df57600c5461219283610b68565b8261219d91906133e5565b11156121de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d590613e3b565b60405180910390fd5b5b5b5b5b5f6121ec30610b68565b90505f808211905080801561220d5750600e60019054906101000a900460ff165b80156122265750600860149054906101000a900460ff16155b8015612279575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156122cc575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561231f575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612363576001600860146101000a81548160ff02191690831515021790555061234883612b89565b5f600860146101000a81548160ff0219169083151502179055505b5f600860149054906101000a900460ff1615905060115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612412575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561241b575f90505b5f81156124ee5760135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156124a057612499606461248b60105488612c2390919063ffffffff16565b612c3890919063ffffffff16565b90506124cb565b6124c860646124ba600f5488612c2390919063ffffffff16565b612c3890919063ffffffff16565b90505b5f8111156124df576124de87308361291d565b5b80856124eb9190613ee7565b94505b6124f987878761291d565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f600267ffffffffffffffff8111156126805761267f612efe565b5b6040519080825280602002602001820160405280156126ae5781602001602082028036833780820191505090505b50905030815f815181106126c5576126c4613344565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612768573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061278c91906136b6565b816001815181106127a05761279f613344565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612805307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8461192d565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612887959493929190613fd1565b5f604051808303815f87803b15801561289e575f80fd5b505af11580156128b0573d5f803e3d5ffd5b505050505050565b5f60648211156128fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128f490614099565b60405180910390fd5b6064828461290b9190613534565b61291591906135a2565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361298b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298290613c4f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036129f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129f090613cdd565b60405180910390fd5b612a04838383612c4d565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a7e90614127565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b709190612e5d565b60405180910390a3612b83848484612c52565b50505050565b5f612b9330610b68565b90505f808203612ba4575050612c20565b5f82118015612bb45750600d5482105b15612bc157819050612c14565b5f612bea6064612bdc60105487612c2390919063ffffffff16565b612c3890919063ffffffff16565b90508084612bf89190613ee7565b9350600d54841115612c0e57600d549150612c12565b8391505b505b612c1d81612664565b50505b50565b5f8183612c309190613534565b905092915050565b5f8183612c4591906135a2565b905092915050565b505050565b505050565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b612c7a81612c68565b8114612c84575f80fd5b50565b5f81359050612c9581612c71565b92915050565b5f8060408385031215612cb157612cb0612c60565b5b5f612cbe85828601612c87565b9250506020612ccf85828601612c87565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612d10578082015181840152602081019050612cf5565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612d3582612cd9565b612d3f8185612ce3565b9350612d4f818560208601612cf3565b612d5881612d1b565b840191505092915050565b5f6020820190508181035f830152612d7b8184612d2b565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612dac82612d83565b9050919050565b612dbc81612da2565b8114612dc6575f80fd5b50565b5f81359050612dd781612db3565b92915050565b5f8060408385031215612df357612df2612c60565b5b5f612e0085828601612dc9565b9250506020612e1185828601612c87565b9150509250929050565b5f8115159050919050565b612e2f81612e1b565b82525050565b5f602082019050612e485f830184612e26565b92915050565b612e5781612c68565b82525050565b5f602082019050612e705f830184612e4e565b92915050565b5f805f60608486031215612e8d57612e8c612c60565b5b5f612e9a86828701612dc9565b9350506020612eab86828701612dc9565b9250506040612ebc86828701612c87565b9150509250925092565b5f60ff82169050919050565b612edb81612ec6565b82525050565b5f602082019050612ef45f830184612ed2565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612f3482612d1b565b810181811067ffffffffffffffff82111715612f5357612f52612efe565b5b80604052505050565b5f612f65612c57565b9050612f718282612f2b565b919050565b5f67ffffffffffffffff821115612f9057612f8f612efe565b5b602082029050602081019050919050565b5f80fd5b5f612fb7612fb284612f76565b612f5c565b90508083825260208201905060208402830185811115612fda57612fd9612fa1565b5b835b818110156130035780612fef8882612dc9565b845260208401935050602081019050612fdc565b5050509392505050565b5f82601f83011261302157613020612efa565b5b8135613031848260208601612fa5565b91505092915050565b5f6020828403121561304f5761304e612c60565b5b5f82013567ffffffffffffffff81111561306c5761306b612c64565b5b6130788482850161300d565b91505092915050565b61308a81612da2565b82525050565b5f6020820190506130a35f830184613081565b92915050565b5f602082840312156130be576130bd612c60565b5b5f6130cb84828501612dc9565b91505092915050565b5f819050919050565b5f6130f76130f26130ed84612d83565b6130d4565b612d83565b9050919050565b5f613108826130dd565b9050919050565b5f613119826130fe565b9050919050565b6131298161310f565b82525050565b5f6020820190506131425f830184613120565b92915050565b61315181612e1b565b811461315b575f80fd5b50565b5f8135905061316c81613148565b92915050565b5f806040838503121561318857613187612c60565b5b5f61319585828601612dc9565b92505060206131a68582860161315e565b9150509250929050565b5f602082840312156131c5576131c4612c60565b5b5f6131d284828501612c87565b91505092915050565b5f6131e582612da2565b9050919050565b6131f5816131db565b81146131ff575f80fd5b50565b5f81359050613210816131ec565b92915050565b5f6020828403121561322b5761322a612c60565b5b5f61323884828501613202565b91505092915050565b5f806040838503121561325757613256612c60565b5b5f61326485828601612dc9565b925050602061327585828601612dc9565b9150509250929050565b7f466565732063616e6e6f742065786365656420333025000000000000000000005f82015250565b5f6132b3601683612ce3565b91506132be8261327f565b602082019050919050565b5f6020820190508181035f8301526132e0816132a7565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061332b57607f821691505b60208210810361333e5761333d6132e7565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6133a882612c68565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036133da576133d9613371565b5b600182019050919050565b5f6133ef82612c68565b91506133fa83612c68565b925082820190508082111561341257613411613371565b5b92915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613472603983612ce3565b915061347d82613418565b604082019050919050565b5f6020820190508181035f83015261349f81613466565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613500602583612ce3565b915061350b826134a6565b604082019050919050565b5f6020820190508181035f83015261352d816134f4565b9050919050565b5f61353e82612c68565b915061354983612c68565b925082820261355781612c68565b9150828204841483151761356e5761356d613371565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6135ac82612c68565b91506135b783612c68565b9250826135c7576135c6613575565b5b828204905092915050565b7f4e6f7420656e6f75676820746f6b656e730000000000000000000000000000005f82015250565b5f613606601183612ce3565b9150613611826135d2565b602082019050919050565b5f6020820190508181035f830152613633816135fa565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61366e601783612ce3565b91506136798261363a565b602082019050919050565b5f6020820190508181035f83015261369b81613662565b9050919050565b5f815190506136b081612db3565b92915050565b5f602082840312156136cb576136ca612c60565b5b5f6136d8848285016136a2565b91505092915050565b5f6040820190506136f45f830185613081565b6137016020830184613081565b9392505050565b5f819050919050565b5f61372b61372661372184613708565b6130d4565b612c68565b9050919050565b61373b81613711565b82525050565b5f60c0820190506137545f830189613081565b6137616020830188612e4e565b61376e6040830187613732565b61377b6060830186613732565b6137886080830185613081565b61379560a0830184612e4e565b979650505050505050565b5f815190506137ae81612c71565b92915050565b5f805f606084860312156137cb576137ca612c60565b5b5f6137d8868287016137a0565b93505060206137e9868287016137a0565b92505060406137fa868287016137a0565b9150509250925092565b5f6040820190506138175f830185613081565b6138246020830184612e4e565b9392505050565b5f8151905061383981613148565b92915050565b5f6020828403121561385457613853612c60565b5b5f6138618482850161382b565b91505092915050565b5f6020828403121561387f5761387e612c60565b5b5f61388c848285016137a0565b91505092915050565b7f546f6b656e3a206e6f20746f6b656e7320746f206275726e00000000000000005f82015250565b5f6138c9601883612ce3565b91506138d482613895565b602082019050919050565b5f6020820190508181035f8301526138f6816138bd565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f613931601683612ce3565b915061393c826138fd565b602082019050919050565b5f6020820190508181035f83015261395e81613925565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6139bf602683612ce3565b91506139ca82613965565b604082019050919050565b5f6020820190508181035f8301526139ec816139b3565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613a27602083612ce3565b9150613a32826139f3565b602082019050919050565b5f6020820190508181035f830152613a5481613a1b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613ab5602483612ce3565b9150613ac082613a5b565b604082019050919050565b5f6020820190508181035f830152613ae281613aa9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613b43602283612ce3565b9150613b4e82613ae9565b604082019050919050565b5f6020820190508181035f830152613b7081613b37565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f613bab601d83612ce3565b9150613bb682613b77565b602082019050919050565b5f6020820190508181035f830152613bd881613b9f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613c39602583612ce3565b9150613c4482613bdf565b604082019050919050565b5f6020820190508181035f830152613c6681613c2d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613cc7602383612ce3565b9150613cd282613c6d565b604082019050919050565b5f6020820190508181035f830152613cf481613cbb565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f613d2f601683612ce3565b9150613d3a82613cfb565b602082019050919050565b5f6020820190508181035f830152613d5c81613d23565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f613dbd603583612ce3565b9150613dc882613d63565b604082019050919050565b5f6020820190508181035f830152613dea81613db1565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613e25601383612ce3565b9150613e3082613df1565b602082019050919050565b5f6020820190508181035f830152613e5281613e19565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f613eb3603683612ce3565b9150613ebe82613e59565b604082019050919050565b5f6020820190508181035f830152613ee081613ea7565b9050919050565b5f613ef182612c68565b9150613efc83612c68565b9250828203905081811115613f1457613f13613371565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613f4c81612da2565b82525050565b5f613f5d8383613f43565b60208301905092915050565b5f602082019050919050565b5f613f7f82613f1a565b613f898185613f24565b9350613f9483613f34565b805f5b83811015613fc4578151613fab8882613f52565b9750613fb683613f69565b925050600181019050613f97565b5085935050505092915050565b5f60a082019050613fe45f830188612e4e565b613ff16020830187613732565b81810360408301526140038186613f75565b90506140126060830185613081565b61401f6080830184612e4e565b9695505050505050565b7f50657263656e74616765206d757374206265206265747765656e203020616e645f8201527f2031303000000000000000000000000000000000000000000000000000000000602082015250565b5f614083602483612ce3565b915061408e82614029565b604082019050919050565b5f6020820190508181035f8301526140b081614077565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f614111602683612ce3565b915061411c826140b7565b604082019050919050565b5f6020820190508181035f83015261413e81614105565b905091905056fea2646970667358221220325639e4c26c0fea412aa52d03971c54b7b3bde1e7769a2d28c1f0e2811395c264736f6c63430008140033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000007b58e8d12225571d9f2a5163f35cdb4aaa32b43a

-----Decoded View---------------
Arg [0] : wallet (address): 0x7b58E8D12225571D9f2a5163f35Cdb4aAA32b43A

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007b58e8d12225571d9f2a5163f35cdb4aaa32b43a


Deployed Bytecode Sourcemap

14668:9206:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23020:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9896:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10828:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10217:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11037:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15154:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10116:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18667:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11306:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21707:195;;;;;;;;;;;;;:::i;:::-;;14809:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18358:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14750:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15416:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10333:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;995:103;;;;;;;;;;;;;:::i;:::-;;17526:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;760:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10004:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17891:265;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11552:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10468:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22470:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17701:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22605:407;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15213:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16781:739;;;;;;;;;;;;;:::i;:::-;;15489:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18492:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22144:318;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21910:226;;;;;;;;;;;;;:::i;:::-;;10669:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15456:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15320:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1106:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15272:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15378:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23020:211;719:13;:11;:13::i;:::-;23120:2:::1;23109:7;:13;;:31;;;;;23138:2;23126:8;:14;;23109:31;23101:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;23187:7;23178:6;:16;;;;23215:8;23205:7;:18;;;;23020:211:::0;;:::o;9896:100::-;9950:13;9983:5;9976:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9896:100;:::o;10828:201::-;10911:4;10928:13;10944:12;:10;:12::i;:::-;10928:28;;10967:32;10976:5;10983:7;10992:6;10967:8;:32::i;:::-;11017:4;11010:11;;;10828:201;;;;:::o;10217:108::-;10278:7;10305:12;;10298:19;;10217:108;:::o;11037:261::-;11134:4;11151:15;11169:12;:10;:12::i;:::-;11151:30;;11192:38;11208:4;11214:7;11223:6;11192:15;:38::i;:::-;11241:27;11251:4;11257:2;11261:6;11241:9;:27::i;:::-;11286:4;11279:11;;;11037:261;;;;;:::o;15154:52::-;;;;:::o;10116:93::-;10174:5;10199:2;10192:9;;10116:93;:::o;18667:171::-;719:13;:11;:13::i;:::-;18742:9:::1;18737:94;18761:6;:13;18757:1;:17;18737:94;;;18814:5;18796:4;:15;18801:6;18808:1;18801:9;;;;;;;;:::i;:::-;;;;;;;;18796:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;18776:3;;;;;:::i;:::-;;;;18737:94;;;;18667:171:::0;:::o;11306:238::-;11394:4;11411:13;11427:12;:10;:12::i;:::-;11411:28;;11450:64;11459:5;11466:7;11503:10;11475:25;11485:5;11492:7;11475:9;:25::i;:::-;:38;;;;:::i;:::-;11450:8;:64::i;:::-;11532:4;11525:11;;;11306:238;;;;:::o;21707:195::-;719:13;:11;:13::i;:::-;21762:25:::1;21790:13;:11;:13::i;:::-;21762:41;;21837:17;21814:20;:40;;;;21877:17;21865:9;:29;;;;21751:151;21707:195::o:0;14809:28::-;;;;;;;;;;;;;:::o;18358:126::-;18424:4;18448:19;:28;18468:7;18448:28;;;;;;;;;;;;;;;;;;;;;;;;;18441:35;;18358:126;;;:::o;14750:52::-;;;:::o;15416:31::-;;;;;;;;;;;;;:::o;10333:127::-;10407:7;10434:9;:18;10444:7;10434:18;;;;;;;;;;;;;;;;10427:25;;10333:127;;;:::o;995:103::-;719:13;:11;:13::i;:::-;1060:30:::1;1087:1;1060:18;:30::i;:::-;995:103::o:0;17526:167::-;719:13;:11;:13::i;:::-;17681:4:::1;17639:31;:39;17671:6;17639:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;17526:167:::0;;:::o;760:87::-;806:7;833:6;;;;;;;;;;;826:13;;760:87;:::o;10004:104::-;10060:13;10093:7;10086:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10004:104;:::o;17891:265::-;719:13;:11;:13::i;:::-;18021::::1;;;;;;;;;;;18013:21;;:4;:21;;::::0;18005:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18107:41;18136:4;18142:5;18107:28;:41::i;:::-;17891:265:::0;;:::o;11552:436::-;11645:4;11662:13;11678:12;:10;:12::i;:::-;11662:28;;11701:24;11728:25;11738:5;11745:7;11728:9;:25::i;:::-;11701:52;;11792:15;11772:16;:35;;11764:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11885:60;11894:5;11901:7;11929:15;11910:16;:34;11885:8;:60::i;:::-;11976:4;11969:11;;;;11552:436;;;;:::o;10468:193::-;10547:4;10564:13;10580:12;:10;:12::i;:::-;10564:28;;10603;10613:5;10620:2;10624:6;10603:9;:28::i;:::-;10649:4;10642:11;;;10468:193;;;;:::o;22470:127::-;719:13;:11;:13::i;:::-;22580:8:::1;22569:7;:20;;;;:::i;:::-;22548:18;:41;;;;22470:127:::0;:::o;17701:182::-;719:13;:11;:13::i;:::-;17817:8:::1;17786:19;:28;17806:7;17786:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17857:7;17841:34;;;17866:8;17841:34;;;;;;:::i;:::-;;;;;;;;17701:182:::0;;:::o;22605:407::-;22686:15;;;;;;;;;;;22670:31;;:12;:10;:12::i;:::-;:31;;;22662:40;;;;;;22713:25;22741:13;:11;:13::i;:::-;22713:41;;22765:23;22791:24;22809:4;22791:9;:24::i;:::-;22765:50;;22826:23;22882:3;22872:7;22852:17;:27;;;;:::i;:::-;:33;;;;:::i;:::-;22826:59;;22923:15;22904;:34;;22896:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;22971:33;22988:15;22971:16;:33::i;:::-;22651:361;;;22605:407;:::o;15213:52::-;;;;:::o;16781:739::-;719:13;:11;:13::i;:::-;16845:11:::1;;;;;;;;;;;16844:12;16836:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;16928:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16910:56;;;16975:4;16982:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16910:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16894:13;;:112;;;;;;;;;;;;;;;;;;17017:55;17051:13;;;;;;;;;;;17067:4;17017:25;:55::i;:::-;17083:58;17120:13;;;;;;;;;;;17136:4;17083:28;:58::i;:::-;17152:70;17169:4;17184:16;17203:18;;17152:8;:70::i;:::-;17233:16;:32;;;17273:21;17304:4;17310:32;17339:2;17310:24;17328:4;17310:9;:24::i;:::-;:28;;:32;;;;:::i;:::-;17343:1;17345::::0;17347:7:::1;:5;:7::i;:::-;17355:15;17233:138;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17389:13;;;;;;;;;;;17382:29;;;17420:16;17439:14;17382:72;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17479:4;17465:11;;:18;;;;;;;;;;;;;;;;;;17508:4;17494:11;;:18;;;;;;;;;;;;;;;;;;16781:739::o:0;15489:27::-;;;;:::o;18492:167::-;719:13;:11;:13::i;:::-;18566:9:::1;18561:91;18585:5;:12;18581:1;:16;18561:91;;;18636:4;18619;:14;18624:5;18630:1;18624:8;;;;;;;;:::i;:::-;;;;;;;;18619:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;18599:3;;;;;:::i;:::-;;;;18561:91;;;;18492:167:::0;:::o;22144:318::-;22211:23;22237:12;:22;;;22268:4;22237:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22211:63;;22311:1;22293:15;:19;22285:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;22376:15;;;;;;;;;;;22360:31;;:12;:10;:12::i;:::-;:31;;;22352:40;;;;;;22403:12;:21;;;14966:6;22438:15;22403:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22200:262;22144:318;:::o;21910:226::-;21987:1;21963:21;:25;21955:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;22050:15;;;;;;;;;;;22034:31;;:12;:10;:12::i;:::-;:31;;;22026:40;;;;;;22085:10;22077:28;;:51;22106:21;22077:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21910:226::o;10669:151::-;10758:7;10785:11;:18;10797:5;10785:18;;;;;;;;;;;;;;;:27;10804:7;10785:27;;;;;;;;;;;;;;;;10778:34;;10669:151;;;;:::o;15456:26::-;;;;:::o;15320:49::-;;;;:::o;1106:201::-;719:13;:11;:13::i;:::-;1215:1:::1;1195:22;;:8;:22;;::::0;1187:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1271:28;1290:8;1271:18;:28::i;:::-;1106:201:::0;:::o;15272:41::-;;;;:::o;15378:31::-;;;;;;;;;;;;;:::o;855:132::-;930:12;:10;:12::i;:::-;919:23;;:7;:5;:7::i;:::-;:23;;;911:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;855:132::o;233:98::-;286:7;313:10;306:17;;233:98;:::o;13691:346::-;13810:1;13793:19;;:5;:19;;;13785:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13891:1;13872:21;;:7;:21;;;13864:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13975:6;13945:11;:18;13957:5;13945:18;;;;;;;;;;;;;;;:27;13964:7;13945:27;;;;;;;;;;;;;;;:36;;;;14013:7;13997:32;;14006:5;13997:32;;;14022:6;13997:32;;;;;;:::i;:::-;;;;;;;;13691:346;;;:::o;14045:419::-;14146:24;14173:25;14183:5;14190:7;14173:9;:25::i;:::-;14146:52;;14233:17;14213:16;:37;14209:248;;14295:6;14275:16;:26;;14267:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14379:51;14388:5;14395:7;14423:6;14404:16;:25;14379:8;:51::i;:::-;14209:248;14135:329;14045:419;;;:::o;18846:2367::-;18962:1;18946:18;;:4;:18;;;18938:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19039:1;19025:16;;:2;:16;;;19017:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19116:1;19106:6;:11;19102:93;;19134:28;19150:4;19156:2;19160:1;19134:15;:28::i;:::-;19177:7;;19102:93;19219:7;:5;:7::i;:::-;19211:15;;:4;:15;;;;:32;;;;;19236:7;:5;:7::i;:::-;19230:13;;:2;:13;;;;19211:32;:52;;;;;19261:1;19247:16;;:2;:16;;;;19211:52;:77;;;;;19281:6;19267:21;;:2;:21;;;;19211:77;:90;;;;;19293:8;;;;;;;;;;;19292:9;19211:90;19207:1046;;;19329:4;:10;19334:4;19329:10;;;;;;;;;;;;;;;;;;;;;;;;;19328:11;:24;;;;;19344:4;:8;19349:2;19344:8;;;;;;;;;;;;;;;;;;;;;;;;;19343:9;19328:24;19320:33;;;;;;19375:11;;;;;;;;;;;19370:140;;19415:19;:25;19435:4;19415:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;19444:19;:23;19464:2;19444:23;;;;;;;;;;;;;;;;;;;;;;;;;19415:52;19407:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;19370:140;19530:25;:31;19556:4;19530:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;19566:31;:35;19598:2;19566:35;;;;;;;;;;;;;;;;;;;;;;;;;19565:36;19530:71;19526:716;;;19654:20;;19644:6;:30;;19636:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;19785:9;;19768:13;19778:2;19768:9;:13::i;:::-;19759:6;:22;;;;:::i;:::-;:35;;19751:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19526:716;;;19859:25;:29;19885:2;19859:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;19893:31;:37;19925:4;19893:37;;;;;;;;;;;;;;;;;;;;;;;;;19892:38;19859:71;19855:387;;;19969:20;;19959:6;:30;;19951:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;19855:387;;;20103:31;:35;20135:2;20103:35;;;;;;;;;;;;;;;;;;;;;;;;;20098:144;;20193:9;;20176:13;20186:2;20176:9;:13::i;:::-;20167:6;:22;;;;:::i;:::-;:35;;20159:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20098:144;19855:387;19526:716;19207:1046;20265:28;20296:24;20314:4;20296:9;:24::i;:::-;20265:55;;20333:12;20371:1;20348:20;:24;20333:39;;20389:7;:22;;;;;20400:11;;;;;;;;;;;20389:22;:35;;;;;20416:8;;;;;;;;;;;20415:9;20389:35;:71;;;;;20429:25;:31;20455:4;20429:31;;;;;;;;;;;;;;;;;;;;;;;;;20428:32;20389:71;:101;;;;;20465:19;:25;20485:4;20465:25;;;;;;;;;;;;;;;;;;;;;;;;;20464:26;20389:101;:129;;;;;20495:19;:23;20515:2;20495:23;;;;;;;;;;;;;;;;;;;;;;;;;20494:24;20389:129;20385:239;;;20546:4;20535:8;;:15;;;;;;;;;;;;;;;;;;20565:16;20574:6;20565:8;:16::i;:::-;20607:5;20596:8;;:16;;;;;;;;;;;;;;;;;;20385:239;20636:12;20652:8;;;;;;;;;;;20651:9;20636:24;;20677:19;:25;20697:4;20677:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;20706:19;:23;20726:2;20706:23;;;;;;;;;;;;;;;;;;;;;;;;;20677:52;20673:100;;;20756:5;20746:15;;20673:100;20785:12;20818:7;20814:348;;;20846:25;:29;20872:2;20846:29;;;;;;;;;;;;;;;;;;;;;;;;;20842:193;;;20903:28;20927:3;20903:19;20914:7;;20903:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;20896:35;;20842:193;;;20992:27;21015:3;20992:18;21003:6;;20992;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;20985:34;;20842:193;21058:1;21051:4;:8;21047:83;;;21076:42;21092:4;21106;21113;21076:15;:42::i;:::-;21047:83;21150:4;21140:14;;;;;:::i;:::-;;;20814:348;21172:33;21188:4;21194:2;21198:6;21172:15;:33::i;:::-;18925:2288;;;;18846:2367;;;;:::o;1315:191::-;1389:16;1408:6;;;;;;;;;;;1389:25;;1434:8;1425:6;;:17;;;;;;;;;;;;;;;;;;1489:8;1458:40;;1479:8;1458:40;;;;;;;;;;;;1378:128;1315:191;:::o;18164:186::-;18281:5;18247:25;:31;18273:4;18247:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18336:5;18302:40;;18330:4;18302:40;;;;;;;;;;;;18164:186;;:::o;21221:478::-;21289:21;21327:1;21313:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21289:40;;21358:4;21340;21345:1;21340:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21384:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21374:4;21379:1;21374:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;21418:63;21435:4;21450:16;21469:11;21418:8;:63::i;:::-;21492:16;:67;;;21574:11;21600:1;21616:4;21635:15;;;;;;;;;;;21665;21492:199;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21276:423;21221:478;:::o;8885:172::-;8943:7;8976:3;8971:1;:8;;8963:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;9046:3;9042:1;9038;:5;;;;:::i;:::-;:11;;;;:::i;:::-;9031:18;;8885:172;;;;:::o;11996:641::-;12109:1;12093:18;;:4;:18;;;12085:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12186:1;12172:16;;:2;:16;;;12164:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12241:38;12262:4;12268:2;12272:6;12241:20;:38::i;:::-;12292:19;12314:9;:15;12324:4;12314:15;;;;;;;;;;;;;;;;12292:37;;12363:6;12348:11;:21;;12340:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12480:6;12466:11;:20;12448:9;:15;12458:4;12448:15;;;;;;;;;;;;;;;:38;;;;12518:6;12501:9;:13;12511:2;12501:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;12568:2;12553:26;;12562:4;12553:26;;;12572:6;12553:26;;;;;;:::i;:::-;;;;;;;;12592:37;12612:4;12618:2;12622:6;12592:19;:37::i;:::-;12074:563;11996:641;;;:::o;23239:632::-;23292:23;23318:24;23336:4;23318:9;:24::i;:::-;23292:50;;23353:20;23403:1;23384:15;:20;23380:449;;23417:7;;;;23380:449;23464:1;23446:15;:19;:59;;;;;23487:18;;23469:15;:36;23446:59;23443:386;;;23533:15;23518:30;;23443:386;;;23578:21;23602:28;23626:3;23602:19;23613:7;;23602:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;23578:52;;23651:13;23641:23;;;;;:::i;:::-;;;23688:18;;23679:6;:27;23675:147;;;23738:18;;23723:33;;23675:147;;;23804:6;23789:21;;23675:147;23567:262;23443:386;23835:30;23852:12;23835:16;:30::i;:::-;23281:590;;23239:632;;:::o;8353:98::-;8411:7;8442:1;8438;:5;;;;:::i;:::-;8431:12;;8353:98;;;;:::o;8459:::-;8517:7;8548:1;8544;:5;;;;:::i;:::-;8537:12;;8459:98;;;;:::o;14472:91::-;;;;:::o;14571:90::-;;;;:::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:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:474::-;758:6;766;815:2;803:9;794:7;790:23;786:32;783:119;;;821:79;;:::i;:::-;783:119;941:1;966:53;1011:7;1002:6;991:9;987:22;966:53;:::i;:::-;956:63;;912:117;1068:2;1094:53;1139:7;1130:6;1119:9;1115:22;1094:53;:::i;:::-;1084:63;;1039:118;690:474;;;;;:::o;1170:99::-;1222:6;1256:5;1250:12;1240:22;;1170:99;;;:::o;1275:169::-;1359:11;1393:6;1388:3;1381:19;1433:4;1428:3;1424:14;1409:29;;1275:169;;;;:::o;1450:246::-;1531:1;1541:113;1555:6;1552:1;1549:13;1541:113;;;1640:1;1635:3;1631:11;1625:18;1621:1;1616:3;1612:11;1605:39;1577:2;1574:1;1570:10;1565:15;;1541:113;;;1688:1;1679:6;1674:3;1670:16;1663:27;1512:184;1450:246;;;:::o;1702:102::-;1743:6;1794:2;1790:7;1785:2;1778:5;1774:14;1770:28;1760:38;;1702:102;;;:::o;1810:377::-;1898:3;1926:39;1959:5;1926:39;:::i;:::-;1981:71;2045:6;2040:3;1981:71;:::i;:::-;1974:78;;2061:65;2119:6;2114:3;2107:4;2100:5;2096:16;2061:65;:::i;:::-;2151:29;2173:6;2151:29;:::i;:::-;2146:3;2142:39;2135:46;;1902:285;1810:377;;;;:::o;2193:313::-;2306:4;2344:2;2333:9;2329:18;2321:26;;2393:9;2387:4;2383:20;2379:1;2368:9;2364:17;2357:47;2421:78;2494:4;2485:6;2421:78;:::i;:::-;2413:86;;2193:313;;;;:::o;2512:126::-;2549:7;2589:42;2582:5;2578:54;2567:65;;2512:126;;;:::o;2644:96::-;2681:7;2710:24;2728:5;2710:24;:::i;:::-;2699:35;;2644:96;;;:::o;2746:122::-;2819:24;2837:5;2819:24;:::i;:::-;2812:5;2809:35;2799:63;;2858:1;2855;2848:12;2799:63;2746:122;:::o;2874:139::-;2920:5;2958:6;2945:20;2936:29;;2974:33;3001:5;2974:33;:::i;:::-;2874:139;;;;:::o;3019:474::-;3087:6;3095;3144:2;3132:9;3123:7;3119:23;3115:32;3112:119;;;3150:79;;:::i;:::-;3112:119;3270:1;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3241:117;3397:2;3423:53;3468:7;3459:6;3448:9;3444:22;3423:53;:::i;:::-;3413:63;;3368:118;3019:474;;;;;:::o;3499:90::-;3533:7;3576:5;3569:13;3562:21;3551:32;;3499:90;;;:::o;3595:109::-;3676:21;3691:5;3676:21;:::i;:::-;3671:3;3664:34;3595:109;;:::o;3710:210::-;3797:4;3835:2;3824:9;3820:18;3812:26;;3848:65;3910:1;3899:9;3895:17;3886:6;3848:65;:::i;:::-;3710:210;;;;:::o;3926:118::-;4013:24;4031:5;4013:24;:::i;:::-;4008:3;4001:37;3926:118;;:::o;4050:222::-;4143:4;4181:2;4170:9;4166:18;4158:26;;4194:71;4262:1;4251:9;4247:17;4238:6;4194:71;:::i;:::-;4050:222;;;;:::o;4278:619::-;4355:6;4363;4371;4420:2;4408:9;4399:7;4395:23;4391:32;4388:119;;;4426:79;;:::i;:::-;4388:119;4546:1;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4517:117;4673:2;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4644:118;4801:2;4827:53;4872:7;4863:6;4852:9;4848:22;4827:53;:::i;:::-;4817:63;;4772:118;4278:619;;;;;:::o;4903:86::-;4938:7;4978:4;4971:5;4967:16;4956:27;;4903:86;;;:::o;4995:112::-;5078:22;5094:5;5078:22;:::i;:::-;5073:3;5066:35;4995:112;;:::o;5113:214::-;5202:4;5240:2;5229:9;5225:18;5217:26;;5253:67;5317:1;5306:9;5302:17;5293:6;5253:67;:::i;:::-;5113:214;;;;:::o;5333:117::-;5442:1;5439;5432:12;5456:180;5504:77;5501:1;5494:88;5601:4;5598:1;5591:15;5625:4;5622:1;5615:15;5642:281;5725:27;5747:4;5725:27;:::i;:::-;5717:6;5713:40;5855:6;5843:10;5840:22;5819:18;5807:10;5804:34;5801:62;5798:88;;;5866:18;;:::i;:::-;5798:88;5906:10;5902:2;5895:22;5685:238;5642:281;;:::o;5929:129::-;5963:6;5990:20;;:::i;:::-;5980:30;;6019:33;6047:4;6039:6;6019:33;:::i;:::-;5929:129;;;:::o;6064:311::-;6141:4;6231:18;6223:6;6220:30;6217:56;;;6253:18;;:::i;:::-;6217:56;6303:4;6295:6;6291:17;6283:25;;6363:4;6357;6353:15;6345:23;;6064:311;;;:::o;6381:117::-;6490:1;6487;6480:12;6521:710;6617:5;6642:81;6658:64;6715:6;6658:64;:::i;:::-;6642:81;:::i;:::-;6633:90;;6743:5;6772:6;6765:5;6758:21;6806:4;6799:5;6795:16;6788:23;;6859:4;6851:6;6847:17;6839:6;6835:30;6888:3;6880:6;6877:15;6874:122;;;6907:79;;:::i;:::-;6874:122;7022:6;7005:220;7039:6;7034:3;7031:15;7005:220;;;7114:3;7143:37;7176:3;7164:10;7143:37;:::i;:::-;7138:3;7131:50;7210:4;7205:3;7201:14;7194:21;;7081:144;7065:4;7060:3;7056:14;7049:21;;7005:220;;;7009:21;6623:608;;6521:710;;;;;:::o;7254:370::-;7325:5;7374:3;7367:4;7359:6;7355:17;7351:27;7341:122;;7382:79;;:::i;:::-;7341:122;7499:6;7486:20;7524:94;7614:3;7606:6;7599:4;7591:6;7587:17;7524:94;:::i;:::-;7515:103;;7331:293;7254:370;;;;:::o;7630:539::-;7714:6;7763:2;7751:9;7742:7;7738:23;7734:32;7731:119;;;7769:79;;:::i;:::-;7731:119;7917:1;7906:9;7902:17;7889:31;7947:18;7939:6;7936:30;7933:117;;;7969:79;;:::i;:::-;7933:117;8074:78;8144:7;8135:6;8124:9;8120:22;8074:78;:::i;:::-;8064:88;;7860:302;7630:539;;;;:::o;8175:118::-;8262:24;8280:5;8262:24;:::i;:::-;8257:3;8250:37;8175:118;;:::o;8299:222::-;8392:4;8430:2;8419:9;8415:18;8407:26;;8443:71;8511:1;8500:9;8496:17;8487:6;8443:71;:::i;:::-;8299:222;;;;:::o;8527:329::-;8586:6;8635:2;8623:9;8614:7;8610:23;8606:32;8603:119;;;8641:79;;:::i;:::-;8603:119;8761:1;8786:53;8831:7;8822:6;8811:9;8807:22;8786:53;:::i;:::-;8776:63;;8732:117;8527:329;;;;:::o;8862:60::-;8890:3;8911:5;8904:12;;8862:60;;;:::o;8928:142::-;8978:9;9011:53;9029:34;9038:24;9056:5;9038:24;:::i;:::-;9029:34;:::i;:::-;9011:53;:::i;:::-;8998:66;;8928:142;;;:::o;9076:126::-;9126:9;9159:37;9190:5;9159:37;:::i;:::-;9146:50;;9076:126;;;:::o;9208:152::-;9284:9;9317:37;9348:5;9317:37;:::i;:::-;9304:50;;9208:152;;;:::o;9366:183::-;9479:63;9536:5;9479:63;:::i;:::-;9474:3;9467:76;9366:183;;:::o;9555:274::-;9674:4;9712:2;9701:9;9697:18;9689:26;;9725:97;9819:1;9808:9;9804:17;9795:6;9725:97;:::i;:::-;9555:274;;;;:::o;9835:116::-;9905:21;9920:5;9905:21;:::i;:::-;9898:5;9895:32;9885:60;;9941:1;9938;9931:12;9885:60;9835:116;:::o;9957:133::-;10000:5;10038:6;10025:20;10016:29;;10054:30;10078:5;10054:30;:::i;:::-;9957:133;;;;:::o;10096:468::-;10161:6;10169;10218:2;10206:9;10197:7;10193:23;10189:32;10186:119;;;10224:79;;:::i;:::-;10186:119;10344:1;10369:53;10414:7;10405:6;10394:9;10390:22;10369:53;:::i;:::-;10359:63;;10315:117;10471:2;10497:50;10539:7;10530:6;10519:9;10515:22;10497:50;:::i;:::-;10487:60;;10442:115;10096:468;;;;;:::o;10570:329::-;10629:6;10678:2;10666:9;10657:7;10653:23;10649:32;10646:119;;;10684:79;;:::i;:::-;10646:119;10804:1;10829:53;10874:7;10865:6;10854:9;10850:22;10829:53;:::i;:::-;10819:63;;10775:117;10570:329;;;;:::o;10905:110::-;10956:7;10985:24;11003:5;10985:24;:::i;:::-;10974:35;;10905:110;;;:::o;11021:150::-;11108:38;11140:5;11108:38;:::i;:::-;11101:5;11098:49;11088:77;;11161:1;11158;11151:12;11088:77;11021:150;:::o;11177:167::-;11237:5;11275:6;11262:20;11253:29;;11291:47;11332:5;11291:47;:::i;:::-;11177:167;;;;:::o;11350:357::-;11423:6;11472:2;11460:9;11451:7;11447:23;11443:32;11440:119;;;11478:79;;:::i;:::-;11440:119;11598:1;11623:67;11682:7;11673:6;11662:9;11658:22;11623:67;:::i;:::-;11613:77;;11569:131;11350:357;;;;:::o;11713:474::-;11781:6;11789;11838:2;11826:9;11817:7;11813:23;11809:32;11806:119;;;11844:79;;:::i;:::-;11806:119;11964:1;11989:53;12034:7;12025:6;12014:9;12010:22;11989:53;:::i;:::-;11979:63;;11935:117;12091:2;12117:53;12162:7;12153:6;12142:9;12138:22;12117:53;:::i;:::-;12107:63;;12062:118;11713:474;;;;;:::o;12193:172::-;12333:24;12329:1;12321:6;12317:14;12310:48;12193:172;:::o;12371:366::-;12513:3;12534:67;12598:2;12593:3;12534:67;:::i;:::-;12527:74;;12610:93;12699:3;12610:93;:::i;:::-;12728:2;12723:3;12719:12;12712:19;;12371:366;;;:::o;12743:419::-;12909:4;12947:2;12936:9;12932:18;12924:26;;12996:9;12990:4;12986:20;12982:1;12971:9;12967:17;12960:47;13024:131;13150:4;13024:131;:::i;:::-;13016:139;;12743:419;;;:::o;13168:180::-;13216:77;13213:1;13206:88;13313:4;13310:1;13303:15;13337:4;13334:1;13327:15;13354:320;13398:6;13435:1;13429:4;13425:12;13415:22;;13482:1;13476:4;13472:12;13503:18;13493:81;;13559:4;13551:6;13547:17;13537:27;;13493:81;13621:2;13613:6;13610:14;13590:18;13587:38;13584:84;;13640:18;;:::i;:::-;13584:84;13405:269;13354:320;;;:::o;13680:180::-;13728:77;13725:1;13718:88;13825:4;13822:1;13815:15;13849:4;13846:1;13839:15;13866:180;13914:77;13911:1;13904:88;14011:4;14008:1;14001:15;14035:4;14032:1;14025:15;14052:233;14091:3;14114:24;14132:5;14114:24;:::i;:::-;14105:33;;14160:66;14153:5;14150:77;14147:103;;14230:18;;:::i;:::-;14147:103;14277:1;14270:5;14266:13;14259:20;;14052:233;;;:::o;14291:191::-;14331:3;14350:20;14368:1;14350:20;:::i;:::-;14345:25;;14384:20;14402:1;14384:20;:::i;:::-;14379:25;;14427:1;14424;14420:9;14413:16;;14448:3;14445:1;14442:10;14439:36;;;14455:18;;:::i;:::-;14439:36;14291:191;;;;:::o;14488:244::-;14628:34;14624:1;14616:6;14612:14;14605:58;14697:27;14692:2;14684:6;14680:15;14673:52;14488:244;:::o;14738:366::-;14880:3;14901:67;14965:2;14960:3;14901:67;:::i;:::-;14894:74;;14977:93;15066:3;14977:93;:::i;:::-;15095:2;15090:3;15086:12;15079:19;;14738:366;;;:::o;15110:419::-;15276:4;15314:2;15303:9;15299:18;15291:26;;15363:9;15357:4;15353:20;15349:1;15338:9;15334:17;15327:47;15391:131;15517:4;15391:131;:::i;:::-;15383:139;;15110:419;;;:::o;15535:224::-;15675:34;15671:1;15663:6;15659:14;15652:58;15744:7;15739:2;15731:6;15727:15;15720:32;15535:224;:::o;15765:366::-;15907:3;15928:67;15992:2;15987:3;15928:67;:::i;:::-;15921:74;;16004:93;16093:3;16004:93;:::i;:::-;16122:2;16117:3;16113:12;16106:19;;15765:366;;;:::o;16137:419::-;16303:4;16341:2;16330:9;16326:18;16318:26;;16390:9;16384:4;16380:20;16376:1;16365:9;16361:17;16354:47;16418:131;16544:4;16418:131;:::i;:::-;16410:139;;16137:419;;;:::o;16562:410::-;16602:7;16625:20;16643:1;16625:20;:::i;:::-;16620:25;;16659:20;16677:1;16659:20;:::i;:::-;16654:25;;16714:1;16711;16707:9;16736:30;16754:11;16736:30;:::i;:::-;16725:41;;16915:1;16906:7;16902:15;16899:1;16896:22;16876:1;16869:9;16849:83;16826:139;;16945:18;;:::i;:::-;16826:139;16610:362;16562:410;;;;:::o;16978:180::-;17026:77;17023:1;17016:88;17123:4;17120:1;17113:15;17147:4;17144:1;17137:15;17164:185;17204:1;17221:20;17239:1;17221:20;:::i;:::-;17216:25;;17255:20;17273:1;17255:20;:::i;:::-;17250:25;;17294:1;17284:35;;17299:18;;:::i;:::-;17284:35;17341:1;17338;17334:9;17329:14;;17164:185;;;;:::o;17355:167::-;17495:19;17491:1;17483:6;17479:14;17472:43;17355:167;:::o;17528:366::-;17670:3;17691:67;17755:2;17750:3;17691:67;:::i;:::-;17684:74;;17767:93;17856:3;17767:93;:::i;:::-;17885:2;17880:3;17876:12;17869:19;;17528:366;;;:::o;17900:419::-;18066:4;18104:2;18093:9;18089:18;18081:26;;18153:9;18147:4;18143:20;18139:1;18128:9;18124:17;18117:47;18181:131;18307:4;18181:131;:::i;:::-;18173:139;;17900:419;;;:::o;18325:173::-;18465:25;18461:1;18453:6;18449:14;18442:49;18325:173;:::o;18504:366::-;18646:3;18667:67;18731:2;18726:3;18667:67;:::i;:::-;18660:74;;18743:93;18832:3;18743:93;:::i;:::-;18861:2;18856:3;18852:12;18845:19;;18504:366;;;:::o;18876:419::-;19042:4;19080:2;19069:9;19065:18;19057:26;;19129:9;19123:4;19119:20;19115:1;19104:9;19100:17;19093:47;19157:131;19283:4;19157:131;:::i;:::-;19149:139;;18876:419;;;:::o;19301:143::-;19358:5;19389:6;19383:13;19374:22;;19405:33;19432:5;19405:33;:::i;:::-;19301:143;;;;:::o;19450:351::-;19520:6;19569:2;19557:9;19548:7;19544:23;19540:32;19537:119;;;19575:79;;:::i;:::-;19537:119;19695:1;19720:64;19776:7;19767:6;19756:9;19752:22;19720:64;:::i;:::-;19710:74;;19666:128;19450:351;;;;:::o;19807:332::-;19928:4;19966:2;19955:9;19951:18;19943:26;;19979:71;20047:1;20036:9;20032:17;20023:6;19979:71;:::i;:::-;20060:72;20128:2;20117:9;20113:18;20104:6;20060:72;:::i;:::-;19807:332;;;;;:::o;20145:85::-;20190:7;20219:5;20208:16;;20145:85;;;:::o;20236:158::-;20294:9;20327:61;20345:42;20354:32;20380:5;20354:32;:::i;:::-;20345:42;:::i;:::-;20327:61;:::i;:::-;20314:74;;20236:158;;;:::o;20400:147::-;20495:45;20534:5;20495:45;:::i;:::-;20490:3;20483:58;20400:147;;:::o;20553:807::-;20802:4;20840:3;20829:9;20825:19;20817:27;;20854:71;20922:1;20911:9;20907:17;20898:6;20854:71;:::i;:::-;20935:72;21003:2;20992:9;20988:18;20979:6;20935:72;:::i;:::-;21017:80;21093:2;21082:9;21078:18;21069:6;21017:80;:::i;:::-;21107;21183:2;21172:9;21168:18;21159:6;21107:80;:::i;:::-;21197:73;21265:3;21254:9;21250:19;21241:6;21197:73;:::i;:::-;21280;21348:3;21337:9;21333:19;21324:6;21280:73;:::i;:::-;20553:807;;;;;;;;;:::o;21366:143::-;21423:5;21454:6;21448:13;21439:22;;21470:33;21497:5;21470:33;:::i;:::-;21366:143;;;;:::o;21515:663::-;21603:6;21611;21619;21668:2;21656:9;21647:7;21643:23;21639:32;21636:119;;;21674:79;;:::i;:::-;21636:119;21794:1;21819:64;21875:7;21866:6;21855:9;21851:22;21819:64;:::i;:::-;21809:74;;21765:128;21932:2;21958:64;22014:7;22005:6;21994:9;21990:22;21958:64;:::i;:::-;21948:74;;21903:129;22071:2;22097:64;22153:7;22144:6;22133:9;22129:22;22097:64;:::i;:::-;22087:74;;22042:129;21515:663;;;;;:::o;22184:332::-;22305:4;22343:2;22332:9;22328:18;22320:26;;22356:71;22424:1;22413:9;22409:17;22400:6;22356:71;:::i;:::-;22437:72;22505:2;22494:9;22490:18;22481:6;22437:72;:::i;:::-;22184:332;;;;;:::o;22522:137::-;22576:5;22607:6;22601:13;22592:22;;22623:30;22647:5;22623:30;:::i;:::-;22522:137;;;;:::o;22665:345::-;22732:6;22781:2;22769:9;22760:7;22756:23;22752:32;22749:119;;;22787:79;;:::i;:::-;22749:119;22907:1;22932:61;22985:7;22976:6;22965:9;22961:22;22932:61;:::i;:::-;22922:71;;22878:125;22665:345;;;;:::o;23016:351::-;23086:6;23135:2;23123:9;23114:7;23110:23;23106:32;23103:119;;;23141:79;;:::i;:::-;23103:119;23261:1;23286:64;23342:7;23333:6;23322:9;23318:22;23286:64;:::i;:::-;23276:74;;23232:128;23016:351;;;;:::o;23373:174::-;23513:26;23509:1;23501:6;23497:14;23490:50;23373:174;:::o;23553:366::-;23695:3;23716:67;23780:2;23775:3;23716:67;:::i;:::-;23709:74;;23792:93;23881:3;23792:93;:::i;:::-;23910:2;23905:3;23901:12;23894:19;;23553:366;;;:::o;23925:419::-;24091:4;24129:2;24118:9;24114:18;24106:26;;24178:9;24172:4;24168:20;24164:1;24153:9;24149:17;24142:47;24206:131;24332:4;24206:131;:::i;:::-;24198:139;;23925:419;;;:::o;24350:172::-;24490:24;24486:1;24478:6;24474:14;24467:48;24350:172;:::o;24528:366::-;24670:3;24691:67;24755:2;24750:3;24691:67;:::i;:::-;24684:74;;24767:93;24856:3;24767:93;:::i;:::-;24885:2;24880:3;24876:12;24869:19;;24528:366;;;:::o;24900:419::-;25066:4;25104:2;25093:9;25089:18;25081:26;;25153:9;25147:4;25143:20;25139:1;25128:9;25124:17;25117:47;25181:131;25307:4;25181:131;:::i;:::-;25173:139;;24900:419;;;:::o;25325:225::-;25465:34;25461:1;25453:6;25449:14;25442:58;25534:8;25529:2;25521:6;25517:15;25510:33;25325:225;:::o;25556:366::-;25698:3;25719:67;25783:2;25778:3;25719:67;:::i;:::-;25712:74;;25795:93;25884:3;25795:93;:::i;:::-;25913:2;25908:3;25904:12;25897:19;;25556:366;;;:::o;25928:419::-;26094:4;26132:2;26121:9;26117:18;26109:26;;26181:9;26175:4;26171:20;26167:1;26156:9;26152:17;26145:47;26209:131;26335:4;26209:131;:::i;:::-;26201:139;;25928:419;;;:::o;26353:182::-;26493:34;26489:1;26481:6;26477:14;26470:58;26353:182;:::o;26541:366::-;26683:3;26704:67;26768:2;26763:3;26704:67;:::i;:::-;26697:74;;26780:93;26869:3;26780:93;:::i;:::-;26898:2;26893:3;26889:12;26882:19;;26541:366;;;:::o;26913:419::-;27079:4;27117:2;27106:9;27102:18;27094:26;;27166:9;27160:4;27156:20;27152:1;27141:9;27137:17;27130:47;27194:131;27320:4;27194:131;:::i;:::-;27186:139;;26913:419;;;:::o;27338:223::-;27478:34;27474:1;27466:6;27462:14;27455:58;27547:6;27542:2;27534:6;27530:15;27523:31;27338:223;:::o;27567:366::-;27709:3;27730:67;27794:2;27789:3;27730:67;:::i;:::-;27723:74;;27806:93;27895:3;27806:93;:::i;:::-;27924:2;27919:3;27915:12;27908:19;;27567:366;;;:::o;27939:419::-;28105:4;28143:2;28132:9;28128:18;28120:26;;28192:9;28186:4;28182:20;28178:1;28167:9;28163:17;28156:47;28220:131;28346:4;28220:131;:::i;:::-;28212:139;;27939:419;;;:::o;28364:221::-;28504:34;28500:1;28492:6;28488:14;28481:58;28573:4;28568:2;28560:6;28556:15;28549:29;28364:221;:::o;28591:366::-;28733:3;28754:67;28818:2;28813:3;28754:67;:::i;:::-;28747:74;;28830:93;28919:3;28830:93;:::i;:::-;28948:2;28943:3;28939:12;28932:19;;28591:366;;;:::o;28963:419::-;29129:4;29167:2;29156:9;29152:18;29144:26;;29216:9;29210:4;29206:20;29202:1;29191:9;29187:17;29180:47;29244:131;29370:4;29244:131;:::i;:::-;29236:139;;28963:419;;;:::o;29388:179::-;29528:31;29524:1;29516:6;29512:14;29505:55;29388:179;:::o;29573:366::-;29715:3;29736:67;29800:2;29795:3;29736:67;:::i;:::-;29729:74;;29812:93;29901:3;29812:93;:::i;:::-;29930:2;29925:3;29921:12;29914:19;;29573:366;;;:::o;29945:419::-;30111:4;30149:2;30138:9;30134:18;30126:26;;30198:9;30192:4;30188:20;30184:1;30173:9;30169:17;30162:47;30226:131;30352:4;30226:131;:::i;:::-;30218:139;;29945:419;;;:::o;30370:224::-;30510:34;30506:1;30498:6;30494:14;30487:58;30579:7;30574:2;30566:6;30562:15;30555:32;30370:224;:::o;30600:366::-;30742:3;30763:67;30827:2;30822:3;30763:67;:::i;:::-;30756:74;;30839:93;30928:3;30839:93;:::i;:::-;30957:2;30952:3;30948:12;30941:19;;30600:366;;;:::o;30972:419::-;31138:4;31176:2;31165:9;31161:18;31153:26;;31225:9;31219:4;31215:20;31211:1;31200:9;31196:17;31189:47;31253:131;31379:4;31253:131;:::i;:::-;31245:139;;30972:419;;;:::o;31397:222::-;31537:34;31533:1;31525:6;31521:14;31514:58;31606:5;31601:2;31593:6;31589:15;31582:30;31397:222;:::o;31625:366::-;31767:3;31788:67;31852:2;31847:3;31788:67;:::i;:::-;31781:74;;31864:93;31953:3;31864:93;:::i;:::-;31982:2;31977:3;31973:12;31966:19;;31625:366;;;:::o;31997:419::-;32163:4;32201:2;32190:9;32186:18;32178:26;;32250:9;32244:4;32240:20;32236:1;32225:9;32221:17;32214:47;32278:131;32404:4;32278:131;:::i;:::-;32270:139;;31997:419;;;:::o;32422:172::-;32562:24;32558:1;32550:6;32546:14;32539:48;32422:172;:::o;32600:366::-;32742:3;32763:67;32827:2;32822:3;32763:67;:::i;:::-;32756:74;;32839:93;32928:3;32839:93;:::i;:::-;32957:2;32952:3;32948:12;32941:19;;32600:366;;;:::o;32972:419::-;33138:4;33176:2;33165:9;33161:18;33153:26;;33225:9;33219:4;33215:20;33211:1;33200:9;33196:17;33189:47;33253:131;33379:4;33253:131;:::i;:::-;33245:139;;32972:419;;;:::o;33397:240::-;33537:34;33533:1;33525:6;33521:14;33514:58;33606:23;33601:2;33593:6;33589:15;33582:48;33397:240;:::o;33643:366::-;33785:3;33806:67;33870:2;33865:3;33806:67;:::i;:::-;33799:74;;33882:93;33971:3;33882:93;:::i;:::-;34000:2;33995:3;33991:12;33984:19;;33643:366;;;:::o;34015:419::-;34181:4;34219:2;34208:9;34204:18;34196:26;;34268:9;34262:4;34258:20;34254:1;34243:9;34239:17;34232:47;34296:131;34422:4;34296:131;:::i;:::-;34288:139;;34015:419;;;:::o;34440:169::-;34580:21;34576:1;34568:6;34564:14;34557:45;34440:169;:::o;34615:366::-;34757:3;34778:67;34842:2;34837:3;34778:67;:::i;:::-;34771:74;;34854:93;34943:3;34854:93;:::i;:::-;34972:2;34967:3;34963:12;34956:19;;34615:366;;;:::o;34987:419::-;35153:4;35191:2;35180:9;35176:18;35168:26;;35240:9;35234:4;35230:20;35226:1;35215:9;35211:17;35204:47;35268:131;35394:4;35268:131;:::i;:::-;35260:139;;34987:419;;;:::o;35412:241::-;35552:34;35548:1;35540:6;35536:14;35529:58;35621:24;35616:2;35608:6;35604:15;35597:49;35412:241;:::o;35659:366::-;35801:3;35822:67;35886:2;35881:3;35822:67;:::i;:::-;35815:74;;35898:93;35987:3;35898:93;:::i;:::-;36016:2;36011:3;36007:12;36000:19;;35659:366;;;:::o;36031:419::-;36197:4;36235:2;36224:9;36220:18;36212:26;;36284:9;36278:4;36274:20;36270:1;36259:9;36255:17;36248:47;36312:131;36438:4;36312:131;:::i;:::-;36304:139;;36031:419;;;:::o;36456:194::-;36496:4;36516:20;36534:1;36516:20;:::i;:::-;36511:25;;36550:20;36568:1;36550:20;:::i;:::-;36545:25;;36594:1;36591;36587:9;36579:17;;36618:1;36612:4;36609:11;36606:37;;;36623:18;;:::i;:::-;36606:37;36456:194;;;;:::o;36656:114::-;36723:6;36757:5;36751:12;36741:22;;36656:114;;;:::o;36776:184::-;36875:11;36909:6;36904:3;36897:19;36949:4;36944:3;36940:14;36925:29;;36776:184;;;;:::o;36966:132::-;37033:4;37056:3;37048:11;;37086:4;37081:3;37077:14;37069:22;;36966:132;;;:::o;37104:108::-;37181:24;37199:5;37181:24;:::i;:::-;37176:3;37169:37;37104:108;;:::o;37218:179::-;37287:10;37308:46;37350:3;37342:6;37308:46;:::i;:::-;37386:4;37381:3;37377:14;37363:28;;37218:179;;;;:::o;37403:113::-;37473:4;37505;37500:3;37496:14;37488:22;;37403:113;;;:::o;37552:732::-;37671:3;37700:54;37748:5;37700:54;:::i;:::-;37770:86;37849:6;37844:3;37770:86;:::i;:::-;37763:93;;37880:56;37930:5;37880:56;:::i;:::-;37959:7;37990:1;37975:284;38000:6;37997:1;37994:13;37975:284;;;38076:6;38070:13;38103:63;38162:3;38147:13;38103:63;:::i;:::-;38096:70;;38189:60;38242:6;38189:60;:::i;:::-;38179:70;;38035:224;38022:1;38019;38015:9;38010:14;;37975:284;;;37979:14;38275:3;38268:10;;37676:608;;;37552:732;;;;:::o;38290:831::-;38553:4;38591:3;38580:9;38576:19;38568:27;;38605:71;38673:1;38662:9;38658:17;38649:6;38605:71;:::i;:::-;38686:80;38762:2;38751:9;38747:18;38738:6;38686:80;:::i;:::-;38813:9;38807:4;38803:20;38798:2;38787:9;38783:18;38776:48;38841:108;38944:4;38935:6;38841:108;:::i;:::-;38833:116;;38959:72;39027:2;39016:9;39012:18;39003:6;38959:72;:::i;:::-;39041:73;39109:3;39098:9;39094:19;39085:6;39041:73;:::i;:::-;38290:831;;;;;;;;:::o;39127:223::-;39267:34;39263:1;39255:6;39251:14;39244:58;39336:6;39331:2;39323:6;39319:15;39312:31;39127:223;:::o;39356:366::-;39498:3;39519:67;39583:2;39578:3;39519:67;:::i;:::-;39512:74;;39595:93;39684:3;39595:93;:::i;:::-;39713:2;39708:3;39704:12;39697:19;;39356:366;;;:::o;39728:419::-;39894:4;39932:2;39921:9;39917:18;39909:26;;39981:9;39975:4;39971:20;39967:1;39956:9;39952:17;39945:47;40009:131;40135:4;40009:131;:::i;:::-;40001:139;;39728:419;;;:::o;40153:225::-;40293:34;40289:1;40281:6;40277:14;40270:58;40362:8;40357:2;40349:6;40345:15;40338:33;40153:225;:::o;40384:366::-;40526:3;40547:67;40611:2;40606:3;40547:67;:::i;:::-;40540:74;;40623:93;40712:3;40623:93;:::i;:::-;40741:2;40736:3;40732:12;40725:19;;40384:366;;;:::o;40756:419::-;40922:4;40960:2;40949:9;40945:18;40937:26;;41009:9;41003:4;40999:20;40995:1;40984:9;40980:17;40973:47;41037:131;41163:4;41037:131;:::i;:::-;41029:139;;40756:419;;;:::o

Swarm Source

ipfs://325639e4c26c0fea412aa52d03971c54b7b3bde1e7769a2d28c1f0e2811395c2

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  ]
[ 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.