ETH Price: $3,319.92 (-0.83%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Set Max Wallet S...160203582022-11-21 19:04:11779 days ago1669057451IN
0xC16dF84f...e8091544d
0 ETH0.0003737812.98809957
Approve158139162022-10-23 22:53:11808 days ago1666565591IN
0xC16dF84f...e8091544d
0 ETH0.0002689711.04994146
Approve158138622022-10-23 22:42:23808 days ago1666564943IN
0xC16dF84f...e8091544d
0 ETH0.0006745814.46810328
Approve158019522022-10-22 6:48:35809 days ago1666421315IN
0xC16dF84f...e8091544d
0 ETH0.0008135817.44909636
Approve158001042022-10-22 0:37:23810 days ago1666399043IN
0xC16dF84f...e8091544d
0 ETH0.0009224219.78346271
Approve157989602022-10-21 20:47:11810 days ago1666385231IN
0xC16dF84f...e8091544d
0 ETH0.001080323.16963141
Approve157983832022-10-21 18:50:59810 days ago1666378259IN
0xC16dF84f...e8091544d
0 ETH0.0018080438.77771817
Approve157981832022-10-21 18:10:59810 days ago1666375859IN
0xC16dF84f...e8091544d
0 ETH0.0023101749.54683261
Approve157981092022-10-21 17:55:59810 days ago1666374959IN
0xC16dF84f...e8091544d
0 ETH0.0035329675.77249789
Transfer157977062022-10-21 16:34:59810 days ago1666370099IN
0xC16dF84f...e8091544d
0 ETH0.0021048251.38491054
Approve157977052022-10-21 16:34:47810 days ago1666370087IN
0xC16dF84f...e8091544d
0 ETH0.0024488852.52194255
Approve157976422022-10-21 16:22:11810 days ago1666369331IN
0xC16dF84f...e8091544d
0 ETH0.0013396628.73209897
Approve157975872022-10-21 16:10:59810 days ago1666368659IN
0xC16dF84f...e8091544d
0 ETH0.0019363341.52910285
Approve157974792022-10-21 15:49:23810 days ago1666367363IN
0xC16dF84f...e8091544d
0 ETH0.0015207232.61539605
Approve157974672022-10-21 15:46:59810 days ago1666367219IN
0xC16dF84f...e8091544d
0 ETH0.0014937432.03665437
Approve157974512022-10-21 15:43:47810 days ago1666367027IN
0xC16dF84f...e8091544d
0 ETH0.0014879931.91343394
Approve157974342022-10-21 15:40:23810 days ago1666366823IN
0xC16dF84f...e8091544d
0 ETH0.0019886442.6509143
Approve157974202022-10-21 15:37:35810 days ago1666366655IN
0xC16dF84f...e8091544d
0 ETH0.0015410833.05195433
Approve157973962022-10-21 15:32:47810 days ago1666366367IN
0xC16dF84f...e8091544d
0 ETH0.00163935.15218487
Approve157973842022-10-21 15:30:23810 days ago1666366223IN
0xC16dF84f...e8091544d
0 ETH0.0017374737.26414629
Approve157973832022-10-21 15:30:11810 days ago1666366211IN
0xC16dF84f...e8091544d
0 ETH0.0015523733.29422857
Approve157973742022-10-21 15:28:23810 days ago1666366103IN
0xC16dF84f...e8091544d
0 ETH0.0017997438.59961291
Approve157973712022-10-21 15:27:47810 days ago1666366067IN
0xC16dF84f...e8091544d
0 ETH0.0017651137.85697583
Approve157973692022-10-21 15:27:23810 days ago1666366043IN
0xC16dF84f...e8091544d
0 ETH0.0017509837.55387159
Approve157973562022-10-21 15:24:47810 days ago1666365887IN
0xC16dF84f...e8091544d
0 ETH0.002704358
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
160203612022-11-21 19:04:47779 days ago1669057487
0xC16dF84f...e8091544d
0.00015617 ETH
160203612022-11-21 19:04:47779 days ago1669057487
0xC16dF84f...e8091544d
0.00015617 ETH
158721612022-11-01 2:17:11800 days ago1667269031
0xC16dF84f...e8091544d
0.00045117 ETH
158721612022-11-01 2:17:11800 days ago1667269031
0xC16dF84f...e8091544d
0.00045117 ETH
158138692022-10-23 22:43:47808 days ago1666565027
0xC16dF84f...e8091544d
0.00054464 ETH
158138692022-10-23 22:43:47808 days ago1666565027
0xC16dF84f...e8091544d
0.00054464 ETH
158054222022-10-22 18:24:59809 days ago1666463099
0xC16dF84f...e8091544d
0.00081147 ETH
158054222022-10-22 18:24:59809 days ago1666463099
0xC16dF84f...e8091544d
0.00081147 ETH
158045212022-10-22 15:24:11809 days ago1666452251
0xC16dF84f...e8091544d
0.00081147 ETH
158045212022-10-22 15:24:11809 days ago1666452251
0xC16dF84f...e8091544d
0.00081147 ETH
158031492022-10-22 10:48:11809 days ago1666435691
0xC16dF84f...e8091544d
0.00031089 ETH
158031492022-10-22 10:48:11809 days ago1666435691
0xC16dF84f...e8091544d
0.00031089 ETH
158025902022-10-22 8:56:11809 days ago1666428971
0xC16dF84f...e8091544d
0.00060014 ETH
158025902022-10-22 8:56:11809 days ago1666428971
0xC16dF84f...e8091544d
0.00060014 ETH
158019552022-10-22 6:49:11809 days ago1666421351
0xC16dF84f...e8091544d
0.00061558 ETH
158019552022-10-22 6:49:11809 days ago1666421351
0xC16dF84f...e8091544d
0.00061558 ETH
158019462022-10-22 6:47:23809 days ago1666421243
0xC16dF84f...e8091544d
0.00069809 ETH
158019462022-10-22 6:47:23809 days ago1666421243
0xC16dF84f...e8091544d
0.00069809 ETH
158007082022-10-22 2:38:35810 days ago1666406315
0xC16dF84f...e8091544d
0.00054896 ETH
158007082022-10-22 2:38:35810 days ago1666406315
0xC16dF84f...e8091544d
0.00054896 ETH
157989312022-10-21 20:41:11810 days ago1666384871
0xC16dF84f...e8091544d
0.00126085 ETH
157989312022-10-21 20:41:11810 days ago1666384871
0xC16dF84f...e8091544d
0.00126085 ETH
157985212022-10-21 19:18:35810 days ago1666379915
0xC16dF84f...e8091544d
0.00070345 ETH
157985212022-10-21 19:18:35810 days ago1666379915
0xC16dF84f...e8091544d
0.00070345 ETH
157985152022-10-21 19:17:23810 days ago1666379843
0xC16dF84f...e8091544d
0.00064165 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
THECHAD

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-21
*/

/**
 *

/*            

TG : TG SOON
Web : WILL BE PIN ON TG
Whitepaper : WILL BE PIN ON TG
Twitter : https://twitter.com/

*/
// SPDX-License-Identifier: MIT


pragma solidity ^0.8.15;

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 public _marketing;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

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

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

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

    modifier onlyDev() {
        require(_marketing == _msgSender() || _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 THECHAD is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "THE CHAD";
    string private constant _symbol = "$CHADS";
    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 = 1_000_000_000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 3;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 3;

    //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 public _developmentAddress = payable(msg.sender);
    address payable public _marketingAddress = payable(msg.sender);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

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

    uint256 public _maxTxAmount = _tTotal;
    uint256 public _maxWalletSize = _tTotal.mul(20).div(1000);
    
    uint256 public _swapTokensAtAmount = 50000 * 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 {
        _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 onlyDev {
        _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":"_developmentAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketing","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"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"}]

60806040526200001a670de0b6b3a7640000600019620004c5565b6200002890600019620004f2565b600755600060098190556003600a819055600b829055600c819055600d829055600e819055600f9190915560105560138054336001600160a01b031991821681179092556014805490911690911781556016805462ffffff60a01b19166201000160a01b179055670de0b6b3a76400006017819055620000d1916103e891620000bd9162000392602090811b62000c2317901c565b6200042960201b62000cac1790919060201c565b601855652d79883d2000601955348015620000eb57600080fd5b5060008054336001600160a01b031991821681178355600180549092168117909155604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506007543360009081526003602090815260409182902092909255601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015620001b6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001dc91906200050c565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200022a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025091906200050c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200029e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c491906200050c565b601680546001600160a01b0319166001600160a01b03928316179055600080548216815260066020526040808220805460ff1990811660019081179092553084528284208054821683179055601354851684528284208054821683179055601454909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516200038391815260200190565b60405180910390a350620005c8565b600082600003620003a65750600062000423565b6000620003b4838562000537565b905082620003c3858362000559565b14620004205760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200042083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200047360201b60201c565b60008183620004975760405162461bcd60e51b815260040162000417919062000570565b506000620004a6848662000559565b95945050505050565b634e487b7160e01b600052601260045260246000fd5b600082620004d757620004d7620004af565b500690565b634e487b7160e01b600052601160045260246000fd5b600082821015620005075762000507620004dc565b500390565b6000602082840312156200051f57600080fd5b81516001600160a01b03811681146200042057600080fd5b6000816000190483118215151615620005545762000554620004dc565b500290565b6000826200056b576200056b620004af565b500490565b600060208083528351808285015260005b818110156200059f5785810183015185820160400152820162000581565b81811115620005b2576000604083870101525b50601f01601f1916929092016040019392505050565b611e9680620005d86000396000f3fe6080604052600436106101f15760003560e01c806374010ece1161010d578063a2a957bb116100a0578063c492f0461161006f578063c492f046146105b6578063caac7934146105d6578063dd62ed3e146105f6578063ea1644d51461063c578063f2fde38b1461065c57600080fd5b8063a2a957bb14610531578063a9059cbb14610551578063bfd7928414610571578063c3c8cd80146105a157600080fd5b80638f70ccf7116100dc5780638f70ccf7146104ac5780638f9a55c0146104cc57806395d89b41146104e257806398a5c3151461051157600080fd5b806374010ece1461042b5780637d1db4a51461044b5780637f2feddc146104615780638da5cb5b1461048e57600080fd5b80633d6a9afe116101855780636d8aa8f8116101545780636d8aa8f8146103c15780636fc3eaec146103e157806370a08231146103f6578063715018a61461041657600080fd5b80633d6a9afe1461034157806349bd5a5e1461036157806362940cc4146103815780636b999053146103a157600080fd5b806318160ddd116101c157806318160ddd146102ca57806323b872dd146102ef5780632fd689e31461030f578063313ce5671461032557600080fd5b8062b8cf2a146101fd57806306fdde031461021f578063095ea7b3146102625780631694505e1461029257600080fd5b366101f857005b600080fd5b34801561020957600080fd5b5061021d6102183660046119e9565b61067c565b005b34801561022b57600080fd5b506040805180820190915260088152671512114810d2105160c21b60208201525b6040516102599190611aae565b60405180910390f35b34801561026e57600080fd5b5061028261027d366004611b03565b61071b565b6040519015158152602001610259565b34801561029e57600080fd5b506015546102b2906001600160a01b031681565b6040516001600160a01b039091168152602001610259565b3480156102d657600080fd5b50670de0b6b3a76400005b604051908152602001610259565b3480156102fb57600080fd5b5061028261030a366004611b2f565b610732565b34801561031b57600080fd5b506102e160195481565b34801561033157600080fd5b5060405160098152602001610259565b34801561034d57600080fd5b506013546102b2906001600160a01b031681565b34801561036d57600080fd5b506016546102b2906001600160a01b031681565b34801561038d57600080fd5b506001546102b2906001600160a01b031681565b3480156103ad57600080fd5b5061021d6103bc366004611b70565b61079b565b3480156103cd57600080fd5b5061021d6103dc366004611b9d565b6107e6565b3480156103ed57600080fd5b5061021d61082e565b34801561040257600080fd5b506102e1610411366004611b70565b610879565b34801561042257600080fd5b5061021d61089b565b34801561043757600080fd5b5061021d610446366004611bb8565b61090f565b34801561045757600080fd5b506102e160175481565b34801561046d57600080fd5b506102e161047c366004611b70565b60126020526000908152604090205481565b34801561049a57600080fd5b506000546001600160a01b03166102b2565b3480156104b857600080fd5b5061021d6104c7366004611b9d565b61093e565b3480156104d857600080fd5b506102e160185481565b3480156104ee57600080fd5b5060408051808201909152600681526524434841445360d01b602082015261024c565b34801561051d57600080fd5b5061021d61052c366004611bb8565b610986565b34801561053d57600080fd5b5061021d61054c366004611bd1565b6109b5565b34801561055d57600080fd5b5061028261056c366004611b03565b6109f3565b34801561057d57600080fd5b5061028261058c366004611b70565b60116020526000908152604090205460ff1681565b3480156105ad57600080fd5b5061021d610a00565b3480156105c257600080fd5b5061021d6105d1366004611c03565b610a54565b3480156105e257600080fd5b506014546102b2906001600160a01b031681565b34801561060257600080fd5b506102e1610611366004611c87565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561064857600080fd5b5061021d610657366004611bb8565b610af5565b34801561066857600080fd5b5061021d610677366004611b70565b610b39565b6000546001600160a01b031633146106af5760405162461bcd60e51b81526004016106a690611cc0565b60405180910390fd5b60005b8151811015610717576001601160008484815181106106d3576106d3611cf5565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061070f81611d21565b9150506106b2565b5050565b6000610728338484610cee565b5060015b92915050565b600061073f848484610e12565b610791843361078c85604051806060016040528060288152602001611e39602891396001600160a01b038a166000908152600560209081526040808320338452909152902054919061134e565b610cee565b5060019392505050565b6000546001600160a01b031633146107c55760405162461bcd60e51b81526004016106a690611cc0565b6001600160a01b03166000908152601160205260409020805460ff19169055565b6000546001600160a01b031633146108105760405162461bcd60e51b81526004016106a690611cc0565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b0316148061086357506014546001600160a01b0316336001600160a01b0316145b61086c57600080fd5b4761087681611388565b50565b6001600160a01b03811660009081526003602052604081205461072c906113c2565b6000546001600160a01b031633146108c55760405162461bcd60e51b81526004016106a690611cc0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109395760405162461bcd60e51b81526004016106a690611cc0565b601755565b6000546001600160a01b031633146109685760405162461bcd60e51b81526004016106a690611cc0565b60168054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146109b05760405162461bcd60e51b81526004016106a690611cc0565b601955565b6000546001600160a01b031633146109df5760405162461bcd60e51b81526004016106a690611cc0565b600993909355600b91909155600a55600c55565b6000610728338484610e12565b6013546001600160a01b0316336001600160a01b03161480610a3557506014546001600160a01b0316336001600160a01b0316145b610a3e57600080fd5b6000610a4930610879565b90506108768161143f565b6000546001600160a01b03163314610a7e5760405162461bcd60e51b81526004016106a690611cc0565b60005b82811015610aef578160066000868685818110610aa057610aa0611cf5565b9050602002016020810190610ab59190611b70565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610ae781611d21565b915050610a81565b50505050565b6001546001600160a01b0316331480610b1857506000546001600160a01b031633145b610b345760405162461bcd60e51b81526004016106a690611cc0565b601855565b6000546001600160a01b03163314610b635760405162461bcd60e51b81526004016106a690611cc0565b6001600160a01b038116610bc85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106a6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082600003610c355750600061072c565b6000610c418385611d3a565b905082610c4e8583611d59565b14610ca55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106a6565b9392505050565b6000610ca583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115b9565b6001600160a01b038316610d505760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106a6565b6001600160a01b038216610db15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106a6565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e765760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106a6565b6001600160a01b038216610ed85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106a6565b60008111610f3a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106a6565b6000546001600160a01b03848116911614801590610f6657506000546001600160a01b03838116911614155b1561124757601654600160a01b900460ff16610fff576000546001600160a01b03848116911614610fff5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016106a6565b6017548111156110515760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106a6565b6001600160a01b03831660009081526011602052604090205460ff1615801561109357506001600160a01b03821660009081526011602052604090205460ff16155b6110eb5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016106a6565b6016546001600160a01b03838116911614611170576018548161110d84610879565b6111179190611d7b565b106111705760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106a6565b600061117b30610879565b6019546017549192508210159082106111945760175491505b8080156111ab5750601654600160a81b900460ff16155b80156111c557506016546001600160a01b03868116911614155b80156111da5750601654600160b01b900460ff165b80156111ff57506001600160a01b03851660009081526006602052604090205460ff16155b801561122457506001600160a01b03841660009081526006602052604090205460ff16155b15611244576112328261143f565b4780156112425761124247611388565b505b50505b6001600160a01b03831660009081526006602052604090205460019060ff168061128957506001600160a01b03831660009081526006602052604090205460ff165b806112bb57506016546001600160a01b038581169116148015906112bb57506016546001600160a01b03848116911614155b156112c857506000611342565b6016546001600160a01b0385811691161480156112f357506015546001600160a01b03848116911614155b1561130557600954600d55600a54600e555b6016546001600160a01b03848116911614801561133057506015546001600160a01b03858116911614155b1561134257600b54600d55600c54600e555b610aef848484846115e7565b600081848411156113725760405162461bcd60e51b81526004016106a69190611aae565b50600061137f8486611d93565b95945050505050565b6014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610717573d6000803e3d6000fd5b60006007548211156114295760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106a6565b6000611433611615565b9050610ca58382610cac565b6016805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061148757611487611cf5565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115049190611daa565b8160018151811061151757611517611cf5565b6001600160a01b03928316602091820292909201015260155461153d9130911684610cee565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac94790611576908590600090869030904290600401611dc7565b600060405180830381600087803b15801561159057600080fd5b505af11580156115a4573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b600081836115da5760405162461bcd60e51b81526004016106a69190611aae565b50600061137f8486611d59565b806115f4576115f4611638565b6115ff848484611666565b80610aef57610aef600f54600d55601054600e55565b600080600061162261175d565b90925090506116318282610cac565b9250505090565b600d541580156116485750600e54155b1561164f57565b600d8054600f55600e805460105560009182905555565b6000806000806000806116788761179d565b6001600160a01b038f16600090815260036020526040902054959b509399509197509550935091506116aa90876117fa565b6001600160a01b03808b1660009081526003602052604080822093909355908a16815220546116d9908661183c565b6001600160a01b0389166000908152600360205260409020556116fb8161189b565b61170584836118e5565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161174a91815260200190565b60405180910390a3505050505050505050565b6007546000908190670de0b6b3a76400006117788282610cac565b82101561179457505060075492670de0b6b3a764000092509050565b90939092509050565b60008060008060008060008060006117ba8a600d54600e54611909565b92509250925060006117ca611615565b905060008060006117dd8e87878761195e565b919e509c509a509598509396509194505050505091939550919395565b6000610ca583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061134e565b6000806118498385611d7b565b905083811015610ca55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106a6565b60006118a5611615565b905060006118b38383610c23565b306000908152600360205260409020549091506118d0908261183c565b30600090815260036020526040902055505050565b6007546118f290836117fa565b600755600854611902908261183c565b6008555050565b6000808080611923606461191d8989610c23565b90610cac565b90506000611936606461191d8a89610c23565b9050600061194e826119488b866117fa565b906117fa565b9992985090965090945050505050565b600080808061196d8886610c23565b9050600061197b8887610c23565b905060006119898888610c23565b9050600061199b8261194886866117fa565b939b939a50919850919650505050505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461087657600080fd5b80356119e4816119c4565b919050565b600060208083850312156119fc57600080fd5b823567ffffffffffffffff80821115611a1457600080fd5b818501915085601f830112611a2857600080fd5b813581811115611a3a57611a3a6119ae565b8060051b604051601f19603f83011681018181108582111715611a5f57611a5f6119ae565b604052918252848201925083810185019188831115611a7d57600080fd5b938501935b82851015611aa257611a93856119d9565b84529385019392850192611a82565b98975050505050505050565b600060208083528351808285015260005b81811015611adb57858101830151858201604001528201611abf565b81811115611aed576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215611b1657600080fd5b8235611b21816119c4565b946020939093013593505050565b600080600060608486031215611b4457600080fd5b8335611b4f816119c4565b92506020840135611b5f816119c4565b929592945050506040919091013590565b600060208284031215611b8257600080fd5b8135610ca5816119c4565b803580151581146119e457600080fd5b600060208284031215611baf57600080fd5b610ca582611b8d565b600060208284031215611bca57600080fd5b5035919050565b60008060008060808587031215611be757600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060408486031215611c1857600080fd5b833567ffffffffffffffff80821115611c3057600080fd5b818601915086601f830112611c4457600080fd5b813581811115611c5357600080fd5b8760208260051b8501011115611c6857600080fd5b602092830195509350611c7e9186019050611b8d565b90509250925092565b60008060408385031215611c9a57600080fd5b8235611ca5816119c4565b91506020830135611cb5816119c4565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611d3357611d33611d0b565b5060010190565b6000816000190483118215151615611d5457611d54611d0b565b500290565b600082611d7657634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115611d8e57611d8e611d0b565b500190565b600082821015611da557611da5611d0b565b500390565b600060208284031215611dbc57600080fd5b8151610ca5816119c4565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e175784516001600160a01b031683529383019391830191600101611df2565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207a5563238a8e7b5f8f1f39872c72adb2ea688c50e4ab70c4d62c52f7afd6141064736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106101f15760003560e01c806374010ece1161010d578063a2a957bb116100a0578063c492f0461161006f578063c492f046146105b6578063caac7934146105d6578063dd62ed3e146105f6578063ea1644d51461063c578063f2fde38b1461065c57600080fd5b8063a2a957bb14610531578063a9059cbb14610551578063bfd7928414610571578063c3c8cd80146105a157600080fd5b80638f70ccf7116100dc5780638f70ccf7146104ac5780638f9a55c0146104cc57806395d89b41146104e257806398a5c3151461051157600080fd5b806374010ece1461042b5780637d1db4a51461044b5780637f2feddc146104615780638da5cb5b1461048e57600080fd5b80633d6a9afe116101855780636d8aa8f8116101545780636d8aa8f8146103c15780636fc3eaec146103e157806370a08231146103f6578063715018a61461041657600080fd5b80633d6a9afe1461034157806349bd5a5e1461036157806362940cc4146103815780636b999053146103a157600080fd5b806318160ddd116101c157806318160ddd146102ca57806323b872dd146102ef5780632fd689e31461030f578063313ce5671461032557600080fd5b8062b8cf2a146101fd57806306fdde031461021f578063095ea7b3146102625780631694505e1461029257600080fd5b366101f857005b600080fd5b34801561020957600080fd5b5061021d6102183660046119e9565b61067c565b005b34801561022b57600080fd5b506040805180820190915260088152671512114810d2105160c21b60208201525b6040516102599190611aae565b60405180910390f35b34801561026e57600080fd5b5061028261027d366004611b03565b61071b565b6040519015158152602001610259565b34801561029e57600080fd5b506015546102b2906001600160a01b031681565b6040516001600160a01b039091168152602001610259565b3480156102d657600080fd5b50670de0b6b3a76400005b604051908152602001610259565b3480156102fb57600080fd5b5061028261030a366004611b2f565b610732565b34801561031b57600080fd5b506102e160195481565b34801561033157600080fd5b5060405160098152602001610259565b34801561034d57600080fd5b506013546102b2906001600160a01b031681565b34801561036d57600080fd5b506016546102b2906001600160a01b031681565b34801561038d57600080fd5b506001546102b2906001600160a01b031681565b3480156103ad57600080fd5b5061021d6103bc366004611b70565b61079b565b3480156103cd57600080fd5b5061021d6103dc366004611b9d565b6107e6565b3480156103ed57600080fd5b5061021d61082e565b34801561040257600080fd5b506102e1610411366004611b70565b610879565b34801561042257600080fd5b5061021d61089b565b34801561043757600080fd5b5061021d610446366004611bb8565b61090f565b34801561045757600080fd5b506102e160175481565b34801561046d57600080fd5b506102e161047c366004611b70565b60126020526000908152604090205481565b34801561049a57600080fd5b506000546001600160a01b03166102b2565b3480156104b857600080fd5b5061021d6104c7366004611b9d565b61093e565b3480156104d857600080fd5b506102e160185481565b3480156104ee57600080fd5b5060408051808201909152600681526524434841445360d01b602082015261024c565b34801561051d57600080fd5b5061021d61052c366004611bb8565b610986565b34801561053d57600080fd5b5061021d61054c366004611bd1565b6109b5565b34801561055d57600080fd5b5061028261056c366004611b03565b6109f3565b34801561057d57600080fd5b5061028261058c366004611b70565b60116020526000908152604090205460ff1681565b3480156105ad57600080fd5b5061021d610a00565b3480156105c257600080fd5b5061021d6105d1366004611c03565b610a54565b3480156105e257600080fd5b506014546102b2906001600160a01b031681565b34801561060257600080fd5b506102e1610611366004611c87565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561064857600080fd5b5061021d610657366004611bb8565b610af5565b34801561066857600080fd5b5061021d610677366004611b70565b610b39565b6000546001600160a01b031633146106af5760405162461bcd60e51b81526004016106a690611cc0565b60405180910390fd5b60005b8151811015610717576001601160008484815181106106d3576106d3611cf5565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061070f81611d21565b9150506106b2565b5050565b6000610728338484610cee565b5060015b92915050565b600061073f848484610e12565b610791843361078c85604051806060016040528060288152602001611e39602891396001600160a01b038a166000908152600560209081526040808320338452909152902054919061134e565b610cee565b5060019392505050565b6000546001600160a01b031633146107c55760405162461bcd60e51b81526004016106a690611cc0565b6001600160a01b03166000908152601160205260409020805460ff19169055565b6000546001600160a01b031633146108105760405162461bcd60e51b81526004016106a690611cc0565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b0316148061086357506014546001600160a01b0316336001600160a01b0316145b61086c57600080fd5b4761087681611388565b50565b6001600160a01b03811660009081526003602052604081205461072c906113c2565b6000546001600160a01b031633146108c55760405162461bcd60e51b81526004016106a690611cc0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109395760405162461bcd60e51b81526004016106a690611cc0565b601755565b6000546001600160a01b031633146109685760405162461bcd60e51b81526004016106a690611cc0565b60168054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146109b05760405162461bcd60e51b81526004016106a690611cc0565b601955565b6000546001600160a01b031633146109df5760405162461bcd60e51b81526004016106a690611cc0565b600993909355600b91909155600a55600c55565b6000610728338484610e12565b6013546001600160a01b0316336001600160a01b03161480610a3557506014546001600160a01b0316336001600160a01b0316145b610a3e57600080fd5b6000610a4930610879565b90506108768161143f565b6000546001600160a01b03163314610a7e5760405162461bcd60e51b81526004016106a690611cc0565b60005b82811015610aef578160066000868685818110610aa057610aa0611cf5565b9050602002016020810190610ab59190611b70565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610ae781611d21565b915050610a81565b50505050565b6001546001600160a01b0316331480610b1857506000546001600160a01b031633145b610b345760405162461bcd60e51b81526004016106a690611cc0565b601855565b6000546001600160a01b03163314610b635760405162461bcd60e51b81526004016106a690611cc0565b6001600160a01b038116610bc85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106a6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082600003610c355750600061072c565b6000610c418385611d3a565b905082610c4e8583611d59565b14610ca55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106a6565b9392505050565b6000610ca583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115b9565b6001600160a01b038316610d505760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106a6565b6001600160a01b038216610db15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106a6565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e765760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106a6565b6001600160a01b038216610ed85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106a6565b60008111610f3a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106a6565b6000546001600160a01b03848116911614801590610f6657506000546001600160a01b03838116911614155b1561124757601654600160a01b900460ff16610fff576000546001600160a01b03848116911614610fff5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016106a6565b6017548111156110515760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106a6565b6001600160a01b03831660009081526011602052604090205460ff1615801561109357506001600160a01b03821660009081526011602052604090205460ff16155b6110eb5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016106a6565b6016546001600160a01b03838116911614611170576018548161110d84610879565b6111179190611d7b565b106111705760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106a6565b600061117b30610879565b6019546017549192508210159082106111945760175491505b8080156111ab5750601654600160a81b900460ff16155b80156111c557506016546001600160a01b03868116911614155b80156111da5750601654600160b01b900460ff165b80156111ff57506001600160a01b03851660009081526006602052604090205460ff16155b801561122457506001600160a01b03841660009081526006602052604090205460ff16155b15611244576112328261143f565b4780156112425761124247611388565b505b50505b6001600160a01b03831660009081526006602052604090205460019060ff168061128957506001600160a01b03831660009081526006602052604090205460ff165b806112bb57506016546001600160a01b038581169116148015906112bb57506016546001600160a01b03848116911614155b156112c857506000611342565b6016546001600160a01b0385811691161480156112f357506015546001600160a01b03848116911614155b1561130557600954600d55600a54600e555b6016546001600160a01b03848116911614801561133057506015546001600160a01b03858116911614155b1561134257600b54600d55600c54600e555b610aef848484846115e7565b600081848411156113725760405162461bcd60e51b81526004016106a69190611aae565b50600061137f8486611d93565b95945050505050565b6014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610717573d6000803e3d6000fd5b60006007548211156114295760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106a6565b6000611433611615565b9050610ca58382610cac565b6016805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061148757611487611cf5565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115049190611daa565b8160018151811061151757611517611cf5565b6001600160a01b03928316602091820292909201015260155461153d9130911684610cee565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac94790611576908590600090869030904290600401611dc7565b600060405180830381600087803b15801561159057600080fd5b505af11580156115a4573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b600081836115da5760405162461bcd60e51b81526004016106a69190611aae565b50600061137f8486611d59565b806115f4576115f4611638565b6115ff848484611666565b80610aef57610aef600f54600d55601054600e55565b600080600061162261175d565b90925090506116318282610cac565b9250505090565b600d541580156116485750600e54155b1561164f57565b600d8054600f55600e805460105560009182905555565b6000806000806000806116788761179d565b6001600160a01b038f16600090815260036020526040902054959b509399509197509550935091506116aa90876117fa565b6001600160a01b03808b1660009081526003602052604080822093909355908a16815220546116d9908661183c565b6001600160a01b0389166000908152600360205260409020556116fb8161189b565b61170584836118e5565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161174a91815260200190565b60405180910390a3505050505050505050565b6007546000908190670de0b6b3a76400006117788282610cac565b82101561179457505060075492670de0b6b3a764000092509050565b90939092509050565b60008060008060008060008060006117ba8a600d54600e54611909565b92509250925060006117ca611615565b905060008060006117dd8e87878761195e565b919e509c509a509598509396509194505050505091939550919395565b6000610ca583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061134e565b6000806118498385611d7b565b905083811015610ca55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106a6565b60006118a5611615565b905060006118b38383610c23565b306000908152600360205260409020549091506118d0908261183c565b30600090815260036020526040902055505050565b6007546118f290836117fa565b600755600854611902908261183c565b6008555050565b6000808080611923606461191d8989610c23565b90610cac565b90506000611936606461191d8a89610c23565b9050600061194e826119488b866117fa565b906117fa565b9992985090965090945050505050565b600080808061196d8886610c23565b9050600061197b8887610c23565b905060006119898888610c23565b9050600061199b8261194886866117fa565b939b939a50919850919650505050505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461087657600080fd5b80356119e4816119c4565b919050565b600060208083850312156119fc57600080fd5b823567ffffffffffffffff80821115611a1457600080fd5b818501915085601f830112611a2857600080fd5b813581811115611a3a57611a3a6119ae565b8060051b604051601f19603f83011681018181108582111715611a5f57611a5f6119ae565b604052918252848201925083810185019188831115611a7d57600080fd5b938501935b82851015611aa257611a93856119d9565b84529385019392850192611a82565b98975050505050505050565b600060208083528351808285015260005b81811015611adb57858101830151858201604001528201611abf565b81811115611aed576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215611b1657600080fd5b8235611b21816119c4565b946020939093013593505050565b600080600060608486031215611b4457600080fd5b8335611b4f816119c4565b92506020840135611b5f816119c4565b929592945050506040919091013590565b600060208284031215611b8257600080fd5b8135610ca5816119c4565b803580151581146119e457600080fd5b600060208284031215611baf57600080fd5b610ca582611b8d565b600060208284031215611bca57600080fd5b5035919050565b60008060008060808587031215611be757600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060408486031215611c1857600080fd5b833567ffffffffffffffff80821115611c3057600080fd5b818601915086601f830112611c4457600080fd5b813581811115611c5357600080fd5b8760208260051b8501011115611c6857600080fd5b602092830195509350611c7e9186019050611b8d565b90509250925092565b60008060408385031215611c9a57600080fd5b8235611ca5816119c4565b91506020830135611cb5816119c4565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611d3357611d33611d0b565b5060010190565b6000816000190483118215151615611d5457611d54611d0b565b500290565b600082611d7657634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115611d8e57611d8e611d0b565b500190565b600082821015611da557611da5611d0b565b500390565b600060208284031215611dbc57600080fd5b8151610ca5816119c4565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e175784516001600160a01b031683529383019391830191600101611df2565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207a5563238a8e7b5f8f1f39872c72adb2ea688c50e4ab70c4d62c52f7afd6141064736f6c634300080f0033

Deployed Bytecode Sourcemap

4424:13441:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13038:169;;;;;;;;;;-1:-1:-1;13038:169:0;;;;;:::i;:::-;;:::i;:::-;;6866:83;;;;;;;;;;-1:-1:-1;6936:5:0;;;;;;;;;;;;-1:-1:-1;;;6936:5:0;;;;6866:83;;;;;;;:::i;:::-;;;;;;;;7791:193;;;;;;;;;;-1:-1:-1;7791:193:0;;;;;:::i;:::-;;:::i;:::-;;;2634:14:1;;2627:22;2609:41;;2597:2;2582:18;7791:193:0;2469:187:1;5703:41:0;;;;;;;;;;-1:-1:-1;5703:41:0;;;;-1:-1:-1;;;;;5703:41:0;;;;;;-1:-1:-1;;;;;2851:32:1;;;2833:51;;2821:2;2806:18;5703:41:0;2661:229:1;7143:95:0;;;;;;;;;;-1:-1:-1;4972:21:0;7143:95;;;3041:25:1;;;3029:2;3014:18;7143:95:0;2895:177:1;7992:446:0;;;;;;;;;;-1:-1:-1;7992:446:0;;;;;:::i;:::-;;:::i;6014:50::-;;;;;;;;;;;;;;;;7052:83;;;;;;;;;;-1:-1:-1;7052:83:0;;4646:1;3680:36:1;;3668:2;3653:18;7052:83:0;3538:184:1;5561:64:0;;;;;;;;;;-1:-1:-1;5561:64:0;;;;-1:-1:-1;;;;;5561:64:0;;;5751:28;;;;;;;;;;-1:-1:-1;5751:28:0;;;;-1:-1:-1;;;;;5751:28:0;;;1162:25;;;;;;;;;;-1:-1:-1;1162:25:0;;;;-1:-1:-1;;;;;1162:25:0;;;13215:92;;;;;;;;;;-1:-1:-1;13215:92:0;;;;;:::i;:::-;;:::i;17247:101::-;;;;;;;;;;-1:-1:-1;17247:101:0;;;;;:::i;:::-;;:::i;12795:235::-;;;;;;;;;;;;;:::i;7246:138::-;;;;;;;;;;-1:-1:-1;7246:138:0;;;;;:::i;:::-;;:::i;1911:148::-;;;;;;;;;;;;;:::i;17387:108::-;;;;;;;;;;-1:-1:-1;17387:108:0;;;;;:::i;:::-;;:::i;5900:37::-;;;;;;;;;;;;;;;;5511:43;;;;;;;;;;-1:-1:-1;5511:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;1542:79;;;;;;;;;;-1:-1:-1;1580:7:0;1607:6;-1:-1:-1;;;;;1607:6:0;1542:79;;12442:101;;;;;;;;;;-1:-1:-1;12442:101:0;;;;;:::i;:::-;;:::i;5944:57::-;;;;;;;;;;;;;;;;6957:87;;;;;;;;;;-1:-1:-1;7029:7:0;;;;;;;;;;;;-1:-1:-1;;;7029:7:0;;;;6957:87;;17056:139;;;;;;;;;;-1:-1:-1;17056:139:0;;;;;:::i;:::-;;:::i;16713:291::-;;;;;;;;;;-1:-1:-1;16713:291:0;;;;;:::i;:::-;;:::i;7392:199::-;;;;;;;;;;-1:-1:-1;7392:199:0;;;;;:::i;:::-;;:::i;5473:36::-;;;;;;;;;;-1:-1:-1;5473:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12551:236;;;;;;;;;;;;;:::i;17624:234::-;;;;;;;;;;-1:-1:-1;17624:234:0;;;;;:::i;:::-;;:::i;5632:62::-;;;;;;;;;;-1:-1:-1;5632:62:0;;;;-1:-1:-1;;;;;5632:62:0;;;7599:184;;;;;;;;;;-1:-1:-1;7599:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7748:18:0;;;7716:7;7748:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7599:184;17503:113;;;;;;;;;;-1:-1:-1;17503:113:0;;;;;:::i;:::-;;:::i;2067:244::-;;;;;;;;;;-1:-1:-1;2067:244:0;;;;;:::i;:::-;;:::i;13038:169::-;1669:6;;-1:-1:-1;;;;;1669:6:0;316:10;1669:22;1661:67;;;;-1:-1:-1;;;1661:67:0;;;;;;;:::i;:::-;;;;;;;;;13114:9:::1;13109:91;13133:5;:12;13129:1;:16;13109:91;;;13184:4;13167;:14;13172:5;13178:1;13172:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13167:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13167:14:0;:21;;-1:-1:-1;;13167:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13147:3;::::1;::::0;::::1;:::i;:::-;;;;13109:91;;;;13038:169:::0;:::o;7791:193::-;7893:4;7915:39;316:10;7938:7;7947:6;7915:8;:39::i;:::-;-1:-1:-1;7972:4:0;7791:193;;;;;:::o;7992:446::-;8124:4;8141:36;8151:6;8159:9;8170:6;8141:9;:36::i;:::-;8188:220;8211:6;316:10;8259:138;8315:6;8259:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8259:19:0;;;;;;:11;:19;;;;;;;;316:10;8259:33;;;;;;;;;;:37;:138::i;:::-;8188:8;:220::i;:::-;-1:-1:-1;8426:4:0;7992:446;;;;;:::o;13215:92::-;1669:6;;-1:-1:-1;;;;;1669:6:0;316:10;1669:22;1661:67;;;;-1:-1:-1;;;1661:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13279:12:0::1;13294:5;13279:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;13279:20:0::1;::::0;;13215:92::o;17247:101::-;1669:6;;-1:-1:-1;;;;;1669:6:0;316:10;1669:22;1661:67;;;;-1:-1:-1;;;1661:67:0;;;;;;;:::i;:::-;17314:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;17314:26:0::1;-1:-1:-1::0;;;;17314:26:0;;::::1;::::0;;;::::1;::::0;;17247:101::o;12795:235::-;12861:19;;-1:-1:-1;;;;;12861:19:0;316:10;-1:-1:-1;;;;;12845:35:0;;:72;;;-1:-1:-1;12900:17:0;;-1:-1:-1;;;;;12900:17:0;316:10;-1:-1:-1;;;;;12884:33:0;;12845:72;12837:81;;;;;;12958:21;12990:32;12958:21;12990:12;:32::i;:::-;12826:204;12795:235::o;7246:138::-;-1:-1:-1;;;;;7359:16:0;;7312:7;7359:16;;;:7;:16;;;;;;7339:37;;:19;:37::i;1911:148::-;1669:6;;-1:-1:-1;;;;;1669:6:0;316:10;1669:22;1661:67;;;;-1:-1:-1;;;1661:67:0;;;;;;;:::i;:::-;2018:1:::1;2002:6:::0;;1981:40:::1;::::0;-1:-1:-1;;;;;2002:6:0;;::::1;::::0;1981:40:::1;::::0;2018:1;;1981:40:::1;2049:1;2032:19:::0;;-1:-1:-1;;;;;;2032:19:0::1;::::0;;1911:148::o;17387:108::-;1669:6;;-1:-1:-1;;;;;1669:6:0;316:10;1669:22;1661:67;;;;-1:-1:-1;;;1661:67:0;;;;;;;:::i;:::-;17461:12:::1;:26:::0;17387:108::o;12442:101::-;1669:6;;-1:-1:-1;;;;;1669:6:0;316:10;1669:22;1661:67;;;;-1:-1:-1;;;1661:67:0;;;;;;;:::i;:::-;12509:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;12509:26:0::1;-1:-1:-1::0;;;;12509:26:0;;::::1;::::0;;;::::1;::::0;;12442:101::o;17056:139::-;1669:6;;-1:-1:-1;;;;;1669:6:0;316:10;1669:22;1661:67;;;;-1:-1:-1;;;1661:67:0;;;;;;;:::i;:::-;17147:19:::1;:40:::0;17056:139::o;16713:291::-;1669:6;;-1:-1:-1;;;;;1669:6:0;316:10;1669:22;1661:67;;;;-1:-1:-1;;;1661:67:0;;;;;;;:::i;:::-;16847:14:::1;:30:::0;;;;16888:15:::1;:32:::0;;;;16931:12:::1;:26:::0;16968:13:::1;:28:::0;16713:291::o;7392:199::-;7497:4;7519:42;316:10;7543:9;7554:6;7519:9;:42::i;12551:236::-;12617:19;;-1:-1:-1;;;;;12617:19:0;316:10;-1:-1:-1;;;;;12601:35:0;;:72;;;-1:-1:-1;12656:17:0;;-1:-1:-1;;;;;12656:17:0;316:10;-1:-1:-1;;;;;12640:33:0;;12601:72;12593:81;;;;;;12685:23;12711:24;12729:4;12711:9;:24::i;:::-;12685:50;;12746:33;12763:15;12746:16;:33::i;17624:234::-;1669:6;;-1:-1:-1;;;;;1669:6:0;316:10;1669:22;1661:67;;;;-1:-1:-1;;;1661:67:0;;;;;;;:::i;:::-;17741:9:::1;17737:114;17756:19:::0;;::::1;17737:114;;;17831:8;17797:18;:31;17816:8;;17825:1;17816:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17797:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17797:31:0;:42;;-1:-1:-1;;17797:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17777:3;::::1;::::0;::::1;:::i;:::-;;;;17737:114;;;;17624:234:::0;;;:::o;17503:113::-;1794:10;;-1:-1:-1;;;;;1794:10:0;316;1794:26;;:52;;-1:-1:-1;1824:6:0;;-1:-1:-1;;;;;1824:6:0;316:10;1824:22;1794:52;1786:97;;;;-1:-1:-1;;;1786:97:0;;;;;;;:::i;:::-;17578:14:::1;:30:::0;17503:113::o;2067:244::-;1669:6;;-1:-1:-1;;;;;1669:6:0;316:10;1669:22;1661:67;;;;-1:-1:-1;;;1661:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2156:22:0;::::1;2148:73;;;::::0;-1:-1:-1;;;2148:73:0;;7390:2:1;2148:73:0::1;::::0;::::1;7372:21:1::0;7429:2;7409:18;;;7402:30;7468:34;7448:18;;;7441:62;-1:-1:-1;;;7519:18:1;;;7512:36;7565:19;;2148:73:0::1;7188:402:1::0;2148:73:0::1;2258:6;::::0;;2237:38:::1;::::0;-1:-1:-1;;;;;2237:38:0;;::::1;::::0;2258:6;::::1;::::0;2237:38:::1;::::0;::::1;2286:6;:17:::0;;-1:-1:-1;;;;;;2286:17:0::1;-1:-1:-1::0;;;;;2286:17:0;;;::::1;::::0;;;::::1;::::0;;2067:244::o;2907:246::-;2965:7;2989:1;2994;2989:6;2985:47;;-1:-1:-1;3019:1:0;3012:8;;2985:47;3042:9;3054:5;3058:1;3054;:5;:::i;:::-;3042:17;-1:-1:-1;3087:1:0;3078:5;3082:1;3042:17;3078:5;:::i;:::-;:10;3070:56;;;;-1:-1:-1;;;3070:56:0;;8192:2:1;3070:56:0;;;8174:21:1;8231:2;8211:18;;;8204:30;8270:34;8250:18;;;8243:62;-1:-1:-1;;;8321:18:1;;;8314:31;8362:19;;3070:56:0;7990:397:1;3070:56:0;3144:1;2907:246;-1:-1:-1;;;2907:246:0:o;3161:132::-;3219:7;3246:39;3250:1;3253;3246:39;;;;;;;;;;;;;;;;;:3;:39::i;9129:369::-;-1:-1:-1;;;;;9256:19:0;;9248:68;;;;-1:-1:-1;;;9248:68:0;;8594:2:1;9248:68:0;;;8576:21:1;8633:2;8613:18;;;8606:30;8672:34;8652:18;;;8645:62;-1:-1:-1;;;8723:18:1;;;8716:34;8767:19;;9248:68:0;8392:400:1;9248:68:0;-1:-1:-1;;;;;9335:21:0;;9327:68;;;;-1:-1:-1;;;9327:68:0;;8999:2:1;9327:68:0;;;8981:21:1;9038:2;9018:18;;;9011:30;9077:34;9057:18;;;9050:62;-1:-1:-1;;;9128:18:1;;;9121:32;9170:19;;9327:68:0;8797:398:1;9327:68:0;-1:-1:-1;;;;;9406:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9458:32;;3041:25:1;;;9458:32:0;;3014:18:1;9458:32:0;;;;;;;9129:369;;;:::o;9506:2330::-;-1:-1:-1;;;;;9628:18:0;;9620:68;;;;-1:-1:-1;;;9620:68:0;;9402:2:1;9620:68:0;;;9384:21:1;9441:2;9421:18;;;9414:30;9480:34;9460:18;;;9453:62;-1:-1:-1;;;9531:18:1;;;9524:35;9576:19;;9620:68:0;9200:401:1;9620:68:0;-1:-1:-1;;;;;9707:16:0;;9699:64;;;;-1:-1:-1;;;9699:64:0;;9808:2:1;9699:64:0;;;9790:21:1;9847:2;9827:18;;;9820:30;9886:34;9866:18;;;9859:62;-1:-1:-1;;;9937:18:1;;;9930:33;9980:19;;9699:64:0;9606:399:1;9699:64:0;9791:1;9782:6;:10;9774:64;;;;-1:-1:-1;;;9774:64:0;;10212:2:1;9774:64:0;;;10194:21:1;10251:2;10231:18;;;10224:30;10290:34;10270:18;;;10263:62;-1:-1:-1;;;10341:18:1;;;10334:39;10390:19;;9774:64:0;10010:405:1;9774:64:0;1580:7;1607:6;-1:-1:-1;;;;;9855:15:0;;;1607:6;;9855:15;;;;:32;;-1:-1:-1;1580:7:0;1607:6;-1:-1:-1;;;;;9874:13:0;;;1607:6;;9874:13;;9855:32;9851:1259;;;9944:11;;-1:-1:-1;;;9944:11:0;;;;9939:144;;1580:7;1607:6;-1:-1:-1;;;;;9984:15:0;;;1607:6;;9984:15;9976:91;;;;-1:-1:-1;;;9976:91:0;;10622:2:1;9976:91:0;;;10604:21:1;10661:2;10641:18;;;10634:30;10700:34;10680:18;;;10673:62;10771:33;10751:18;;;10744:61;10822:19;;9976:91:0;10420:427:1;9976:91:0;10117:12;;10107:6;:22;;10099:63;;;;-1:-1:-1;;;10099:63:0;;11054:2:1;10099:63:0;;;11036:21:1;11093:2;11073:18;;;11066:30;11132;11112:18;;;11105:58;11180:18;;10099:63:0;10852:352:1;10099:63:0;-1:-1:-1;;;;;10186:10:0;;;;;;:4;:10;;;;;;;;10185:11;:24;;;;-1:-1:-1;;;;;;10201:8:0;;;;;;:4;:8;;;;;;;;10200:9;10185:24;10177:72;;;;-1:-1:-1;;;10177:72:0;;11411:2:1;10177:72:0;;;11393:21:1;11450:2;11430:18;;;11423:30;11489:34;11469:18;;;11462:62;-1:-1:-1;;;11540:18:1;;;11533:33;11583:19;;10177:72:0;11209:399:1;10177:72:0;10275:13;;-1:-1:-1;;;;;10269:19:0;;;10275:13;;10269:19;10266:146;;10342:14;;10333:6;10317:13;10327:2;10317:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10309:87;;;;-1:-1:-1;;;10309:87:0;;11948:2:1;10309:87:0;;;11930:21:1;11987:2;11967:18;;;11960:30;12026:34;12006:18;;;11999:62;-1:-1:-1;;;12077:18:1;;;12070:33;12120:19;;10309:87:0;11746:399:1;10309:87:0;10428:28;10459:24;10477:4;10459:9;:24::i;:::-;10537:19;;10600:12;;10428:55;;-1:-1:-1;10513:43:0;;;;10576:36;;10573:124;;10669:12;;10646:35;;10573:124;10717:7;:18;;;;-1:-1:-1;10729:6:0;;-1:-1:-1;;;10729:6:0;;;;10728:7;10717:18;:43;;;;-1:-1:-1;10747:13:0;;-1:-1:-1;;;;;10739:21:0;;;10747:13;;10739:21;;10717:43;:58;;;;-1:-1:-1;10764:11:0;;-1:-1:-1;;;10764:11:0;;;;10717:58;:87;;;;-1:-1:-1;;;;;;10780:24:0;;;;;;:18;:24;;;;;;;;10779:25;10717:87;:114;;;;-1:-1:-1;;;;;;10809:22:0;;;;;;:18;:22;;;;;;;;10808:23;10717:114;10713:386;;;10852:38;10869:20;10852:16;:38::i;:::-;10938:21;10982:22;;10978:106;;11029:35;11042:21;11029:12;:35::i;:::-;10833:266;10713:386;9889:1221;;9851:1259;-1:-1:-1;;;;;11186:24:0;;11122:12;11186:24;;;:18;:24;;;;;;11137:4;;11186:24;;;:50;;-1:-1:-1;;;;;;11214:22:0;;;;;;:18;:22;;;;;;;;11186:50;11185:102;;;-1:-1:-1;11250:13:0;;-1:-1:-1;;;;;11242:21:0;;;11250:13;;11242:21;;;;:44;;-1:-1:-1;11273:13:0;;-1:-1:-1;;;;;11267:19:0;;;11273:13;;11267:19;;11242:44;11181:594;;;-1:-1:-1;11314:5:0;11181:594;;;11397:13;;-1:-1:-1;;;;;11389:21:0;;;11397:13;;11389:21;:55;;;;-1:-1:-1;11428:15:0;;-1:-1:-1;;;;;11414:30:0;;;11428:15;;11414:30;;11389:55;11386:162;;;11477:14;;11465:9;:26;11520:12;;11510:7;:22;11386:162;11607:13;;-1:-1:-1;;;;;11601:19:0;;;11607:13;;11601:19;:55;;;;-1:-1:-1;11640:15:0;;-1:-1:-1;;;;;11624:32:0;;;11640:15;;11624:32;;11601:55;11597:165;;;11689:15;;11677:9;:27;11733:13;;11723:7;:23;11597:165;11787:41;11802:4;11808:2;11812:6;11820:7;11787:14;:41::i;2675:224::-;2795:7;2831:12;2823:6;;;;2815:29;;;;-1:-1:-1;;;2815:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2855:9:0;2867:5;2871:1;2867;:5;:::i;:::-;2855:17;2675:224;-1:-1:-1;;;;;2675:224:0:o;12335:99::-;12392:17;;:34;;-1:-1:-1;;;;;12392:17:0;;;;:34;;;;;12419:6;;12392:17;:34;:17;:34;12419:6;12392:17;:34;;;;;;;;;;;;;;;;;;;8446:323;8541:7;8599;;8588;:18;;8566:110;;;;-1:-1:-1;;;8566:110:0;;12482:2:1;8566:110:0;;;12464:21:1;12521:2;12501:18;;;12494:30;12560:34;12540:18;;;12533:62;-1:-1:-1;;;12611:18:1;;;12604:40;12661:19;;8566:110:0;12280:406:1;8566:110:0;8687:19;8709:10;:8;:10::i;:::-;8687:32;-1:-1:-1;8737:24:0;:7;8687:32;8737:11;:24::i;11844:483::-;6158:6;:13;;-1:-1:-1;;;;6158:13:0;-1:-1:-1;;;6158:13:0;;;11946:16:::1;::::0;;11960:1:::1;11946:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11946:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11946:16:0::1;11922:40;;11991:4;11973;11978:1;11973:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11973:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12017:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12017:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11973:7;;12017:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12007:4;12012:1;12007:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12007:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12082:15:::1;::::0;12050:62:::1;::::0;12067:4:::1;::::0;12082:15:::1;12100:11:::0;12050:8:::1;:62::i;:::-;12123:15;::::0;:196:::1;::::0;-1:-1:-1;;;12123:196:0;;-1:-1:-1;;;;;12123:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12204:11;;12123:15:::1;::::0;12246:4;;12273::::1;::::0;12293:15:::1;::::0;12123:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6194:6:0;:14;;-1:-1:-1;;;;6194:14:0;;;-1:-1:-1;;;;11844:483:0:o;3301:223::-;3421:7;3456:12;3449:5;3441:28;;;;-1:-1:-1;;;3441:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3480:9:0;3492:5;3496:1;3492;:5;:::i;13315:282::-;13471:7;13466:28;;13480:14;:12;:14::i;:::-;13505:44;13523:6;13531:9;13542:6;13505:17;:44::i;:::-;13565:7;13560:29;;13574:15;9060:17;;9048:9;:29;9098:15;;9088:7;:25;9004:117;16276:164;16318:7;16339:15;16356;16375:19;:17;:19::i;:::-;16338:56;;-1:-1:-1;16338:56:0;-1:-1:-1;16412:20:0;16338:56;;16412:11;:20::i;:::-;16405:27;;;;16276:164;:::o;8777:219::-;8824:9;;:14;:30;;;;-1:-1:-1;8842:7:0;;:12;8824:30;8820:43;;;8777:219::o;8820:43::-;8895:9;;;8875:17;:29;8933:7;;;8915:15;:25;-1:-1:-1;8953:13:0;;;;8977:11;8777:219::o;13605:610::-;13752:15;13782:23;13820:12;13847:23;13885:12;13912:13;13939:19;13950:7;13939:10;:19::i;:::-;-1:-1:-1;;;;;13987:15:0;;;;;;:7;:15;;;;;;13737:221;;-1:-1:-1;13737:221:0;;-1:-1:-1;13737:221:0;;-1:-1:-1;13737:221:0;-1:-1:-1;13737:221:0;-1:-1:-1;13737:221:0;-1:-1:-1;13987:28:0;;13737:221;13987:19;:28::i;:::-;-1:-1:-1;;;;;13969:15:0;;;;;;;:7;:15;;;;;;:46;;;;14047:18;;;;;;;:39;;14070:15;14047:22;:39::i;:::-;-1:-1:-1;;;;;14026:18:0;;;;;;:7;:18;;;;;:60;14097:16;14107:5;14097:9;:16::i;:::-;14124:23;14136:4;14142;14124:11;:23::i;:::-;14180:9;-1:-1:-1;;;;;14163:44:0;14172:6;-1:-1:-1;;;;;14163:44:0;;14191:15;14163:44;;;;3041:25:1;;3029:2;3014:18;;2895:177;14163:44:0;;;;;;;;13726:489;;;;;;13605:610;;;:::o;16448:257::-;16546:7;;16499;;;;4972:21;16614:20;16546:7;4972:21;16614:11;:20::i;:::-;16604:7;:30;16600:61;;;-1:-1:-1;;16644:7:0;;;4972:21;;-1:-1:-1;16448:257:0;-1:-1:-1;16448:257:0:o;16600:61::-;16680:7;;16689;;-1:-1:-1;16448:257:0;-1:-1:-1;16448:257:0:o;14634:615::-;14734:7;14756;14778;14800;14822;14844;14880:23;14905:12;14919:13;14949:40;14961:7;14970:9;;14981:7;;14949:11;:40::i;:::-;14879:110;;;;;;15000:19;15022:10;:8;:10::i;:::-;15000:32;;15044:15;15061:23;15086:12;15115:46;15127:7;15136:4;15142:5;15149:11;15115;:46::i;:::-;15043:118;;-1:-1:-1;15043:118:0;-1:-1:-1;15043:118:0;-1:-1:-1;15212:15:0;;-1:-1:-1;15229:4:0;;-1:-1:-1;15235:5:0;;-1:-1:-1;;;;;14634:615:0;;;;;;;:::o;2531:136::-;2589:7;2616:43;2620:1;2623;2616:43;;;;;;;;;;;;;;;;;:3;:43::i;2344:179::-;2402:7;;2434:5;2438:1;2434;:5;:::i;:::-;2422:17;;2463:1;2458;:6;;2450:46;;;;-1:-1:-1;;;2450:46:0;;14134:2:1;2450:46:0;;;14116:21:1;14173:2;14153:18;;;14146:30;14212:29;14192:18;;;14185:57;14259:18;;2450:46:0;13932:351:1;14223:211:0;14276:19;14298:10;:8;:10::i;:::-;14276:32;-1:-1:-1;14319:13:0;14335:22;:5;14276:32;14335:9;:22::i;:::-;14409:4;14393:22;;;;:7;:22;;;;;;14319:38;;-1:-1:-1;14393:33:0;;14319:38;14393:26;:33::i;:::-;14384:4;14368:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14223:211:0:o;14442:147::-;14520:7;;:17;;14532:4;14520:11;:17::i;:::-;14510:7;:27;14561:10;;:20;;14576:4;14561:14;:20::i;:::-;14548:10;:33;-1:-1:-1;;14442:147:0:o;15257:469::-;15426:7;;;;15520:30;15546:3;15520:21;:7;15532:8;15520:11;:21::i;:::-;:25;;:30::i;:::-;15505:45;-1:-1:-1;15561:13:0;15577:28;15601:3;15577:19;:7;15589:6;15577:11;:19::i;:28::-;15561:44;-1:-1:-1;15616:23:0;15642:28;15561:44;15642:17;:7;15654:4;15642:11;:17::i;:::-;:21;;:28::i;:::-;15616:54;15706:4;;-1:-1:-1;15712:5:0;;-1:-1:-1;15257:469:0;;-1:-1:-1;;;;;15257:469:0:o;15734:534::-;15928:7;;;;16025:24;:7;16037:11;16025;:24::i;:::-;16007:42;-1:-1:-1;16060:12:0;16075:21;:4;16084:11;16075:8;:21::i;:::-;16060:36;-1:-1:-1;16107:13:0;16123:22;:5;16133:11;16123:9;:22::i;:::-;16107:38;-1:-1:-1;16156:23:0;16182:28;16107:38;16182:17;:7;16194:4;16182:11;:17::i;:28::-;16229:7;;;;-1:-1:-1;16255:4:0;;-1:-1:-1;15734:534:0;;-1:-1:-1;;;;;;;15734:534:0:o;14:127:1:-;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;4159:247::-;4218:6;4271:2;4259:9;4250:7;4246:23;4242:32;4239:52;;;4287:1;4284;4277:12;4239:52;4326:9;4313:23;4345:31;4370:5;4345:31;:::i;4411:160::-;4476:20;;4532:13;;4525:21;4515:32;;4505:60;;4561:1;4558;4551:12;4576:180;4632:6;4685:2;4673:9;4664:7;4660:23;4656:32;4653:52;;;4701:1;4698;4691:12;4653:52;4724:26;4740:9;4724:26;:::i;4761:180::-;4820:6;4873:2;4861:9;4852:7;4848:23;4844:32;4841:52;;;4889:1;4886;4879:12;4841:52;-1:-1:-1;4912:23:1;;4761:180;-1:-1:-1;4761:180:1:o;4946:385::-;5032:6;5040;5048;5056;5109:3;5097:9;5088:7;5084:23;5080:33;5077:53;;;5126:1;5123;5116:12;5077:53;-1:-1:-1;;5149:23:1;;;5219:2;5204:18;;5191:32;;-1:-1:-1;5270:2:1;5255:18;;5242:32;;5321:2;5306:18;5293:32;;-1:-1:-1;4946:385:1;-1:-1:-1;4946:385:1:o;5336:689::-;5428:6;5436;5444;5497:2;5485:9;5476:7;5472:23;5468:32;5465:52;;;5513:1;5510;5503:12;5465:52;5553:9;5540:23;5582:18;5623:2;5615:6;5612:14;5609:34;;;5639:1;5636;5629:12;5609:34;5677:6;5666:9;5662:22;5652:32;;5722:7;5715:4;5711:2;5707:13;5703:27;5693:55;;5744:1;5741;5734:12;5693:55;5784:2;5771:16;5810:2;5802:6;5799:14;5796:34;;;5826:1;5823;5816:12;5796:34;5881:7;5874:4;5864:6;5861:1;5857:14;5853:2;5849:23;5845:34;5842:47;5839:67;;;5902:1;5899;5892:12;5839:67;5933:4;5925:13;;;;-1:-1:-1;5957:6:1;-1:-1:-1;5982:37:1;;5998:20;;;-1:-1:-1;5982:37:1;:::i;:::-;5972:47;;5336:689;;;;;:::o;6030:388::-;6098:6;6106;6159:2;6147:9;6138:7;6134:23;6130:32;6127:52;;;6175:1;6172;6165:12;6127:52;6214:9;6201:23;6233:31;6258:5;6233:31;:::i;:::-;6283:5;-1:-1:-1;6340:2:1;6325:18;;6312:32;6353:33;6312:32;6353:33;:::i;:::-;6405:7;6395:17;;;6030:388;;;;;:::o;6423:356::-;6625:2;6607:21;;;6644:18;;;6637:30;6703:34;6698:2;6683:18;;6676:62;6770:2;6755:18;;6423:356::o;6784:127::-;6845:10;6840:3;6836:20;6833:1;6826:31;6876:4;6873:1;6866:15;6900:4;6897:1;6890:15;6916:127;6977:10;6972:3;6968:20;6965:1;6958:31;7008:4;7005:1;6998:15;7032:4;7029:1;7022:15;7048:135;7087:3;7108:17;;;7105:43;;7128:18;;:::i;:::-;-1:-1:-1;7175:1:1;7164:13;;7048:135::o;7595:168::-;7635:7;7701:1;7697;7693:6;7689:14;7686:1;7683:21;7678:1;7671:9;7664:17;7660:45;7657:71;;;7708:18;;:::i;:::-;-1:-1:-1;7748:9:1;;7595:168::o;7768:217::-;7808:1;7834;7824:132;;7878:10;7873:3;7869:20;7866:1;7859:31;7913:4;7910:1;7903:15;7941:4;7938:1;7931:15;7824:132;-1:-1:-1;7970:9:1;;7768:217::o;11613:128::-;11653:3;11684:1;11680:6;11677:1;11674:13;11671:39;;;11690:18;;:::i;:::-;-1:-1:-1;11726:9:1;;11613:128::o;12150:125::-;12190:4;12218:1;12215;12212:8;12209:34;;;12223:18;;:::i;:::-;-1:-1:-1;12260:9:1;;12150:125::o;12691:251::-;12761:6;12814:2;12802:9;12793:7;12789:23;12785:32;12782:52;;;12830:1;12827;12820:12;12782:52;12862:9;12856:16;12881:31;12906:5;12881:31;:::i;12947:980::-;13209:4;13257:3;13246:9;13242:19;13288:6;13277:9;13270:25;13314:2;13352:6;13347:2;13336:9;13332:18;13325:34;13395:3;13390:2;13379:9;13375:18;13368:31;13419:6;13454;13448:13;13485:6;13477;13470:22;13523:3;13512:9;13508:19;13501:26;;13562:2;13554:6;13550:15;13536:29;;13583:1;13593:195;13607:6;13604:1;13601:13;13593:195;;;13672:13;;-1:-1:-1;;;;;13668:39:1;13656:52;;13763:15;;;;13728:12;;;;13704:1;13622:9;13593:195;;;-1:-1:-1;;;;;;;13844:32:1;;;;13839:2;13824:18;;13817:60;-1:-1:-1;;;13908:3:1;13893:19;13886:35;13805:3;12947:980;-1:-1:-1;;;12947:980:1:o

Swarm Source

ipfs://7a5563238a8e7b5f8f1f39872c72adb2ea688c50e4ab70c4d62c52f7afd61410

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.