ETH Price: $3,395.72 (+1.80%)

Contract

0x9D1ed8774051064630683B00733804Bad14EbAc4
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve170730442023-04-18 10:41:23616 days ago1681814483IN
0x9D1ed877...ad14EbAc4
0 ETH0.001683536.10660314
Approve170200712023-04-10 20:14:11623 days ago1681157651IN
0x9D1ed877...ad14EbAc4
0 ETH0.001032122.28499861
Approve170157582023-04-10 5:33:11624 days ago1681104791IN
0x9D1ed877...ad14EbAc4
0 ETH0.0010816823.22904844
Approve170156882023-04-10 5:19:11624 days ago1681103951IN
0x9D1ed877...ad14EbAc4
0 ETH0.0010378222.25843088
Approve170156872023-04-10 5:18:59624 days ago1681103939IN
0x9D1ed877...ad14EbAc4
0 ETH0.0010070421.59827634
Approve170155172023-04-10 4:44:11624 days ago1681101851IN
0x9D1ed877...ad14EbAc4
0 ETH0.0010163221.79746026
Approve170155152023-04-10 4:43:47624 days ago1681101827IN
0x9D1ed877...ad14EbAc4
0 ETH0.0010445222.40215167
Approve170155152023-04-10 4:43:47624 days ago1681101827IN
0x9D1ed877...ad14EbAc4
0 ETH0.0010445222.40215167
Approve170155142023-04-10 4:43:35624 days ago1681101815IN
0x9D1ed877...ad14EbAc4
0 ETH0.0009670120.7397394
Transfer170155082023-04-10 4:42:23624 days ago1681101743IN
0x9D1ed877...ad14EbAc4
0 ETH0.0017514519.51724095
Approve170154972023-04-10 4:40:11624 days ago1681101611IN
0x9D1ed877...ad14EbAc4
0 ETH0.0011418124.65383861
Approve170154942023-04-10 4:39:35624 days ago1681101575IN
0x9D1ed877...ad14EbAc4
0 ETH0.0008589618.54653244
Approve170154932023-04-10 4:39:23624 days ago1681101563IN
0x9D1ed877...ad14EbAc4
0 ETH0.0010209321.89631609
Approve170154922023-04-10 4:39:11624 days ago1681101551IN
0x9D1ed877...ad14EbAc4
0 ETH0.0010773123.10543465
Approve170154912023-04-10 4:38:59624 days ago1681101539IN
0x9D1ed877...ad14EbAc4
0 ETH0.0009759220.93102129
Renounce Ownersh...170154742023-04-10 4:35:35624 days ago1681101335IN
0x9D1ed877...ad14EbAc4
0 ETH0.0004793420.55684364
Set Max Wallet S...170154712023-04-10 4:34:59624 days ago1681101299IN
0x9D1ed877...ad14EbAc4
0 ETH0.0005723719.92402884
Set Max Txn Amou...170154712023-04-10 4:34:59624 days ago1681101299IN
0x9D1ed877...ad14EbAc4
0 ETH0.0005593119.45387236
Approve170154702023-04-10 4:34:47624 days ago1681101287IN
0x9D1ed877...ad14EbAc4
0 ETH0.0010575922.68255071
Approve170154692023-04-10 4:34:35624 days ago1681101275IN
0x9D1ed877...ad14EbAc4
0 ETH0.0010342422.18174938
Approve170154642023-04-10 4:33:35624 days ago1681101215IN
0x9D1ed877...ad14EbAc4
0 ETH0.0009387320.13319454
Approve170154632023-04-10 4:33:23624 days ago1681101203IN
0x9D1ed877...ad14EbAc4
0 ETH0.0009869421.16722291
Approve170154622023-04-10 4:33:11624 days ago1681101191IN
0x9D1ed877...ad14EbAc4
0 ETH0.001004921.55253068
Set Fee170154602023-04-10 4:32:47624 days ago1681101167IN
0x9D1ed877...ad14EbAc4
0 ETH0.000809320.96649631
Approve170154562023-04-10 4:31:59624 days ago1681101119IN
0x9D1ed877...ad14EbAc4
0 ETH0.0010368822.23825611
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
170732982023-04-18 11:33:23615 days ago1681817603
0x9D1ed877...ad14EbAc4
0.00142764 ETH
170732982023-04-18 11:33:23615 days ago1681817603
0x9D1ed877...ad14EbAc4
0.00142764 ETH
170208492023-04-10 22:51:59623 days ago1681167119
0x9D1ed877...ad14EbAc4
0.00070633 ETH
170208492023-04-10 22:51:59623 days ago1681167119
0x9D1ed877...ad14EbAc4
0.00070633 ETH
170200732023-04-10 20:14:35623 days ago1681157675
0x9D1ed877...ad14EbAc4
0.00102403 ETH
170200732023-04-10 20:14:35623 days ago1681157675
0x9D1ed877...ad14EbAc4
0.00102403 ETH
170195202023-04-10 18:21:23623 days ago1681150883
0x9D1ed877...ad14EbAc4
0.00071797 ETH
170195202023-04-10 18:21:23623 days ago1681150883
0x9D1ed877...ad14EbAc4
0.00071797 ETH
170189462023-04-10 16:23:23623 days ago1681143803
0x9D1ed877...ad14EbAc4
0.00137566 ETH
170189462023-04-10 16:23:23623 days ago1681143803
0x9D1ed877...ad14EbAc4
0.00137566 ETH
170183172023-04-10 14:14:35623 days ago1681136075
0x9D1ed877...ad14EbAc4
0.00013198 ETH
170183172023-04-10 14:14:35623 days ago1681136075
0x9D1ed877...ad14EbAc4
0.00013198 ETH
170179282023-04-10 12:55:35623 days ago1681131335
0x9D1ed877...ad14EbAc4
0.00122438 ETH
170179282023-04-10 12:55:35623 days ago1681131335
0x9D1ed877...ad14EbAc4
0.00122438 ETH
170157602023-04-10 5:33:35624 days ago1681104815
0x9D1ed877...ad14EbAc4
0.00063292 ETH
170157602023-04-10 5:33:35624 days ago1681104815
0x9D1ed877...ad14EbAc4
0.00063292 ETH
170156882023-04-10 5:19:11624 days ago1681103951
0x9D1ed877...ad14EbAc4
0.00142314 ETH
170156882023-04-10 5:19:11624 days ago1681103951
0x9D1ed877...ad14EbAc4
0.00142314 ETH
170156872023-04-10 5:18:59624 days ago1681103939
0x9D1ed877...ad14EbAc4
0.0030361 ETH
170156872023-04-10 5:18:59624 days ago1681103939
0x9D1ed877...ad14EbAc4
0.0030361 ETH
170156862023-04-10 5:18:47624 days ago1681103927
0x9D1ed877...ad14EbAc4
0.00860026 ETH
170156862023-04-10 5:18:47624 days ago1681103927
0x9D1ed877...ad14EbAc4
0.00860026 ETH
170156482023-04-10 5:11:11624 days ago1681103471
0x9D1ed877...ad14EbAc4
0.00098245 ETH
170156482023-04-10 5:11:11624 days ago1681103471
0x9D1ed877...ad14EbAc4
0.00098245 ETH
170155902023-04-10 4:58:59624 days ago1681102739
0x9D1ed877...ad14EbAc4
0.00662989 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TitterCoin

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**
 .----------------.  .----------------.  .----------------.  .----------------.  .----------------.  .----------------.   .----------------.  .----------------.  .----------------.  .-----------------.
| .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. | | .--------------. || .--------------. || .--------------. || .--------------. |
| |  _________   | || |     _____    | || |  _________   | || |  _________   | || |  _________   | || |  _______     | | | |     ______   | || |     ____     | || |     _____    | || | ____  _____  | |
| | |  _   _  |  | || |    |_   _|   | || | |  _   _  |  | || | |  _   _  |  | || | |_   ___  |  | || | |_   __ \    | | | |   .' ___  |  | || |   .'    `.   | || |    |_   _|   | || ||_   \|_   _| | |
| | |_/ | | \_|  | || |      | |     | || | |_/ | | \_|  | || | |_/ | | \_|  | || |   | |_  \_|  | || |   | |__) |   | | | |  / .'   \_|  | || |  /  .--.  \  | || |      | |     | || |  |   \ | |   | |
| |     | |      | || |      | |     | || |     | |      | || |     | |      | || |   |  _|  _   | || |   |  __ /    | | | |  | |         | || |  | |    | |  | || |      | |     | || |  | |\ \| |   | |
| |    _| |_     | || |     _| |_    | || |    _| |_     | || |    _| |_     | || |  _| |___/ |  | || |  _| |  \ \_  | | | |  \ `.___.'\  | || |  \  `--'  /  | || |     _| |_    | || | _| |_\   |_  | |
| |   |_____|    | || |    |_____|   | || |   |_____|    | || |   |_____|    | || | |_________|  | || | |____| |___| | | | |   `._____.'  | || |   `.____.'   | || |    |_____|   | || ||_____|\____| | |
| |              | || |              | || |              | || |              | || |              | || |              | | | |              | || |              | || |              | || |              | |
| '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' | | '--------------' || '--------------' || '--------------' || '--------------' |
 '----------------'  '----------------'  '----------------'  '----------------'  '----------------'  '----------------'   '----------------'  '----------------'  '----------------'  '----------------'
