ETH Price: $3,169.03 (-8.43%)
Gas: 4 Gwei

Contract

0x842A4458d1D4Bb9E5b6049B3A3D94Bba0048F486
 

Overview

ETH Balance

1 wei

Eth Value

Less Than $0.01 (@ $3,169.03/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve203816982024-07-25 6:13:232 hrs ago1721888003IN
0x842A4458...a0048F486
0 ETH0.00022854.90128081
Approve203734522024-07-24 2:35:5930 hrs ago1721788559IN
0x842A4458...a0048F486
0 ETH0.000136952.93765183
Approve203222272024-07-16 23:01:238 days ago1721170883IN
0x842A4458...a0048F486
0 ETH0.000249255.35312536
Approve202976712024-07-13 12:45:1111 days ago1720874711IN
0x842A4458...a0048F486
0 ETH0.000106732.29226578
Approve202913402024-07-12 15:32:3512 days ago1720798355IN
0x842A4458...a0048F486
0 ETH0.00020918.61280893
Approve202815172024-07-11 6:37:4714 days ago1720679867IN
0x842A4458...a0048F486
0 ETH0.000138963
Approve202802742024-07-11 2:27:2314 days ago1720664843IN
0x842A4458...a0048F486
0 ETH0.000171963.71341812
Approve202773402024-07-10 16:37:4714 days ago1720629467IN
0x842A4458...a0048F486
0 ETH0.0005769512.39121469
Approve202762482024-07-10 12:58:1114 days ago1720616291IN
0x842A4458...a0048F486
0 ETH0.000361487.75350883
Approve202760912024-07-10 12:26:4714 days ago1720614407IN
0x842A4458...a0048F486
0 ETH0.000305166.55390641
Approve202731572024-07-10 2:37:5915 days ago1720579079IN
0x842A4458...a0048F486
0 ETH0.000187434.02034092
Approve202730882024-07-10 2:23:5915 days ago1720578239IN
0x842A4458...a0048F486
0 ETH0.0005594612
Approve202714312024-07-09 20:50:2315 days ago1720558223IN
0x842A4458...a0048F486
0 ETH0.00025075.4137166
Approve202707742024-07-09 18:38:1115 days ago1720550291IN
0x842A4458...a0048F486
0 ETH0.000266835.73072833
Approve202701262024-07-09 16:27:4715 days ago1720542467IN
0x842A4458...a0048F486
0 ETH0.000462719.92473827
Approve202697932024-07-09 15:20:5915 days ago1720538459IN
0x842A4458...a0048F486
0 ETH0.0006273713.4739872
Approve202697782024-07-09 15:17:5915 days ago1720538279IN
0x842A4458...a0048F486
0 ETH0.0008088617.34938145
Approve202697672024-07-09 15:15:4715 days ago1720538147IN
0x842A4458...a0048F486
0 ETH0.0005456111.78178043
Approve202697602024-07-09 15:14:2315 days ago1720538063IN
0x842A4458...a0048F486
0 ETH0.0004988110.69902696
Approve202697542024-07-09 15:13:1115 days ago1720537991IN
0x842A4458...a0048F486
0 ETH0.0011465424.5922612
Approve202697422024-07-09 15:10:4715 days ago1720537847IN
0x842A4458...a0048F486
0 ETH0.0005094710.94188464
Approve202697412024-07-09 15:10:3515 days ago1720537835IN
0x842A4458...a0048F486
0 ETH0.0005382311.544555
Approve202697392024-07-09 15:10:1115 days ago1720537811IN
0x842A4458...a0048F486
0 ETH0.0007243215.53617158
Approve202697382024-07-09 15:09:5915 days ago1720537799IN
0x842A4458...a0048F486
0 ETH0.0005765112.36569397
Approve202697382024-07-09 15:09:5915 days ago1720537799IN
0x842A4458...a0048F486
0 ETH0.0005765112.36569397
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
186659252023-11-27 22:22:35240 days ago1701123755
0x842A4458...a0048F486
0.01422412 ETH
186659252023-11-27 22:22:35240 days ago1701123755
0x842A4458...a0048F486
0.02133618 ETH
186659252023-11-27 22:22:35240 days ago1701123755
0x842A4458...a0048F486
0.03556031 ETH
186659152023-11-27 22:20:35240 days ago1701123635
0x842A4458...a0048F486
0.00959234 ETH
186659152023-11-27 22:20:35240 days ago1701123635
0x842A4458...a0048F486
0.01438851 ETH
186659152023-11-27 22:20:35240 days ago1701123635
0x842A4458...a0048F486
0.02398085 ETH
186659122023-11-27 22:19:59240 days ago1701123599
0x842A4458...a0048F486
0.01515875 ETH
186659122023-11-27 22:19:59240 days ago1701123599
0x842A4458...a0048F486
0.02273813 ETH
186659122023-11-27 22:19:59240 days ago1701123599
0x842A4458...a0048F486
0.03789688 ETH
186659112023-11-27 22:19:47240 days ago1701123587
0x842A4458...a0048F486
0.01093654 ETH
186659112023-11-27 22:19:47240 days ago1701123587
0x842A4458...a0048F486
0.01640482 ETH
186659112023-11-27 22:19:47240 days ago1701123587
0x842A4458...a0048F486
0.02734137 ETH
186659072023-11-27 22:18:59240 days ago1701123539
0x842A4458...a0048F486
0.01406785 ETH
186659072023-11-27 22:18:59240 days ago1701123539
0x842A4458...a0048F486
0.02110178 ETH
186659072023-11-27 22:18:59240 days ago1701123539
0x842A4458...a0048F486
0.03516963 ETH
186659042023-11-27 22:18:23240 days ago1701123503
0x842A4458...a0048F486
0.01044258 ETH
186659042023-11-27 22:18:23240 days ago1701123503
0x842A4458...a0048F486
0.01566388 ETH
186659042023-11-27 22:18:23240 days ago1701123503
0x842A4458...a0048F486
0.02610647 ETH
186659042023-11-27 22:18:23240 days ago1701123503
0x842A4458...a0048F486
0.00757442 ETH
186659042023-11-27 22:18:23240 days ago1701123503
0x842A4458...a0048F486
0.01136163 ETH
186659042023-11-27 22:18:23240 days ago1701123503
0x842A4458...a0048F486
0.01893605 ETH
186659002023-11-27 22:17:35240 days ago1701123455
0x842A4458...a0048F486
0.01750257 ETH
186659002023-11-27 22:17:35240 days ago1701123455
0x842A4458...a0048F486
0.02625386 ETH
186659002023-11-27 22:17:35240 days ago1701123455
0x842A4458...a0048F486
0.04375644 ETH
186658982023-11-27 22:17:11240 days ago1701123431
0x842A4458...a0048F486
0.03015461 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Milkman

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-27
*/

/**

X: https://twitter.com/MilkmanToken 
Telegram: https://t.me/milkmaneth
Website: https://www.imthemilkman.com/

In 2005, the video game Psychonauts was released. This psychotic game featured many insane characters and you went inside their twisted minds. 
One of the characters, Boyd, had one of the most memorable character from the game. The Milkman.

In Boyd's mind, there are investigators searching for someone called the Milkman. After completing quests and objectives you find the milkman in a refrigerated tomb. 
You release him and upon doing so, one of the vilians in the room shouts, "What have you done? He wakes! (Milkman levitates out of tomb) "And the seas shall run white with his rage!"

The game's director, Tim Schafer, was responsible for the level concept and its dialogue. He decided to create a conspiracy-based level around "I am the milkman, my milk is delicious,
"a phrase made up by a staff member at Double Fine. Schafer found fascination with conspiracy theorists, trying to create comedy with mental illness without punching down at those with mental illnesses.
Art director Scott Campbell wanted to emphasize the paranoia Boyd experiences, accomplishing this by adding G-Men and the feeling of being watched to the level. 

The character of the Milkman is very creepy and bizarre. Once leaving Boyd's mind, he becomes the Milkman and FREES THE PRISONERS OF AN ASYLUM.

"I AM THE MILKMAN. MY MILK IS DELICIOUS."

*/

// SPDX-License-Identifier: MIT
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 internal _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 Milkman is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "Milkman";
    string private constant _symbol = "MILKMAN";
    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;
    uint256 private _redisFeeOnBuy = 0;  
    uint256 private _taxFeeOnBuy = 20;  
    uint256 private _redisFeeOnSell = 0;  
    uint256 private _taxFeeOnSell = 25;
 
    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(0x8e73AF8aa97B60366D0047Ad18B3b367CE9c79b3); 
    address payable private _marketingAddress = payable(0x8e73AF8aa97B60366D0047Ad18B3b367CE9c79b3);
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
 
    uint256 public _maxTxAmount = _tTotal.mul(1).div(100);
    uint256 public _maxWalletSize = _tTotal.mul(2).div(100); 
    uint256 public _swapTokensAtAmount = _tTotal.mul(1).div(1000);
 
    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.mul(3).div(5));
        _developmentAddress.transfer(amount.mul(2).div(5));
    }
 
    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 <= 5, "Buy rewards must be between 0% and 5%");
        require(taxFeeOnBuy >= 0 && taxFeeOnBuy <= 50, "Buy tax must be between 0% and 50%");
        require(redisFeeOnSell >= 0 && redisFeeOnSell <= 5, "Sell rewards must be between 0% and 5%");
        require(taxFeeOnSell >= 0 && taxFeeOnSell <= 99, "Sell tax must be between 0% and 99%");

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

    }
 
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
 
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
 
    function setMaxTxnAmount(uint256 amountPercent) public onlyOwner {
        require(amountPercent>0);
        _maxTxAmount = (_tTotal * amountPercent ) / 100;
    }

    function setMaxWalletSize(uint256 amountPercent) public onlyOwner {
        require(amountPercent>0);
        _maxWalletSize = (_tTotal * amountPercent ) / 100;
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }
 
    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":"removeLimits","outputs":[],"stateMutability":"nonpayable","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":"amountPercent","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","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"}]

