ETH Price: $3,258.12 (-0.24%)
Gas: 1 Gwei

Contract

0x7CC896f84F3afD568Fe3dE16dDBd40B483e2F3D3
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve194917142024-03-22 17:40:23126 days ago1711129223IN
0x7CC896f8...483e2F3D3
0 ETH0.0008801933.52486434
Approve194917132024-03-22 17:40:11126 days ago1711129211IN
0x7CC896f8...483e2F3D3
0 ETH0.0007874929.99414273
Approve194917002024-03-22 17:37:35126 days ago1711129055IN
0x7CC896f8...483e2F3D3
0 ETH0.000715727.2596194
Approve194916992024-03-22 17:37:23126 days ago1711129043IN
0x7CC896f8...483e2F3D3
0 ETH0.0006494526.77615017
Approve194857752024-03-21 21:42:59127 days ago1711057379IN
0x7CC896f8...483e2F3D3
0 ETH0.0014736331.66450575
Approve194857582024-03-21 21:39:23127 days ago1711057163IN
0x7CC896f8...483e2F3D3
0 ETH0.001711636.77781407
Approve194856502024-03-21 21:17:23127 days ago1711055843IN
0x7CC896f8...483e2F3D3
0 ETH0.0007512728.13859547
Approve194856502024-03-21 21:17:23127 days ago1711055843IN
0x7CC896f8...483e2F3D3
0 ETH0.0007512728.13859547
Approve194856502024-03-21 21:17:23127 days ago1711055843IN
0x7CC896f8...483e2F3D3
0 ETH0.0007512728.13859547
Approve194856472024-03-21 21:16:47127 days ago1711055807IN
0x7CC896f8...483e2F3D3
0 ETH0.0015013332.25969661
Approve194856472024-03-21 21:16:47127 days ago1711055807IN
0x7CC896f8...483e2F3D3
0 ETH0.0009428532.29078218
Transfer194856432024-03-21 21:15:47127 days ago1711055747IN
0x7CC896f8...483e2F3D3
0 ETH0.0021540631
Approve194856322024-03-21 21:13:35127 days ago1711055615IN
0x7CC896f8...483e2F3D3
0 ETH0.0007824926.80979259
Approve194856272024-03-21 21:12:35127 days ago1711055555IN
0x7CC896f8...483e2F3D3
0 ETH0.0012352626.50831138
Approve194856242024-03-21 21:11:59127 days ago1711055519IN
0x7CC896f8...483e2F3D3
0 ETH0.0007636728.95454821
Approve194856242024-03-21 21:11:59127 days ago1711055519IN
0x7CC896f8...483e2F3D3
0 ETH0.0013401828.96123715
Approve194856212024-03-21 21:11:23127 days ago1711055483IN
0x7CC896f8...483e2F3D3
0 ETH0.0008028827.55354286
Approve194856162024-03-21 21:10:23127 days ago1711055423IN
0x7CC896f8...483e2F3D3
0 ETH0.0013310328.60038034
Approve194856062024-03-21 21:08:23127 days ago1711055303IN
0x7CC896f8...483e2F3D3
0 ETH0.0007358327.94967741
Approve194856052024-03-21 21:08:11127 days ago1711055291IN
0x7CC896f8...483e2F3D3
0 ETH0.0007513725.79663954
Approve194855992024-03-21 21:06:59127 days ago1711055219IN
0x7CC896f8...483e2F3D3
0 ETH0.0018950740.94186588
Approve194855982024-03-21 21:06:47127 days ago1711055207IN
0x7CC896f8...483e2F3D3
0 ETH0.0018950740.94186588
Approve194855982024-03-21 21:06:47127 days ago1711055207IN
0x7CC896f8...483e2F3D3
0 ETH0.0018950740.94186588
Approve194855982024-03-21 21:06:47127 days ago1711055207IN
0x7CC896f8...483e2F3D3
0 ETH0.0018950740.94186588
Approve194855982024-03-21 21:06:47127 days ago1711055207IN
0x7CC896f8...483e2F3D3
0 ETH0.0019934343.06688089
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
194858082024-03-21 21:49:35127 days ago1711057775
0x7CC896f8...483e2F3D3
0.01174924 ETH
194858082024-03-21 21:49:35127 days ago1711057775
0x7CC896f8...483e2F3D3
0.01174924 ETH
194858082024-03-21 21:49:35127 days ago1711057775
0x7CC896f8...483e2F3D3
0.02349848 ETH
194858062024-03-21 21:49:11127 days ago1711057751
0x7CC896f8...483e2F3D3
0.01959177 ETH
194858062024-03-21 21:49:11127 days ago1711057751
0x7CC896f8...483e2F3D3
0.01959177 ETH
194858062024-03-21 21:49:11127 days ago1711057751
0x7CC896f8...483e2F3D3
0.03918355 ETH
194858042024-03-21 21:48:47127 days ago1711057727
0x7CC896f8...483e2F3D3
0.11322312 ETH
194858042024-03-21 21:48:47127 days ago1711057727
0x7CC896f8...483e2F3D3
0.11322312 ETH
194858042024-03-21 21:48:47127 days ago1711057727
0x7CC896f8...483e2F3D3
0.22644625 ETH
194856022024-03-21 21:07:35127 days ago1711055255
0x7CC896f8...483e2F3D3
0.0115064 ETH
194856022024-03-21 21:07:35127 days ago1711055255
0x7CC896f8...483e2F3D3
0.0115064 ETH
194856022024-03-21 21:07:35127 days ago1711055255
0x7CC896f8...483e2F3D3
0.0230128 ETH
194856002024-03-21 21:07:11127 days ago1711055231
0x7CC896f8...483e2F3D3
0.07013515 ETH
194856002024-03-21 21:07:11127 days ago1711055231
0x7CC896f8...483e2F3D3
0.07013515 ETH
194856002024-03-21 21:07:11127 days ago1711055231
0x7CC896f8...483e2F3D3
0.1402703 ETH
194855832024-03-21 21:03:47127 days ago1711055027
0x7CC896f8...483e2F3D3
0.01395793 ETH
194855832024-03-21 21:03:47127 days ago1711055027
0x7CC896f8...483e2F3D3
0.01395793 ETH
194855832024-03-21 21:03:47127 days ago1711055027
0x7CC896f8...483e2F3D3
0.02791587 ETH
194855812024-03-21 21:03:23127 days ago1711055003
0x7CC896f8...483e2F3D3
0.06004091 ETH
194855812024-03-21 21:03:23127 days ago1711055003
0x7CC896f8...483e2F3D3
0.06004091 ETH
194855812024-03-21 21:03:23127 days ago1711055003
0x7CC896f8...483e2F3D3
0.12008183 ETH
194855742024-03-21 21:01:59127 days ago1711054919
0x7CC896f8...483e2F3D3
0.01226847 ETH
194855742024-03-21 21:01:59127 days ago1711054919
0x7CC896f8...483e2F3D3
0.01226847 ETH
194855742024-03-21 21:01:59127 days ago1711054919
0x7CC896f8...483e2F3D3
0.02453694 ETH
194855722024-03-21 21:01:35127 days ago1711054895
0x7CC896f8...483e2F3D3
0.00473697 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SECAI

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-21
*/

// SPDX-License-Identifier: MIT

/**

A complete privacy trading and liquidity
leasing solutions for crypto users

Website: https://www.secretai.pro
Telegram: https://t.me/secretai_erc
Twitter: https://twitter.com/secretai_erc

**/

pragma solidity 0.8.22;

interface IFactory01 {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

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 IRouter02 {
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    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);
}

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

contract Ownable is Context {
    address private _owner;
    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 transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _transferOwnership(newOwner);
    }
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