Telegram: https://t.me/TITTERCOIN_ETH

starting high tax. TAX CAN NEVER GO PAST 30/30. Check line 565! (same with tx/wallet safety limits)
 Final tax 3/3. 1 LP/ 1 Marketing (or buybacks). Don't invest if you don't want to build!  **/

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

        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;

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

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"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"}]

60806040526200001966038d7ea4c680006000196200038e565b6200002790600019620003b1565b60065560006008819055601d6009819055600a829055600b819055600c829055600d819055600e91909155600f55601280546001600160a01b0319908116734376a1157b066f026e601107596aeb8b5a46f7879081179092556013805490911690911790556015805461ffff60a81b1916600160b01b1790556516bcc41e900060168190556017556402540be400601855348015620000c557600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a01559260048083019392829003018186803b1580156200017e57600080fd5b505afa15801562000193573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b99190620003d7565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200020257600080fd5b505afa15801562000217573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023d9190620003d7565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200028657600080fd5b505af11580156200029b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c19190620003d7565b601580546001600160a01b0319166001600160a01b03928316179055600080548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601254851684528284208054821683179055601354909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66038d7ea4c680006040516200037f91815260200190565b60405180910390a35062000409565b600082620003ac57634e487b7160e01b600052601260045260246000fd5b500690565b600082821015620003d257634e487b7160e01b600052601160045260246000fd5b500390565b600060208284031215620003ea57600080fd5b81516001600160a01b03811681146200040257600080fd5b9392505050565b611f8380620004196000396000f3fe6080604052600436106101d05760003560e01c80637d1db4a5116100f7578063a2a957bb11610095578063c492f04611610064578063c492f04614610554578063dd62ed3e14610574578063ea1644d5146105ba578063f2fde38b146105da57600080fd5b8063a2a957bb146104cf578063a9059cbb146104ef578063bfd792841461050f578063c3c8cd801461053f57600080fd5b80638f70ccf7116100d15780638f70ccf71461044d5780638f9a55c01461046d57806395d89b411461048357806398a5c315146104af57600080fd5b80637d1db4a5146103ec5780637f2feddc146104025780638da5cb5b1461042f57600080fd5b8063313ce5671161016f5780636fc3eaec1161013e5780636fc3eaec1461038257806370a0823114610397578063715018a6146103b757806374010ece146103cc57600080fd5b8063313ce5671461030657806349bd5a5e146103225780636b999053146103425780636d8aa8f81461036257600080fd5b80631694505e116101ab5780631694505e1461027457806318160ddd146102ac57806323b872dd146102d05780632fd689e3146102f057600080fd5b8062b8cf2a146101dc57806306fdde03146101fe578063095ea7b31461024457600080fd5b366101d757005b600080fd5b3480156101e857600080fd5b506101fc6101f7366004611ad4565b6105fa565b005b34801561020a57600080fd5b5060408051808201909152600b81526a2a24aa2a22a91021a7a4a760a91b60208201525b60405161023b9190611b99565b60405180910390f35b34801561025057600080fd5b5061026461025f366004611bee565b610699565b604051901515815260200161023b565b34801561028057600080fd5b50601454610294906001600160a01b031681565b6040516001600160a01b03909116815260200161023b565b3480156102b857600080fd5b5066038d7ea4c680005b60405190815260200161023b565b3480156102dc57600080fd5b506102646102eb366004611c1a565b6106b0565b3480156102fc57600080fd5b506102c260185481565b34801561031257600080fd5b506040516009815260200161023b565b34801561032e57600080fd5b50601554610294906001600160a01b031681565b34801561034e57600080fd5b506101fc61035d366004611c5b565b610719565b34801561036e57600080fd5b506101fc61037d366004611c88565b610764565b34801561038e57600080fd5b506101fc6107ac565b3480156103a357600080fd5b506102c26103b2366004611c5b565b6107f7565b3480156103c357600080fd5b506101fc610819565b3480156103d857600080fd5b506101fc6103e7366004611ca3565b61088d565b3480156103f857600080fd5b506102c260165481565b34801561040e57600080fd5b506102c261041d366004611c5b565b60116020526000908152604090205481565b34801561043b57600080fd5b506000546001600160a01b0316610294565b34801561045957600080fd5b506101fc610468366004611c88565b6108bc565b34801561047957600080fd5b506102c260175481565b34801561048f57600080fd5b5060408051808201909152600381526215125560ea1b602082015261022e565b3480156104bb57600080fd5b506101fc6104ca366004611ca3565b610904565b3480156104db57600080fd5b506101fc6104ea366004611cbc565b610933565b3480156104fb57600080fd5b5061026461050a366004611bee565b610ae9565b34801561051b57600080fd5b5061026461052a366004611c5b565b60106020526000908152604090205460ff1681565b34801561054b57600080fd5b506101fc610af6565b34801561056057600080fd5b506101fc61056f366004611cee565b610b4a565b34801561058057600080fd5b506102c261058f366004611d72565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105c657600080fd5b506101fc6105d5366004611ca3565b610beb565b3480156105e657600080fd5b506101fc6105f5366004611c5b565b610c1a565b6000546001600160a01b0316331461062d5760405162461bcd60e51b815260040161062490611dab565b60405180910390fd5b60005b81518110156106955760016010600084848151811061065157610651611de0565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061068d81611e0c565b915050610630565b5050565b60006106a6338484610d04565b5060015b92915050565b60006106bd848484610e28565b61070f843361070a85604051806060016040528060288152602001611f26602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611364565b610d04565b5060019392505050565b6000546001600160a01b031633146107435760405162461bcd60e51b815260040161062490611dab565b6001600160a01b03166000908152601060205260409020805460ff19169055565b6000546001600160a01b0316331461078e5760405162461bcd60e51b815260040161062490611dab565b60158054911515600160b01b0260ff60b01b19909216919091179055565b6012546001600160a01b0316336001600160a01b031614806107e157506013546001600160a01b0316336001600160a01b0316145b6107ea57600080fd5b476107f48161139e565b50565b6001600160a01b0381166000908152600260205260408120546106aa906113d8565b6000546001600160a01b031633146108435760405162461bcd60e51b815260040161062490611dab565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108b75760405162461bcd60e51b815260040161062490611dab565b601655565b6000546001600160a01b031633146108e65760405162461bcd60e51b815260040161062490611dab565b60158054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b0316331461092e5760405162461bcd60e51b815260040161062490611dab565b601855565b6000546001600160a01b0316331461095d5760405162461bcd60e51b815260040161062490611dab565b60048411156109bc5760405162461bcd60e51b815260206004820152602560248201527f4275792072657761726473206d757374206265206265747765656e20302520616044820152646e6420342560d81b6064820152608401610624565b601e821115610a185760405162461bcd60e51b815260206004820152602260248201527f42757920746178206d757374206265206265747765656e20302520616e642033604482015261302560f01b6064820152608401610624565b6004831115610a785760405162461bcd60e51b815260206004820152602660248201527f53656c6c2072657761726473206d757374206265206265747765656e20302520604482015265616e6420342560d01b6064820152608401610624565b601e811115610ad55760405162461bcd60e51b815260206004820152602360248201527f53656c6c20746178206d757374206265206265747765656e20302520616e642060448201526233302560e81b6064820152608401610624565b600893909355600a91909155600955600b55565b60006106a6338484610e28565b6012546001600160a01b0316336001600160a01b03161480610b2b57506013546001600160a01b0316336001600160a01b0316145b610b3457600080fd5b6000610b3f306107f7565b90506107f48161145c565b6000546001600160a01b03163314610b745760405162461bcd60e51b815260040161062490611dab565b60005b82811015610be5578160056000868685818110610b9657610b96611de0565b9050602002016020810190610bab9190611c5b565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610bdd81611e0c565b915050610b77565b50505050565b6000546001600160a01b03163314610c155760405162461bcd60e51b815260040161062490611dab565b601755565b6000546001600160a01b03163314610c445760405162461bcd60e51b815260040161062490611dab565b6001600160a01b038116610ca95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610d665760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610624565b6001600160a01b038216610dc75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610624565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e8c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610624565b6001600160a01b038216610eee5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610624565b60008111610f505760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610624565b6000546001600160a01b03848116911614801590610f7c57506000546001600160a01b03838116911614155b1561125d57601554600160a01b900460ff16611015576000546001600160a01b038481169116146110155760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610624565b6016548111156110675760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610624565b6001600160a01b03831660009081526010602052604090205460ff161580156110a957506001600160a01b03821660009081526010602052604090205460ff16155b6111015760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610624565b6015546001600160a01b038381169116146111865760175481611123846107f7565b61112d9190611e27565b106111865760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610624565b6000611191306107f7565b6018546016549192508210159082106111aa5760165491505b8080156111c15750601554600160a81b900460ff16155b80156111db57506015546001600160a01b03868116911614155b80156111f05750601554600160b01b900460ff165b801561121557506001600160a01b03851660009081526005602052604090205460ff16155b801561123a57506001600160a01b03841660009081526005602052604090205460ff16155b1561125a576112488261145c565b478015611258576112584761139e565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061129f57506001600160a01b03831660009081526005602052604090205460ff165b806112d157506015546001600160a01b038581169116148015906112d157506015546001600160a01b03848116911614155b156112de57506000611358565b6015546001600160a01b03858116911614801561130957506014546001600160a01b03848116911614155b1561131b57600854600c55600954600d555b6015546001600160a01b03848116911614801561134657506014546001600160a01b03858116911614155b1561135857600a54600c55600b54600d555b610be5848484846115e5565b600081848411156113885760405162461bcd60e51b81526004016106249190611b99565b5060006113958486611e3f565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610695573d6000803e3d6000fd5b600060065482111561143f5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610624565b6000611449611613565b90506114558382611636565b9392505050565b6015805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106114a4576114a4611de0565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156114f857600080fd5b505afa15801561150c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115309190611e56565b8160018151811061154357611543611de0565b6001600160a01b0392831660209182029290920101526014546115699130911684610d04565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906115a2908590600090869030904290600401611e73565b600060405180830381600087803b1580156115bc57600080fd5b505af11580156115d0573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b806115f2576115f2611678565b6115fd8484846116a6565b80610be557610be5600e54600c55600f54600d55565b600080600061162061179d565b909250905061162f8282611636565b9250505090565b600061145583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117db565b600c541580156116885750600d54155b1561168f57565b600c8054600e55600d8054600f5560009182905555565b6000806000806000806116b887611809565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506116ea9087611866565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461171990866118a8565b6001600160a01b03891660009081526002602052604090205561173b81611907565b6117458483611951565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161178a91815260200190565b60405180910390a3505050505050505050565b600654600090819066038d7ea4c680006117b78282611636565b8210156117d25750506006549266038d7ea4c6800092509050565b90939092509050565b600081836117fc5760405162461bcd60e51b81526004016106249190611b99565b5060006113958486611ee4565b60008060008060008060008060006118268a600c54600d54611975565b9250925092506000611836611613565b905060008060006118498e8787876119ca565b919e509c509a509598509396509194505050505091939550919395565b600061145583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611364565b6000806118b58385611e27565b9050838110156114555760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610624565b6000611911611613565b9050600061191f8383611a1a565b3060009081526002602052604090205490915061193c90826118a8565b30600090815260026020526040902055505050565b60065461195e9083611866565b60065560075461196e90826118a8565b6007555050565b600080808061198f60646119898989611a1a565b90611636565b905060006119a260646119898a89611a1a565b905060006119ba826119b48b86611866565b90611866565b9992985090965090945050505050565b60008080806119d98886611a1a565b905060006119e78887611a1a565b905060006119f58888611a1a565b90506000611a07826119b48686611866565b939b939a50919850919650505050505050565b600082611a29575060006106aa565b6000611a358385611f06565b905082611a428583611ee4565b146114555760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610624565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146107f457600080fd5b8035611acf81611aaf565b919050565b60006020808385031215611ae757600080fd5b823567ffffffffffffffff80821115611aff57600080fd5b818501915085601f830112611b1357600080fd5b813581811115611b2557611b25611a99565b8060051b604051601f19603f83011681018181108582111715611b4a57611b4a611a99565b604052918252848201925083810185019188831115611b6857600080fd5b938501935b82851015611b8d57611b7e85611ac4565b84529385019392850192611b6d565b98975050505050505050565b600060208083528351808285015260005b81811015611bc657858101830151858201604001528201611baa565b81811115611bd8576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215611c0157600080fd5b8235611c0c81611aaf565b946020939093013593505050565b600080600060608486031215611c2f57600080fd5b8335611c3a81611aaf565b92506020840135611c4a81611aaf565b929592945050506040919091013590565b600060208284031215611c6d57600080fd5b813561145581611aaf565b80358015158114611acf57600080fd5b600060208284031215611c9a57600080fd5b61145582611c78565b600060208284031215611cb557600080fd5b5035919050565b60008060008060808587031215611cd257600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060408486031215611d0357600080fd5b833567ffffffffffffffff80821115611d1b57600080fd5b818601915086601f830112611d2f57600080fd5b813581811115611d3e57600080fd5b8760208260051b8501011115611d5357600080fd5b602092830195509350611d699186019050611c78565b90509250925092565b60008060408385031215611d8557600080fd5b8235611d9081611aaf565b91506020830135611da081611aaf565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611e2057611e20611df6565b5060010190565b60008219821115611e3a57611e3a611df6565b500190565b600082821015611e5157611e51611df6565b500390565b600060208284031215611e6857600080fd5b815161145581611aaf565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ec35784516001600160a01b031683529383019391830191600101611e9e565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611f0157634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611f2057611f20611df6565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f2933580dba51cb29fe63957f9284c2f2cbe8dcce9ae21af6f14e49569064f9464736f6c63430008090033

