ETH Price: $2,698.21 (+10.86%)
Gas: 2 Gwei

Contract

0xd0efc65BeE84D4D18D04700642d22444a1f6419d
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve194272622024-03-13 16:13:35148 days ago1710346415IN
0xd0efc65B...4a1f6419d
0 ETH0.0020451184.01581851
Approve176318592023-07-06 2:32:35400 days ago1688610755IN
0xd0efc65B...4a1f6419d
0 ETH0.0023567550.93916762
Approve154269672022-08-28 9:19:33711 days ago1661678373IN
0xd0efc65B...4a1f6419d
0 ETH0.000269375.77732976
Approve154269522022-08-28 9:15:51711 days ago1661678151IN
0xd0efc65B...4a1f6419d
0 ETH0.000234195.02276702
Approve154269352022-08-28 9:12:45711 days ago1661677965IN
0xd0efc65B...4a1f6419d
0 ETH0.000265885.70257733
Approve153790262022-08-20 17:50:07719 days ago1661017807IN
0xd0efc65B...4a1f6419d
0 ETH0.0003908316.05599362
Approve153489912022-08-15 23:48:07724 days ago1660607287IN
0xd0efc65B...4a1f6419d
0 ETH0.0006527614
Approve153316902022-08-13 5:56:15727 days ago1660370175IN
0xd0efc65B...4a1f6419d
0 ETH0.000386018.27904368
Approve153225332022-08-11 19:32:27728 days ago1660246347IN
0xd0efc65B...4a1f6419d
0 ETH0.000802132.95146684
Approve152896672022-08-06 16:03:15733 days ago1659801795IN
0xd0efc65B...4a1f6419d
0 ETH0.0006813614.61338886
Approve152844802022-08-05 20:31:31734 days ago1659731491IN
0xd0efc65B...4a1f6419d
0 ETH0.0007080615.18598475
Approve152501732022-07-31 12:15:26739 days ago1659269726IN
0xd0efc65B...4a1f6419d
0 ETH0.000418598.97777206
Approve152501662022-07-31 12:13:49739 days ago1659269629IN
0xd0efc65B...4a1f6419d
0 ETH0.00044619.56770672
Approve152479622022-07-31 3:55:00740 days ago1659239700IN
0xd0efc65B...4a1f6419d
0 ETH0.000200954.3099333
Approve152469612022-07-31 0:15:08740 days ago1659226508IN
0xd0efc65B...4a1f6419d
0 ETH0.0006527614
Approve152423952022-07-30 7:18:42740 days ago1659165522IN
0xd0efc65B...4a1f6419d
0 ETH0.000309066.62859793
Transfer152395232022-07-29 20:25:00741 days ago1659126300IN
0xd0efc65B...4a1f6419d
0 ETH0.0009938212.52658801
Transfer152395122022-07-29 20:23:43741 days ago1659126223IN
0xd0efc65B...4a1f6419d
0 ETH0.0006970417.10208166
Transfer152395022022-07-29 20:22:03741 days ago1659126123IN
0xd0efc65B...4a1f6419d
0 ETH0.0010788126.46096381
Approve152393352022-07-29 19:41:25741 days ago1659123685IN
0xd0efc65B...4a1f6419d
0 ETH0.0006527614
Transfer152393242022-07-29 19:38:00741 days ago1659123480IN
0xd0efc65B...4a1f6419d
0 ETH0.003115715.04009509
Approve152391092022-07-29 18:48:06741 days ago1659120486IN
0xd0efc65B...4a1f6419d
0 ETH0.0006598214.15140517
Approve152389472022-07-29 18:15:46741 days ago1659118546IN
0xd0efc65B...4a1f6419d
0 ETH0.0007824516.78153993
Approve152370192022-07-29 11:11:47741 days ago1659093107IN
0xd0efc65B...4a1f6419d
0 ETH0.0006267213.44143337
Transfer152367682022-07-29 10:16:11741 days ago1659089771IN
0xd0efc65B...4a1f6419d
0 ETH0.000591317.45428438
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
154269702022-08-28 9:20:03711 days ago1661678403
0xd0efc65B...4a1f6419d
0.00249177 ETH
154269702022-08-28 9:20:03711 days ago1661678403
0xd0efc65B...4a1f6419d
0.00249177 ETH
154234762022-08-27 19:39:54712 days ago1661629194
0xd0efc65B...4a1f6419d
0.00295188 ETH
154234762022-08-27 19:39:54712 days ago1661629194
0xd0efc65B...4a1f6419d
0.00295188 ETH
152844852022-08-05 20:32:11734 days ago1659731531
0xd0efc65B...4a1f6419d
0.00321871 ETH
152844852022-08-05 20:32:11734 days ago1659731531
0xd0efc65B...4a1f6419d
0.00321871 ETH
152538432022-08-01 2:05:43739 days ago1659319543
0xd0efc65B...4a1f6419d
0.00378921 ETH
152538432022-08-01 2:05:43739 days ago1659319543
0xd0efc65B...4a1f6419d
0.00378921 ETH
152437052022-07-30 12:13:20740 days ago1659183200
0xd0efc65B...4a1f6419d
0.004135 ETH
152437052022-07-30 12:13:20740 days ago1659183200
0xd0efc65B...4a1f6419d
0.004135 ETH
152397682022-07-29 21:19:47741 days ago1659129587
0xd0efc65B...4a1f6419d
0.00467829 ETH
152397682022-07-29 21:19:47741 days ago1659129587
0xd0efc65B...4a1f6419d
0.00467829 ETH
152393242022-07-29 19:38:00741 days ago1659123480
0xd0efc65B...4a1f6419d
0.00535174 ETH
152393242022-07-29 19:38:00741 days ago1659123480
0xd0efc65B...4a1f6419d
0.00535174 ETH
152391122022-07-29 18:48:38741 days ago1659120518
0xd0efc65B...4a1f6419d
0.00443904 ETH
152391122022-07-29 18:48:38741 days ago1659120518
0xd0efc65B...4a1f6419d
0.00443904 ETH
152387032022-07-29 17:25:48741 days ago1659115548
0xd0efc65B...4a1f6419d
0.01235712 ETH
152387032022-07-29 17:25:48741 days ago1659115548
0xd0efc65B...4a1f6419d
0.01235712 ETH
152366022022-07-29 9:38:14741 days ago1659087494
0xd0efc65B...4a1f6419d
0.00616549 ETH
152366022022-07-29 9:38:14741 days ago1659087494
0xd0efc65B...4a1f6419d
0.00616549 ETH
152356422022-07-29 5:58:21742 days ago1659074301
0xd0efc65B...4a1f6419d
0.00665904 ETH
152356422022-07-29 5:58:21742 days ago1659074301
0xd0efc65B...4a1f6419d
0.00665904 ETH
152348232022-07-29 2:53:08742 days ago1659063188
0xd0efc65B...4a1f6419d
0.00876083 ETH
152348232022-07-29 2:53:08742 days ago1659063188
0xd0efc65B...4a1f6419d
0.00876083 ETH
152347822022-07-29 2:43:43742 days ago1659062623
0xd0efc65B...4a1f6419d
0.01204247 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FrenchInu

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

/**

TG: @FrenchInu

 */
// 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 FrenchInu is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "French Inu";
    string private constant _symbol = "FRIES";
    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 = 100000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    // Taxes
    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 private _developmentAddress = payable(0x8d51497aB7664312B88Bff94517b56b0a66b48FF);
    address payable private _marketingAddress = payable(0x8d51497aB7664312B88Bff94517b56b0a66b48FF);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

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

    uint256 public _maxTxAmount = 2000000 * 10**9; // 2%
    uint256 public _maxWalletSize = 2000000 * 10**9; // 2%
    uint256 public _swapTokensAtAmount = 150000 * 10**9; // .15%

    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 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"}]