60806040526200001967016345785d8a00005f19620004c5565b62000026905f19620004ef565b6006555f60088190556014600955600a8190556019600b819055600c829055600d819055600e91909155600f55601280546001600160a01b0319908116738e73af8aa97b60366d0047ad18b3b367ce9c79b39081179092556013805490911690911790556015805461ffff60a81b1916600160b01b179055620000c06064620000b967016345785d8a000060016200039b565b906200042e565b601655620000de6064620000b967016345785d8a000060026200039b565b601755620000fd6103e8620000b967016345785d8a000060016200039b565b6018553480156200010c575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600654335f9081526002602090815260409182902092909255601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015620001c6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001ec919062000505565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000238573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200025e919062000505565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002a9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002cf919062000505565b601580546001600160a01b0319166001600160a01b039283161790555f80548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601254851684528284208054821683179055601354909416835291208054909216179055336001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a00006040516200038c91815260200190565b60405180910390a350620005aa565b5f825f03620003ac57505f62000428565b5f620003b983856200052d565b905082620003c8858362000547565b14620004255760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f6200042583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200047760201b60201c565b5f81836200049a5760405162461bcd60e51b81526004016200041c91906200055d565b505f620004a8848662000547565b95945050505050565b634e487b7160e01b5f52601260045260245ffd5b5f82620004d657620004d6620004b1565b500690565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620004285762000428620004db565b5f6020828403121562000516575f80fd5b81516001600160a01b038116811462000425575f80fd5b8082028115828204841417620004285762000428620004db565b5f82620005585762000558620004b1565b500490565b5f6020808352835180828501525f5b818110156200058a578581018301518582016040015282016200056c565b505f604082860101526040601f19601f8301168501019250505092915050565b611fa480620005b85f395ff3fe6080604052600436106101d2575f3560e01c8063751039fc116100fd578063a2a957bb11610092578063c492f04611610062578063c492f0461461054d578063dd62ed3e1461056c578063ea1644d5146105b0578063f2fde38b146105cf575f80fd5b8063a2a957bb146104cd578063a9059cbb146104ec578063bfd792841461050b578063c3c8cd8014610539575f80fd5b80638f70ccf7116100cd5780638f70ccf71461044b5780638f9a55c01461046a57806395d89b411461047f57806398a5c315146104ae575f80fd5b8063751039fc146103db5780637d1db4a5146103ef5780637f2feddc146104045780638da5cb5b1461042f575f80fd5b8063313ce567116101735780636fc3eaec116101435780636fc3eaec1461037557806370a0823114610389578063715018a6146103a857806374010ece146103bc575f80fd5b8063313ce567146102fd57806349bd5a5e146103185780636b999053146103375780636d8aa8f814610356575f80fd5b80631694505e116101ae5780631694505e1461026e57806318160ddd146102a557806323b872dd146102c95780632fd689e3146102e8575f80fd5b8062b8cf2a146101dd57806306fdde03146101fe578063095ea7b31461023f575f80fd5b366101d957005b5f80fd5b3480156101e8575f80fd5b506101fc6101f7366004611b3b565b6105ee565b005b348015610209575f80fd5b5060408051808201909152600781526626b4b635b6b0b760c91b60208201525b6040516102369190611bfb565b60405180910390f35b34801561024a575f80fd5b5061025e610259366004611c46565b610689565b6040519015158152602001610236565b348015610279575f80fd5b5060145461028d906001600160a01b031681565b6040516001600160a01b039091168152602001610236565b3480156102b0575f80fd5b5067016345785d8a00005b604051908152602001610236565b3480156102d4575f80fd5b5061025e6102e3366004611c70565b61069f565b3480156102f3575f80fd5b506102bb60185481565b348015610308575f80fd5b5060405160098152602001610236565b348015610323575f80fd5b5060155461028d906001600160a01b031681565b348015610342575f80fd5b506101fc610351366004611cae565b610706565b348015610361575f80fd5b506101fc610370366004611cd8565b61074f565b348015610380575f80fd5b506101fc610796565b348015610394575f80fd5b506102bb6103a3366004611cae565b6107e0565b3480156103b3575f80fd5b506101fc610801565b3480156103c7575f80fd5b506101fc6103d6366004611cf1565b610872565b3480156103e6575f80fd5b506101fc6108ca565b3480156103fa575f80fd5b506102bb60165481565b34801561040f575f80fd5b506102bb61041e366004611cae565b60116020525f908152604090205481565b34801561043a575f80fd5b505f546001600160a01b031661028d565b348015610456575f80fd5b506101fc610465366004611cd8565b610906565b348015610475575f80fd5b506102bb60175481565b34801561048a575f80fd5b5060408051808201909152600781526626a4a625a6a0a760c91b6020820152610229565b3480156104b9575f80fd5b506101fc6104c8366004611cf1565b61094d565b3480156104d8575f80fd5b506101fc6104e7366004611d08565b61097b565b3480156104f7575f80fd5b5061025e610506366004611c46565b610b30565b348015610516575f80fd5b5061025e610525366004611cae565b60106020525f908152604090205460ff1681565b348015610544575f80fd5b506101fc610b3c565b348015610558575f80fd5b506101fc610567366004611d37565b610b8e565b348015610577575f80fd5b506102bb610586366004611db4565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156105bb575f80fd5b506101fc6105ca366004611cf1565b610c2b565b3480156105da575f80fd5b506101fc6105e9366004611cae565b610c83565b5f546001600160a01b031633146106205760405162461bcd60e51b815260040161061790611deb565b60405180910390fd5b5f5b815181101561068557600160105f84848151811061064257610642611e20565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558061067d81611e48565b915050610622565b5050565b5f610695338484610d6a565b5060015b92915050565b5f6106ab848484610e8d565b6106fc84336106f785604051806060016040528060288152602001611f47602891396001600160a01b038a165f90815260046020908152604080832033845290915290205491906113bd565b610d6a565b5060019392505050565b5f546001600160a01b0316331461072f5760405162461bcd60e51b815260040161061790611deb565b6001600160a01b03165f908152601060205260409020805460ff19169055565b5f546001600160a01b031633146107785760405162461bcd60e51b815260040161061790611deb565b60158054911515600160b01b0260ff60b01b19909216919091179055565b6012546001600160a01b0316336001600160a01b031614806107cb57506013546001600160a01b0316336001600160a01b0316145b6107d3575f80fd5b476107dd816113f5565b50565b6001600160a01b0381165f9081526002602052604081205461069990611484565b5f546001600160a01b0316331461082a5760405162461bcd60e51b815260040161061790611deb565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461089b5760405162461bcd60e51b815260040161061790611deb565b5f81116108a6575f80fd5b60646108ba8267016345785d8a0000611e60565b6108c49190611e77565b60165550565b5f546001600160a01b031633146108f35760405162461bcd60e51b815260040161061790611deb565b67016345785d8a00006016819055601755565b5f546001600160a01b0316331461092f5760405162461bcd60e51b815260040161061790611deb565b60158054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b031633146109765760405162461bcd60e51b815260040161061790611deb565b601855565b5f546001600160a01b031633146109a45760405162461bcd60e51b815260040161061790611deb565b6005841115610a035760405162461bcd60e51b815260206004820152602560248201527f4275792072657761726473206d757374206265206265747765656e20302520616044820152646e6420352560d81b6064820152608401610617565b6032821115610a5f5760405162461bcd60e51b815260206004820152602260248201527f42757920746178206d757374206265206265747765656e20302520616e642035604482015261302560f01b6064820152608401610617565b6005831115610abf5760405162461bcd60e51b815260206004820152602660248201527f53656c6c2072657761726473206d757374206265206265747765656e20302520604482015265616e6420352560d01b6064820152608401610617565b6063811115610b1c5760405162461bcd60e51b815260206004820152602360248201527f53656c6c20746178206d757374206265206265747765656e20302520616e642060448201526239392560e81b6064820152608401610617565b600893909355600a91909155600955600b55565b5f610695338484610e8d565b6012546001600160a01b0316336001600160a01b03161480610b7157506013546001600160a01b0316336001600160a01b0316145b610b79575f80fd5b5f610b83306107e0565b90506107dd81611506565b5f546001600160a01b03163314610bb75760405162461bcd60e51b815260040161061790611deb565b5f5b82811015610c25578160055f868685818110610bd757610bd7611e20565b9050602002016020810190610bec9190611cae565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905580610c1d81611e48565b915050610bb9565b50505050565b5f546001600160a01b03163314610c545760405162461bcd60e51b815260040161061790611deb565b5f8111610c5f575f80fd5b6064610c738267016345785d8a0000611e60565b610c7d9190611e77565b60175550565b5f546001600160a01b03163314610cac5760405162461bcd60e51b815260040161061790611deb565b6001600160a01b038116610d115760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610617565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610dcc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610617565b6001600160a01b038216610e2d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610617565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ef15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610617565b6001600160a01b038216610f535760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610617565b5f8111610fb45760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610617565b5f546001600160a01b03848116911614801590610fde57505f546001600160a01b03838116911614155b156112b957601554600160a01b900460ff16611076575f546001600160a01b038481169116146110765760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610617565b6016548111156110c85760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610617565b6001600160a01b0383165f9081526010602052604090205460ff1615801561110857506001600160a01b0382165f9081526010602052604090205460ff16155b6111605760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610617565b6015546001600160a01b038381169116146111e55760175481611182846107e0565b61118c9190611e96565b106111e55760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610617565b5f6111ef306107e0565b6018546016549192508210159082106112085760165491505b80801561121f5750601554600160a81b900460ff16155b801561123957506015546001600160a01b03868116911614155b801561124e5750601554600160b01b900460ff165b801561127257506001600160a01b0385165f9081526005602052604090205460ff16155b801561129657506001600160a01b0384165f9081526005602052604090205460ff16155b156112b6576112a482611506565b4780156112b4576112b4476113f5565b505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff16806112f957506001600160a01b0383165f9081526005602052604090205460ff165b8061132b57506015546001600160a01b0385811691161480159061132b57506015546001600160a01b03848116911614155b1561133757505f6113b1565b6015546001600160a01b03858116911614801561136257506014546001600160a01b03848116911614155b1561137457600854600c55600954600d555b6015546001600160a01b03848116911614801561139f57506014546001600160a01b03858116911614155b156113b157600a54600c55600b54600d555b610c2584848484611676565b5f81848411156113e05760405162461bcd60e51b81526004016106179190611bfb565b505f6113ec8486611ea9565b95945050505050565b6013546001600160a01b03166108fc61141a60056114148560036116a4565b90611722565b6040518115909202915f818181858888f1935050505015801561143f573d5f803e3d5ffd5b506012546001600160a01b03166108fc61145f60056114148560026116a4565b6040518115909202915f818181858888f19350505050158015610685573d5f803e3d5ffd5b5f6006548211156114ea5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610617565b5f6114f3611763565b90506114ff8382611722565b9392505050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061154c5761154c611e20565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115a3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115c79190611ebc565b816001815181106115da576115da611e20565b6001600160a01b0392831660209182029290920101526014546116009130911684610d6a565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906116389085905f90869030904290600401611ed7565b5f604051808303815f87803b15801561164f575f80fd5b505af1158015611661573d5f803e3d5ffd5b50506015805460ff60a81b1916905550505050565b8061168357611683611784565b61168e8484846117b1565b80610c2557610c25600e54600c55600f54600d55565b5f825f036116b357505f610699565b5f6116be8385611e60565b9050826116cb8583611e77565b146114ff5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610617565b5f6114ff83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118a2565b5f805f61176e6118ce565b909250905061177d8282611722565b9250505090565b600c541580156117945750600d54155b1561179b57565b600c8054600e55600d8054600f555f9182905555565b5f805f805f806117c08761190d565b6001600160a01b038f165f90815260026020526040902054959b509399509197509550935091506117f19087611962565b6001600160a01b03808b165f9081526002602052604080822093909355908a168152205461181f90866119a3565b6001600160a01b0389165f9081526002602052604090205561184081611a01565b61184a8483611a47565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161188f91815260200190565b60405180910390a3505050505050505050565b5f81836118c25760405162461bcd60e51b81526004016106179190611bfb565b505f6113ec8486611e77565b6006545f90819067016345785d8a00006118e88282611722565b8210156119045750506006549267016345785d8a000092509050565b90939092509050565b5f805f805f805f805f6119258a600c54600d54611a6b565b9250925092505f611934611763565b90505f805f6119458e878787611ab7565b919e509c509a509598509396509194505050505091939550919395565b5f6114ff83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113bd565b5f806119af8385611e96565b9050838110156114ff5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610617565b5f611a0a611763565b90505f611a1783836116a4565b305f90815260026020526040902054909150611a3390826119a3565b305f90815260026020526040902055505050565b600654611a549083611962565b600655600754611a6490826119a3565b6007555050565b5f808080611a7e606461141489896116a4565b90505f611a9060646114148a896116a4565b90505f611aa782611aa18b86611962565b90611962565b9992985090965090945050505050565b5f808080611ac588866116a4565b90505f611ad288876116a4565b90505f611adf88886116a4565b90505f611af082611aa18686611962565b939b939a50919850919650505050505050565b634e487b7160e01b5f52604160045260245ffd5b6001600160a01b03811681146107dd575f80fd5b8035611b3681611b17565b919050565b5f6020808385031215611b4c575f80fd5b823567ffffffffffffffff80821115611b63575f80fd5b818501915085601f830112611b76575f80fd5b813581811115611b8857611b88611b03565b8060051b604051601f19603f83011681018181108582111715611bad57611bad611b03565b604052918252848201925083810185019188831115611bca575f80fd5b938501935b82851015611bef57611be085611b2b565b84529385019392850192611bcf565b98975050505050505050565b5f6020808352835180828501525f5b81811015611c2657858101830151858201604001528201611c0a565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215611c57575f80fd5b8235611c6281611b17565b946020939093013593505050565b5f805f60608486031215611c82575f80fd5b8335611c8d81611b17565b92506020840135611c9d81611b17565b929592945050506040919091013590565b5f60208284031215611cbe575f80fd5b81356114ff81611b17565b80358015158114611b36575f80fd5b5f60208284031215611ce8575f80fd5b6114ff82611cc9565b5f60208284031215611d01575f80fd5b5035919050565b5f805f8060808587031215611d1b575f80fd5b5050823594602084013594506040840135936060013592509050565b5f805f60408486031215611d49575f80fd5b833567ffffffffffffffff80821115611d60575f80fd5b818601915086601f830112611d73575f80fd5b813581811115611d81575f80fd5b8760208260051b8501011115611d95575f80fd5b602092830195509350611dab9186019050611cc9565b90509250925092565b5f8060408385031215611dc5575f80fd5b8235611dd081611b17565b91506020830135611de081611b17565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60018201611e5957611e59611e34565b5060010190565b808202811582820484141761069957610699611e34565b5f82611e9157634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561069957610699611e34565b8181038181111561069957610699611e34565b5f60208284031215611ecc575f80fd5b81516114ff81611b17565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611f255784516001600160a01b031683529383019391830191600101611f00565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122011744a516adf6a804ac3169b8cf9e5671429a2cd3adcc3088252398be0d5225f64736f6c63430008150033