contract SECAI is Context, IERC20, Ownable {
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private feesExcluded;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1_000_000_000 * 10 ** _decimals;
    string private constant _name = unicode"Secret AI";
    string private constant _symbol = unicode"SECAI";
    uint256 public maxTxAmount = 20_000_000 * 10 ** _decimals;
    uint256 private swapMinValues = 10_000 * 10 ** _decimals;
    uint256 private swapMaxValues = 10_000_000 * 10 ** _decimals;
    uint256 private _buyTAX = 20;
    uint256 private _sellTAX = 25;
    uint256 private buyCount = 0;

    IRouter02 public uniswapV2Router;
    address private uniswapV2Pair;
    bool public tradeOpened = false;
    bool private swapEnabled = false;
    bool private inSwapBack = false;

    event ExcludeFromFeeUpdated(address indexed account);
    event includeFromFeeUpdated(address indexed account);
    event ERC20TokensRecovered(uint256 indexed _amount);
    event TradingOpenUpdated();
    event ETHBalanceRecovered();

    address public constant deadWallet =
        0x000000000000000000000000000000000000dEaD;
    address payable private gptReceipt;
    address payable private taxReceipt;

    modifier lockTheSwap() {
        inSwapBack = true;
        _;
        inSwapBack = false;
    }

    constructor() {
        _tOwned[_msgSender()] = _tTotal;
        taxReceipt = payable(0x5F0D7B2E3151d582675aFd0ddFbf96Fd6988Ae87);
        gptReceipt = payable(0x093a0C2c199Ce8907790fbB7F749577B334C93B3);
        feesExcluded[gptReceipt] = true;
        feesExcluded[taxReceipt] = true;
        feesExcluded[deadWallet] = true;
        feesExcluded[_msgSender()] = true;
        feesExcluded[address(this)] = 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 _tOwned[account];
    }
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(
            currentAllowance >= amount,
            "ERC20: transfer amount exceeds allowance"
        );
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), currentAllowance - amount);
        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);
    }
    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 addLiquidityETH() external payable onlyOwner {
        uniswapV2Router = IRouter02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Pair = IFactory01(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );

        _approve(address(this), address(uniswapV2Router), ~uint256(0));

        uniswapV2Router.addLiquidityETH{value: msg.value}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
    }

    function openTrading() external onlyOwner {
        require(!tradeOpened, "trading is already open");
        swapEnabled = true;
        tradeOpened = true;
        emit TradingOpenUpdated();
    }

    receive() external payable {}

    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }

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

        uint256 taxSwapPercent = 0;
        taxSwapPercent = _buyTAX;

        if (!feesExcluded[from] && !feesExcluded[to]) {
            require(tradeOpened, "Trading not enabled");
        }

        if (inSwapBack || !swapEnabled) {
            _tOwned[from] -= amount;
            _tOwned[to] += amount;
            emit Transfer(from, to, amount);
            return;
        }

        if (
            from == uniswapV2Pair &&
            to != address(uniswapV2Router) &&
            !feesExcluded[to]
        ) {
            require(amount <= maxTxAmount, "Exceeds the _maxTxAmount.");
            require(
                balanceOf(to) + amount <= maxTxAmount,
                "Exceeds the maxWalletSize."
            );
            buyCount++;
        }

        if (
            from != uniswapV2Pair &&
            !feesExcluded[from] &&
            !feesExcluded[to]
        ) {
            require(amount <= maxTxAmount, "Exceeds the _maxTxAmount.");
        }

        if (
            to == uniswapV2Pair &&
            from != address(this) &&
            !feesExcluded[from] &&
            !feesExcluded[to]
        ) {
            taxSwapPercent = _sellTAX;
        }

        uint256 contractTokenBalance = balanceOf(address(this));
        if (
            !inSwapBack &&
            contractTokenBalance >= swapMinValues &&
            to == uniswapV2Pair &&
            swapEnabled &&
            buyCount > 0 &&
            !feesExcluded[from] &&
            amount >= swapMinValues &&
            !feesExcluded[to]
        ) {
            swapTokenForETH(
                min(amount, min(contractTokenBalance, swapMaxValues))
            );
            uint256 contractETHBalance = address(this).balance;
            if (contractETHBalance > 0) {
                sendETHTo(address(this).balance);
            }
        }

        if (taxSwapPercent != 0) {
            uint256 taxAmount = (amount * taxSwapPercent) / 100;
            uint256 tAmount = amount - taxAmount;
            address feesReceipt = feesExcluded[from]
                ? from
                : address(this);
            taxAmount = feesExcluded[from] ? amount : taxAmount;
            _tOwned[feesReceipt] += taxAmount;
            emit Transfer(from, address(this), taxAmount);
            _tOwned[from] -= amount;
            _tOwned[to] += tAmount;
            emit Transfer(from, to, tAmount);
        } else {
            _tOwned[from] -= amount;
            _tOwned[to] += amount;
            emit Transfer(from, to, amount);
        }
    }

    function updateFees(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 100 && _sellFee <= 100, "revert wrong fee settings");
        _buyTAX = _buyFee;
        _sellTAX = _sellFee;
    }

    function excludeFromFees(address account) external onlyOwner {
        require(
            feesExcluded[account] != true,
            "Account is already excluded"
        );
        feesExcluded[account] = true;
        emit ExcludeFromFeeUpdated(account);
    }

    function includeFromFees(address account) external onlyOwner {
        require(
            feesExcluded[account] != false,
            "Account is already included"
        );
        feesExcluded[account] = false;
        emit includeFromFeeUpdated(account);
    }

    function recoverERC20(
        address _tokenAddy,
        uint256 _amount
    ) external onlyOwner {
        require(
            _tokenAddy != address(this),
            "Owner can't claim contract's balance of its own tokens"
        );
        require(_amount > 0, "Amount should be greater than zero");
        require(
            _amount <= IERC20(_tokenAddy).balanceOf(address(this)),
            "Insufficient Amount"
        );
        IERC20(_tokenAddy).transfer(taxReceipt, _amount);
        emit ERC20TokensRecovered(_amount);
    }

    function recoverETH() external {
        uint256 contractETHBalance = address(this).balance;
        require(contractETHBalance > 0, "Amount should be greater than zero");
        require(
            contractETHBalance <= address(this).balance,
            "Insufficient Amount"
        );
        payable(address(taxReceipt)).transfer(contractETHBalance);
        emit ETHBalanceRecovered();
    }

    function swapTokenForETH(uint256 tokenAmount) private lockTheSwap {
        require(tokenAmount > 0, "amount must be greeter than 0");
        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 sendETHTo(uint256 amount) private {
        require(amount > 0, "amount must be greeter than 0");
        gptReceipt.transfer(amount / 2);
        taxReceipt.transfer(amount / 2);
    }

    function removeLimits() external onlyOwner {
        _buyTAX = 2;
        _sellTAX = 2;
        maxTxAmount = _tTotal;
    }
}

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":"uint256","name":"_amount","type":"uint256"}],"name":"ERC20TokensRecovered","type":"event"},{"anonymous":false,"inputs":[],"name":"ETHBalanceRecovered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"ExcludeFromFeeUpdated","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":"TradingOpenUpdated","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"includeFromFeeUpdated","type":"event"},{"inputs":[],"name":"addLiquidityETH","outputs":[],"stateMutability":"payable","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":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddy","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"recoverERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoverETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","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":"pure","type":"function"},{"inputs":[],"name":"tradeOpened","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"uniswapV2Router","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a6200034d565b62000022906301312d0062000364565b600455620000336009600a6200034d565b620000419061271062000364565b600555620000526009600a6200034d565b62000061906298968062000364565b600655601460075560196008555f600955600b805462ffffff60a01b191690553480156200008d575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350620000dc6009600a6200034d565b620000ec90633b9aca0062000364565b335f81815260016020818152604080842095909555600d80546001600160a01b0319908116735f0d7b2e3151d582675afd0ddfbf96fd6988ae8717909155600c805490911673093a0c2c199ce8907790fbb7f749577b334c93b3179055600390527f77d4e651ba518fe97578ea0281add18878585cdee447ae1b28a5d6bfe35ff5ad805460ff1990811683179091557f544bea4b8e367a0fbac00ec05ffcae90811917dc1bee5ddf9b6467feae8afe7780548216831790557f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c80548216831790558483208054821683179055308352938220805490941617909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002176009600a6200034d565b6200022790633b9aca0062000364565b60405190815260200160405180910390a36200037e565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200029257815f19048211156200027657620002766200023e565b808516156200028457918102915b93841c939080029062000257565b509250929050565b5f82620002aa5750600162000347565b81620002b857505f62000347565b8160018114620002d15760028114620002dc57620002fc565b600191505062000347565b60ff841115620002f057620002f06200023e565b50506001821b62000347565b5060208310610133831016604e8410600b841016171562000321575081810a62000347565b6200032d838362000252565b805f19048211156200034357620003436200023e565b0290505b92915050565b5f6200035d60ff8416836200029a565b9392505050565b80820281158282048414176200034757620003476200023e565b611fc4806200038c5f395ff3fe60806040526004361061014a575f3560e01c806385141a77116100b3578063acc7ae231161006d578063acc7ae23146103bc578063c9567bf9146103db578063dd62ed3e146103ef578063e57f14e114610433578063ed99530714610452578063f2fde38b1461045a575f80fd5b806385141a771461030b5780638980f11f146103205780638c0b5e221461033f5780638da5cb5b1461035457806395d89b4114610370578063a9059cbb1461039d575f80fd5b8063313ce56711610104578063313ce567146102555780636bd11819146102705780636db794371461029057806370a08231146102af578063715018a6146102e3578063751039fc146102f7575f80fd5b80630614117a1461015557806306fdde031461016b578063095ea7b3146101ae5780631694505e146101dd57806318160ddd1461021457806323b872dd14610236575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b50610169610479565b005b348015610176575f80fd5b5060408051808201909152600981526853656372657420414960b81b60208201525b6040516101a59190611b46565b60405180910390f35b3480156101b9575f80fd5b506101cd6101c8366004611ba6565b610549565b60405190151581526020016101a5565b3480156101e8575f80fd5b50600a546101fc906001600160a01b031681565b6040516001600160a01b0390911681526020016101a5565b34801561021f575f80fd5b5061022861055f565b6040519081526020016101a5565b348015610241575f80fd5b506101cd610250366004611bd0565b61057f565b348015610260575f80fd5b50604051600981526020016101a5565b34801561027b575f80fd5b50600b546101cd90600160a01b900460ff1681565b34801561029b575f80fd5b506101696102aa366004611c0e565b61062d565b3480156102ba575f80fd5b506102286102c9366004611c2e565b6001600160a01b03165f9081526001602052604090205490565b3480156102ee575f80fd5b506101696106bf565b348015610302575f80fd5b50610169610730565b348015610316575f80fd5b506101fc61dead81565b34801561032b575f80fd5b5061016961033a366004611ba6565b610782565b34801561034a575f80fd5b5061022860045481565b34801561035f575f80fd5b505f546001600160a01b03166101fc565b34801561037b575f80fd5b50604080518082019091526005815264534543414960d81b6020820152610198565b3480156103a8575f80fd5b506101cd6103b7366004611ba6565b61098f565b3480156103c7575f80fd5b506101696103d6366004611c2e565b61099b565b3480156103e6575f80fd5b50610169610a77565b3480156103fa575f80fd5b50610228610409366004611c49565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561043e575f80fd5b5061016961044d366004611c2e565b610b39565b610169610c19565b348015610465575f80fd5b50610169610474366004611c2e565b610eba565b47806104a05760405162461bcd60e51b815260040161049790611c80565b60405180910390fd5b478111156104e65760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b6044820152606401610497565b600d546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561051d573d5f803e3d5ffd5b506040517fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db937675905f90a150565b5f610555338484610f54565b5060015b92915050565b5f61056c6009600a611db6565b61057a90633b9aca00611dc4565b905090565b6001600160a01b0383165f908152600260209081526040808320338452909152812054828110156106035760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610497565b61060e858585611077565b610622853361061d8685611ddb565b610f54565b506001949350505050565b5f546001600160a01b031633146106565760405162461bcd60e51b815260040161049790611dee565b60648211158015610668575060648111155b6106b45760405162461bcd60e51b815260206004820152601960248201527f7265766572742077726f6e67206665652073657474696e6773000000000000006044820152606401610497565b600791909155600855565b5f546001600160a01b031633146106e85760405162461bcd60e51b815260040161049790611dee565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146107595760405162461bcd60e51b815260040161049790611dee565b6002600781905560085561076f6009600a611db6565b61077d90633b9aca00611dc4565b600455565b5f546001600160a01b031633146107ab5760405162461bcd60e51b815260040161049790611dee565b306001600160a01b038316036108225760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b6064820152608401610497565b5f81116108415760405162461bcd60e51b815260040161049790611c80565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610883573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a79190611e23565b8111156108ec5760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b6044820152606401610497565b600d5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303815f875af115801561093c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109609190611e3a565b5060405181907fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c22905f90a25050565b5f610555338484611077565b5f546001600160a01b031633146109c45760405162461bcd60e51b815260040161049790611dee565b6001600160a01b0381165f9081526003602052604081205460ff1615159003610a2f5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c7564656400000000006044820152606401610497565b6001600160a01b0381165f81815260036020526040808220805460ff19169055517fdff643e1b752e1138794c958b6f565e4f003ba18d45383a40b582de82ced091e9190a250565b5f546001600160a01b03163314610aa05760405162461bcd60e51b815260040161049790611dee565b600b54600160a01b900460ff1615610afa5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610497565b600b805461ffff60a01b191661010160a01b1790556040517f0d151bf744092c3011c9f50766da412cca73acdbcaa74b879a5858adc258f935905f90a1565b5f546001600160a01b03163314610b625760405162461bcd60e51b815260040161049790611dee565b6001600160a01b0381165f9081526003602052604090205460ff161515600103610bce5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610497565b6001600160a01b0381165f81815260036020526040808220805460ff19166001179055517f7168e8adb718597b3ac83e2dfe415bea8ebaabb57fe933ffac2e0ed93b80718e9190a250565b5f546001600160a01b03163314610c425760405162461bcd60e51b815260040161049790611dee565b600a80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610ca4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc89190611e59565b6001600160a01b031663c9c6539630600a5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d27573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d4b9190611e59565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610d95573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db99190611e59565b600b80546001600160a01b0319166001600160a01b03928316179055600a54610de6913091165f19610f54565b600a546001600160a01b031663f305d7193430610e17816001600160a01b03165f9081526001602052604090205490565b5f80610e2a5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610e90573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610eb59190611e74565b505050565b5f546001600160a01b03163314610ee35760405162461bcd60e51b815260040161049790611dee565b6001600160a01b038116610f485760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610497565b610f5181611851565b50565b6001600160a01b038316610fb65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610497565b6001600160a01b0382166110175760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610497565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110db5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610497565b6001600160a01b03821661113d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610497565b5f811161119e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610497565b6007546001600160a01b0384165f9081526003602052604090205460ff161580156111e157506001600160a01b0383165f9081526003602052604090205460ff16155b1561123557600b54600160a01b900460ff166112355760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610497565b600b54600160b01b900460ff16806112575750600b54600160a81b900460ff16155b156112f6576001600160a01b0384165f9081526001602052604081208054849290611283908490611ddb565b90915550506001600160a01b0383165f90815260016020526040812080548492906112af908490611e9f565b92505081905550826001600160a01b0316846001600160a01b03165f80516020611f6f833981519152846040516112e891815260200190565b60405180910390a350505050565b600b546001600160a01b0385811691161480156113215750600a546001600160a01b03848116911614155b801561134557506001600160a01b0383165f9081526003602052604090205460ff16155b15611427576004548211156113985760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610497565b600454826113ba856001600160a01b03165f9081526001602052604090205490565b6113c49190611e9f565b11156114125760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610497565b60098054905f61142183611eb2565b91905055505b600b546001600160a01b0385811691161480159061145d57506001600160a01b0384165f9081526003602052604090205460ff16155b801561148157506001600160a01b0383165f9081526003602052604090205460ff16155b156114d4576004548211156114d45760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610497565b600b546001600160a01b0384811691161480156114fa57506001600160a01b0384163014155b801561151e57506001600160a01b0384165f9081526003602052604090205460ff16155b801561154257506001600160a01b0383165f9081526003602052604090205460ff16155b1561154c57506008545b305f90815260016020526040902054600b54600160b01b900460ff1615801561157757506005548110155b80156115905750600b546001600160a01b038581169116145b80156115a55750600b54600160a81b900460ff165b80156115b257505f600954115b80156115d657506001600160a01b0385165f9081526003602052604090205460ff16155b80156115e457506005548310155b801561160857506001600160a01b0384165f9081526003602052604090205460ff16155b1561163c5761162a61162584611620846006546118a0565b6118a0565b6118b7565b47801561163a5761163a47611a74565b505b81156117b5575f606461164f8486611dc4565b6116599190611eca565b90505f6116668286611ddb565b6001600160a01b0388165f908152600360205260408120549192509060ff1661168f5730611691565b875b6001600160a01b0389165f9081526003602052604090205490915060ff166116b957826116bb565b855b6001600160a01b0382165f908152600160205260408120805492955085929091906116e7908490611e9f565b909155505060405183815230906001600160a01b038a16905f80516020611f6f8339815191529060200160405180910390a36001600160a01b0388165f9081526001602052604081208054889290611740908490611ddb565b90915550506001600160a01b0387165f908152600160205260408120805484929061176c908490611e9f565b92505081905550866001600160a01b0316886001600160a01b03165f80516020611f6f833981519152846040516117a591815260200190565b60405180910390a350505061184a565b6001600160a01b0385165f90815260016020526040812080548592906117dc908490611ddb565b90915550506001600160a01b0384165f9081526001602052604081208054859290611808908490611e9f565b92505081905550836001600160a01b0316856001600160a01b03165f80516020611f6f8339815191528560405161184191815260200190565b60405180910390a35b5050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8183116118ae57826118b0565b815b9392505050565b600b805460ff60b01b1916600160b01b179055806119175760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e20300000006044820152606401610497565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061194a5761194a611ee9565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119c59190611e59565b816001815181106119d8576119d8611ee9565b6001600160a01b039283166020918202929092010152600a546119fe9130911684610f54565b600a5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a369085905f90869030904290600401611efd565b5f604051808303815f87803b158015611a4d575f80fd5b505af1158015611a5f573d5f803e3d5ffd5b5050600b805460ff60b01b1916905550505050565b5f8111611ac35760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e20300000006044820152606401610497565b600c546001600160a01b03166108fc611add600284611eca565b6040518115909202915f818181858888f19350505050158015611b02573d5f803e3d5ffd5b50600d546001600160a01b03166108fc611b1d600284611eca565b6040518115909202915f818181858888f19350505050158015611b42573d5f803e3d5ffd5b5050565b5f602080835283518060208501525f5b81811015611b7257858101830151858201604001528201611b56565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f51575f80fd5b5f8060408385031215611bb7575f80fd5b8235611bc281611b92565b946020939093013593505050565b5f805f60608486031215611be2575f80fd5b8335611bed81611b92565b92506020840135611bfd81611b92565b929592945050506040919091013590565b5f8060408385031215611c1f575f80fd5b50508035926020909101359150565b5f60208284031215611c3e575f80fd5b81356118b081611b92565b5f8060408385031215611c5a575f80fd5b8235611c6581611b92565b91506020830135611c7581611b92565b809150509250929050565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611d1057815f1904821115611cf657611cf6611cc2565b80851615611d0357918102915b93841c9390800290611cdb565b509250929050565b5f82611d2657506001610559565b81611d3257505f610559565b8160018114611d485760028114611d5257611d6e565b6001915050610559565b60ff841115611d6357611d63611cc2565b50506001821b610559565b5060208310610133831016604e8410600b8410161715611d91575081810a610559565b611d9b8383611cd6565b805f1904821115611dae57611dae611cc2565b029392505050565b5f6118b060ff841683611d18565b808202811582820484141761055957610559611cc2565b8181038181111561055957610559611cc2565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611e33575f80fd5b5051919050565b5f60208284031215611e4a575f80fd5b815180151581146118b0575f80fd5b5f60208284031215611e69575f80fd5b81516118b081611b92565b5f805f60608486031215611e86575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561055957610559611cc2565b5f60018201611ec357611ec3611cc2565b5060010190565b5f82611ee457634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611f4d5784516001600160a01b031683529383019391830191600101611f28565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220bcd4276f35bbf245f5ca7bd45b37704417268ff9a1452e498ee28fcd40d84f3f64736f6c63430008160033

