ETH Price: $2,470.66 (+0.44%)

Contract

0xf6e77F321b35de7a251Aa7F9757C502AAb4dc404
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve202545922024-07-07 12:19:5997 days ago1720354799IN
0xf6e77F32...AAb4dc404
0 ETH0.000040031.64878282
Approve186379722023-11-24 0:22:59323 days ago1700785379IN
0xf6e77F32...AAb4dc404
0 ETH0.0011442924.57350872
Approve182579012023-10-01 19:54:11376 days ago1696190051IN
0xf6e77F32...AAb4dc404
0 ETH0.000296226.40269246
Approve182091002023-09-25 0:01:59383 days ago1695600119IN
0xf6e77F32...AAb4dc404
0 ETH0.000336067.21694758
Approve181540462023-09-17 6:39:11391 days ago1694932751IN
0xf6e77F32...AAb4dc404
0 ETH0.000385238.31779224
Approve174983342023-06-17 8:27:59483 days ago1686990479IN
0xf6e77F32...AAb4dc404
0 ETH0.0006947615.00110022
Approve172507042023-05-13 11:17:35518 days ago1683976655IN
0xf6e77F32...AAb4dc404
0 ETH0.001915241.07592702
Approve172502202023-05-13 9:38:47518 days ago1683970727IN
0xf6e77F32...AAb4dc404
0 ETH0.0019241241.54520626
Approve172502042023-05-13 9:35:23518 days ago1683970523IN
0xf6e77F32...AAb4dc404
0 ETH0.0021426545.95418235
Approve172502022023-05-13 9:34:59518 days ago1683970499IN
0xf6e77F32...AAb4dc404
0 ETH0.0023384250.1529097
Approve172501962023-05-13 9:33:47518 days ago1683970427IN
0xf6e77F32...AAb4dc404
0 ETH0.0022325947.88307093
Approve172127922023-05-08 2:25:59523 days ago1683512759IN
0xf6e77F32...AAb4dc404
0 ETH0.0047409101.67938301
Approve171983332023-05-06 1:36:11525 days ago1683336971IN
0xf6e77F32...AAb4dc404
0 ETH0.00533884114.50366771
Approve171324502023-04-26 19:22:47534 days ago1682536967IN
0xf6e77F32...AAb4dc404
0 ETH0.0021052145.20927726
Approve171052362023-04-22 23:45:11538 days ago1682207111IN
0xf6e77F32...AAb4dc404
0 ETH0.0024372752.27290509
Approve171052352023-04-22 23:44:59538 days ago1682207099IN
0xf6e77F32...AAb4dc404
0 ETH0.0023247850.19614379
Approve171052302023-04-22 23:43:59538 days ago1682207039IN
0xf6e77F32...AAb4dc404
0 ETH0.0020841345
Approve170904352023-04-20 21:48:59540 days ago1682027339IN
0xf6e77F32...AAb4dc404
0 ETH0.0023664250.75337717
Approve170901242023-04-20 20:45:11540 days ago1682023511IN
0xf6e77F32...AAb4dc404
0 ETH0.0030876666.66803208
Approve170895082023-04-20 18:37:59541 days ago1682015879IN
0xf6e77F32...AAb4dc404
0 ETH0.0027375658.71335533
Approve170894622023-04-20 18:28:35541 days ago1682015315IN
0xf6e77F32...AAb4dc404
0 ETH0.0028659861.89764149
Approve170894512023-04-20 18:26:23541 days ago1682015183IN
0xf6e77F32...AAb4dc404
0 ETH0.0029426463.19309789
Approve170894492023-04-20 18:25:59541 days ago1682015159IN
0xf6e77F32...AAb4dc404
0 ETH0.001725158.4265664
Approve170894412023-04-20 18:24:23541 days ago1682015063IN
0xf6e77F32...AAb4dc404
0 ETH0.0029014362.72827774
Approve170894372023-04-20 18:23:35541 days ago1682015015IN
0xf6e77F32...AAb4dc404
0 ETH0.00307665.97194629
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
172502472023-05-13 9:44:11518 days ago1683971051
0xf6e77F32...AAb4dc404
0.00163665 ETH
172502472023-05-13 9:44:11518 days ago1683971051
0xf6e77F32...AAb4dc404
0.00163665 ETH
172502472023-05-13 9:44:11518 days ago1683971051
0xf6e77F32...AAb4dc404
0.01319845 ETH
172502472023-05-13 9:44:11518 days ago1683971051
0xf6e77F32...AAb4dc404
0.01319845 ETH
172502422023-05-13 9:43:11518 days ago1683970991
0xf6e77F32...AAb4dc404
0.00163665 ETH
172502422023-05-13 9:43:11518 days ago1683970991
0xf6e77F32...AAb4dc404
0.00163665 ETH
172502422023-05-13 9:43:11518 days ago1683970991
0xf6e77F32...AAb4dc404
0.01319845 ETH
172502422023-05-13 9:43:11518 days ago1683970991
0xf6e77F32...AAb4dc404
0.01319845 ETH
172502002023-05-13 9:34:35518 days ago1683970475
0xf6e77F32...AAb4dc404
0.00189262 ETH
172502002023-05-13 9:34:35518 days ago1683970475
0xf6e77F32...AAb4dc404
0.00189262 ETH
172502002023-05-13 9:34:35518 days ago1683970475
0xf6e77F32...AAb4dc404
0.01527869 ETH
172502002023-05-13 9:34:35518 days ago1683970475
0xf6e77F32...AAb4dc404
0.01527869 ETH
171052382023-04-22 23:45:35538 days ago1682207135
0xf6e77F32...AAb4dc404
0.00170308 ETH
171052382023-04-22 23:45:35538 days ago1682207135
0xf6e77F32...AAb4dc404
0.00170308 ETH
171052382023-04-22 23:45:35538 days ago1682207135
0xf6e77F32...AAb4dc404
0.01372579 ETH
171052382023-04-22 23:45:35538 days ago1682207135
0xf6e77F32...AAb4dc404
0.01372579 ETH
171052322023-04-22 23:44:23538 days ago1682207063
0xf6e77F32...AAb4dc404
0.00461428 ETH
171052322023-04-22 23:44:23538 days ago1682207063
0xf6e77F32...AAb4dc404
0.00461428 ETH
171052322023-04-22 23:44:23538 days ago1682207063
0xf6e77F32...AAb4dc404
0.03754239 ETH
171052322023-04-22 23:44:23538 days ago1682207063
0xf6e77F32...AAb4dc404
0.03754239 ETH
170982002023-04-22 0:05:35539 days ago1682121935
0xf6e77F32...AAb4dc404
0.00156641 ETH
170982002023-04-22 0:05:35539 days ago1682121935
0xf6e77F32...AAb4dc404
0.00156641 ETH
170982002023-04-22 0:05:35539 days ago1682121935
0xf6e77F32...AAb4dc404
0.01262408 ETH
170982002023-04-22 0:05:35539 days ago1682121935
0xf6e77F32...AAb4dc404
0.01262408 ETH
170897062023-04-20 19:18:23540 days ago1682018303
0xf6e77F32...AAb4dc404
0.0021885 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
AGI

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/*
TG: https://t.me/AGI_ETH
WEB: https://agieth.com
Twitter: https://twitter.com/AGI_ERC20
Medium: https://medium.com/@agiethereum

*/

pragma solidity ^0.8.17;

library Address{
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return payable(msg.sender);
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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);
}

interface IFactory{
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IRouter {
    function factory() external pure returns (address);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline) external;
}

contract AGI is Context, IERC20, Ownable {

    using Address for address payable;

    IRouter public router;
    address public pair;
    
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) public _isExcludedFromFee;
    mapping (address => bool) public _isExcludedFromMaxBalance;
    mapping (address => bool) public _isBlacklisted;
    mapping (address => uint256) public _dogSellTime;

    uint256 private _dogSellTimeOffset = 3;
    bool public watchdogMode = true;
    uint256 public _caughtDogs;

    uint8 private constant _decimals = 9; 
    uint256 private _tTotal = 1_000_000 * (10**_decimals);
    uint256 public swapThreshold = 5_000 * (10**_decimals); 
    uint256 public maxTxAmount = 20_000 * (10**_decimals);
    uint256 public maxWallet =  20_000 * (10**_decimals);

    string private constant _name = "Artificial General Intelligence"; 
    string private constant _symbol = "AGI";

    struct Tax{
        uint8 marketingTax;
        uint8 lpTax;
    }

    struct TokensFromTax{
        uint marketingTokens;
        uint lpTokens;
    }
    TokensFromTax public totalTokensFromTax;

    Tax public buyTax = Tax(25,1);
    Tax public sellTax = Tax(75,1);
    
    address public marketingWallet = 0xc6e6A60bA1Ce8641E50Bf9b3f6F6209c63aA1365;
    
    bool private swapping;
    uint private _swapCooldown = 5; 
    uint private _lastSwap;
    modifier lockTheSwap {
        swapping = true;
        _;
        swapping = false;
    }

    constructor () {
        _tOwned[_msgSender()] = _tTotal;
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router;
        pair = _pair;
        _approve(owner(), address(router), ~uint256(0));
        
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[marketingWallet] = true;

        _isExcludedFromMaxBalance[owner()] = true;
        _isExcludedFromMaxBalance[address(this)] = true;
        _isExcludedFromMaxBalance[pair] = true;
        _isExcludedFromMaxBalance[marketingWallet] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

// ================= ERC20 =============== //
    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 view override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[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()] - amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue);
        return true;
    }

    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);
    }
    
    receive() external payable {}
// ========================================== //