60806040526200001a67016345785d8a000060001962000394565b6200002890600019620003b7565b6006556000600881905560036009819055600a829055600b819055600c829055600d819055600e91909155600f5560128054738d51497ab7664312b88bff94517b56b0a66b48ff6001600160a01b031991821681179092556013805490911690911790556015805462ffffff60a01b19166201000160a01b17905566071afd498d0000601681905560175565886c98b76000601855348015620000ca57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a01559260048083019392829003018186803b1580156200018357600080fd5b505afa15801562000198573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001be9190620003dd565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200020757600080fd5b505afa1580156200021c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002429190620003dd565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200028b57600080fd5b505af1158015620002a0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c69190620003dd565b601580546001600160a01b0319166001600160a01b03928316179055600080548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601254851684528284208054821683179055601354909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a00006040516200038591815260200190565b60405180910390a3506200040f565b600082620003b257634e487b7160e01b600052601260045260246000fd5b500690565b600082821015620003d857634e487b7160e01b600052601160045260246000fd5b500390565b600060208284031215620003f057600080fd5b81516001600160a01b03811681146200040857600080fd5b9392505050565b611e0f806200041f6000396000f3fe6080604052600436106101d05760003560e01c80637d1db4a5116100f7578063a2a957bb11610095578063c492f04611610064578063c492f04614610556578063dd62ed3e14610576578063ea1644d5146105bc578063f2fde38b146105dc57600080fd5b8063a2a957bb146104d1578063a9059cbb146104f1578063bfd7928414610511578063c3c8cd801461054157600080fd5b80638f70ccf7116100d15780638f70ccf71461044d5780638f9a55c01461046d57806395d89b411461048357806398a5c315146104b157600080fd5b80637d1db4a5146103ec5780637f2feddc146104025780638da5cb5b1461042f57600080fd5b8063313ce5671161016f5780636fc3eaec1161013e5780636fc3eaec1461038257806370a0823114610397578063715018a6146103b757806374010ece146103cc57600080fd5b8063313ce5671461030657806349bd5a5e146103225780636b999053146103425780636d8aa8f81461036257600080fd5b80631694505e116101ab5780631694505e1461027357806318160ddd146102ab57806323b872dd146102d05780632fd689e3146102f057600080fd5b8062b8cf2a146101dc57806306fdde03146101fe578063095ea7b31461024357600080fd5b366101d757005b600080fd5b3480156101e857600080fd5b506101fc6101f7366004611960565b6105fc565b005b34801561020a57600080fd5b5060408051808201909152600a8152694672656e636820496e7560b01b60208201525b60405161023a9190611a25565b60405180910390f35b34801561024f57600080fd5b5061026361025e366004611a7a565b61069b565b604051901515815260200161023a565b34801561027f57600080fd5b50601454610293906001600160a01b031681565b6040516001600160a01b03909116815260200161023a565b3480156102b757600080fd5b5067016345785d8a00005b60405190815260200161023a565b3480156102dc57600080fd5b506102636102eb366004611aa6565b6106b2565b3480156102fc57600080fd5b506102c260185481565b34801561031257600080fd5b506040516009815260200161023a565b34801561032e57600080fd5b50601554610293906001600160a01b031681565b34801561034e57600080fd5b506101fc61035d366004611ae7565b61071b565b34801561036e57600080fd5b506101fc61037d366004611b14565b610766565b34801561038e57600080fd5b506101fc6107ae565b3480156103a357600080fd5b506102c26103b2366004611ae7565b6107f9565b3480156103c357600080fd5b506101fc61081b565b3480156103d857600080fd5b506101fc6103e7366004611b2f565b61088f565b3480156103f857600080fd5b506102c260165481565b34801561040e57600080fd5b506102c261041d366004611ae7565b60116020526000908152604090205481565b34801561043b57600080fd5b506000546001600160a01b0316610293565b34801561045957600080fd5b506101fc610468366004611b14565b6108be565b34801561047957600080fd5b506102c260175481565b34801561048f57600080fd5b50604080518082019091526005815264465249455360d81b602082015261022d565b3480156104bd57600080fd5b506101fc6104cc366004611b2f565b610906565b3480156104dd57600080fd5b506101fc6104ec366004611b48565b610935565b3480156104fd57600080fd5b5061026361050c366004611a7a565b610973565b34801561051d57600080fd5b5061026361052c366004611ae7565b60106020526000908152604090205460ff1681565b34801561054d57600080fd5b506101fc610980565b34801561056257600080fd5b506101fc610571366004611b7a565b6109d4565b34801561058257600080fd5b506102c2610591366004611bfe565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105c857600080fd5b506101fc6105d7366004611b2f565b610a75565b3480156105e857600080fd5b506101fc6105f7366004611ae7565b610aa4565b6000546001600160a01b0316331461062f5760405162461bcd60e51b815260040161062690611c37565b60405180910390fd5b60005b81518110156106975760016010600084848151811061065357610653611c6c565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061068f81611c98565b915050610632565b5050565b60006106a8338484610b8e565b5060015b92915050565b60006106bf848484610cb2565b610711843361070c85604051806060016040528060288152602001611db2602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906111ee565b610b8e565b5060019392505050565b6000546001600160a01b031633146107455760405162461bcd60e51b815260040161062690611c37565b6001600160a01b03166000908152601060205260409020805460ff19169055565b6000546001600160a01b031633146107905760405162461bcd60e51b815260040161062690611c37565b60158054911515600160b01b0260ff60b01b19909216919091179055565b6012546001600160a01b0316336001600160a01b031614806107e357506013546001600160a01b0316336001600160a01b0316145b6107ec57600080fd5b476107f681611228565b50565b6001600160a01b0381166000908152600260205260408120546106ac90611262565b6000546001600160a01b031633146108455760405162461bcd60e51b815260040161062690611c37565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108b95760405162461bcd60e51b815260040161062690611c37565b601655565b6000546001600160a01b031633146108e85760405162461bcd60e51b815260040161062690611c37565b60158054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146109305760405162461bcd60e51b815260040161062690611c37565b601855565b6000546001600160a01b0316331461095f5760405162461bcd60e51b815260040161062690611c37565b600893909355600a91909155600955600b55565b60006106a8338484610cb2565b6012546001600160a01b0316336001600160a01b031614806109b557506013546001600160a01b0316336001600160a01b0316145b6109be57600080fd5b60006109c9306107f9565b90506107f6816112e6565b6000546001600160a01b031633146109fe5760405162461bcd60e51b815260040161062690611c37565b60005b82811015610a6f578160056000868685818110610a2057610a20611c6c565b9050602002016020810190610a359190611ae7565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610a6781611c98565b915050610a01565b50505050565b6000546001600160a01b03163314610a9f5760405162461bcd60e51b815260040161062690611c37565b601755565b6000546001600160a01b03163314610ace5760405162461bcd60e51b815260040161062690611c37565b6001600160a01b038116610b335760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610626565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610bf05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610626565b6001600160a01b038216610c515760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610626565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d165760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610626565b6001600160a01b038216610d785760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610626565b60008111610dda5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610626565b6000546001600160a01b03848116911614801590610e0657506000546001600160a01b03838116911614155b156110e757601554600160a01b900460ff16610e9f576000546001600160a01b03848116911614610e9f5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610626565b601654811115610ef15760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610626565b6001600160a01b03831660009081526010602052604090205460ff16158015610f3357506001600160a01b03821660009081526010602052604090205460ff16155b610f8b5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610626565b6015546001600160a01b038381169116146110105760175481610fad846107f9565b610fb79190611cb3565b106110105760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610626565b600061101b306107f9565b6018546016549192508210159082106110345760165491505b80801561104b5750601554600160a81b900460ff16155b801561106557506015546001600160a01b03868116911614155b801561107a5750601554600160b01b900460ff165b801561109f57506001600160a01b03851660009081526005602052604090205460ff16155b80156110c457506001600160a01b03841660009081526005602052604090205460ff16155b156110e4576110d2826112e6565b4780156110e2576110e247611228565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061112957506001600160a01b03831660009081526005602052604090205460ff165b8061115b57506015546001600160a01b0385811691161480159061115b57506015546001600160a01b03848116911614155b15611168575060006111e2565b6015546001600160a01b03858116911614801561119357506014546001600160a01b03848116911614155b156111a557600854600c55600954600d555b6015546001600160a01b0384811691161480156111d057506014546001600160a01b03858116911614155b156111e257600a54600c55600b54600d555b610a6f8484848461146f565b600081848411156112125760405162461bcd60e51b81526004016106269190611a25565b50600061121f8486611ccb565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610697573d6000803e3d6000fd5b60006006548211156112c95760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610626565b60006112d361149d565b90506112df83826114c0565b9392505050565b6015805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061132e5761132e611c6c565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561138257600080fd5b505afa158015611396573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ba9190611ce2565b816001815181106113cd576113cd611c6c565b6001600160a01b0392831660209182029290920101526014546113f39130911684610b8e565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac9479061142c908590600090869030904290600401611cff565b600060405180830381600087803b15801561144657600080fd5b505af115801561145a573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b8061147c5761147c611502565b611487848484611530565b80610a6f57610a6f600e54600c55600f54600d55565b60008060006114aa611627565b90925090506114b982826114c0565b9250505090565b60006112df83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611667565b600c541580156115125750600d54155b1561151957565b600c8054600e55600d8054600f5560009182905555565b60008060008060008061154287611695565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061157490876116f2565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546115a39086611734565b6001600160a01b0389166000908152600260205260409020556115c581611793565b6115cf84836117dd565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161161491815260200190565b60405180910390a3505050505050505050565b600654600090819067016345785d8a000061164282826114c0565b82101561165e5750506006549267016345785d8a000092509050565b90939092509050565b600081836116885760405162461bcd60e51b81526004016106269190611a25565b50600061121f8486611d70565b60008060008060008060008060006116b28a600c54600d54611801565b92509250925060006116c261149d565b905060008060006116d58e878787611856565b919e509c509a509598509396509194505050505091939550919395565b60006112df83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111ee565b6000806117418385611cb3565b9050838110156112df5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610626565b600061179d61149d565b905060006117ab83836118a6565b306000908152600260205260409020549091506117c89082611734565b30600090815260026020526040902055505050565b6006546117ea90836116f2565b6006556007546117fa9082611734565b6007555050565b600080808061181b606461181589896118a6565b906114c0565b9050600061182e60646118158a896118a6565b90506000611846826118408b866116f2565b906116f2565b9992985090965090945050505050565b600080808061186588866118a6565b9050600061187388876118a6565b9050600061188188886118a6565b905060006118938261184086866116f2565b939b939a50919850919650505050505050565b6000826118b5575060006106ac565b60006118c18385611d92565b9050826118ce8583611d70565b146112df5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610626565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146107f657600080fd5b803561195b8161193b565b919050565b6000602080838503121561197357600080fd5b823567ffffffffffffffff8082111561198b57600080fd5b818501915085601f83011261199f57600080fd5b8135818111156119b1576119b1611925565b8060051b604051601f19603f830116810181811085821117156119d6576119d6611925565b6040529182528482019250838101850191888311156119f457600080fd5b938501935b82851015611a1957611a0a85611950565b845293850193928501926119f9565b98975050505050505050565b600060208083528351808285015260005b81811015611a5257858101830151858201604001528201611a36565b81811115611a64576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215611a8d57600080fd5b8235611a988161193b565b946020939093013593505050565b600080600060608486031215611abb57600080fd5b8335611ac68161193b565b92506020840135611ad68161193b565b929592945050506040919091013590565b600060208284031215611af957600080fd5b81356112df8161193b565b8035801515811461195b57600080fd5b600060208284031215611b2657600080fd5b6112df82611b04565b600060208284031215611b4157600080fd5b5035919050565b60008060008060808587031215611b5e57600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060408486031215611b8f57600080fd5b833567ffffffffffffffff80821115611ba757600080fd5b818601915086601f830112611bbb57600080fd5b813581811115611bca57600080fd5b8760208260051b8501011115611bdf57600080fd5b602092830195509350611bf59186019050611b04565b90509250925092565b60008060408385031215611c1157600080fd5b8235611c1c8161193b565b91506020830135611c2c8161193b565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611cac57611cac611c82565b5060010190565b60008219821115611cc657611cc6611c82565b500190565b600082821015611cdd57611cdd611c82565b500390565b600060208284031215611cf457600080fd5b81516112df8161193b565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d4f5784516001600160a01b031683529383019391830191600101611d2a565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611d8d57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611dac57611dac611c82565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ce0b1e65bd38a7a4e7fe7857326c1e4a71f0549151d4fd59f953c8bf6ed1a06964736f6c63430008090033