Deployed Bytecode

0x60806040526004361061014a575f3560e01c806385141a77116100b3578063acc7ae231161006d578063acc7ae23146103bc578063c9567bf9146103db578063dd62ed3e146103ef578063e57f14e114610433578063ed99530714610452578063f2fde38b1461045a575f80fd5b806385141a771461030b5780638980f11f146103205780638c0b5e221461033f5780638da5cb5b1461035457806395d89b4114610370578063a9059cbb1461039d575f80fd5b8063313ce56711610104578063313ce567146102555780636bd11819146102705780636db794371461029057806370a08231146102af578063715018a6146102e3578063751039fc146102f7575f80fd5b80630614117a1461015557806306fdde031461016b578063095ea7b3146101ae5780631694505e146101dd57806318160ddd1461021457806323b872dd14610236575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b50610169610479565b005b348015610176575f80fd5b5060408051808201909152600981526853656372657420414960b81b60208201525b6040516101a59190611b46565b60405180910390f35b3480156101b9575f80fd5b506101cd6101c8366004611ba6565b610549565b60405190151581526020016101a5565b3480156101e8575f80fd5b50600a546101fc906001600160a01b031681565b6040516001600160a01b0390911681526020016101a5565b34801561021f575f80fd5b5061022861055f565b6040519081526020016101a5565b348015610241575f80fd5b506101cd610250366004611bd0565b61057f565b348015610260575f80fd5b50604051600981526020016101a5565b34801561027b575f80fd5b50600b546101cd90600160a01b900460ff1681565b34801561029b575f80fd5b506101696102aa366004611c0e565b61062d565b3480156102ba575f80fd5b506102286102c9366004611c2e565b6001600160a01b03165f9081526001602052604090205490565b3480156102ee575f80fd5b506101696106bf565b348015610302575f80fd5b50610169610730565b348015610316575f80fd5b506101fc61dead81565b34801561032b575f80fd5b5061016961033a366004611ba6565b610782565b34801561034a575f80fd5b5061022860045481565b34801561035f575f80fd5b505f546001600160a01b03166101fc565b34801561037b575f80fd5b50604080518082019091526005815264534543414960d81b6020820152610198565b3480156103a8575f80fd5b506101cd6103b7366004611ba6565b61098f565b3480156103c7575f80fd5b506101696103d6366004611c2e565b61099b565b3480156103e6575f80fd5b50610169610a77565b3480156103fa575f80fd5b50610228610409366004611c49565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561043e575f80fd5b5061016961044d366004611c2e565b610b39565b610169610c19565b348015610465575f80fd5b50610169610474366004611c2e565b610eba565b47806104a05760405162461bcd60e51b815260040161049790611c80565b60405180910390fd5b478111156104e65760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b6044820152606401610497565b600d546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561051d573d5f803e3d5ffd5b506040517fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db937675905f90a150565b5f610555338484610f54565b5060015b92915050565b5f61056c6009600a611db6565b61057a90633b9aca00611dc4565b905090565b6001600160a01b0383165f908152600260209081526040808320338452909152812054828110156106035760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610497565b61060e858585611077565b610622853361061d8685611ddb565b610f54565b506001949350505050565b5f546001600160a01b031633146106565760405162461bcd60e51b815260040161049790611dee565b60648211158015610668575060648111155b6106b45760405162461bcd60e51b815260206004820152601960248201527f7265766572742077726f6e67206665652073657474696e6773000000000000006044820152606401610497565b600791909155600855565b5f546001600160a01b031633146106e85760405162461bcd60e51b815260040161049790611dee565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146107595760405162461bcd60e51b815260040161049790611dee565b6002600781905560085561076f6009600a611db6565b61077d90633b9aca00611dc4565b600455565b5f546001600160a01b031633146107ab5760405162461bcd60e51b815260040161049790611dee565b306001600160a01b038316036108225760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b6064820152608401610497565b5f81116108415760405162461bcd60e51b815260040161049790611c80565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610883573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a79190611e23565b8111156108ec5760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b6044820152606401610497565b600d5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303815f875af115801561093c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109609190611e3a565b5060405181907fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c22905f90a25050565b5f610555338484611077565b5f546001600160a01b031633146109c45760405162461bcd60e51b815260040161049790611dee565b6001600160a01b0381165f9081526003602052604081205460ff1615159003610a2f5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c7564656400000000006044820152606401610497565b6001600160a01b0381165f81815260036020526040808220805460ff19169055517fdff643e1b752e1138794c958b6f565e4f003ba18d45383a40b582de82ced091e9190a250565b5f546001600160a01b03163314610aa05760405162461bcd60e51b815260040161049790611dee565b600b54600160a01b900460ff1615610afa5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610497565b600b805461ffff60a01b191661010160a01b1790556040517f0d151bf744092c3011c9f50766da412cca73acdbcaa74b879a5858adc258f935905f90a1565b5f546001600160a01b03163314610b625760405162461bcd60e51b815260040161049790611dee565b6001600160a01b0381165f9081526003602052604090205460ff161515600103610bce5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610497565b6001600160a01b0381165f81815260036020526040808220805460ff19166001179055517f7168e8adb718597b3ac83e2dfe415bea8ebaabb57fe933ffac2e0ed93b80718e9190a250565b5f546001600160a01b03163314610c425760405162461bcd60e51b815260040161049790611dee565b600a80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610ca4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc89190611e59565b6001600160a01b031663c9c6539630600a5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d27573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d4b9190611e59565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610d95573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db99190611e59565b600b80546001600160a01b0319166001600160a01b03928316179055600a54610de6913091165f19610f54565b600a546001600160a01b031663f305d7193430610e17816001600160a01b03165f9081526001602052604090205490565b5f80610e2a5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610e90573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610eb59190611e74565b505050565b5f546001600160a01b03163314610ee35760405162461bcd60e51b815260040161049790611dee565b6001600160a01b038116610f485760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610497565b610f5181611851565b50565b6001600160a01b038316610fb65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610497565b6001600160a01b0382166110175760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610497565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110db5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610497565b6001600160a01b03821661113d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610497565b5f811161119e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610497565b6007546001600160a01b0384165f9081526003602052604090205460ff161580156111e157506001600160a01b0383165f9081526003602052604090205460ff16155b1561123557600b54600160a01b900460ff166112355760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610497565b600b54600160b01b900460ff16806112575750600b54600160a81b900460ff16155b156112f6576001600160a01b0384165f9081526001602052604081208054849290611283908490611ddb565b90915550506001600160a01b0383165f90815260016020526040812080548492906112af908490611e9f565b92505081905550826001600160a01b0316846001600160a01b03165f80516020611f6f833981519152846040516112e891815260200190565b60405180910390a350505050565b600b546001600160a01b0385811691161480156113215750600a546001600160a01b03848116911614155b801561134557506001600160a01b0383165f9081526003602052604090205460ff16155b15611427576004548211156113985760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610497565b600454826113ba856001600160a01b03165f9081526001602052604090205490565b6113c49190611e9f565b11156114125760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610497565b60098054905f61142183611eb2565b91905055505b600b546001600160a01b0385811691161480159061145d57506001600160a01b0384165f9081526003602052604090205460ff16155b801561148157506001600160a01b0383165f9081526003602052604090205460ff16155b156114d4576004548211156114d45760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610497565b600b546001600160a01b0384811691161480156114fa57506001600160a01b0384163014155b801561151e57506001600160a01b0384165f9081526003602052604090205460ff16155b801561154257506001600160a01b0383165f9081526003602052604090205460ff16155b1561154c57506008545b305f90815260016020526040902054600b54600160b01b900460ff1615801561157757506005548110155b80156115905750600b546001600160a01b038581169116145b80156115a55750600b54600160a81b900460ff165b80156115b257505f600954115b80156115d657506001600160a01b0385165f9081526003602052604090205460ff16155b80156115e457506005548310155b801561160857506001600160a01b0384165f9081526003602052604090205460ff16155b1561163c5761162a61162584611620846006546118a0565b6118a0565b6118b7565b47801561163a5761163a47611a74565b505b81156117b5575f606461164f8486611dc4565b6116599190611eca565b90505f6116668286611ddb565b6001600160a01b0388165f908152600360205260408120549192509060ff1661168f5730611691565b875b6001600160a01b0389165f9081526003602052604090205490915060ff166116b957826116bb565b855b6001600160a01b0382165f908152600160205260408120805492955085929091906116e7908490611e9f565b909155505060405183815230906001600160a01b038a16905f80516020611f6f8339815191529060200160405180910390a36001600160a01b0388165f9081526001602052604081208054889290611740908490611ddb565b90915550506001600160a01b0387165f908152600160205260408120805484929061176c908490611e9f565b92505081905550866001600160a01b0316886001600160a01b03165f80516020611f6f833981519152846040516117a591815260200190565b60405180910390a350505061184a565b6001600160a01b0385165f90815260016020526040812080548592906117dc908490611ddb565b90915550506001600160a01b0384165f9081526001602052604081208054859290611808908490611e9f565b92505081905550836001600160a01b0316856001600160a01b03165f80516020611f6f8339815191528560405161184191815260200190565b60405180910390a35b5050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8183116118ae57826118b0565b815b9392505050565b600b805460ff60b01b1916600160b01b179055806119175760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e20300000006044820152606401610497565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061194a5761194a611ee9565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119c59190611e59565b816001815181106119d8576119d8611ee9565b6001600160a01b039283166020918202929092010152600a546119fe9130911684610f54565b600a5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a369085905f90869030904290600401611efd565b5f604051808303815f87803b158015611a4d575f80fd5b505af1158015611a5f573d5f803e3d5ffd5b5050600b805460ff60b01b1916905550505050565b5f8111611ac35760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e20300000006044820152606401610497565b600c546001600160a01b03166108fc611add600284611eca565b6040518115909202915f818181858888f19350505050158015611b02573d5f803e3d5ffd5b50600d546001600160a01b03166108fc611b1d600284611eca565b6040518115909202915f818181858888f19350505050158015611b42573d5f803e3d5ffd5b5050565b5f602080835283518060208501525f5b81811015611b7257858101830151858201604001528201611b56565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f51575f80fd5b5f8060408385031215611bb7575f80fd5b8235611bc281611b92565b946020939093013593505050565b5f805f60608486031215611be2575f80fd5b8335611bed81611b92565b92506020840135611bfd81611b92565b929592945050506040919091013590565b5f8060408385031215611c1f575f80fd5b50508035926020909101359150565b5f60208284031215611c3e575f80fd5b81356118b081611b92565b5f8060408385031215611c5a575f80fd5b8235611c6581611b92565b91506020830135611c7581611b92565b809150509250929050565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611d1057815f1904821115611cf657611cf6611cc2565b80851615611d0357918102915b93841c9390800290611cdb565b509250929050565b5f82611d2657506001610559565b81611d3257505f610559565b8160018114611d485760028114611d5257611d6e565b6001915050610559565b60ff841115611d6357611d63611cc2565b50506001821b610559565b5060208310610133831016604e8410600b8410161715611d91575081810a610559565b611d9b8383611cd6565b805f1904821115611dae57611dae611cc2565b029392505050565b5f6118b060ff841683611d18565b808202811582820484141761055957610559611cc2565b8181038181111561055957610559611cc2565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611e33575f80fd5b5051919050565b5f60208284031215611e4a575f80fd5b815180151581146118b0575f80fd5b5f60208284031215611e69575f80fd5b81516118b081611b92565b5f805f60608486031215611e86575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561055957610559611cc2565b5f60018201611ec357611ec3611cc2565b5060010190565b5f82611ee457634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611f4d5784516001600160a01b031683529383019391830191600101611f28565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220bcd4276f35bbf245f5ca7bd45b37704417268ff9a1452e498ee28fcd40d84f3f64736f6c63430008160033

