ETH Price: $3,338.29 (-1.16%)

Contract

0xF9122FBed9B2B68C9437DbF706761F379903Bea5
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer163090862023-01-01 3:00:11722 days ago1672542011IN
0xF9122FBe...79903Bea5
0 ETH0.0033773815.96516341
Transfer163090672023-01-01 2:56:23722 days ago1672541783IN
0xF9122FBe...79903Bea5
0 ETH0.0034937315.51206232
Approve146754022022-04-28 22:12:21969 days ago1651183941IN
0xF9122FBe...79903Bea5
0 ETH0.0010799144.36416326
Approve146725292022-04-28 11:12:57970 days ago1651144377IN
0xF9122FBe...79903Bea5
0 ETH0.0007364130.25302718
Approve146001572022-04-17 2:30:14981 days ago1650162614IN
0xF9122FBe...79903Bea5
0 ETH0.0010763323.22800065
Transfer145998902022-04-17 1:32:37981 days ago1650159157IN
0xF9122FBe...79903Bea5
0 ETH0.0015551820.04848744
Approve145537302022-04-09 20:36:47988 days ago1649536607IN
0xF9122FBe...79903Bea5
0 ETH0.0020640944.26909825
Approve145283462022-04-05 21:26:28992 days ago1649193988IN
0xF9122FBe...79903Bea5
0 ETH0.0021249887.29694868
Approve145237382022-04-05 4:18:23993 days ago1649132303IN
0xF9122FBe...79903Bea5
0 ETH0.0012581651.68680842
Approve144291942022-03-21 10:40:131008 days ago1647859213IN
0xF9122FBe...79903Bea5
0 ETH0.0012269126.31405713
Approve144252792022-03-20 20:01:031008 days ago1647806463IN
0xF9122FBe...79903Bea5
0 ETH0.0016646135.70153878
Approve144166202022-03-19 11:35:571010 days ago1647689757IN
0xF9122FBe...79903Bea5
0 ETH0.0004118716.92043109
Approve144096942022-03-18 9:43:521011 days ago1647596632IN
0xF9122FBe...79903Bea5
0 ETH0.0018579239.84729582
Approve144094592022-03-18 8:56:301011 days ago1647593790IN
0xF9122FBe...79903Bea5
0 ETH0.0027311258.57522368
Approve144092932022-03-18 8:19:481011 days ago1647591588IN
0xF9122FBe...79903Bea5
0 ETH0.0018489739.65545982
Approve144088992022-03-18 6:51:161011 days ago1647586276IN
0xF9122FBe...79903Bea5
0 ETH0.00126927.21672049
Approve144087352022-03-18 6:13:171011 days ago1647583997IN
0xF9122FBe...79903Bea5
0 ETH0.0013332528.59467574
Approve144084012022-03-18 5:03:591011 days ago1647579839IN
0xF9122FBe...79903Bea5
0 ETH0.002265948.59753794
Approve144076062022-03-18 2:06:481011 days ago1647569208IN
0xF9122FBe...79903Bea5
0 ETH0.0027122958.17131933
Approve144075302022-03-18 1:47:061011 days ago1647568026IN
0xF9122FBe...79903Bea5
0 ETH0.002670457.27279506
Approve144075152022-03-18 1:44:011011 days ago1647567841IN
0xF9122FBe...79903Bea5
0 ETH0.0037507880.44402104
Approve144075032022-03-18 1:40:421011 days ago1647567642IN
0xF9122FBe...79903Bea5
0 ETH0.0036246677.73911206
Approve144074882022-03-18 1:36:261011 days ago1647567386IN
0xF9122FBe...79903Bea5
0 ETH0.0029332562.91032504
Approve144074882022-03-18 1:36:261011 days ago1647567386IN
0xF9122FBe...79903Bea5
0 ETH0.0029332562.91032504
Approve144074852022-03-18 1:35:261011 days ago1647567326IN
0xF9122FBe...79903Bea5
0 ETH0.0033267271.34918749
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
163090862023-01-01 3:00:11722 days ago1672542011
0xF9122FBe...79903Bea5
0.0065277 ETH
163090862023-01-01 3:00:11722 days ago1672542011
0xF9122FBe...79903Bea5
0.0065277 ETH
163090672023-01-01 2:56:23722 days ago1672541783
0xF9122FBe...79903Bea5
0.00693492 ETH
163090672023-01-01 2:56:23722 days ago1672541783
0xF9122FBe...79903Bea5
0.00693492 ETH
145170512022-04-04 3:14:18994 days ago1649042058
0xF9122FBe...79903Bea5
0.00521234 ETH
145170512022-04-04 3:14:18994 days ago1649042058
0xF9122FBe...79903Bea5
0.00521234 ETH
144292032022-03-21 10:41:141008 days ago1647859274
0xF9122FBe...79903Bea5
0.00821105 ETH
144292032022-03-21 10:41:141008 days ago1647859274
0xF9122FBe...79903Bea5
0.00821105 ETH
144252812022-03-20 20:02:021008 days ago1647806522
0xF9122FBe...79903Bea5
0.00186727 ETH
144252812022-03-20 20:02:021008 days ago1647806522
0xF9122FBe...79903Bea5
0.00186727 ETH
144167102022-03-19 11:54:471009 days ago1647690887
0xF9122FBe...79903Bea5
0.00356337 ETH
144167102022-03-19 11:54:471009 days ago1647690887
0xF9122FBe...79903Bea5
0.00356337 ETH
144125762022-03-18 20:25:561010 days ago1647635156
0xF9122FBe...79903Bea5
0.00553473 ETH
144125762022-03-18 20:25:561010 days ago1647635156
0xF9122FBe...79903Bea5
0.00553473 ETH
144104152022-03-18 12:29:501010 days ago1647606590
0xF9122FBe...79903Bea5
0.00600492 ETH
144104152022-03-18 12:29:501010 days ago1647606590
0xF9122FBe...79903Bea5
0.00600492 ETH
144095502022-03-18 9:11:521011 days ago1647594712
0xF9122FBe...79903Bea5
0.00599303 ETH
144095502022-03-18 9:11:521011 days ago1647594712
0xF9122FBe...79903Bea5
0.00599303 ETH
144095392022-03-18 9:09:271011 days ago1647594567
0xF9122FBe...79903Bea5
0.00686548 ETH
144095392022-03-18 9:09:271011 days ago1647594567
0xF9122FBe...79903Bea5
0.00686548 ETH
144088892022-03-18 6:49:361011 days ago1647586176
0xF9122FBe...79903Bea5
0.01246391 ETH
144088892022-03-18 6:49:361011 days ago1647586176
0xF9122FBe...79903Bea5
0.01246391 ETH
144087392022-03-18 6:14:411011 days ago1647584081
0xF9122FBe...79903Bea5
0.00446114 ETH
144087392022-03-18 6:14:411011 days ago1647584081
0xF9122FBe...79903Bea5
0.00446114 ETH
144085202022-03-18 5:28:031011 days ago1647581283
0xF9122FBe...79903Bea5
0.00492669 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
APESHIT

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-03-17
*/

/**

*/

//Telegram - https://t.me/apecoinisshit
//website - http://apecoinshit.com/
//Twitter - https://twitter.com/ApeShitEth