Deployed Bytecode

0x6080604052600436106101d05760003560e01c80637d1db4a5116100f7578063a2a957bb11610095578063c492f04611610064578063c492f04614610556578063dd62ed3e14610576578063ea1644d5146105bc578063f2fde38b146105dc57600080fd5b8063a2a957bb146104d1578063a9059cbb146104f1578063bfd7928414610511578063c3c8cd801461054157600080fd5b80638f70ccf7116100d15780638f70ccf71461044d5780638f9a55c01461046d57806395d89b411461048357806398a5c315146104b157600080fd5b80637d1db4a5146103ec5780637f2feddc146104025780638da5cb5b1461042f57600080fd5b8063313ce5671161016f5780636fc3eaec1161013e5780636fc3eaec1461038257806370a0823114610397578063715018a6146103b757806374010ece146103cc57600080fd5b8063313ce5671461030657806349bd5a5e146103225780636b999053146103425780636d8aa8f81461036257600080fd5b80631694505e116101ab5780631694505e1461027357806318160ddd146102ab57806323b872dd146102d05780632fd689e3146102f057600080fd5b8062b8cf2a146101dc57806306fdde03146101fe578063095ea7b31461024357600080fd5b366101d757005b600080fd5b3480156101e857600080fd5b506101fc6101f7366004611960565b6105fc565b005b34801561020a57600080fd5b5060408051808201909152600a8152694672656e636820496e7560b01b60208201525b60405161023a9190611a25565b60405180910390f35b34801561024f57600080fd5b5061026361025e366004611a7a565b61069b565b604051901515815260200161023a565b34801561027f57600080fd5b50601454610293906001600160a01b031681565b6040516001600160a01b03909116815260200161023a565b3480156102b757600080fd5b5067016345785d8a00005b60405190815260200161023a565b3480156102dc57600080fd5b506102636102eb366004611aa6565b6106b2565b3480156102fc57600080fd5b506102c260185481565b34801561031257600080fd5b506040516009815260200161023a565b34801561032e57600080fd5b50601554610293906001600160a01b031681565b34801561034e57600080fd5b506101fc61035d366004611ae7565b61071b565b34801561036e57600080fd5b506101fc61037d366004611b14565b610766565b34801561038e57600080fd5b506101fc6107ae565b3480156103a357600080fd5b506102c26103b2366004611ae7565b6107f9565b3480156103c357600080fd5b506101fc61081b565b3480156103d857600080fd5b506101fc6103e7366004611b2f565b61088f565b3480156103f857600080fd5b506102c260165481565b34801561040e57600080fd5b506102c261041d366004611ae7565b60116020526000908152604090205481565b34801561043b57600080fd5b506000546001600160a01b0316610293565b34801561045957600080fd5b506101fc610468366004611b14565b6108be565b34801561047957600080fd5b506102c260175481565b34801561048f57600080fd5b50604080518082019091526005815264465249455360d81b602082015261022d565b3480156104bd57600080fd5b506101fc6104cc366004611b2f565b610906565b3480156104dd57600080fd5b506101fc6104ec366004611b48565b610935565b3480156104fd57600080fd5b5061026361050c366004611a7a565b610973565b34801561051d57600080fd5b5061026361052c366004611ae7565b60106020526000908152604090205460ff1681565b34801561054d57600080fd5b506101fc610980565b34801561056257600080fd5b506101fc610571366004611b7a565b6109d4565b34801561058257600080fd5b506102c2610591366004611bfe565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105c857600080fd5b506101fc6105d7366004611b2f565b610a75565b3480156105e857600080fd5b506101fc6105f7366004611ae7565b610aa4565b6000546001600160a01b0316331461062f5760405162461bcd60e51b815260040161062690611c37565b60405180910390fd5b60005b81518110156106975760016010600084848151811061065357610653611c6c565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061068f81611c98565b915050610632565b5050565b60006106a8338484610b8e565b5060015b92915050565b60006106bf848484610cb2565b610711843361070c85604051806060016040528060288152602001611db2602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906111ee565b610b8e565b5060019392505050565b6000546001600160a01b031633146107455760405162461bcd60e51b815260040161062690611c37565b6001600160a01b03166000908152601060205260409020805460ff19169055565b6000546001600160a01b031633146107905760405162461bcd60e51b815260040161062690611c37565b60158054911515600160b01b0260ff60b01b19909216919091179055565b6012546001600160a01b0316336001600160a01b031614806107e357506013546001600160a01b0316336001600160a01b0316145b6107ec57600080fd5b476107f681611228565b50565b6001600160a01b0381166000908152600260205260408120546106ac90611262565b6000546001600160a01b031633146108455760405162461bcd60e51b815260040161062690611c37565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108b95760405162461bcd60e51b815260040161062690611c37565b601655565b6000546001600160a01b031633146108e85760405162461bcd60e51b815260040161062690611c37565b60158054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146109305760405162461bcd60e51b815260040161062690611c37565b601855565b6000546001600160a01b0316331461095f5760405162461bcd60e51b815260040161062690611c37565b600893909355600a91909155600955600b55565b60006106a8338484610cb2565b6012546001600160a01b0316336001600160a01b031614806109b557506013546001600160a01b0316336001600160a01b0316145b6109be57600080fd5b60006109c9306107f9565b90506107f6816112e6565b6000546001600160a01b031633146109fe5760405162461bcd60e51b815260040161062690611c37565b60005b82811015610a6f578160056000868685818110610a2057610a20611c6c565b9050602002016020810190610a359190611ae7565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610a6781611c98565b915050610a01565b50505050565b6000546001600160a01b03163314610a9f5760405162461bcd60e51b815260040161062690611c37565b601755565b6000546001600160a01b03163314610ace5760405162461bcd60e51b815260040161062690611c37565b6001600160a01b038116610b335760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610626565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610bf05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610626565b6001600160a01b038216610c515760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610626565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d165760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610626565b6001600160a01b038216610d785760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610626565b60008111610dda5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610626565b6000546001600160a01b03848116911614801590610e0657506000546001600160a01b03838116911614155b156110e757601554600160a01b900460ff16610e9f576000546001600160a01b03848116911614610e9f5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610626565b601654811115610ef15760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610626565b6001600160a01b03831660009081526010602052604090205460ff16158015610f3357506001600160a01b03821660009081526010602052604090205460ff16155b610f8b5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610626565b6015546001600160a01b038381169116146110105760175481610fad846107f9565b610fb79190611cb3565b106110105760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610626565b600061101b306107f9565b6018546016549192508210159082106110345760165491505b80801561104b5750601554600160a81b900460ff16155b801561106557506015546001600160a01b03868116911614155b801561107a5750601554600160b01b900460ff165b801561109f57506001600160a01b03851660009081526005602052604090205460ff16155b80156110c457506001600160a01b03841660009081526005602052604090205460ff16155b156110e4576110d2826112e6565b4780156110e2576110e247611228565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061112957506001600160a01b03831660009081526005602052604090205460ff165b8061115b57506015546001600160a01b0385811691161480159061115b57506015546001600160a01b03848116911614155b15611168575060006111e2565b6015546001600160a01b03858116911614801561119357506014546001600160a01b03848116911614155b156111a557600854600c55600954600d555b6015546001600160a01b0384811691161480156111d057506014546001600160a01b03858116911614155b156111e257600a54600c55600b54600d555b610a6f8484848461146f565b600081848411156112125760405162461bcd60e51b81526004016106269190611a25565b50600061121f8486611ccb565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610697573d6000803e3d6000fd5b60006006548211156112c95760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610626565b60006112d361149d565b90506112df83826114c0565b9392505050565b6015805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061132e5761132e611c6c565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561138257600080fd5b505afa158015611396573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ba9190611ce2565b816001815181106113cd576113cd611c6c565b6001600160a01b0392831660209182029290920101526014546113f39130911684610b8e565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac9479061142c908590600090869030904290600401611cff565b600060405180830381600087803b15801561144657600080fd5b505af115801561145a573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b8061147c5761147c611502565b611487848484611530565b80610a6f57610a6f600e54600c55600f54600d55565b60008060006114aa611627565b90925090506114b982826114c0565b9250505090565b60006112df83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611667565b600c541580156115125750600d54155b1561151957565b600c8054600e55600d8054600f5560009182905555565b60008060008060008061154287611695565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061157490876116f2565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546115a39086611734565b6001600160a01b0389166000908152600260205260409020556115c581611793565b6115cf84836117dd565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161161491815260200190565b60405180910390a3505050505050505050565b600654600090819067016345785d8a000061164282826114c0565b82101561165e5750506006549267016345785d8a000092509050565b90939092509050565b600081836116885760405162461bcd60e51b81526004016106269190611a25565b50600061121f8486611d70565b60008060008060008060008060006116b28a600c54600d54611801565b92509250925060006116c261149d565b905060008060006116d58e878787611856565b919e509c509a509598509396509194505050505091939550919395565b60006112df83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111ee565b6000806117418385611cb3565b9050838110156112df5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610626565b600061179d61149d565b905060006117ab83836118a6565b306000908152600260205260409020549091506117c89082611734565b30600090815260026020526040902055505050565b6006546117ea90836116f2565b6006556007546117fa9082611734565b6007555050565b600080808061181b606461181589896118a6565b906114c0565b9050600061182e60646118158a896118a6565b90506000611846826118408b866116f2565b906116f2565b9992985090965090945050505050565b600080808061186588866118a6565b9050600061187388876118a6565b9050600061188188886118a6565b905060006118938261184086866116f2565b939b939a50919850919650505050505050565b6000826118b5575060006106ac565b60006118c18385611d92565b9050826118ce8583611d70565b146112df5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610626565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146107f657600080fd5b803561195b8161193b565b919050565b6000602080838503121561197357600080fd5b823567ffffffffffffffff8082111561198b57600080fd5b818501915085601f83011261199f57600080fd5b8135818111156119b1576119b1611925565b8060051b604051601f19603f830116810181811085821117156119d6576119d6611925565b6040529182528482019250838101850191888311156119f457600080fd5b938501935b82851015611a1957611a0a85611950565b845293850193928501926119f9565b98975050505050505050565b600060208083528351808285015260005b81811015611a5257858101830151858201604001528201611a36565b81811115611a64576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215611a8d57600080fd5b8235611a988161193b565b946020939093013593505050565b600080600060608486031215611abb57600080fd5b8335611ac68161193b565b92506020840135611ad68161193b565b929592945050506040919091013590565b600060208284031215611af957600080fd5b81356112df8161193b565b8035801515811461195b57600080fd5b600060208284031215611b2657600080fd5b6112df82611b04565b600060208284031215611b4157600080fd5b5035919050565b60008060008060808587031215611b5e57600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060408486031215611b8f57600080fd5b833567ffffffffffffffff80821115611ba757600080fd5b818601915086601f830112611bbb57600080fd5b813581811115611bca57600080fd5b8760208260051b8501011115611bdf57600080fd5b602092830195509350611bf59186019050611b04565b90509250925092565b60008060408385031215611c1157600080fd5b8235611c1c8161193b565b91506020830135611c2c8161193b565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611cac57611cac611c82565b5060010190565b60008219821115611cc657611cc6611c82565b500190565b600082821015611cdd57611cdd611c82565b500390565b600060208284031215611cf457600080fd5b81516112df8161193b565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d4f5784516001600160a01b031683529383019391830191600101611d2a565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611d8d57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611dac57611dac611c82565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ce0b1e65bd38a7a4e7fe7857326c1e4a71f0549151d4fd59f953c8bf6ed1a06964736f6c63430008090033