Deployed Bytecode

0x6080604052600436106101d2575f3560e01c8063751039fc116100fd578063a2a957bb11610092578063c492f04611610062578063c492f0461461054d578063dd62ed3e1461056c578063ea1644d5146105b0578063f2fde38b146105cf575f80fd5b8063a2a957bb146104cd578063a9059cbb146104ec578063bfd792841461050b578063c3c8cd8014610539575f80fd5b80638f70ccf7116100cd5780638f70ccf71461044b5780638f9a55c01461046a57806395d89b411461047f57806398a5c315146104ae575f80fd5b8063751039fc146103db5780637d1db4a5146103ef5780637f2feddc146104045780638da5cb5b1461042f575f80fd5b8063313ce567116101735780636fc3eaec116101435780636fc3eaec1461037557806370a0823114610389578063715018a6146103a857806374010ece146103bc575f80fd5b8063313ce567146102fd57806349bd5a5e146103185780636b999053146103375780636d8aa8f814610356575f80fd5b80631694505e116101ae5780631694505e1461026e57806318160ddd146102a557806323b872dd146102c95780632fd689e3146102e8575f80fd5b8062b8cf2a146101dd57806306fdde03146101fe578063095ea7b31461023f575f80fd5b366101d957005b5f80fd5b3480156101e8575f80fd5b506101fc6101f7366004611b3b565b6105ee565b005b348015610209575f80fd5b5060408051808201909152600781526626b4b635b6b0b760c91b60208201525b6040516102369190611bfb565b60405180910390f35b34801561024a575f80fd5b5061025e610259366004611c46565b610689565b6040519015158152602001610236565b348015610279575f80fd5b5060145461028d906001600160a01b031681565b6040516001600160a01b039091168152602001610236565b3480156102b0575f80fd5b5067016345785d8a00005b604051908152602001610236565b3480156102d4575f80fd5b5061025e6102e3366004611c70565b61069f565b3480156102f3575f80fd5b506102bb60185481565b348015610308575f80fd5b5060405160098152602001610236565b348015610323575f80fd5b5060155461028d906001600160a01b031681565b348015610342575f80fd5b506101fc610351366004611cae565b610706565b348015610361575f80fd5b506101fc610370366004611cd8565b61074f565b348015610380575f80fd5b506101fc610796565b348015610394575f80fd5b506102bb6103a3366004611cae565b6107e0565b3480156103b3575f80fd5b506101fc610801565b3480156103c7575f80fd5b506101fc6103d6366004611cf1565b610872565b3480156103e6575f80fd5b506101fc6108ca565b3480156103fa575f80fd5b506102bb60165481565b34801561040f575f80fd5b506102bb61041e366004611cae565b60116020525f908152604090205481565b34801561043a575f80fd5b505f546001600160a01b031661028d565b348015610456575f80fd5b506101fc610465366004611cd8565b610906565b348015610475575f80fd5b506102bb60175481565b34801561048a575f80fd5b5060408051808201909152600781526626a4a625a6a0a760c91b6020820152610229565b3480156104b9575f80fd5b506101fc6104c8366004611cf1565b61094d565b3480156104d8575f80fd5b506101fc6104e7366004611d08565b61097b565b3480156104f7575f80fd5b5061025e610506366004611c46565b610b30565b348015610516575f80fd5b5061025e610525366004611cae565b60106020525f908152604090205460ff1681565b348015610544575f80fd5b506101fc610b3c565b348015610558575f80fd5b506101fc610567366004611d37565b610b8e565b348015610577575f80fd5b506102bb610586366004611db4565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156105bb575f80fd5b506101fc6105ca366004611cf1565b610c2b565b3480156105da575f80fd5b506101fc6105e9366004611cae565b610c83565b5f546001600160a01b031633146106205760405162461bcd60e51b815260040161061790611deb565b60405180910390fd5b5f5b815181101561068557600160105f84848151811061064257610642611e20565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558061067d81611e48565b915050610622565b5050565b5f610695338484610d6a565b5060015b92915050565b5f6106ab848484610e8d565b6106fc84336106f785604051806060016040528060288152602001611f47602891396001600160a01b038a165f90815260046020908152604080832033845290915290205491906113bd565b610d6a565b5060019392505050565b5f546001600160a01b0316331461072f5760405162461bcd60e51b815260040161061790611deb565b6001600160a01b03165f908152601060205260409020805460ff19169055565b5f546001600160a01b031633146107785760405162461bcd60e51b815260040161061790611deb565b60158054911515600160b01b0260ff60b01b19909216919091179055565b6012546001600160a01b0316336001600160a01b031614806107cb57506013546001600160a01b0316336001600160a01b0316145b6107d3575f80fd5b476107dd816113f5565b50565b6001600160a01b0381165f9081526002602052604081205461069990611484565b5f546001600160a01b0316331461082a5760405162461bcd60e51b815260040161061790611deb565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461089b5760405162461bcd60e51b815260040161061790611deb565b5f81116108a6575f80fd5b60646108ba8267016345785d8a0000611e60565b6108c49190611e77565b60165550565b5f546001600160a01b031633146108f35760405162461bcd60e51b815260040161061790611deb565b67016345785d8a00006016819055601755565b5f546001600160a01b0316331461092f5760405162461bcd60e51b815260040161061790611deb565b60158054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b031633146109765760405162461bcd60e51b815260040161061790611deb565b601855565b5f546001600160a01b031633146109a45760405162461bcd60e51b815260040161061790611deb565b6005841115610a035760405162461bcd60e51b815260206004820152602560248201527f4275792072657761726473206d757374206265206265747765656e20302520616044820152646e6420352560d81b6064820152608401610617565b6032821115610a5f5760405162461bcd60e51b815260206004820152602260248201527f42757920746178206d757374206265206265747765656e20302520616e642035604482015261302560f01b6064820152608401610617565b6005831115610abf5760405162461bcd60e51b815260206004820152602660248201527f53656c6c2072657761726473206d757374206265206265747765656e20302520604482015265616e6420352560d01b6064820152608401610617565b6063811115610b1c5760405162461bcd60e51b815260206004820152602360248201527f53656c6c20746178206d757374206265206265747765656e20302520616e642060448201526239392560e81b6064820152608401610617565b600893909355600a91909155600955600b55565b5f610695338484610e8d565b6012546001600160a01b0316336001600160a01b03161480610b7157506013546001600160a01b0316336001600160a01b0316145b610b79575f80fd5b5f610b83306107e0565b90506107dd81611506565b5f546001600160a01b03163314610bb75760405162461bcd60e51b815260040161061790611deb565b5f5b82811015610c25578160055f868685818110610bd757610bd7611e20565b9050602002016020810190610bec9190611cae565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905580610c1d81611e48565b915050610bb9565b50505050565b5f546001600160a01b03163314610c545760405162461bcd60e51b815260040161061790611deb565b5f8111610c5f575f80fd5b6064610c738267016345785d8a0000611e60565b610c7d9190611e77565b60175550565b5f546001600160a01b03163314610cac5760405162461bcd60e51b815260040161061790611deb565b6001600160a01b038116610d115760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610617565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610dcc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610617565b6001600160a01b038216610e2d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610617565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ef15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610617565b6001600160a01b038216610f535760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610617565b5f8111610fb45760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610617565b5f546001600160a01b03848116911614801590610fde57505f546001600160a01b03838116911614155b156112b957601554600160a01b900460ff16611076575f546001600160a01b038481169116146110765760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610617565b6016548111156110c85760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610617565b6001600160a01b0383165f9081526010602052604090205460ff1615801561110857506001600160a01b0382165f9081526010602052604090205460ff16155b6111605760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610617565b6015546001600160a01b038381169116146111e55760175481611182846107e0565b61118c9190611e96565b106111e55760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610617565b5f6111ef306107e0565b6018546016549192508210159082106112085760165491505b80801561121f5750601554600160a81b900460ff16155b801561123957506015546001600160a01b03868116911614155b801561124e5750601554600160b01b900460ff165b801561127257506001600160a01b0385165f9081526005602052604090205460ff16155b801561129657506001600160a01b0384165f9081526005602052604090205460ff16155b156112b6576112a482611506565b4780156112b4576112b4476113f5565b505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff16806112f957506001600160a01b0383165f9081526005602052604090205460ff165b8061132b57506015546001600160a01b0385811691161480159061132b57506015546001600160a01b03848116911614155b1561133757505f6113b1565b6015546001600160a01b03858116911614801561136257506014546001600160a01b03848116911614155b1561137457600854600c55600954600d555b6015546001600160a01b03848116911614801561139f57506014546001600160a01b03858116911614155b156113b157600a54600c55600b54600d555b610c2584848484611676565b5f81848411156113e05760405162461bcd60e51b81526004016106179190611bfb565b505f6113ec8486611ea9565b95945050505050565b6013546001600160a01b03166108fc61141a60056114148560036116a4565b90611722565b6040518115909202915f818181858888f1935050505015801561143f573d5f803e3d5ffd5b506012546001600160a01b03166108fc61145f60056114148560026116a4565b6040518115909202915f818181858888f19350505050158015610685573d5f803e3d5ffd5b5f6006548211156114ea5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610617565b5f6114f3611763565b90506114ff8382611722565b9392505050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061154c5761154c611e20565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115a3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115c79190611ebc565b816001815181106115da576115da611e20565b6001600160a01b0392831660209182029290920101526014546116009130911684610d6a565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906116389085905f90869030904290600401611ed7565b5f604051808303815f87803b15801561164f575f80fd5b505af1158015611661573d5f803e3d5ffd5b50506015805460ff60a81b1916905550505050565b8061168357611683611784565b61168e8484846117b1565b80610c2557610c25600e54600c55600f54600d55565b5f825f036116b357505f610699565b5f6116be8385611e60565b9050826116cb8583611e77565b146114ff5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610617565b5f6114ff83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118a2565b5f805f61176e6118ce565b909250905061177d8282611722565b9250505090565b600c541580156117945750600d54155b1561179b57565b600c8054600e55600d8054600f555f9182905555565b5f805f805f806117c08761190d565b6001600160a01b038f165f90815260026020526040902054959b509399509197509550935091506117f19087611962565b6001600160a01b03808b165f9081526002602052604080822093909355908a168152205461181f90866119a3565b6001600160a01b0389165f9081526002602052604090205561184081611a01565b61184a8483611a47565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161188f91815260200190565b60405180910390a3505050505050505050565b5f81836118c25760405162461bcd60e51b81526004016106179190611bfb565b505f6113ec8486611e77565b6006545f90819067016345785d8a00006118e88282611722565b8210156119045750506006549267016345785d8a000092509050565b90939092509050565b5f805f805f805f805f6119258a600c54600d54611a6b565b9250925092505f611934611763565b90505f805f6119458e878787611ab7565b919e509c509a509598509396509194505050505091939550919395565b5f6114ff83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113bd565b5f806119af8385611e96565b9050838110156114ff5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610617565b5f611a0a611763565b90505f611a1783836116a4565b305f90815260026020526040902054909150611a3390826119a3565b305f90815260026020526040902055505050565b600654611a549083611962565b600655600754611a6490826119a3565b6007555050565b5f808080611a7e606461141489896116a4565b90505f611a9060646114148a896116a4565b90505f611aa782611aa18b86611962565b90611962565b9992985090965090945050505050565b5f808080611ac588866116a4565b90505f611ad288876116a4565b90505f611adf88886116a4565b90505f611af082611aa18686611962565b939b939a50919850919650505050505050565b634e487b7160e01b5f52604160045260245ffd5b6001600160a01b03811681146107dd575f80fd5b8035611b3681611b17565b919050565b5f6020808385031215611b4c575f80fd5b823567ffffffffffffffff80821115611b63575f80fd5b818501915085601f830112611b76575f80fd5b813581811115611b8857611b88611b03565b8060051b604051601f19603f83011681018181108582111715611bad57611bad611b03565b604052918252848201925083810185019188831115611bca575f80fd5b938501935b82851015611bef57611be085611b2b565b84529385019392850192611bcf565b98975050505050505050565b5f6020808352835180828501525f5b81811015611c2657858101830151858201604001528201611c0a565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215611c57575f80fd5b8235611c6281611b17565b946020939093013593505050565b5f805f60608486031215611c82575f80fd5b8335611c8d81611b17565b92506020840135611c9d81611b17565b929592945050506040919091013590565b5f60208284031215611cbe575f80fd5b81356114ff81611b17565b80358015158114611b36575f80fd5b5f60208284031215611ce8575f80fd5b6114ff82611cc9565b5f60208284031215611d01575f80fd5b5035919050565b5f805f8060808587031215611d1b575f80fd5b5050823594602084013594506040840135936060013592509050565b5f805f60408486031215611d49575f80fd5b833567ffffffffffffffff80821115611d60575f80fd5b818601915086601f830112611d73575f80fd5b813581811115611d81575f80fd5b8760208260051b8501011115611d95575f80fd5b602092830195509350611dab9186019050611cc9565b90509250925092565b5f8060408385031215611dc5575f80fd5b8235611dd081611b17565b91506020830135611de081611b17565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60018201611e5957611e59611e34565b5060010190565b808202811582820484141761069957610699611e34565b5f82611e9157634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561069957610699611e34565b8181038181111561069957610699611e34565b5f60208284031215611ecc575f80fd5b81516114ff81611b17565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611f255784516001600160a01b031683529383019391830191600101611f00565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122011744a516adf6a804ac3169b8cf9e5671429a2cd3adcc3088252398be0d5225f64736f6c63430008150033