Deployed Bytecode

0x6080604052600436106101d05760003560e01c80637d1db4a5116100f7578063a2a957bb11610095578063c492f04611610064578063c492f04614610554578063dd62ed3e14610574578063ea1644d5146105ba578063f2fde38b146105da57600080fd5b8063a2a957bb146104cf578063a9059cbb146104ef578063bfd792841461050f578063c3c8cd801461053f57600080fd5b80638f70ccf7116100d15780638f70ccf71461044d5780638f9a55c01461046d57806395d89b411461048357806398a5c315146104af57600080fd5b80637d1db4a5146103ec5780637f2feddc146104025780638da5cb5b1461042f57600080fd5b8063313ce5671161016f5780636fc3eaec1161013e5780636fc3eaec1461038257806370a0823114610397578063715018a6146103b757806374010ece146103cc57600080fd5b8063313ce5671461030657806349bd5a5e146103225780636b999053146103425780636d8aa8f81461036257600080fd5b80631694505e116101ab5780631694505e1461027457806318160ddd146102ac57806323b872dd146102d05780632fd689e3146102f057600080fd5b8062b8cf2a146101dc57806306fdde03146101fe578063095ea7b31461024457600080fd5b366101d757005b600080fd5b3480156101e857600080fd5b506101fc6101f7366004611ad4565b6105fa565b005b34801561020a57600080fd5b5060408051808201909152600b81526a2a24aa2a22a91021a7a4a760a91b60208201525b60405161023b9190611b99565b60405180910390f35b34801561025057600080fd5b5061026461025f366004611bee565b610699565b604051901515815260200161023b565b34801561028057600080fd5b50601454610294906001600160a01b031681565b6040516001600160a01b03909116815260200161023b565b3480156102b857600080fd5b5066038d7ea4c680005b60405190815260200161023b565b3480156102dc57600080fd5b506102646102eb366004611c1a565b6106b0565b3480156102fc57600080fd5b506102c260185481565b34801561031257600080fd5b506040516009815260200161023b565b34801561032e57600080fd5b50601554610294906001600160a01b031681565b34801561034e57600080fd5b506101fc61035d366004611c5b565b610719565b34801561036e57600080fd5b506101fc61037d366004611c88565b610764565b34801561038e57600080fd5b506101fc6107ac565b3480156103a357600080fd5b506102c26103b2366004611c5b565b6107f7565b3480156103c357600080fd5b506101fc610819565b3480156103d857600080fd5b506101fc6103e7366004611ca3565b61088d565b3480156103f857600080fd5b506102c260165481565b34801561040e57600080fd5b506102c261041d366004611c5b565b60116020526000908152604090205481565b34801561043b57600080fd5b506000546001600160a01b0316610294565b34801561045957600080fd5b506101fc610468366004611c88565b6108bc565b34801561047957600080fd5b506102c260175481565b34801561048f57600080fd5b5060408051808201909152600381526215125560ea1b602082015261022e565b3480156104bb57600080fd5b506101fc6104ca366004611ca3565b610904565b3480156104db57600080fd5b506101fc6104ea366004611cbc565b610933565b3480156104fb57600080fd5b5061026461050a366004611bee565b610ae9565b34801561051b57600080fd5b5061026461052a366004611c5b565b60106020526000908152604090205460ff1681565b34801561054b57600080fd5b506101fc610af6565b34801561056057600080fd5b506101fc61056f366004611cee565b610b4a565b34801561058057600080fd5b506102c261058f366004611d72565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105c657600080fd5b506101fc6105d5366004611ca3565b610beb565b3480156105e657600080fd5b506101fc6105f5366004611c5b565b610c1a565b6000546001600160a01b0316331461062d5760405162461bcd60e51b815260040161062490611dab565b60405180910390fd5b60005b81518110156106955760016010600084848151811061065157610651611de0565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061068d81611e0c565b915050610630565b5050565b60006106a6338484610d04565b5060015b92915050565b60006106bd848484610e28565b61070f843361070a85604051806060016040528060288152602001611f26602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611364565b610d04565b5060019392505050565b6000546001600160a01b031633146107435760405162461bcd60e51b815260040161062490611dab565b6001600160a01b03166000908152601060205260409020805460ff19169055565b6000546001600160a01b0316331461078e5760405162461bcd60e51b815260040161062490611dab565b60158054911515600160b01b0260ff60b01b19909216919091179055565b6012546001600160a01b0316336001600160a01b031614806107e157506013546001600160a01b0316336001600160a01b0316145b6107ea57600080fd5b476107f48161139e565b50565b6001600160a01b0381166000908152600260205260408120546106aa906113d8565b6000546001600160a01b031633146108435760405162461bcd60e51b815260040161062490611dab565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108b75760405162461bcd60e51b815260040161062490611dab565b601655565b6000546001600160a01b031633146108e65760405162461bcd60e51b815260040161062490611dab565b60158054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b0316331461092e5760405162461bcd60e51b815260040161062490611dab565b601855565b6000546001600160a01b0316331461095d5760405162461bcd60e51b815260040161062490611dab565b60048411156109bc5760405162461bcd60e51b815260206004820152602560248201527f4275792072657761726473206d757374206265206265747765656e20302520616044820152646e6420342560d81b6064820152608401610624565b601e821115610a185760405162461bcd60e51b815260206004820152602260248201527f42757920746178206d757374206265206265747765656e20302520616e642033604482015261302560f01b6064820152608401610624565b6004831115610a785760405162461bcd60e51b815260206004820152602660248201527f53656c6c2072657761726473206d757374206265206265747765656e20302520604482015265616e6420342560d01b6064820152608401610624565b601e811115610ad55760405162461bcd60e51b815260206004820152602360248201527f53656c6c20746178206d757374206265206265747765656e20302520616e642060448201526233302560e81b6064820152608401610624565b600893909355600a91909155600955600b55565b60006106a6338484610e28565b6012546001600160a01b0316336001600160a01b03161480610b2b57506013546001600160a01b0316336001600160a01b0316145b610b3457600080fd5b6000610b3f306107f7565b90506107f48161145c565b6000546001600160a01b03163314610b745760405162461bcd60e51b815260040161062490611dab565b60005b82811015610be5578160056000868685818110610b9657610b96611de0565b9050602002016020810190610bab9190611c5b565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610bdd81611e0c565b915050610b77565b50505050565b6000546001600160a01b03163314610c155760405162461bcd60e51b815260040161062490611dab565b601755565b6000546001600160a01b03163314610c445760405162461bcd60e51b815260040161062490611dab565b6001600160a01b038116610ca95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610d665760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610624565b6001600160a01b038216610dc75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610624565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e8c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610624565b6001600160a01b038216610eee5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610624565b60008111610f505760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610624565b6000546001600160a01b03848116911614801590610f7c57506000546001600160a01b03838116911614155b1561125d57601554600160a01b900460ff16611015576000546001600160a01b038481169116146110155760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610624565b6016548111156110675760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610624565b6001600160a01b03831660009081526010602052604090205460ff161580156110a957506001600160a01b03821660009081526010602052604090205460ff16155b6111015760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610624565b6015546001600160a01b038381169116146111865760175481611123846107f7565b61112d9190611e27565b106111865760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610624565b6000611191306107f7565b6018546016549192508210159082106111aa5760165491505b8080156111c15750601554600160a81b900460ff16155b80156111db57506015546001600160a01b03868116911614155b80156111f05750601554600160b01b900460ff165b801561121557506001600160a01b03851660009081526005602052604090205460ff16155b801561123a57506001600160a01b03841660009081526005602052604090205460ff16155b1561125a576112488261145c565b478015611258576112584761139e565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061129f57506001600160a01b03831660009081526005602052604090205460ff165b806112d157506015546001600160a01b038581169116148015906112d157506015546001600160a01b03848116911614155b156112de57506000611358565b6015546001600160a01b03858116911614801561130957506014546001600160a01b03848116911614155b1561131b57600854600c55600954600d555b6015546001600160a01b03848116911614801561134657506014546001600160a01b03858116911614155b1561135857600a54600c55600b54600d555b610be5848484846115e5565b600081848411156113885760405162461bcd60e51b81526004016106249190611b99565b5060006113958486611e3f565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610695573d6000803e3d6000fd5b600060065482111561143f5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610624565b6000611449611613565b90506114558382611636565b9392505050565b6015805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106114a4576114a4611de0565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156114f857600080fd5b505afa15801561150c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115309190611e56565b8160018151811061154357611543611de0565b6001600160a01b0392831660209182029290920101526014546115699130911684610d04565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906115a2908590600090869030904290600401611e73565b600060405180830381600087803b1580156115bc57600080fd5b505af11580156115d0573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b806115f2576115f2611678565b6115fd8484846116a6565b80610be557610be5600e54600c55600f54600d55565b600080600061162061179d565b909250905061162f8282611636565b9250505090565b600061145583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117db565b600c541580156116885750600d54155b1561168f57565b600c8054600e55600d8054600f5560009182905555565b6000806000806000806116b887611809565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506116ea9087611866565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461171990866118a8565b6001600160a01b03891660009081526002602052604090205561173b81611907565b6117458483611951565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161178a91815260200190565b60405180910390a3505050505050505050565b600654600090819066038d7ea4c680006117b78282611636565b8210156117d25750506006549266038d7ea4c6800092509050565b90939092509050565b600081836117fc5760405162461bcd60e51b81526004016106249190611b99565b5060006113958486611ee4565b60008060008060008060008060006118268a600c54600d54611975565b9250925092506000611836611613565b905060008060006118498e8787876119ca565b919e509c509a509598509396509194505050505091939550919395565b600061145583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611364565b6000806118b58385611e27565b9050838110156114555760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610624565b6000611911611613565b9050600061191f8383611a1a565b3060009081526002602052604090205490915061193c90826118a8565b30600090815260026020526040902055505050565b60065461195e9083611866565b60065560075461196e90826118a8565b6007555050565b600080808061198f60646119898989611a1a565b90611636565b905060006119a260646119898a89611a1a565b905060006119ba826119b48b86611866565b90611866565b9992985090965090945050505050565b60008080806119d98886611a1a565b905060006119e78887611a1a565b905060006119f58888611a1a565b90506000611a07826119b48686611866565b939b939a50919850919650505050505050565b600082611a29575060006106aa565b6000611a358385611f06565b905082611a428583611ee4565b146114555760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610624565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146107f457600080fd5b8035611acf81611aaf565b919050565b60006020808385031215611ae757600080fd5b823567ffffffffffffffff80821115611aff57600080fd5b818501915085601f830112611b1357600080fd5b813581811115611b2557611b25611a99565b8060051b604051601f19603f83011681018181108582111715611b4a57611b4a611a99565b604052918252848201925083810185019188831115611b6857600080fd5b938501935b82851015611b8d57611b7e85611ac4565b84529385019392850192611b6d565b98975050505050505050565b600060208083528351808285015260005b81811015611bc657858101830151858201604001528201611baa565b81811115611bd8576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215611c0157600080fd5b8235611c0c81611aaf565b946020939093013593505050565b600080600060608486031215611c2f57600080fd5b8335611c3a81611aaf565b92506020840135611c4a81611aaf565b929592945050506040919091013590565b600060208284031215611c6d57600080fd5b813561145581611aaf565b80358015158114611acf57600080fd5b600060208284031215611c9a57600080fd5b61145582611c78565b600060208284031215611cb557600080fd5b5035919050565b60008060008060808587031215611cd257600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060408486031215611d0357600080fd5b833567ffffffffffffffff80821115611d1b57600080fd5b818601915086601f830112611d2f57600080fd5b813581811115611d3e57600080fd5b8760208260051b8501011115611d5357600080fd5b602092830195509350611d699186019050611c78565b90509250925092565b60008060408385031215611d8557600080fd5b8235611d9081611aaf565b91506020830135611da081611aaf565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611e2057611e20611df6565b5060010190565b60008219821115611e3a57611e3a611df6565b500190565b600082821015611e5157611e51611df6565b500390565b600060208284031215611e6857600080fd5b815161145581611aaf565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ec35784516001600160a01b031683529383019391830191600101611e9e565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611f0157634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611f2057611f20611df6565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f2933580dba51cb29fe63957f9284c2f2cbe8dcce9ae21af6f14e49569064f9464736f6c63430008090033