Deployed Bytecode Sourcemap

4098:13535:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12806:169;;;;;;;;;;-1:-1:-1;12806:169:0;;;;;:::i;:::-;;:::i;:::-;;6634:83;;;;;;;;;;-1:-1:-1;6704:5:0;;;;;;;;;;;;-1:-1:-1;;;6704:5:0;;;;6634:83;;;;;;;:::i;:::-;;;;;;;;7559:193;;;;;;;;;;-1:-1:-1;7559:193:0;;;;;:::i;:::-;;:::i;:::-;;;2634:14:1;;2627:22;2609:41;;2597:2;2582:18;7559:193:0;2469:187:1;5458:41:0;;;;;;;;;;-1:-1:-1;5458:41:0;;;;-1:-1:-1;;;;;5458:41:0;;;;;;-1:-1:-1;;;;;2851:32:1;;;2833:51;;2821:2;2806:18;5458:41:0;2661:229:1;6911:95:0;;;;;;;;;;-1:-1:-1;4649:17:0;6911:95;;;3041:25:1;;;3029:2;3014:18;6911:95:0;2895:177:1;7760:446:0;;;;;;;;;;-1:-1:-1;7760:446:0;;;;;:::i;:::-;;:::i;5773:51::-;;;;;;;;;;;;;;;;6820:83;;;;;;;;;;-1:-1:-1;6820:83:0;;4323:1;3680:36:1;;3668:2;3653:18;6820:83:0;3538:184:1;5506:28:0;;;;;;;;;;-1:-1:-1;5506:28:0;;;;-1:-1:-1;;;;;5506:28:0;;;12983:92;;;;;;;;;;-1:-1:-1;12983:92:0;;;;;:::i;:::-;;:::i;17015:101::-;;;;;;;;;;-1:-1:-1;17015:101:0;;;;;:::i;:::-;;:::i;12563:235::-;;;;;;;;;;;;;:::i;7014:138::-;;;;;;;;;;-1:-1:-1;7014:138:0;;;;;:::i;:::-;;:::i;1585:148::-;;;;;;;;;;;;;:::i;17155:108::-;;;;;;;;;;-1:-1:-1;17155:108:0;;;;;:::i;:::-;;:::i;5655:45::-;;;;;;;;;;;;;;;;5200:43;;;;;;;;;;-1:-1:-1;5200:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;1371:79;;;;;;;;;;-1:-1:-1;1409:7:0;1436:6;-1:-1:-1;;;;;1436:6:0;1371:79;;12210:101;;;;;;;;;;-1:-1:-1;12210:101:0;;;;;:::i;:::-;;:::i;5713:47::-;;;;;;;;;;;;;;;;6725:87;;;;;;;;;;-1:-1:-1;6797:7:0;;;;;;;;;;;;-1:-1:-1;;;6797:7:0;;;;6725:87;;16824:139;;;;;;;;;;-1:-1:-1;16824:139:0;;;;;:::i;:::-;;:::i;16481:291::-;;;;;;;;;;-1:-1:-1;16481:291:0;;;;;:::i;:::-;;:::i;7160:199::-;;;;;;;;;;-1:-1:-1;7160:199:0;;;;;:::i;:::-;;:::i;5162:36::-;;;;;;;;;;-1:-1:-1;5162:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12319:236;;;;;;;;;;;;;:::i;17394:234::-;;;;;;;;;;-1:-1:-1;17394:234:0;;;;;:::i;:::-;;:::i;7367:184::-;;;;;;;;;;-1:-1:-1;7367:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7516:18:0;;;7484:7;7516:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7367:184;17271:115;;;;;;;;;;-1:-1:-1;17271:115:0;;;;;:::i;:::-;;:::i;1741:244::-;;;;;;;;;;-1:-1:-1;1741:244:0;;;;;:::i;:::-;;:::i;12806:169::-;1498:6;;-1:-1:-1;;;;;1498:6:0;210:10;1498:22;1490:67;;;;-1:-1:-1;;;1490:67:0;;;;;;;:::i;:::-;;;;;;;;;12882:9:::1;12877:91;12901:5;:12;12897:1;:16;12877:91;;;12952:4;12935;:14;12940:5;12946:1;12940:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12935:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12935:14:0;:21;;-1:-1:-1;;12935:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12915:3;::::1;::::0;::::1;:::i;:::-;;;;12877:91;;;;12806:169:::0;:::o;7559:193::-;7661:4;7683:39;210:10;7706:7;7715:6;7683:8;:39::i;:::-;-1:-1:-1;7740:4:0;7559:193;;;;;:::o;7760:446::-;7892:4;7909:36;7919:6;7927:9;7938:6;7909:9;:36::i;:::-;7956:220;7979:6;210:10;8027:138;8083:6;8027:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8027:19:0;;;;;;:11;:19;;;;;;;;210:10;8027:33;;;;;;;;;;:37;:138::i;:::-;7956:8;:220::i;:::-;-1:-1:-1;8194:4:0;7760:446;;;;;:::o;12983:92::-;1498:6;;-1:-1:-1;;;;;1498:6:0;210:10;1498:22;1490:67;;;;-1:-1:-1;;;1490:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13047:12:0::1;13062:5;13047:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;13047:20:0::1;::::0;;12983:92::o;17015:101::-;1498:6;;-1:-1:-1;;;;;1498:6:0;210:10;1498:22;1490:67;;;;-1:-1:-1;;;1490:67:0;;;;;;;:::i;:::-;17082:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;17082:26:0::1;-1:-1:-1::0;;;;17082:26:0;;::::1;::::0;;;::::1;::::0;;17015:101::o;12563:235::-;12629:19;;-1:-1:-1;;;;;12629:19:0;210:10;-1:-1:-1;;;;;12613:35:0;;:72;;;-1:-1:-1;12668:17:0;;-1:-1:-1;;;;;12668:17:0;210:10;-1:-1:-1;;;;;12652:33:0;;12613:72;12605:81;;;;;;12726:21;12758:32;12726:21;12758:12;:32::i;:::-;12594:204;12563:235::o;7014:138::-;-1:-1:-1;;;;;7127:16:0;;7080:7;7127:16;;;:7;:16;;;;;;7107:37;;:19;:37::i;1585:148::-;1498:6;;-1:-1:-1;;;;;1498:6:0;210:10;1498:22;1490:67;;;;-1:-1:-1;;;1490:67:0;;;;;;;:::i;:::-;1692:1:::1;1676:6:::0;;1655:40:::1;::::0;-1:-1:-1;;;;;1676:6:0;;::::1;::::0;1655:40:::1;::::0;1692:1;;1655:40:::1;1723:1;1706:19:::0;;-1:-1:-1;;;;;;1706:19:0::1;::::0;;1585:148::o;17155:108::-;1498:6;;-1:-1:-1;;;;;1498:6:0;210:10;1498:22;1490:67;;;;-1:-1:-1;;;1490:67:0;;;;;;;:::i;:::-;17229:12:::1;:26:::0;17155:108::o;12210:101::-;1498:6;;-1:-1:-1;;;;;1498:6:0;210:10;1498:22;1490:67;;;;-1:-1:-1;;;1490:67:0;;;;;;;:::i;:::-;12277:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;12277:26:0::1;-1:-1:-1::0;;;;12277:26:0;;::::1;::::0;;;::::1;::::0;;12210:101::o;16824:139::-;1498:6;;-1:-1:-1;;;;;1498:6:0;210:10;1498:22;1490:67;;;;-1:-1:-1;;;1490:67:0;;;;;;;:::i;:::-;16915:19:::1;:40:::0;16824:139::o;16481:291::-;1498:6;;-1:-1:-1;;;;;1498:6:0;210:10;1498:22;1490:67;;;;-1:-1:-1;;;1490:67:0;;;;;;;:::i;:::-;16615:14:::1;:30:::0;;;;16656:15:::1;:32:::0;;;;16699:12:::1;:26:::0;16736:13:::1;:28:::0;16481:291::o;7160:199::-;7265:4;7287:42;210:10;7311:9;7322:6;7287:9;:42::i;12319:236::-;12385:19;;-1:-1:-1;;;;;12385:19:0;210:10;-1:-1:-1;;;;;12369:35:0;;:72;;;-1:-1:-1;12424:17:0;;-1:-1:-1;;;;;12424:17:0;210:10;-1:-1:-1;;;;;12408:33:0;;12369:72;12361:81;;;;;;12453:23;12479:24;12497:4;12479:9;:24::i;:::-;12453:50;;12514:33;12531:15;12514:16;:33::i;17394:234::-;1498:6;;-1:-1:-1;;;;;1498:6:0;210:10;1498:22;1490:67;;;;-1:-1:-1;;;1490:67:0;;;;;;;:::i;:::-;17511:9:::1;17507:114;17526:19:::0;;::::1;17507:114;;;17601:8;17567:18;:31;17586:8;;17595:1;17586:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17567:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17567:31:0;:42;;-1:-1:-1;;17567:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17547:3;::::1;::::0;::::1;:::i;:::-;;;;17507:114;;;;17394:234:::0;;;:::o;17271:115::-;1498:6;;-1:-1:-1;;;;;1498:6:0;210:10;1498:22;1490:67;;;;-1:-1:-1;;;1490:67:0;;;;;;;:::i;:::-;17348:14:::1;:30:::0;17271:115::o;1741:244::-;1498:6;;-1:-1:-1;;;;;1498:6:0;210:10;1498:22;1490:67;;;;-1:-1:-1;;;1490:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1830:22:0;::::1;1822:73;;;::::0;-1:-1:-1;;;1822:73:0;;7166:2:1;1822:73: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:36;7341:19;;1822:73:0::1;6964:402:1::0;1822:73:0::1;1932:6;::::0;;1911:38:::1;::::0;-1:-1:-1;;;;;1911:38:0;;::::1;::::0;1932:6;::::1;::::0;1911:38:::1;::::0;::::1;1960:6;:17:::0;;-1:-1:-1;;;;;;1960:17:0::1;-1:-1:-1::0;;;;;1960:17:0;;;::::1;::::0;;;::::1;::::0;;1741:244::o;8897:369::-;-1:-1:-1;;;;;9024:19:0;;9016:68;;;;-1:-1:-1;;;9016:68:0;;7573:2:1;9016:68:0;;;7555:21:1;7612:2;7592:18;;;7585:30;7651:34;7631:18;;;7624:62;-1:-1:-1;;;7702:18:1;;;7695:34;7746:19;;9016:68:0;7371:400:1;9016:68:0;-1:-1:-1;;;;;9103:21:0;;9095:68;;;;-1:-1:-1;;;9095:68:0;;7978:2:1;9095:68:0;;;7960:21:1;8017:2;7997:18;;;7990:30;8056:34;8036:18;;;8029:62;-1:-1:-1;;;8107:18:1;;;8100:32;8149:19;;9095:68:0;7776:398:1;9095:68:0;-1:-1:-1;;;;;9174:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9226:32;;3041:25:1;;;9226:32:0;;3014:18:1;9226:32:0;;;;;;;8897:369;;;:::o;9274:2330::-;-1:-1:-1;;;;;9396:18:0;;9388:68;;;;-1:-1:-1;;;9388:68:0;;8381:2:1;9388:68:0;;;8363:21:1;8420:2;8400:18;;;8393:30;8459:34;8439:18;;;8432:62;-1:-1:-1;;;8510:18:1;;;8503:35;8555:19;;9388:68:0;8179:401:1;9388:68:0;-1:-1:-1;;;;;9475:16:0;;9467:64;;;;-1:-1:-1;;;9467:64:0;;8787:2:1;9467:64:0;;;8769:21:1;8826:2;8806:18;;;8799:30;8865:34;8845:18;;;8838:62;-1:-1:-1;;;8916:18:1;;;8909:33;8959:19;;9467:64:0;8585:399:1;9467:64:0;9559:1;9550:6;:10;9542:64;;;;-1:-1:-1;;;9542:64:0;;9191:2:1;9542:64:0;;;9173:21:1;9230:2;9210:18;;;9203:30;9269:34;9249:18;;;9242:62;-1:-1:-1;;;9320:18:1;;;9313:39;9369:19;;9542:64:0;8989:405:1;9542:64:0;1409:7;1436:6;-1:-1:-1;;;;;9623:15:0;;;1436:6;;9623:15;;;;:32;;-1:-1:-1;1409:7:0;1436:6;-1:-1:-1;;;;;9642:13:0;;;1436:6;;9642:13;;9623:32;9619:1259;;;9712:11;;-1:-1:-1;;;9712:11:0;;;;9707:144;;1409:7;1436:6;-1:-1:-1;;;;;9752:15:0;;;1436:6;;9752:15;9744:91;;;;-1:-1:-1;;;9744:91:0;;9601:2:1;9744:91:0;;;9583:21:1;9640:2;9620:18;;;9613:30;9679:34;9659:18;;;9652:62;9750:33;9730:18;;;9723:61;9801:19;;9744:91:0;9399:427:1;9744:91:0;9885:12;;9875:6;:22;;9867:63;;;;-1:-1:-1;;;9867:63:0;;10033:2:1;9867:63:0;;;10015:21:1;10072:2;10052:18;;;10045:30;10111;10091:18;;;10084:58;10159:18;;9867:63:0;9831:352:1;9867:63:0;-1:-1:-1;;;;;9954:10:0;;;;;;:4;:10;;;;;;;;9953:11;:24;;;;-1:-1:-1;;;;;;9969:8:0;;;;;;:4;:8;;;;;;;;9968:9;9953:24;9945:72;;;;-1:-1:-1;;;9945:72:0;;10390:2:1;9945:72:0;;;10372:21:1;10429:2;10409:18;;;10402:30;10468:34;10448:18;;;10441:62;-1:-1:-1;;;10519:18:1;;;10512:33;10562:19;;9945:72:0;10188:399:1;9945:72:0;10043:13;;-1:-1:-1;;;;;10037:19:0;;;10043:13;;10037:19;10034:146;;10110:14;;10101:6;10085:13;10095:2;10085:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10077:87;;;;-1:-1:-1;;;10077:87:0;;10927:2:1;10077:87:0;;;10909:21:1;10966:2;10946:18;;;10939:30;11005:34;10985:18;;;10978:62;-1:-1:-1;;;11056:18:1;;;11049:33;11099:19;;10077:87:0;10725:399:1;10077:87:0;10196:28;10227:24;10245:4;10227:9;:24::i;:::-;10305:19;;10368:12;;10196:55;;-1:-1:-1;10281:43:0;;;;10344:36;;10341:124;;10437:12;;10414:35;;10341:124;10485:7;:18;;;;-1:-1:-1;10497:6:0;;-1:-1:-1;;;10497:6:0;;;;10496:7;10485:18;:43;;;;-1:-1:-1;10515:13:0;;-1:-1:-1;;;;;10507:21:0;;;10515:13;;10507:21;;10485:43;:58;;;;-1:-1:-1;10532:11:0;;-1:-1:-1;;;10532:11:0;;;;10485:58;:87;;;;-1:-1:-1;;;;;;10548:24:0;;;;;;:18;:24;;;;;;;;10547:25;10485:87;:114;;;;-1:-1:-1;;;;;;10577:22:0;;;;;;:18;:22;;;;;;;;10576:23;10485:114;10481:386;;;10620:38;10637:20;10620:16;:38::i;:::-;10706:21;10750:22;;10746:106;;10797:35;10810:21;10797:12;:35::i;:::-;10601:266;10481:386;9657:1221;;9619:1259;-1:-1:-1;;;;;10954:24:0;;10890:12;10954:24;;;:18;:24;;;;;;10905:4;;10954:24;;;:50;;-1:-1:-1;;;;;;10982:22:0;;;;;;:18;:22;;;;;;;;10954:50;10953:102;;;-1:-1:-1;11018:13:0;;-1:-1:-1;;;;;11010:21:0;;;11018:13;;11010:21;;;;:44;;-1:-1:-1;11041:13:0;;-1:-1:-1;;;;;11035:19:0;;;11041:13;;11035:19;;11010:44;10949:594;;;-1:-1:-1;11082:5:0;10949:594;;;11165:13;;-1:-1:-1;;;;;11157:21:0;;;11165:13;;11157:21;:55;;;;-1:-1:-1;11196:15:0;;-1:-1:-1;;;;;11182:30:0;;;11196:15;;11182:30;;11157:55;11154:162;;;11245:14;;11233:9;:26;11288:12;;11278:7;:22;11154:162;11375:13;;-1:-1:-1;;;;;11369:19:0;;;11375:13;;11369:19;:55;;;;-1:-1:-1;11408:15:0;;-1:-1:-1;;;;;11392:32:0;;;11408:15;;11392:32;;11369:55;11365:165;;;11457:15;;11445:9;:27;11501:13;;11491:7;:23;11365:165;11555:41;11570:4;11576:2;11580:6;11588:7;11555:14;:41::i;2349:224::-;2469:7;2505:12;2497:6;;;;2489:29;;;;-1:-1:-1;;;2489:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2529:9:0;2541:5;2545:1;2541;:5;:::i;:::-;2529:17;2349:224;-1:-1:-1;;;;;2349:224:0:o;12103:99::-;12160:17;;:34;;-1:-1:-1;;;;;12160:17:0;;;;:34;;;;;12187:6;;12160:17;:34;:17;:34;12187:6;12160:17;:34;;;;;;;;;;;;;;;;;;;8214:323;8309:7;8367;;8356;:18;;8334:110;;;;-1:-1:-1;;;8334:110:0;;11461:2:1;8334:110:0;;;11443:21:1;11500:2;11480:18;;;11473:30;11539:34;11519:18;;;11512:62;-1:-1:-1;;;11590:18:1;;;11583:40;11640:19;;8334:110:0;11259:406:1;8334:110:0;8455:19;8477:10;:8;:10::i;:::-;8455:32;-1:-1:-1;8505:24:0;:7;8455:32;8505:11;:24::i;:::-;8498:31;8214:323;-1:-1:-1;;;8214:323:0:o;11612:483::-;5926:6;:13;;-1:-1:-1;;;;5926:13:0;-1:-1:-1;;;5926:13:0;;;11714:16:::1;::::0;;11728:1:::1;11714:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11714:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11714:16:0::1;11690:40;;11759:4;11741;11746:1;11741:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11741:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11785:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11785:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11741:7;;11785:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11775:4;11780:1;11775:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11775:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11850:15:::1;::::0;11818:62:::1;::::0;11835:4:::1;::::0;11850:15:::1;11868:11:::0;11818:8:::1;:62::i;:::-;11891:15;::::0;:196:::1;::::0;-1:-1:-1;;;11891:196:0;;-1:-1:-1;;;;;11891:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11972:11;;11891:15:::1;::::0;12014:4;;12041::::1;::::0;12061:15:::1;::::0;11891:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5962:6:0;:14;;-1:-1:-1;;;;5962:14:0;;;-1:-1:-1;;;;11612:483:0:o;13083:282::-;13239:7;13234:28;;13248:14;:12;:14::i;:::-;13273:44;13291:6;13299:9;13310:6;13273:17;:44::i;:::-;13333:7;13328:29;;13342:15;8828:17;;8816:9;:29;8866:15;;8856:7;:25;8772:117;16044:164;16086:7;16107:15;16124;16143:19;:17;:19::i;:::-;16106:56;;-1:-1:-1;16106:56:0;-1:-1:-1;16180:20:0;16106:56;;16180:11;:20::i;:::-;16173:27;;;;16044:164;:::o;2835:132::-;2893:7;2920:39;2924:1;2927;2920:39;;;;;;;;;;;;;;;;;:3;:39::i;8545:219::-;8592:9;;:14;:30;;;;-1:-1:-1;8610:7:0;;:12;8592:30;8588:43;;;8545:219::o;8588:43::-;8663:9;;;8643:17;:29;8701:7;;;8683:15;:25;-1:-1:-1;8721:13:0;;;;8745:11;8545:219::o;13373:610::-;13520:15;13550:23;13588:12;13615:23;13653:12;13680:13;13707:19;13718:7;13707:10;:19::i;:::-;-1:-1:-1;;;;;13755:15:0;;;;;;:7;:15;;;;;;13505:221;;-1:-1:-1;13505:221:0;;-1:-1:-1;13505:221:0;;-1:-1:-1;13505:221:0;-1:-1:-1;13505:221:0;-1:-1:-1;13505:221:0;-1:-1:-1;13755:28:0;;13505:221;13755:19;:28::i;:::-;-1:-1:-1;;;;;13737:15:0;;;;;;;:7;:15;;;;;;:46;;;;13815:18;;;;;;;:39;;13838:15;13815:22;:39::i;:::-;-1:-1:-1;;;;;13794:18:0;;;;;;:7;:18;;;;;:60;13865:16;13875:5;13865:9;:16::i;:::-;13892:23;13904:4;13910;13892:11;:23::i;:::-;13948:9;-1:-1:-1;;;;;13931:44:0;13940:6;-1:-1:-1;;;;;13931:44:0;;13959:15;13931:44;;;;3041:25:1;;3029:2;3014:18;;2895:177;13931:44:0;;;;;;;;13494:489;;;;;;13373:610;;;:::o;16216:257::-;16314:7;;16267;;;;4649:17;16382:20;16314:7;4649:17;16382:11;:20::i;:::-;16372:7;:30;16368:61;;;-1:-1:-1;;16412:7:0;;;4649:17;;-1:-1:-1;16216:257:0;-1:-1:-1;16216:257:0:o;16368:61::-;16448:7;;16457;;-1:-1:-1;16216:257:0;-1:-1:-1;16216:257:0:o;2975:223::-;3095:7;3130:12;3123:5;3115:28;;;;-1:-1:-1;;;3115:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3154:9:0;3166:5;3170:1;3166;:5;:::i;14402:615::-;14502:7;14524;14546;14568;14590;14612;14648:23;14673:12;14687:13;14717:40;14729:7;14738:9;;14749:7;;14717:11;:40::i;:::-;14647:110;;;;;;14768:19;14790:10;:8;:10::i;:::-;14768:32;;14812:15;14829:23;14854:12;14883:46;14895:7;14904:4;14910:5;14917:11;14883;:46::i;:::-;14811:118;;-1:-1:-1;14811:118:0;-1:-1:-1;14811:118:0;-1:-1:-1;14980:15:0;;-1:-1:-1;14997:4:0;;-1:-1:-1;15003:5:0;;-1:-1:-1;;;;;14402:615:0;;;;;;;:::o;2205:136::-;2263:7;2290:43;2294:1;2297;2290:43;;;;;;;;;;;;;;;;;:3;:43::i;2018:179::-;2076:7;;2108:5;2112:1;2108;:5;:::i;:::-;2096:17;;2137:1;2132;:6;;2124:46;;;;-1:-1:-1;;;2124:46:0;;13335:2:1;2124:46:0;;;13317:21:1;13374:2;13354:18;;;13347:30;13413:29;13393:18;;;13386:57;13460:18;;2124:46:0;13133:351:1;13991:211:0;14044:19;14066:10;:8;:10::i;:::-;14044:32;-1:-1:-1;14087:13:0;14103:22;:5;14044:32;14103:9;:22::i;:::-;14177:4;14161:22;;;;:7;:22;;;;;;14087:38;;-1:-1:-1;14161:33:0;;14087:38;14161:26;:33::i;:::-;14152:4;14136:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;13991:211:0:o;14210:147::-;14288:7;;:17;;14300:4;14288:11;:17::i;:::-;14278:7;:27;14329:10;;:20;;14344:4;14329:14;:20::i;:::-;14316:10;:33;-1:-1:-1;;14210:147:0:o;15025:469::-;15194:7;;;;15288:30;15314:3;15288:21;:7;15300:8;15288:11;:21::i;:::-;:25;;:30::i;:::-;15273:45;-1:-1:-1;15329:13:0;15345:28;15369:3;15345:19;:7;15357:6;15345:11;:19::i;:28::-;15329:44;-1:-1:-1;15384:23:0;15410:28;15329:44;15410:17;:7;15422:4;15410:11;:17::i;:::-;:21;;:28::i;:::-;15384:54;15474:4;;-1:-1:-1;15480:5:0;;-1:-1:-1;15025:469:0;;-1:-1:-1;;;;;15025:469:0:o;15502:534::-;15696:7;;;;15793:24;:7;15805:11;15793;:24::i;:::-;15775:42;-1:-1:-1;15828:12:0;15843:21;:4;15852:11;15843:8;:21::i;:::-;15828:36;-1:-1:-1;15875:13:0;15891:22;:5;15901:11;15891:9;:22::i;:::-;15875:38;-1:-1:-1;15924:23:0;15950:28;15875:38;15950:17;:7;15962:4;15950:11;:17::i;:28::-;15997:7;;;;-1:-1:-1;16023:4:0;;-1:-1:-1;15502:534:0;;-1:-1:-1;;;;;;;15502:534:0:o;2581:246::-;2639:7;2663:6;2659:47;;-1:-1:-1;2693:1:0;2686:8;;2659:47;2716:9;2728:5;2732:1;2728;:5;:::i;:::-;2716:17;-1:-1:-1;2761:1:0;2752:5;2756:1;2716:17;2752:5;:::i;:::-;:10;2744:56;;;;-1:-1:-1;;;2744:56:0;;13864:2:1;2744:56:0;;;13846:21:1;13903:2;13883:18;;;13876:30;13942:34;13922:18;;;13915:62;-1:-1:-1;;;13993:18:1;;;13986:31;14034:19;;2744:56:0;13662: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;10592:128::-;10632:3;10663:1;10659:6;10656:1;10653:13;10650:39;;;10669:18;;:::i;:::-;-1:-1:-1;10705:9:1;;10592:128::o;11129:125::-;11169:4;11197:1;11194;11191:8;11188:34;;;11202:18;;:::i;:::-;-1:-1:-1;11239:9:1;;11129:125::o;11670:251::-;11740:6;11793:2;11781:9;11772:7;11768:23;11764:32;11761:52;;;11809:1;11806;11799:12;11761:52;11841:9;11835:16;11860:31;11885:5;11860:31;:::i;11926:980::-;12188:4;12236:3;12225:9;12221:19;12267:6;12256:9;12249:25;12293:2;12331:6;12326:2;12315:9;12311:18;12304:34;12374:3;12369:2;12358:9;12354:18;12347:31;12398:6;12433;12427:13;12464:6;12456;12449:22;12502:3;12491:9;12487:19;12480:26;;12541:2;12533:6;12529:15;12515:29;;12562:1;12572:195;12586:6;12583:1;12580:13;12572:195;;;12651:13;;-1:-1:-1;;;;;12647:39:1;12635:52;;12742:15;;;;12707:12;;;;12683:1;12601:9;12572:195;;;-1:-1:-1;;;;;;;12823:32:1;;;;12818:2;12803:18;;12796:60;-1:-1:-1;;;12887:3:1;12872:19;12865:35;12784:3;11926:980;-1:-1:-1;;;11926:980:1:o;12911:217::-;12951:1;12977;12967:132;;13021:10;13016:3;13012:20;13009:1;13002:31;13056:4;13053:1;13046:15;13084:4;13081:1;13074:15;12967:132;-1:-1:-1;13113:9:1;;12911:217::o;13489:168::-;13529:7;13595:1;13591;13587:6;13583:14;13580:1;13577:21;13572:1;13565:9;13558:17;13554:45;13551:71;;;13602:18;;:::i;:::-;-1:-1:-1;13642:9:1;;13489:168::o

Swarm Source

ipfs://ce0b1e65bd38a7a4e7fe7857326c1e4a71f0549151d4fd59f953c8bf6ed1a069

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.