//============== Owner Functions ===========//
   
    function owner_setBlacklisted(address account, bool isBlacklisted) public onlyOwner{
        _isBlacklisted[account] = isBlacklisted;
    }
    
    function owner_setBulkIsBlacklisted(address[] memory accounts, bool state) external onlyOwner{
        for(uint256 i =0; i < accounts.length; i++){
            _isBlacklisted[accounts[i]] = state;
        }
    }

    function owner_setBuyTaxes(uint8 marketingTax, uint8 lpTax) external onlyOwner{
        uint tTax =  marketingTax + lpTax;
        require(tTax <= 30, "Can't set tax too high");
        buyTax = Tax(marketingTax,lpTax);
        emit TaxesChanged();
    }

    function owner_setSellTaxes(uint8 marketingTax, uint8 lpTax) external onlyOwner{
        uint tTax = marketingTax + lpTax;
        require(tTax <= 80, "Can't set tax too high");
        sellTax = Tax(marketingTax,lpTax);
        emit TaxesChanged();
    }
    
    function owner_setTransferMaxes(uint maxTX_EXACT, uint maxWallet_EXACT) public onlyOwner{
        uint pointFiveSupply = (_tTotal * 5 / 1000) / (10**_decimals);
        require(maxTX_EXACT >= pointFiveSupply && maxWallet_EXACT >= pointFiveSupply, "Invalid Settings");
        maxTxAmount = maxTX_EXACT * (10**_decimals);
        maxWallet = maxWallet_EXACT * (10**_decimals);
    }

    function owner_rescueETH(uint256 weiAmount) public onlyOwner{
        require(address(this).balance >= weiAmount, "Insufficient ETH balance");
        payable(msg.sender).transfer(weiAmount);
    }

    function owner_rescueExcessTokens() public{
        // Make sure ca doesn't withdraw the pending taxes to be swapped.
        // Sends excess tokens / accidentally sent tokens back to marketing wallet.
        uint pendingTaxTokens = totalTokensFromTax.lpTokens + totalTokensFromTax.marketingTokens;
        require(balanceOf(address(this)) >  pendingTaxTokens);
        uint excessTokens = balanceOf(address(this)) - pendingTaxTokens;
        _transfer(address(this), marketingWallet, excessTokens);
    }
    
    function owner_setWatchDogMode(bool status_) external onlyOwner{
        watchdogMode = status_;
    }

    function owner_setDogSellTimeForAddress(address holder, uint dTime) external onlyOwner{
        _dogSellTime[holder] = block.timestamp + dTime;
    }