// 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 APESHIT is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "Apecoin is SHIT";
    string private constant _symbol = "APESHIT";
    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 = 1000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 1;  
    uint256 private _taxFeeOnBuy = 12;  
    uint256 private _redisFeeOnSell = 1;  
    uint256 private _taxFeeOnSell = 15;
 
    //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(0x99feb810FFc7A54a3250cd7F03e6FAf1545F8607); 
    address payable private _marketingAddress = payable(0xFe23497c5Db0c409613E4be359b7d1Ed526828f6);
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = true;
 
    uint256 public _maxTxAmount = 10000000000 * 10**9; 
    uint256 public _maxWalletSize = 10000000000 * 10**9; 
    uint256 public _swapTokensAtAmount = 10000000 * 10**9;
 
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor() {
 
        _rOwned[_msgSender()] = _rTotal;
 
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
 
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;
 
        emit Transfer(address(0), _msgSender(), _tTotal);
    }
 
    function name() public pure returns (string memory) {
        return _name;
    }
 
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
 
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
 
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
 
    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }
 
    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
 
    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }
 
    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }
 
    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }
 
    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
 
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
 
        _redisFee = 0;
        _taxFee = 0;
    }
 
    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }
 
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
 
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
 
        if (from != owner() && to != owner()) {
 
            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }
 
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
 
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
 
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        bool takeFee = true;
 
        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
 
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
 
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
 
        }
 
        _tokenTransfer(from, to, amount, takeFee);
    }
 
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 
    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }
 
    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }
 
    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
 
    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
 
    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
 
    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
 
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }
 
    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }
 
    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }
 
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }
 
    receive() external payable {}
 
    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }
 
    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }
 
    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }
 
    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }
 
    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
 
    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        require(redisFeeOnBuy >= 0 && redisFeeOnBuy <= 4, "Buy rewards must be between 0% and 4%");
        require(taxFeeOnBuy >= 0 && taxFeeOnBuy <= 20, "Buy tax must be between 0% and 20%");
        require(redisFeeOnSell >= 0 && redisFeeOnSell <= 4, "Sell rewards must be between 0% and 4%");
        require(taxFeeOnSell >= 0 && taxFeeOnSell <= 20, "Sell tax must be between 0% and 20%");

        _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 {
      if (maxTxAmount > 5000000000 * 10**9) {
           _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"}]

60806040526200001b683635c9adc5dea0000060001962000378565b62000029906000196200039b565b60065560016008819055600c6009819055600a829055600f600b81905590829055600d819055600e919091558055601280546001600160a01b03199081167399feb810ffc7a54a3250cd7f03e6faf1545f8607179091556013805490911673fe23497c5db0c409613e4be359b7d1ed526828f61790556015805462ffffff60a01b1916600160b01b179055678ac7230489e800006016819055601755662386f26fc10000601855348015620000dd57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa1580156200019b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c19190620003c1565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200020f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002359190620003c1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000283573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a99190620003c1565b601580546001600160a01b0319166001600160a01b03928316179055600080548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601254851684528284208054821683179055601354909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea000006040516200036991815260200190565b60405180910390a350620003f3565b6000826200039657634e487b7160e01b600052601260045260246000fd5b500690565b600082821015620003bc57634e487b7160e01b600052601160045260246000fd5b500390565b600060208284031215620003d457600080fd5b81516001600160a01b0381168114620003ec57600080fd5b9392505050565b611f9280620004036000396000f3fe6080604052600436106101d05760003560e01c80637d1db4a5116100f7578063a2a957bb11610095578063c492f04611610064578063c492f0461461055e578063dd62ed3e1461057e578063ea1644d5146105c4578063f2fde38b146105e457600080fd5b8063a2a957bb146104d9578063a9059cbb146104f9578063bfd7928414610519578063c3c8cd801461054957600080fd5b80638f70ccf7116100d15780638f70ccf7146104535780638f9a55c01461047357806395d89b411461048957806398a5c315146104b957600080fd5b80637d1db4a5146103f25780637f2feddc146104085780638da5cb5b1461043557600080fd5b8063313ce5671161016f5780636fc3eaec1161013e5780636fc3eaec1461038857806370a082311461039d578063715018a6146103bd57806374010ece146103d257600080fd5b8063313ce5671461030c57806349bd5a5e146103285780636b999053146103485780636d8aa8f81461036857600080fd5b80631694505e116101ab5780631694505e1461027857806318160ddd146102b057806323b872dd146102d65780632fd689e3146102f657600080fd5b8062b8cf2a146101dc57806306fdde03146101fe578063095ea7b31461024857600080fd5b366101d757005b600080fd5b3480156101e857600080fd5b506101fc6101f7366004611ae3565b610604565b005b34801561020a57600080fd5b5060408051808201909152600f81526e105c1958dbda5b881a5cc814d21255608a1b60208201525b60405161023f9190611ba8565b60405180910390f35b34801561025457600080fd5b50610268610263366004611bfd565b6106a3565b604051901515815260200161023f565b34801561028457600080fd5b50601454610298906001600160a01b031681565b6040516001600160a01b03909116815260200161023f565b3480156102bc57600080fd5b50683635c9adc5dea000005b60405190815260200161023f565b3480156102e257600080fd5b506102686102f1366004611c29565b6106ba565b34801561030257600080fd5b506102c860185481565b34801561031857600080fd5b506040516009815260200161023f565b34801561033457600080fd5b50601554610298906001600160a01b031681565b34801561035457600080fd5b506101fc610363366004611c6a565b610723565b34801561037457600080fd5b506101fc610383366004611c97565b61076e565b34801561039457600080fd5b506101fc6107b6565b3480156103a957600080fd5b506102c86103b8366004611c6a565b610801565b3480156103c957600080fd5b506101fc610823565b3480156103de57600080fd5b506101fc6103ed366004611cb2565b610897565b3480156103fe57600080fd5b506102c860165481565b34801561041457600080fd5b506102c8610423366004611c6a565b60116020526000908152604090205481565b34801561044157600080fd5b506000546001600160a01b0316610298565b34801561045f57600080fd5b506101fc61046e366004611c97565b6108d6565b34801561047f57600080fd5b506102c860175481565b34801561049557600080fd5b5060408051808201909152600781526610541154d2125560ca1b6020820152610232565b3480156104c557600080fd5b506101fc6104d4366004611cb2565b61091e565b3480156104e557600080fd5b506101fc6104f4366004611ccb565b61094d565b34801561050557600080fd5b50610268610514366004611bfd565b610b03565b34801561052557600080fd5b50610268610534366004611c6a565b60106020526000908152604090205460ff1681565b34801561055557600080fd5b506101fc610b10565b34801561056a57600080fd5b506101fc610579366004611cfd565b610b64565b34801561058a57600080fd5b506102c8610599366004611d81565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105d057600080fd5b506101fc6105df366004611cb2565b610c05565b3480156105f057600080fd5b506101fc6105ff366004611c6a565b610c34565b6000546001600160a01b031633146106375760405162461bcd60e51b815260040161062e90611dba565b60405180910390fd5b60005b815181101561069f5760016010600084848151811061065b5761065b611def565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061069781611e1b565b91505061063a565b5050565b60006106b0338484610d1e565b5060015b92915050565b60006106c7848484610e42565b610719843361071485604051806060016040528060288152602001611f35602891396001600160a01b038a166000908152600460209081526040808320338452909152902054919061137e565b610d1e565b5060019392505050565b6000546001600160a01b0316331461074d5760405162461bcd60e51b815260040161062e90611dba565b6001600160a01b03166000908152601060205260409020805460ff19169055565b6000546001600160a01b031633146107985760405162461bcd60e51b815260040161062e90611dba565b60158054911515600160b01b0260ff60b01b19909216919091179055565b6012546001600160a01b0316336001600160a01b031614806107eb57506013546001600160a01b0316336001600160a01b0316145b6107f457600080fd5b476107fe816113b8565b50565b6001600160a01b0381166000908152600260205260408120546106b4906113f2565b6000546001600160a01b0316331461084d5760405162461bcd60e51b815260040161062e90611dba565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108c15760405162461bcd60e51b815260040161062e90611dba565b674563918244f400008111156107fe57601655565b6000546001600160a01b031633146109005760405162461bcd60e51b815260040161062e90611dba565b60158054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146109485760405162461bcd60e51b815260040161062e90611dba565b601855565b6000546001600160a01b031633146109775760405162461bcd60e51b815260040161062e90611dba565b60048411156109d65760405162461bcd60e51b815260206004820152602560248201527f4275792072657761726473206d757374206265206265747765656e20302520616044820152646e6420342560d81b606482015260840161062e565b6014821115610a325760405162461bcd60e51b815260206004820152602260248201527f42757920746178206d757374206265206265747765656e20302520616e642032604482015261302560f01b606482015260840161062e565b6004831115610a925760405162461bcd60e51b815260206004820152602660248201527f53656c6c2072657761726473206d757374206265206265747765656e20302520604482015265616e6420342560d01b606482015260840161062e565b6014811115610aef5760405162461bcd60e51b815260206004820152602360248201527f53656c6c20746178206d757374206265206265747765656e20302520616e642060448201526232302560e81b606482015260840161062e565b600893909355600a91909155600955600b55565b60006106b0338484610e42565b6012546001600160a01b0316336001600160a01b03161480610b4557506013546001600160a01b0316336001600160a01b0316145b610b4e57600080fd5b6000610b5930610801565b90506107fe81611476565b6000546001600160a01b03163314610b8e5760405162461bcd60e51b815260040161062e90611dba565b60005b82811015610bff578160056000868685818110610bb057610bb0611def565b9050602002016020810190610bc59190611c6a565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610bf781611e1b565b915050610b91565b50505050565b6000546001600160a01b03163314610c2f5760405162461bcd60e51b815260040161062e90611dba565b601755565b6000546001600160a01b03163314610c5e5760405162461bcd60e51b815260040161062e90611dba565b6001600160a01b038116610cc35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161062e565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610d805760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161062e565b6001600160a01b038216610de15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161062e565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ea65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161062e565b6001600160a01b038216610f085760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161062e565b60008111610f6a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161062e565b6000546001600160a01b03848116911614801590610f9657506000546001600160a01b03838116911614155b1561127757601554600160a01b900460ff1661102f576000546001600160a01b0384811691161461102f5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161062e565b6016548111156110815760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161062e565b6001600160a01b03831660009081526010602052604090205460ff161580156110c357506001600160a01b03821660009081526010602052604090205460ff16155b61111b5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b606482015260840161062e565b6015546001600160a01b038381169116146111a0576017548161113d84610801565b6111479190611e36565b106111a05760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161062e565b60006111ab30610801565b6018546016549192508210159082106111c45760165491505b8080156111db5750601554600160a81b900460ff16155b80156111f557506015546001600160a01b03868116911614155b801561120a5750601554600160b01b900460ff165b801561122f57506001600160a01b03851660009081526005602052604090205460ff16155b801561125457506001600160a01b03841660009081526005602052604090205460ff16155b156112745761126282611476565b47801561127257611272476113b8565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff16806112b957506001600160a01b03831660009081526005602052604090205460ff165b806112eb57506015546001600160a01b038581169116148015906112eb57506015546001600160a01b03848116911614155b156112f857506000611372565b6015546001600160a01b03858116911614801561132357506014546001600160a01b03848116911614155b1561133557600854600c55600954600d555b6015546001600160a01b03848116911614801561136057506014546001600160a01b03858116911614155b1561137257600a54600c55600b54600d555b610bff848484846115f0565b600081848411156113a25760405162461bcd60e51b815260040161062e9190611ba8565b5060006113af8486611e4e565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561069f573d6000803e3d6000fd5b60006006548211156114595760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161062e565b600061146361161e565b905061146f8382611641565b9392505050565b6015805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106114be576114be611def565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611517573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153b9190611e65565b8160018151811061154e5761154e611def565b6001600160a01b0392831660209182029290920101526014546115749130911684610d1e565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906115ad908590600090869030904290600401611e82565b600060405180830381600087803b1580156115c757600080fd5b505af11580156115db573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b806115fd576115fd611683565b6116088484846116b1565b80610bff57610bff600e54600c55600f54600d55565b600080600061162b6117a8565b909250905061163a8282611641565b9250505090565b600061146f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117ea565b600c541580156116935750600d54155b1561169a57565b600c8054600e55600d8054600f5560009182905555565b6000806000806000806116c387611818565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506116f59087611875565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461172490866118b7565b6001600160a01b03891660009081526002602052604090205561174681611916565b6117508483611960565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161179591815260200190565b60405180910390a3505050505050505050565b6006546000908190683635c9adc5dea000006117c48282611641565b8210156117e157505060065492683635c9adc5dea0000092509050565b90939092509050565b6000818361180b5760405162461bcd60e51b815260040161062e9190611ba8565b5060006113af8486611ef3565b60008060008060008060008060006118358a600c54600d54611984565b925092509250600061184561161e565b905060008060006118588e8787876119d9565b919e509c509a509598509396509194505050505091939550919395565b600061146f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061137e565b6000806118c48385611e36565b90508381101561146f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161062e565b600061192061161e565b9050600061192e8383611a29565b3060009081526002602052604090205490915061194b90826118b7565b30600090815260026020526040902055505050565b60065461196d9083611875565b60065560075461197d90826118b7565b6007555050565b600080808061199e60646119988989611a29565b90611641565b905060006119b160646119988a89611a29565b905060006119c9826119c38b86611875565b90611875565b9992985090965090945050505050565b60008080806119e88886611a29565b905060006119f68887611a29565b90506000611a048888611a29565b90506000611a16826119c38686611875565b939b939a50919850919650505050505050565b600082611a38575060006106b4565b6000611a448385611f15565b905082611a518583611ef3565b1461146f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161062e565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146107fe57600080fd5b8035611ade81611abe565b919050565b60006020808385031215611af657600080fd5b823567ffffffffffffffff80821115611b0e57600080fd5b818501915085601f830112611b2257600080fd5b813581811115611b3457611b34611aa8565b8060051b604051601f19603f83011681018181108582111715611b5957611b59611aa8565b604052918252848201925083810185019188831115611b7757600080fd5b938501935b82851015611b9c57611b8d85611ad3565b84529385019392850192611b7c565b98975050505050505050565b600060208083528351808285015260005b81811015611bd557858101830151858201604001528201611bb9565b81811115611be7576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215611c1057600080fd5b8235611c1b81611abe565b946020939093013593505050565b600080600060608486031215611c3e57600080fd5b8335611c4981611abe565b92506020840135611c5981611abe565b929592945050506040919091013590565b600060208284031215611c7c57600080fd5b813561146f81611abe565b80358015158114611ade57600080fd5b600060208284031215611ca957600080fd5b61146f82611c87565b600060208284031215611cc457600080fd5b5035919050565b60008060008060808587031215611ce157600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060408486031215611d1257600080fd5b833567ffffffffffffffff80821115611d2a57600080fd5b818601915086601f830112611d3e57600080fd5b813581811115611d4d57600080fd5b8760208260051b8501011115611d6257600080fd5b602092830195509350611d789186019050611c87565b90509250925092565b60008060408385031215611d9457600080fd5b8235611d9f81611abe565b91506020830135611daf81611abe565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611e2f57611e2f611e05565b5060010190565b60008219821115611e4957611e49611e05565b500190565b600082821015611e6057611e60611e05565b500390565b600060208284031215611e7757600080fd5b815161146f81611abe565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ed25784516001600160a01b031683529383019391830191600101611ead565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611f1057634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611f2f57611f2f611e05565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d3811c94c8252fc56d4ee112a91dca5b905ec49e368508b01232e820f42af70464736f6c634300080c0033

Deployed Bytecode

0x6080604052600436106101d05760003560e01c80637d1db4a5116100f7578063a2a957bb11610095578063c492f04611610064578063c492f0461461055e578063dd62ed3e1461057e578063ea1644d5146105c4578063f2fde38b146105e457600080fd5b8063a2a957bb146104d9578063a9059cbb146104f9578063bfd7928414610519578063c3c8cd801461054957600080fd5b80638f70ccf7116100d15780638f70ccf7146104535780638f9a55c01461047357806395d89b411461048957806398a5c315146104b957600080fd5b80637d1db4a5146103f25780637f2feddc146104085780638da5cb5b1461043557600080fd5b8063313ce5671161016f5780636fc3eaec1161013e5780636fc3eaec1461038857806370a082311461039d578063715018a6146103bd57806374010ece146103d257600080fd5b8063313ce5671461030c57806349bd5a5e146103285780636b999053146103485780636d8aa8f81461036857600080fd5b80631694505e116101ab5780631694505e1461027857806318160ddd146102b057806323b872dd146102d65780632fd689e3146102f657600080fd5b8062b8cf2a146101dc57806306fdde03146101fe578063095ea7b31461024857600080fd5b366101d757005b600080fd5b3480156101e857600080fd5b506101fc6101f7366004611ae3565b610604565b005b34801561020a57600080fd5b5060408051808201909152600f81526e105c1958dbda5b881a5cc814d21255608a1b60208201525b60405161023f9190611ba8565b60405180910390f35b34801561025457600080fd5b50610268610263366004611bfd565b6106a3565b604051901515815260200161023f565b34801561028457600080fd5b50601454610298906001600160a01b031681565b6040516001600160a01b03909116815260200161023f565b3480156102bc57600080fd5b50683635c9adc5dea000005b60405190815260200161023f565b3480156102e257600080fd5b506102686102f1366004611c29565b6106ba565b34801561030257600080fd5b506102c860185481565b34801561031857600080fd5b506040516009815260200161023f565b34801561033457600080fd5b50601554610298906001600160a01b031681565b34801561035457600080fd5b506101fc610363366004611c6a565b610723565b34801561037457600080fd5b506101fc610383366004611c97565b61076e565b34801561039457600080fd5b506101fc6107b6565b3480156103a957600080fd5b506102c86103b8366004611c6a565b610801565b3480156103c957600080fd5b506101fc610823565b3480156103de57600080fd5b506101fc6103ed366004611cb2565b610897565b3480156103fe57600080fd5b506102c860165481565b34801561041457600080fd5b506102c8610423366004611c6a565b60116020526000908152604090205481565b34801561044157600080fd5b506000546001600160a01b0316610298565b34801561045f57600080fd5b506101fc61046e366004611c97565b6108d6565b34801561047f57600080fd5b506102c860175481565b34801561049557600080fd5b5060408051808201909152600781526610541154d2125560ca1b6020820152610232565b3480156104c557600080fd5b506101fc6104d4366004611cb2565b61091e565b3480156104e557600080fd5b506101fc6104f4366004611ccb565b61094d565b34801561050557600080fd5b50610268610514366004611bfd565b610b03565b34801561052557600080fd5b50610268610534366004611c6a565b60106020526000908152604090205460ff1681565b34801561055557600080fd5b506101fc610b10565b34801561056a57600080fd5b506101fc610579366004611cfd565b610b64565b34801561058a57600080fd5b506102c8610599366004611d81565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105d057600080fd5b506101fc6105df366004611cb2565b610c05565b3480156105f057600080fd5b506101fc6105ff366004611c6a565b610c34565b6000546001600160a01b031633146106375760405162461bcd60e51b815260040161062e90611dba565b60405180910390fd5b60005b815181101561069f5760016010600084848151811061065b5761065b611def565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061069781611e1b565b91505061063a565b5050565b60006106b0338484610d1e565b5060015b92915050565b60006106c7848484610e42565b610719843361071485604051806060016040528060288152602001611f35602891396001600160a01b038a166000908152600460209081526040808320338452909152902054919061137e565b610d1e565b5060019392505050565b6000546001600160a01b0316331461074d5760405162461bcd60e51b815260040161062e90611dba565b6001600160a01b03166000908152601060205260409020805460ff19169055565b6000546001600160a01b031633146107985760405162461bcd60e51b815260040161062e90611dba565b60158054911515600160b01b0260ff60b01b19909216919091179055565b6012546001600160a01b0316336001600160a01b031614806107eb57506013546001600160a01b0316336001600160a01b0316145b6107f457600080fd5b476107fe816113b8565b50565b6001600160a01b0381166000908152600260205260408120546106b4906113f2565b6000546001600160a01b0316331461084d5760405162461bcd60e51b815260040161062e90611dba565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108c15760405162461bcd60e51b815260040161062e90611dba565b674563918244f400008111156107fe57601655565b6000546001600160a01b031633146109005760405162461bcd60e51b815260040161062e90611dba565b60158054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146109485760405162461bcd60e51b815260040161062e90611dba565b601855565b6000546001600160a01b031633146109775760405162461bcd60e51b815260040161062e90611dba565b60048411156109d65760405162461bcd60e51b815260206004820152602560248201527f4275792072657761726473206d757374206265206265747765656e20302520616044820152646e6420342560d81b606482015260840161062e565b6014821115610a325760405162461bcd60e51b815260206004820152602260248201527f42757920746178206d757374206265206265747765656e20302520616e642032604482015261302560f01b606482015260840161062e565b6004831115610a925760405162461bcd60e51b815260206004820152602660248201527f53656c6c2072657761726473206d757374206265206265747765656e20302520604482015265616e6420342560d01b606482015260840161062e565b6014811115610aef5760405162461bcd60e51b815260206004820152602360248201527f53656c6c20746178206d757374206265206265747765656e20302520616e642060448201526232302560e81b606482015260840161062e565b600893909355600a91909155600955600b55565b60006106b0338484610e42565b6012546001600160a01b0316336001600160a01b03161480610b4557506013546001600160a01b0316336001600160a01b0316145b610b4e57600080fd5b6000610b5930610801565b90506107fe81611476565b6000546001600160a01b03163314610b8e5760405162461bcd60e51b815260040161062e90611dba565b60005b82811015610bff578160056000868685818110610bb057610bb0611def565b9050602002016020810190610bc59190611c6a565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610bf781611e1b565b915050610b91565b50505050565b6000546001600160a01b03163314610c2f5760405162461bcd60e51b815260040161062e90611dba565b601755565b6000546001600160a01b03163314610c5e5760405162461bcd60e51b815260040161062e90611dba565b6001600160a01b038116610cc35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161062e565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610d805760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161062e565b6001600160a01b038216610de15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161062e565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ea65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161062e565b6001600160a01b038216610f085760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161062e565b60008111610f6a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161062e565b6000546001600160a01b03848116911614801590610f9657506000546001600160a01b03838116911614155b1561127757601554600160a01b900460ff1661102f576000546001600160a01b0384811691161461102f5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161062e565b6016548111156110815760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161062e565b6001600160a01b03831660009081526010602052604090205460ff161580156110c357506001600160a01b03821660009081526010602052604090205460ff16155b61111b5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b606482015260840161062e565b6015546001600160a01b038381169116146111a0576017548161113d84610801565b6111479190611e36565b106111a05760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161062e565b60006111ab30610801565b6018546016549192508210159082106111c45760165491505b8080156111db5750601554600160a81b900460ff16155b80156111f557506015546001600160a01b03868116911614155b801561120a5750601554600160b01b900460ff165b801561122f57506001600160a01b03851660009081526005602052604090205460ff16155b801561125457506001600160a01b03841660009081526005602052604090205460ff16155b156112745761126282611476565b47801561127257611272476113b8565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff16806112b957506001600160a01b03831660009081526005602052604090205460ff165b806112eb57506015546001600160a01b038581169116148015906112eb57506015546001600160a01b03848116911614155b156112f857506000611372565b6015546001600160a01b03858116911614801561132357506014546001600160a01b03848116911614155b1561133557600854600c55600954600d555b6015546001600160a01b03848116911614801561136057506014546001600160a01b03858116911614155b1561137257600a54600c55600b54600d555b610bff848484846115f0565b600081848411156113a25760405162461bcd60e51b815260040161062e9190611ba8565b5060006113af8486611e4e565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561069f573d6000803e3d6000fd5b60006006548211156114595760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161062e565b600061146361161e565b905061146f8382611641565b9392505050565b6015805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106114be576114be611def565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611517573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153b9190611e65565b8160018151811061154e5761154e611def565b6001600160a01b0392831660209182029290920101526014546115749130911684610d1e565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906115ad908590600090869030904290600401611e82565b600060405180830381600087803b1580156115c757600080fd5b505af11580156115db573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b806115fd576115fd611683565b6116088484846116b1565b80610bff57610bff600e54600c55600f54600d55565b600080600061162b6117a8565b909250905061163a8282611641565b9250505090565b600061146f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117ea565b600c541580156116935750600d54155b1561169a57565b600c8054600e55600d8054600f5560009182905555565b6000806000806000806116c387611818565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506116f59087611875565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461172490866118b7565b6001600160a01b03891660009081526002602052604090205561174681611916565b6117508483611960565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161179591815260200190565b60405180910390a3505050505050505050565b6006546000908190683635c9adc5dea000006117c48282611641565b8210156117e157505060065492683635c9adc5dea0000092509050565b90939092509050565b6000818361180b5760405162461bcd60e51b815260040161062e9190611ba8565b5060006113af8486611ef3565b60008060008060008060008060006118358a600c54600d54611984565b925092509250600061184561161e565b905060008060006118588e8787876119d9565b919e509c509a509598509396509194505050505091939550919395565b600061146f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061137e565b6000806118c48385611e36565b90508381101561146f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161062e565b600061192061161e565b9050600061192e8383611a29565b3060009081526002602052604090205490915061194b90826118b7565b30600090815260026020526040902055505050565b60065461196d9083611875565b60065560075461197d90826118b7565b6007555050565b600080808061199e60646119988989611a29565b90611641565b905060006119b160646119988a89611a29565b905060006119c9826119c38b86611875565b90611875565b9992985090965090945050505050565b60008080806119e88886611a29565b905060006119f68887611a29565b90506000611a048888611a29565b90506000611a16826119c38686611875565b939b939a50919850919650505050505050565b600082611a38575060006106b4565b6000611a448385611f15565b905082611a518583611ef3565b1461146f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161062e565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146107fe57600080fd5b8035611ade81611abe565b919050565b60006020808385031215611af657600080fd5b823567ffffffffffffffff80821115611b0e57600080fd5b818501915085601f830112611b2257600080fd5b813581811115611b3457611b34611aa8565b8060051b604051601f19603f83011681018181108582111715611b5957611b59611aa8565b604052918252848201925083810185019188831115611b7757600080fd5b938501935b82851015611b9c57611b8d85611ad3565b84529385019392850192611b7c565b98975050505050505050565b600060208083528351808285015260005b81811015611bd557858101830151858201604001528201611bb9565b81811115611be7576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215611c1057600080fd5b8235611c1b81611abe565b946020939093013593505050565b600080600060608486031215611c3e57600080fd5b8335611c4981611abe565b92506020840135611c5981611abe565b929592945050506040919091013590565b600060208284031215611c7c57600080fd5b813561146f81611abe565b80358015158114611ade57600080fd5b600060208284031215611ca957600080fd5b61146f82611c87565b600060208284031215611cc457600080fd5b5035919050565b60008060008060808587031215611ce157600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060408486031215611d1257600080fd5b833567ffffffffffffffff80821115611d2a57600080fd5b818601915086601f830112611d3e57600080fd5b813581811115611d4d57600080fd5b8760208260051b8501011115611d6257600080fd5b602092830195509350611d789186019050611c87565b90509250925092565b60008060408385031215611d9457600080fd5b8235611d9f81611abe565b91506020830135611daf81611abe565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611e2f57611e2f611e05565b5060010190565b60008219821115611e4957611e49611e05565b500190565b600082821015611e6057611e60611e05565b500390565b600060208284031215611e7757600080fd5b815161146f81611abe565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ed25784516001600160a01b031683529383019391830191600101611ead565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611f1057634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611f2f57611f2f611e05565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d3811c94c8252fc56d4ee112a91dca5b905ec49e368508b01232e820f42af70464736f6c634300080c0033

Deployed Bytecode Sourcemap

4232:14061:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12986:169;;;;;;;;;;-1:-1:-1;12986:169:0;;;;;:::i;:::-;;:::i;:::-;;6780:83;;;;;;;;;;-1:-1:-1;6850:5:0;;;;;;;;;;;;-1:-1:-1;;;6850:5:0;;;;6780:83;;;;;;;:::i;:::-;;;;;;;;7712:193;;;;;;;;;;-1:-1:-1;7712:193:0;;;;;:::i;:::-;;:::i;:::-;;;2634:14:1;;2627:22;2609:41;;2597:2;2582:18;7712:193:0;2469:187:1;5602:41:0;;;;;;;;;;-1:-1:-1;5602:41:0;;;;-1:-1:-1;;;;;5602:41:0;;;;;;-1:-1:-1;;;;;2851:32:1;;;2833:51;;2821:2;2806:18;5602:41:0;2661:229:1;7060:95:0;;;;;;;;;;-1:-1:-1;4791:21:0;7060:95;;;3041:25:1;;;3029:2;3014:18;7060:95:0;2895:177:1;7914:446:0;;;;;;;;;;-1:-1:-1;7914:446:0;;;;;:::i;:::-;;:::i;5918:53::-;;;;;;;;;;;;;;;;6968:83;;;;;;;;;;-1:-1:-1;6968:83:0;;4464:1;3680:36:1;;3668:2;3653:18;6968:83:0;3538:184:1;5650:28:0;;;;;;;;;;-1:-1:-1;5650:28:0;;;;-1:-1:-1;;;;;5650:28:0;;;13164:92;;;;;;;;;;-1:-1:-1;13164:92:0;;;;;:::i;:::-;;:::i;17611:101::-;;;;;;;;;;-1:-1:-1;17611:101:0;;;;;:::i;:::-;;:::i;12742:235::-;;;;;;;;;;;;;:::i;7164:138::-;;;;;;;;;;-1:-1:-1;7164:138:0;;;;;:::i;:::-;;:::i;1705:148::-;;;;;;;;;;;;;:::i;17752:169::-;;;;;;;;;;-1:-1:-1;17752:169:0;;;;;:::i;:::-;;:::i;5802:49::-;;;;;;;;;;;;;;;;5341:43;;;;;;;;;;-1:-1:-1;5341:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;1489:79;;;;;;;;;;-1:-1:-1;1527:7:0;1554:6;-1:-1:-1;;;;;1554:6:0;1489:79;;12387:101;;;;;;;;;;-1:-1:-1;12387:101:0;;;;;:::i;:::-;;:::i;5859:51::-;;;;;;;;;;;;;;;;6872:87;;;;;;;;;;-1:-1:-1;6944:7:0;;;;;;;;;;;;-1:-1:-1;;;6944:7:0;;;;6872:87;;17419:139;;;;;;;;;;-1:-1:-1;17419:139:0;;;;;:::i;:::-;;:::i;16673:693::-;;;;;;;;;;-1:-1:-1;16673:693:0;;;;;:::i;:::-;;:::i;7311:199::-;;;;;;;;;;-1:-1:-1;7311:199:0;;;;;:::i;:::-;;:::i;5303:36::-;;;;;;;;;;-1:-1:-1;5303:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12497:236;;;;;;;;;;;;;:::i;18054:234::-;;;;;;;;;;-1:-1:-1;18054:234:0;;;;;:::i;:::-;;:::i;7519:184::-;;;;;;;;;;-1:-1:-1;7519:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7668:18:0;;;7636:7;7668:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7519:184;17930:115;;;;;;;;;;-1:-1:-1;17930:115:0;;;;;:::i;:::-;;:::i;1862:244::-;;;;;;;;;;-1:-1:-1;1862:244:0;;;;;:::i;:::-;;:::i;12986:169::-;1617:6;;-1:-1:-1;;;;;1617:6:0;318:10;1617:22;1609:67;;;;-1:-1:-1;;;1609:67:0;;;;;;;:::i;:::-;;;;;;;;;13062:9:::1;13057:91;13081:5;:12;13077:1;:16;13057:91;;;13132:4;13115;:14;13120:5;13126:1;13120:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13115:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13115:14:0;:21;;-1:-1:-1;;13115:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13095:3;::::1;::::0;::::1;:::i;:::-;;;;13057:91;;;;12986:169:::0;:::o;7712:193::-;7814:4;7836:39;318:10;7859:7;7868:6;7836:8;:39::i;:::-;-1:-1:-1;7893:4:0;7712:193;;;;;:::o;7914:446::-;8046:4;8063:36;8073:6;8081:9;8092:6;8063:9;:36::i;:::-;8110:220;8133:6;318:10;8181:138;8237:6;8181:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8181:19:0;;;;;;:11;:19;;;;;;;;318:10;8181:33;;;;;;;;;;:37;:138::i;:::-;8110:8;:220::i;:::-;-1:-1:-1;8348:4:0;7914:446;;;;;:::o;13164:92::-;1617:6;;-1:-1:-1;;;;;1617:6:0;318:10;1617:22;1609:67;;;;-1:-1:-1;;;1609:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13228:12:0::1;13243:5;13228:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;13228:20:0::1;::::0;;13164:92::o;17611:101::-;1617:6;;-1:-1:-1;;;;;1617:6:0;318:10;1617:22;1609:67;;;;-1:-1:-1;;;1609:67:0;;;;;;;:::i;:::-;17678:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;17678:26:0::1;-1:-1:-1::0;;;;17678:26:0;;::::1;::::0;;;::::1;::::0;;17611:101::o;12742:235::-;12808:19;;-1:-1:-1;;;;;12808:19:0;318:10;-1:-1:-1;;;;;12792:35:0;;:72;;;-1:-1:-1;12847:17:0;;-1:-1:-1;;;;;12847:17:0;318:10;-1:-1:-1;;;;;12831:33:0;;12792:72;12784:81;;;;;;12905:21;12937:32;12905:21;12937:12;:32::i;:::-;12773:204;12742:235::o;7164:138::-;-1:-1:-1;;;;;7277:16:0;;7230:7;7277:16;;;:7;:16;;;;;;7257:37;;:19;:37::i;1705:148::-;1617:6;;-1:-1:-1;;;;;1617:6:0;318:10;1617:22;1609:67;;;;-1:-1:-1;;;1609:67:0;;;;;;;:::i;:::-;1812:1:::1;1796:6:::0;;1775:40:::1;::::0;-1:-1:-1;;;;;1796:6:0;;::::1;::::0;1775:40:::1;::::0;1812:1;;1775:40:::1;1843:1;1826:19:::0;;-1:-1:-1;;;;;;1826:19:0::1;::::0;;1705:148::o;17752:169::-;1617:6;;-1:-1:-1;;;;;1617:6:0;318:10;1617:22;1609:67;;;;-1:-1:-1;;;1609:67:0;;;;;;;:::i;:::-;17842:18:::1;17828:11;:32;17824:90;;;17876:12;:26:::0;17752:169::o;12387:101::-;1617:6;;-1:-1:-1;;;;;1617:6:0;318:10;1617:22;1609:67;;;;-1:-1:-1;;;1609:67:0;;;;;;;:::i;:::-;12454:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;12454:26:0::1;-1:-1:-1::0;;;;12454:26:0;;::::1;::::0;;;::::1;::::0;;12387:101::o;17419:139::-;1617:6;;-1:-1:-1;;;;;1617:6:0;318:10;1617:22;1609:67;;;;-1:-1:-1;;;1609:67:0;;;;;;;:::i;:::-;17510:19:::1;:40:::0;17419:139::o;16673:693::-;1617:6;;-1:-1:-1;;;;;1617:6:0;318:10;1617:22;1609:67;;;;-1:-1:-1;;;1609:67:0;;;;;;;:::i;:::-;16854:1:::1;16837:13;:18;;16807:90;;;::::0;-1:-1:-1;;;16807:90:0;;7166:2:1;16807:90:0::1;::::0;::::1;7148:21:1::0;7205:2;7185:18;;;7178:30;7244:34;7224:18;;;7217:62;-1:-1:-1;;;7295:18:1;;;7288:35;7340:19;;16807:90:0::1;6964:401:1::0;16807:90:0::1;16951:2;16936:11;:17;;16908:84;;;::::0;-1:-1:-1;;;16908:84:0;;7572:2:1;16908:84:0::1;::::0;::::1;7554:21:1::0;7611:2;7591:18;;;7584:30;7650:34;7630:18;;;7623:62;-1:-1:-1;;;7701:18:1;;;7694:32;7743:19;;16908:84:0::1;7370:398:1::0;16908:84:0::1;17052:1;17034:14;:19;;17003:93;;;::::0;-1:-1:-1;;;17003:93:0;;7975:2:1;17003:93:0::1;::::0;::::1;7957:21:1::0;8014:2;7994:18;;;7987:30;8053:34;8033:18;;;8026:62;-1:-1:-1;;;8104:18:1;;;8097:36;8150:19;;17003:93:0::1;7773:402:1::0;17003:93:0::1;17152:2;17136:12;:18;;17107:87;;;::::0;-1:-1:-1;;;17107:87:0;;8382:2:1;17107:87:0::1;::::0;::::1;8364:21:1::0;8421:2;8401:18;;;8394:30;8460:34;8440:18;;;8433:62;-1:-1:-1;;;8511:18:1;;;8504:33;8554:19;;17107:87:0::1;8180:399:1::0;17107:87:0::1;17207:14;:30:::0;;;;17248:15:::1;:32:::0;;;;17291:12:::1;:26:::0;17328:13:::1;:28:::0;16673:693::o;7311:199::-;7416:4;7438:42;318:10;7462:9;7473:6;7438:9;:42::i;12497:236::-;12563:19;;-1:-1:-1;;;;;12563:19:0;318:10;-1:-1:-1;;;;;12547:35:0;;:72;;;-1:-1:-1;12602:17:0;;-1:-1:-1;;;;;12602:17:0;318:10;-1:-1:-1;;;;;12586:33:0;;12547:72;12539:81;;;;;;12631:23;12657:24;12675:4;12657:9;:24::i;:::-;12631:50;;12692:33;12709:15;12692:16;:33::i;18054:234::-;1617:6;;-1:-1:-1;;;;;1617:6:0;318:10;1617:22;1609:67;;;;-1:-1:-1;;;1609:67:0;;;;;;;:::i;:::-;18171:9:::1;18167:114;18186:19:::0;;::::1;18167:114;;;18261:8;18227:18;:31;18246:8;;18255:1;18246:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18227:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18227:31:0;:42;;-1:-1:-1;;18227:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18207:3;::::1;::::0;::::1;:::i;:::-;;;;18167:114;;;;18054:234:::0;;;:::o;17930:115::-;1617:6;;-1:-1:-1;;;;;1617:6:0;318:10;1617:22;1609:67;;;;-1:-1:-1;;;1609:67:0;;;;;;;:::i;:::-;18007:14:::1;:30:::0;17930:115::o;1862:244::-;1617:6;;-1:-1:-1;;;;;1617:6:0;318:10;1617:22;1609:67;;;;-1:-1:-1;;;1609:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1951:22:0;::::1;1943:73;;;::::0;-1:-1:-1;;;1943:73:0;;8786:2:1;1943:73:0::1;::::0;::::1;8768:21:1::0;8825:2;8805:18;;;8798:30;8864:34;8844:18;;;8837:62;-1:-1:-1;;;8915:18:1;;;8908:36;8961:19;;1943:73:0::1;8584:402:1::0;1943:73:0::1;2053:6;::::0;;2032:38:::1;::::0;-1:-1:-1;;;;;2032:38:0;;::::1;::::0;2053:6;::::1;::::0;2032:38:::1;::::0;::::1;2081:6;:17:::0;;-1:-1:-1;;;;;;2081:17:0::1;-1:-1:-1::0;;;;;2081:17:0;;;::::1;::::0;;;::::1;::::0;;1862:244::o;9057:369::-;-1:-1:-1;;;;;9184:19:0;;9176:68;;;;-1:-1:-1;;;9176:68:0;;9193:2:1;9176:68:0;;;9175:21:1;9232:2;9212:18;;;9205:30;9271:34;9251:18;;;9244:62;-1:-1:-1;;;9322:18:1;;;9315:34;9366:19;;9176:68:0;8991:400:1;9176:68:0;-1:-1:-1;;;;;9263:21:0;;9255:68;;;;-1:-1:-1;;;9255:68:0;;9598:2:1;9255:68:0;;;9580:21:1;9637:2;9617:18;;;9610:30;9676:34;9656:18;;;9649:62;-1:-1:-1;;;9727:18:1;;;9720:32;9769:19;;9255:68:0;9396:398:1;9255:68:0;-1:-1:-1;;;;;9334:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9386:32;;3041:25:1;;;9386:32:0;;3014:18:1;9386:32:0;;;;;;;9057:369;;;:::o;9435:2343::-;-1:-1:-1;;;;;9557:18:0;;9549:68;;;;-1:-1:-1;;;9549:68:0;;10001:2:1;9549:68:0;;;9983:21:1;10040:2;10020:18;;;10013:30;10079:34;10059:18;;;10052:62;-1:-1:-1;;;10130:18:1;;;10123:35;10175:19;;9549:68:0;9799:401:1;9549:68:0;-1:-1:-1;;;;;9636:16:0;;9628:64;;;;-1:-1:-1;;;9628:64:0;;10407:2:1;9628:64:0;;;10389:21:1;10446:2;10426:18;;;10419:30;10485:34;10465:18;;;10458:62;-1:-1:-1;;;10536:18:1;;;10529:33;10579:19;;9628:64:0;10205:399:1;9628:64:0;9720:1;9711:6;:10;9703:64;;;;-1:-1:-1;;;9703:64:0;;10811:2:1;9703:64:0;;;10793:21:1;10850:2;10830:18;;;10823:30;10889:34;10869:18;;;10862:62;-1:-1:-1;;;10940:18:1;;;10933:39;10989:19;;9703:64:0;10609:405:1;9703:64:0;1527:7;1554:6;-1:-1:-1;;;;;9785:15:0;;;1554:6;;9785:15;;;;:32;;-1:-1:-1;1527:7:0;1554:6;-1:-1:-1;;;;;9804:13:0;;;1554:6;;9804:13;;9785:32;9781:1265;;;9875:11;;-1:-1:-1;;;9875:11:0;;;;9870:144;;1527:7;1554:6;-1:-1:-1;;;;;9915:15:0;;;1554:6;;9915:15;9907:91;;;;-1:-1:-1;;;9907:91:0;;11221:2:1;9907:91:0;;;11203:21:1;11260:2;11240:18;;;11233:30;11299:34;11279:18;;;11272:62;11370:33;11350:18;;;11343:61;11421:19;;9907:91:0;11019:427:1;9907:91:0;10049:12;;10039:6;:22;;10031:63;;;;-1:-1:-1;;;10031:63:0;;11653:2:1;10031:63:0;;;11635:21:1;11692:2;11672:18;;;11665:30;11731;11711:18;;;11704:58;11779:18;;10031:63:0;11451:352:1;10031:63:0;-1:-1:-1;;;;;10118:10:0;;;;;;:4;:10;;;;;;;;10117:11;:24;;;;-1:-1:-1;;;;;;10133:8:0;;;;;;:4;:8;;;;;;;;10132:9;10117:24;10109:72;;;;-1:-1:-1;;;10109:72:0;;12010:2:1;10109:72:0;;;11992:21:1;12049:2;12029:18;;;12022:30;12088:34;12068:18;;;12061:62;-1:-1:-1;;;12139:18:1;;;12132:33;12182:19;;10109:72:0;11808:399:1;10109:72:0;10208:13;;-1:-1:-1;;;;;10202:19:0;;;10208:13;;10202:19;10199:146;;10275:14;;10266:6;10250:13;10260:2;10250:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10242:87;;;;-1:-1:-1;;;10242:87:0;;12547:2:1;10242:87:0;;;12529:21:1;12586:2;12566:18;;;12559:30;12625:34;12605:18;;;12598:62;-1:-1:-1;;;12676:18:1;;;12669:33;12719:19;;10242:87:0;12345:399:1;10242:87:0;10362:28;10393:24;10411:4;10393:9;:24::i;:::-;10471:19;;10535:12;;10362:55;;-1:-1:-1;10447:43:0;;;;10511:36;;10508:124;;10604:12;;10581:35;;10508:124;10653:7;:18;;;;-1:-1:-1;10665:6:0;;-1:-1:-1;;;10665:6:0;;;;10664:7;10653:18;:43;;;;-1:-1:-1;10683:13:0;;-1:-1:-1;;;;;10675:21:0;;;10683:13;;10675:21;;10653:43;:58;;;;-1:-1:-1;10700:11:0;;-1:-1:-1;;;10700:11:0;;;;10653:58;:87;;;;-1:-1:-1;;;;;;10716:24:0;;;;;;:18;:24;;;;;;;;10715:25;10653:87;:114;;;;-1:-1:-1;;;;;;10745:22:0;;;;;;:18;:22;;;;;;;;10744:23;10653:114;10649:386;;;10788:38;10805:20;10788:16;:38::i;:::-;10874:21;10918:22;;10914:106;;10965:35;10978:21;10965:12;:35::i;:::-;10769:266;10649:386;9819:1227;;9781:1265;-1:-1:-1;;;;;11124:24:0;;11059:12;11124:24;;;:18;:24;;;;;;11074:4;;11124:24;;;:50;;-1:-1:-1;;;;;;11152:22:0;;;;;;:18;:22;;;;;;;;11124:50;11123:102;;;-1:-1:-1;11188:13:0;;-1:-1:-1;;;;;11180:21:0;;;11188:13;;11180:21;;;;:44;;-1:-1:-1;11211:13:0;;-1:-1:-1;;;;;11205:19:0;;;11211:13;;11205:19;;11180:44;11119:597;;;-1:-1:-1;11252:5:0;11119:597;;;11336:13;;-1:-1:-1;;;;;11328:21:0;;;11336:13;;11328:21;:55;;;;-1:-1:-1;11367:15:0;;-1:-1:-1;;;;;11353:30:0;;;11367:15;;11353:30;;11328:55;11325:162;;;11416:14;;11404:9;:26;11459:12;;11449:7;:22;11325:162;11547:13;;-1:-1:-1;;;;;11541:19:0;;;11547:13;;11541:19;:55;;;;-1:-1:-1;11580:15:0;;-1:-1:-1;;;;;11564:32:0;;;11580:15;;11564:32;;11541:55;11537:165;;;11629:15;;11617:9;:27;11673:13;;11663:7;:23;11537:165;11729:41;11744:4;11750:2;11754:6;11762:7;11729:14;:41::i;2474:224::-;2594:7;2630:12;2622:6;;;;2614:29;;;;-1:-1:-1;;;2614:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2654:9:0;2666:5;2670:1;2666;:5;:::i;:::-;2654:17;2474:224;-1:-1:-1;;;;;2474:224:0:o;12279:99::-;12336:17;;:34;;-1:-1:-1;;;;;12336:17:0;;;;:34;;;;;12363:6;;12336:17;:34;:17;:34;12363:6;12336:17;:34;;;;;;;;;;;;;;;;;;;8369:323;8464:7;8522;;8511;:18;;8489:110;;;;-1:-1:-1;;;8489:110:0;;13081:2:1;8489:110:0;;;13063:21:1;13120:2;13100:18;;;13093:30;13159:34;13139:18;;;13132:62;-1:-1:-1;;;13210:18:1;;;13203:40;13260:19;;8489:110:0;12879:406:1;8489:110:0;8610:19;8632:10;:8;:10::i;:::-;8610:32;-1:-1:-1;8660:24:0;:7;8610:32;8660:11;:24::i;:::-;8653:31;8369:323;-1:-1:-1;;;8369:323:0:o;11787:483::-;6066:6;:13;;-1:-1:-1;;;;6066:13:0;-1:-1:-1;;;6066:13:0;;;11889:16:::1;::::0;;11903:1:::1;11889:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11889:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11889:16:0::1;11865:40;;11934:4;11916;11921:1;11916:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11916:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11960:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11960:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11916:7;;11960:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11950:4;11955:1;11950:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11950:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12025:15:::1;::::0;11993:62:::1;::::0;12010:4:::1;::::0;12025:15:::1;12043:11:::0;11993:8:::1;:62::i;:::-;12066:15;::::0;:196:::1;::::0;-1:-1:-1;;;12066:196:0;;-1:-1:-1;;;;;12066:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12147:11;;12066:15:::1;::::0;12189:4;;12216::::1;::::0;12236:15:::1;::::0;12066:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6102:6:0;:14;;-1:-1:-1;;;;6102:14:0;;;-1:-1:-1;;;;11787:483:0:o;13265:282::-;13421:7;13416:28;;13430:14;:12;:14::i;:::-;13455:44;13473:6;13481:9;13492:6;13455:17;:44::i;:::-;13515:7;13510:29;;13524:15;8987:17;;8975:9;:29;9025:15;;9015:7;:25;8931:117;16234:164;16276:7;16297:15;16314;16333:19;:17;:19::i;:::-;16296:56;;-1:-1:-1;16296:56:0;-1:-1:-1;16370:20:0;16296:56;;16370:11;:20::i;:::-;16363:27;;;;16234:164;:::o;2962:132::-;3020:7;3047:39;3051:1;3054;3047:39;;;;;;;;;;;;;;;;;:3;:39::i;8701:221::-;8748:9;;:14;:30;;;;-1:-1:-1;8766:7:0;;:12;8748:30;8744:43;;;8701:221::o;8744:43::-;8820:9;;;8800:17;:29;8858:7;;;8840:15;:25;-1:-1:-1;8879:13:0;;;;8903:11;8701:221::o;13556:610::-;13703:15;13733:23;13771:12;13798:23;13836:12;13863:13;13890:19;13901:7;13890:10;:19::i;:::-;-1:-1:-1;;;;;13938:15:0;;;;;;:7;:15;;;;;;13688:221;;-1:-1:-1;13688:221:0;;-1:-1:-1;13688:221:0;;-1:-1:-1;13688:221:0;-1:-1:-1;13688:221:0;-1:-1:-1;13688:221:0;-1:-1:-1;13938:28:0;;13688:221;13938:19;:28::i;:::-;-1:-1:-1;;;;;13920:15:0;;;;;;;:7;:15;;;;;;:46;;;;13998:18;;;;;;;:39;;14021:15;13998:22;:39::i;:::-;-1:-1:-1;;;;;13977:18:0;;;;;;:7;:18;;;;;:60;14048:16;14058:5;14048:9;:16::i;:::-;14075:23;14087:4;14093;14075:11;:23::i;:::-;14131:9;-1:-1:-1;;;;;14114:44:0;14123:6;-1:-1:-1;;;;;14114:44:0;;14142:15;14114:44;;;;3041:25:1;;3029:2;3014:18;;2895:177;14114:44:0;;;;;;;;13677:489;;;;;;13556:610;;;:::o;16407:257::-;16505:7;;16458;;;;4791:21;16573:20;16505:7;4791:21;16573:11;:20::i;:::-;16563:7;:30;16559:61;;;-1:-1:-1;;16603:7:0;;;4791:21;;-1:-1:-1;16407:257:0;-1:-1:-1;16407:257:0:o;16559:61::-;16639:7;;16648;;-1:-1:-1;16407:257:0;-1:-1:-1;16407:257:0:o;3103:223::-;3223:7;3258:12;3251:5;3243:28;;;;-1:-1:-1;;;3243:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3282:9:0;3294:5;3298:1;3294;:5;:::i;14589:615::-;14689:7;14711;14733;14755;14777;14799;14835:23;14860:12;14874:13;14904:40;14916:7;14925:9;;14936:7;;14904:11;:40::i;:::-;14834:110;;;;;;14955:19;14977:10;:8;:10::i;:::-;14955:32;;14999:15;15016:23;15041:12;15070:46;15082:7;15091:4;15097:5;15104:11;15070;:46::i;:::-;14998:118;;-1:-1:-1;14998:118:0;-1:-1:-1;14998:118:0;-1:-1:-1;15167:15:0;;-1:-1:-1;15184:4:0;;-1:-1:-1;15190:5:0;;-1:-1:-1;;;;;14589:615:0;;;;;;;:::o;2329:136::-;2387:7;2414:43;2418:1;2421;2414:43;;;;;;;;;;;;;;;;;:3;:43::i;2141:179::-;2199:7;;2231:5;2235:1;2231;:5;:::i;:::-;2219:17;;2260:1;2255;:6;;2247:46;;;;-1:-1:-1;;;2247:46:0;;14955:2:1;2247:46:0;;;14937:21:1;14994:2;14974:18;;;14967:30;15033:29;15013:18;;;15006:57;15080:18;;2247:46:0;14753:351:1;14175:211:0;14228:19;14250:10;:8;:10::i;:::-;14228:32;-1:-1:-1;14271:13:0;14287:22;:5;14228:32;14287:9;:22::i;:::-;14361:4;14345:22;;;;:7;:22;;;;;;14271:38;;-1:-1:-1;14345:33:0;;14271:38;14345:26;:33::i;:::-;14336:4;14320:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14175:211:0:o;14395:147::-;14473:7;;:17;;14485:4;14473:11;:17::i;:::-;14463:7;:27;14514:10;;:20;;14529:4;14514:14;:20::i;:::-;14501:10;:33;-1:-1:-1;;14395:147:0:o;15213:469::-;15382:7;;;;15476:30;15502:3;15476:21;:7;15488:8;15476:11;:21::i;:::-;:25;;:30::i;:::-;15461:45;-1:-1:-1;15517:13:0;15533:28;15557:3;15533:19;:7;15545:6;15533:11;:19::i;:28::-;15517:44;-1:-1:-1;15572:23:0;15598:28;15517:44;15598:17;:7;15610:4;15598:11;:17::i;:::-;:21;;:28::i;:::-;15572:54;15662:4;;-1:-1:-1;15668:5:0;;-1:-1:-1;15213:469:0;;-1:-1:-1;;;;;15213:469:0:o;15691:534::-;15885:7;;;;15982:24;:7;15994:11;15982;:24::i;:::-;15964:42;-1:-1:-1;16017:12:0;16032:21;:4;16041:11;16032:8;:21::i;:::-;16017:36;-1:-1:-1;16064:13:0;16080:22;:5;16090:11;16080:9;:22::i;:::-;16064:38;-1:-1:-1;16113:23:0;16139:28;16064:38;16139:17;:7;16151:4;16139:11;:17::i;:28::-;16186:7;;;;-1:-1:-1;16212:4:0;;-1:-1:-1;15691:534:0;;-1:-1:-1;;;;;;;15691:534:0:o;2707:246::-;2765:7;2789:6;2785:47;;-1:-1:-1;2819:1:0;2812:8;;2785:47;2842:9;2854:5;2858:1;2854;:5;:::i;:::-;2842:17;-1:-1:-1;2887:1:0;2878:5;2882:1;2842:17;2878:5;:::i;:::-;:10;2870:56;;;;-1:-1:-1;;;2870:56:0;;15484:2:1;2870:56:0;;;15466:21:1;15523:2;15503:18;;;15496:30;15562:34;15542:18;;;15535:62;-1:-1:-1;;;15613:18:1;;;15606:31;15654:19;;2870:56:0;15282:397:1;14:127;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:131;-1:-1:-1;;;;;221:31:1;;211:42;;201:70;;267:1;264;257:12;282:134;350:20;;379:31;350:20;379:31;:::i;:::-;282:134;;;:::o;421:1121::-;505:6;536:2;579;567:9;558:7;554:23;550:32;547:52;;;595:1;592;585:12;547:52;635:9;622:23;664:18;705:2;697:6;694:14;691:34;;;721:1;718;711:12;691:34;759:6;748:9;744:22;734:32;;804:7;797:4;793:2;789:13;785:27;775:55;;826:1;823;816:12;775:55;862:2;849:16;884:2;880;877:10;874:36;;;890:18;;:::i;:::-;936:2;933:1;929:10;968:2;962:9;1031:2;1027:7;1022:2;1018;1014:11;1010:25;1002:6;998:38;1086:6;1074:10;1071:22;1066:2;1054:10;1051:18;1048:46;1045:72;;;1097:18;;:::i;:::-;1133:2;1126:22;1183:18;;;1217:15;;;;-1:-1:-1;1259:11:1;;;1255:20;;;1287:19;;;1284:39;;;1319:1;1316;1309:12;1284:39;1343:11;;;;1363:148;1379:6;1374:3;1371:15;1363:148;;;1445:23;1464:3;1445:23;:::i;:::-;1433:36;;1396:12;;;;1489;;;;1363:148;;;1530:6;421:1121;-1:-1:-1;;;;;;;;421:1121:1:o;1547:597::-;1659:4;1688:2;1717;1706:9;1699:21;1749:6;1743:13;1792:6;1787:2;1776:9;1772:18;1765:34;1817:1;1827:140;1841:6;1838:1;1835:13;1827:140;;;1936:14;;;1932:23;;1926:30;1902:17;;;1921:2;1898:26;1891:66;1856:10;;1827:140;;;1985:6;1982:1;1979:13;1976:91;;;2055:1;2050:2;2041:6;2030:9;2026:22;2022:31;2015:42;1976:91;-1:-1:-1;2128:2:1;2107:15;-1:-1:-1;;2103:29:1;2088:45;;;;2135:2;2084:54;;1547:597;-1:-1:-1;;;1547:597:1:o;2149:315::-;2217:6;2225;2278:2;2266:9;2257:7;2253:23;2249:32;2246:52;;;2294:1;2291;2284:12;2246:52;2333:9;2320:23;2352:31;2377:5;2352:31;:::i;:::-;2402:5;2454:2;2439:18;;;;2426:32;;-1:-1:-1;;;2149:315:1:o;3077:456::-;3154:6;3162;3170;3223:2;3211:9;3202:7;3198:23;3194:32;3191:52;;;3239:1;3236;3229:12;3191:52;3278:9;3265:23;3297:31;3322:5;3297:31;:::i;:::-;3347:5;-1:-1:-1;3404:2:1;3389:18;;3376:32;3417:33;3376:32;3417:33;:::i;:::-;3077:456;;3469:7;;-1:-1:-1;;;3523:2:1;3508:18;;;;3495:32;;3077:456::o;3935:247::-;3994:6;4047:2;4035:9;4026:7;4022:23;4018:32;4015:52;;;4063:1;4060;4053:12;4015:52;4102:9;4089:23;4121:31;4146:5;4121:31;:::i;4187:160::-;4252:20;;4308:13;;4301:21;4291:32;;4281:60;;4337:1;4334;4327:12;4352:180;4408:6;4461:2;4449:9;4440:7;4436:23;4432:32;4429:52;;;4477:1;4474;4467:12;4429:52;4500:26;4516:9;4500:26;:::i;4537:180::-;4596:6;4649:2;4637:9;4628:7;4624:23;4620:32;4617:52;;;4665:1;4662;4655:12;4617:52;-1:-1:-1;4688:23:1;;4537:180;-1:-1:-1;4537:180:1:o;4722:385::-;4808:6;4816;4824;4832;4885:3;4873:9;4864:7;4860:23;4856:33;4853:53;;;4902:1;4899;4892:12;4853:53;-1:-1:-1;;4925:23:1;;;4995:2;4980:18;;4967:32;;-1:-1:-1;5046:2:1;5031:18;;5018:32;;5097:2;5082:18;5069:32;;-1:-1:-1;4722:385:1;-1:-1:-1;4722:385:1:o;5112:689::-;5204:6;5212;5220;5273:2;5261:9;5252:7;5248:23;5244:32;5241:52;;;5289:1;5286;5279:12;5241:52;5329:9;5316:23;5358:18;5399:2;5391:6;5388:14;5385:34;;;5415:1;5412;5405:12;5385:34;5453:6;5442:9;5438:22;5428:32;;5498:7;5491:4;5487:2;5483:13;5479:27;5469:55;;5520:1;5517;5510:12;5469:55;5560:2;5547:16;5586:2;5578:6;5575:14;5572:34;;;5602:1;5599;5592:12;5572:34;5657:7;5650:4;5640:6;5637:1;5633:14;5629:2;5625:23;5621:34;5618:47;5615:67;;;5678:1;5675;5668:12;5615:67;5709:4;5701:13;;;;-1:-1:-1;5733:6:1;-1:-1:-1;5758:37:1;;5774:20;;;-1:-1:-1;5758:37:1;:::i;:::-;5748:47;;5112:689;;;;;:::o;5806:388::-;5874:6;5882;5935:2;5923:9;5914:7;5910:23;5906:32;5903:52;;;5951:1;5948;5941:12;5903:52;5990:9;5977:23;6009:31;6034:5;6009:31;:::i;:::-;6059:5;-1:-1:-1;6116:2:1;6101:18;;6088:32;6129:33;6088:32;6129:33;:::i;:::-;6181:7;6171:17;;;5806:388;;;;;:::o;6199:356::-;6401:2;6383:21;;;6420:18;;;6413:30;6479:34;6474:2;6459:18;;6452:62;6546:2;6531:18;;6199:356::o;6560:127::-;6621:10;6616:3;6612:20;6609:1;6602:31;6652:4;6649:1;6642:15;6676:4;6673:1;6666:15;6692:127;6753:10;6748:3;6744:20;6741:1;6734:31;6784:4;6781:1;6774:15;6808:4;6805:1;6798:15;6824:135;6863:3;-1:-1:-1;;6884:17:1;;6881:43;;;6904:18;;:::i;:::-;-1:-1:-1;6951:1:1;6940:13;;6824:135::o;12212:128::-;12252:3;12283:1;12279:6;12276:1;12273:13;12270:39;;;12289:18;;:::i;:::-;-1:-1:-1;12325:9:1;;12212:128::o;12749:125::-;12789:4;12817:1;12814;12811:8;12808:34;;;12822:18;;:::i;:::-;-1:-1:-1;12859:9:1;;12749:125::o;13290:251::-;13360:6;13413:2;13401:9;13392:7;13388:23;13384:32;13381:52;;;13429:1;13426;13419:12;13381:52;13461:9;13455:16;13480:31;13505:5;13480:31;:::i;13546:980::-;13808:4;13856:3;13845:9;13841:19;13887:6;13876:9;13869:25;13913:2;13951:6;13946:2;13935:9;13931:18;13924:34;13994:3;13989:2;13978:9;13974:18;13967:31;14018:6;14053;14047:13;14084:6;14076;14069:22;14122:3;14111:9;14107:19;14100:26;;14161:2;14153:6;14149:15;14135:29;;14182:1;14192:195;14206:6;14203:1;14200:13;14192:195;;;14271:13;;-1:-1:-1;;;;;14267:39:1;14255:52;;14362:15;;;;14327:12;;;;14303:1;14221:9;14192:195;;;-1:-1:-1;;;;;;;14443:32:1;;;;14438:2;14423:18;;14416:60;-1:-1:-1;;;14507:3:1;14492:19;14485:35;14404:3;13546:980;-1:-1:-1;;;13546:980:1:o;14531:217::-;14571:1;14597;14587:132;;14641:10;14636:3;14632:20;14629:1;14622:31;14676:4;14673:1;14666:15;14704:4;14701:1;14694:15;14587:132;-1:-1:-1;14733:9:1;;14531:217::o;15109:168::-;15149:7;15215:1;15211;15207:6;15203:14;15200:1;15197:21;15192:1;15185:9;15178:17;15174:45;15171:71;;;15222:18;;:::i;:::-;-1:-1:-1;15262:9:1;;15109:168::o

Swarm Source

ipfs://d3811c94c8252fc56d4ee112a91dca5b905ec49e368508b01232e820f42af704

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.