Deployed Bytecode Sourcemap

6572:13976:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15289:169;;;;;;;;;;-1:-1:-1;15289:169:0;;;;;:::i;:::-;;:::i;:::-;;9083:83;;;;;;;;;;-1:-1:-1;9153:5:0;;;;;;;;;;;;-1:-1:-1;;;9153:5:0;;;;9083:83;;;;;;;:::i;:::-;;;;;;;;10015:193;;;;;;;;;;-1:-1:-1;10015:193:0;;;;;:::i;:::-;;:::i;:::-;;;2634:14:1;;2627:22;2609:41;;2597:2;2582:18;10015:193:0;2469:187:1;7931:41:0;;;;;;;;;;-1:-1:-1;7931:41:0;;;;-1:-1:-1;;;;;7931:41:0;;;;;;-1:-1:-1;;;;;2851:32:1;;;2833:51;;2821:2;2806:18;7931:41:0;2661:229:1;9363:95:0;;;;;;;;;;-1:-1:-1;7126:15:0;9363:95;;;3041:25:1;;;3029:2;3014:18;9363:95:0;2895:177:1;10217:446:0;;;;;;;;;;-1:-1:-1;10217:446:0;;;;;:::i;:::-;;:::i;8227:47::-;;;;;;;;;;;;;;;;9271:83;;;;;;;;;;-1:-1:-1;9271:83:0;;6799:1;3680:36:1;;3668:2;3653:18;9271:83:0;3538:184:1;7979:28:0;;;;;;;;;;-1:-1:-1;7979:28:0;;;;-1:-1:-1;;;;;7979:28:0;;;15467:92;;;;;;;;;;-1:-1:-1;15467:92:0;;;;;:::i;:::-;;:::i;19914:101::-;;;;;;;;;;-1:-1:-1;19914:101:0;;;;;:::i;:::-;;:::i;15045:235::-;;;;;;;;;;;;;:::i;9467:138::-;;;;;;;;;;-1:-1:-1;9467:138:0;;;;;:::i;:::-;;:::i;4045:148::-;;;;;;;;;;;;;:::i;20055:121::-;;;;;;;;;;-1:-1:-1;20055:121:0;;;;;:::i;:::-;;:::i;8123:43::-;;;;;;;;;;;;;;;;7670;;;;;;;;;;-1:-1:-1;7670:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;3829:79;;;;;;;;;;-1:-1:-1;3867:7:0;3894:6;-1:-1:-1;;;;;3894:6:0;3829:79;;14690:101;;;;;;;;;;-1:-1:-1;14690:101:0;;;;;:::i;:::-;;:::i;8174:45::-;;;;;;;;;;;;;;;;9175:87;;;;;;;;;;-1:-1:-1;9247:7:0;;;;;;;;;;;;-1:-1:-1;;;9247:7:0;;;;9175:87;;19722:139;;;;;;;;;;-1:-1:-1;19722:139:0;;;;;:::i;:::-;;:::i;18976:693::-;;;;;;;;;;-1:-1:-1;18976:693:0;;;;;:::i;:::-;;:::i;9614:199::-;;;;;;;;;;-1:-1:-1;9614:199:0;;;;;:::i;:::-;;:::i;7632:36::-;;;;;;;;;;-1:-1:-1;7632:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14800:236;;;;;;;;;;;;;:::i;20309:234::-;;;;;;;;;;-1:-1:-1;20309:234:0;;;;;:::i;:::-;;:::i;9822:184::-;;;;;;;;;;-1:-1:-1;9822:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;9971:18:0;;;9939:7;9971:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9822:184;20185:115;;;;;;;;;;-1:-1:-1;20185:115:0;;;;;:::i;:::-;;:::i;4202:244::-;;;;;;;;;;-1:-1:-1;4202:244:0;;;;;:::i;:::-;;:::i;15289:169::-;3957:6;;-1:-1:-1;;;;;3957:6:0;2658:10;3957:22;3949:67;;;;-1:-1:-1;;;3949:67:0;;;;;;;:::i;:::-;;;;;;;;;15365:9:::1;15360:91;15384:5;:12;15380:1;:16;15360:91;;;15435:4;15418;:14;15423:5;15429:1;15423:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;15418:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;15418:14:0;:21;;-1:-1:-1;;15418:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15398:3;::::1;::::0;::::1;:::i;:::-;;;;15360:91;;;;15289:169:::0;:::o;10015:193::-;10117:4;10139:39;2658:10;10162:7;10171:6;10139:8;:39::i;:::-;-1:-1:-1;10196:4:0;10015:193;;;;;:::o;10217:446::-;10349:4;10366:36;10376:6;10384:9;10395:6;10366:9;:36::i;:::-;10413:220;10436:6;2658:10;10484:138;10540:6;10484:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10484:19:0;;;;;;:11;:19;;;;;;;;2658:10;10484:33;;;;;;;;;;:37;:138::i;:::-;10413:8;:220::i;:::-;-1:-1:-1;10651:4:0;10217:446;;;;;:::o;15467:92::-;3957:6;;-1:-1:-1;;;;;3957:6:0;2658:10;3957:22;3949:67;;;;-1:-1:-1;;;3949:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15531:12:0::1;15546:5;15531:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;15531:20:0::1;::::0;;15467:92::o;19914:101::-;3957:6;;-1:-1:-1;;;;;3957:6:0;2658:10;3957:22;3949:67;;;;-1:-1:-1;;;3949:67:0;;;;;;;:::i;:::-;19981:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;19981:26:0::1;-1:-1:-1::0;;;;19981:26:0;;::::1;::::0;;;::::1;::::0;;19914:101::o;15045:235::-;15111:19;;-1:-1:-1;;;;;15111:19:0;2658:10;-1:-1:-1;;;;;15095:35:0;;:72;;;-1:-1:-1;15150:17:0;;-1:-1:-1;;;;;15150:17:0;2658:10;-1:-1:-1;;;;;15134:33:0;;15095:72;15087:81;;;;;;15208:21;15240:32;15208:21;15240:12;:32::i;:::-;15076:204;15045:235::o;9467:138::-;-1:-1:-1;;;;;9580:16:0;;9533:7;9580:16;;;:7;:16;;;;;;9560:37;;:19;:37::i;4045:148::-;3957:6;;-1:-1:-1;;;;;3957:6:0;2658:10;3957:22;3949:67;;;;-1:-1:-1;;;3949:67:0;;;;;;;:::i;:::-;4152:1:::1;4136:6:::0;;4115:40:::1;::::0;-1:-1:-1;;;;;4136:6:0;;::::1;::::0;4115:40:::1;::::0;4152:1;;4115:40:::1;4183:1;4166:19:::0;;-1:-1:-1;;;;;;4166:19:0::1;::::0;;4045:148::o;20055:121::-;3957:6;;-1:-1:-1;;;;;3957:6:0;2658:10;3957:22;3949:67;;;;-1:-1:-1;;;3949:67:0;;;;;;;:::i;:::-;20132:12:::1;:26:::0;20055:121::o;14690:101::-;3957:6;;-1:-1:-1;;;;;3957:6:0;2658:10;3957:22;3949:67;;;;-1:-1:-1;;;3949:67:0;;;;;;;:::i;:::-;14757:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;14757:26:0::1;-1:-1:-1::0;;;;14757:26:0;;::::1;::::0;;;::::1;::::0;;14690:101::o;19722:139::-;3957:6;;-1:-1:-1;;;;;3957:6:0;2658:10;3957:22;3949:67;;;;-1:-1:-1;;;3949:67:0;;;;;;;:::i;:::-;19813:19:::1;:40:::0;19722:139::o;18976:693::-;3957:6;;-1:-1:-1;;;;;3957:6:0;2658:10;3957:22;3949:67;;;;-1:-1:-1;;;3949:67:0;;;;;;;:::i;:::-;19157:1:::1;19140:13;:18;;19110:90;;;::::0;-1:-1:-1;;;19110:90:0;;7166:2:1;19110:90:0::1;::::0;::::1;7148:21:1::0;7205:2;7185:18;;;7178:30;7244:34;7224:18;;;7217:62;-1:-1:-1;;;7295:18:1;;;7288:35;7340:19;;19110:90:0::1;6964:401:1::0;19110:90:0::1;19254:2;19239:11;:17;;19211:84;;;::::0;-1:-1:-1;;;19211:84:0;;7572:2:1;19211:84:0::1;::::0;::::1;7554:21:1::0;7611:2;7591:18;;;7584:30;7650:34;7630:18;;;7623:62;-1:-1:-1;;;7701:18:1;;;7694:32;7743:19;;19211:84:0::1;7370:398:1::0;19211:84:0::1;19355:1;19337:14;:19;;19306:93;;;::::0;-1:-1:-1;;;19306:93:0;;7975:2:1;19306:93:0::1;::::0;::::1;7957:21:1::0;8014:2;7994:18;;;7987:30;8053:34;8033:18;;;8026:62;-1:-1:-1;;;8104:18:1;;;8097:36;8150:19;;19306:93:0::1;7773:402:1::0;19306:93:0::1;19455:2;19439:12;:18;;19410:87;;;::::0;-1:-1:-1;;;19410:87:0;;8382:2:1;19410:87:0::1;::::0;::::1;8364:21:1::0;8421:2;8401:18;;;8394:30;8460:34;8440:18;;;8433:62;-1:-1:-1;;;8511:18:1;;;8504:33;8554:19;;19410:87:0::1;8180:399:1::0;19410:87:0::1;19510:14;:30:::0;;;;19551:15:::1;:32:::0;;;;19594:12:::1;:26:::0;19631:13:::1;:28:::0;18976:693::o;9614:199::-;9719:4;9741:42;2658:10;9765:9;9776:6;9741:9;:42::i;14800:236::-;14866:19;;-1:-1:-1;;;;;14866:19:0;2658:10;-1:-1:-1;;;;;14850:35:0;;:72;;;-1:-1:-1;14905:17:0;;-1:-1:-1;;;;;14905:17:0;2658:10;-1:-1:-1;;;;;14889:33:0;;14850:72;14842:81;;;;;;14934:23;14960:24;14978:4;14960:9;:24::i;:::-;14934:50;;14995:33;15012:15;14995:16;:33::i;20309:234::-;3957:6;;-1:-1:-1;;;;;3957:6:0;2658:10;3957:22;3949:67;;;;-1:-1:-1;;;3949:67:0;;;;;;;:::i;:::-;20426:9:::1;20422:114;20441:19:::0;;::::1;20422:114;;;20516:8;20482:18;:31;20501:8;;20510:1;20501:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20482:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;20482:31:0;:42;;-1:-1:-1;;20482:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20462:3;::::1;::::0;::::1;:::i;:::-;;;;20422:114;;;;20309:234:::0;;;:::o;20185:115::-;3957:6;;-1:-1:-1;;;;;3957:6:0;2658:10;3957:22;3949:67;;;;-1:-1:-1;;;3949:67:0;;;;;;;:::i;:::-;20262:14:::1;:30:::0;20185:115::o;4202:244::-;3957:6;;-1:-1:-1;;;;;3957:6:0;2658:10;3957:22;3949:67;;;;-1:-1:-1;;;3949:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4291:22:0;::::1;4283:73;;;::::0;-1:-1:-1;;;4283:73:0;;8786:2:1;4283:73:0::1;::::0;::::1;8768:21:1::0;8825:2;8805:18;;;8798:30;8864:34;8844:18;;;8837:62;-1:-1:-1;;;8915:18:1;;;8908:36;8961:19;;4283:73:0::1;8584:402:1::0;4283:73:0::1;4393:6;::::0;;4372:38:::1;::::0;-1:-1:-1;;;;;4372:38:0;;::::1;::::0;4393:6;::::1;::::0;4372:38:::1;::::0;::::1;4421:6;:17:::0;;-1:-1:-1;;;;;;4421:17:0::1;-1:-1:-1::0;;;;;4421:17:0;;;::::1;::::0;;;::::1;::::0;;4202:244::o;11360:369::-;-1:-1:-1;;;;;11487:19:0;;11479:68;;;;-1:-1:-1;;;11479:68:0;;9193:2:1;11479:68:0;;;9175:21:1;9232:2;9212:18;;;9205:30;9271:34;9251:18;;;9244:62;-1:-1:-1;;;9322:18:1;;;9315:34;9366:19;;11479:68:0;8991:400:1;11479:68:0;-1:-1:-1;;;;;11566:21:0;;11558:68;;;;-1:-1:-1;;;11558:68:0;;9598:2:1;11558:68:0;;;9580:21:1;9637:2;9617:18;;;9610:30;9676:34;9656:18;;;9649:62;-1:-1:-1;;;9727:18:1;;;9720:32;9769:19;;11558:68:0;9396:398:1;11558:68:0;-1:-1:-1;;;;;11637:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11689:32;;3041:25:1;;;11689:32:0;;3014:18:1;11689:32:0;;;;;;;11360:369;;;:::o;11738:2343::-;-1:-1:-1;;;;;11860:18:0;;11852:68;;;;-1:-1:-1;;;11852:68:0;;10001:2:1;11852:68:0;;;9983:21:1;10040:2;10020:18;;;10013:30;10079:34;10059:18;;;10052:62;-1:-1:-1;;;10130:18:1;;;10123:35;10175:19;;11852:68:0;9799:401:1;11852:68:0;-1:-1:-1;;;;;11939:16:0;;11931:64;;;;-1:-1:-1;;;11931:64:0;;10407:2:1;11931:64:0;;;10389:21:1;10446:2;10426:18;;;10419:30;10485:34;10465:18;;;10458:62;-1:-1:-1;;;10536:18:1;;;10529:33;10579:19;;11931:64:0;10205:399:1;11931:64:0;12023:1;12014:6;:10;12006:64;;;;-1:-1:-1;;;12006:64:0;;10811:2:1;12006:64:0;;;10793:21:1;10850:2;10830:18;;;10823:30;10889:34;10869:18;;;10862:62;-1:-1:-1;;;10940:18:1;;;10933:39;10989:19;;12006:64:0;10609:405:1;12006:64:0;3867:7;3894:6;-1:-1:-1;;;;;12088:15:0;;;3894:6;;12088:15;;;;:32;;-1:-1:-1;3867:7:0;3894:6;-1:-1:-1;;;;;12107:13:0;;;3894:6;;12107:13;;12088:32;12084:1265;;;12178:11;;-1:-1:-1;;;12178:11:0;;;;12173:144;;3867:7;3894:6;-1:-1:-1;;;;;12218:15:0;;;3894:6;;12218:15;12210:91;;;;-1:-1:-1;;;12210:91:0;;11221:2:1;12210:91:0;;;11203:21:1;11260:2;11240:18;;;11233:30;11299:34;11279:18;;;11272:62;11370:33;11350:18;;;11343:61;11421:19;;12210:91:0;11019:427:1;12210:91:0;12352:12;;12342:6;:22;;12334:63;;;;-1:-1:-1;;;12334:63:0;;11653:2:1;12334:63:0;;;11635:21:1;11692:2;11672:18;;;11665:30;11731;11711:18;;;11704:58;11779:18;;12334:63:0;11451:352:1;12334:63:0;-1:-1:-1;;;;;12421:10:0;;;;;;:4;:10;;;;;;;;12420:11;:24;;;;-1:-1:-1;;;;;;12436:8:0;;;;;;:4;:8;;;;;;;;12435:9;12420:24;12412:72;;;;-1:-1:-1;;;12412:72:0;;12010:2:1;12412:72:0;;;11992:21:1;12049:2;12029:18;;;12022:30;12088:34;12068:18;;;12061:62;-1:-1:-1;;;12139:18:1;;;12132:33;12182:19;;12412:72:0;11808:399:1;12412:72:0;12511:13;;-1:-1:-1;;;;;12505:19:0;;;12511:13;;12505:19;12502:146;;12578:14;;12569:6;12553:13;12563:2;12553:9;:13::i;:::-;:22;;;;:::i;:::-;:39;12545:87;;;;-1:-1:-1;;;12545:87:0;;12547:2:1;12545:87:0;;;12529:21:1;12586:2;12566:18;;;12559:30;12625:34;12605:18;;;12598:62;-1:-1:-1;;;12676:18:1;;;12669:33;12719:19;;12545:87:0;12345:399:1;12545:87:0;12665:28;12696:24;12714:4;12696:9;:24::i;:::-;12774:19;;12838:12;;12665:55;;-1:-1:-1;12750:43:0;;;;12814:36;;12811:124;;12907:12;;12884:35;;12811:124;12956:7;:18;;;;-1:-1:-1;12968:6:0;;-1:-1:-1;;;12968:6:0;;;;12967:7;12956:18;:43;;;;-1:-1:-1;12986:13:0;;-1:-1:-1;;;;;12978:21:0;;;12986:13;;12978:21;;12956:43;:58;;;;-1:-1:-1;13003:11:0;;-1:-1:-1;;;13003:11:0;;;;12956:58;:87;;;;-1:-1:-1;;;;;;13019:24:0;;;;;;:18;:24;;;;;;;;13018:25;12956:87;:114;;;;-1:-1:-1;;;;;;13048:22:0;;;;;;:18;:22;;;;;;;;13047:23;12956:114;12952:386;;;13091:38;13108:20;13091:16;:38::i;:::-;13177:21;13221:22;;13217:106;;13268:35;13281:21;13268:12;:35::i;:::-;13072:266;12952:386;12122:1227;;12084:1265;-1:-1:-1;;;;;13427:24:0;;13362:12;13427:24;;;:18;:24;;;;;;13377:4;;13427:24;;;:50;;-1:-1:-1;;;;;;13455:22:0;;;;;;:18;:22;;;;;;;;13427:50;13426:102;;;-1:-1:-1;13491:13:0;;-1:-1:-1;;;;;13483:21:0;;;13491:13;;13483:21;;;;:44;;-1:-1:-1;13514:13:0;;-1:-1:-1;;;;;13508:19:0;;;13514:13;;13508:19;;13483:44;13422:597;;;-1:-1:-1;13555:5:0;13422:597;;;13639:13;;-1:-1:-1;;;;;13631:21:0;;;13639:13;;13631:21;:55;;;;-1:-1:-1;13670:15:0;;-1:-1:-1;;;;;13656:30:0;;;13670:15;;13656:30;;13631:55;13628:162;;;13719:14;;13707:9;:26;13762:12;;13752:7;:22;13628:162;13850:13;;-1:-1:-1;;;;;13844:19:0;;;13850:13;;13844:19;:55;;;;-1:-1:-1;13883:15:0;;-1:-1:-1;;;;;13867:32:0;;;13883:15;;13867:32;;13844:55;13840:165;;;13932:15;;13920:9;:27;13976:13;;13966:7;:23;13840:165;14032:41;14047:4;14053:2;14057:6;14065:7;14032:14;:41::i;4814:224::-;4934:7;4970:12;4962:6;;;;4954:29;;;;-1:-1:-1;;;4954:29:0;;;;;;;;:::i;:::-;-1:-1:-1;4994:9:0;5006:5;5010:1;5006;:5;:::i;:::-;4994:17;4814:224;-1:-1:-1;;;;;4814:224:0:o;14582:99::-;14639:17;;:34;;-1:-1:-1;;;;;14639:17:0;;;;:34;;;;;14666:6;;14639:17;:34;:17;:34;14666:6;14639:17;:34;;;;;;;;;;;;;;;;;;;10672:323;10767:7;10825;;10814;:18;;10792:110;;;;-1:-1:-1;;;10792:110:0;;13081:2:1;10792:110:0;;;13063:21:1;13120:2;13100:18;;;13093:30;13159:34;13139:18;;;13132:62;-1:-1:-1;;;13210:18:1;;;13203:40;13260:19;;10792:110:0;12879:406:1;10792:110:0;10913:19;10935:10;:8;:10::i;:::-;10913:32;-1:-1:-1;10963:24:0;:7;10913:32;10963:11;:24::i;:::-;10956:31;10672:323;-1:-1:-1;;;10672:323:0:o;14090:483::-;8369:6;:13;;-1:-1:-1;;;;8369:13:0;-1:-1:-1;;;8369:13:0;;;14192:16:::1;::::0;;14206:1:::1;14192:16:::0;;;;;::::1;::::0;;-1:-1:-1;;14192:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14192:16:0::1;14168:40;;14237:4;14219;14224:1;14219:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14219:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;14263:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;14263:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;14219:7;;14263:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14253:4;14258:1;14253:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14253:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;14328:15:::1;::::0;14296:62:::1;::::0;14313:4:::1;::::0;14328:15:::1;14346:11:::0;14296:8:::1;:62::i;:::-;14369:15;::::0;:196:::1;::::0;-1:-1:-1;;;14369:196:0;;-1:-1:-1;;;;;14369:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;14450:11;;14369:15:::1;::::0;14492:4;;14519::::1;::::0;14539:15:::1;::::0;14369:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;8405:6:0;:14;;-1:-1:-1;;;;8405:14:0;;;-1:-1:-1;;;;14090:483:0:o;15568:282::-;15724:7;15719:28;;15733:14;:12;:14::i;:::-;15758:44;15776:6;15784:9;15795:6;15758:17;:44::i;:::-;15818:7;15813:29;;15827:15;11290:17;;11278:9;:29;11328:15;;11318:7;:25;11234:117;18537:164;18579:7;18600:15;18617;18636:19;:17;:19::i;:::-;18599:56;;-1:-1:-1;18599:56:0;-1:-1:-1;18673:20:0;18599:56;;18673:11;:20::i;:::-;18666:27;;;;18537:164;:::o;5302:132::-;5360:7;5387:39;5391:1;5394;5387:39;;;;;;;;;;;;;;;;;:3;:39::i;11004:221::-;11051:9;;:14;:30;;;;-1:-1:-1;11069:7:0;;:12;11051:30;11047:43;;;11004:221::o;11047:43::-;11123:9;;;11103:17;:29;11161:7;;;11143:15;:25;-1:-1:-1;11182:13:0;;;;11206:11;11004:221::o;15859:610::-;16006:15;16036:23;16074:12;16101:23;16139:12;16166:13;16193:19;16204:7;16193:10;:19::i;:::-;-1:-1:-1;;;;;16241:15:0;;;;;;:7;:15;;;;;;15991:221;;-1:-1:-1;15991:221:0;;-1:-1:-1;15991:221:0;;-1:-1:-1;15991:221:0;-1:-1:-1;15991:221:0;-1:-1:-1;15991:221:0;-1:-1:-1;16241:28:0;;15991:221;16241:19;:28::i;:::-;-1:-1:-1;;;;;16223:15:0;;;;;;;:7;:15;;;;;;:46;;;;16301:18;;;;;;;:39;;16324:15;16301:22;:39::i;:::-;-1:-1:-1;;;;;16280:18:0;;;;;;:7;:18;;;;;:60;16351:16;16361:5;16351:9;:16::i;:::-;16378:23;16390:4;16396;16378:11;:23::i;:::-;16434:9;-1:-1:-1;;;;;16417:44:0;16426:6;-1:-1:-1;;;;;16417:44:0;;16445:15;16417:44;;;;3041:25:1;;3029:2;3014:18;;2895:177;16417:44:0;;;;;;;;15980:489;;;;;;15859:610;;;:::o;18710:257::-;18808:7;;18761;;;;7126:15;18876:20;18808:7;7126:15;18876:11;:20::i;:::-;18866:7;:30;18862:61;;;-1:-1:-1;;18906:7:0;;;7126:15;;-1:-1:-1;18710:257:0;-1:-1:-1;18710:257:0:o;18862:61::-;18942:7;;18951;;-1:-1:-1;18710:257:0;-1:-1:-1;18710:257:0:o;5443:223::-;5563:7;5598:12;5591:5;5583:28;;;;-1:-1:-1;;;5583:28:0;;;;;;;;:::i;:::-;-1:-1:-1;5622:9:0;5634:5;5638:1;5634;:5;:::i;16892:615::-;16992:7;17014;17036;17058;17080;17102;17138:23;17163:12;17177:13;17207:40;17219:7;17228:9;;17239:7;;17207:11;:40::i;:::-;17137:110;;;;;;17258:19;17280:10;:8;:10::i;:::-;17258:32;;17302:15;17319:23;17344:12;17373:46;17385:7;17394:4;17400:5;17407:11;17373;:46::i;:::-;17301:118;;-1:-1:-1;17301:118:0;-1:-1:-1;17301:118:0;-1:-1:-1;17470:15:0;;-1:-1:-1;17487:4:0;;-1:-1:-1;17493:5:0;;-1:-1:-1;;;;;16892:615:0;;;;;;;:::o;4669:136::-;4727:7;4754:43;4758:1;4761;4754:43;;;;;;;;;;;;;;;;;:3;:43::i;4481:179::-;4539:7;;4571:5;4575:1;4571;:5;:::i;:::-;4559:17;;4600:1;4595;:6;;4587:46;;;;-1:-1:-1;;;4587:46:0;;14955:2:1;4587:46:0;;;14937:21:1;14994:2;14974:18;;;14967:30;15033:29;15013:18;;;15006:57;15080:18;;4587:46:0;14753:351:1;16478:211:0;16531:19;16553:10;:8;:10::i;:::-;16531:32;-1:-1:-1;16574:13:0;16590:22;:5;16531:32;16590:9;:22::i;:::-;16664:4;16648:22;;;;:7;:22;;;;;;16574:38;;-1:-1:-1;16648:33:0;;16574:38;16648:26;:33::i;:::-;16639:4;16623:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;16478:211:0:o;16698:147::-;16776:7;;:17;;16788:4;16776:11;:17::i;:::-;16766:7;:27;16817:10;;:20;;16832:4;16817:14;:20::i;:::-;16804:10;:33;-1:-1:-1;;16698:147:0:o;17516:469::-;17685:7;;;;17779:30;17805:3;17779:21;:7;17791:8;17779:11;:21::i;:::-;:25;;:30::i;:::-;17764:45;-1:-1:-1;17820:13:0;17836:28;17860:3;17836:19;:7;17848:6;17836:11;:19::i;:28::-;17820:44;-1:-1:-1;17875:23:0;17901:28;17820:44;17901:17;:7;17913:4;17901:11;:17::i;:::-;:21;;:28::i;:::-;17875:54;17965:4;;-1:-1:-1;17971:5:0;;-1:-1:-1;17516:469:0;;-1:-1:-1;;;;;17516:469:0:o;17994:534::-;18188:7;;;;18285:24;:7;18297:11;18285;:24::i;:::-;18267:42;-1:-1:-1;18320:12:0;18335:21;:4;18344:11;18335:8;:21::i;:::-;18320:36;-1:-1:-1;18367:13:0;18383:22;:5;18393:11;18383:9;:22::i;:::-;18367:38;-1:-1:-1;18416:23:0;18442:28;18367:38;18442:17;:7;18454:4;18442:11;:17::i;:28::-;18489:7;;;;-1:-1:-1;18515:4:0;;-1:-1:-1;17994:534:0;;-1:-1:-1;;;;;;;17994:534:0:o;5047:246::-;5105:7;5129:6;5125:47;;-1:-1:-1;5159:1:0;5152:8;;5125:47;5182:9;5194:5;5198:1;5194;:5;:::i;:::-;5182:17;-1:-1:-1;5227:1:0;5218:5;5222:1;5182:17;5218:5;:::i;:::-;:10;5210:56;;;;-1:-1:-1;;;5210:56:0;;15484:2:1;5210:56:0;;;15466:21:1;15523:2;15503:18;;;15496:30;15562:34;15542:18;;;15535:62;-1:-1:-1;;;15613:18:1;;;15606:31;15654:19;;5210:56:0;15282:397:1;14:127;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:131;-1:-1:-1;;;;;221:31:1;;211:42;;201:70;;267:1;264;257:12;282:134;350:20;;379:31;350:20;379:31;:::i;:::-;282:134;;;:::o;421:1121::-;505:6;536:2;579;567:9;558:7;554:23;550:32;547:52;;;595:1;592;585:12;547:52;635:9;622:23;664:18;705:2;697:6;694:14;691:34;;;721:1;718;711:12;691:34;759:6;748:9;744:22;734:32;;804:7;797:4;793:2;789:13;785:27;775:55;;826:1;823;816:12;775:55;862:2;849:16;884:2;880;877:10;874:36;;;890:18;;:::i;:::-;936:2;933:1;929:10;968:2;962:9;1031:2;1027:7;1022:2;1018;1014:11;1010:25;1002:6;998:38;1086:6;1074:10;1071:22;1066:2;1054:10;1051:18;1048:46;1045:72;;;1097:18;;:::i;:::-;1133:2;1126:22;1183:18;;;1217:15;;;;-1:-1:-1;1259:11:1;;;1255:20;;;1287:19;;;1284:39;;;1319:1;1316;1309:12;1284:39;1343:11;;;;1363:148;1379:6;1374:3;1371:15;1363:148;;;1445:23;1464:3;1445:23;:::i;:::-;1433:36;;1396:12;;;;1489;;;;1363:148;;;1530:6;421:1121;-1:-1:-1;;;;;;;;421:1121:1:o;1547:597::-;1659:4;1688:2;1717;1706:9;1699:21;1749:6;1743:13;1792:6;1787:2;1776:9;1772:18;1765:34;1817:1;1827:140;1841:6;1838:1;1835:13;1827:140;;;1936:14;;;1932:23;;1926:30;1902:17;;;1921:2;1898:26;1891:66;1856:10;;1827:140;;;1985:6;1982:1;1979:13;1976:91;;;2055:1;2050:2;2041:6;2030:9;2026:22;2022:31;2015:42;1976:91;-1:-1:-1;2128:2:1;2107:15;-1:-1:-1;;2103:29:1;2088:45;;;;2135:2;2084:54;;1547:597;-1:-1:-1;;;1547:597:1:o;2149:315::-;2217:6;2225;2278:2;2266:9;2257:7;2253:23;2249:32;2246:52;;;2294:1;2291;2284:12;2246:52;2333:9;2320:23;2352:31;2377:5;2352:31;:::i;:::-;2402:5;2454:2;2439:18;;;;2426:32;;-1:-1:-1;;;2149:315:1:o;3077:456::-;3154:6;3162;3170;3223:2;3211:9;3202:7;3198:23;3194:32;3191:52;;;3239:1;3236;3229:12;3191:52;3278:9;3265:23;3297:31;3322:5;3297:31;:::i;:::-;3347:5;-1:-1:-1;3404:2:1;3389:18;;3376:32;3417:33;3376:32;3417:33;:::i;:::-;3077:456;;3469:7;;-1:-1:-1;;;3523:2:1;3508:18;;;;3495:32;;3077:456::o;3935:247::-;3994:6;4047:2;4035:9;4026:7;4022:23;4018:32;4015:52;;;4063:1;4060;4053:12;4015:52;4102:9;4089:23;4121:31;4146:5;4121:31;:::i;4187:160::-;4252:20;;4308:13;;4301:21;4291:32;;4281:60;;4337:1;4334;4327:12;4352:180;4408:6;4461:2;4449:9;4440:7;4436:23;4432:32;4429:52;;;4477:1;4474;4467:12;4429:52;4500:26;4516:9;4500:26;:::i;4537:180::-;4596:6;4649:2;4637:9;4628:7;4624:23;4620:32;4617:52;;;4665:1;4662;4655:12;4617:52;-1:-1:-1;4688:23:1;;4537:180;-1:-1:-1;4537:180:1:o;4722:385::-;4808:6;4816;4824;4832;4885:3;4873:9;4864:7;4860:23;4856:33;4853:53;;;4902:1;4899;4892:12;4853:53;-1:-1:-1;;4925:23:1;;;4995:2;4980:18;;4967:32;;-1:-1:-1;5046:2:1;5031:18;;5018:32;;5097:2;5082:18;5069:32;;-1:-1:-1;4722:385:1;-1:-1:-1;4722:385:1:o;5112:689::-;5204:6;5212;5220;5273:2;5261:9;5252:7;5248:23;5244:32;5241:52;;;5289:1;5286;5279:12;5241:52;5329:9;5316:23;5358:18;5399:2;5391:6;5388:14;5385:34;;;5415:1;5412;5405:12;5385:34;5453:6;5442:9;5438:22;5428:32;;5498:7;5491:4;5487:2;5483:13;5479:27;5469:55;;5520:1;5517;5510:12;5469:55;5560:2;5547:16;5586:2;5578:6;5575:14;5572:34;;;5602:1;5599;5592:12;5572:34;5657:7;5650:4;5640:6;5637:1;5633:14;5629:2;5625:23;5621:34;5618:47;5615:67;;;5678:1;5675;5668:12;5615:67;5709:4;5701:13;;;;-1:-1:-1;5733:6:1;-1:-1:-1;5758:37:1;;5774:20;;;-1:-1:-1;5758:37:1;:::i;:::-;5748:47;;5112:689;;;;;:::o;5806:388::-;5874:6;5882;5935:2;5923:9;5914:7;5910:23;5906:32;5903:52;;;5951:1;5948;5941:12;5903:52;5990:9;5977:23;6009:31;6034:5;6009:31;:::i;:::-;6059:5;-1:-1:-1;6116:2:1;6101:18;;6088:32;6129:33;6088:32;6129:33;:::i;:::-;6181:7;6171:17;;;5806:388;;;;;:::o;6199:356::-;6401:2;6383:21;;;6420:18;;;6413:30;6479:34;6474:2;6459:18;;6452:62;6546:2;6531:18;;6199:356::o;6560:127::-;6621:10;6616:3;6612:20;6609:1;6602:31;6652:4;6649:1;6642:15;6676:4;6673:1;6666:15;6692:127;6753:10;6748:3;6744:20;6741:1;6734:31;6784:4;6781:1;6774:15;6808:4;6805:1;6798:15;6824:135;6863:3;-1:-1:-1;;6884:17:1;;6881:43;;;6904:18;;:::i;:::-;-1:-1:-1;6951:1:1;6940:13;;6824:135::o;12212:128::-;12252:3;12283:1;12279:6;12276:1;12273:13;12270:39;;;12289:18;;:::i;:::-;-1:-1:-1;12325:9:1;;12212:128::o;12749:125::-;12789:4;12817:1;12814;12811:8;12808:34;;;12822:18;;:::i;:::-;-1:-1:-1;12859:9:1;;12749:125::o;13290:251::-;13360:6;13413:2;13401:9;13392:7;13388:23;13384:32;13381:52;;;13429:1;13426;13419:12;13381:52;13461:9;13455:16;13480:31;13505:5;13480:31;:::i;13546:980::-;13808:4;13856:3;13845:9;13841:19;13887:6;13876:9;13869:25;13913:2;13951:6;13946:2;13935:9;13931:18;13924:34;13994:3;13989:2;13978:9;13974:18;13967:31;14018:6;14053;14047:13;14084:6;14076;14069:22;14122:3;14111:9;14107:19;14100:26;;14161:2;14153:6;14149:15;14135:29;;14182:1;14192:195;14206:6;14203:1;14200:13;14192:195;;;14271:13;;-1:-1:-1;;;;;14267:39:1;14255:52;;14362:15;;;;14327:12;;;;14303:1;14221:9;14192:195;;;-1:-1:-1;;;;;;;14443:32:1;;;;14438:2;14423:18;;14416:60;-1:-1:-1;;;14507:3:1;14492:19;14485:35;14404:3;13546:980;-1:-1:-1;;;13546:980:1:o;14531:217::-;14571:1;14597;14587:132;;14641:10;14636:3;14632:20;14629:1;14622:31;14676:4;14673:1;14666:15;14704:4;14701:1;14694:15;14587:132;-1:-1:-1;14733:9:1;;14531:217::o;15109:168::-;15149:7;15215:1;15211;15207:6;15203:14;15200:1;15197:21;15192:1;15185:9;15178:17;15174:45;15171:71;;;15222:18;;:::i;:::-;-1:-1:-1;15262:9:1;;15109:168::o

Swarm Source

ipfs://f2933580dba51cb29fe63957f9284c2f2cbe8dcce9ae21af6f14e49569064f94

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.