// ========================================//
    
    function _getTaxValues(uint amount, address from, bool isSell) private returns(uint256){
        Tax memory tmpTaxes = buyTax;
        if (isSell){
            tmpTaxes = sellTax;
        }

        uint tokensForMarketing = amount * tmpTaxes.marketingTax / 100;
        uint tokensForLP = amount * tmpTaxes.lpTax / 100;

        if(tokensForMarketing > 0)
            totalTokensFromTax.marketingTokens += tokensForMarketing;

        if(tokensForLP > 0)
            totalTokensFromTax.lpTokens += tokensForLP;

        uint totalTaxedTokens = tokensForMarketing + tokensForLP;

        _tOwned[address(this)] += totalTaxedTokens;
        if(totalTaxedTokens > 0)
            emit Transfer (from, address(this), totalTaxedTokens);
            
        return (amount - totalTaxedTokens);
    }

    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");
        require(amount <= maxTxAmount || _isExcludedFromMaxBalance[from], "Transfer amount exceeds the _maxTxAmount.");
        require(!_isBlacklisted[from] && !_isBlacklisted[to], "Blacklisted, can't trade");

        if(!_isExcludedFromMaxBalance[to])
            require(balanceOf(to) + amount <= maxWallet, "Transfer amount exceeds the maxWallet.");
        
        if (balanceOf(address(this)) >= swapThreshold && block.timestamp >= (_lastSwap + _swapCooldown) && !swapping && from != pair && from != owner() && to != owner())
            swapAndLiquify();
          
        _tOwned[from] -= amount;
        uint256 transferAmount = amount;
        
        if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
            transferAmount = _getTaxValues(amount, from, to == pair);
            if (from == pair){
                if(watchdogMode){
                    _caughtDogs++;
                    _dogSellTime[to] = block.timestamp + _dogSellTimeOffset;
                }
            }else{
                if (_dogSellTime[from] != 0)
                    require(block.timestamp < _dogSellTime[from]); 
            }
        }

        _tOwned[to] += transferAmount;
        emit Transfer(from, to, transferAmount);
    }

    function swapAndLiquify() private lockTheSwap{
        
        if(totalTokensFromTax.marketingTokens > 0){
            uint256 ethSwapped = swapTokensForETH(totalTokensFromTax.marketingTokens);
            if(ethSwapped > 0){
                payable(marketingWallet).transfer(ethSwapped);
                totalTokensFromTax.marketingTokens = 0;
            }
        }   

        if(totalTokensFromTax.lpTokens > 0){
            uint half = totalTokensFromTax.lpTokens / 2;
            uint otherHalf = totalTokensFromTax.lpTokens - half;
            uint balAutoLP = swapTokensForETH(half);
            if (balAutoLP > 0)
                addLiquidity(otherHalf, balAutoLP);
            totalTokensFromTax.lpTokens = 0;
        }

        emit SwapAndLiquify();

        _lastSwap = block.timestamp;
    }

    function swapTokensForETH(uint256 tokenAmount) private returns (uint256) {
        uint256 initialBalance = address(this).balance;
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        _approve(address(this), address(router), tokenAmount);

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
        return (address(this).balance - initialBalance);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(router), tokenAmount);

        (,uint256 ethFromLiquidity,) = router.addLiquidityETH {value: ethAmount} (
            address(this),
            tokenAmount,
            0,
            0,
            owner(),
            block.timestamp
        );
        
        if (ethAmount - ethFromLiquidity > 0)
            payable(marketingWallet).sendValue (ethAmount - ethFromLiquidity);
    }

    event SwapAndLiquify();
    event TaxesChanged();

}

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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[],"name":"TaxesChanged","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":[],"name":"_caughtDogs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_dogSellTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromMaxBalance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"buyTax","outputs":[{"internalType":"uint8","name":"marketingTax","type":"uint8"},{"internalType":"uint8","name":"lpTax","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"owner_rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner_rescueExcessTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"isBlacklisted","type":"bool"}],"name":"owner_setBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"owner_setBulkIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"marketingTax","type":"uint8"},{"internalType":"uint8","name":"lpTax","type":"uint8"}],"name":"owner_setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"uint256","name":"dTime","type":"uint256"}],"name":"owner_setDogSellTimeForAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"marketingTax","type":"uint8"},{"internalType":"uint8","name":"lpTax","type":"uint8"}],"name":"owner_setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTX_EXACT","type":"uint256"},{"internalType":"uint256","name":"maxWallet_EXACT","type":"uint256"}],"name":"owner_setTransferMaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status_","type":"bool"}],"name":"owner_setWatchDogMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint8","name":"marketingTax","type":"uint8"},{"internalType":"uint8","name":"lpTax","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalTokensFromTax","outputs":[{"internalType":"uint256","name":"marketingTokens","type":"uint256"},{"internalType":"uint256","name":"lpTokens","type":"uint256"}],"stateMutability":"view","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":[],"name":"watchdogMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260036009908155600a805460ff19166001178155620000249190620006c5565b6200003390620f4240620006dd565b600c55620000446009600a620006c5565b6200005290611388620006dd565b600d55620000636009600a620006c5565b6200007190614e20620006dd565b600e55620000826009600a620006c5565b6200009090614e20620006dd565b600f5560408051808201825260198152600160209182018190526012805461011961ffff19918216179091558351808501909452604b845292909101526013805461014b9216919091179055601480546001600160a01b03191673c6e6a60ba1ce8641e50bf9b3f6f6209c63aa136517905560056015553480156200011457600080fd5b50620001203362000434565b600c5433600090815260036020908152604080832093909355825163c45a015560e01b81529251737a250d5630b4cf539739df2c5dacb4c659f2488d93849263c45a0155926004808401938290030181865afa15801562000185573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ab9190620006f7565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021f9190620006f7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200026d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002939190620006f7565b600180546001600160a01b038581166001600160a01b031992831617909255600280548484169216919091179055600054919250620002e291166001546001600160a01b031660001962000484565b600160056000620002fb6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260059093528183208054851660019081179091556014549091168352908220805490931681179092556006906200036b6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526006909352818320805485166001908117909155600254821684528284208054861682179055601454909116835291208054909216179055620003dc3390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c546040516200042491815260200190565b60405180910390a3505062000722565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316620004ec5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b0382166200054f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620004e3565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000607578160001904821115620005eb57620005eb620005b0565b80851615620005f957918102915b93841c9390800290620005cb565b509250929050565b6000826200062057506001620006bf565b816200062f57506000620006bf565b8160018114620006485760028114620006535762000673565b6001915050620006bf565b60ff841115620006675762000667620005b0565b50506001821b620006bf565b5060208310610133831016604e8410600b841016171562000698575081810a620006bf565b620006a48383620005c6565b8060001904821115620006bb57620006bb620005b0565b0290505b92915050565b6000620006d660ff8416836200060f565b9392505050565b8082028115828204841417620006bf57620006bf620005b0565b6000602082840312156200070a57600080fd5b81516001600160a01b0381168114620006d657600080fd5b61214280620007326000396000f3fe6080604052600436106102295760003560e01c8063768dc71011610123578063cfe9dde0116100ab578063f2fde38b1161006f578063f2fde38b1461071b578063f837ae071461073b578063f887ea401461075b578063f8b45b051461077b578063f9d0ee941461079157600080fd5b8063cfe9dde014610658578063dd62ed3e14610678578063e0a877c8146106be578063ee9a5d82146106d8578063ef07a1821461070557600080fd5b8063a457c2d7116100f2578063a457c2d7146105b5578063a8aa1b31146105d5578063a9059cbb146105f5578063cb0e6f7b14610615578063cc1776d31461063557600080fd5b8063768dc710146105255780638c0b5e22146105555780638da5cb5b1461056b57806395d89b411461058957600080fd5b8063313ce567116101b15780634f7041a5116101755780634f7041a5146104455780635966c81e1461048257806370a08231146104a2578063715018a6146104d857806375f0a874146104ed57600080fd5b8063313ce567146103b457806339509351146103d05780633c576a97146103f05780634ba422bc146104055780634cf279971461042557600080fd5b806318160ddd116101f857806318160ddd146102ff5780631b0f9381146103145780631cdd3be31461033457806323b872dd1461036457806328c61f411461038457600080fd5b80630445b6671461023557806306fdde031461025e578063095ea7b3146102ad5780630f81e11a146102dd57600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024b600d5481565b6040519081526020015b60405180910390f35b34801561026a57600080fd5b5060408051808201909152601f81527f4172746966696369616c2047656e6572616c20496e74656c6c6967656e63650060208201525b6040516102559190611b6b565b3480156102b957600080fd5b506102cd6102c8366004611bde565b6107c1565b6040519015158152602001610255565b3480156102e957600080fd5b506102fd6102f8366004611c1a565b6107d8565b005b34801561030b57600080fd5b50600c5461024b565b34801561032057600080fd5b506102fd61032f366004611c4d565b61081e565b34801561034057600080fd5b506102cd61034f366004611c80565b60076020526000908152604090205460ff1681565b34801561037057600080fd5b506102cd61037f366004611c9d565b610903565b34801561039057600080fd5b506102cd61039f366004611c80565b60066020526000908152604090205460ff1681565b3480156103c057600080fd5b5060405160098152602001610255565b3480156103dc57600080fd5b506102cd6103eb366004611bde565b610955565b3480156103fc57600080fd5b506102fd61098c565b34801561041157600080fd5b506102fd610420366004611cde565b6109f6565b34801561043157600080fd5b506102fd610440366004611bde565b610adc565b34801561045157600080fd5b506012546104689060ff8082169161010090041682565b6040805160ff938416815292909116602083015201610255565b34801561048e57600080fd5b506102fd61049d366004611d00565b610b30565b3480156104ae57600080fd5b5061024b6104bd366004611c80565b6001600160a01b031660009081526003602052604090205490565b3480156104e457600080fd5b506102fd610bd7565b3480156104f957600080fd5b5060145461050d906001600160a01b031681565b6040516001600160a01b039091168152602001610255565b34801561053157600080fd5b506102cd610540366004611c80565b60056020526000908152604090205460ff1681565b34801561056157600080fd5b5061024b600e5481565b34801561057757600080fd5b506000546001600160a01b031661050d565b34801561059557600080fd5b5060408051808201909152600381526241474960e81b60208201526102a0565b3480156105c157600080fd5b506102cd6105d0366004611bde565b610c0d565b3480156105e157600080fd5b5060025461050d906001600160a01b031681565b34801561060157600080fd5b506102cd610610366004611bde565b610c44565b34801561062157600080fd5b506102fd610630366004611c4d565b610c51565b34801561064157600080fd5b506013546104689060ff8082169161010090041682565b34801561066457600080fd5b506102fd610673366004611d2f565b610d36565b34801561068457600080fd5b5061024b610693366004611e06565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156106ca57600080fd5b50600a546102cd9060ff1681565b3480156106e457600080fd5b5061024b6106f3366004611c80565b60086020526000908152604090205481565b34801561071157600080fd5b5061024b600b5481565b34801561072757600080fd5b506102fd610736366004611c80565b610dcc565b34801561074757600080fd5b506102fd610756366004611e3f565b610e67565b34801561076757600080fd5b5060015461050d906001600160a01b031681565b34801561078757600080fd5b5061024b600f5481565b34801561079d57600080fd5b506010546011546107ac919082565b60408051928352602083019190915201610255565b60006107ce338484610ebc565b5060015b92915050565b6000546001600160a01b0316331461080b5760405162461bcd60e51b815260040161080290611e6b565b60405180910390fd5b600a805460ff1916911515919091179055565b6000546001600160a01b031633146108485760405162461bcd60e51b815260040161080290611e6b565b60006108548284611eb6565b60ff169050601e8111156108a35760405162461bcd60e51b8152602060048201526016602482015275086c2dc4ee840e6cae840e8c2f040e8dede40d0d2ced60531b6044820152606401610802565b60408051808201825260ff85811680835290851660209092018290526012805461ffff1916909117610100909202919091179055517ff305e997be174eb1fbb444c89b9f4089de693e9b3b40486accc62ae99885e48090600090a1505050565b6000610910848484610fe0565b6001600160a01b03841660009081526004602090815260408083203380855292529091205461094b918691610946908690611ecf565b610ebc565b5060019392505050565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916107ce918590610946908690611ee2565b60105460115460009161099e91611ee2565b3060009081526003602052604090205490915081106109bc57600080fd5b306000908152600360205260408120546109d7908390611ecf565b6014549091506109f29030906001600160a01b031683610fe0565b5050565b6000546001600160a01b03163314610a205760405162461bcd60e51b815260040161080290611e6b565b6000610a2e6009600a611fd9565b6103e8600c546005610a409190611fe8565b610a4a9190611fff565b610a549190611fff565b9050808310158015610a665750808210155b610aa55760405162461bcd60e51b815260206004820152601060248201526f496e76616c69642053657474696e677360801b6044820152606401610802565b610ab16009600a611fd9565b610abb9084611fe8565b600e55610aca6009600a611fd9565b610ad49083611fe8565b600f55505050565b6000546001600160a01b03163314610b065760405162461bcd60e51b815260040161080290611e6b565b610b108142611ee2565b6001600160a01b0390921660009081526008602052604090209190915550565b6000546001600160a01b03163314610b5a5760405162461bcd60e51b815260040161080290611e6b565b80471015610baa5760405162461bcd60e51b815260206004820152601860248201527f496e73756666696369656e74204554482062616c616e636500000000000000006044820152606401610802565b604051339082156108fc029083906000818181858888f193505050501580156109f2573d6000803e3d6000fd5b6000546001600160a01b03163314610c015760405162461bcd60e51b815260040161080290611e6b565b610c0b6000611525565b565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916107ce918590610946908690611ecf565b60006107ce338484610fe0565b6000546001600160a01b03163314610c7b5760405162461bcd60e51b815260040161080290611e6b565b6000610c878284611eb6565b60ff1690506050811115610cd65760405162461bcd60e51b8152602060048201526016602482015275086c2dc4ee840e6cae840e8c2f040e8dede40d0d2ced60531b6044820152606401610802565b60408051808201825260ff85811680835290851660209092018290526013805461ffff1916909117610100909202919091179055517ff305e997be174eb1fbb444c89b9f4089de693e9b3b40486accc62ae99885e48090600090a1505050565b6000546001600160a01b03163314610d605760405162461bcd60e51b815260040161080290611e6b565b60005b8251811015610dc7578160076000858481518110610d8357610d83612021565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610dbf81612037565b915050610d63565b505050565b6000546001600160a01b03163314610df65760405162461bcd60e51b815260040161080290611e6b565b6001600160a01b038116610e5b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610802565b610e6481611525565b50565b6000546001600160a01b03163314610e915760405162461bcd60e51b815260040161080290611e6b565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6001600160a01b038316610f1e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610802565b6001600160a01b038216610f7f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610802565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110445760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610802565b6001600160a01b0382166110a65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610802565b600081116111085760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610802565b600e548111158061113157506001600160a01b03831660009081526006602052604090205460ff165b61118f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206578636565647320746865205f6d61786044820152682a3c20b6b7bab73a1760b91b6064820152608401610802565b6001600160a01b03831660009081526007602052604090205460ff161580156111d157506001600160a01b03821660009081526007602052604090205460ff16155b61121d5760405162461bcd60e51b815260206004820152601860248201527f426c61636b6c69737465642c2063616e277420747261646500000000000000006044820152606401610802565b6001600160a01b03821660009081526006602052604090205460ff166112c757600f5481611260846001600160a01b031660009081526003602052604090205490565b61126a9190611ee2565b11156112c75760405162461bcd60e51b815260206004820152602660248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526530b63632ba1760d11b6064820152608401610802565b600d5430600090815260036020526040902054101580156112f757506015546016546112f39190611ee2565b4210155b801561130d5750601454600160a01b900460ff16155b801561132757506002546001600160a01b03848116911614155b801561134157506000546001600160a01b03848116911614155b801561135b57506000546001600160a01b03838116911614155b1561136857611368611575565b6001600160a01b03831660009081526003602052604081208054839290611390908490611ecf565b90915550506001600160a01b038316600090815260056020526040902054819060ff161580156113d957506001600160a01b03831660009081526005602052604090205460ff16155b156114a3576002546113fc90839086906001600160a01b0387811691161461167e565b6002549091506001600160a01b039081169085160361146157600a5460ff161561145c57600b805490600061143083612037565b90915550506009546114429042611ee2565b6001600160a01b0384166000908152600860205260409020555b6114a3565b6001600160a01b038416600090815260086020526040902054156114a3576001600160a01b03841660009081526008602052604090205442106114a357600080fd5b6001600160a01b038316600090815260036020526040812080548392906114cb908490611ee2565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161151791815260200190565b60405180910390a350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6014805460ff60a01b1916600160a01b179055601054156115eb5760006115a06010600001546117e1565b905080156115e9576014546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156115e2573d6000803e3d6000fd5b5060006010555b505b601154156116425760115460009061160590600290611fff565b905060008160106001015461161a9190611ecf565b90506000611627836117e1565b90508015611639576116398282611951565b50506000601155505b6040517fd9f20192eafa060dc85f5f8b3b0a5b9c106b02d5d1503335b857e50c2bb7003090600090a1426016556014805460ff60a01b19169055565b6040805180820190915260125460ff808216835261010090910416602082015260009082156116c957506040805180820190915260135460ff80821683526101009091041660208201525b80516000906064906116de9060ff1688611fe8565b6116e89190611fff565b905060006064836020015160ff16886117019190611fe8565b61170b9190611fff565b9050811561172e5781601060000160008282546117289190611ee2565b90915550505b801561174f5780601060010160008282546117499190611ee2565b90915550505b600061175b8284611ee2565b3060009081526003602052604081208054929350839290919061177f908490611ee2565b909155505080156117cb5760405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b6117d58189611ecf565b98975050505050505050565b604080516002808252606082018352600092479284929091602083019080368337019050509050308160008151811061181c5761181c612021565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611875573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118999190612050565b816001815181106118ac576118ac612021565b6001600160a01b0392831660209182029290920101526001546118d29130911686610ebc565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac9479061190b90879060009086903090429060040161206d565b600060405180830381600087803b15801561192557600080fd5b505af1158015611939573d6000803e3d6000fd5b5050505081476119499190611ecf565b949350505050565b6001546119699030906001600160a01b031684610ebc565b6001546000906001600160a01b031663f305d71983308685806119946000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156119fc573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a2191906120de565b50915060009050611a328284611ecf565b1115610dc757610dc7611a458284611ecf565b6014546001600160a01b03169080471015611aa25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610802565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611aef576040519150601f19603f3d011682016040523d82523d6000602084013e611af4565b606091505b5050905080610dc75760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610802565b600060208083528351808285015260005b81811015611b9857858101830151858201604001528201611b7c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610e6457600080fd5b8035611bd981611bb9565b919050565b60008060408385031215611bf157600080fd5b8235611bfc81611bb9565b946020939093013593505050565b80358015158114611bd957600080fd5b600060208284031215611c2c57600080fd5b611c3582611c0a565b9392505050565b803560ff81168114611bd957600080fd5b60008060408385031215611c6057600080fd5b611c6983611c3c565b9150611c7760208401611c3c565b90509250929050565b600060208284031215611c9257600080fd5b8135611c3581611bb9565b600080600060608486031215611cb257600080fd5b8335611cbd81611bb9565b92506020840135611ccd81611bb9565b929592945050506040919091013590565b60008060408385031215611cf157600080fd5b50508035926020909101359150565b600060208284031215611d1257600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215611d4257600080fd5b823567ffffffffffffffff80821115611d5a57600080fd5b818501915085601f830112611d6e57600080fd5b8135602082821115611d8257611d82611d19565b8160051b604051601f19603f83011681018181108682111715611da757611da7611d19565b604052928352818301935084810182019289841115611dc557600080fd5b948201945b83861015611dea57611ddb86611bce565b85529482019493820193611dca565b9650611df99050878201611c0a565b9450505050509250929050565b60008060408385031215611e1957600080fd5b8235611e2481611bb9565b91506020830135611e3481611bb9565b809150509250929050565b60008060408385031215611e5257600080fd5b8235611e5d81611bb9565b9150611c7760208401611c0a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60ff81811683821601908111156107d2576107d2611ea0565b818103818111156107d2576107d2611ea0565b808201808211156107d2576107d2611ea0565b600181815b80851115611f30578160001904821115611f1657611f16611ea0565b80851615611f2357918102915b93841c9390800290611efa565b509250929050565b600082611f47575060016107d2565b81611f54575060006107d2565b8160018114611f6a5760028114611f7457611f90565b60019150506107d2565b60ff841115611f8557611f85611ea0565b50506001821b6107d2565b5060208310610133831016604e8410600b8410161715611fb3575081810a6107d2565b611fbd8383611ef5565b8060001904821115611fd157611fd1611ea0565b029392505050565b6000611c3560ff841683611f38565b80820281158282048414176107d2576107d2611ea0565b60008261201c57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006001820161204957612049611ea0565b5060010190565b60006020828403121561206257600080fd5b8151611c3581611bb9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120bd5784516001600160a01b031683529383019391830191600101612098565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156120f357600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212202c3a175d374275dcc51888ab2f09a479db9d1ad08f2628b302e87192e2aeb0e264736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102295760003560e01c8063768dc71011610123578063cfe9dde0116100ab578063f2fde38b1161006f578063f2fde38b1461071b578063f837ae071461073b578063f887ea401461075b578063f8b45b051461077b578063f9d0ee941461079157600080fd5b8063cfe9dde014610658578063dd62ed3e14610678578063e0a877c8146106be578063ee9a5d82146106d8578063ef07a1821461070557600080fd5b8063a457c2d7116100f2578063a457c2d7146105b5578063a8aa1b31146105d5578063a9059cbb146105f5578063cb0e6f7b14610615578063cc1776d31461063557600080fd5b8063768dc710146105255780638c0b5e22146105555780638da5cb5b1461056b57806395d89b411461058957600080fd5b8063313ce567116101b15780634f7041a5116101755780634f7041a5146104455780635966c81e1461048257806370a08231146104a2578063715018a6146104d857806375f0a874146104ed57600080fd5b8063313ce567146103b457806339509351146103d05780633c576a97146103f05780634ba422bc146104055780634cf279971461042557600080fd5b806318160ddd116101f857806318160ddd146102ff5780631b0f9381146103145780631cdd3be31461033457806323b872dd1461036457806328c61f411461038457600080fd5b80630445b6671461023557806306fdde031461025e578063095ea7b3146102ad5780630f81e11a146102dd57600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024b600d5481565b6040519081526020015b60405180910390f35b34801561026a57600080fd5b5060408051808201909152601f81527f4172746966696369616c2047656e6572616c20496e74656c6c6967656e63650060208201525b6040516102559190611b6b565b3480156102b957600080fd5b506102cd6102c8366004611bde565b6107c1565b6040519015158152602001610255565b3480156102e957600080fd5b506102fd6102f8366004611c1a565b6107d8565b005b34801561030b57600080fd5b50600c5461024b565b34801561032057600080fd5b506102fd61032f366004611c4d565b61081e565b34801561034057600080fd5b506102cd61034f366004611c80565b60076020526000908152604090205460ff1681565b34801561037057600080fd5b506102cd61037f366004611c9d565b610903565b34801561039057600080fd5b506102cd61039f366004611c80565b60066020526000908152604090205460ff1681565b3480156103c057600080fd5b5060405160098152602001610255565b3480156103dc57600080fd5b506102cd6103eb366004611bde565b610955565b3480156103fc57600080fd5b506102fd61098c565b34801561041157600080fd5b506102fd610420366004611cde565b6109f6565b34801561043157600080fd5b506102fd610440366004611bde565b610adc565b34801561045157600080fd5b506012546104689060ff8082169161010090041682565b6040805160ff938416815292909116602083015201610255565b34801561048e57600080fd5b506102fd61049d366004611d00565b610b30565b3480156104ae57600080fd5b5061024b6104bd366004611c80565b6001600160a01b031660009081526003602052604090205490565b3480156104e457600080fd5b506102fd610bd7565b3480156104f957600080fd5b5060145461050d906001600160a01b031681565b6040516001600160a01b039091168152602001610255565b34801561053157600080fd5b506102cd610540366004611c80565b60056020526000908152604090205460ff1681565b34801561056157600080fd5b5061024b600e5481565b34801561057757600080fd5b506000546001600160a01b031661050d565b34801561059557600080fd5b5060408051808201909152600381526241474960e81b60208201526102a0565b3480156105c157600080fd5b506102cd6105d0366004611bde565b610c0d565b3480156105e157600080fd5b5060025461050d906001600160a01b031681565b34801561060157600080fd5b506102cd610610366004611bde565b610c44565b34801561062157600080fd5b506102fd610630366004611c4d565b610c51565b34801561064157600080fd5b506013546104689060ff8082169161010090041682565b34801561066457600080fd5b506102fd610673366004611d2f565b610d36565b34801561068457600080fd5b5061024b610693366004611e06565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156106ca57600080fd5b50600a546102cd9060ff1681565b3480156106e457600080fd5b5061024b6106f3366004611c80565b60086020526000908152604090205481565b34801561071157600080fd5b5061024b600b5481565b34801561072757600080fd5b506102fd610736366004611c80565b610dcc565b34801561074757600080fd5b506102fd610756366004611e3f565b610e67565b34801561076757600080fd5b5060015461050d906001600160a01b031681565b34801561078757600080fd5b5061024b600f5481565b34801561079d57600080fd5b506010546011546107ac919082565b60408051928352602083019190915201610255565b60006107ce338484610ebc565b5060015b92915050565b6000546001600160a01b0316331461080b5760405162461bcd60e51b815260040161080290611e6b565b60405180910390fd5b600a805460ff1916911515919091179055565b6000546001600160a01b031633146108485760405162461bcd60e51b815260040161080290611e6b565b60006108548284611eb6565b60ff169050601e8111156108a35760405162461bcd60e51b8152602060048201526016602482015275086c2dc4ee840e6cae840e8c2f040e8dede40d0d2ced60531b6044820152606401610802565b60408051808201825260ff85811680835290851660209092018290526012805461ffff1916909117610100909202919091179055517ff305e997be174eb1fbb444c89b9f4089de693e9b3b40486accc62ae99885e48090600090a1505050565b6000610910848484610fe0565b6001600160a01b03841660009081526004602090815260408083203380855292529091205461094b918691610946908690611ecf565b610ebc565b5060019392505050565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916107ce918590610946908690611ee2565b60105460115460009161099e91611ee2565b3060009081526003602052604090205490915081106109bc57600080fd5b306000908152600360205260408120546109d7908390611ecf565b6014549091506109f29030906001600160a01b031683610fe0565b5050565b6000546001600160a01b03163314610a205760405162461bcd60e51b815260040161080290611e6b565b6000610a2e6009600a611fd9565b6103e8600c546005610a409190611fe8565b610a4a9190611fff565b610a549190611fff565b9050808310158015610a665750808210155b610aa55760405162461bcd60e51b815260206004820152601060248201526f496e76616c69642053657474696e677360801b6044820152606401610802565b610ab16009600a611fd9565b610abb9084611fe8565b600e55610aca6009600a611fd9565b610ad49083611fe8565b600f55505050565b6000546001600160a01b03163314610b065760405162461bcd60e51b815260040161080290611e6b565b610b108142611ee2565b6001600160a01b0390921660009081526008602052604090209190915550565b6000546001600160a01b03163314610b5a5760405162461bcd60e51b815260040161080290611e6b565b80471015610baa5760405162461bcd60e51b815260206004820152601860248201527f496e73756666696369656e74204554482062616c616e636500000000000000006044820152606401610802565b604051339082156108fc029083906000818181858888f193505050501580156109f2573d6000803e3d6000fd5b6000546001600160a01b03163314610c015760405162461bcd60e51b815260040161080290611e6b565b610c0b6000611525565b565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916107ce918590610946908690611ecf565b60006107ce338484610fe0565b6000546001600160a01b03163314610c7b5760405162461bcd60e51b815260040161080290611e6b565b6000610c878284611eb6565b60ff1690506050811115610cd65760405162461bcd60e51b8152602060048201526016602482015275086c2dc4ee840e6cae840e8c2f040e8dede40d0d2ced60531b6044820152606401610802565b60408051808201825260ff85811680835290851660209092018290526013805461ffff1916909117610100909202919091179055517ff305e997be174eb1fbb444c89b9f4089de693e9b3b40486accc62ae99885e48090600090a1505050565b6000546001600160a01b03163314610d605760405162461bcd60e51b815260040161080290611e6b565b60005b8251811015610dc7578160076000858481518110610d8357610d83612021565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610dbf81612037565b915050610d63565b505050565b6000546001600160a01b03163314610df65760405162461bcd60e51b815260040161080290611e6b565b6001600160a01b038116610e5b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610802565b610e6481611525565b50565b6000546001600160a01b03163314610e915760405162461bcd60e51b815260040161080290611e6b565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6001600160a01b038316610f1e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610802565b6001600160a01b038216610f7f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610802565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110445760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610802565b6001600160a01b0382166110a65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610802565b600081116111085760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610802565b600e548111158061113157506001600160a01b03831660009081526006602052604090205460ff165b61118f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206578636565647320746865205f6d61786044820152682a3c20b6b7bab73a1760b91b6064820152608401610802565b6001600160a01b03831660009081526007602052604090205460ff161580156111d157506001600160a01b03821660009081526007602052604090205460ff16155b61121d5760405162461bcd60e51b815260206004820152601860248201527f426c61636b6c69737465642c2063616e277420747261646500000000000000006044820152606401610802565b6001600160a01b03821660009081526006602052604090205460ff166112c757600f5481611260846001600160a01b031660009081526003602052604090205490565b61126a9190611ee2565b11156112c75760405162461bcd60e51b815260206004820152602660248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526530b63632ba1760d11b6064820152608401610802565b600d5430600090815260036020526040902054101580156112f757506015546016546112f39190611ee2565b4210155b801561130d5750601454600160a01b900460ff16155b801561132757506002546001600160a01b03848116911614155b801561134157506000546001600160a01b03848116911614155b801561135b57506000546001600160a01b03838116911614155b1561136857611368611575565b6001600160a01b03831660009081526003602052604081208054839290611390908490611ecf565b90915550506001600160a01b038316600090815260056020526040902054819060ff161580156113d957506001600160a01b03831660009081526005602052604090205460ff16155b156114a3576002546113fc90839086906001600160a01b0387811691161461167e565b6002549091506001600160a01b039081169085160361146157600a5460ff161561145c57600b805490600061143083612037565b90915550506009546114429042611ee2565b6001600160a01b0384166000908152600860205260409020555b6114a3565b6001600160a01b038416600090815260086020526040902054156114a3576001600160a01b03841660009081526008602052604090205442106114a357600080fd5b6001600160a01b038316600090815260036020526040812080548392906114cb908490611ee2565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161151791815260200190565b60405180910390a350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6014805460ff60a01b1916600160a01b179055601054156115eb5760006115a06010600001546117e1565b905080156115e9576014546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156115e2573d6000803e3d6000fd5b5060006010555b505b601154156116425760115460009061160590600290611fff565b905060008160106001015461161a9190611ecf565b90506000611627836117e1565b90508015611639576116398282611951565b50506000601155505b6040517fd9f20192eafa060dc85f5f8b3b0a5b9c106b02d5d1503335b857e50c2bb7003090600090a1426016556014805460ff60a01b19169055565b6040805180820190915260125460ff808216835261010090910416602082015260009082156116c957506040805180820190915260135460ff80821683526101009091041660208201525b80516000906064906116de9060ff1688611fe8565b6116e89190611fff565b905060006064836020015160ff16886117019190611fe8565b61170b9190611fff565b9050811561172e5781601060000160008282546117289190611ee2565b90915550505b801561174f5780601060010160008282546117499190611ee2565b90915550505b600061175b8284611ee2565b3060009081526003602052604081208054929350839290919061177f908490611ee2565b909155505080156117cb5760405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b6117d58189611ecf565b98975050505050505050565b604080516002808252606082018352600092479284929091602083019080368337019050509050308160008151811061181c5761181c612021565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611875573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118999190612050565b816001815181106118ac576118ac612021565b6001600160a01b0392831660209182029290920101526001546118d29130911686610ebc565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac9479061190b90879060009086903090429060040161206d565b600060405180830381600087803b15801561192557600080fd5b505af1158015611939573d6000803e3d6000fd5b5050505081476119499190611ecf565b949350505050565b6001546119699030906001600160a01b031684610ebc565b6001546000906001600160a01b031663f305d71983308685806119946000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156119fc573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a2191906120de565b50915060009050611a328284611ecf565b1115610dc757610dc7611a458284611ecf565b6014546001600160a01b03169080471015611aa25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610802565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611aef576040519150601f19603f3d011682016040523d82523d6000602084013e611af4565b606091505b5050905080610dc75760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610802565b600060208083528351808285015260005b81811015611b9857858101830151858201604001528201611b7c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610e6457600080fd5b8035611bd981611bb9565b919050565b60008060408385031215611bf157600080fd5b8235611bfc81611bb9565b946020939093013593505050565b80358015158114611bd957600080fd5b600060208284031215611c2c57600080fd5b611c3582611c0a565b9392505050565b803560ff81168114611bd957600080fd5b60008060408385031215611c6057600080fd5b611c6983611c3c565b9150611c7760208401611c3c565b90509250929050565b600060208284031215611c9257600080fd5b8135611c3581611bb9565b600080600060608486031215611cb257600080fd5b8335611cbd81611bb9565b92506020840135611ccd81611bb9565b929592945050506040919091013590565b60008060408385031215611cf157600080fd5b50508035926020909101359150565b600060208284031215611d1257600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215611d4257600080fd5b823567ffffffffffffffff80821115611d5a57600080fd5b818501915085601f830112611d6e57600080fd5b8135602082821115611d8257611d82611d19565b8160051b604051601f19603f83011681018181108682111715611da757611da7611d19565b604052928352818301935084810182019289841115611dc557600080fd5b948201945b83861015611dea57611ddb86611bce565b85529482019493820193611dca565b9650611df99050878201611c0a565b9450505050509250929050565b60008060408385031215611e1957600080fd5b8235611e2481611bb9565b91506020830135611e3481611bb9565b809150509250929050565b60008060408385031215611e5257600080fd5b8235611e5d81611bb9565b9150611c7760208401611c0a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60ff81811683821601908111156107d2576107d2611ea0565b818103818111156107d2576107d2611ea0565b808201808211156107d2576107d2611ea0565b600181815b80851115611f30578160001904821115611f1657611f16611ea0565b80851615611f2357918102915b93841c9390800290611efa565b509250929050565b600082611f47575060016107d2565b81611f54575060006107d2565b8160018114611f6a5760028114611f7457611f90565b60019150506107d2565b60ff841115611f8557611f85611ea0565b50506001821b6107d2565b5060208310610133831016604e8410600b8410161715611fb3575081810a6107d2565b611fbd8383611ef5565b8060001904821115611fd157611fd1611ea0565b029392505050565b6000611c3560ff841683611f38565b80820281158282048414176107d2576107d2611ea0565b60008261201c57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006001820161204957612049611ea0565b5060010190565b60006020828403121561206257600080fd5b8151611c3581611bb9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120bd5784516001600160a01b031683529383019391830191600101612098565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156120f357600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212202c3a175d374275dcc51888ab2f09a479db9d1ad08f2628b302e87192e2aeb0e264736f6c63430008110033