Deployed Bytecode Sourcemap

5563:14166:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14365:169;;;;;;;;;;-1:-1:-1;14365:169:0;;;;;:::i;:::-;;:::i;:::-;;8084:83;;;;;;;;;;-1:-1:-1;8154:5:0;;;;;;;;;;;;-1:-1:-1;;;8154:5:0;;;;8084:83;;;;;;;:::i;:::-;;;;;;;;9016:193;;;;;;;;;;-1:-1:-1;9016:193:0;;;;;:::i;:::-;;:::i;:::-;;;2585:14:1;;2578:22;2560:41;;2548:2;2533:18;9016:193:0;2420:187:1;6901:41:0;;;;;;;;;;-1:-1:-1;6901:41:0;;;;-1:-1:-1;;;;;6901:41:0;;;;;;-1:-1:-1;;;;;2802:32:1;;;2784:51;;2772:2;2757:18;6901:41:0;2612:229:1;8364:95:0;;;;;;;;;;-1:-1:-1;6114:17:0;8364:95;;;2992:25:1;;;2980:2;2965:18;8364:95:0;2846:177:1;9218:446:0;;;;;;;;;;-1:-1:-1;9218:446:0;;;;;:::i;:::-;;:::i;7216:61::-;;;;;;;;;;;;;;;;8272:83;;;;;;;;;;-1:-1:-1;8272:83:0;;5787:1;3631:36:1;;3619:2;3604:18;8272:83:0;3489:184:1;6949:28:0;;;;;;;;;;-1:-1:-1;6949:28:0;;;;-1:-1:-1;;;;;6949:28:0;;;14543:92;;;;;;;;;;-1:-1:-1;14543:92:0;;;;;:::i;:::-;;:::i;18902:101::-;;;;;;;;;;-1:-1:-1;18902:101:0;;;;;:::i;:::-;;:::i;14121:235::-;;;;;;;;;;;;;:::i;8468:138::-;;;;;;;;;;-1:-1:-1;8468:138:0;;;;;:::i;:::-;;:::i;3037:148::-;;;;;;;;;;;;;:::i;19012:166::-;;;;;;;;;;-1:-1:-1;19012:166:0;;;;;:::i;:::-;;:::i;19363:118::-;;;;;;;;;;;;;:::i;7093:53::-;;;;;;;;;;;;;;;;6640:43;;;;;;;;;;-1:-1:-1;6640:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;2821:79;;;;;;;;;;-1:-1:-1;2859:7:0;2886:6;-1:-1:-1;;;;;2886:6:0;2821:79;;13766:101;;;;;;;;;;-1:-1:-1;13766:101:0;;;;;:::i;:::-;;:::i;7153:55::-;;;;;;;;;;;;;;;;8176:87;;;;;;;;;;-1:-1:-1;8248:7:0;;;;;;;;;;;;-1:-1:-1;;;8248:7:0;;;;8176:87;;18754:139;;;;;;;;;;-1:-1:-1;18754:139:0;;;;;:::i;:::-;;:::i;18052:693::-;;;;;;;;;;-1:-1:-1;18052:693:0;;;;;:::i;:::-;;:::i;8615:199::-;;;;;;;;;;-1:-1:-1;8615:199:0;;;;;:::i;:::-;;:::i;6602:36::-;;;;;;;;;;-1:-1:-1;6602:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13876:236;;;;;;;;;;;;;:::i;19490:234::-;;;;;;;;;;-1:-1:-1;19490:234:0;;;;;:::i;:::-;;:::i;8823:184::-;;;;;;;;;;-1:-1:-1;8823:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;8972:18:0;;;8940:7;8972:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8823:184;19186:169;;;;;;;;;;-1:-1:-1;19186:169:0;;;;;:::i;:::-;;:::i;3194:244::-;;;;;;;;;;-1:-1:-1;3194:244:0;;;;;:::i;:::-;;:::i;14365:169::-;2949:6;;-1:-1:-1;;;;;2949:6:0;1649:10;2949:22;2941:67;;;;-1:-1:-1;;;2941:67:0;;;;;;;:::i;:::-;;;;;;;;;14441:9:::1;14436:91;14460:5;:12;14456:1;:16;14436:91;;;14511:4;14494;:14;14499:5;14505:1;14499:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14494:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14494:14:0;:21;;-1:-1:-1;;14494:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14474:3;::::1;::::0;::::1;:::i;:::-;;;;14436:91;;;;14365:169:::0;:::o;9016:193::-;9118:4;9140:39;1649:10;9163:7;9172:6;9140:8;:39::i;:::-;-1:-1:-1;9197:4:0;9016:193;;;;;:::o;9218:446::-;9350:4;9367:36;9377:6;9385:9;9396:6;9367:9;:36::i;:::-;9414:220;9437:6;1649:10;9485:138;9541:6;9485:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9485:19:0;;;;;;:11;:19;;;;;;;;1649:10;9485:33;;;;;;;;;;:37;:138::i;:::-;9414:8;:220::i;:::-;-1:-1:-1;9652:4:0;9218:446;;;;;:::o;14543:92::-;2949:6;;-1:-1:-1;;;;;2949:6:0;1649:10;2949:22;2941:67;;;;-1:-1:-1;;;2941:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14607:12:0::1;14622:5;14607:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;14607:20:0::1;::::0;;14543:92::o;18902:101::-;2949:6;;-1:-1:-1;;;;;2949:6:0;1649:10;2949:22;2941:67;;;;-1:-1:-1;;;2941:67:0;;;;;;;:::i;:::-;18969:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;18969:26:0::1;-1:-1:-1::0;;;;18969:26:0;;::::1;::::0;;;::::1;::::0;;18902:101::o;14121:235::-;14187:19;;-1:-1:-1;;;;;14187:19:0;1649:10;-1:-1:-1;;;;;14171:35:0;;:72;;;-1:-1:-1;14226:17:0;;-1:-1:-1;;;;;14226:17:0;1649:10;-1:-1:-1;;;;;14210:33:0;;14171:72;14163:81;;;;;;14284:21;14316:32;14284:21;14316:12;:32::i;:::-;14152:204;14121:235::o;8468:138::-;-1:-1:-1;;;;;8581:16:0;;8534:7;8581:16;;;:7;:16;;;;;;8561:37;;:19;:37::i;3037:148::-;2949:6;;-1:-1:-1;;;;;2949:6:0;1649:10;2949:22;2941:67;;;;-1:-1:-1;;;2941:67:0;;;;;;;:::i;:::-;3144:1:::1;3128:6:::0;;3107:40:::1;::::0;-1:-1:-1;;;;;3128:6:0;;::::1;::::0;3107:40:::1;::::0;3144:1;;3107:40:::1;3175:1;3158:19:::0;;-1:-1:-1;;;;;;3158:19:0::1;::::0;;3037:148::o;19012:166::-;2949:6;;-1:-1:-1;;;;;2949:6:0;1649:10;2949:22;2941:67;;;;-1:-1:-1;;;2941:67:0;;;;;;;:::i;:::-;19110:1:::1;19096:13;:15;19088:24;;;::::0;::::1;;19167:3;19139:23;19149:13:::0;6114:17:::1;19139:23;:::i;:::-;19138:32;;;;:::i;:::-;19123:12;:47:::0;-1:-1:-1;19012:166:0:o;19363:118::-;2949:6;;-1:-1:-1;;;;;2949:6:0;1649:10;2949:22;2941:67;;;;-1:-1:-1;;;2941:67:0;;;;;;;:::i;:::-;6114:17:::1;19416:12;:22:::0;;;19449:14:::1;:24:::0;19363:118::o;13766:101::-;2949:6;;-1:-1:-1;;;;;2949:6:0;1649:10;2949:22;2941:67;;;;-1:-1:-1;;;2941:67:0;;;;;;;:::i;:::-;13833:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;13833:26:0::1;-1:-1:-1::0;;;;13833:26:0;;::::1;::::0;;;::::1;::::0;;13766:101::o;18754:139::-;2949:6;;-1:-1:-1;;;;;2949:6:0;1649:10;2949:22;2941:67;;;;-1:-1:-1;;;2941:67:0;;;;;;;:::i;:::-;18845:19:::1;:40:::0;18754:139::o;18052:693::-;2949:6;;-1:-1:-1;;;;;2949:6:0;1649:10;2949:22;2941:67;;;;-1:-1:-1;;;2941:67:0;;;;;;;:::i;:::-;18233:1:::1;18216:13;:18;;18186:90;;;::::0;-1:-1:-1;;;18186:90:0;;7512:2:1;18186:90:0::1;::::0;::::1;7494:21:1::0;7551:2;7531:18;;;7524:30;7590:34;7570:18;;;7563:62;-1:-1:-1;;;7641:18:1;;;7634:35;7686:19;;18186:90:0::1;7310:401:1::0;18186:90:0::1;18330:2;18315:11;:17;;18287:84;;;::::0;-1:-1:-1;;;18287:84:0;;7918:2:1;18287:84:0::1;::::0;::::1;7900:21:1::0;7957:2;7937:18;;;7930:30;7996:34;7976:18;;;7969:62;-1:-1:-1;;;8047:18:1;;;8040:32;8089:19;;18287:84:0::1;7716:398:1::0;18287:84:0::1;18431:1;18413:14;:19;;18382:93;;;::::0;-1:-1:-1;;;18382:93:0;;8321:2:1;18382:93:0::1;::::0;::::1;8303:21:1::0;8360:2;8340:18;;;8333:30;8399:34;8379:18;;;8372:62;-1:-1:-1;;;8450:18:1;;;8443:36;8496:19;;18382:93:0::1;8119:402:1::0;18382:93:0::1;18531:2;18515:12;:18;;18486:87;;;::::0;-1:-1:-1;;;18486:87:0;;8728:2:1;18486:87:0::1;::::0;::::1;8710:21:1::0;8767:2;8747:18;;;8740:30;8806:34;8786:18;;;8779:62;-1:-1:-1;;;8857:18:1;;;8850:33;8900:19;;18486:87:0::1;8526:399:1::0;18486:87:0::1;18586:14;:30:::0;;;;18627:15:::1;:32:::0;;;;18670:12:::1;:26:::0;18707:13:::1;:28:::0;18052:693::o;8615:199::-;8720:4;8742:42;1649:10;8766:9;8777:6;8742:9;:42::i;13876:236::-;13942:19;;-1:-1:-1;;;;;13942:19:0;1649:10;-1:-1:-1;;;;;13926:35:0;;:72;;;-1:-1:-1;13981:17:0;;-1:-1:-1;;;;;13981:17:0;1649:10;-1:-1:-1;;;;;13965:33:0;;13926:72;13918:81;;;;;;14010:23;14036:24;14054:4;14036:9;:24::i;:::-;14010:50;;14071:33;14088:15;14071:16;:33::i;19490:234::-;2949:6;;-1:-1:-1;;;;;2949:6:0;1649:10;2949:22;2941:67;;;;-1:-1:-1;;;2941:67:0;;;;;;;:::i;:::-;19607:9:::1;19603:114;19622:19:::0;;::::1;19603:114;;;19697:8;19663:18;:31;19682:8;;19691:1;19682:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19663:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;19663:31:0;:42;;-1:-1:-1;;19663:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19643:3;::::1;::::0;::::1;:::i;:::-;;;;19603:114;;;;19490:234:::0;;;:::o;19186:169::-;2949:6;;-1:-1:-1;;;;;2949:6:0;1649:10;2949:22;2941:67;;;;-1:-1:-1;;;2941:67:0;;;;;;;:::i;:::-;19285:1:::1;19271:13;:15;19263:24;;;::::0;::::1;;19344:3;19316:23;19326:13:::0;6114:17:::1;19316:23;:::i;:::-;19315:32;;;;:::i;:::-;19298:14;:49:::0;-1:-1:-1;19186:169:0:o;3194:244::-;2949:6;;-1:-1:-1;;;;;2949:6:0;1649:10;2949:22;2941:67;;;;-1:-1:-1;;;2941:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3283:22:0;::::1;3275:73;;;::::0;-1:-1:-1;;;3275:73:0;;9132:2:1;3275:73:0::1;::::0;::::1;9114:21:1::0;9171:2;9151:18;;;9144:30;9210:34;9190:18;;;9183:62;-1:-1:-1;;;9261:18:1;;;9254:36;9307:19;;3275:73:0::1;8930:402:1::0;3275:73:0::1;3385:6;::::0;;3364:38:::1;::::0;-1:-1:-1;;;;;3364:38:0;;::::1;::::0;3385:6;::::1;::::0;3364:38:::1;::::0;::::1;3413:6;:17:::0;;-1:-1:-1;;;;;;3413:17:0::1;-1:-1:-1::0;;;;;3413:17:0;;;::::1;::::0;;;::::1;::::0;;3194:244::o;10361:369::-;-1:-1:-1;;;;;10488:19:0;;10480:68;;;;-1:-1:-1;;;10480:68:0;;9539:2:1;10480:68:0;;;9521:21:1;9578:2;9558:18;;;9551:30;9617:34;9597:18;;;9590:62;-1:-1:-1;;;9668:18:1;;;9661:34;9712:19;;10480:68:0;9337:400:1;10480:68:0;-1:-1:-1;;;;;10567:21:0;;10559:68;;;;-1:-1:-1;;;10559:68:0;;9944:2:1;10559:68:0;;;9926:21:1;9983:2;9963:18;;;9956:30;10022:34;10002:18;;;9995:62;-1:-1:-1;;;10073:18:1;;;10066:32;10115:19;;10559:68:0;9742:398:1;10559:68:0;-1:-1:-1;;;;;10638:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10690:32;;2992:25:1;;;10690:32:0;;2965:18:1;10690:32:0;;;;;;;10361:369;;;:::o;10739:2343::-;-1:-1:-1;;;;;10861:18:0;;10853:68;;;;-1:-1:-1;;;10853:68:0;;10347:2:1;10853:68:0;;;10329:21:1;10386:2;10366:18;;;10359:30;10425:34;10405:18;;;10398:62;-1:-1:-1;;;10476:18:1;;;10469:35;10521:19;;10853:68:0;10145:401:1;10853:68:0;-1:-1:-1;;;;;10940:16:0;;10932:64;;;;-1:-1:-1;;;10932:64:0;;10753:2:1;10932:64:0;;;10735:21:1;10792:2;10772:18;;;10765:30;10831:34;10811:18;;;10804:62;-1:-1:-1;;;10882:18:1;;;10875:33;10925:19;;10932:64:0;10551:399:1;10932:64:0;11024:1;11015:6;:10;11007:64;;;;-1:-1:-1;;;11007:64:0;;11157:2:1;11007:64:0;;;11139:21:1;11196:2;11176:18;;;11169:30;11235:34;11215:18;;;11208:62;-1:-1:-1;;;11286:18:1;;;11279:39;11335:19;;11007:64:0;10955:405:1;11007:64:0;2859:7;2886:6;-1:-1:-1;;;;;11089:15:0;;;2886:6;;11089:15;;;;:32;;-1:-1:-1;2859:7:0;2886:6;-1:-1:-1;;;;;11108:13:0;;;2886:6;;11108:13;;11089:32;11085:1265;;;11179:11;;-1:-1:-1;;;11179:11:0;;;;11174:144;;2859:7;2886:6;-1:-1:-1;;;;;11219:15:0;;;2886:6;;11219:15;11211:91;;;;-1:-1:-1;;;11211:91:0;;11567:2:1;11211:91:0;;;11549:21:1;11606:2;11586:18;;;11579:30;11645:34;11625:18;;;11618:62;11716:33;11696:18;;;11689:61;11767:19;;11211:91:0;11365:427:1;11211:91:0;11353:12;;11343:6;:22;;11335:63;;;;-1:-1:-1;;;11335:63:0;;11999:2:1;11335:63:0;;;11981:21:1;12038:2;12018:18;;;12011:30;12077;12057:18;;;12050:58;12125:18;;11335:63:0;11797:352:1;11335:63:0;-1:-1:-1;;;;;11422:10:0;;;;;;:4;:10;;;;;;;;11421:11;:24;;;;-1:-1:-1;;;;;;11437:8:0;;;;;;:4;:8;;;;;;;;11436:9;11421:24;11413:72;;;;-1:-1:-1;;;11413:72:0;;12356:2:1;11413:72:0;;;12338:21:1;12395:2;12375:18;;;12368:30;12434:34;12414:18;;;12407:62;-1:-1:-1;;;12485:18:1;;;12478:33;12528:19;;11413:72:0;12154:399:1;11413:72:0;11512:13;;-1:-1:-1;;;;;11506:19:0;;;11512:13;;11506:19;11503:146;;11579:14;;11570:6;11554:13;11564:2;11554:9;:13::i;:::-;:22;;;;:::i;:::-;:39;11546:87;;;;-1:-1:-1;;;11546:87:0;;12890:2:1;11546:87:0;;;12872:21:1;12929:2;12909:18;;;12902:30;12968:34;12948:18;;;12941:62;-1:-1:-1;;;13019:18:1;;;13012:33;13062:19;;11546:87:0;12688:399:1;11546:87:0;11666:28;11697:24;11715:4;11697:9;:24::i;:::-;11775:19;;11839:12;;11666:55;;-1:-1:-1;11751:43:0;;;;11815:36;;11812:124;;11908:12;;11885:35;;11812:124;11957:7;:18;;;;-1:-1:-1;11969:6:0;;-1:-1:-1;;;11969:6:0;;;;11968:7;11957:18;:43;;;;-1:-1:-1;11987:13:0;;-1:-1:-1;;;;;11979:21:0;;;11987:13;;11979:21;;11957:43;:58;;;;-1:-1:-1;12004:11:0;;-1:-1:-1;;;12004:11:0;;;;11957:58;:87;;;;-1:-1:-1;;;;;;12020:24:0;;;;;;:18;:24;;;;;;;;12019:25;11957:87;:114;;;;-1:-1:-1;;;;;;12049:22:0;;;;;;:18;:22;;;;;;;;12048:23;11957:114;11953:386;;;12092:38;12109:20;12092:16;:38::i;:::-;12178:21;12222:22;;12218:106;;12269:35;12282:21;12269:12;:35::i;:::-;12073:266;11953:386;11123:1227;;11085:1265;-1:-1:-1;;;;;12428:24:0;;12363:12;12428:24;;;:18;:24;;;;;;12378:4;;12428:24;;;:50;;-1:-1:-1;;;;;;12456:22:0;;;;;;:18;:22;;;;;;;;12428:50;12427:102;;;-1:-1:-1;12492:13:0;;-1:-1:-1;;;;;12484:21:0;;;12492:13;;12484:21;;;;:44;;-1:-1:-1;12515:13:0;;-1:-1:-1;;;;;12509:19:0;;;12515:13;;12509:19;;12484:44;12423:597;;;-1:-1:-1;12556:5:0;12423:597;;;12640:13;;-1:-1:-1;;;;;12632:21:0;;;12640:13;;12632:21;:55;;;;-1:-1:-1;12671:15:0;;-1:-1:-1;;;;;12657:30:0;;;12671:15;;12657:30;;12632:55;12629:162;;;12720:14;;12708:9;:26;12763:12;;12753:7;:22;12629:162;12851:13;;-1:-1:-1;;;;;12845:19:0;;;12851:13;;12845:19;:55;;;;-1:-1:-1;12884:15:0;;-1:-1:-1;;;;;12868:32:0;;;12884:15;;12868:32;;12845:55;12841:165;;;12933:15;;12921:9;:27;12977:13;;12967:7;:23;12841:165;13033:41;13048:4;13054:2;13058:6;13066:7;13033:14;:41::i;3805:224::-;3925:7;3961:12;3953:6;;;;3945:29;;;;-1:-1:-1;;;3945:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3985:9:0;3997:5;4001:1;3997;:5;:::i;:::-;3985:17;3805:224;-1:-1:-1;;;;;3805:224:0:o;13583:174::-;13640:17;;-1:-1:-1;;;;;13640:17:0;:48;13667:20;13685:1;13667:13;:6;13678:1;13667:10;:13::i;:::-;:17;;:20::i;:::-;13640:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13699:19:0;;-1:-1:-1;;;;;13699:19:0;:50;13728:20;13746:1;13728:13;:6;13739:1;13728:10;:13::i;:20::-;13699:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9673:323;9768:7;9826;;9815;:18;;9793:110;;;;-1:-1:-1;;;9793:110:0;;13427:2:1;9793:110:0;;;13409:21:1;13466:2;13446:18;;;13439:30;13505:34;13485:18;;;13478:62;-1:-1:-1;;;13556:18:1;;;13549:40;13606:19;;9793:110:0;13225:406:1;9793:110:0;9914:19;9936:10;:8;:10::i;:::-;9914:32;-1:-1:-1;9964:24:0;:7;9914:32;9964:11;:24::i;:::-;9957:31;9673:323;-1:-1:-1;;;9673:323:0:o;13091:483::-;7372:6;:13;;-1:-1:-1;;;;7372:13:0;-1:-1:-1;;;7372:13:0;;;13193:16:::1;::::0;;13207:1:::1;13193:16:::0;;;;;::::1;::::0;;-1:-1:-1;;13193:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13193:16:0::1;13169:40;;13238:4;13220;13225:1;13220:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13220:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13264:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;13264:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;13220:7;;13264:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13254:4;13259:1;13254:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13254:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;13329:15:::1;::::0;13297:62:::1;::::0;13314:4:::1;::::0;13329:15:::1;13347:11:::0;13297:8:::1;:62::i;:::-;13370:15;::::0;:196:::1;::::0;-1:-1:-1;;;13370:196:0;;-1:-1:-1;;;;;13370:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;13451:11;;13370:15:::1;::::0;13493:4;;13520::::1;::::0;13540:15:::1;::::0;13370:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;7408:6:0;:14;;-1:-1:-1;;;;7408:14:0;;;-1:-1:-1;;;;13091:483:0:o;14644:282::-;14800:7;14795:28;;14809:14;:12;:14::i;:::-;14834:44;14852:6;14860:9;14871:6;14834:17;:44::i;:::-;14894:7;14889:29;;14903:15;10291:17;;10279:9;:29;10329:15;;10319:7;:25;10235:117;4038:246;4096:7;4120:1;4125;4120:6;4116:47;;-1:-1:-1;4150:1:0;4143:8;;4116:47;4173:9;4185:5;4189:1;4185;:5;:::i;:::-;4173:17;-1:-1:-1;4218:1:0;4209:5;4213:1;4173:17;4209:5;:::i;:::-;:10;4201:56;;;;-1:-1:-1;;;4201:56:0;;15079:2:1;4201:56:0;;;15061:21:1;15118:2;15098:18;;;15091:30;15157:34;15137:18;;;15130:62;-1:-1:-1;;;15208:18:1;;;15201:31;15249:19;;4201:56:0;14877:397:1;4293:132:0;4351:7;4378:39;4382:1;4385;4378:39;;;;;;;;;;;;;;;;;:3;:39::i;17613:164::-;17655:7;17676:15;17693;17712:19;:17;:19::i;:::-;17675:56;;-1:-1:-1;17675:56:0;-1:-1:-1;17749:20:0;17675:56;;17749:11;:20::i;:::-;17742:27;;;;17613:164;:::o;10005:221::-;10052:9;;:14;:30;;;;-1:-1:-1;10070:7:0;;:12;10052:30;10048:43;;;10005:221::o;10048:43::-;10124:9;;;10104:17;:29;10162:7;;;10144:15;:25;-1:-1:-1;10183:13:0;;;;10207:11;10005:221::o;14935:610::-;15082:15;15112:23;15150:12;15177:23;15215:12;15242:13;15269:19;15280:7;15269:10;:19::i;:::-;-1:-1:-1;;;;;15317:15:0;;;;;;:7;:15;;;;;;15067:221;;-1:-1:-1;15067:221:0;;-1:-1:-1;15067:221:0;;-1:-1:-1;15067:221:0;-1:-1:-1;15067:221:0;-1:-1:-1;15067:221:0;-1:-1:-1;15317:28:0;;15067:221;15317:19;:28::i;:::-;-1:-1:-1;;;;;15299:15:0;;;;;;;:7;:15;;;;;;:46;;;;15377:18;;;;;;;:39;;15400:15;15377:22;:39::i;:::-;-1:-1:-1;;;;;15356:18:0;;;;;;:7;:18;;;;;:60;15427:16;15437:5;15427:9;:16::i;:::-;15454:23;15466:4;15472;15454:11;:23::i;:::-;15510:9;-1:-1:-1;;;;;15493:44:0;15502:6;-1:-1:-1;;;;;15493:44:0;;15521:15;15493:44;;;;2992:25:1;;2980:2;2965:18;;2846:177;15493:44:0;;;;;;;;15056:489;;;;;;14935:610;;;:::o;4434:223::-;4554:7;4589:12;4582:5;4574:28;;;;-1:-1:-1;;;4574:28:0;;;;;;;;:::i;:::-;-1:-1:-1;4613:9:0;4625:5;4629:1;4625;:5;:::i;17786:257::-;17884:7;;17837;;;;6114:17;17952:20;17884:7;6114:17;17952:11;:20::i;:::-;17942:7;:30;17938:61;;;-1:-1:-1;;17982:7:0;;;6114:17;;-1:-1:-1;17786:257:0;-1:-1:-1;17786:257:0:o;17938:61::-;18018:7;;18027;;-1:-1:-1;17786:257:0;-1:-1:-1;17786:257:0:o;15968:615::-;16068:7;16090;16112;16134;16156;16178;16214:23;16239:12;16253:13;16283:40;16295:7;16304:9;;16315:7;;16283:11;:40::i;:::-;16213:110;;;;;;16334:19;16356:10;:8;:10::i;:::-;16334:32;;16378:15;16395:23;16420:12;16449:46;16461:7;16470:4;16476:5;16483:11;16449;:46::i;:::-;16377:118;;-1:-1:-1;16377:118:0;-1:-1:-1;16377:118:0;-1:-1:-1;16546:15:0;;-1:-1:-1;16563:4:0;;-1:-1:-1;16569:5:0;;-1:-1:-1;;;;;15968:615:0;;;;;;;:::o;3660:136::-;3718:7;3745:43;3749:1;3752;3745:43;;;;;;;;;;;;;;;;;:3;:43::i;3472:179::-;3530:7;;3562:5;3566:1;3562;:5;:::i;:::-;3550:17;;3591:1;3586;:6;;3578:46;;;;-1:-1:-1;;;3578:46:0;;15481:2:1;3578:46:0;;;15463:21:1;15520:2;15500:18;;;15493:30;15559:29;15539:18;;;15532:57;15606:18;;3578:46:0;15279:351:1;15554:211:0;15607:19;15629:10;:8;:10::i;:::-;15607:32;-1:-1:-1;15650:13:0;15666:22;:5;15607:32;15666:9;:22::i;:::-;15740:4;15724:22;;;;:7;:22;;;;;;15650:38;;-1:-1:-1;15724:33:0;;15650:38;15724:26;:33::i;:::-;15715:4;15699:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;15554:211:0:o;15774:147::-;15852:7;;:17;;15864:4;15852:11;:17::i;:::-;15842:7;:27;15893:10;;:20;;15908:4;15893:14;:20::i;:::-;15880:10;:33;-1:-1:-1;;15774:147:0:o;16592:469::-;16761:7;;;;16855:30;16881:3;16855:21;:7;16867:8;16855:11;:21::i;:30::-;16840:45;-1:-1:-1;16896:13:0;16912:28;16936:3;16912:19;:7;16924:6;16912:11;:19::i;:28::-;16896:44;-1:-1:-1;16951:23:0;16977:28;16896:44;16977:17;:7;16989:4;16977:11;:17::i;:::-;:21;;:28::i;:::-;16951:54;17041:4;;-1:-1:-1;17047:5:0;;-1:-1:-1;16592:469:0;;-1:-1:-1;;;;;16592:469:0:o;17070:534::-;17264:7;;;;17361:24;:7;17373:11;17361;:24::i;:::-;17343:42;-1:-1:-1;17396:12:0;17411:21;:4;17420:11;17411:8;:21::i;:::-;17396:36;-1:-1:-1;17443:13:0;17459:22;:5;17469:11;17459:9;:22::i;:::-;17443:38;-1:-1:-1;17492:23:0;17518:28;17443:38;17518:17;:7;17530:4;17518:11;:17::i;:28::-;17565:7;;;;-1:-1:-1;17591:4:0;;-1:-1:-1;17070:534:0;;-1:-1:-1;;;;;;;17070:534:0:o;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:131;-1:-1:-1;;;;;221:31:1;;211:42;;201:70;;267:1;264;257:12;282:134;350:20;;379:31;350:20;379:31;:::i;:::-;282:134;;;:::o;421:1121::-;505:6;536:2;579;567:9;558:7;554:23;550:32;547:52;;;595:1;592;585:12;547:52;635:9;622:23;664:18;705:2;697:6;694:14;691:34;;;721:1;718;711:12;691:34;759:6;748:9;744:22;734:32;;804:7;797:4;793:2;789:13;785:27;775:55;;826:1;823;816:12;775:55;862:2;849:16;884:2;880;877:10;874:36;;;890:18;;:::i;:::-;936:2;933:1;929:10;968:2;962:9;1031:2;1027:7;1022:2;1018;1014:11;1010:25;1002:6;998:38;1086:6;1074:10;1071:22;1066:2;1054:10;1051:18;1048:46;1045:72;;;1097:18;;:::i;:::-;1133:2;1126:22;1183:18;;;1217:15;;;;-1:-1:-1;1259:11:1;;;1255:20;;;1287:19;;;1284:39;;;1319:1;1316;1309:12;1284:39;1343:11;;;;1363:148;1379:6;1374:3;1371:15;1363:148;;;1445:23;1464:3;1445:23;:::i;:::-;1433:36;;1396:12;;;;1489;;;;1363:148;;;1530:6;421:1121;-1:-1:-1;;;;;;;;421:1121:1:o;1547:548::-;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;;;1831:3;2016:1;2011:2;2002:6;1991:9;1987:22;1983:31;1976:42;2086:2;2079;2075:7;2070:2;2062:6;2058:15;2054:29;2043:9;2039:45;2035:54;2027:62;;;;1547:548;;;;:::o;2100:315::-;2168:6;2176;2229:2;2217:9;2208:7;2204:23;2200:32;2197:52;;;2245:1;2242;2235:12;2197:52;2284:9;2271:23;2303:31;2328:5;2303:31;:::i;:::-;2353:5;2405:2;2390:18;;;;2377:32;;-1:-1:-1;;;2100:315:1:o;3028:456::-;3105:6;3113;3121;3174:2;3162:9;3153:7;3149:23;3145:32;3142:52;;;3190:1;3187;3180:12;3142:52;3229:9;3216:23;3248:31;3273:5;3248:31;:::i;:::-;3298:5;-1:-1:-1;3355:2:1;3340:18;;3327:32;3368:33;3327:32;3368:33;:::i;:::-;3028:456;;3420:7;;-1:-1:-1;;;3474:2:1;3459:18;;;;3446:32;;3028:456::o;3886:247::-;3945:6;3998:2;3986:9;3977:7;3973:23;3969:32;3966:52;;;4014:1;4011;4004:12;3966:52;4053:9;4040:23;4072:31;4097:5;4072:31;:::i;4138:160::-;4203:20;;4259:13;;4252:21;4242:32;;4232:60;;4288:1;4285;4278:12;4303:180;4359:6;4412:2;4400:9;4391:7;4387:23;4383:32;4380:52;;;4428:1;4425;4418:12;4380:52;4451:26;4467:9;4451:26;:::i;4488:180::-;4547:6;4600:2;4588:9;4579:7;4575:23;4571:32;4568:52;;;4616:1;4613;4606:12;4568:52;-1:-1:-1;4639:23:1;;4488:180;-1:-1:-1;4488:180:1:o;4673:385::-;4759:6;4767;4775;4783;4836:3;4824:9;4815:7;4811:23;4807:33;4804:53;;;4853:1;4850;4843:12;4804:53;-1:-1:-1;;4876:23:1;;;4946:2;4931:18;;4918:32;;-1:-1:-1;4997:2:1;4982:18;;4969:32;;5048:2;5033:18;5020:32;;-1:-1:-1;4673:385:1;-1:-1:-1;4673:385:1:o;5063:689::-;5155:6;5163;5171;5224:2;5212:9;5203:7;5199:23;5195:32;5192:52;;;5240:1;5237;5230:12;5192:52;5280:9;5267:23;5309:18;5350:2;5342:6;5339:14;5336:34;;;5366:1;5363;5356:12;5336:34;5404:6;5393:9;5389:22;5379:32;;5449:7;5442:4;5438:2;5434:13;5430:27;5420:55;;5471:1;5468;5461:12;5420:55;5511:2;5498:16;5537:2;5529:6;5526:14;5523:34;;;5553:1;5550;5543:12;5523:34;5608:7;5601:4;5591:6;5588:1;5584:14;5580:2;5576:23;5572:34;5569:47;5566:67;;;5629:1;5626;5619:12;5566:67;5660:4;5652:13;;;;-1:-1:-1;5684:6:1;-1:-1:-1;5709:37:1;;5725:20;;;-1:-1:-1;5709:37:1;:::i;:::-;5699:47;;5063:689;;;;;:::o;5757:388::-;5825:6;5833;5886:2;5874:9;5865:7;5861:23;5857:32;5854:52;;;5902:1;5899;5892:12;5854:52;5941:9;5928:23;5960:31;5985:5;5960:31;:::i;:::-;6010:5;-1:-1:-1;6067:2:1;6052:18;;6039:32;6080:33;6039:32;6080:33;:::i;:::-;6132:7;6122:17;;;5757:388;;;;;:::o;6150:356::-;6352:2;6334:21;;;6371:18;;;6364:30;6430:34;6425:2;6410:18;;6403:62;6497:2;6482:18;;6150:356::o;6511:127::-;6572:10;6567:3;6563:20;6560:1;6553:31;6603:4;6600:1;6593:15;6627:4;6624:1;6617:15;6643:127;6704:10;6699:3;6695:20;6692:1;6685:31;6735:4;6732:1;6725:15;6759:4;6756:1;6749:15;6775:135;6814:3;6835:17;;;6832:43;;6855:18;;:::i;:::-;-1:-1:-1;6902:1:1;6891:13;;6775:135::o;6915:168::-;6988:9;;;7019;;7036:15;;;7030:22;;7016:37;7006:71;;7057:18;;:::i;7088:217::-;7128:1;7154;7144:132;;7198:10;7193:3;7189:20;7186:1;7179:31;7233:4;7230:1;7223:15;7261:4;7258:1;7251:15;7144:132;-1:-1:-1;7290:9:1;;7088:217::o;12558:125::-;12623:9;;;12644:10;;;12641:36;;;12657:18;;:::i;13092:128::-;13159:9;;;13180:11;;;13177:37;;;13194:18;;:::i;13636:251::-;13706:6;13759:2;13747:9;13738:7;13734:23;13730:32;13727:52;;;13775:1;13772;13765:12;13727:52;13807:9;13801:16;13826:31;13851:5;13826:31;:::i;13892:980::-;14154:4;14202:3;14191:9;14187:19;14233:6;14222:9;14215:25;14259:2;14297:6;14292:2;14281:9;14277:18;14270:34;14340:3;14335:2;14324:9;14320:18;14313:31;14364:6;14399;14393:13;14430:6;14422;14415:22;14468:3;14457:9;14453:19;14446:26;;14507:2;14499:6;14495:15;14481:29;;14528:1;14538:195;14552:6;14549:1;14546:13;14538:195;;;14617:13;;-1:-1:-1;;;;;14613:39:1;14601:52;;14708:15;;;;14673:12;;;;14649:1;14567:9;14538:195;;;-1:-1:-1;;;;;;;14789:32:1;;;;14784:2;14769:18;;14762:60;-1:-1:-1;;;14853:3:1;14838:19;14831:35;14750:3;13892:980;-1:-1:-1;;;13892:980:1:o

Swarm Source

ipfs://11744a516adf6a804ac3169b8cf9e5671429a2cd3adcc3088252398be0d5225f

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.