ETH Price: $2,405.89 (-0.51%)

Contract

0x4f84507C257a0420647c9d40dFF8fcEe58422F40
 

Overview

ETH Balance

1 wei

Eth Value

Less Than $0.01 (@ $2,405.89/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve161331292022-12-07 13:29:35647 days ago1670419775IN
0x4f84507C...e58422F40
0 ETH0.0006933614.67291159
Approve153282062022-08-12 17:14:46764 days ago1660324486IN
0x4f84507C...e58422F40
0 ETH0.0004444117.79715247
Approve152971142022-08-07 19:32:57769 days ago1659900777IN
0x4f84507C...e58422F40
0 ETH0.0004200816.82283968
Set Max Wallet S...152031402022-07-24 4:22:28784 days ago1658636548IN
0x4f84507C...e58422F40
0 ETH0.000214688.1946045
Set Max Txn Amou...152031372022-07-24 4:22:03784 days ago1658636523IN
0x4f84507C...e58422F40
0 ETH0.000269179.26820349
Set Max Wallet S...152031362022-07-24 4:21:41784 days ago1658636501IN
0x4f84507C...e58422F40
0 ETH0.000257248.87117484
Set Trading152031322022-07-24 4:20:49784 days ago1658636449IN
0x4f84507C...e58422F40
0 ETH0.000253738.73523264
Approve151879152022-07-21 19:42:56786 days ago1658432576IN
0x4f84507C...e58422F40
0 ETH0.0005581211.81081979
Set Trading151603462022-07-17 13:10:27790 days ago1658063427IN
0x4f84507C...e58422F40
0 ETH0.0004695616.17251534
Set Trading151603362022-07-17 13:08:04790 days ago1658063284IN
0x4f84507C...e58422F40
0 ETH0.0005576521.24656183
Approve151599222022-07-17 11:33:27791 days ago1658057607IN
0x4f84507C...e58422F40
0 ETH0.0008799718.62193397
Approve151453802022-07-15 5:27:24793 days ago1657862844IN
0x4f84507C...e58422F40
0 ETH0.0009523820.15412112
Transfer151353842022-07-13 16:41:21794 days ago1657730481IN
0x4f84507C...e58422F40
0 ETH0.0006668923.81752833
Approve151351902022-07-13 16:01:07794 days ago1657728067IN
0x4f84507C...e58422F40
0 ETH0.0024844152.57474943
Transfer151350772022-07-13 15:37:12794 days ago1657726632IN
0x4f84507C...e58422F40
0 ETH0.0008758235.03319329
Transfer151350672022-07-13 15:35:13794 days ago1657726513IN
0x4f84507C...e58422F40
0 ETH0.0008920638.78534687
Transfer151350302022-07-13 15:25:41794 days ago1657725941IN
0x4f84507C...e58422F40
0 ETH0.0017094151.80036192
Transfer151350272022-07-13 15:24:59794 days ago1657725899IN
0x4f84507C...e58422F40
0 ETH0.0016617148.87400766
Transfer151350232022-07-13 15:22:13794 days ago1657725733IN
0x4f84507C...e58422F40
0 ETH0.0008845635.38261584
Unblock Bot151349852022-07-13 15:13:45794 days ago1657725225IN
0x4f84507C...e58422F40
0 ETH0.0014241553.6242558
Approve151349642022-07-13 15:07:59794 days ago1657724879IN
0x4f84507C...e58422F40
0 ETH0.002788559.00963713
Approve151348752022-07-13 14:44:26794 days ago1657723466IN
0x4f84507C...e58422F40
0 ETH0.0017183936.36425773
Approve151338052022-07-13 10:39:36795 days ago1657708776IN
0x4f84507C...e58422F40
0 ETH0.0005942821.72490804
Approve151338012022-07-13 10:38:29795 days ago1657708709IN
0x4f84507C...e58422F40
0 ETH0.0009996921.15541475
Approve151338012022-07-13 10:38:29795 days ago1657708709IN
0x4f84507C...e58422F40
0 ETH0.0009934821.02400102
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
151453832022-07-15 5:27:54793 days ago1657862874
0x4f84507C...e58422F40
0.00046502 ETH
151453832022-07-15 5:27:54793 days ago1657862874
0x4f84507C...e58422F40
0.00046502 ETH
151453832022-07-15 5:27:54793 days ago1657862874
0x4f84507C...e58422F40
0.00046502 ETH
151453832022-07-15 5:27:54793 days ago1657862874
0x4f84507C...e58422F40
0.00418526 ETH
151453832022-07-15 5:27:54793 days ago1657862874
0x4f84507C...e58422F40
0.00558035 ETH
151354432022-07-13 16:52:51794 days ago1657731171
0x4f84507C...e58422F40
0.00081474 ETH
151354432022-07-13 16:52:51794 days ago1657731171
0x4f84507C...e58422F40
0.00081474 ETH
151354432022-07-13 16:52:51794 days ago1657731171
0x4f84507C...e58422F40
0.00081474 ETH
151354432022-07-13 16:52:51794 days ago1657731171
0x4f84507C...e58422F40
0.00733268 ETH
151354432022-07-13 16:52:51794 days ago1657731171
0x4f84507C...e58422F40
0.00977691 ETH
151351072022-07-13 15:43:37794 days ago1657727017
0x4f84507C...e58422F40
0.00199725 ETH
151351072022-07-13 15:43:37794 days ago1657727017
0x4f84507C...e58422F40
0.00199725 ETH
151351072022-07-13 15:43:37794 days ago1657727017
0x4f84507C...e58422F40
0.00199725 ETH
151351072022-07-13 15:43:37794 days ago1657727017
0x4f84507C...e58422F40
0.0179753 ETH
151351072022-07-13 15:43:37794 days ago1657727017
0x4f84507C...e58422F40
0.02396707 ETH
151349732022-07-13 15:10:22794 days ago1657725022
0x4f84507C...e58422F40
0.00070078 ETH
151349732022-07-13 15:10:22794 days ago1657725022
0x4f84507C...e58422F40
0.00070078 ETH
151349732022-07-13 15:10:22794 days ago1657725022
0x4f84507C...e58422F40
0.00070078 ETH
151349732022-07-13 15:10:22794 days ago1657725022
0x4f84507C...e58422F40
0.00630708 ETH
151349732022-07-13 15:10:22794 days ago1657725022
0x4f84507C...e58422F40
0.00840944 ETH
151349502022-07-13 15:03:15794 days ago1657724595
0x4f84507C...e58422F40
0.00068523 ETH
151349502022-07-13 15:03:15794 days ago1657724595
0x4f84507C...e58422F40
0.00068523 ETH
151349502022-07-13 15:03:15794 days ago1657724595
0x4f84507C...e58422F40
0.00068523 ETH
151349502022-07-13 15:03:15794 days ago1657724595
0x4f84507C...e58422F40
0.00616715 ETH
151349502022-07-13 15:03:15794 days ago1657724595
0x4f84507C...e58422F40
0.00822287 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BrentInu

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-07-13
*/

pragma solidity ^0.8.14;
// SPDX-License-Identifier: Unlicensed
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

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

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

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

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

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

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

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

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

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

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

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

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

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

}

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

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

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

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

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

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract BrentInu is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "Brent Inu";
    string private constant _symbol = "$BIN";
    uint8 private constant _decimals = 9;

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

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

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

    mapping(address => bool) public bots; 
    mapping (address => uint256) public _buyMap;
    mapping (address => bool) public preTrader;
    
    address private marketingAddress;
    address private devFeeAddress1;
    address private devFeeAddress2;
    address private devFeeAddress3;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

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

    uint256 public _maxTxAmount = 80000000000 * 10**_decimals;
    uint256 public _maxWalletSize = 80000000000 * 10**_decimals;
    uint256 public _swapTokensAtAmount = 10000000000 * 10**_decimals;

    struct Distribution {
        uint256 marketing;
        uint256 devFee;
    }

    Distribution public distribution;

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

    constructor(address marketingAddr, address devFeeAddr1, address devFeeAddr2, address devFeeAddr3) {
        marketingAddress = marketingAddr;
        devFeeAddress1 = devFeeAddr1;
        devFeeAddress2 = devFeeAddr2;
        devFeeAddress3 = devFeeAddr3;
        _rOwned[_msgSender()] = _rTotal;

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

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[devFeeAddress1] = true;
        _isExcludedFromFee[devFeeAddress2] = true;        
        _isExcludedFromFee[devFeeAddress3] = true;
        _isExcludedFromFee[marketingAddress] = true;

        distribution = Distribution(75, 25);

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

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

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

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

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

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

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

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

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

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

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

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

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

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

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

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

        if (from != owner() && to != owner() && !preTrader[from] && !preTrader[to]) {

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

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

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

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

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

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

        bool takeFee = true;

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

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

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

        }

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

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

    function sendETHToFee(uint256 amount) private lockTheSwap {
        uint256 distributionEth = amount;
        uint256 marketingShare = distributionEth.mul(distribution.marketing).div(100);
        uint256 devFeeShare = distributionEth.mul(distribution.devFee).div(100).div(3);
        payable(marketingAddress).transfer(marketingShare);
        payable(devFeeAddress1).transfer(devFeeShare);
        payable(devFeeAddress2).transfer(devFeeShare);
        payable(devFeeAddress3).transfer(devFeeShare);
    }

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

    function manualswap() external {
        require(_msgSender() == devFeeAddress3 || _msgSender() == marketingAddress || _msgSender() == devFeeAddress1 || _msgSender() == devFeeAddress2);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == devFeeAddress3 || _msgSender() == marketingAddress || _msgSender() == devFeeAddress1 || _msgSender() == devFeeAddress2);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

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

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

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

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

    function setDistribution(uint256 marketing, uint256 devFee) external onlyOwner {      
        distribution.marketing = marketing;
        distribution.devFee = devFee;
    }

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

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

    receive() external payable {
    }

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

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

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

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

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

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

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

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

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

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

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

   function allowPreTrading(address account, bool allowed) public onlyOwner {
        require(preTrader[account] != allowed, "TOKEN: Already enabled.");
        preTrader[account] = allowed;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"marketingAddr","type":"address"},{"internalType":"address","name":"devFeeAddr1","type":"address"},{"internalType":"address","name":"devFeeAddr2","type":"address"},{"internalType":"address","name":"devFeeAddr3","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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"allowPreTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"distribution","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"devFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"preTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"devFee","type":"uint256"}],"name":"setDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526009600a62000014919062000a9a565b6503a35294400062000027919062000aeb565b60001962000036919062000b7b565b60001962000045919062000bb3565b6006556000600855600a6009556000600a55600a600b55600a54600c55600b54600d55600c54600e55600d54600f556000601860156101000a81548160ff0219169083151502179055506001601860166101000a81548160ff0219169083151502179055506009600a620000ba919062000a9a565b6412a05f2000620000cc919062000aeb565b6019556009600a620000df919062000a9a565b6412a05f2000620000f1919062000aeb565b601a556009600a62000104919062000a9a565b6402540be40062000116919062000aeb565b601b553480156200012657600080fd5b506040516200559c3803806200559c83398181016040528101906200014c919062000c58565b60006200015e620008cf60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35083601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506006546002600062000317620008cf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000421919062000cca565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000489573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004af919062000cca565b6040518363ffffffff1660e01b8152600401620004ce92919062000d0d565b6020604051808303816000875af1158015620004ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000514919062000cca565b601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560006200056a620008d760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506040518060400160405280604b81526020016019815250601c60008201518160000155602082015181600101559050506200083b620008cf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200089a919062000a9a565b6503a352944000620008ad919062000aeb565b604051620008bc919062000d4b565b60405180910390a3505050505062000d68565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200098e5780860481111562000966576200096562000900565b5b6001851615620009765780820291505b808102905062000986856200092f565b945062000946565b94509492505050565b600082620009a9576001905062000a7c565b81620009b9576000905062000a7c565b8160018114620009d25760028114620009dd5762000a13565b600191505062000a7c565b60ff841115620009f257620009f162000900565b5b8360020a91508482111562000a0c5762000a0b62000900565b5b5062000a7c565b5060208310610133831016604e8410600b841016171562000a4d5782820a90508381111562000a475762000a4662000900565b5b62000a7c565b62000a5c84848460016200093c565b9250905081840481111562000a765762000a7562000900565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000aa78262000a83565b915062000ab48362000a8d565b925062000ae37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000997565b905092915050565b600062000af88262000a83565b915062000b058362000a83565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b415762000b4062000900565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000b888262000a83565b915062000b958362000a83565b92508262000ba85762000ba762000b4c565b5b828206905092915050565b600062000bc08262000a83565b915062000bcd8362000a83565b92508282101562000be35762000be262000900565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c208262000bf3565b9050919050565b62000c328162000c13565b811462000c3e57600080fd5b50565b60008151905062000c528162000c27565b92915050565b6000806000806080858703121562000c755762000c7462000bee565b5b600062000c858782880162000c41565b945050602062000c988782880162000c41565b935050604062000cab8782880162000c41565b925050606062000cbe8782880162000c41565b91505092959194509250565b60006020828403121562000ce35762000ce262000bee565b5b600062000cf38482850162000c41565b91505092915050565b62000d078162000c13565b82525050565b600060408201905062000d24600083018562000cfc565b62000d33602083018462000cfc565b9392505050565b62000d458162000a83565b82525050565b600060208201905062000d62600083018462000d3a565b92915050565b6148248062000d786000396000f3fe6080604052600436106101fc5760003560e01c80637d1db4a51161010d578063a9059cbb116100a0578063c492f0461161006f578063c492f0461461071a578063dd62ed3e14610743578063ea1644d514610780578063f18dba26146107a9578063f2fde38b146107d257610203565b8063a9059cbb1461064c578063bdd795ef14610689578063bfd79284146106c6578063c3c8cd801461070357610203565b80638f9a55c0116100dc5780638f9a55c0146105a457806395d89b41146105cf57806398a5c315146105fa578063a2a957bb1461062357610203565b80637d1db4a5146104e85780637f2feddc146105135780638da5cb5b146105505780638f70ccf71461057b57610203565b8063313ce567116101905780636d8aa8f81161015f5780636d8aa8f81461042b5780636fc3eaec1461045457806370a082311461046b578063715018a6146104a857806374010ece146104bf57610203565b8063313ce5671461038057806349bd5a5e146103ab5780635ee58efc146103d65780636b9990531461040257610203565b806318160ddd116101cc57806318160ddd146102c457806323b872dd146102ef5780632f9c45691461032c5780632fd689e31461035557610203565b8062b8cf2a1461020857806306fdde0314610231578063095ea7b31461025c5780631694505e1461029957610203565b3661020357005b600080fd5b34801561021457600080fd5b5061022f600480360381019061022a919061351e565b6107fb565b005b34801561023d57600080fd5b50610246610925565b60405161025391906135ef565b60405180910390f35b34801561026857600080fd5b50610283600480360381019061027e9190613647565b610962565b60405161029091906136a2565b60405180910390f35b3480156102a557600080fd5b506102ae610980565b6040516102bb919061371c565b60405180910390f35b3480156102d057600080fd5b506102d96109a6565b6040516102e69190613746565b60405180910390f35b3480156102fb57600080fd5b5061031660048036038101906103119190613761565b6109cc565b60405161032391906136a2565b60405180910390f35b34801561033857600080fd5b50610353600480360381019061034e91906137e0565b610aa5565b005b34801561036157600080fd5b5061036a610c27565b6040516103779190613746565b60405180910390f35b34801561038c57600080fd5b50610395610c2d565b6040516103a2919061383c565b60405180910390f35b3480156103b757600080fd5b506103c0610c36565b6040516103cd9190613866565b60405180910390f35b3480156103e257600080fd5b506103eb610c5c565b6040516103f9929190613881565b60405180910390f35b34801561040e57600080fd5b50610429600480360381019061042491906138aa565b610c6e565b005b34801561043757600080fd5b50610452600480360381019061044d91906138d7565b610d5e565b005b34801561046057600080fd5b50610469610e10565b005b34801561047757600080fd5b50610492600480360381019061048d91906138aa565b610f9f565b60405161049f9190613746565b60405180910390f35b3480156104b457600080fd5b506104bd610ff0565b005b3480156104cb57600080fd5b506104e660048036038101906104e19190613904565b611143565b005b3480156104f457600080fd5b506104fd6111e2565b60405161050a9190613746565b60405180910390f35b34801561051f57600080fd5b5061053a600480360381019061053591906138aa565b6111e8565b6040516105479190613746565b60405180910390f35b34801561055c57600080fd5b50610565611200565b6040516105729190613866565b60405180910390f35b34801561058757600080fd5b506105a2600480360381019061059d91906138d7565b611229565b005b3480156105b057600080fd5b506105b96112db565b6040516105c69190613746565b60405180910390f35b3480156105db57600080fd5b506105e46112e1565b6040516105f191906135ef565b60405180910390f35b34801561060657600080fd5b50610621600480360381019061061c9190613904565b61131e565b005b34801561062f57600080fd5b5061064a60048036038101906106459190613931565b6113bd565b005b34801561065857600080fd5b50610673600480360381019061066e9190613647565b611474565b60405161068091906136a2565b60405180910390f35b34801561069557600080fd5b506106b060048036038101906106ab91906138aa565b611492565b6040516106bd91906136a2565b60405180910390f35b3480156106d257600080fd5b506106ed60048036038101906106e891906138aa565b6114b2565b6040516106fa91906136a2565b60405180910390f35b34801561070f57600080fd5b506107186114d2565b005b34801561072657600080fd5b50610741600480360381019061073c91906139f3565b611669565b005b34801561074f57600080fd5b5061076a60048036038101906107659190613a53565b6117a3565b6040516107779190613746565b60405180910390f35b34801561078c57600080fd5b506107a760048036038101906107a29190613904565b61182a565b005b3480156107b557600080fd5b506107d060048036038101906107cb9190613a93565b6118c9565b005b3480156107de57600080fd5b506107f960048036038101906107f491906138aa565b611976565b005b610803611b37565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610890576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088790613b1f565b60405180910390fd5b60005b8151811015610921576001601060008484815181106108b5576108b4613b3f565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061091990613b9d565b915050610893565b5050565b60606040518060400160405280600981526020017f4272656e7420496e750000000000000000000000000000000000000000000000815250905090565b600061097661096f611b37565b8484611b3f565b6001905092915050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009600a6109b69190613d18565b6503a3529440006109c79190613d63565b905090565b60006109d9848484611d08565b610a9a846109e5611b37565b610a95856040518060600160405280602881526020016147c760289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a4b611b37565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126509092919063ffffffff16565b611b3f565b600190509392505050565b610aad611b37565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3190613b1f565b60405180910390fd5b801515601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc390613e09565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601b5481565b60006009905090565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c8060000154908060010154905082565b610c76611b37565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfa90613b1f565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610d66611b37565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dea90613b1f565b60405180910390fd5b80601860166101000a81548160ff02191690831515021790555050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e51611b37565b73ffffffffffffffffffffffffffffffffffffffff161480610ec75750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610eaf611b37565b73ffffffffffffffffffffffffffffffffffffffff16145b80610f265750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f0e611b37565b73ffffffffffffffffffffffffffffffffffffffff16145b80610f855750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f6d611b37565b73ffffffffffffffffffffffffffffffffffffffff16145b610f8e57600080fd5b6000479050610f9c816126b4565b50565b6000610fe9600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461290a565b9050919050565b610ff8611b37565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107c90613b1f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61114b611b37565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cf90613b1f565b60405180910390fd5b8060198190555050565b60195481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611231611b37565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b590613b1f565b60405180910390fd5b80601860146101000a81548160ff02191690831515021790555050565b601a5481565b60606040518060400160405280600481526020017f2442494e00000000000000000000000000000000000000000000000000000000815250905090565b611326611b37565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113aa90613b1f565b60405180910390fd5b80601b8190555050565b6113c5611b37565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611452576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144990613b1f565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b6000611488611481611b37565b8484611d08565b6001905092915050565b60126020528060005260406000206000915054906101000a900460ff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611513611b37565b73ffffffffffffffffffffffffffffffffffffffff1614806115895750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611571611b37565b73ffffffffffffffffffffffffffffffffffffffff16145b806115e85750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115d0611b37565b73ffffffffffffffffffffffffffffffffffffffff16145b806116475750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661162f611b37565b73ffffffffffffffffffffffffffffffffffffffff16145b61165057600080fd5b600061165b30610f9f565b905061166681612978565b50565b611671611b37565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f590613b1f565b60405180910390fd5b60005b8383905081101561179d57816005600086868581811061172457611723613b3f565b5b905060200201602081019061173991906138aa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061179590613b9d565b915050611701565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611832611b37565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b690613b1f565b60405180910390fd5b80601a8190555050565b6118d1611b37565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461195e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195590613b1f565b60405180910390fd5b81601c6000018190555080601c600101819055505050565b61197e611b37565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0290613b1f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7190613e9b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba590613f2d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1490613fbf565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611cfb9190613746565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6e90614051565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ddd906140e3565b60405180910390fd5b60008111611e29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2090614175565b60405180910390fd5b611e31611200565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611e9f5750611e6f611200565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611ef55750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f4b5750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561234f57601860149054906101000a900460ff16611ff157601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611ff0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe790614207565b60405180910390fd5b5b601954811115612036576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202d90614273565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120da5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612119576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211090614305565b60405180910390fd5b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146121c657601a548161217b84610f9f565b6121859190614325565b106121c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121bc906143ed565b60405180910390fd5b5b60006121d130610f9f565b90506000601b54821015905060195482106121ec5760195491505b8080156122065750601860159054906101000a900460ff16155b80156122605750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156122785750601860169054906101000a900460ff165b80156122ce5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123245750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561234c5761233282612978565b6000479050600081111561234a57612349476126b4565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123f65750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806124a95750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156124a85750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156124b7576000905061263e565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156125625750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561257a57600854600c81905550600954600d819055505b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156126255750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561263d57600a54600c81905550600b54600d819055505b5b61264a84848484612bf1565b50505050565b6000838311158290612698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268f91906135ef565b60405180910390fd5b50600083856126a7919061440d565b9050809150509392505050565b6001601860156101000a81548160ff0219169083151502179055506000819050600061270160646126f3601c6000015485612c1e90919063ffffffff16565b612c9890919063ffffffff16565b9050600061274360036127356064612727601c6001015488612c1e90919063ffffffff16565b612c9890919063ffffffff16565b612c9890919063ffffffff16565b9050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156127ad573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612816573d6000803e3d6000fd5b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561287f573d6000803e3d6000fd5b50601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156128e8573d6000803e3d6000fd5b505050506000601860156101000a81548160ff02191690831515021790555050565b6000600654821115612951576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612948906144b3565b60405180910390fd5b600061295b612ce2565b90506129708184612c9890919063ffffffff16565b915050919050565b6001601860156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156129b0576129af61337d565b5b6040519080825280602002602001820160405280156129de5781602001602082028036833780820191505090505b50905030816000815181106129f6576129f5613b3f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ac191906144e8565b81600181518110612ad557612ad4613b3f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612b3c30601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b3f565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612ba095949392919061460e565b600060405180830381600087803b158015612bba57600080fd5b505af1158015612bce573d6000803e3d6000fd5b50505050506000601860156101000a81548160ff02191690831515021790555050565b80612bff57612bfe612d0d565b5b612c0a848484612d4a565b80612c1857612c17612f15565b5b50505050565b6000808303612c305760009050612c92565b60008284612c3e9190613d63565b9050828482612c4d9190614697565b14612c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c849061473a565b60405180910390fd5b809150505b92915050565b6000612cda83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612f29565b905092915050565b6000806000612cef612f8c565b91509150612d068183612c9890919063ffffffff16565b9250505090565b6000600c54148015612d2157506000600d54145b612d4857600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612d5c8761302d565b955095509550955095509550612dba86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461309590919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e4f85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130df90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e9b8161313d565b612ea584836131fa565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612f029190613746565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008083118290612f70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f6791906135ef565b60405180910390fd5b5060008385612f7f9190614697565b9050809150509392505050565b6000806000600654905060006009600a612fa69190613d18565b6503a352944000612fb79190613d63565b9050612fec6009600a612fca9190613d18565b6503a352944000612fdb9190613d63565b600654612c9890919063ffffffff16565b821015613020576006546009600a6130049190613d18565b6503a3529440006130159190613d63565b935093505050613029565b81819350935050505b9091565b600080600080600080600080600061304a8a600c54600d54613234565b925092509250600061305a612ce2565b9050600080600061306d8e8787876132ca565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006130d783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612650565b905092915050565b60008082846130ee9190614325565b905083811015613133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161312a906147a6565b60405180910390fd5b8091505092915050565b6000613147612ce2565b9050600061315e8284612c1e90919063ffffffff16565b90506131b281600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130df90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61320f8260065461309590919063ffffffff16565b60068190555061322a816007546130df90919063ffffffff16565b6007819055505050565b6000806000806132606064613252888a612c1e90919063ffffffff16565b612c9890919063ffffffff16565b9050600061328a606461327c888b612c1e90919063ffffffff16565b612c9890919063ffffffff16565b905060006132b3826132a5858c61309590919063ffffffff16565b61309590919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806132e38589612c1e90919063ffffffff16565b905060006132fa8689612c1e90919063ffffffff16565b905060006133118789612c1e90919063ffffffff16565b9050600061333a8261332c858761309590919063ffffffff16565b61309590919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6133b58261336c565b810181811067ffffffffffffffff821117156133d4576133d361337d565b5b80604052505050565b60006133e7613353565b90506133f382826133ac565b919050565b600067ffffffffffffffff8211156134135761341261337d565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061345482613429565b9050919050565b61346481613449565b811461346f57600080fd5b50565b6000813590506134818161345b565b92915050565b600061349a613495846133f8565b6133dd565b905080838252602082019050602084028301858111156134bd576134bc613424565b5b835b818110156134e657806134d28882613472565b8452602084019350506020810190506134bf565b5050509392505050565b600082601f83011261350557613504613367565b5b8135613515848260208601613487565b91505092915050565b6000602082840312156135345761353361335d565b5b600082013567ffffffffffffffff81111561355257613551613362565b5b61355e848285016134f0565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156135a1578082015181840152602081019050613586565b838111156135b0576000848401525b50505050565b60006135c182613567565b6135cb8185613572565b93506135db818560208601613583565b6135e48161336c565b840191505092915050565b6000602082019050818103600083015261360981846135b6565b905092915050565b6000819050919050565b61362481613611565b811461362f57600080fd5b50565b6000813590506136418161361b565b92915050565b6000806040838503121561365e5761365d61335d565b5b600061366c85828601613472565b925050602061367d85828601613632565b9150509250929050565b60008115159050919050565b61369c81613687565b82525050565b60006020820190506136b76000830184613693565b92915050565b6000819050919050565b60006136e26136dd6136d884613429565b6136bd565b613429565b9050919050565b60006136f4826136c7565b9050919050565b6000613706826136e9565b9050919050565b613716816136fb565b82525050565b6000602082019050613731600083018461370d565b92915050565b61374081613611565b82525050565b600060208201905061375b6000830184613737565b92915050565b60008060006060848603121561377a5761377961335d565b5b600061378886828701613472565b935050602061379986828701613472565b92505060406137aa86828701613632565b9150509250925092565b6137bd81613687565b81146137c857600080fd5b50565b6000813590506137da816137b4565b92915050565b600080604083850312156137f7576137f661335d565b5b600061380585828601613472565b9250506020613816858286016137cb565b9150509250929050565b600060ff82169050919050565b61383681613820565b82525050565b6000602082019050613851600083018461382d565b92915050565b61386081613449565b82525050565b600060208201905061387b6000830184613857565b92915050565b60006040820190506138966000830185613737565b6138a36020830184613737565b9392505050565b6000602082840312156138c0576138bf61335d565b5b60006138ce84828501613472565b91505092915050565b6000602082840312156138ed576138ec61335d565b5b60006138fb848285016137cb565b91505092915050565b60006020828403121561391a5761391961335d565b5b600061392884828501613632565b91505092915050565b6000806000806080858703121561394b5761394a61335d565b5b600061395987828801613632565b945050602061396a87828801613632565b935050604061397b87828801613632565b925050606061398c87828801613632565b91505092959194509250565b600080fd5b60008083601f8401126139b3576139b2613367565b5b8235905067ffffffffffffffff8111156139d0576139cf613998565b5b6020830191508360208202830111156139ec576139eb613424565b5b9250929050565b600080600060408486031215613a0c57613a0b61335d565b5b600084013567ffffffffffffffff811115613a2a57613a29613362565b5b613a368682870161399d565b93509350506020613a49868287016137cb565b9150509250925092565b60008060408385031215613a6a57613a6961335d565b5b6000613a7885828601613472565b9250506020613a8985828601613472565b9150509250929050565b60008060408385031215613aaa57613aa961335d565b5b6000613ab885828601613632565b9250506020613ac985828601613632565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613b09602083613572565b9150613b1482613ad3565b602082019050919050565b60006020820190508181036000830152613b3881613afc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613ba882613611565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613bda57613bd9613b6e565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b6001851115613c3c57808604811115613c1857613c17613b6e565b5b6001851615613c275780820291505b8081029050613c3585613be5565b9450613bfc565b94509492505050565b600082613c555760019050613d11565b81613c635760009050613d11565b8160018114613c795760028114613c8357613cb2565b6001915050613d11565b60ff841115613c9557613c94613b6e565b5b8360020a915084821115613cac57613cab613b6e565b5b50613d11565b5060208310610133831016604e8410600b8410161715613ce75782820a905083811115613ce257613ce1613b6e565b5b613d11565b613cf48484846001613bf2565b92509050818404811115613d0b57613d0a613b6e565b5b81810290505b9392505050565b6000613d2382613611565b9150613d2e83613820565b9250613d5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613c45565b905092915050565b6000613d6e82613611565b9150613d7983613611565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613db257613db1613b6e565b5b828202905092915050565b7f544f4b454e3a20416c726561647920656e61626c65642e000000000000000000600082015250565b6000613df3601783613572565b9150613dfe82613dbd565b602082019050919050565b60006020820190508181036000830152613e2281613de6565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613e85602683613572565b9150613e9082613e29565b604082019050919050565b60006020820190508181036000830152613eb481613e78565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613f17602483613572565b9150613f2282613ebb565b604082019050919050565b60006020820190508181036000830152613f4681613f0a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fa9602283613572565b9150613fb482613f4d565b604082019050919050565b60006020820190508181036000830152613fd881613f9c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061403b602583613572565b915061404682613fdf565b604082019050919050565b6000602082019050818103600083015261406a8161402e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006140cd602383613572565b91506140d882614071565b604082019050919050565b600060208201905081810360008301526140fc816140c0565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061415f602983613572565b915061416a82614103565b604082019050919050565b6000602082019050818103600083015261418e81614152565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b60006141f1603f83613572565b91506141fc82614195565b604082019050919050565b60006020820190508181036000830152614220816141e4565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b600061425d601c83613572565b915061426882614227565b602082019050919050565b6000602082019050818103600083015261428c81614250565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b60006142ef602383613572565b91506142fa82614293565b604082019050919050565b6000602082019050818103600083015261431e816142e2565b9050919050565b600061433082613611565b915061433b83613611565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156143705761436f613b6e565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006143d7602383613572565b91506143e28261437b565b604082019050919050565b60006020820190508181036000830152614406816143ca565b9050919050565b600061441882613611565b915061442383613611565b92508282101561443657614435613b6e565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061449d602a83613572565b91506144a882614441565b604082019050919050565b600060208201905081810360008301526144cc81614490565b9050919050565b6000815190506144e28161345b565b92915050565b6000602082840312156144fe576144fd61335d565b5b600061450c848285016144d3565b91505092915050565b6000819050919050565b600061453a61453561453084614515565b6136bd565b613611565b9050919050565b61454a8161451f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61458581613449565b82525050565b6000614597838361457c565b60208301905092915050565b6000602082019050919050565b60006145bb82614550565b6145c5818561455b565b93506145d08361456c565b8060005b838110156146015781516145e8888261458b565b97506145f3836145a3565b9250506001810190506145d4565b5085935050505092915050565b600060a0820190506146236000830188613737565b6146306020830187614541565b818103604083015261464281866145b0565b90506146516060830185613857565b61465e6080830184613737565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006146a282613611565b91506146ad83613611565b9250826146bd576146bc614668565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614724602183613572565b915061472f826146c8565b604082019050919050565b6000602082019050818103600083015261475381614717565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614790601b83613572565b915061479b8261475a565b602082019050919050565b600060208201905081810360008301526147bf81614783565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205877b7c37e1e7bbf35b3a57db298806f9535593adc7db5b7edb74d2dcdf289ca64736f6c634300080f003300000000000000000000000020315695c0f5a38746d2bc1e2d1f30eefacd981b000000000000000000000000f63e4950ed59a14a4e84dc4bed45fc517fc1095a000000000000000000000000ab0b455a4942e9c1bba95a85846363a3788a3ca60000000000000000000000009cb7eac8f1c045d27af14a7cb3b00d20a00533ce

Deployed Bytecode

0x6080604052600436106101fc5760003560e01c80637d1db4a51161010d578063a9059cbb116100a0578063c492f0461161006f578063c492f0461461071a578063dd62ed3e14610743578063ea1644d514610780578063f18dba26146107a9578063f2fde38b146107d257610203565b8063a9059cbb1461064c578063bdd795ef14610689578063bfd79284146106c6578063c3c8cd801461070357610203565b80638f9a55c0116100dc5780638f9a55c0146105a457806395d89b41146105cf57806398a5c315146105fa578063a2a957bb1461062357610203565b80637d1db4a5146104e85780637f2feddc146105135780638da5cb5b146105505780638f70ccf71461057b57610203565b8063313ce567116101905780636d8aa8f81161015f5780636d8aa8f81461042b5780636fc3eaec1461045457806370a082311461046b578063715018a6146104a857806374010ece146104bf57610203565b8063313ce5671461038057806349bd5a5e146103ab5780635ee58efc146103d65780636b9990531461040257610203565b806318160ddd116101cc57806318160ddd146102c457806323b872dd146102ef5780632f9c45691461032c5780632fd689e31461035557610203565b8062b8cf2a1461020857806306fdde0314610231578063095ea7b31461025c5780631694505e1461029957610203565b3661020357005b600080fd5b34801561021457600080fd5b5061022f600480360381019061022a919061351e565b6107fb565b005b34801561023d57600080fd5b50610246610925565b60405161025391906135ef565b60405180910390f35b34801561026857600080fd5b50610283600480360381019061027e9190613647565b610962565b60405161029091906136a2565b60405180910390f35b3480156102a557600080fd5b506102ae610980565b6040516102bb919061371c565b60405180910390f35b3480156102d057600080fd5b506102d96109a6565b6040516102e69190613746565b60405180910390f35b3480156102fb57600080fd5b5061031660048036038101906103119190613761565b6109cc565b60405161032391906136a2565b60405180910390f35b34801561033857600080fd5b50610353600480360381019061034e91906137e0565b610aa5565b005b34801561036157600080fd5b5061036a610c27565b6040516103779190613746565b60405180910390f35b34801561038c57600080fd5b50610395610c2d565b6040516103a2919061383c565b60405180910390f35b3480156103b757600080fd5b506103c0610c36565b6040516103cd9190613866565b60405180910390f35b3480156103e257600080fd5b506103eb610c5c565b6040516103f9929190613881565b60405180910390f35b34801561040e57600080fd5b50610429600480360381019061042491906138aa565b610c6e565b005b34801561043757600080fd5b50610452600480360381019061044d91906138d7565b610d5e565b005b34801561046057600080fd5b50610469610e10565b005b34801561047757600080fd5b50610492600480360381019061048d91906138aa565b610f9f565b60405161049f9190613746565b60405180910390f35b3480156104b457600080fd5b506104bd610ff0565b005b3480156104cb57600080fd5b506104e660048036038101906104e19190613904565b611143565b005b3480156104f457600080fd5b506104fd6111e2565b60405161050a9190613746565b60405180910390f35b34801561051f57600080fd5b5061053a600480360381019061053591906138aa565b6111e8565b6040516105479190613746565b60405180910390f35b34801561055c57600080fd5b50610565611200565b6040516105729190613866565b60405180910390f35b34801561058757600080fd5b506105a2600480360381019061059d91906138d7565b611229565b005b3480156105b057600080fd5b506105b96112db565b6040516105c69190613746565b60405180910390f35b3480156105db57600080fd5b506105e46112e1565b6040516105f191906135ef565b60405180910390f35b34801561060657600080fd5b50610621600480360381019061061c9190613904565b61131e565b005b34801561062f57600080fd5b5061064a60048036038101906106459190613931565b6113bd565b005b34801561065857600080fd5b50610673600480360381019061066e9190613647565b611474565b60405161068091906136a2565b60405180910390f35b34801561069557600080fd5b506106b060048036038101906106ab91906138aa565b611492565b6040516106bd91906136a2565b60405180910390f35b3480156106d257600080fd5b506106ed60048036038101906106e891906138aa565b6114b2565b6040516106fa91906136a2565b60405180910390f35b34801561070f57600080fd5b506107186114d2565b005b34801561072657600080fd5b50610741600480360381019061073c91906139f3565b611669565b005b34801561074f57600080fd5b5061076a60048036038101906107659190613a53565b6117a3565b6040516107779190613746565b60405180910390f35b34801561078c57600080fd5b506107a760048036038101906107a29190613904565b61182a565b005b3480156107b557600080fd5b506107d060048036038101906107cb9190613a93565b6118c9565b005b3480156107de57600080fd5b506107f960048036038101906107f491906138aa565b611976565b005b610803611b37565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610890576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088790613b1f565b60405180910390fd5b60005b8151811015610921576001601060008484815181106108b5576108b4613b3f565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061091990613b9d565b915050610893565b5050565b60606040518060400160405280600981526020017f4272656e7420496e750000000000000000000000000000000000000000000000815250905090565b600061097661096f611b37565b8484611b3f565b6001905092915050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009600a6109b69190613d18565b6503a3529440006109c79190613d63565b905090565b60006109d9848484611d08565b610a9a846109e5611b37565b610a95856040518060600160405280602881526020016147c760289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a4b611b37565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126509092919063ffffffff16565b611b3f565b600190509392505050565b610aad611b37565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3190613b1f565b60405180910390fd5b801515601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc390613e09565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601b5481565b60006009905090565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c8060000154908060010154905082565b610c76611b37565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfa90613b1f565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610d66611b37565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dea90613b1f565b60405180910390fd5b80601860166101000a81548160ff02191690831515021790555050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e51611b37565b73ffffffffffffffffffffffffffffffffffffffff161480610ec75750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610eaf611b37565b73ffffffffffffffffffffffffffffffffffffffff16145b80610f265750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f0e611b37565b73ffffffffffffffffffffffffffffffffffffffff16145b80610f855750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f6d611b37565b73ffffffffffffffffffffffffffffffffffffffff16145b610f8e57600080fd5b6000479050610f9c816126b4565b50565b6000610fe9600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461290a565b9050919050565b610ff8611b37565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107c90613b1f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61114b611b37565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cf90613b1f565b60405180910390fd5b8060198190555050565b60195481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611231611b37565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b590613b1f565b60405180910390fd5b80601860146101000a81548160ff02191690831515021790555050565b601a5481565b60606040518060400160405280600481526020017f2442494e00000000000000000000000000000000000000000000000000000000815250905090565b611326611b37565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113aa90613b1f565b60405180910390fd5b80601b8190555050565b6113c5611b37565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611452576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144990613b1f565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b6000611488611481611b37565b8484611d08565b6001905092915050565b60126020528060005260406000206000915054906101000a900460ff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611513611b37565b73ffffffffffffffffffffffffffffffffffffffff1614806115895750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611571611b37565b73ffffffffffffffffffffffffffffffffffffffff16145b806115e85750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115d0611b37565b73ffffffffffffffffffffffffffffffffffffffff16145b806116475750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661162f611b37565b73ffffffffffffffffffffffffffffffffffffffff16145b61165057600080fd5b600061165b30610f9f565b905061166681612978565b50565b611671611b37565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f590613b1f565b60405180910390fd5b60005b8383905081101561179d57816005600086868581811061172457611723613b3f565b5b905060200201602081019061173991906138aa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061179590613b9d565b915050611701565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611832611b37565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b690613b1f565b60405180910390fd5b80601a8190555050565b6118d1611b37565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461195e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195590613b1f565b60405180910390fd5b81601c6000018190555080601c600101819055505050565b61197e611b37565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0290613b1f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7190613e9b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba590613f2d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1490613fbf565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611cfb9190613746565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6e90614051565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ddd906140e3565b60405180910390fd5b60008111611e29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2090614175565b60405180910390fd5b611e31611200565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611e9f5750611e6f611200565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611ef55750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f4b5750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561234f57601860149054906101000a900460ff16611ff157601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611ff0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe790614207565b60405180910390fd5b5b601954811115612036576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202d90614273565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120da5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612119576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211090614305565b60405180910390fd5b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146121c657601a548161217b84610f9f565b6121859190614325565b106121c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121bc906143ed565b60405180910390fd5b5b60006121d130610f9f565b90506000601b54821015905060195482106121ec5760195491505b8080156122065750601860159054906101000a900460ff16155b80156122605750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156122785750601860169054906101000a900460ff165b80156122ce5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123245750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561234c5761233282612978565b6000479050600081111561234a57612349476126b4565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123f65750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806124a95750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156124a85750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156124b7576000905061263e565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156125625750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561257a57600854600c81905550600954600d819055505b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156126255750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561263d57600a54600c81905550600b54600d819055505b5b61264a84848484612bf1565b50505050565b6000838311158290612698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268f91906135ef565b60405180910390fd5b50600083856126a7919061440d565b9050809150509392505050565b6001601860156101000a81548160ff0219169083151502179055506000819050600061270160646126f3601c6000015485612c1e90919063ffffffff16565b612c9890919063ffffffff16565b9050600061274360036127356064612727601c6001015488612c1e90919063ffffffff16565b612c9890919063ffffffff16565b612c9890919063ffffffff16565b9050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156127ad573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612816573d6000803e3d6000fd5b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561287f573d6000803e3d6000fd5b50601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156128e8573d6000803e3d6000fd5b505050506000601860156101000a81548160ff02191690831515021790555050565b6000600654821115612951576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612948906144b3565b60405180910390fd5b600061295b612ce2565b90506129708184612c9890919063ffffffff16565b915050919050565b6001601860156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156129b0576129af61337d565b5b6040519080825280602002602001820160405280156129de5781602001602082028036833780820191505090505b50905030816000815181106129f6576129f5613b3f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ac191906144e8565b81600181518110612ad557612ad4613b3f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612b3c30601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b3f565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612ba095949392919061460e565b600060405180830381600087803b158015612bba57600080fd5b505af1158015612bce573d6000803e3d6000fd5b50505050506000601860156101000a81548160ff02191690831515021790555050565b80612bff57612bfe612d0d565b5b612c0a848484612d4a565b80612c1857612c17612f15565b5b50505050565b6000808303612c305760009050612c92565b60008284612c3e9190613d63565b9050828482612c4d9190614697565b14612c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c849061473a565b60405180910390fd5b809150505b92915050565b6000612cda83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612f29565b905092915050565b6000806000612cef612f8c565b91509150612d068183612c9890919063ffffffff16565b9250505090565b6000600c54148015612d2157506000600d54145b612d4857600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612d5c8761302d565b955095509550955095509550612dba86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461309590919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e4f85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130df90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e9b8161313d565b612ea584836131fa565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612f029190613746565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008083118290612f70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f6791906135ef565b60405180910390fd5b5060008385612f7f9190614697565b9050809150509392505050565b6000806000600654905060006009600a612fa69190613d18565b6503a352944000612fb79190613d63565b9050612fec6009600a612fca9190613d18565b6503a352944000612fdb9190613d63565b600654612c9890919063ffffffff16565b821015613020576006546009600a6130049190613d18565b6503a3529440006130159190613d63565b935093505050613029565b81819350935050505b9091565b600080600080600080600080600061304a8a600c54600d54613234565b925092509250600061305a612ce2565b9050600080600061306d8e8787876132ca565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006130d783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612650565b905092915050565b60008082846130ee9190614325565b905083811015613133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161312a906147a6565b60405180910390fd5b8091505092915050565b6000613147612ce2565b9050600061315e8284612c1e90919063ffffffff16565b90506131b281600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130df90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61320f8260065461309590919063ffffffff16565b60068190555061322a816007546130df90919063ffffffff16565b6007819055505050565b6000806000806132606064613252888a612c1e90919063ffffffff16565b612c9890919063ffffffff16565b9050600061328a606461327c888b612c1e90919063ffffffff16565b612c9890919063ffffffff16565b905060006132b3826132a5858c61309590919063ffffffff16565b61309590919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806132e38589612c1e90919063ffffffff16565b905060006132fa8689612c1e90919063ffffffff16565b905060006133118789612c1e90919063ffffffff16565b9050600061333a8261332c858761309590919063ffffffff16565b61309590919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6133b58261336c565b810181811067ffffffffffffffff821117156133d4576133d361337d565b5b80604052505050565b60006133e7613353565b90506133f382826133ac565b919050565b600067ffffffffffffffff8211156134135761341261337d565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061345482613429565b9050919050565b61346481613449565b811461346f57600080fd5b50565b6000813590506134818161345b565b92915050565b600061349a613495846133f8565b6133dd565b905080838252602082019050602084028301858111156134bd576134bc613424565b5b835b818110156134e657806134d28882613472565b8452602084019350506020810190506134bf565b5050509392505050565b600082601f83011261350557613504613367565b5b8135613515848260208601613487565b91505092915050565b6000602082840312156135345761353361335d565b5b600082013567ffffffffffffffff81111561355257613551613362565b5b61355e848285016134f0565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156135a1578082015181840152602081019050613586565b838111156135b0576000848401525b50505050565b60006135c182613567565b6135cb8185613572565b93506135db818560208601613583565b6135e48161336c565b840191505092915050565b6000602082019050818103600083015261360981846135b6565b905092915050565b6000819050919050565b61362481613611565b811461362f57600080fd5b50565b6000813590506136418161361b565b92915050565b6000806040838503121561365e5761365d61335d565b5b600061366c85828601613472565b925050602061367d85828601613632565b9150509250929050565b60008115159050919050565b61369c81613687565b82525050565b60006020820190506136b76000830184613693565b92915050565b6000819050919050565b60006136e26136dd6136d884613429565b6136bd565b613429565b9050919050565b60006136f4826136c7565b9050919050565b6000613706826136e9565b9050919050565b613716816136fb565b82525050565b6000602082019050613731600083018461370d565b92915050565b61374081613611565b82525050565b600060208201905061375b6000830184613737565b92915050565b60008060006060848603121561377a5761377961335d565b5b600061378886828701613472565b935050602061379986828701613472565b92505060406137aa86828701613632565b9150509250925092565b6137bd81613687565b81146137c857600080fd5b50565b6000813590506137da816137b4565b92915050565b600080604083850312156137f7576137f661335d565b5b600061380585828601613472565b9250506020613816858286016137cb565b9150509250929050565b600060ff82169050919050565b61383681613820565b82525050565b6000602082019050613851600083018461382d565b92915050565b61386081613449565b82525050565b600060208201905061387b6000830184613857565b92915050565b60006040820190506138966000830185613737565b6138a36020830184613737565b9392505050565b6000602082840312156138c0576138bf61335d565b5b60006138ce84828501613472565b91505092915050565b6000602082840312156138ed576138ec61335d565b5b60006138fb848285016137cb565b91505092915050565b60006020828403121561391a5761391961335d565b5b600061392884828501613632565b91505092915050565b6000806000806080858703121561394b5761394a61335d565b5b600061395987828801613632565b945050602061396a87828801613632565b935050604061397b87828801613632565b925050606061398c87828801613632565b91505092959194509250565b600080fd5b60008083601f8401126139b3576139b2613367565b5b8235905067ffffffffffffffff8111156139d0576139cf613998565b5b6020830191508360208202830111156139ec576139eb613424565b5b9250929050565b600080600060408486031215613a0c57613a0b61335d565b5b600084013567ffffffffffffffff811115613a2a57613a29613362565b5b613a368682870161399d565b93509350506020613a49868287016137cb565b9150509250925092565b60008060408385031215613a6a57613a6961335d565b5b6000613a7885828601613472565b9250506020613a8985828601613472565b9150509250929050565b60008060408385031215613aaa57613aa961335d565b5b6000613ab885828601613632565b9250506020613ac985828601613632565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613b09602083613572565b9150613b1482613ad3565b602082019050919050565b60006020820190508181036000830152613b3881613afc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613ba882613611565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613bda57613bd9613b6e565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b6001851115613c3c57808604811115613c1857613c17613b6e565b5b6001851615613c275780820291505b8081029050613c3585613be5565b9450613bfc565b94509492505050565b600082613c555760019050613d11565b81613c635760009050613d11565b8160018114613c795760028114613c8357613cb2565b6001915050613d11565b60ff841115613c9557613c94613b6e565b5b8360020a915084821115613cac57613cab613b6e565b5b50613d11565b5060208310610133831016604e8410600b8410161715613ce75782820a905083811115613ce257613ce1613b6e565b5b613d11565b613cf48484846001613bf2565b92509050818404811115613d0b57613d0a613b6e565b5b81810290505b9392505050565b6000613d2382613611565b9150613d2e83613820565b9250613d5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613c45565b905092915050565b6000613d6e82613611565b9150613d7983613611565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613db257613db1613b6e565b5b828202905092915050565b7f544f4b454e3a20416c726561647920656e61626c65642e000000000000000000600082015250565b6000613df3601783613572565b9150613dfe82613dbd565b602082019050919050565b60006020820190508181036000830152613e2281613de6565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613e85602683613572565b9150613e9082613e29565b604082019050919050565b60006020820190508181036000830152613eb481613e78565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613f17602483613572565b9150613f2282613ebb565b604082019050919050565b60006020820190508181036000830152613f4681613f0a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fa9602283613572565b9150613fb482613f4d565b604082019050919050565b60006020820190508181036000830152613fd881613f9c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061403b602583613572565b915061404682613fdf565b604082019050919050565b6000602082019050818103600083015261406a8161402e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006140cd602383613572565b91506140d882614071565b604082019050919050565b600060208201905081810360008301526140fc816140c0565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061415f602983613572565b915061416a82614103565b604082019050919050565b6000602082019050818103600083015261418e81614152565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b60006141f1603f83613572565b91506141fc82614195565b604082019050919050565b60006020820190508181036000830152614220816141e4565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b600061425d601c83613572565b915061426882614227565b602082019050919050565b6000602082019050818103600083015261428c81614250565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b60006142ef602383613572565b91506142fa82614293565b604082019050919050565b6000602082019050818103600083015261431e816142e2565b9050919050565b600061433082613611565b915061433b83613611565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156143705761436f613b6e565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006143d7602383613572565b91506143e28261437b565b604082019050919050565b60006020820190508181036000830152614406816143ca565b9050919050565b600061441882613611565b915061442383613611565b92508282101561443657614435613b6e565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061449d602a83613572565b91506144a882614441565b604082019050919050565b600060208201905081810360008301526144cc81614490565b9050919050565b6000815190506144e28161345b565b92915050565b6000602082840312156144fe576144fd61335d565b5b600061450c848285016144d3565b91505092915050565b6000819050919050565b600061453a61453561453084614515565b6136bd565b613611565b9050919050565b61454a8161451f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61458581613449565b82525050565b6000614597838361457c565b60208301905092915050565b6000602082019050919050565b60006145bb82614550565b6145c5818561455b565b93506145d08361456c565b8060005b838110156146015781516145e8888261458b565b97506145f3836145a3565b9250506001810190506145d4565b5085935050505092915050565b600060a0820190506146236000830188613737565b6146306020830187614541565b818103604083015261464281866145b0565b90506146516060830185613857565b61465e6080830184613737565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006146a282613611565b91506146ad83613611565b9250826146bd576146bc614668565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614724602183613572565b915061472f826146c8565b604082019050919050565b6000602082019050818103600083015261475381614717565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614790601b83613572565b915061479b8261475a565b602082019050919050565b600060208201905081810360008301526147bf81614783565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205877b7c37e1e7bbf35b3a57db298806f9535593adc7db5b7edb74d2dcdf289ca64736f6c634300080f0033

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

00000000000000000000000020315695c0f5a38746d2bc1e2d1f30eefacd981b000000000000000000000000f63e4950ed59a14a4e84dc4bed45fc517fc1095a000000000000000000000000ab0b455a4942e9c1bba95a85846363a3788a3ca60000000000000000000000009cb7eac8f1c045d27af14a7cb3b00d20a00533ce

-----Decoded View---------------
Arg [0] : marketingAddr (address): 0x20315695c0F5a38746D2bC1e2D1F30eefaCd981b
Arg [1] : devFeeAddr1 (address): 0xf63E4950Ed59A14A4E84Dc4bED45fC517fc1095a
Arg [2] : devFeeAddr2 (address): 0xAb0B455A4942E9C1Bba95A85846363a3788a3CA6
Arg [3] : devFeeAddr3 (address): 0x9cB7EAC8F1c045d27af14a7Cb3B00D20A00533cE

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 00000000000000000000000020315695c0f5a38746d2bc1e2d1f30eefacd981b
Arg [1] : 000000000000000000000000f63e4950ed59a14a4e84dc4bed45fc517fc1095a
Arg [2] : 000000000000000000000000ab0b455a4942e9c1bba95a85846363a3788a3ca6
Arg [3] : 0000000000000000000000009cb7eac8f1c045d27af14a7cb3b00d20a00533ce


Deployed Bytecode Sourcemap

4067:15041:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13889:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7139:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8064:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5427:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7416:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8265:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18909:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5747:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7325:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5475:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5909:32;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;14066:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18289:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13584:297;;;;;;;;;;;;;:::i;:::-;;7519:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1554:148;;;;;;;;;;;;;:::i;:::-;;18429:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5617:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5170:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1340:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13169:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5681:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7230:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18098:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17755:291;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7665:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5220:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5126:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13278:298;;;;;;;;;;;;;:::i;:::-;;18668:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7872:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18545:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15074:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1710:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13889:169;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13965:9:::1;13960:91;13984:5;:12;13980:1;:16;13960:91;;;14035:4;14018;:14;14023:5;14029:1;14023:8;;;;;;;;:::i;:::-;;;;;;;;14018:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13998:3;;;;;:::i;:::-;;;;13960:91;;;;13889:169:::0;:::o;7139:83::-;7176:13;7209:5;;;;;;;;;;;;;;;;;7202:12;;7139:83;:::o;8064:193::-;8166:4;8188:39;8197:12;:10;:12::i;:::-;8211:7;8220:6;8188:8;:39::i;:::-;8245:4;8238:11;;8064:193;;;;:::o;5427:41::-;;;;;;;;;;;;;:::o;7416:95::-;7469:7;4289:1;4631:2;:13;;;;:::i;:::-;4615;:29;;;;:::i;:::-;7489:14;;7416:95;:::o;8265:446::-;8397:4;8414:36;8424:6;8432:9;8443:6;8414:9;:36::i;:::-;8461:220;8484:6;8505:12;:10;:12::i;:::-;8532:138;8588:6;8532:138;;;;;;;;;;;;;;;;;:11;:19;8544:6;8532:19;;;;;;;;;;;;;;;:33;8552:12;:10;:12::i;:::-;8532:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8461:8;:220::i;:::-;8699:4;8692:11;;8265:446;;;;;:::o;18909:196::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19023:7:::1;19001:29;;:9;:18;19011:7;19001:18;;;;;;;;;;;;;;;;;;;;;;;;;:29;;::::0;18993:65:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19090:7;19069:9;:18;19079:7;19069:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;18909:196:::0;;:::o;5747:64::-;;;;:::o;7325:83::-;7366:5;4289:1;7384:16;;7325:83;:::o;5475:28::-;;;;;;;;;;;;;:::o;5909:32::-;;;;;;;;;;;;;;:::o;14066:92::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14145:5:::1;14130:4;:12;14135:6;14130:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;14066:92:::0;:::o;18289:101::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18370:12:::1;18356:11;;:26;;;;;;;;;;;;;;;;;;18289:101:::0;:::o;13584:297::-;13650:14;;;;;;;;;;;13634:30;;:12;:10;:12::i;:::-;:30;;;:66;;;;13684:16;;;;;;;;;;;13668:32;;:12;:10;:12::i;:::-;:32;;;13634:66;:100;;;;13720:14;;;;;;;;;;;13704:30;;:12;:10;:12::i;:::-;:30;;;13634:100;:134;;;;13754:14;;;;;;;;;;;13738:30;;:12;:10;:12::i;:::-;:30;;;13634:134;13626:143;;;;;;13780:26;13809:21;13780:50;;13841:32;13854:18;13841:12;:32::i;:::-;13615:266;13584:297::o;7519:138::-;7585:7;7612:37;7632:7;:16;7640:7;7632:16;;;;;;;;;;;;;;;;7612:19;:37::i;:::-;7605:44;;7519:138;;;:::o;1554:148::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1661:1:::1;1624:40;;1645:6;::::0;::::1;;;;;;;;1624:40;;;;;;;;;;;;1692:1;1675:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1554:148::o:0;18429:108::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18518:11:::1;18503:12;:26;;;;18429:108:::0;:::o;5617:57::-;;;;:::o;5170:43::-;;;;;;;;;;;;;;;;;:::o;1340:79::-;1378:7;1405:6;;;;;;;;;;;1398:13;;1340:79;:::o;13169:101::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13250:12:::1;13236:11;;:26;;;;;;;;;;;;;;;;;;13169:101:::0;:::o;5681:59::-;;;;:::o;7230:87::-;7269:13;7302:7;;;;;;;;;;;;;;;;;7295:14;;7230:87;:::o;18098:139::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18211:18:::1;18189:19;:40;;;;18098:139:::0;:::o;17755:291::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17906:13:::1;17889:14;:30;;;;17948:14;17930:15;:32;;;;17988:11;17973:12;:26;;;;18026:12;18010:13;:28;;;;17755:291:::0;;;;:::o;7665:199::-;7770:4;7792:42;7802:12;:10;:12::i;:::-;7816:9;7827:6;7792:9;:42::i;:::-;7852:4;7845:11;;7665:199;;;;:::o;5220:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;5126:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;13278:298::-;13344:14;;;;;;;;;;;13328:30;;:12;:10;:12::i;:::-;:30;;;:66;;;;13378:16;;;;;;;;;;;13362:32;;:12;:10;:12::i;:::-;:32;;;13328:66;:100;;;;13414:14;;;;;;;;;;;13398:30;;:12;:10;:12::i;:::-;:30;;;13328:100;:134;;;;13448:14;;;;;;;;;;;13432:30;;:12;:10;:12::i;:::-;:30;;;13328:134;13320:143;;;;;;13474:23;13500:24;13518:4;13500:9;:24::i;:::-;13474:50;;13535:33;13552:15;13535:16;:33::i;:::-;13309:267;13278:298::o;18668:234::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18785:9:::1;18781:114;18804:8;;:15;;18800:1;:19;18781:114;;;18875:8;18841:18;:31;18860:8;;18869:1;18860:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18841:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;18821:3;;;;;:::i;:::-;;;;18781:114;;;;18668:234:::0;;;:::o;7872:184::-;7989:7;8021:11;:18;8033:5;8021:18;;;;;;;;;;;;;;;:27;8040:7;8021:27;;;;;;;;;;;;;;;;8014:34;;7872:184;;;;:::o;18545:115::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18639:13:::1;18622:14;:30;;;;18545:115:::0;:::o;15074:177::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15195:9:::1;15170:12;:22;;:34;;;;15237:6;15215:12;:19;;:28;;;;15074:177:::0;;:::o;1710:244::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1819:1:::1;1799:22;;:8;:22;;::::0;1791:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1909:8;1880:38;;1901:6;::::0;::::1;;;;;;;;1880:38;;;;;;;;;;;;1938:8;1929:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1710:244:::0;:::o;99:98::-;152:7;179:10;172:17;;99:98;:::o;9402:369::-;9546:1;9529:19;;:5;:19;;;9521:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9627:1;9608:21;;:7;:21;;;9600:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9709:6;9679:11;:18;9691:5;9679:18;;;;;;;;;;;;;;;:27;9698:7;9679:27;;;;;;;;;;;;;;;:36;;;;9747:7;9731:32;;9740:5;9731:32;;;9756:6;9731:32;;;;;;:::i;:::-;;;;;;;;9402:369;;;:::o;9779:2368::-;9917:1;9901:18;;:4;:18;;;9893:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9994:1;9980:16;;:2;:16;;;9972:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10064:1;10055:6;:10;10047:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10136:7;:5;:7::i;:::-;10128:15;;:4;:15;;;;:32;;;;;10153:7;:5;:7::i;:::-;10147:13;;:2;:13;;;;10128:32;:52;;;;;10165:9;:15;10175:4;10165:15;;;;;;;;;;;;;;;;;;;;;;;;;10164:16;10128:52;:70;;;;;10185:9;:13;10195:2;10185:13;;;;;;;;;;;;;;;;;;;;;;;;;10184:14;10128:70;10124:1297;;;10255:11;;;;;;;;;;;10250:144;;10295:9;:15;10305:4;10295:15;;;;;;;;;;;;;;;;;;;;;;;;;10287:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10250:144;10428:12;;10418:6;:22;;10410:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10497:4;:10;10502:4;10497:10;;;;;;;;;;;;;;;;;;;;;;;;;10496:11;:24;;;;;10512:4;:8;10517:2;10512:8;;;;;;;;;;;;;;;;;;;;;;;;;10511:9;10496:24;10488:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10586:13;;;;;;;;;;;10580:19;;:2;:19;;;10577:146;;10653:14;;10644:6;10628:13;10638:2;10628:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10620:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10577:146;10739:28;10770:24;10788:4;10770:9;:24::i;:::-;10739:55;;10809:12;10848:19;;10824:20;:43;;10809:58;;10911:12;;10887:20;:36;10884:124;;10980:12;;10957:35;;10884:124;11028:7;:18;;;;;11040:6;;;;;;;;;;;11039:7;11028:18;:43;;;;;11058:13;;;;;;;;;;;11050:21;;:4;:21;;;;11028:43;:58;;;;;11075:11;;;;;;;;;;;11028:58;:87;;;;;11091:18;:24;11110:4;11091:24;;;;;;;;;;;;;;;;;;;;;;;;;11090:25;11028:87;:114;;;;;11120:18;:22;11139:2;11120:22;;;;;;;;;;;;;;;;;;;;;;;;;11119:23;11028:114;11024:386;;;11163:38;11180:20;11163:16;:38::i;:::-;11220:26;11249:21;11220:50;;11314:1;11293:18;:22;11289:106;;;11340:35;11353:21;11340:12;:35::i;:::-;11289:106;11144:266;11024:386;10200:1221;;10124:1297;11433:12;11448:4;11433:19;;11497:18;:24;11516:4;11497:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11525:18;:22;11544:2;11525:22;;;;;;;;;;;;;;;;;;;;;;;;;11497:50;11496:102;;;;11561:13;;;;;;;;;;;11553:21;;:4;:21;;;;:44;;;;;11584:13;;;;;;;;;;;11578:19;;:2;:19;;;;11553:44;11496:102;11492:594;;;11625:5;11615:15;;11492:594;;;11708:13;;;;;;;;;;;11700:21;;:4;:21;;;:55;;;;;11739:15;;;;;;;;;;;11725:30;;:2;:30;;;;11700:55;11697:162;;;11788:14;;11776:9;:26;;;;11831:12;;11821:7;:22;;;;11697:162;11918:13;;;;;;;;;;;11912:19;;:2;:19;;;:55;;;;;11951:15;;;;;;;;;;;11935:32;;:4;:32;;;;11912:55;11908:165;;;12000:15;;11988:9;:27;;;;12044:13;;12034:7;:23;;;;11908:165;11492:594;12098:41;12113:4;12119:2;12123:6;12131:7;12098:14;:41::i;:::-;9882:2265;9779:2368;;;:::o;2318:224::-;2438:7;2471:1;2466;:6;;2474:12;2458:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2498:9;2514:1;2510;:5;;;;:::i;:::-;2498:17;;2533:1;2526:8;;;2318:224;;;;;:::o;12646:515::-;6044:4;6035:6;;:13;;;;;;;;;;;;;;;;;;12715:23:::1;12741:6;12715:32;;12758:22;12783:52;12831:3;12783:43;12803:12;:22;;;12783:15;:19;;:43;;;;:::i;:::-;:47;;:52;;;;:::i;:::-;12758:77;;12846:19;12868:56;12922:1;12868:49;12913:3;12868:40;12888:12;:19;;;12868:15;:19;;:40;;;;:::i;:::-;:44;;:49;;;;:::i;:::-;:53;;:56;;;;:::i;:::-;12846:78;;12943:16;;;;;;;;;;;12935:34;;:50;12970:14;12935:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13004:14;;;;;;;;;;;12996:32;;:45;13029:11;12996:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13060:14;;;;;;;;;;;13052:32;;:45;13085:11;13052:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13116:14;;;;;;;;;;;13108:32;;:45;13141:11;13108:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12704:457;;;6080:5:::0;6071:6;;:14;;;;;;;;;;;;;;;;;;12646:515;:::o;8719:323::-;8814:7;8872;;8861;:18;;8839:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8960:19;8982:10;:8;:10::i;:::-;8960:32;;9010:24;9022:11;9010:7;:11;;:24;;;;:::i;:::-;9003:31;;;8719:323;;;:::o;12155:483::-;6044:4;6035:6;;:13;;;;;;;;;;;;;;;;;;12233:21:::1;12271:1;12257:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12233:40;;12302:4;12284;12289:1;12284:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12328:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12318:4;12323:1;12318:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12361:62;12378:4;12393:15;;;;;;;;;;;12411:11;12361:8;:62::i;:::-;12434:15;;;;;;;;;;;:66;;;12515:11;12541:1;12557:4;12584;12604:15;12434:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12222:416;6080:5:::0;6071:6;;:14;;;;;;;;;;;;;;;;;;12155:483;:::o;14166:282::-;14322:7;14317:28;;14331:14;:12;:14::i;:::-;14317:28;14356:44;14374:6;14382:9;14393:6;14356:17;:44::i;:::-;14416:7;14411:29;;14425:15;:13;:15::i;:::-;14411:29;14166:282;;;;:::o;2550:246::-;2608:7;2637:1;2632;:6;2628:47;;2662:1;2655:8;;;;2628:47;2685:9;2701:1;2697;:5;;;;:::i;:::-;2685:17;;2730:1;2725;2721;:5;;;;:::i;:::-;:10;2713:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2787:1;2780:8;;;2550:246;;;;;:::o;2804:132::-;2862:7;2889:39;2893:1;2896;2889:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2882:46;;2804:132;;;;:::o;17318:164::-;17360:7;17381:15;17398;17417:19;:17;:19::i;:::-;17380:56;;;;17454:20;17466:7;17454;:11;;:20;;;;:::i;:::-;17447:27;;;;17318:164;:::o;9050:219::-;9110:1;9097:9;;:14;:30;;;;;9126:1;9115:7;;:12;9097:30;9129:7;9093:43;9168:9;;9148:17;:29;;;;9206:7;;9188:15;:25;;;;9238:1;9226:9;:13;;;;9260:1;9250:7;:11;;;;9050:219;:::o;14456:610::-;14603:15;14633:23;14671:12;14698:23;14736:12;14763:13;14790:19;14801:7;14790:10;:19::i;:::-;14588:221;;;;;;;;;;;;14838:28;14858:7;14838;:15;14846:6;14838:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14820:7;:15;14828:6;14820:15;;;;;;;;;;;;;;;:46;;;;14898:39;14921:15;14898:7;:18;14906:9;14898:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14877:7;:18;14885:9;14877:18;;;;;;;;;;;;;;;:60;;;;14948:16;14958:5;14948:9;:16::i;:::-;14975:23;14987:4;14993;14975:11;:23::i;:::-;15031:9;15014:44;;15023:6;15014:44;;;15042:15;15014:44;;;;;;:::i;:::-;;;;;;;;14577:489;;;;;;14456:610;;;:::o;9277:117::-;9333:17;;9321:9;:29;;;;9371:15;;9361:7;:25;;;;9277:117::o;2944:223::-;3064:7;3096:1;3092;:5;3099:12;3084:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3123:9;3139:1;3135;:5;;;;:::i;:::-;3123:17;;3158:1;3151:8;;;2944:223;;;;;:::o;17490:257::-;17541:7;17550;17570:15;17588:7;;17570:25;;17606:15;4289:1;4631:2;:13;;;;:::i;:::-;4615;:29;;;;:::i;:::-;17606:25;;17656:20;4289:1;4631:2;:13;;;;:::i;:::-;4615;:29;;;;:::i;:::-;17656:7;;:11;;:20;;;;:::i;:::-;17646:7;:30;17642:61;;;17686:7;;4289:1;4631:2;:13;;;;:::i;:::-;4615;:29;;;;:::i;:::-;17678:25;;;;;;;;17642:61;17722:7;17731;17714:25;;;;;;17490:257;;;:::o;15676:615::-;15776:7;15798;15820;15842;15864;15886;15922:23;15947:12;15961:13;15991:40;16003:7;16012:9;;16023:7;;15991:11;:40::i;:::-;15921:110;;;;;;16042:19;16064:10;:8;:10::i;:::-;16042:32;;16086:15;16103:23;16128:12;16157:46;16169:7;16178:4;16184:5;16191:11;16157;:46::i;:::-;16085:118;;;;;;16222:7;16231:15;16248:4;16254:15;16271:4;16277:5;16214:69;;;;;;;;;;;;;;;;;;;15676:615;;;;;;;:::o;2174:136::-;2232:7;2259:43;2263:1;2266;2259:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2252:50;;2174:136;;;;:::o;1987:179::-;2045:7;2065:9;2081:1;2077;:5;;;;:::i;:::-;2065:17;;2106:1;2101;:6;;2093:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2157:1;2150:8;;;1987:179;;;;:::o;15259:211::-;15312:19;15334:10;:8;:10::i;:::-;15312:32;;15355:13;15371:22;15381:11;15371:5;:9;;:22;;;;:::i;:::-;15355:38;;15429:33;15456:5;15429:7;:22;15445:4;15429:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15404:7;:22;15420:4;15404:22;;;;;;;;;;;;;;;:58;;;;15301:169;;15259:211;:::o;15478:147::-;15556:17;15568:4;15556:7;;:11;;:17;;;;:::i;:::-;15546:7;:27;;;;15597:20;15612:4;15597:10;;:14;;:20;;;;:::i;:::-;15584:10;:33;;;;15478:147;;:::o;16299:469::-;16468:7;16490;16512;16547:12;16562:30;16588:3;16562:21;16574:8;16562:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;16547:45;;16603:13;16619:28;16643:3;16619:19;16631:6;16619:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16603:44;;16658:23;16684:28;16706:5;16684:17;16696:4;16684:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16658:54;;16731:15;16748:4;16754:5;16723:37;;;;;;;;;16299:469;;;;;;;:::o;16776:534::-;16970:7;16992;17014;17049:15;17067:24;17079:11;17067:7;:11;;:24;;;;:::i;:::-;17049:42;;17102:12;17117:21;17126:11;17117:4;:8;;:21;;;;:::i;:::-;17102:36;;17149:13;17165:22;17175:11;17165:5;:9;;:22;;;;:::i;:::-;17149:38;;17198:23;17224:28;17246:5;17224:17;17236:4;17224:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17198:54;;17271:7;17280:15;17297:4;17263:39;;;;;;;;;;16776:534;;;;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:307::-;4139:1;4149:113;4163:6;4160:1;4157:13;4149:113;;;4248:1;4243:3;4239:11;4233:18;4229:1;4224:3;4220:11;4213:39;4185:2;4182:1;4178:10;4173:15;;4149:113;;;4280:6;4277:1;4274:13;4271:101;;;4360:1;4351:6;4346:3;4342:16;4335:27;4271:101;4120:258;4071:307;;;:::o;4384:364::-;4472:3;4500:39;4533:5;4500:39;:::i;:::-;4555:71;4619:6;4614:3;4555:71;:::i;:::-;4548:78;;4635:52;4680:6;4675:3;4668:4;4661:5;4657:16;4635:52;:::i;:::-;4712:29;4734:6;4712:29;:::i;:::-;4707:3;4703:39;4696:46;;4476:272;4384:364;;;;:::o;4754:313::-;4867:4;4905:2;4894:9;4890:18;4882:26;;4954:9;4948:4;4944:20;4940:1;4929:9;4925:17;4918:47;4982:78;5055:4;5046:6;4982:78;:::i;:::-;4974:86;;4754:313;;;;:::o;5073:77::-;5110:7;5139:5;5128:16;;5073:77;;;:::o;5156:122::-;5229:24;5247:5;5229:24;:::i;:::-;5222:5;5219:35;5209:63;;5268:1;5265;5258:12;5209:63;5156:122;:::o;5284:139::-;5330:5;5368:6;5355:20;5346:29;;5384:33;5411:5;5384:33;:::i;:::-;5284:139;;;;:::o;5429:474::-;5497:6;5505;5554:2;5542:9;5533:7;5529:23;5525:32;5522:119;;;5560:79;;:::i;:::-;5522:119;5680:1;5705:53;5750:7;5741:6;5730:9;5726:22;5705:53;:::i;:::-;5695:63;;5651:117;5807:2;5833:53;5878:7;5869:6;5858:9;5854:22;5833:53;:::i;:::-;5823:63;;5778:118;5429:474;;;;;:::o;5909:90::-;5943:7;5986:5;5979:13;5972:21;5961:32;;5909:90;;;:::o;6005:109::-;6086:21;6101:5;6086:21;:::i;:::-;6081:3;6074:34;6005:109;;:::o;6120:210::-;6207:4;6245:2;6234:9;6230:18;6222:26;;6258:65;6320:1;6309:9;6305:17;6296:6;6258:65;:::i;:::-;6120:210;;;;:::o;6336:60::-;6364:3;6385:5;6378:12;;6336:60;;;:::o;6402:142::-;6452:9;6485:53;6503:34;6512:24;6530:5;6512:24;:::i;:::-;6503:34;:::i;:::-;6485:53;:::i;:::-;6472:66;;6402:142;;;:::o;6550:126::-;6600:9;6633:37;6664:5;6633:37;:::i;:::-;6620:50;;6550:126;;;:::o;6682:152::-;6758:9;6791:37;6822:5;6791:37;:::i;:::-;6778:50;;6682:152;;;:::o;6840:183::-;6953:63;7010:5;6953:63;:::i;:::-;6948:3;6941:76;6840:183;;:::o;7029:274::-;7148:4;7186:2;7175:9;7171:18;7163:26;;7199:97;7293:1;7282:9;7278:17;7269:6;7199:97;:::i;:::-;7029:274;;;;:::o;7309:118::-;7396:24;7414:5;7396:24;:::i;:::-;7391:3;7384:37;7309:118;;:::o;7433:222::-;7526:4;7564:2;7553:9;7549:18;7541:26;;7577:71;7645:1;7634:9;7630:17;7621:6;7577:71;:::i;:::-;7433:222;;;;:::o;7661:619::-;7738:6;7746;7754;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;8056:2;8082:53;8127:7;8118:6;8107:9;8103:22;8082:53;:::i;:::-;8072:63;;8027:118;8184:2;8210:53;8255:7;8246:6;8235:9;8231:22;8210:53;:::i;:::-;8200:63;;8155:118;7661:619;;;;;:::o;8286:116::-;8356:21;8371:5;8356:21;:::i;:::-;8349:5;8346:32;8336:60;;8392:1;8389;8382:12;8336:60;8286:116;:::o;8408:133::-;8451:5;8489:6;8476:20;8467:29;;8505:30;8529:5;8505:30;:::i;:::-;8408:133;;;;:::o;8547:468::-;8612:6;8620;8669:2;8657:9;8648:7;8644:23;8640:32;8637:119;;;8675:79;;:::i;:::-;8637:119;8795:1;8820:53;8865:7;8856:6;8845:9;8841:22;8820:53;:::i;:::-;8810:63;;8766:117;8922:2;8948:50;8990:7;8981:6;8970:9;8966:22;8948:50;:::i;:::-;8938:60;;8893:115;8547:468;;;;;:::o;9021:86::-;9056:7;9096:4;9089:5;9085:16;9074:27;;9021:86;;;:::o;9113:112::-;9196:22;9212:5;9196:22;:::i;:::-;9191:3;9184:35;9113:112;;:::o;9231:214::-;9320:4;9358:2;9347:9;9343:18;9335:26;;9371:67;9435:1;9424:9;9420:17;9411:6;9371:67;:::i;:::-;9231:214;;;;:::o;9451:118::-;9538:24;9556:5;9538:24;:::i;:::-;9533:3;9526:37;9451:118;;:::o;9575:222::-;9668:4;9706:2;9695:9;9691:18;9683:26;;9719:71;9787:1;9776:9;9772:17;9763:6;9719:71;:::i;:::-;9575:222;;;;:::o;9803:332::-;9924:4;9962:2;9951:9;9947:18;9939:26;;9975:71;10043:1;10032:9;10028:17;10019:6;9975:71;:::i;:::-;10056:72;10124:2;10113:9;10109:18;10100:6;10056:72;:::i;:::-;9803:332;;;;;:::o;10141:329::-;10200:6;10249:2;10237:9;10228:7;10224:23;10220:32;10217:119;;;10255:79;;:::i;:::-;10217:119;10375:1;10400:53;10445:7;10436:6;10425:9;10421:22;10400:53;:::i;:::-;10390:63;;10346:117;10141:329;;;;:::o;10476:323::-;10532:6;10581:2;10569:9;10560:7;10556:23;10552:32;10549:119;;;10587:79;;:::i;:::-;10549:119;10707:1;10732:50;10774:7;10765:6;10754:9;10750:22;10732:50;:::i;:::-;10722:60;;10678:114;10476:323;;;;:::o;10805:329::-;10864:6;10913:2;10901:9;10892:7;10888:23;10884:32;10881:119;;;10919:79;;:::i;:::-;10881:119;11039:1;11064:53;11109:7;11100:6;11089:9;11085:22;11064:53;:::i;:::-;11054:63;;11010:117;10805:329;;;;:::o;11140:765::-;11226:6;11234;11242;11250;11299:3;11287:9;11278:7;11274:23;11270:33;11267:120;;;11306:79;;:::i;:::-;11267:120;11426:1;11451:53;11496:7;11487:6;11476:9;11472:22;11451:53;:::i;:::-;11441:63;;11397:117;11553:2;11579:53;11624:7;11615:6;11604:9;11600:22;11579:53;:::i;:::-;11569:63;;11524:118;11681:2;11707:53;11752:7;11743:6;11732:9;11728:22;11707:53;:::i;:::-;11697:63;;11652:118;11809:2;11835:53;11880:7;11871:6;11860:9;11856:22;11835:53;:::i;:::-;11825:63;;11780:118;11140:765;;;;;;;:::o;11911:117::-;12020:1;12017;12010:12;12051:568;12124:8;12134:6;12184:3;12177:4;12169:6;12165:17;12161:27;12151:122;;12192:79;;:::i;:::-;12151:122;12305:6;12292:20;12282:30;;12335:18;12327:6;12324:30;12321:117;;;12357:79;;:::i;:::-;12321:117;12471:4;12463:6;12459:17;12447:29;;12525:3;12517:4;12509:6;12505:17;12495:8;12491:32;12488:41;12485:128;;;12532:79;;:::i;:::-;12485:128;12051:568;;;;;:::o;12625:698::-;12717:6;12725;12733;12782:2;12770:9;12761:7;12757:23;12753:32;12750:119;;;12788:79;;:::i;:::-;12750:119;12936:1;12925:9;12921:17;12908:31;12966:18;12958:6;12955:30;12952:117;;;12988:79;;:::i;:::-;12952:117;13101:80;13173:7;13164:6;13153:9;13149:22;13101:80;:::i;:::-;13083:98;;;;12879:312;13230:2;13256:50;13298:7;13289:6;13278:9;13274:22;13256:50;:::i;:::-;13246:60;;13201:115;12625:698;;;;;:::o;13329:474::-;13397:6;13405;13454:2;13442:9;13433:7;13429:23;13425:32;13422:119;;;13460:79;;:::i;:::-;13422:119;13580:1;13605:53;13650:7;13641:6;13630:9;13626:22;13605:53;:::i;:::-;13595:63;;13551:117;13707:2;13733:53;13778:7;13769:6;13758:9;13754:22;13733:53;:::i;:::-;13723:63;;13678:118;13329:474;;;;;:::o;13809:::-;13877:6;13885;13934:2;13922:9;13913:7;13909:23;13905:32;13902:119;;;13940:79;;:::i;:::-;13902:119;14060:1;14085:53;14130:7;14121:6;14110:9;14106:22;14085:53;:::i;:::-;14075:63;;14031:117;14187:2;14213:53;14258:7;14249:6;14238:9;14234:22;14213:53;:::i;:::-;14203:63;;14158:118;13809:474;;;;;:::o;14289:182::-;14429:34;14425:1;14417:6;14413:14;14406:58;14289:182;:::o;14477:366::-;14619:3;14640:67;14704:2;14699:3;14640:67;:::i;:::-;14633:74;;14716:93;14805:3;14716:93;:::i;:::-;14834:2;14829:3;14825:12;14818:19;;14477:366;;;:::o;14849:419::-;15015:4;15053:2;15042:9;15038:18;15030:26;;15102:9;15096:4;15092:20;15088:1;15077:9;15073:17;15066:47;15130:131;15256:4;15130:131;:::i;:::-;15122:139;;14849:419;;;:::o;15274:180::-;15322:77;15319:1;15312:88;15419:4;15416:1;15409:15;15443:4;15440:1;15433:15;15460:180;15508:77;15505:1;15498:88;15605:4;15602:1;15595:15;15629:4;15626:1;15619:15;15646:233;15685:3;15708:24;15726:5;15708:24;:::i;:::-;15699:33;;15754:66;15747:5;15744:77;15741:103;;15824:18;;:::i;:::-;15741:103;15871:1;15864:5;15860:13;15853:20;;15646:233;;;:::o;15885:102::-;15927:8;15974:5;15971:1;15967:13;15946:34;;15885:102;;;:::o;15993:848::-;16054:5;16061:4;16085:6;16076:15;;16109:5;16100:14;;16123:712;16144:1;16134:8;16131:15;16123:712;;;16239:4;16234:3;16230:14;16224:4;16221:24;16218:50;;;16248:18;;:::i;:::-;16218:50;16298:1;16288:8;16284:16;16281:451;;;16713:4;16706:5;16702:16;16693:25;;16281:451;16763:4;16757;16753:15;16745:23;;16793:32;16816:8;16793:32;:::i;:::-;16781:44;;16123:712;;;15993:848;;;;;;;:::o;16847:1073::-;16901:5;17092:8;17082:40;;17113:1;17104:10;;17115:5;;17082:40;17141:4;17131:36;;17158:1;17149:10;;17160:5;;17131:36;17227:4;17275:1;17270:27;;;;17311:1;17306:191;;;;17220:277;;17270:27;17288:1;17279:10;;17290:5;;;17306:191;17351:3;17341:8;17338:17;17335:43;;;17358:18;;:::i;:::-;17335:43;17407:8;17404:1;17400:16;17391:25;;17442:3;17435:5;17432:14;17429:40;;;17449:18;;:::i;:::-;17429:40;17482:5;;;17220:277;;17606:2;17596:8;17593:16;17587:3;17581:4;17578:13;17574:36;17556:2;17546:8;17543:16;17538:2;17532:4;17529:12;17525:35;17509:111;17506:246;;;17662:8;17656:4;17652:19;17643:28;;17697:3;17690:5;17687:14;17684:40;;;17704:18;;:::i;:::-;17684:40;17737:5;;17506:246;17777:42;17815:3;17805:8;17799:4;17796:1;17777:42;:::i;:::-;17762:57;;;;17851:4;17846:3;17842:14;17835:5;17832:25;17829:51;;;17860:18;;:::i;:::-;17829:51;17909:4;17902:5;17898:16;17889:25;;16847:1073;;;;;;:::o;17926:281::-;17984:5;18008:23;18026:4;18008:23;:::i;:::-;18000:31;;18052:25;18068:8;18052:25;:::i;:::-;18040:37;;18096:104;18133:66;18123:8;18117:4;18096:104;:::i;:::-;18087:113;;17926:281;;;;:::o;18213:348::-;18253:7;18276:20;18294:1;18276:20;:::i;:::-;18271:25;;18310:20;18328:1;18310:20;:::i;:::-;18305:25;;18498:1;18430:66;18426:74;18423:1;18420:81;18415:1;18408:9;18401:17;18397:105;18394:131;;;18505:18;;:::i;:::-;18394:131;18553:1;18550;18546:9;18535:20;;18213:348;;;;:::o;18567:173::-;18707:25;18703:1;18695:6;18691:14;18684:49;18567:173;:::o;18746:366::-;18888:3;18909:67;18973:2;18968:3;18909:67;:::i;:::-;18902:74;;18985:93;19074:3;18985:93;:::i;:::-;19103:2;19098:3;19094:12;19087:19;;18746:366;;;:::o;19118:419::-;19284:4;19322:2;19311:9;19307:18;19299:26;;19371:9;19365:4;19361:20;19357:1;19346:9;19342:17;19335:47;19399:131;19525:4;19399:131;:::i;:::-;19391:139;;19118:419;;;:::o;19543:225::-;19683:34;19679:1;19671:6;19667:14;19660:58;19752:8;19747:2;19739:6;19735:15;19728:33;19543:225;:::o;19774:366::-;19916:3;19937:67;20001:2;19996:3;19937:67;:::i;:::-;19930:74;;20013:93;20102:3;20013:93;:::i;:::-;20131:2;20126:3;20122:12;20115:19;;19774:366;;;:::o;20146:419::-;20312:4;20350:2;20339:9;20335:18;20327:26;;20399:9;20393:4;20389:20;20385:1;20374:9;20370:17;20363:47;20427:131;20553:4;20427:131;:::i;:::-;20419:139;;20146:419;;;:::o;20571:223::-;20711:34;20707:1;20699:6;20695:14;20688:58;20780:6;20775:2;20767:6;20763:15;20756:31;20571:223;:::o;20800:366::-;20942:3;20963:67;21027:2;21022:3;20963:67;:::i;:::-;20956:74;;21039:93;21128:3;21039:93;:::i;:::-;21157:2;21152:3;21148:12;21141:19;;20800:366;;;:::o;21172:419::-;21338:4;21376:2;21365:9;21361:18;21353:26;;21425:9;21419:4;21415:20;21411:1;21400:9;21396:17;21389:47;21453:131;21579:4;21453:131;:::i;:::-;21445:139;;21172:419;;;:::o;21597:221::-;21737:34;21733:1;21725:6;21721:14;21714:58;21806:4;21801:2;21793:6;21789:15;21782:29;21597:221;:::o;21824:366::-;21966:3;21987:67;22051:2;22046:3;21987:67;:::i;:::-;21980:74;;22063:93;22152:3;22063:93;:::i;:::-;22181:2;22176:3;22172:12;22165:19;;21824:366;;;:::o;22196:419::-;22362:4;22400:2;22389:9;22385:18;22377:26;;22449:9;22443:4;22439:20;22435:1;22424:9;22420:17;22413:47;22477:131;22603:4;22477:131;:::i;:::-;22469:139;;22196:419;;;:::o;22621:224::-;22761:34;22757:1;22749:6;22745:14;22738:58;22830:7;22825:2;22817:6;22813:15;22806:32;22621:224;:::o;22851:366::-;22993:3;23014:67;23078:2;23073:3;23014:67;:::i;:::-;23007:74;;23090:93;23179:3;23090:93;:::i;:::-;23208:2;23203:3;23199:12;23192:19;;22851:366;;;:::o;23223:419::-;23389:4;23427:2;23416:9;23412:18;23404:26;;23476:9;23470:4;23466:20;23462:1;23451:9;23447:17;23440:47;23504:131;23630:4;23504:131;:::i;:::-;23496:139;;23223:419;;;:::o;23648:222::-;23788:34;23784:1;23776:6;23772:14;23765:58;23857:5;23852:2;23844:6;23840:15;23833:30;23648:222;:::o;23876:366::-;24018:3;24039:67;24103:2;24098:3;24039:67;:::i;:::-;24032:74;;24115:93;24204:3;24115:93;:::i;:::-;24233:2;24228:3;24224:12;24217:19;;23876:366;;;:::o;24248:419::-;24414:4;24452:2;24441:9;24437:18;24429:26;;24501:9;24495:4;24491:20;24487:1;24476:9;24472:17;24465:47;24529:131;24655:4;24529:131;:::i;:::-;24521:139;;24248:419;;;:::o;24673:228::-;24813:34;24809:1;24801:6;24797:14;24790:58;24882:11;24877:2;24869:6;24865:15;24858:36;24673:228;:::o;24907:366::-;25049:3;25070:67;25134:2;25129:3;25070:67;:::i;:::-;25063:74;;25146:93;25235:3;25146:93;:::i;:::-;25264:2;25259:3;25255:12;25248:19;;24907:366;;;:::o;25279:419::-;25445:4;25483:2;25472:9;25468:18;25460:26;;25532:9;25526:4;25522:20;25518:1;25507:9;25503:17;25496:47;25560:131;25686:4;25560:131;:::i;:::-;25552:139;;25279:419;;;:::o;25704:250::-;25844:34;25840:1;25832:6;25828:14;25821:58;25913:33;25908:2;25900:6;25896:15;25889:58;25704:250;:::o;25960:366::-;26102:3;26123:67;26187:2;26182:3;26123:67;:::i;:::-;26116:74;;26199:93;26288:3;26199:93;:::i;:::-;26317:2;26312:3;26308:12;26301:19;;25960:366;;;:::o;26332:419::-;26498:4;26536:2;26525:9;26521:18;26513:26;;26585:9;26579:4;26575:20;26571:1;26560:9;26556:17;26549:47;26613:131;26739:4;26613:131;:::i;:::-;26605:139;;26332:419;;;:::o;26757:178::-;26897:30;26893:1;26885:6;26881:14;26874:54;26757:178;:::o;26941:366::-;27083:3;27104:67;27168:2;27163:3;27104:67;:::i;:::-;27097:74;;27180:93;27269:3;27180:93;:::i;:::-;27298:2;27293:3;27289:12;27282:19;;26941:366;;;:::o;27313:419::-;27479:4;27517:2;27506:9;27502:18;27494:26;;27566:9;27560:4;27556:20;27552:1;27541:9;27537:17;27530:47;27594:131;27720:4;27594:131;:::i;:::-;27586:139;;27313:419;;;:::o;27738:222::-;27878:34;27874:1;27866:6;27862:14;27855:58;27947:5;27942:2;27934:6;27930:15;27923:30;27738:222;:::o;27966:366::-;28108:3;28129:67;28193:2;28188:3;28129:67;:::i;:::-;28122:74;;28205:93;28294:3;28205:93;:::i;:::-;28323:2;28318:3;28314:12;28307:19;;27966:366;;;:::o;28338:419::-;28504:4;28542:2;28531:9;28527:18;28519:26;;28591:9;28585:4;28581:20;28577:1;28566:9;28562:17;28555:47;28619:131;28745:4;28619:131;:::i;:::-;28611:139;;28338:419;;;:::o;28763:305::-;28803:3;28822:20;28840:1;28822:20;:::i;:::-;28817:25;;28856:20;28874:1;28856:20;:::i;:::-;28851:25;;29010:1;28942:66;28938:74;28935:1;28932:81;28929:107;;;29016:18;;:::i;:::-;28929:107;29060:1;29057;29053:9;29046:16;;28763:305;;;;:::o;29074:222::-;29214:34;29210:1;29202:6;29198:14;29191:58;29283:5;29278:2;29270:6;29266:15;29259:30;29074:222;:::o;29302:366::-;29444:3;29465:67;29529:2;29524:3;29465:67;:::i;:::-;29458:74;;29541:93;29630:3;29541:93;:::i;:::-;29659:2;29654:3;29650:12;29643:19;;29302:366;;;:::o;29674:419::-;29840:4;29878:2;29867:9;29863:18;29855:26;;29927:9;29921:4;29917:20;29913:1;29902:9;29898:17;29891:47;29955:131;30081:4;29955:131;:::i;:::-;29947:139;;29674:419;;;:::o;30099:191::-;30139:4;30159:20;30177:1;30159:20;:::i;:::-;30154:25;;30193:20;30211:1;30193:20;:::i;:::-;30188:25;;30232:1;30229;30226:8;30223:34;;;30237:18;;:::i;:::-;30223:34;30282:1;30279;30275:9;30267:17;;30099:191;;;;:::o;30296:229::-;30436:34;30432:1;30424:6;30420:14;30413:58;30505:12;30500:2;30492:6;30488:15;30481:37;30296:229;:::o;30531:366::-;30673:3;30694:67;30758:2;30753:3;30694:67;:::i;:::-;30687:74;;30770:93;30859:3;30770:93;:::i;:::-;30888:2;30883:3;30879:12;30872:19;;30531:366;;;:::o;30903:419::-;31069:4;31107:2;31096:9;31092:18;31084:26;;31156:9;31150:4;31146:20;31142:1;31131:9;31127:17;31120:47;31184:131;31310:4;31184:131;:::i;:::-;31176:139;;30903:419;;;:::o;31328:143::-;31385:5;31416:6;31410:13;31401:22;;31432:33;31459:5;31432:33;:::i;:::-;31328:143;;;;:::o;31477:351::-;31547:6;31596:2;31584:9;31575:7;31571:23;31567:32;31564:119;;;31602:79;;:::i;:::-;31564:119;31722:1;31747:64;31803:7;31794:6;31783:9;31779:22;31747:64;:::i;:::-;31737:74;;31693:128;31477:351;;;;:::o;31834:85::-;31879:7;31908:5;31897:16;;31834:85;;;:::o;31925:158::-;31983:9;32016:61;32034:42;32043:32;32069:5;32043:32;:::i;:::-;32034:42;:::i;:::-;32016:61;:::i;:::-;32003:74;;31925:158;;;:::o;32089:147::-;32184:45;32223:5;32184:45;:::i;:::-;32179:3;32172:58;32089:147;;:::o;32242:114::-;32309:6;32343:5;32337:12;32327:22;;32242:114;;;:::o;32362:184::-;32461:11;32495:6;32490:3;32483:19;32535:4;32530:3;32526:14;32511:29;;32362:184;;;;:::o;32552:132::-;32619:4;32642:3;32634:11;;32672:4;32667:3;32663:14;32655:22;;32552:132;;;:::o;32690:108::-;32767:24;32785:5;32767:24;:::i;:::-;32762:3;32755:37;32690:108;;:::o;32804:179::-;32873:10;32894:46;32936:3;32928:6;32894:46;:::i;:::-;32972:4;32967:3;32963:14;32949:28;;32804:179;;;;:::o;32989:113::-;33059:4;33091;33086:3;33082:14;33074:22;;32989:113;;;:::o;33138:732::-;33257:3;33286:54;33334:5;33286:54;:::i;:::-;33356:86;33435:6;33430:3;33356:86;:::i;:::-;33349:93;;33466:56;33516:5;33466:56;:::i;:::-;33545:7;33576:1;33561:284;33586:6;33583:1;33580:13;33561:284;;;33662:6;33656:13;33689:63;33748:3;33733:13;33689:63;:::i;:::-;33682:70;;33775:60;33828:6;33775:60;:::i;:::-;33765:70;;33621:224;33608:1;33605;33601:9;33596:14;;33561:284;;;33565:14;33861:3;33854:10;;33262:608;;;33138:732;;;;:::o;33876:831::-;34139:4;34177:3;34166:9;34162:19;34154:27;;34191:71;34259:1;34248:9;34244:17;34235:6;34191:71;:::i;:::-;34272:80;34348:2;34337:9;34333:18;34324:6;34272:80;:::i;:::-;34399:9;34393:4;34389:20;34384:2;34373:9;34369:18;34362:48;34427:108;34530:4;34521:6;34427:108;:::i;:::-;34419:116;;34545:72;34613:2;34602:9;34598:18;34589:6;34545:72;:::i;:::-;34627:73;34695:3;34684:9;34680:19;34671:6;34627:73;:::i;:::-;33876:831;;;;;;;;:::o;34713:180::-;34761:77;34758:1;34751:88;34858:4;34855:1;34848:15;34882:4;34879:1;34872:15;34899:185;34939:1;34956:20;34974:1;34956:20;:::i;:::-;34951:25;;34990:20;35008:1;34990:20;:::i;:::-;34985:25;;35029:1;35019:35;;35034:18;;:::i;:::-;35019:35;35076:1;35073;35069:9;35064:14;;34899:185;;;;:::o;35090:220::-;35230:34;35226:1;35218:6;35214:14;35207:58;35299:3;35294:2;35286:6;35282:15;35275:28;35090:220;:::o;35316:366::-;35458:3;35479:67;35543:2;35538:3;35479:67;:::i;:::-;35472:74;;35555:93;35644:3;35555:93;:::i;:::-;35673:2;35668:3;35664:12;35657:19;;35316:366;;;:::o;35688:419::-;35854:4;35892:2;35881:9;35877:18;35869:26;;35941:9;35935:4;35931:20;35927:1;35916:9;35912:17;35905:47;35969:131;36095:4;35969:131;:::i;:::-;35961:139;;35688:419;;;:::o;36113:177::-;36253:29;36249:1;36241:6;36237:14;36230:53;36113:177;:::o;36296:366::-;36438:3;36459:67;36523:2;36518:3;36459:67;:::i;:::-;36452:74;;36535:93;36624:3;36535:93;:::i;:::-;36653:2;36648:3;36644:12;36637:19;;36296:366;;;:::o;36668:419::-;36834:4;36872:2;36861:9;36857:18;36849:26;;36921:9;36915:4;36911:20;36907:1;36896:9;36892:17;36885:47;36949:131;37075:4;36949:131;:::i;:::-;36941:139;;36668:419;;;:::o

Swarm Source

ipfs://5877b7c37e1e7bbf35b3a57db298806f9535593adc7db5b7edb74d2dcdf289ca

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.