Deployed Bytecode Sourcemap

3297:11456:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4034:54;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;4034:54:0;;;;;;;;5769:83;;;;;;;;;;-1:-1:-1;5839:5:0;;;;;;;;;;;;;;;;;5769:83;;;;;;;:::i;6600:161::-;;;;;;;;;;-1:-1:-1;6600:161:0;;;;;:::i;:::-;;:::i;:::-;;;1509:14:1;;1502:22;1484:41;;1472:2;1457:18;6600:161:0;1344:187:1;10029:104:0;;;;;;;;;;-1:-1:-1;10029:104:0;;;;;:::i;:::-;;:::i;:::-;;6046:95;;;;;;;;;;-1:-1:-1;6126:7:0;;6046:95;;8363:259;;;;;;;;;;-1:-1:-1;8363:259:0;;;;;:::i;:::-;;:::i;3701:47::-;;;;;;;;;;-1:-1:-1;3701:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6769:266;;;;;;;;;;-1:-1:-1;6769:266:0;;;;;:::i;:::-;;:::i;3636:58::-;;;;;;;;;;-1:-1:-1;3636:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5955:83;;;;;;;;;;-1:-1:-1;5955:83:0;;3965:1;3159:36:1;;3147:2;3132:18;5955:83:0;3017:184:1;7043:215:0;;;;;;;;;;-1:-1:-1;7043:215:0;;;;;:::i;:::-;;:::i;9504:513::-;;;;;;;;;;;;;:::i;8902:386::-;;;;;;;;;;-1:-1:-1;8902:386:0;;;;;:::i;:::-;;:::i;10141:151::-;;;;;;;;;;-1:-1:-1;10141:151:0;;;;;:::i;:::-;;:::i;4552:29::-;;;;;;;;;;-1:-1:-1;4552:29:0;;;;;;;;;;;;;;;;;;;3655:4:1;3643:17;;;3625:36;;3697:17;;;;3692:2;3677:18;;3670:45;3598:18;4552:29:0;3459:262:1;9296:200:0;;;;;;;;;;-1:-1:-1;9296:200:0;;;;;:::i;:::-;;:::i;6149:117::-;;;;;;;;;;-1:-1:-1;6149:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;6242:16:0;6215:7;6242:16;;;:7;:16;;;;;;;6149:117;1284:94;;;;;;;;;;;;;:::i;4631:75::-;;;;;;;;;;-1:-1:-1;4631:75:0;;;;-1:-1:-1;;;;;4631:75:0;;;;;;-1:-1:-1;;;;;4075:32:1;;;4057:51;;4045:2;4030:18;4631:75:0;3911:203:1;3578:51:0;;;;;;;;;;-1:-1:-1;3578:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4096:53;;;;;;;;;;;;;;;;1061:87;;;;;;;;;;-1:-1:-1;1107:7:0;1134:6;-1:-1:-1;;;;;1134:6:0;1061:87;;5860;;;;;;;;;;-1:-1:-1;5932:7:0;;;;;;;;;;;;-1:-1:-1;;;5932:7:0;;;;5860:87;;7266:225;;;;;;;;;;-1:-1:-1;7266:225:0;;;;;:::i;:::-;;:::i;3417:19::-;;;;;;;;;;-1:-1:-1;3417:19:0;;;;-1:-1:-1;;;;;3417:19:0;;;6274:167;;;;;;;;;;-1:-1:-1;6274:167:0;;;;;:::i;:::-;;:::i;8630:260::-;;;;;;;;;;-1:-1:-1;8630:260:0;;;;;:::i;:::-;;:::i;4588:30::-;;;;;;;;;;-1:-1:-1;4588:30:0;;;;;;;;;;;;;;;8139:216;;;;;;;;;;-1:-1:-1;8139:216:0;;;;;:::i;:::-;;:::i;6449:143::-;;;;;;;;;;-1:-1:-1;6449:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6557:18:0;;;6530:7;6557:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6449:143;3857:31;;;;;;;;;;-1:-1:-1;3857:31:0;;;;;;;;3755:48;;;;;;;;;;-1:-1:-1;3755:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;3895:26;;;;;;;;;;;;;;;;1386:192;;;;;;;;;;-1:-1:-1;1386:192:0;;;;;:::i;:::-;;:::i;7986:141::-;;;;;;;;;;-1:-1:-1;7986:141:0;;;;;:::i;:::-;;:::i;3389:21::-;;;;;;;;;;-1:-1:-1;3389:21:0;;;;-1:-1:-1;;;;;3389:21:0;;;4156:52;;;;;;;;;;;;;;;;4504:39;;;;;;;;;;-1:-1:-1;4504:39:0;;;;;;;;;;;;;6557:25:1;;;6613:2;6598:18;;6591:34;;;;6530:18;4504:39:0;6383:248:1;6600:161:0;6675:4;6692:39;682:10;6715:7;6724:6;6692:8;:39::i;:::-;-1:-1:-1;6749:4:0;6600:161;;;;;:::o;10029:104::-;1107:7;1134:6;-1:-1:-1;;;;;1134:6:0;682:10;1196:23;1188:68;;;;-1:-1:-1;;;1188:68:0;;;;;;;:::i;:::-;;;;;;;;;10103:12:::1;:22:::0;;-1:-1:-1;;10103:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10029:104::o;8363:259::-;1107:7;1134:6;-1:-1:-1;;;;;1134:6:0;682:10;1196:23;1188:68;;;;-1:-1:-1;;;1188:68:0;;;;;;;:::i;:::-;8452:9:::1;8465:20;8480:5:::0;8465:12;:20:::1;:::i;:::-;8452:33;;;;8512:2;8504:4;:10;;8496:45;;;::::0;-1:-1:-1;;;8496:45:0;;7484:2:1;8496:45:0::1;::::0;::::1;7466:21:1::0;7523:2;7503:18;;;7496:30;-1:-1:-1;;;7542:18:1;;;7535:52;7604:18;;8496:45:0::1;7282:346:1::0;8496:45:0::1;8561:23;::::0;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;::::1;;::::0;;::::1;::::0;;;8552:6:::1;:32:::0;;-1:-1:-1;;8552:32:0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;8600:14;::::1;::::0;-1:-1:-1;;8600:14:0::1;8441:181;8363:259:::0;;:::o;6769:266::-;6867:4;6884:36;6894:6;6902:9;6913:6;6884:9;:36::i;:::-;-1:-1:-1;;;;;6962:19:0;;;;;;:11;:19;;;;;;;;682:10;6962:33;;;;;;;;;6931:74;;6940:6;;6962:42;;6998:6;;6962:42;:::i;:::-;6931:8;:74::i;:::-;-1:-1:-1;7023:4:0;6769:266;;;;;:::o;7043:215::-;682:10;7131:4;7180:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7180:34:0;;;;;;;;;;7131:4;;7148:80;;7171:7;;7180:47;;7217:10;;7180:47;:::i;9504:513::-;9771:18;:34;9741:27;;9717:21;;9741:64;;;:::i;:::-;9842:4;6215:7;6242:16;;;:7;:16;;;;;;9717:88;;-1:-1:-1;9717:88:0;-1:-1:-1;9816:53:0;;;;;;9918:4;9880:17;6242:16;;;:7;:16;;;;;;9900:43;;9927:16;;9900:43;:::i;:::-;9979:15;;9880:63;;-1:-1:-1;9954:55:0;;9972:4;;-1:-1:-1;;;;;9979:15:0;9880:63;9954:9;:55::i;:::-;9546:471;;9504:513::o;8902:386::-;1107:7;1134:6;-1:-1:-1;;;;;1134:6:0;682:10;1196:23;1188:68;;;;-1:-1:-1;;;1188:68:0;;;;;;;:::i;:::-;9001:20:::1;9048:13;3965:1;9048:2;:13;:::i;:::-;9039:4;9025:7;;9035:1;9025:11;;;;:::i;:::-;:18;;;;:::i;:::-;9024:38;;;;:::i;:::-;9001:61;;9096:15;9081:11;:30;;:68;;;;;9134:15;9115;:34;;9081:68;9073:97;;;::::0;-1:-1:-1;;;9073:97:0;;9876:2:1;9073:97:0::1;::::0;::::1;9858:21:1::0;9915:2;9895:18;;;9888:30;-1:-1:-1;;;9934:18:1;;;9927:46;9990:18;;9073:97:0::1;9674:340:1::0;9073:97:0::1;9210:13;3965:1;9210:2;:13;:::i;:::-;9195:29;::::0;:11;:29:::1;:::i;:::-;9181:11;:43:::0;9266:13:::1;3965:1;9266:2;:13;:::i;:::-;9247:33;::::0;:15;:33:::1;:::i;:::-;9235:9;:45:::0;-1:-1:-1;;;8902:386:0:o;10141:151::-;1107:7;1134:6;-1:-1:-1;;;;;1134:6:0;682:10;1196:23;1188:68;;;;-1:-1:-1;;;1188:68:0;;;;;;;:::i;:::-;10261:23:::1;10279:5:::0;10261:15:::1;:23;:::i;:::-;-1:-1:-1::0;;;;;10238:20:0;;::::1;;::::0;;;:12:::1;:20;::::0;;;;:46;;;;-1:-1:-1;10141:151:0:o;9296:200::-;1107:7;1134:6;-1:-1:-1;;;;;1134:6:0;682:10;1196:23;1188:68;;;;-1:-1:-1;;;1188:68:0;;;;;;;:::i;:::-;9400:9:::1;9375:21;:34;;9367:71;;;::::0;-1:-1:-1;;;9367:71:0;;10221:2:1;9367:71:0::1;::::0;::::1;10203:21:1::0;10260:2;10240:18;;;10233:30;10299:26;10279:18;;;10272:54;10343:18;;9367:71:0::1;10019:348:1::0;9367:71:0::1;9449:39;::::0;9457:10:::1;::::0;9449:39;::::1;;;::::0;9478:9;;9449:39:::1;::::0;;;9478:9;9457:10;9449:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;1284:94:::0;1107:7;1134:6;-1:-1:-1;;;;;1134:6:0;682:10;1196:23;1188:68;;;;-1:-1:-1;;;1188:68:0;;;;;;;:::i;:::-;1349:21:::1;1367:1;1349:9;:21::i;:::-;1284:94::o:0;7266:225::-;682:10;7359:4;7408:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7408:34:0;;;;;;;;;;7359:4;;7376:85;;7399:7;;7408:52;;7445:15;;7408:52;:::i;6274:167::-;6352:4;6369:42;682:10;6393:9;6404:6;6369:9;:42::i;8630:260::-;1107:7;1134:6;-1:-1:-1;;;;;1134:6:0;682:10;1196:23;1188:68;;;;-1:-1:-1;;;1188:68:0;;;;;;;:::i;:::-;8720:9:::1;8732:20;8747:5:::0;8732:12;:20:::1;:::i;:::-;8720:32;;;;8779:2;8771:4;:10;;8763:45;;;::::0;-1:-1:-1;;;8763:45:0;;7484:2:1;8763:45:0::1;::::0;::::1;7466:21:1::0;7523:2;7503:18;;;7496:30;-1:-1:-1;;;7542:18:1;;;7535:52;7604:18;;8763:45:0::1;7282:346:1::0;8763:45:0::1;8829:23;::::0;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;::::1;;::::0;;::::1;::::0;;;8819:7:::1;:33:::0;;-1:-1:-1;;8819:33:0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;8868:14;::::1;::::0;-1:-1:-1;;8868:14:0::1;8709:181;8630:260:::0;;:::o;8139:216::-;1107:7;1134:6;-1:-1:-1;;;;;1134:6:0;682:10;1196:23;1188:68;;;;-1:-1:-1;;;1188:68:0;;;;;;;:::i;:::-;8247:9:::1;8243:105;8265:8;:15;8261:1;:19;8243:105;;;8331:5;8301:14;:27;8316:8;8325:1;8316:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;8301:27:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;8301:27:0;:35;;-1:-1:-1;;8301:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8282:3;::::1;::::0;::::1;:::i;:::-;;;;8243:105;;;;8139:216:::0;;:::o;1386:192::-;1107:7;1134:6;-1:-1:-1;;;;;1134:6:0;682:10;1196:23;1188:68;;;;-1:-1:-1;;;1188:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1475:22:0;::::1;1467:73;;;::::0;-1:-1:-1;;;1467:73:0;;10846:2:1;1467:73:0::1;::::0;::::1;10828:21:1::0;10885:2;10865:18;;;10858:30;10924:34;10904:18;;;10897:62;-1:-1:-1;;;10975:18:1;;;10968:36;11021:19;;1467:73:0::1;10644:402:1::0;1467:73:0::1;1551:19;1561:8;1551:9;:19::i;:::-;1386:192:::0;:::o;7986:141::-;1107:7;1134:6;-1:-1:-1;;;;;1134:6:0;682:10;1196:23;1188:68;;;;-1:-1:-1;;;1188:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8080:23:0;;;::::1;;::::0;;;:14:::1;:23;::::0;;;;:39;;-1:-1:-1;;8080:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7986:141::o;7499:335::-;-1:-1:-1;;;;;7592:19:0;;7584:68;;;;-1:-1:-1;;;7584:68:0;;11253:2:1;7584:68:0;;;11235:21:1;11292:2;11272:18;;;11265:30;11331:34;11311:18;;;11304:62;-1:-1:-1;;;11382:18:1;;;11375:34;11426:19;;7584:68:0;11051:400:1;7584:68:0;-1:-1:-1;;;;;7671:21:0;;7663:68;;;;-1:-1:-1;;;7663:68:0;;11658:2:1;7663:68:0;;;11640:21:1;11697:2;11677:18;;;11670:30;11736:34;11716:18;;;11709:62;-1:-1:-1;;;11787:18:1;;;11780:32;11829:19;;7663:68:0;11456:398:1;7663:68:0;-1:-1:-1;;;;;7742:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7794:32;;160:25:1;;;7794:32:0;;133:18:1;7794:32:0;;;;;;;7499:335;;;:::o;11177:1565::-;-1:-1:-1;;;;;11263:18:0;;11255:68;;;;-1:-1:-1;;;11255:68:0;;12061:2:1;11255:68:0;;;12043:21:1;12100:2;12080:18;;;12073:30;12139:34;12119:18;;;12112:62;-1:-1:-1;;;12190:18:1;;;12183:35;12235:19;;11255:68:0;11859:401:1;11255:68:0;-1:-1:-1;;;;;11342:16:0;;11334:64;;;;-1:-1:-1;;;11334:64:0;;12467:2:1;11334:64:0;;;12449:21:1;12506:2;12486:18;;;12479:30;12545:34;12525:18;;;12518:62;-1:-1:-1;;;12596:18:1;;;12589:33;12639:19;;11334:64:0;12265:399:1;11334:64:0;11426:1;11417:6;:10;11409:64;;;;-1:-1:-1;;;11409:64:0;;12871:2:1;11409:64:0;;;12853:21:1;12910:2;12890:18;;;12883:30;12949:34;12929:18;;;12922:62;-1:-1:-1;;;13000:18:1;;;12993:39;13049:19;;11409:64:0;12669:405:1;11409:64:0;11502:11;;11492:6;:21;;:56;;;-1:-1:-1;;;;;;11517:31:0;;;;;;:25;:31;;;;;;;;11492:56;11484:110;;;;-1:-1:-1;;;11484:110:0;;13281:2:1;11484:110:0;;;13263:21:1;13320:2;13300:18;;;13293:30;13359:34;13339:18;;;13332:62;-1:-1:-1;;;13410:18:1;;;13403:39;13459:19;;11484:110:0;13079:405:1;11484:110:0;-1:-1:-1;;;;;11614:20:0;;;;;;:14;:20;;;;;;;;11613:21;:44;;;;-1:-1:-1;;;;;;11639:18:0;;;;;;:14;:18;;;;;;;;11638:19;11613:44;11605:81;;;;-1:-1:-1;;;11605:81:0;;13691:2:1;11605:81:0;;;13673:21:1;13730:2;13710:18;;;13703:30;13769:26;13749:18;;;13742:54;13813:18;;11605:81:0;13489:348:1;11605:81:0;-1:-1:-1;;;;;11703:29:0;;;;;;:25;:29;;;;;;;;11699:134;;11781:9;;11771:6;11755:13;11765:2;-1:-1:-1;;;;;6242:16:0;6215:7;6242:16;;;:7;:16;;;;;;;6149:117;11755:13;:22;;;;:::i;:::-;:35;;11747:86;;;;-1:-1:-1;;;11747:86:0;;14044:2:1;11747:86:0;;;14026:21:1;14083:2;14063:18;;;14056:30;14122:34;14102:18;;;14095:62;-1:-1:-1;;;14173:18:1;;;14166:36;14219:19;;11747:86:0;13842:402:1;11747:86:0;11886:13;;11876:4;6215:7;6242:16;;;:7;:16;;;;;;11858:41;;:91;;;;;11935:13;;11923:9;;:25;;;;:::i;:::-;11903:15;:46;;11858:91;:104;;;;-1:-1:-1;11954:8:0;;-1:-1:-1;;;11954:8:0;;;;11953:9;11858:104;:120;;;;-1:-1:-1;11974:4:0;;-1:-1:-1;;;;;11966:12:0;;;11974:4;;11966:12;;11858:120;:139;;;;-1:-1:-1;1107:7:0;1134:6;-1:-1:-1;;;;;11982:15:0;;;1134:6;;11982:15;;11858:139;:156;;;;-1:-1:-1;1107:7:0;1134:6;-1:-1:-1;;;;;12001:13:0;;;1134:6;;12001:13;;11858:156;11854:191;;;12029:16;:14;:16::i;:::-;-1:-1:-1;;;;;12068:13:0;;;;;;:7;:13;;;;;:23;;12085:6;;12068:13;:23;;12085:6;;12068:23;:::i;:::-;;;;-1:-1:-1;;;;;;;12158:24:0;;12102:22;12158:24;;;:18;:24;;;;;;12127:6;;12158:24;;12157:25;:52;;;;-1:-1:-1;;;;;;12187:22:0;;;;;;:18;:22;;;;;;;;12186:23;12157:52;12154:489;;;12276:4;;12242:39;;12256:6;;12264:4;;-1:-1:-1;;;;;12270:10:0;;;12276:4;;12270:10;12242:13;:39::i;:::-;12308:4;;12225:56;;-1:-1:-1;;;;;;12308:4:0;;;12300:12;;;;12296:336;;12335:12;;;;12332:150;;;12371:11;:13;;;:11;:13;;;:::i;:::-;;;;-1:-1:-1;;12444:18:0;;12426:36;;:15;:36;:::i;:::-;-1:-1:-1;;;;;12407:16:0;;;;;;:12;:16;;;;;:55;12332:150;12296:336;;;-1:-1:-1;;;;;12524:18:0;;;;;;:12;:18;;;;;;:23;12520:95;;-1:-1:-1;;;;;12596:18:0;;;;;;:12;:18;;;;;;12578:15;:36;12570:45;;;;;;-1:-1:-1;;;;;12655:11:0;;;;;;:7;:11;;;;;:29;;12670:14;;12655:11;:29;;12670:14;;12655:29;:::i;:::-;;;;;;;;12715:2;-1:-1:-1;;;;;12700:34:0;12709:4;-1:-1:-1;;;;;12700:34:0;;12719:14;12700:34;;;;160:25:1;;148:2;133:18;;14:177;12700:34:0;;;;;;;;11244:1498;11177:1565;;;:::o;1586:173::-;1642:16;1661:6;;-1:-1:-1;;;;;1678:17:0;;;-1:-1:-1;;;;;;1678:17:0;;;;;;1711:40;;1661:6;;;;;;;1711:40;;1642:16;1711:40;1631:128;1586:173;:::o;12750:829::-;4846:8;:15;;-1:-1:-1;;;;4846:15:0;-1:-1:-1;;;4846:15:0;;;12819:18:::1;:34:::0;:38;12816:311:::1;;12873:18;12894:52;12911:18;:34;;;12894:16;:52::i;:::-;12873:73:::0;-1:-1:-1;12964:14:0;;12961:155:::1;;13006:15;::::0;12998:45:::1;::::0;-1:-1:-1;;;;;13006:15:0;;::::1;::::0;12998:45;::::1;;;::::0;13032:10;;13006:15:::1;12998:45:::0;13006:15;12998:45;13032:10;13006:15;12998:45;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;13099:1:0::1;13062:18;:38:::0;12961:155:::1;12858:269;12816:311;13145:27:::0;;:31;13142:356:::1;;13204:27:::0;;13192:9:::1;::::0;13204:31:::1;::::0;13234:1:::1;::::0;13204:31:::1;:::i;:::-;13192:43;;13250:14;13297:4;13267:18;:27;;;:34;;;;:::i;:::-;13250:51;;13316:14;13333:22;13350:4;13333:16;:22::i;:::-;13316:39:::0;-1:-1:-1;13374:13:0;;13370:70:::1;;13406:34;13419:9;13430;13406:12;:34::i;:::-;-1:-1:-1::0;;13485:1:0::1;13455:27:::0;:31;-1:-1:-1;13142:356:0::1;13515:16;::::0;::::1;::::0;;;::::1;13556:15;13544:9;:27:::0;4884:8;:16;;-1:-1:-1;;;;4884:16:0;;;12750:829::o;10353:816::-;10451:28;;;;;;;;;10473:6;10451:28;;;;;;;;;;;;;;;;10432:7;;10490:56;;;;-1:-1:-1;10516:18:0;;;;;;;;;10527:7;10516:18;;;;;;;;;;;;;;;;10490:56;10593:21;;10558:23;;10617:3;;10584:30;;;;:6;:30;:::i;:::-;:36;;;;:::i;:::-;10558:62;;10631:16;10676:3;10659:8;:14;;;10650:23;;:6;:23;;;;:::i;:::-;:29;;;;:::i;:::-;10631:48;-1:-1:-1;10695:22:0;;10692:96;;10770:18;10732;:34;;;:56;;;;;;;:::i;:::-;;;;-1:-1:-1;;10692:96:0;10804:15;;10801:75;;10865:11;10834:18;:27;;;:42;;;;;;;:::i;:::-;;;;-1:-1:-1;;10801:75:0;10889:21;10913:32;10934:11;10913:18;:32;:::i;:::-;10974:4;10958:22;;;;:7;:22;;;;;:42;;10889:56;;-1:-1:-1;10889:56:0;;10958:22;;;:42;;10889:56;;10958:42;:::i;:::-;;;;-1:-1:-1;;11014:20:0;;11011:91;;11054:48;;160:25:1;;;11078:4:0;;-1:-1:-1;;;;;11054:48:0;;;;;148:2:1;133:18;11054:48:0;;;;;;;11011:91;11135:25;11144:16;11135:6;:25;:::i;:::-;11127:34;10353:816;-1:-1:-1;;;;;;;;10353:816:0:o;13587:581::-;13752:16;;;13766:1;13752:16;;;;;;;;13651:7;;13696:21;;13651:7;;13752:16;;;;;;;;;;;;-1:-1:-1;13752:16:0;13728:40;;13797:4;13779;13784:1;13779:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13779:23:0;;;:7;;;;;;;;;;:23;;;;13823:6;;:13;;;-1:-1:-1;;;13823:13:0;;;;:6;;;;;:11;;:13;;;;;13779:7;;13823:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13813:4;13818:1;13813:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13813:23:0;;;:7;;;;;;;;;:23;13881:6;;13849:53;;13866:4;;13881:6;13890:11;13849:8;:53::i;:::-;13915:6;;:187;;-1:-1:-1;;;13915:187:0;;-1:-1:-1;;;;;13915:6:0;;;;:57;;:187;;13987:11;;13915:6;;14029:4;;14056;;14076:15;;13915:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14145:14;14121:21;:38;;;;:::i;:::-;14113:47;13587:581;-1:-1:-1;;;;13587:581:0:o;14176:514::-;14289:6;;14257:53;;14274:4;;-1:-1:-1;;;;;14289:6:0;14298:11;14257:8;:53::i;:::-;14354:6;;14325:24;;-1:-1:-1;;;;;14354:6:0;:22;14385:9;14419:4;14439:11;14325:24;;14497:7;1107;1134:6;-1:-1:-1;;;;;1134:6:0;;1061:87;14497:7;14354:191;;;;;;-1:-1:-1;;;;;;14354:191:0;;;-1:-1:-1;;;;;15849:15:1;;;14354:191:0;;;15831:34:1;15881:18;;;15874:34;;;;15924:18;;;15917:34;;;;15967:18;;;15960:34;16031:15;;;16010:19;;;16003:44;14519:15:0;16063:19:1;;;16056:35;15765:19;;14354:191:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;14323:222:0;-1:-1:-1;14601:1:0;;-1:-1:-1;14570:28:0;14323:222;14570:9;:28;:::i;:::-;:32;14566:116;;;14617:65;14653:28;14665:16;14653:9;:28;:::i;:::-;14625:15;;-1:-1:-1;;;;;14625:15:0;;344:6;319:21;:31;;311:73;;;;-1:-1:-1;;;311:73:0;;16615:2:1;311:73:0;;;16597:21:1;16654:2;16634:18;;;16627:30;16693:31;16673:18;;;16666:59;16742:18;;311:73:0;16413:353:1;311:73:0;398:12;416:9;-1:-1:-1;;;;;416:14:0;438:6;416:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;397:52;;;468:7;460:78;;;;-1:-1:-1;;;460:78:0;;17183:2:1;460:78:0;;;17165:21:1;17222:2;17202:18;;;17195:30;17261:34;17241:18;;;17234:62;17332:28;17312:18;;;17305:56;17378:19;;460:78:0;16981:422:1;196:548;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:134;953:20;;982:31;953:20;982:31;:::i;:::-;885:134;;;:::o;1024:315::-;1092:6;1100;1153:2;1141:9;1132:7;1128:23;1124:32;1121:52;;;1169:1;1166;1159:12;1121:52;1208:9;1195:23;1227:31;1252:5;1227:31;:::i;:::-;1277:5;1329:2;1314:18;;;;1301:32;;-1:-1:-1;;;1024:315:1:o;1536:160::-;1601:20;;1657:13;;1650:21;1640:32;;1630:60;;1686:1;1683;1676:12;1701:180;1757:6;1810:2;1798:9;1789:7;1785:23;1781:32;1778:52;;;1826:1;1823;1816:12;1778:52;1849:26;1865:9;1849:26;:::i;:::-;1839:36;1701:180;-1:-1:-1;;;1701:180:1:o;1886:156::-;1952:20;;2012:4;2001:16;;1991:27;;1981:55;;2032:1;2029;2022:12;2047:252;2111:6;2119;2172:2;2160:9;2151:7;2147:23;2143:32;2140:52;;;2188:1;2185;2178:12;2140:52;2211:27;2228:9;2211:27;:::i;:::-;2201:37;;2257:36;2289:2;2278:9;2274:18;2257:36;:::i;:::-;2247:46;;2047:252;;;;;:::o;2304:247::-;2363:6;2416:2;2404:9;2395:7;2391:23;2387:32;2384:52;;;2432:1;2429;2422:12;2384:52;2471:9;2458:23;2490:31;2515:5;2490:31;:::i;2556:456::-;2633:6;2641;2649;2702:2;2690:9;2681:7;2677:23;2673:32;2670:52;;;2718:1;2715;2708:12;2670:52;2757:9;2744:23;2776:31;2801:5;2776:31;:::i;:::-;2826:5;-1:-1:-1;2883:2:1;2868:18;;2855:32;2896:33;2855:32;2896:33;:::i;:::-;2556:456;;2948:7;;-1:-1:-1;;;3002:2:1;2987:18;;;;2974:32;;2556:456::o;3206:248::-;3274:6;3282;3335:2;3323:9;3314:7;3310:23;3306:32;3303:52;;;3351:1;3348;3341:12;3303:52;-1:-1:-1;;3374:23:1;;;3444:2;3429:18;;;3416:32;;-1:-1:-1;3206:248:1:o;3726:180::-;3785:6;3838:2;3826:9;3817:7;3813:23;3809:32;3806:52;;;3854:1;3851;3844:12;3806:52;-1:-1:-1;3877:23:1;;3726:180;-1:-1:-1;3726:180:1:o;4119:127::-;4180:10;4175:3;4171:20;4168:1;4161:31;4211:4;4208:1;4201:15;4235:4;4232:1;4225:15;4251:1191;4341:6;4349;4402:2;4390:9;4381:7;4377:23;4373:32;4370:52;;;4418:1;4415;4408:12;4370:52;4458:9;4445:23;4487:18;4528:2;4520:6;4517:14;4514:34;;;4544:1;4541;4534:12;4514:34;4582:6;4571:9;4567:22;4557:32;;4627:7;4620:4;4616:2;4612:13;4608:27;4598:55;;4649:1;4646;4639:12;4598:55;4685:2;4672:16;4707:4;4730:2;4726;4723:10;4720:36;;;4736:18;;:::i;:::-;4782:2;4779:1;4775:10;4814:2;4808:9;4877:2;4873:7;4868:2;4864;4860:11;4856:25;4848:6;4844:38;4932:6;4920:10;4917:22;4912:2;4900:10;4897:18;4894:46;4891:72;;;4943:18;;:::i;:::-;4979:2;4972:22;5029:18;;;5063:15;;;;-1:-1:-1;5105:11:1;;;5101:20;;;5133:19;;;5130:39;;;5165:1;5162;5155:12;5130:39;5189:11;;;;5209:148;5225:6;5220:3;5217:15;5209:148;;;5291:23;5310:3;5291:23;:::i;:::-;5279:36;;5242:12;;;;5335;;;;5209:148;;;5376:6;-1:-1:-1;5401:35:1;;-1:-1:-1;5417:18:1;;;5401:35;:::i;:::-;5391:45;;;;;;4251:1191;;;;;:::o;5447:388::-;5515:6;5523;5576:2;5564:9;5555:7;5551:23;5547:32;5544:52;;;5592:1;5589;5582:12;5544:52;5631:9;5618:23;5650:31;5675:5;5650:31;:::i;:::-;5700:5;-1:-1:-1;5757:2:1;5742:18;;5729:32;5770:33;5729:32;5770:33;:::i;:::-;5822:7;5812:17;;;5447:388;;;;;:::o;5840:315::-;5905:6;5913;5966:2;5954:9;5945:7;5941:23;5937:32;5934:52;;;5982:1;5979;5972:12;5934:52;6021:9;6008:23;6040:31;6065:5;6040:31;:::i;:::-;6090:5;-1:-1:-1;6114:35:1;6145:2;6130:18;;6114:35;:::i;6636:356::-;6838:2;6820:21;;;6857:18;;;6850:30;6916:34;6911:2;6896:18;;6889:62;6983:2;6968:18;;6636:356::o;6997:127::-;7058:10;7053:3;7049:20;7046:1;7039:31;7089:4;7086:1;7079:15;7113:4;7110:1;7103:15;7129:148;7217:4;7196:12;;;7210;;;7192:31;;7235:13;;7232:39;;;7251:18;;:::i;7633:128::-;7700:9;;;7721:11;;;7718:37;;;7735:18;;:::i;7766:125::-;7831:9;;;7852:10;;;7849:36;;;7865:18;;:::i;7896:422::-;7985:1;8028:5;7985:1;8042:270;8063:7;8053:8;8050:21;8042:270;;;8122:4;8118:1;8114:6;8110:17;8104:4;8101:27;8098:53;;;8131:18;;:::i;:::-;8181:7;8171:8;8167:22;8164:55;;;8201:16;;;;8164:55;8280:22;;;;8240:15;;;;8042:270;;;8046:3;7896:422;;;;;:::o;8323:806::-;8372:5;8402:8;8392:80;;-1:-1:-1;8443:1:1;8457:5;;8392:80;8491:4;8481:76;;-1:-1:-1;8528:1:1;8542:5;;8481:76;8573:4;8591:1;8586:59;;;;8659:1;8654:130;;;;8566:218;;8586:59;8616:1;8607:10;;8630:5;;;8654:130;8691:3;8681:8;8678:17;8675:43;;;8698:18;;:::i;:::-;-1:-1:-1;;8754:1:1;8740:16;;8769:5;;8566:218;;8868:2;8858:8;8855:16;8849:3;8843:4;8840:13;8836:36;8830:2;8820:8;8817:16;8812:2;8806:4;8803:12;8799:35;8796:77;8793:159;;;-1:-1:-1;8905:19:1;;;8937:5;;8793:159;8984:34;9009:8;9003:4;8984:34;:::i;:::-;9054:6;9050:1;9046:6;9042:19;9033:7;9030:32;9027:58;;;9065:18;;:::i;:::-;9103:20;;8323:806;-1:-1:-1;;;8323:806:1:o;9134:140::-;9192:5;9221:47;9262:4;9252:8;9248:19;9242:4;9221:47;:::i;9279:168::-;9352:9;;;9383;;9400:15;;;9394:22;;9380:37;9370:71;;9421:18;;:::i;9452:217::-;9492:1;9518;9508:132;;9562:10;9557:3;9553:20;9550:1;9543:31;9597:4;9594:1;9587:15;9625:4;9622:1;9615:15;9508:132;-1:-1:-1;9654:9:1;;9452:217::o;10372:127::-;10433:10;10428:3;10424:20;10421:1;10414:31;10464:4;10461:1;10454:15;10488:4;10485:1;10478:15;10504:135;10543:3;10564:17;;;10561:43;;10584:18;;:::i;:::-;-1:-1:-1;10631:1:1;10620:13;;10504:135::o;14249:251::-;14319:6;14372:2;14360:9;14351:7;14347:23;14343:32;14340:52;;;14388:1;14385;14378:12;14340:52;14420:9;14414:16;14439:31;14464:5;14439:31;:::i;14505:980::-;14767:4;14815:3;14804:9;14800:19;14846:6;14835:9;14828:25;14872:2;14910:6;14905:2;14894:9;14890:18;14883:34;14953:3;14948:2;14937:9;14933:18;14926:31;14977:6;15012;15006:13;15043:6;15035;15028:22;15081:3;15070:9;15066:19;15059:26;;15120:2;15112:6;15108:15;15094:29;;15141:1;15151:195;15165:6;15162:1;15159:13;15151:195;;;15230:13;;-1:-1:-1;;;;;15226:39:1;15214:52;;15321:15;;;;15286:12;;;;15262:1;15180:9;15151:195;;;-1:-1:-1;;;;;;;15402:32:1;;;;15397:2;15382:18;;15375:60;-1:-1:-1;;;15466:3:1;15451:19;15444:35;15363:3;14505:980;-1:-1:-1;;;14505:980:1:o;16102:306::-;16190:6;16198;16206;16259:2;16247:9;16238:7;16234:23;16230:32;16227:52;;;16275:1;16272;16265:12;16227:52;16304:9;16298:16;16288:26;;16354:2;16343:9;16339:18;16333:25;16323:35;;16398:2;16387:9;16383:18;16377:25;16367:35;;16102:306;;;;;:::o

Swarm Source

ipfs://2c3a175d374275dcc51888ab2f09a479db9d1ad08f2628b302e87192e2aeb0e2

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.