Deployed Bytecode Sourcemap

4064:10464:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13217:408;;;;;;;;;;;;;:::i;:::-;;6042:83;;;;;;;;;;-1:-1:-1;6112:5:0;;;;;;;;;;;;-1:-1:-1;;;6112:5:0;;;;6042:83;;;;;;;:::i;:::-;;;;;;;;7737:186;;;;;;;;;;-1:-1:-1;7737:186:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7737:186:0;1023:187:1;4822:32:0;;;;;;;;;;-1:-1:-1;4822:32:0;;;;-1:-1:-1;;;;;4822:32:0;;;;;;-1:-1:-1;;;;;1396:32:1;;;1378:51;;1366:2;1351:18;4822:32:0;1215:220:1;6313:95:0;;;;;;;;;;;;;:::i;:::-;;;1586:25:1;;;1574:2;1559:18;6313:95:0;1440:177:1;6537:481:0;;;;;;;;;;-1:-1:-1;6537:481:0;;;;;:::i;:::-;;:::i;6224:83::-;;;;;;;;;;-1:-1:-1;6224:83:0;;4327:1;2225:36:1;;2213:2;2198:18;6224:83:0;2083:184:1;4897:31:0;;;;;;;;;;-1:-1:-1;4897:31:0;;;;-1:-1:-1;;;4897:31:0;;;;;;11859:222;;;;;;;;;;-1:-1:-1;11859:222:0;;;;;:::i;:::-;;:::i;6414:117::-;;;;;;;;;;-1:-1:-1;6414:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;6507:16:0;6480:7;6507:16;;;:7;:16;;;;;;;6414:117;3909:148;;;;;;;;;;;;;:::i;14397:128::-;;;;;;;;;;;;;:::i;5259:88::-;;;;;;;;;;;;5305:42;5259:88;;12649:560;;;;;;;;;;-1:-1:-1;12649:560:0;;;;;:::i;:::-;;:::i;4520:57::-;;;;;;;;;;;;;;;;3258:79;;;;;;;;;;-1:-1:-1;3296:7:0;3323:6;-1:-1:-1;;;;;3323:6:0;3258:79;;6131:87;;;;;;;;;;-1:-1:-1;6203:7:0;;;;;;;;;;;;-1:-1:-1;;;6203:7:0;;;;6131:87;;7365:192;;;;;;;;;;-1:-1:-1;7365:192:0;;;;;:::i;:::-;;:::i;12368:273::-;;;;;;;;;;-1:-1:-1;12368:273:0;;;;;:::i;:::-;;:::i;8557:203::-;;;;;;;;;;;;;:::i;7563:168::-;;;;;;;;;;-1:-1:-1;7563:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;7696:18:0;;;7669:7;7696:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7563:168;12089:271;;;;;;;;;;-1:-1:-1;12089:271:0;;;;;:::i;:::-;;:::i;7931:618::-;;;:::i;3468:238::-;;;;;;;;;;-1:-1:-1;3468:238:0;;;;;:::i;:::-;;:::i;13217:408::-;13288:21;13328:22;13320:69;;;;-1:-1:-1;;;13320:69:0;;;;;;;:::i;:::-;;;;;;;;;13444:21;13422:18;:43;;13400:112;;;;-1:-1:-1;;;13400:112:0;;3983:2:1;13400:112:0;;;3965:21:1;4022:2;4002:18;;;3995:30;-1:-1:-1;;;4041:18:1;;;4034:49;4100:18;;13400:112:0;3781:343:1;13400:112:0;13539:10;;13523:57;;-1:-1:-1;;;;;13539:10:0;;;;13523:57;;;;;13561:18;;13539:10;13523:57;13539:10;13523:57;13561:18;13539:10;13523:57;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13596:21:0;;;;;;;13248:377;13217:408::o;7737:186::-;7837:4;7854:39;2893:10;7877:7;7886:6;7854:8;:39::i;:::-;-1:-1:-1;7911:4:0;7737:186;;;;;:::o;6313:95::-;6366:7;4386:15;4327:1;4386:2;:15;:::i;:::-;4370:31;;:13;:31;:::i;:::-;6386:14;;6313:95;:::o;6537:481::-;-1:-1:-1;;;;;6713:19:0;;6669:4;6713:19;;;:11;:19;;;;;;;;2893:10;6713:33;;;;;;;;6779:26;;;;6757:116;;;;-1:-1:-1;;;6757:116:0;;6013:2:1;6757:116:0;;;5995:21:1;6052:2;6032:18;;;6025:30;6091:34;6071:18;;;6064:62;-1:-1:-1;;;6142:18:1;;;6135:38;6190:19;;6757:116:0;5811:404:1;6757:116:0;6884:36;6894:6;6902:9;6913:6;6884:9;:36::i;:::-;6931:57;6940:6;2893:10;6962:25;6981:6;6962:16;:25;:::i;:::-;6931:8;:57::i;:::-;-1:-1:-1;7006:4:0;;6537:481;-1:-1:-1;;;;6537:481:0:o;11859:222::-;3383:6;;-1:-1:-1;;;;;3383:6:0;2893:10;3383:22;3375:67;;;;-1:-1:-1;;;3375:67:0;;;;;;;:::i;:::-;11963:3:::1;11952:7;:14;;:33;;;;;11982:3;11970:8;:15;;11952:33;11944:71;;;::::0;-1:-1:-1;;;11944:71:0;;6916:2:1;11944:71:0::1;::::0;::::1;6898:21:1::0;6955:2;6935:18;;;6928:30;6994:27;6974:18;;;6967:55;7039:18;;11944:71:0::1;6714:349:1::0;11944:71:0::1;12026:7;:17:::0;;;;12054:8:::1;:19:::0;11859:222::o;3909:148::-;3383:6;;-1:-1:-1;;;;;3383:6:0;2893:10;3383:22;3375:67;;;;-1:-1:-1;;;3375:67:0;;;;;;;:::i;:::-;4016:1:::1;4000:6:::0;;3979:40:::1;::::0;-1:-1:-1;;;;;4000:6:0;;::::1;::::0;3979:40:::1;::::0;4016:1;;3979:40:::1;4047:1;4030:19:::0;;-1:-1:-1;;;;;;4030:19:0::1;::::0;;3909:148::o;14397:128::-;3383:6;;-1:-1:-1;;;;;3383:6:0;2893:10;3383:22;3375:67;;;;-1:-1:-1;;;3375:67:0;;;;;;;:::i;:::-;14461:1:::1;14451:7;:11:::0;;;14473:8:::1;:12:::0;4386:15:::1;4327:1;4386:2;:15;:::i;:::-;4370:31;::::0;:13:::1;:31;:::i;:::-;14496:11;:21:::0;14397:128::o;12649:560::-;3383:6;;-1:-1:-1;;;;;3383:6:0;2893:10;3383:22;3375:67;;;;-1:-1:-1;;;3375:67:0;;;;;;;:::i;:::-;12807:4:::1;-1:-1:-1::0;;;;;12785:27:0;::::1;::::0;12763:131:::1;;;::::0;-1:-1:-1;;;12763:131:0;;7270:2:1;12763:131:0::1;::::0;::::1;7252:21:1::0;7309:2;7289:18;;;7282:30;7348:34;7328:18;;;7321:62;-1:-1:-1;;;7399:18:1;;;7392:52;7461:19;;12763:131:0::1;7068:418:1::0;12763:131:0::1;12923:1;12913:7;:11;12905:58;;;;-1:-1:-1::0;;;12905:58:0::1;;;;;;;:::i;:::-;13007:43;::::0;-1:-1:-1;;;13007:43:0;;13044:4:::1;13007:43;::::0;::::1;1378:51:1::0;-1:-1:-1;;;;;13007:28:0;::::1;::::0;::::1;::::0;1351:18:1;;13007:43:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12996:7;:54;;12974:123;;;::::0;-1:-1:-1;;;12974:123:0;;3983:2:1;12974:123:0::1;::::0;::::1;3965:21:1::0;4022:2;4002:18;;;3995:30;-1:-1:-1;;;4041:18:1;;;4034:49;4100:18;;12974:123:0::1;3781:343:1::0;12974:123:0::1;13136:10;::::0;13108:48:::1;::::0;-1:-1:-1;;;13108:48:0;;-1:-1:-1;;;;;13136:10:0;;::::1;13108:48;::::0;::::1;7862:51:1::0;7929:18;;;7922:34;;;13108:27:0;;::::1;::::0;::::1;::::0;7835:18:1;;13108:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13172:29:0::1;::::0;13193:7;;13172:29:::1;::::0;;;::::1;12649:560:::0;;:::o;7365:192::-;7468:4;7485:42;2893:10;7509:9;7520:6;7485:9;:42::i;12368:273::-;3383:6;;-1:-1:-1;;;;;3383:6:0;2893:10;3383:22;3375:67;;;;-1:-1:-1;;;3375:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12462:21:0;::::1;;::::0;;;:12:::1;:21;::::0;;;;;::::1;;:30;;::::0;;12440:107:::1;;;::::0;-1:-1:-1;;;12440:107:0;;8451:2:1;12440:107:0::1;::::0;::::1;8433:21:1::0;8490:2;8470:18;;;8463:30;8529:29;8509:18;;;8502:57;8576:18;;12440:107:0::1;8249:351:1::0;12440:107:0::1;-1:-1:-1::0;;;;;12558:21:0;::::1;12582:5;12558:21:::0;;;:12:::1;:21;::::0;;;;;:29;;-1:-1:-1;;12558:29:0::1;::::0;;12603:30;::::1;::::0;12582:5;12603:30:::1;12368:273:::0;:::o;8557:203::-;3383:6;;-1:-1:-1;;;;;3383:6:0;2893:10;3383:22;3375:67;;;;-1:-1:-1;;;3375:67:0;;;;;;;:::i;:::-;8619:11:::1;::::0;-1:-1:-1;;;8619:11:0;::::1;;;8618:12;8610:48;;;::::0;-1:-1:-1;;;8610:48:0;;8807:2:1;8610:48:0::1;::::0;::::1;8789:21:1::0;8846:2;8826:18;;;8819:30;8885:25;8865:18;;;8858:53;8928:18;;8610:48:0::1;8605:347:1::0;8610:48:0::1;8669:11;:18:::0;;-1:-1:-1;;;;8698:18:0;-1:-1:-1;;;8698:18:0;;;8732:20:::1;::::0;::::1;::::0;-1:-1:-1;;8732:20:0::1;8557:203::o:0;12089:271::-;3383:6;;-1:-1:-1;;;;;3383:6:0;2893:10;3383:22;3375:67;;;;-1:-1:-1;;;3375:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12183:21:0;::::1;;::::0;;;:12:::1;:21;::::0;;;;;::::1;;:29;;:21:::0;:29;12161:106:::1;;;::::0;-1:-1:-1;;;12161:106:0;;9159:2:1;12161:106:0::1;::::0;::::1;9141:21:1::0;9198:2;9178:18;;;9171:30;9237:29;9217:18;;;9210:57;9284:18;;12161:106:0::1;8957:351:1::0;12161:106:0::1;-1:-1:-1::0;;;;;12278:21:0;::::1;;::::0;;;:12:::1;:21;::::0;;;;;:28;;-1:-1:-1;;12278:28:0::1;12302:4;12278:28;::::0;;12322:30;::::1;::::0;12278:21;12322:30:::1;12089:271:::0;:::o;7931:618::-;3383:6;;-1:-1:-1;;;;;3383:6:0;2893:10;3383:22;3375:67;;;;-1:-1:-1;;;3375:67:0;;;;;;;:::i;:::-;7996:15:::1;:95:::0;;-1:-1:-1;;;;;;7996:95:0::1;8038:42;7996:95:::0;;::::1;::::0;;;8129:25:::1;::::0;;-1:-1:-1;;;8129:25:0;;;;:23:::1;::::0;:25:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;8038:42;8129:25:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8118:48:0::1;;8189:4;8209:15;;;;;;;;;-1:-1:-1::0;;;;;8209:15:0::1;-1:-1:-1::0;;;;;8209:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8118:124;::::0;-1:-1:-1;;;;;;8118:124:0::1;::::0;;;;;;-1:-1:-1;;;;;9799:15:1;;;8118:124:0::1;::::0;::::1;9781:34:1::0;9851:15;;9831:18;;;9824:43;9716:18;;8118:124:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8102:13;:140:::0;;-1:-1:-1;;;;;;8102:140:0::1;-1:-1:-1::0;;;;;8102:140:0;;::::1;;::::0;;8287:15:::1;::::0;8255:62:::1;::::0;8272:4:::1;::::0;8287:15:::1;-1:-1:-1::0;;8255:8:0::1;:62::i;:::-;8330:15;::::0;-1:-1:-1;;;;;8330:15:0::1;:31;8369:9;8402:4;8422:24;8402:4:::0;-1:-1:-1;;;;;6507:16:0;6480:7;6507:16;;;:7;:16;;;;;;;6414:117;8422:24:::1;8461:1;8477::::0;8493:7:::1;3296::::0;3323:6;-1:-1:-1;;;;;3323:6:0;;3258:79;8493:7:::1;8330:211;::::0;::::1;::::0;;;-1:-1:-1;;;;;;8330:211:0;;;-1:-1:-1;;;;;10237:15:1;;;8330:211:0::1;::::0;::::1;10219:34:1::0;10269:18;;;10262:34;;;;10312:18;;;10305:34;;;;10355:18;;;10348:34;10419:15;;;10398:19;;;10391:44;8515:15:0::1;10451:19:1::0;;;10444:35;10153:19;;8330:211:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7931:618::o:0;3468:238::-;3383:6;;-1:-1:-1;;;;;3383:6:0;2893:10;3383:22;3375:67;;;;-1:-1:-1;;;3375:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3571:22:0;::::1;3549:110;;;::::0;-1:-1:-1;;;3549:110:0;;11003:2:1;3549:110:0::1;::::0;::::1;10985:21:1::0;11042:2;11022:18;;;11015:30;11081:34;11061:18;;;11054:62;-1:-1:-1;;;11132:18:1;;;11125:36;11178:19;;3549:110:0::1;10801:402:1::0;3549:110:0::1;3670:28;3689:8;3670:18;:28::i;:::-;3468:238:::0;:::o;7024:335::-;-1:-1:-1;;;;;7117:19:0;;7109:68;;;;-1:-1:-1;;;7109:68:0;;11410:2:1;7109:68:0;;;11392:21:1;11449:2;11429:18;;;11422:30;11488:34;11468:18;;;11461:62;-1:-1:-1;;;11539:18:1;;;11532:34;11583:19;;7109:68:0;11208:400:1;7109:68:0;-1:-1:-1;;;;;7196:21:0;;7188:68;;;;-1:-1:-1;;;7188:68:0;;11815:2:1;7188:68:0;;;11797:21:1;11854:2;11834:18;;;11827:30;11893:34;11873:18;;;11866:62;-1:-1:-1;;;11944:18:1;;;11937:32;11986:19;;7188:68:0;11613:398:1;7188:68:0;-1:-1:-1;;;;;7267:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7319:32;;1586:25:1;;;7319:32:0;;1559:18:1;7319:32:0;;;;;;;7024:335;;;:::o;8920:2931::-;-1:-1:-1;;;;;9008:18:0;;9000:68;;;;-1:-1:-1;;;9000:68:0;;12218:2:1;9000:68:0;;;12200:21:1;12257:2;12237:18;;;12230:30;12296:34;12276:18;;;12269:62;-1:-1:-1;;;12347:18:1;;;12340:35;12392:19;;9000:68:0;12016:401:1;9000:68:0;-1:-1:-1;;;;;9087:16:0;;9079:64;;;;-1:-1:-1;;;9079:64:0;;12624:2:1;9079:64:0;;;12606:21:1;12663:2;12643:18;;;12636:30;12702:34;12682:18;;;12675:62;-1:-1:-1;;;12753:18:1;;;12746:33;12796:19;;9079:64:0;12422:399:1;9079:64:0;9171:1;9162:6;:10;9154:64;;;;-1:-1:-1;;;9154:64:0;;13028:2:1;9154:64:0;;;13010:21:1;13067:2;13047:18;;;13040:30;13106:34;13086:18;;;13079:62;-1:-1:-1;;;13157:18:1;;;13150:39;13206:19;;9154:64:0;12826:405:1;9154:64:0;9285:7;;-1:-1:-1;;;;;9310:18:0;;9231:22;9310:18;;;:12;:18;;;;;;;;9309:19;:40;;;;-1:-1:-1;;;;;;9333:16:0;;;;;;:12;:16;;;;;;;;9332:17;9309:40;9305:116;;;9374:11;;-1:-1:-1;;;9374:11:0;;;;9366:43;;;;-1:-1:-1;;;9366:43:0;;13438:2:1;9366:43:0;;;13420:21:1;13477:2;13457:18;;;13450:30;-1:-1:-1;;;13496:18:1;;;13489:49;13555:18;;9366:43:0;13236:343:1;9366:43:0;9437:10;;-1:-1:-1;;;9437:10:0;;;;;:26;;-1:-1:-1;9452:11:0;;-1:-1:-1;;;9452:11:0;;;;9451:12;9437:26;9433:185;;;-1:-1:-1;;;;;9480:13:0;;;;;;:7;:13;;;;;:23;;9497:6;;9480:13;:23;;9497:6;;9480:23;:::i;:::-;;;;-1:-1:-1;;;;;;;9518:11:0;;;;;;:7;:11;;;;;:21;;9533:6;;9518:11;:21;;9533:6;;9518:21;:::i;:::-;;;;;;;;9574:2;-1:-1:-1;;;;;9559:26:0;9568:4;-1:-1:-1;;;;;9559:26:0;-1:-1:-1;;;;;;;;;;;9578:6:0;9559:26;;;;1586:25:1;;1574:2;1559:18;;1440:177;9559:26:0;;;;;;;;9600:7;8920:2931;;;:::o;9433:185::-;9656:13;;-1:-1:-1;;;;;9648:21:0;;;9656:13;;9648:21;:68;;;;-1:-1:-1;9700:15:0;;-1:-1:-1;;;;;9686:30:0;;;9700:15;;9686:30;;9648:68;:102;;;;-1:-1:-1;;;;;;9734:16:0;;;;;;:12;:16;;;;;;;;9733:17;9648:102;9630:383;;;9795:11;;9785:6;:21;;9777:59;;;;-1:-1:-1;;;9777:59:0;;13916:2:1;9777:59:0;;;13898:21:1;13955:2;13935:18;;;13928:30;-1:-1:-1;;;13974:18:1;;;13967:55;14039:18;;9777:59:0;13714:349:1;9777:59:0;9903:11;;9893:6;9877:13;9887:2;-1:-1:-1;;;;;6507:16:0;6480:7;6507:16;;;:7;:16;;;;;;;6414:117;9877:13;:22;;;;:::i;:::-;:37;;9851:125;;;;-1:-1:-1;;;9851:125:0;;14270:2:1;9851:125:0;;;14252:21:1;14309:2;14289:18;;;14282:30;14348:28;14328:18;;;14321:56;14394:18;;9851:125:0;14068:350:1;9851:125:0;9991:8;:10;;;:8;:10;;;:::i;:::-;;;;;;9630:383;10051:13;;-1:-1:-1;;;;;10043:21:0;;;10051:13;;10043:21;;;;:57;;-1:-1:-1;;;;;;10082:18:0;;;;;;:12;:18;;;;;;;;10081:19;10043:57;:91;;;;-1:-1:-1;;;;;;10118:16:0;;;;;;:12;:16;;;;;;;;10117:17;10043:91;10025:207;;;10179:11;;10169:6;:21;;10161:59;;;;-1:-1:-1;;;10161:59:0;;13916:2:1;10161:59:0;;;13898:21:1;13955:2;13935:18;;;13928:30;-1:-1:-1;;;13974:18:1;;;13967:55;14039:18;;10161:59:0;13714:349:1;10161:59:0;10268:13;;-1:-1:-1;;;;;10262:19:0;;;10268:13;;10262:19;:57;;;;-1:-1:-1;;;;;;10298:21:0;;10314:4;10298:21;;10262:57;:93;;;;-1:-1:-1;;;;;;10337:18:0;;;;;;:12;:18;;;;;;;;10336:19;10262:93;:127;;;;-1:-1:-1;;;;;;10373:16:0;;;;;;:12;:16;;;;;;;;10372:17;10262:127;10244:209;;;-1:-1:-1;10433:8:0;;10244:209;10514:4;10465:28;6507:16;;;:7;:16;;;;;;10550:10;;-1:-1:-1;;;10550:10:0;;;;10549:11;:65;;;;;10601:13;;10577:20;:37;;10549:65;:101;;;;-1:-1:-1;10637:13:0;;-1:-1:-1;;;;;10631:19:0;;;10637:13;;10631:19;10549:101;:129;;;;-1:-1:-1;10667:11:0;;-1:-1:-1;;;10667:11:0;;;;10549:129;:158;;;;;10706:1;10695:8;;:12;10549:158;:194;;;;-1:-1:-1;;;;;;10725:18:0;;;;;;:12;:18;;;;;;;;10724:19;10549:194;:234;;;;;10770:13;;10760:6;:23;;10549:234;:268;;;;-1:-1:-1;;;;;;10801:16:0;;;;;;:12;:16;;;;;;;;10800:17;10549:268;10531:601;;;10844:102;10878:53;10882:6;10890:40;10894:20;10916:13;;10890:3;:40::i;:::-;10878:3;:53::i;:::-;10844:15;:102::i;:::-;10990:21;11030:22;;11026:95;;11073:32;11083:21;11073:9;:32::i;:::-;10829:303;10531:601;11148:19;;11144:700;;11184:17;11232:3;11205:23;11214:14;11205:6;:23;:::i;:::-;11204:31;;;;:::i;:::-;11184:51;-1:-1:-1;11250:15:0;11268:18;11184:51;11268:6;:18;:::i;:::-;-1:-1:-1;;;;;11323:18:0;;11301:19;11323:18;;;:12;:18;;;;;;11250:36;;-1:-1:-1;11301:19:0;11323:18;;:75;;11393:4;11323:75;;;11361:4;11323:75;-1:-1:-1;;;;;11425:18:0;;;;;;:12;:18;;;;;;11301:97;;-1:-1:-1;11425:18:0;;:39;;11455:9;11425:39;;;11446:6;11425:39;-1:-1:-1;;;;;11479:20:0;;;;;;:7;:20;;;;;:33;;11413:51;;-1:-1:-1;11413:51:0;;11479:20;;;:33;;11413:51;;11479:33;:::i;:::-;;;;-1:-1:-1;;11532:40:0;;1586:25:1;;;11555:4:0;;-1:-1:-1;;;;;11532:40:0;;;-1:-1:-1;;;;;;;;;;;11532:40:0;1574:2:1;1559:18;11532:40:0;;;;;;;-1:-1:-1;;;;;11587:13:0;;;;;;:7;:13;;;;;:23;;11604:6;;11587:13;:23;;11604:6;;11587:23;:::i;:::-;;;;-1:-1:-1;;;;;;;11625:11:0;;;;;;:7;:11;;;;;:22;;11640:7;;11625:11;:22;;11640:7;;11625:22;:::i;:::-;;;;;;;;11682:2;-1:-1:-1;;;;;11667:27:0;11676:4;-1:-1:-1;;;;;11667:27:0;-1:-1:-1;;;;;;;;;;;11686:7:0;11667:27;;;;1586:25:1;;1574:2;1559:18;;1440:177;11667:27:0;;;;;;;;11169:537;;;11144:700;;;-1:-1:-1;;;;;11727:13:0;;;;;;:7;:13;;;;;:23;;11744:6;;11727:13;:23;;11744:6;;11727:23;:::i;:::-;;;;-1:-1:-1;;;;;;;11765:11:0;;;;;;:7;:11;;;;;:21;;11780:6;;11765:11;:21;;11780:6;;11765:21;:::i;:::-;;;;;;;;11821:2;-1:-1:-1;;;;;11806:26:0;11815:4;-1:-1:-1;;;;;11806:26:0;-1:-1:-1;;;;;;;;;;;11825:6:0;11806:26;;;;1586:25:1;;1574:2;1559:18;;1440:177;11806:26:0;;;;;;;;11144:700;8989:2862;;8920:2931;;;:::o;3712:191::-;3786:16;3805:6;;-1:-1:-1;;;;;3822:17:0;;;-1:-1:-1;;;;;;3822:17:0;;;;;;3855:40;;3805:6;;;;;;;3855:40;;3786:16;3855:40;3775:128;3712:191;:::o;8805:107::-;8862:7;8894:1;8890;:5;8889:15;;8903:1;8889:15;;;8899:1;8889:15;8882:22;8805:107;-1:-1:-1;;;8805:107:0:o;13633:550::-;5472:10;:17;;-1:-1:-1;;;;5472:17:0;-1:-1:-1;;;5472:17:0;;;13718:15;13710:57:::1;;;::::0;-1:-1:-1;;;13710:57:0;;14987:2:1;13710:57:0::1;::::0;::::1;14969:21:1::0;15026:2;15006:18;;;14999:30;15065:31;15045:18;;;15038:59;15114:18;;13710:57:0::1;14785:353:1::0;13710:57:0::1;13802:16;::::0;;13816:1:::1;13802:16:::0;;;;;::::1;::::0;;13778:21:::1;::::0;13802:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13802:16:0::1;13778:40;;13847:4;13829;13834:1;13829:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13829:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13873:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;13873:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;13829:7;;13873:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13863:4;13868:1;13863:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13863:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;13938:15:::1;::::0;13906:62:::1;::::0;13923:4:::1;::::0;13938:15:::1;13956:11:::0;13906:8:::1;:62::i;:::-;13979:15;::::0;:196:::1;::::0;-1:-1:-1;;;13979:196:0;;-1:-1:-1;;;;;13979:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;14060:11;;13979:15:::1;::::0;14102:4;;14129::::1;::::0;14149:15:::1;::::0;13979:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5512:10:0;:18;;-1:-1:-1;;;;5512:18:0;;;-1:-1:-1;;;;13633:550:0:o;14191:198::-;14262:1;14253:6;:10;14245:52;;;;-1:-1:-1;;;14245:52:0;;14987:2:1;14245:52:0;;;14969:21:1;15026:2;15006:18;;;14999:30;15065:31;15045:18;;;15038:59;15114:18;;14245:52:0;14785:353:1;14245:52:0;14308:10;;-1:-1:-1;;;;;14308:10:0;:31;14328:10;14337:1;14328:6;:10;:::i;:::-;14308:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14350:10:0;;-1:-1:-1;;;;;14350:10:0;:31;14370:10;14379:1;14370:6;:10;:::i;:::-;14350:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14191:198;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1622:456::-;1699:6;1707;1715;1768:2;1756:9;1747:7;1743:23;1739:32;1736:52;;;1784:1;1781;1774:12;1736:52;1823:9;1810:23;1842:31;1867:5;1842:31;:::i;:::-;1892:5;-1:-1:-1;1949:2:1;1934:18;;1921:32;1962:33;1921:32;1962:33;:::i;:::-;1622:456;;2014:7;;-1:-1:-1;;;2068:2:1;2053:18;;;;2040:32;;1622:456::o;2272:248::-;2340:6;2348;2401:2;2389:9;2380:7;2376:23;2372:32;2369:52;;;2417:1;2414;2407:12;2369:52;-1:-1:-1;;2440:23:1;;;2510:2;2495:18;;;2482:32;;-1:-1:-1;2272:248:1:o;2525:247::-;2584:6;2637:2;2625:9;2616:7;2612:23;2608:32;2605:52;;;2653:1;2650;2643:12;2605:52;2692:9;2679:23;2711:31;2736:5;2711:31;:::i;2985:388::-;3053:6;3061;3114:2;3102:9;3093:7;3089:23;3085:32;3082:52;;;3130:1;3127;3120:12;3082:52;3169:9;3156:23;3188:31;3213:5;3188:31;:::i;:::-;3238:5;-1:-1:-1;3295:2:1;3280:18;;3267:32;3308:33;3267:32;3308:33;:::i;:::-;3360:7;3350:17;;;2985:388;;;;;:::o;3378:398::-;3580:2;3562:21;;;3619:2;3599:18;;;3592:30;3658:34;3653:2;3638:18;;3631:62;-1:-1:-1;;;3724:2:1;3709:18;;3702:32;3766:3;3751:19;;3378:398::o;4129:127::-;4190:10;4185:3;4181:20;4178:1;4171:31;4221:4;4218:1;4211:15;4245:4;4242:1;4235:15;4261:416;4350:1;4387:5;4350:1;4401:270;4422:7;4412:8;4409:21;4401:270;;;4481:4;4477:1;4473:6;4469:17;4463:4;4460:27;4457:53;;;4490:18;;:::i;:::-;4540:7;4530:8;4526:22;4523:55;;;4560:16;;;;4523:55;4639:22;;;;4599:15;;;;4401:270;;;4405:3;4261:416;;;;;:::o;4682:806::-;4731:5;4761:8;4751:80;;-1:-1:-1;4802:1:1;4816:5;;4751:80;4850:4;4840:76;;-1:-1:-1;4887:1:1;4901:5;;4840:76;4932:4;4950:1;4945:59;;;;5018:1;5013:130;;;;4925:218;;4945:59;4975:1;4966:10;;4989:5;;;5013:130;5050:3;5040:8;5037:17;5034:43;;;5057:18;;:::i;:::-;-1:-1:-1;;5113:1:1;5099:16;;5128:5;;4925:218;;5227:2;5217:8;5214:16;5208:3;5202:4;5199:13;5195:36;5189:2;5179:8;5176:16;5171:2;5165:4;5162:12;5158:35;5155:77;5152:159;;;-1:-1:-1;5264:19:1;;;5296:5;;5152:159;5343:34;5368:8;5362:4;5343:34;:::i;:::-;5413:6;5409:1;5405:6;5401:19;5392:7;5389:32;5386:58;;;5424:18;;:::i;:::-;5462:20;;4682:806;-1:-1:-1;;;4682:806:1:o;5493:140::-;5551:5;5580:47;5621:4;5611:8;5607:19;5601:4;5580:47;:::i;5638:168::-;5711:9;;;5742;;5759:15;;;5753:22;;5739:37;5729:71;;5780:18;;:::i;6220:128::-;6287:9;;;6308:11;;;6305:37;;;6322:18;;:::i;6353:356::-;6555:2;6537:21;;;6574:18;;;6567:30;6633:34;6628:2;6613:18;;6606:62;6700:2;6685:18;;6353:356::o;7491:184::-;7561:6;7614:2;7602:9;7593:7;7589:23;7585:32;7582:52;;;7630:1;7627;7620:12;7582:52;-1:-1:-1;7653:16:1;;7491:184;-1:-1:-1;7491:184:1:o;7967:277::-;8034:6;8087:2;8075:9;8066:7;8062:23;8058:32;8055:52;;;8103:1;8100;8093:12;8055:52;8135:9;8129:16;8188:5;8181:13;8174:21;8167:5;8164:32;8154:60;;8210:1;8207;8200:12;9313:251;9383:6;9436:2;9424:9;9415:7;9411:23;9407:32;9404:52;;;9452:1;9449;9442:12;9404:52;9484:9;9478:16;9503:31;9528:5;9503:31;:::i;10490:306::-;10578:6;10586;10594;10647:2;10635:9;10626:7;10622:23;10618:32;10615:52;;;10663:1;10660;10653:12;10615:52;10692:9;10686:16;10676:26;;10742:2;10731:9;10727:18;10721:25;10711:35;;10786:2;10775:9;10771:18;10765:25;10755:35;;10490:306;;;;;:::o;13584:125::-;13649:9;;;13670:10;;;13667:36;;;13683:18;;:::i;14423:135::-;14462:3;14483:17;;;14480:43;;14503:18;;:::i;:::-;-1:-1:-1;14550:1:1;14539:13;;14423:135::o;14563:217::-;14603:1;14629;14619:132;;14673:10;14668:3;14664:20;14661:1;14654:31;14708:4;14705:1;14698:15;14736:4;14733:1;14726:15;14619:132;-1:-1:-1;14765:9:1;;14563:217::o;15275:127::-;15336:10;15331:3;15327:20;15324:1;15317:31;15367:4;15364:1;15357:15;15391:4;15388:1;15381:15;15407:980;15669:4;15717:3;15706:9;15702:19;15748:6;15737:9;15730:25;15774:2;15812:6;15807:2;15796:9;15792:18;15785:34;15855:3;15850:2;15839:9;15835:18;15828:31;15879:6;15914;15908:13;15945:6;15937;15930:22;15983:3;15972:9;15968:19;15961:26;;16022:2;16014:6;16010:15;15996:29;;16043:1;16053:195;16067:6;16064:1;16061:13;16053:195;;;16132:13;;-1:-1:-1;;;;;16128:39:1;16116:52;;16223:15;;;;16188:12;;;;16164:1;16082:9;16053:195;;;-1:-1:-1;;;;;;;16304:32:1;;;;16299:2;16284:18;;16277:60;-1:-1:-1;;;16368:3:1;16353:19;16346:35;16265:3;15407:980;-1:-1:-1;;;15407:980:1:o

Swarm Source

ipfs://bcd4276f35bbf245f5ca7bd45b37704417268ff9a1452e498ee28fcd40d84f3f

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.