ETH Price: $3,442.97 (-1.29%)
Gas: 9 Gwei

Contract

0x42b8161a6d295Ac7156245aA6BB99522e69b0ae4
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve185824992023-11-16 5:56:59245 days ago1700114219IN
0x42b8161a...2e69b0ae4
0 ETH0.0013052128.0160247
Approve185824992023-11-16 5:56:59245 days ago1700114219IN
0x42b8161a...2e69b0ae4
0 ETH0.0013052128.0160247
Approve185824992023-11-16 5:56:59245 days ago1700114219IN
0x42b8161a...2e69b0ae4
0 ETH0.0013052128.0160247
Approve185824992023-11-16 5:56:59245 days ago1700114219IN
0x42b8161a...2e69b0ae4
0 ETH0.0013052128.0160247
Approve185824992023-11-16 5:56:59245 days ago1700114219IN
0x42b8161a...2e69b0ae4
0 ETH0.0013052128.0160247
Approve185824962023-11-16 5:56:23245 days ago1700114183IN
0x42b8161a...2e69b0ae4
0 ETH0.0012374626.55494057
Approve185824952023-11-16 5:56:11245 days ago1700114171IN
0x42b8161a...2e69b0ae4
0 ETH0.0013342828.64014892
Approve185824952023-11-16 5:56:11245 days ago1700114171IN
0x42b8161a...2e69b0ae4
0 ETH0.0013342828.64014892
Approve185824952023-11-16 5:56:11245 days ago1700114171IN
0x42b8161a...2e69b0ae4
0 ETH0.0013342828.64014892
Approve185824952023-11-16 5:56:11245 days ago1700114171IN
0x42b8161a...2e69b0ae4
0 ETH0.0013342828.64014892
Approve185824952023-11-16 5:56:11245 days ago1700114171IN
0x42b8161a...2e69b0ae4
0 ETH0.0013342828.64014892
Update Sell Fee185824892023-11-16 5:54:59245 days ago1700114099IN
0x42b8161a...2e69b0ae4
0 ETH0.0005938624.68047354
Update Sell Fee185786792023-11-15 17:09:11245 days ago1700068151IN
0x42b8161a...2e69b0ae4
0 ETH0.0026674758.02003634
Enable Trading185786122023-11-15 16:55:35245 days ago1700067335IN
0x42b8161a...2e69b0ae4
0 ETH0.0020237637.84938811
Exclude From Lim...185785702023-11-15 16:47:11245 days ago1700066831IN
0x42b8161a...2e69b0ae4
0 ETH0.0010319338.96607047
Exclude From Fee...185785692023-11-15 16:46:59245 days ago1700066819IN
0x42b8161a...2e69b0ae4
0 ETH0.0010489839.49622015
Approve185768412023-11-15 10:57:35245 days ago1700045855IN
0x42b8161a...2e69b0ae4
0 ETH0.0012231326.41758297
0x60c06040185768342023-11-15 10:55:59245 days ago1700045759IN
 Create: NATURALSTUPIDITY
0 ETH0.0641763821.63972154

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
NATURALSTUPIDITY

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 2023-11-15
*/

// SPDX-License-Identifier: MIT

/*

TG: https://t.me/NaturalStupidityPortal
X: https://twitter.com/NatStuERC20


*/

pragma solidity ^0.8.0 <0.9.0;

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 IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

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

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

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    uint256 private _totalSupply;
    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
    unchecked {
        _approve(sender, _msgSender(), currentAllowance - 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) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
    unchecked {
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);
    }

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
    unchecked {
        _balances[sender] = senderBalance - amount;
    }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    function _createInitialSupply(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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);
    }
}

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 renounceOwnership() external virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

interface IDexRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
    external
    payable
    returns (
        uint256 amountToken,
        uint256 amountETH,
        uint256 liquidity
    );
}

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

contract NATURALSTUPIDITY  is ERC20, Ownable {

    uint256 public maxBuyAmount;
    uint256 public maxSellAmount;
    uint256 public maxWalletAmount;

    IDexRouter public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;

    bool private _swapping;
    uint256 public swapTokensAtAmount;

    address public MarketingAddress;

    uint256 public tradingActiveBlock = 0; 
    uint256 public deadBlocks = 0;

    bool public limitsInEffect = true;
    bool public tradingActive = false;
    bool public swapEnabled = false;
    bool public sniperManagementEnabled = true;

    uint256 public buyFee;

    uint256 public sellFee;

    mapping (address => bool) public isExcludedFromFees;
    mapping (address => bool) public isExcludedFromLimits;
    mapping (address => bool) public automatedMarketMakerPairs;
    mapping (address => bool) public isSniper;

    constructor() ERC20("NATURAL STUPIDITY", "FRIED") {

        address newOwner = msg.sender; 

        IDexRouter _uniswapV2Router = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _excludeFromLimits(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;

        address tokenA = address(this);
        address tokenB = _uniswapV2Router.WETH();
        (address token0, address token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA);
        uniswapV2Pair = address(uint160(uint(keccak256(abi.encodePacked(
            hex'ff',
            _uniswapV2Router.factory(),
            keccak256(abi.encodePacked(token0, token1)),
            hex'96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f'
        )))));

        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);

        uint256 totalSupply = 1000000  * 1e18;

        maxBuyAmount = totalSupply * 2 / 100;
        maxSellAmount = totalSupply *  1 / 100;
        maxWalletAmount = totalSupply * 3 / 100;
        swapTokensAtAmount = totalSupply * 1 / 100; 

        buyFee = 0;
        sellFee = 0;

        _excludeFromLimits(newOwner, true);
        _excludeFromLimits(address(this), true);

        MarketingAddress = address(0x9b74EEA048aceD1eae8cAe3ca36C017061637f65);

        excludeFromFees(newOwner, true);
        excludeFromFees(address(this), true);

        _createInitialSupply(newOwner, totalSupply);
        transferOwnership(newOwner);
    }

    receive() external payable {}

    function createPair() external onlyOwner {
        IDexFactory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
    }

    function updateMaxBuyAmount(uint256 newAmount) external onlyOwner {
        require(newAmount * 1e18 >= (totalSupply() * 1 / 100), "FRIED: new max buy amount less than 1% of total supply");
        maxBuyAmount = newAmount * 1e18;
    }

    function updateMaxSellAmount(uint256 newAmount) external onlyOwner {
        require(newAmount * 1e18 >= (totalSupply() * 1 / 100), "FRIED: new max sell amount less than 1% of total supply");
        maxSellAmount = newAmount * 1e18;
    }

    function updateMaxWalletAmount(uint256 newAmount) external onlyOwner {
        require(newAmount * 1e18 >= (totalSupply() * 2 / 100), "FRIED: new max wallet amount less than 2% of total supply");
        maxWalletAmount = newAmount * 1e18;
    }

    function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner {
        require(newAmount * 1e18 >= totalSupply() * 1 / 100000, "FRIED: new swap amount less than 0.001% of total supply");
        require(newAmount <= totalSupply() * 1 / 1000, "FRIED: new Swap amount exceeds 0.1% of total supply");
        swapTokensAtAmount = newAmount * 1e18;
    }

    function removeLimits() external onlyOwner {
        limitsInEffect = false;
    }

    function _excludeFromLimits(address account, bool isExcluded) private {
        isExcludedFromLimits[account] = isExcluded;
    }

    function excludeFromLimits(address account, bool isExcluded) external onlyOwner {
        if (!isExcluded) {
            require(account != uniswapV2Pair, "FRIED: account to be exscluded is pair address");
        }
        _excludeFromLimits(account, isExcluded);
    }

    function updateBuyFee(uint256 newBuyFee) external onlyOwner {
        require(newBuyFee <= 5, "FRIED: new buy fee exceeds 5%");
        buyFee = newBuyFee;
    }

    function updateSellFee(uint256 newSellFee) external onlyOwner {
        if (sellFee > 5) {
            require(newSellFee <= sellFee, "FRIED: new sell fee exceeds current sell fee");
        } else {
            require(sellFee <= 5, "FRIED: new sell fee exceeds 5%");
        }
        sellFee = newSellFee;
    }

    function excludeFromFees(address account, bool isExcluded) public onlyOwner {
        isExcludedFromFees[account] = isExcluded;
    }

    function _transfer(address from, address to, uint256 amount) internal override {
        require(amount > 0, "FRIED: amount is zero");
        require(!isSniper[from], "FRIED: sender marked as sniper");
        require(!isSniper[to], "FRIED: recipient marked as sniper");
 
        if (limitsInEffect) {
            if (from != owner() && to != owner() && !isExcludedFromFees[from] && !isExcludedFromFees[to]) {
                require(tradingActive, "FRIED: trading is not active");
                if (tradingActiveBlock > 0 && block.number < (tradingActiveBlock + deadBlocks) ) {
                    isSniper[to] = true;
                }
                // buy
                if (automatedMarketMakerPairs[from] && !isExcludedFromLimits[to]) {
                    require(amount <= maxBuyAmount, "FRIED: transfer amount exceeds max buy amount");
                    require(amount + balanceOf(to) <= maxWalletAmount, "FRIED: balance exceeds max wallet amount");
                }
                // sell
                else if (automatedMarketMakerPairs[to] && !isExcludedFromLimits[from]) {
                    require(amount <= maxSellAmount, "FRIED: transfer amount exceeds max sell amount");
                }
                else if (!isExcludedFromLimits[to]) {
                    require(amount + balanceOf(to) <= maxWalletAmount, "FRIED: balance exceeds max wallet amount");
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = contractTokenBalance >= swapTokensAtAmount;
        if(canSwap && swapEnabled && !_swapping && !automatedMarketMakerPairs[from] && !isExcludedFromFees[from] && !isExcludedFromFees[to]) {
            _swapping = true;
            _swapBack();
            _swapping = false;
        }

        uint256 fee = 0;
        uint256 penaltyAmount = 0;
        if(!isExcludedFromFees[from] && !isExcludedFromFees[to]){
            // sniper penalty
            if (tradingActiveBlock > 0 && block.number < (tradingActiveBlock + deadBlocks) ) {
                penaltyAmount = amount * 98 / 100;
                super._transfer(from, MarketingAddress, penaltyAmount);
            }
            // sell
            else if (automatedMarketMakerPairs[to] && sellFee > 0){
                fee = amount * sellFee / 100;
            }
            // buy
            else if(automatedMarketMakerPairs[from] && buyFee > 0) {
                fee = amount * buyFee / 100;
            }
            if(fee > 0){
                super._transfer(from, address(this), fee);
            }
            amount -= fee + penaltyAmount;
        }

        super._transfer(from, to, amount);
    }

    function _swapTokensForEth(uint256 tokenAmount) private {
        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 setAutomatedMarketMakerPair(address pair, bool isAMM) external onlyOwner {
        if(!isAMM) {
            require(pair != uniswapV2Pair, "FRIED: automated market maker pair is uniswap V2 pair");
        }
        _setAutomatedMarketMakerPair(pair, isAMM);
    }

    function _setAutomatedMarketMakerPair(address pair, bool isAMM) private {
        automatedMarketMakerPairs[pair] = isAMM;
        _excludeFromLimits(pair, isAMM);
    }

    // once enabled, can never be turned off
    function enableTrading(bool _status, uint256 _deadBlocks) external onlyOwner {
        require(!tradingActive, "FRIED: trading is already active");
        require(_deadBlocks <= 5, "FRIED: deadblocks amount exceeds 5");
        tradingActive = _status;
        swapEnabled = true;

        if (tradingActive && tradingActiveBlock == 0) {
            tradingActiveBlock = block.number;
            deadBlocks = _deadBlocks;
        }
    }

    function setMarketingAddress(address newMarketingAddress) external onlyOwner {
        require(newMarketingAddress != address(0), "FRIED: new marketing address is the zero address");
        MarketingAddress = payable(newMarketingAddress);
    }

    function manageSniper(address sniperAddress, bool status) external onlyOwner {
        require(sniperManagementEnabled, "FRIED: sniper management permanently disabled");
        isSniper[sniperAddress] = status;
    }

    function manageSnipers(address[] calldata addresses, bool status) external onlyOwner {
        require(sniperManagementEnabled, "FRIED: snipers management permanently disabled");
        for (uint256 i; i < addresses.length; ++i) {
            isSniper[addresses[i]] = status;
        }
    }

    // permanently disable sniper management
    function disableSniperManagement() external onlyOwner {
        sniperManagementEnabled = false;
    }

    function _swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance == 0) {
            return;
        }
        if (contractBalance > swapTokensAtAmount * 10) {
            contractBalance = swapTokensAtAmount * 10;
        }
        _swapTokensForEth(contractBalance);
        bool success;
        (success,) = address(MarketingAddress).call{value: address(this).balance}("");
    }

    function transferForeignToken(address token, address to) external onlyOwner returns (bool) {
        require(token != address(0), "FRIED: token is the zero address");
        uint256 _contractBalance = IERC20(token).balanceOf(address(this));
        return IERC20(token).transfer(to, _contractBalance);
    }

    function withdrawStuckETH() external onlyOwner {
        bool success;
        (success,) = address(msg.sender).call{value: address(this).balance}("");
    }

}

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":[{"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":"MarketingAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","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":[],"name":"disableSniperManagement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"},{"internalType":"uint256","name":"_deadBlocks","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"excludeFromLimits","outputs":[],"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":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isSniper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sniperAddress","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manageSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manageSnipers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"isAMM","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingAddress","type":"address"}],"name":"setMarketingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sniperManagementEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActiveBlock","outputs":[{"internalType":"uint256","name":"","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":"token","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"transferForeignToken","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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"}],"name":"updateBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateMaxBuyAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateMaxSellAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"updateSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040525f600c819055600d55600e805463ffffffff191663010000011790553480156200002c575f80fd5b50604051806040016040528060118152602001704e41545552414c2053545550494449545960781b81525060405180604001604052806005815260200164119492515160da1b815250816003908162000086919062000763565b50600462000095828262000763565b5050505f620000a96200046d60201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250905f905f80516020620035ab833981519152908290a350737a250d5630b4cf539739df2c5dacb4c659f2488d5f81905260126020527f3c6737805ae477fd0cfdda13dc5f99b32fcbfecb81e47f9e11e1b03813c08ec2805460ff191660011790553390806001600160a01b03166080816001600160a01b0316815250505f3090505f826001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200018c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001b291906200082f565b90505f80826001600160a01b0316846001600160a01b031610620001d8578284620001db565b83835b91509150846001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200021c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200024291906200082f565b6040516001600160601b0319606085811b8216602084015284901b16603482015260480160405160208183030381529060405280519060200120604051602001620002f29291907fff00000000000000000000000000000000000000000000000000000000000000815260609290921b6001600160601b031916600183015260158201527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f603582015260550190565b60408051601f1981840301815291815281516020928301206001600160a01b031660a08190525f908152601383528181208054600160ff1991821681179092556012909452919020805490921617905569d3c21bcecceda100000060646200035c82600262000872565b62000368919062000892565b60065560646200037a82600162000872565b62000386919062000892565b60075560646200039882600362000872565b620003a4919062000892565b6008556064620003b682600162000872565b620003c2919062000892565b600a555f600f81905560108190556001600160a01b0388168152601260205260409020805460ff19166001179055305f908152601260205260409020805460ff19166001179055600b80546001600160a01b031916739b74eea048aced1eae8cae3ca36c017061637f651790556200043c87600162000471565b6200044930600162000471565b620004558782620004e9565b6200046087620005cb565b50505050505050620008c8565b3390565b6005546001600160a01b03163314620004bf5760405162461bcd60e51b815260206004820181905260248201525f805160206200358b83398151915260448201526064015b60405180910390fd5b6001600160a01b03919091165f908152601160205260409020805460ff1916911515919091179055565b6001600160a01b038216620005415760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620004b6565b8060025f828254620005549190620008b2565b90915550506001600160a01b0382165f908152602081905260408120805483929062000582908490620008b2565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6005546001600160a01b03163314620006155760405162461bcd60e51b815260206004820181905260248201525f805160206200358b8339815191526044820152606401620004b6565b6001600160a01b0381166200067c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620004b6565b6005546040516001600160a01b038084169216905f80516020620035ab833981519152905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620006ee57607f821691505b6020821081036200070d57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200075e57805f5260205f20601f840160051c810160208510156200073a5750805b601f840160051c820191505b818110156200075b575f815560010162000746565b50505b505050565b81516001600160401b038111156200077f576200077f620006c5565b6200079781620007908454620006d9565b8462000713565b602080601f831160018114620007cd575f8415620007b55750858301515b5f19600386901b1c1916600185901b17855562000827565b5f85815260208120601f198616915b82811015620007fd57888601518255948401946001909101908401620007dc565b50858210156200081b57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f6020828403121562000840575f80fd5b81516001600160a01b038116811462000857575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176200088c576200088c6200085e565b92915050565b5f82620008ad57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156200088c576200088c6200085e565b60805160a051612c706200091b5f395f81816104e90152818161122801526115d801525f818161037f01528181611331015281816113c0015281816126d60152818161278d01526127c90152612c705ff3fe6080604052600436106102dc575f3560e01c80638366e79a11610189578063c0a904a2116100d8578063e2f4560511610092578063f2fde38b1161006d578063f2fde38b146108ec578063f5648a4f1461090b578063fabb0b4f1461091f578063faf216e314610934575f80fd5b8063e2f45605146108a3578063ed494189146108b8578063ee40166e146108d7575f80fd5b8063c0a904a2146107c3578063c18bc195146107e2578063d257b34f14610801578063dbf5b91614610820578063dc3f0d0f14610840578063dd62ed3e1461085f575f80fd5b80639e78fb4f11610143578063aa4bde281161011e578063aa4bde2814610743578063b62496f514610758578063bbc0c74214610786578063c0246668146107a4575f80fd5b80639e78fb4f146106f1578063a457c2d714610705578063a9059cbb14610724575f80fd5b80638366e79a1461064e57806388e765ff1461066d5780638da5cb5b14610682578063906e9dd01461069f57806395d89b41146106be5780639a7a23d6146106d2575f80fd5b8063467abe0a116102455780635e83ae76116101ff57806370a08231116101da57806370a08231146105d3578063715018a614610607578063751039fc1461061b578063819d38d21461062f575f80fd5b80635e83ae761461058057806366d602ae1461059f5780636ddd1713146105b4575f80fd5b8063467abe0a146104a457806347062402146104c357806349bd5a5e146104d85780634a62bb651461050b5780634fbee193146105245780635cce86cd14610552575f80fd5b806323b872dd1161029657806323b872dd146103f85780632b14ca56146104175780632be32b611461042c578063313ce5671461044b5780633936e8b9146104665780633950935114610485575f80fd5b806306fdde03146102e7578063095ea7b3146103115780630f3a325f146103405780631694505e1461036e57806318160ddd146103b95780631d933a4a146103d7575f80fd5b366102e357005b5f80fd5b3480156102f2575f80fd5b506102fb610948565b6040516103089190612837565b60405180910390f35b34801561031c575f80fd5b5061033061032b366004612897565b6109d8565b6040519015158152602001610308565b34801561034b575f80fd5b5061033061035a3660046128c1565b60146020525f908152604090205460ff1681565b348015610379575f80fd5b506103a17f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610308565b3480156103c4575f80fd5b506002545b604051908152602001610308565b3480156103e2575f80fd5b506103f66103f13660046128e3565b6109ee565b005b348015610403575f80fd5b506103306104123660046128fa565b610aeb565b348015610422575f80fd5b506103c960105481565b348015610437575f80fd5b506103f66104463660046128e3565b610b93565b348015610456575f80fd5b5060405160128152602001610308565b348015610471575f80fd5b50600b546103a1906001600160a01b031681565b348015610490575f80fd5b5061033061049f366004612897565b610c74565b3480156104af575f80fd5b506103f66104be3660046128e3565b610caf565b3480156104ce575f80fd5b506103c9600f5481565b3480156104e3575f80fd5b506103a17f000000000000000000000000000000000000000000000000000000000000000081565b348015610516575f80fd5b50600e546103309060ff1681565b34801561052f575f80fd5b5061033061053e3660046128c1565b60116020525f908152604090205460ff1681565b34801561055d575f80fd5b5061033061056c3660046128c1565b60126020525f908152604090205460ff1681565b34801561058b575f80fd5b506103f661059a366004612945565b610d2f565b3480156105aa575f80fd5b506103c960075481565b3480156105bf575f80fd5b50600e546103309062010000900460ff1681565b3480156105de575f80fd5b506103c96105ed3660046128c1565b6001600160a01b03165f9081526020819052604090205490565b348015610612575f80fd5b506103f6610e5b565b348015610626575f80fd5b506103f6610ece565b34801561063a575f80fd5b506103f6610649366004612961565b610f04565b348015610659575f80fd5b50610330610668366004612998565b610fc7565b348015610678575f80fd5b506103c960065481565b34801561068d575f80fd5b506005546001600160a01b03166103a1565b3480156106aa575f80fd5b506103f66106b93660046128c1565b61112d565b3480156106c9575f80fd5b506102fb6111e8565b3480156106dd575f80fd5b506103f66106ec366004612961565b6111f7565b3480156106fc575f80fd5b506103f6611305565b348015610710575f80fd5b5061033061071f366004612897565b6114af565b34801561072f575f80fd5b5061033061073e366004612897565b611547565b34801561074e575f80fd5b506103c960085481565b348015610763575f80fd5b506103306107723660046128c1565b60136020525f908152604090205460ff1681565b348015610791575f80fd5b50600e5461033090610100900460ff1681565b3480156107af575f80fd5b506103f66107be366004612961565b611553565b3480156107ce575f80fd5b506103f66107dd366004612961565b6115a7565b3480156107ed575f80fd5b506103f66107fc3660046128e3565b611697565b34801561080c575f80fd5b506103f661081b3660046128e3565b61177f565b34801561082b575f80fd5b50600e54610330906301000000900460ff1681565b34801561084b575f80fd5b506103f661085a3660046128e3565b6118f5565b34801561086a575f80fd5b506103c9610879366004612998565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156108ae575f80fd5b506103c9600a5481565b3480156108c3575f80fd5b506103f66108d23660046129c4565b6119dd565b3480156108e2575f80fd5b506103c9600c5481565b3480156108f7575f80fd5b506103f66109063660046128c1565b611ae1565b348015610916575f80fd5b506103f6611bcb565b34801561092a575f80fd5b506103c9600d5481565b34801561093f575f80fd5b506103f6611c34565b60606003805461095790612a43565b80601f016020809104026020016040519081016040528092919081815260200182805461098390612a43565b80156109ce5780601f106109a5576101008083540402835291602001916109ce565b820191905f5260205f20905b8154815290600101906020018083116109b157829003601f168201915b5050505050905090565b5f6109e4338484611c6d565b5060015b92915050565b6005546001600160a01b03163314610a215760405162461bcd60e51b8152600401610a1890612a7b565b60405180910390fd5b60056010541115610a9857601054811115610a935760405162461bcd60e51b815260206004820152602c60248201527f46524945443a206e65772073656c6c206665652065786365656473206375727260448201526b656e742073656c6c2066656560a01b6064820152608401610a18565b601055565b60056010541115610a935760405162461bcd60e51b815260206004820152601e60248201527f46524945443a206e65772073656c6c20666565206578636565647320352500006044820152606401610a18565b5f610af7848484611d90565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610b7b5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a18565b610b888533858403611c6d565b506001949350505050565b6005546001600160a01b03163314610bbd5760405162461bcd60e51b8152600401610a1890612a7b565b6064610bc860025490565b610bd3906001612ac4565b610bdd9190612adb565b610bef82670de0b6b3a7640000612ac4565b1015610c5c5760405162461bcd60e51b815260206004820152603660248201527f46524945443a206e6577206d61782062757920616d6f756e74206c657373207460448201527568616e203125206f6620746f74616c20737570706c7960501b6064820152608401610a18565b610c6e81670de0b6b3a7640000612ac4565b60065550565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916109e4918590610caa908690612afa565b611c6d565b6005546001600160a01b03163314610cd95760405162461bcd60e51b8152600401610a1890612a7b565b6005811115610d2a5760405162461bcd60e51b815260206004820152601d60248201527f46524945443a206e6577206275792066656520657863656564732035250000006044820152606401610a18565b600f55565b6005546001600160a01b03163314610d595760405162461bcd60e51b8152600401610a1890612a7b565b600e54610100900460ff1615610db15760405162461bcd60e51b815260206004820181905260248201527f46524945443a2074726164696e6720697320616c7265616479206163746976656044820152606401610a18565b6005811115610e0d5760405162461bcd60e51b815260206004820152602260248201527f46524945443a2064656164626c6f636b7320616d6f756e742065786365656473604482015261203560f01b6064820152608401610a18565b600e80546201000062ffff0019909116610100851515810262ff0000191691909117919091179182905560ff9104168015610e485750600c54155b15610e575743600c55600d8190555b5050565b6005546001600160a01b03163314610e855760405162461bcd60e51b8152600401610a1890612a7b565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610ef85760405162461bcd60e51b8152600401610a1890612a7b565b600e805460ff19169055565b6005546001600160a01b03163314610f2e5760405162461bcd60e51b8152600401610a1890612a7b565b600e546301000000900460ff16610f9d5760405162461bcd60e51b815260206004820152602d60248201527f46524945443a20736e69706572206d616e6167656d656e74207065726d616e6560448201526c1b9d1b1e48191a5cd8589b1959609a1b6064820152608401610a18565b6001600160a01b03919091165f908152601460205260409020805460ff1916911515919091179055565b6005545f906001600160a01b03163314610ff35760405162461bcd60e51b8152600401610a1890612a7b565b6001600160a01b0383166110495760405162461bcd60e51b815260206004820181905260248201527f46524945443a20746f6b656e20697320746865207a65726f20616464726573736044820152606401610a18565b6040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa15801561108d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110b19190612b0d565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303815f875af1158015611101573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111259190612b24565b949350505050565b6005546001600160a01b031633146111575760405162461bcd60e51b8152600401610a1890612a7b565b6001600160a01b0381166111c65760405162461bcd60e51b815260206004820152603060248201527f46524945443a206e6577206d61726b6574696e6720616464726573732069732060448201526f746865207a65726f206164647265737360801b6064820152608401610a18565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b60606004805461095790612a43565b6005546001600160a01b031633146112215760405162461bcd60e51b8152600401610a1890612a7b565b806112c5577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316036112c55760405162461bcd60e51b815260206004820152603560248201527f46524945443a206175746f6d61746564206d61726b6574206d616b657220706160448201527434b91034b9903ab734b9bbb0b8102b19103830b4b960591b6064820152608401610a18565b6001600160a01b0382165f908152601360209081526040808320805485151560ff1991821681179092556012909352922080549091169091179055610e57565b6005546001600160a01b0316331461132f5760405162461bcd60e51b8152600401610a1890612a7b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561138b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113af9190612b3f565b6001600160a01b031663c9c65396307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561141a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061143e9190612b3f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015611488573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114ac9190612b3f565b50565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156115305760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a18565b61153d3385858403611c6d565b5060019392505050565b5f6109e4338484611d90565b6005546001600160a01b0316331461157d5760405162461bcd60e51b8152600401610a1890612a7b565b6001600160a01b03919091165f908152601160205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146115d15760405162461bcd60e51b8152600401610a1890612a7b565b8061166e577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03160361166e5760405162461bcd60e51b815260206004820152602e60248201527f46524945443a206163636f756e7420746f20626520657873636c75646564206960448201526d732070616972206164647265737360901b6064820152608401610a18565b6001600160a01b0382165f908152601260205260409020805482151560ff199091161790555050565b6005546001600160a01b031633146116c15760405162461bcd60e51b8152600401610a1890612a7b565b60646116cc60025490565b6116d7906002612ac4565b6116e19190612adb565b6116f382670de0b6b3a7640000612ac4565b10156117675760405162461bcd60e51b815260206004820152603960248201527f46524945443a206e6577206d61782077616c6c657420616d6f756e74206c657360448201527f73207468616e203225206f6620746f74616c20737570706c79000000000000006064820152608401610a18565b61177981670de0b6b3a7640000612ac4565b60085550565b6005546001600160a01b031633146117a95760405162461bcd60e51b8152600401610a1890612a7b565b620186a06117b660025490565b6117c1906001612ac4565b6117cb9190612adb565b6117dd82670de0b6b3a7640000612ac4565b10156118515760405162461bcd60e51b815260206004820152603760248201527f46524945443a206e6577207377617020616d6f756e74206c657373207468616e60448201527f20302e30303125206f6620746f74616c20737570706c790000000000000000006064820152608401610a18565b6103e861185d60025490565b611868906001612ac4565b6118729190612adb565b8111156118dd5760405162461bcd60e51b815260206004820152603360248201527f46524945443a206e6577205377617020616d6f756e74206578636565647320306044820152722e3125206f6620746f74616c20737570706c7960681b6064820152608401610a18565b6118ef81670de0b6b3a7640000612ac4565b600a5550565b6005546001600160a01b0316331461191f5760405162461bcd60e51b8152600401610a1890612a7b565b606461192a60025490565b611935906001612ac4565b61193f9190612adb565b61195182670de0b6b3a7640000612ac4565b10156119c55760405162461bcd60e51b815260206004820152603760248201527f46524945443a206e6577206d61782073656c6c20616d6f756e74206c6573732060448201527f7468616e203125206f6620746f74616c20737570706c790000000000000000006064820152608401610a18565b6119d781670de0b6b3a7640000612ac4565b60075550565b6005546001600160a01b03163314611a075760405162461bcd60e51b8152600401610a1890612a7b565b600e546301000000900460ff16611a775760405162461bcd60e51b815260206004820152602e60248201527f46524945443a20736e6970657273206d616e6167656d656e74207065726d616e60448201526d195b9d1b1e48191a5cd8589b195960921b6064820152608401610a18565b5f5b82811015611adb578160145f868685818110611a9757611a97612b5a565b9050602002016020810190611aac91906128c1565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101611a79565b50505050565b6005546001600160a01b03163314611b0b5760405162461bcd60e51b8152600401610a1890612a7b565b6001600160a01b038116611b705760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a18565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314611bf55760405162461bcd60e51b8152600401610a1890612a7b565b6040515f90339047908381818185875af1925050503d805f8114611adb576040519150601f19603f3d011682016040523d82523d5f602084013e611adb565b6005546001600160a01b03163314611c5e5760405162461bcd60e51b8152600401610a1890612a7b565b600e805463ff00000019169055565b6001600160a01b038316611ccf5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a18565b6001600160a01b038216611d305760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a18565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f8111611dd75760405162461bcd60e51b815260206004820152601560248201527446524945443a20616d6f756e74206973207a65726f60581b6044820152606401610a18565b6001600160a01b0383165f9081526014602052604090205460ff1615611e3f5760405162461bcd60e51b815260206004820152601e60248201527f46524945443a2073656e646572206d61726b656420617320736e6970657200006044820152606401610a18565b6001600160a01b0382165f9081526014602052604090205460ff1615611eb15760405162461bcd60e51b815260206004820152602160248201527f46524945443a20726563697069656e74206d61726b656420617320736e6970656044820152603960f91b6064820152608401610a18565b600e5460ff16156121d6576005546001600160a01b03848116911614801590611ee857506005546001600160a01b03838116911614155b8015611f0c57506001600160a01b0383165f9081526011602052604090205460ff16155b8015611f3057506001600160a01b0382165f9081526011602052604090205460ff16155b156121d657600e54610100900460ff16611f8c5760405162461bcd60e51b815260206004820152601c60248201527f46524945443a2074726164696e67206973206e6f7420616374697665000000006044820152606401610a18565b5f600c54118015611fab5750600d54600c54611fa89190612afa565b43105b15611fd3576001600160a01b0382165f908152601460205260409020805460ff191660011790555b6001600160a01b0383165f9081526013602052604090205460ff16801561201257506001600160a01b0382165f9081526012602052604090205460ff16155b156120c75760065481111561207f5760405162461bcd60e51b815260206004820152602d60248201527f46524945443a207472616e7366657220616d6f756e742065786365656473206d60448201526c185e08189d5e48185b5bdd5b9d609a1b6064820152608401610a18565b6008546001600160a01b0383165f908152602081905260409020546120a49083612afa565b11156120c25760405162461bcd60e51b8152600401610a1890612b6e565b6121d6565b6001600160a01b0382165f9081526013602052604090205460ff16801561210657506001600160a01b0383165f9081526012602052604090205460ff16155b15612174576007548111156120c25760405162461bcd60e51b815260206004820152602e60248201527f46524945443a207472616e7366657220616d6f756e742065786365656473206d60448201526d185e081cd95b1b08185b5bdd5b9d60921b6064820152608401610a18565b6001600160a01b0382165f9081526012602052604090205460ff166121d6576008546001600160a01b0383165f908152602081905260409020546121b89083612afa565b11156121d65760405162461bcd60e51b8152600401610a1890612b6e565b305f90815260208190526040902054600a54811080159081906122015750600e5462010000900460ff165b8015612210575060095460ff16155b801561223457506001600160a01b0385165f9081526013602052604090205460ff16155b801561225857506001600160a01b0385165f9081526011602052604090205460ff16155b801561227c57506001600160a01b0384165f9081526011602052604090205460ff16155b156122a1576009805460ff19166001179055612296612417565b6009805460ff191690555b6001600160a01b0385165f90815260116020526040812054819060ff161580156122e357506001600160a01b0386165f9081526011602052604090205460ff16155b15612403575f600c541180156123075750600d54600c546123049190612afa565b43105b15612343576064612319866062612ac4565b6123239190612adb565b600b5490915061233e9088906001600160a01b0316836124b4565b6123db565b6001600160a01b0386165f9081526013602052604090205460ff16801561236b57505f601054115b15612391576064601054866123809190612ac4565b61238a9190612adb565b91506123db565b6001600160a01b0387165f9081526013602052604090205460ff1680156123b957505f600f54115b156123db576064600f54866123ce9190612ac4565b6123d89190612adb565b91505b81156123ec576123ec8730846124b4565b6123f68183612afa565b6124009086612bb6565b94505b61240e8787876124b4565b50505050505050565b305f90815260208190526040812054908190036124315750565b600a805461243e91612ac4565b81111561245557600a805461245291612ac4565b90505b61245e81612681565b600b546040515f916001600160a01b03169047908381818185875af1925050503d805f81146124a8576040519150601f19603f3d011682016040523d82523d5f602084013e6124ad565b606091505b5050505050565b6001600160a01b0383166125185760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a18565b6001600160a01b03821661257a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a18565b6001600160a01b0383165f90815260208190526040902054818110156125f15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a18565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290612627908490612afa565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161267391815260200190565b60405180910390a350505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106126b4576126b4612b5a565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612730573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127549190612b3f565b8160018151811061276757612767612b5a565b60200260200101906001600160a01b031690816001600160a01b0316815250506127b2307f000000000000000000000000000000000000000000000000000000000000000084611c6d565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906128069085905f90869030904290600401612bc9565b5f604051808303815f87803b15801561281d575f80fd5b505af115801561282f573d5f803e3d5ffd5b505050505050565b5f602080835283518060208501525f5b8181101561286357858101830151858201604001528201612847565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146114ac575f80fd5b5f80604083850312156128a8575f80fd5b82356128b381612883565b946020939093013593505050565b5f602082840312156128d1575f80fd5b81356128dc81612883565b9392505050565b5f602082840312156128f3575f80fd5b5035919050565b5f805f6060848603121561290c575f80fd5b833561291781612883565b9250602084013561292781612883565b929592945050506040919091013590565b80151581146114ac575f80fd5b5f8060408385031215612956575f80fd5b82356128b381612938565b5f8060408385031215612972575f80fd5b823561297d81612883565b9150602083013561298d81612938565b809150509250929050565b5f80604083850312156129a9575f80fd5b82356129b481612883565b9150602083013561298d81612883565b5f805f604084860312156129d6575f80fd5b833567ffffffffffffffff808211156129ed575f80fd5b818601915086601f830112612a00575f80fd5b813581811115612a0e575f80fd5b8760208260051b8501011115612a22575f80fd5b60209283019550935050840135612a3881612938565b809150509250925092565b600181811c90821680612a5757607f821691505b602082108103612a7557634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176109e8576109e8612ab0565b5f82612af557634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156109e8576109e8612ab0565b5f60208284031215612b1d575f80fd5b5051919050565b5f60208284031215612b34575f80fd5b81516128dc81612938565b5f60208284031215612b4f575f80fd5b81516128dc81612883565b634e487b7160e01b5f52603260045260245ffd5b60208082526028908201527f46524945443a2062616c616e63652065786365656473206d61782077616c6c656040820152671d08185b5bdd5b9d60c21b606082015260800190565b818103818111156109e8576109e8612ab0565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015612c195784516001600160a01b031683529383019391830191600101612bf4565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212206b37fa44b4c57b5401d1488b6022189b74beac6e396b43fd5d42cf60f10cd75564736f6c634300081600334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0

Deployed Bytecode

0x6080604052600436106102dc575f3560e01c80638366e79a11610189578063c0a904a2116100d8578063e2f4560511610092578063f2fde38b1161006d578063f2fde38b146108ec578063f5648a4f1461090b578063fabb0b4f1461091f578063faf216e314610934575f80fd5b8063e2f45605146108a3578063ed494189146108b8578063ee40166e146108d7575f80fd5b8063c0a904a2146107c3578063c18bc195146107e2578063d257b34f14610801578063dbf5b91614610820578063dc3f0d0f14610840578063dd62ed3e1461085f575f80fd5b80639e78fb4f11610143578063aa4bde281161011e578063aa4bde2814610743578063b62496f514610758578063bbc0c74214610786578063c0246668146107a4575f80fd5b80639e78fb4f146106f1578063a457c2d714610705578063a9059cbb14610724575f80fd5b80638366e79a1461064e57806388e765ff1461066d5780638da5cb5b14610682578063906e9dd01461069f57806395d89b41146106be5780639a7a23d6146106d2575f80fd5b8063467abe0a116102455780635e83ae76116101ff57806370a08231116101da57806370a08231146105d3578063715018a614610607578063751039fc1461061b578063819d38d21461062f575f80fd5b80635e83ae761461058057806366d602ae1461059f5780636ddd1713146105b4575f80fd5b8063467abe0a146104a457806347062402146104c357806349bd5a5e146104d85780634a62bb651461050b5780634fbee193146105245780635cce86cd14610552575f80fd5b806323b872dd1161029657806323b872dd146103f85780632b14ca56146104175780632be32b611461042c578063313ce5671461044b5780633936e8b9146104665780633950935114610485575f80fd5b806306fdde03146102e7578063095ea7b3146103115780630f3a325f146103405780631694505e1461036e57806318160ddd146103b95780631d933a4a146103d7575f80fd5b366102e357005b5f80fd5b3480156102f2575f80fd5b506102fb610948565b6040516103089190612837565b60405180910390f35b34801561031c575f80fd5b5061033061032b366004612897565b6109d8565b6040519015158152602001610308565b34801561034b575f80fd5b5061033061035a3660046128c1565b60146020525f908152604090205460ff1681565b348015610379575f80fd5b506103a17f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610308565b3480156103c4575f80fd5b506002545b604051908152602001610308565b3480156103e2575f80fd5b506103f66103f13660046128e3565b6109ee565b005b348015610403575f80fd5b506103306104123660046128fa565b610aeb565b348015610422575f80fd5b506103c960105481565b348015610437575f80fd5b506103f66104463660046128e3565b610b93565b348015610456575f80fd5b5060405160128152602001610308565b348015610471575f80fd5b50600b546103a1906001600160a01b031681565b348015610490575f80fd5b5061033061049f366004612897565b610c74565b3480156104af575f80fd5b506103f66104be3660046128e3565b610caf565b3480156104ce575f80fd5b506103c9600f5481565b3480156104e3575f80fd5b506103a17f00000000000000000000000095f50260b3ed6a8fc8157682edad1e4c7d4de38881565b348015610516575f80fd5b50600e546103309060ff1681565b34801561052f575f80fd5b5061033061053e3660046128c1565b60116020525f908152604090205460ff1681565b34801561055d575f80fd5b5061033061056c3660046128c1565b60126020525f908152604090205460ff1681565b34801561058b575f80fd5b506103f661059a366004612945565b610d2f565b3480156105aa575f80fd5b506103c960075481565b3480156105bf575f80fd5b50600e546103309062010000900460ff1681565b3480156105de575f80fd5b506103c96105ed3660046128c1565b6001600160a01b03165f9081526020819052604090205490565b348015610612575f80fd5b506103f6610e5b565b348015610626575f80fd5b506103f6610ece565b34801561063a575f80fd5b506103f6610649366004612961565b610f04565b348015610659575f80fd5b50610330610668366004612998565b610fc7565b348015610678575f80fd5b506103c960065481565b34801561068d575f80fd5b506005546001600160a01b03166103a1565b3480156106aa575f80fd5b506103f66106b93660046128c1565b61112d565b3480156106c9575f80fd5b506102fb6111e8565b3480156106dd575f80fd5b506103f66106ec366004612961565b6111f7565b3480156106fc575f80fd5b506103f6611305565b348015610710575f80fd5b5061033061071f366004612897565b6114af565b34801561072f575f80fd5b5061033061073e366004612897565b611547565b34801561074e575f80fd5b506103c960085481565b348015610763575f80fd5b506103306107723660046128c1565b60136020525f908152604090205460ff1681565b348015610791575f80fd5b50600e5461033090610100900460ff1681565b3480156107af575f80fd5b506103f66107be366004612961565b611553565b3480156107ce575f80fd5b506103f66107dd366004612961565b6115a7565b3480156107ed575f80fd5b506103f66107fc3660046128e3565b611697565b34801561080c575f80fd5b506103f661081b3660046128e3565b61177f565b34801561082b575f80fd5b50600e54610330906301000000900460ff1681565b34801561084b575f80fd5b506103f661085a3660046128e3565b6118f5565b34801561086a575f80fd5b506103c9610879366004612998565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156108ae575f80fd5b506103c9600a5481565b3480156108c3575f80fd5b506103f66108d23660046129c4565b6119dd565b3480156108e2575f80fd5b506103c9600c5481565b3480156108f7575f80fd5b506103f66109063660046128c1565b611ae1565b348015610916575f80fd5b506103f6611bcb565b34801561092a575f80fd5b506103c9600d5481565b34801561093f575f80fd5b506103f6611c34565b60606003805461095790612a43565b80601f016020809104026020016040519081016040528092919081815260200182805461098390612a43565b80156109ce5780601f106109a5576101008083540402835291602001916109ce565b820191905f5260205f20905b8154815290600101906020018083116109b157829003601f168201915b5050505050905090565b5f6109e4338484611c6d565b5060015b92915050565b6005546001600160a01b03163314610a215760405162461bcd60e51b8152600401610a1890612a7b565b60405180910390fd5b60056010541115610a9857601054811115610a935760405162461bcd60e51b815260206004820152602c60248201527f46524945443a206e65772073656c6c206665652065786365656473206375727260448201526b656e742073656c6c2066656560a01b6064820152608401610a18565b601055565b60056010541115610a935760405162461bcd60e51b815260206004820152601e60248201527f46524945443a206e65772073656c6c20666565206578636565647320352500006044820152606401610a18565b5f610af7848484611d90565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610b7b5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a18565b610b888533858403611c6d565b506001949350505050565b6005546001600160a01b03163314610bbd5760405162461bcd60e51b8152600401610a1890612a7b565b6064610bc860025490565b610bd3906001612ac4565b610bdd9190612adb565b610bef82670de0b6b3a7640000612ac4565b1015610c5c5760405162461bcd60e51b815260206004820152603660248201527f46524945443a206e6577206d61782062757920616d6f756e74206c657373207460448201527568616e203125206f6620746f74616c20737570706c7960501b6064820152608401610a18565b610c6e81670de0b6b3a7640000612ac4565b60065550565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916109e4918590610caa908690612afa565b611c6d565b6005546001600160a01b03163314610cd95760405162461bcd60e51b8152600401610a1890612a7b565b6005811115610d2a5760405162461bcd60e51b815260206004820152601d60248201527f46524945443a206e6577206275792066656520657863656564732035250000006044820152606401610a18565b600f55565b6005546001600160a01b03163314610d595760405162461bcd60e51b8152600401610a1890612a7b565b600e54610100900460ff1615610db15760405162461bcd60e51b815260206004820181905260248201527f46524945443a2074726164696e6720697320616c7265616479206163746976656044820152606401610a18565b6005811115610e0d5760405162461bcd60e51b815260206004820152602260248201527f46524945443a2064656164626c6f636b7320616d6f756e742065786365656473604482015261203560f01b6064820152608401610a18565b600e80546201000062ffff0019909116610100851515810262ff0000191691909117919091179182905560ff9104168015610e485750600c54155b15610e575743600c55600d8190555b5050565b6005546001600160a01b03163314610e855760405162461bcd60e51b8152600401610a1890612a7b565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610ef85760405162461bcd60e51b8152600401610a1890612a7b565b600e805460ff19169055565b6005546001600160a01b03163314610f2e5760405162461bcd60e51b8152600401610a1890612a7b565b600e546301000000900460ff16610f9d5760405162461bcd60e51b815260206004820152602d60248201527f46524945443a20736e69706572206d616e6167656d656e74207065726d616e6560448201526c1b9d1b1e48191a5cd8589b1959609a1b6064820152608401610a18565b6001600160a01b03919091165f908152601460205260409020805460ff1916911515919091179055565b6005545f906001600160a01b03163314610ff35760405162461bcd60e51b8152600401610a1890612a7b565b6001600160a01b0383166110495760405162461bcd60e51b815260206004820181905260248201527f46524945443a20746f6b656e20697320746865207a65726f20616464726573736044820152606401610a18565b6040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa15801561108d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110b19190612b0d565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303815f875af1158015611101573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111259190612b24565b949350505050565b6005546001600160a01b031633146111575760405162461bcd60e51b8152600401610a1890612a7b565b6001600160a01b0381166111c65760405162461bcd60e51b815260206004820152603060248201527f46524945443a206e6577206d61726b6574696e6720616464726573732069732060448201526f746865207a65726f206164647265737360801b6064820152608401610a18565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b60606004805461095790612a43565b6005546001600160a01b031633146112215760405162461bcd60e51b8152600401610a1890612a7b565b806112c5577f00000000000000000000000095f50260b3ed6a8fc8157682edad1e4c7d4de3886001600160a01b0316826001600160a01b0316036112c55760405162461bcd60e51b815260206004820152603560248201527f46524945443a206175746f6d61746564206d61726b6574206d616b657220706160448201527434b91034b9903ab734b9bbb0b8102b19103830b4b960591b6064820152608401610a18565b6001600160a01b0382165f908152601360209081526040808320805485151560ff1991821681179092556012909352922080549091169091179055610e57565b6005546001600160a01b0316331461132f5760405162461bcd60e51b8152600401610a1890612a7b565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561138b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113af9190612b3f565b6001600160a01b031663c9c65396307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561141a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061143e9190612b3f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015611488573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114ac9190612b3f565b50565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156115305760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a18565b61153d3385858403611c6d565b5060019392505050565b5f6109e4338484611d90565b6005546001600160a01b0316331461157d5760405162461bcd60e51b8152600401610a1890612a7b565b6001600160a01b03919091165f908152601160205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146115d15760405162461bcd60e51b8152600401610a1890612a7b565b8061166e577f00000000000000000000000095f50260b3ed6a8fc8157682edad1e4c7d4de3886001600160a01b0316826001600160a01b03160361166e5760405162461bcd60e51b815260206004820152602e60248201527f46524945443a206163636f756e7420746f20626520657873636c75646564206960448201526d732070616972206164647265737360901b6064820152608401610a18565b6001600160a01b0382165f908152601260205260409020805482151560ff199091161790555050565b6005546001600160a01b031633146116c15760405162461bcd60e51b8152600401610a1890612a7b565b60646116cc60025490565b6116d7906002612ac4565b6116e19190612adb565b6116f382670de0b6b3a7640000612ac4565b10156117675760405162461bcd60e51b815260206004820152603960248201527f46524945443a206e6577206d61782077616c6c657420616d6f756e74206c657360448201527f73207468616e203225206f6620746f74616c20737570706c79000000000000006064820152608401610a18565b61177981670de0b6b3a7640000612ac4565b60085550565b6005546001600160a01b031633146117a95760405162461bcd60e51b8152600401610a1890612a7b565b620186a06117b660025490565b6117c1906001612ac4565b6117cb9190612adb565b6117dd82670de0b6b3a7640000612ac4565b10156118515760405162461bcd60e51b815260206004820152603760248201527f46524945443a206e6577207377617020616d6f756e74206c657373207468616e60448201527f20302e30303125206f6620746f74616c20737570706c790000000000000000006064820152608401610a18565b6103e861185d60025490565b611868906001612ac4565b6118729190612adb565b8111156118dd5760405162461bcd60e51b815260206004820152603360248201527f46524945443a206e6577205377617020616d6f756e74206578636565647320306044820152722e3125206f6620746f74616c20737570706c7960681b6064820152608401610a18565b6118ef81670de0b6b3a7640000612ac4565b600a5550565b6005546001600160a01b0316331461191f5760405162461bcd60e51b8152600401610a1890612a7b565b606461192a60025490565b611935906001612ac4565b61193f9190612adb565b61195182670de0b6b3a7640000612ac4565b10156119c55760405162461bcd60e51b815260206004820152603760248201527f46524945443a206e6577206d61782073656c6c20616d6f756e74206c6573732060448201527f7468616e203125206f6620746f74616c20737570706c790000000000000000006064820152608401610a18565b6119d781670de0b6b3a7640000612ac4565b60075550565b6005546001600160a01b03163314611a075760405162461bcd60e51b8152600401610a1890612a7b565b600e546301000000900460ff16611a775760405162461bcd60e51b815260206004820152602e60248201527f46524945443a20736e6970657273206d616e6167656d656e74207065726d616e60448201526d195b9d1b1e48191a5cd8589b195960921b6064820152608401610a18565b5f5b82811015611adb578160145f868685818110611a9757611a97612b5a565b9050602002016020810190611aac91906128c1565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101611a79565b50505050565b6005546001600160a01b03163314611b0b5760405162461bcd60e51b8152600401610a1890612a7b565b6001600160a01b038116611b705760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a18565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314611bf55760405162461bcd60e51b8152600401610a1890612a7b565b6040515f90339047908381818185875af1925050503d805f8114611adb576040519150601f19603f3d011682016040523d82523d5f602084013e611adb565b6005546001600160a01b03163314611c5e5760405162461bcd60e51b8152600401610a1890612a7b565b600e805463ff00000019169055565b6001600160a01b038316611ccf5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a18565b6001600160a01b038216611d305760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a18565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f8111611dd75760405162461bcd60e51b815260206004820152601560248201527446524945443a20616d6f756e74206973207a65726f60581b6044820152606401610a18565b6001600160a01b0383165f9081526014602052604090205460ff1615611e3f5760405162461bcd60e51b815260206004820152601e60248201527f46524945443a2073656e646572206d61726b656420617320736e6970657200006044820152606401610a18565b6001600160a01b0382165f9081526014602052604090205460ff1615611eb15760405162461bcd60e51b815260206004820152602160248201527f46524945443a20726563697069656e74206d61726b656420617320736e6970656044820152603960f91b6064820152608401610a18565b600e5460ff16156121d6576005546001600160a01b03848116911614801590611ee857506005546001600160a01b03838116911614155b8015611f0c57506001600160a01b0383165f9081526011602052604090205460ff16155b8015611f3057506001600160a01b0382165f9081526011602052604090205460ff16155b156121d657600e54610100900460ff16611f8c5760405162461bcd60e51b815260206004820152601c60248201527f46524945443a2074726164696e67206973206e6f7420616374697665000000006044820152606401610a18565b5f600c54118015611fab5750600d54600c54611fa89190612afa565b43105b15611fd3576001600160a01b0382165f908152601460205260409020805460ff191660011790555b6001600160a01b0383165f9081526013602052604090205460ff16801561201257506001600160a01b0382165f9081526012602052604090205460ff16155b156120c75760065481111561207f5760405162461bcd60e51b815260206004820152602d60248201527f46524945443a207472616e7366657220616d6f756e742065786365656473206d60448201526c185e08189d5e48185b5bdd5b9d609a1b6064820152608401610a18565b6008546001600160a01b0383165f908152602081905260409020546120a49083612afa565b11156120c25760405162461bcd60e51b8152600401610a1890612b6e565b6121d6565b6001600160a01b0382165f9081526013602052604090205460ff16801561210657506001600160a01b0383165f9081526012602052604090205460ff16155b15612174576007548111156120c25760405162461bcd60e51b815260206004820152602e60248201527f46524945443a207472616e7366657220616d6f756e742065786365656473206d60448201526d185e081cd95b1b08185b5bdd5b9d60921b6064820152608401610a18565b6001600160a01b0382165f9081526012602052604090205460ff166121d6576008546001600160a01b0383165f908152602081905260409020546121b89083612afa565b11156121d65760405162461bcd60e51b8152600401610a1890612b6e565b305f90815260208190526040902054600a54811080159081906122015750600e5462010000900460ff165b8015612210575060095460ff16155b801561223457506001600160a01b0385165f9081526013602052604090205460ff16155b801561225857506001600160a01b0385165f9081526011602052604090205460ff16155b801561227c57506001600160a01b0384165f9081526011602052604090205460ff16155b156122a1576009805460ff19166001179055612296612417565b6009805460ff191690555b6001600160a01b0385165f90815260116020526040812054819060ff161580156122e357506001600160a01b0386165f9081526011602052604090205460ff16155b15612403575f600c541180156123075750600d54600c546123049190612afa565b43105b15612343576064612319866062612ac4565b6123239190612adb565b600b5490915061233e9088906001600160a01b0316836124b4565b6123db565b6001600160a01b0386165f9081526013602052604090205460ff16801561236b57505f601054115b15612391576064601054866123809190612ac4565b61238a9190612adb565b91506123db565b6001600160a01b0387165f9081526013602052604090205460ff1680156123b957505f600f54115b156123db576064600f54866123ce9190612ac4565b6123d89190612adb565b91505b81156123ec576123ec8730846124b4565b6123f68183612afa565b6124009086612bb6565b94505b61240e8787876124b4565b50505050505050565b305f90815260208190526040812054908190036124315750565b600a805461243e91612ac4565b81111561245557600a805461245291612ac4565b90505b61245e81612681565b600b546040515f916001600160a01b03169047908381818185875af1925050503d805f81146124a8576040519150601f19603f3d011682016040523d82523d5f602084013e6124ad565b606091505b5050505050565b6001600160a01b0383166125185760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a18565b6001600160a01b03821661257a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a18565b6001600160a01b0383165f90815260208190526040902054818110156125f15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a18565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290612627908490612afa565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161267391815260200190565b60405180910390a350505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106126b4576126b4612b5a565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612730573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127549190612b3f565b8160018151811061276757612767612b5a565b60200260200101906001600160a01b031690816001600160a01b0316815250506127b2307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611c6d565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac947906128069085905f90869030904290600401612bc9565b5f604051808303815f87803b15801561281d575f80fd5b505af115801561282f573d5f803e3d5ffd5b505050505050565b5f602080835283518060208501525f5b8181101561286357858101830151858201604001528201612847565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146114ac575f80fd5b5f80604083850312156128a8575f80fd5b82356128b381612883565b946020939093013593505050565b5f602082840312156128d1575f80fd5b81356128dc81612883565b9392505050565b5f602082840312156128f3575f80fd5b5035919050565b5f805f6060848603121561290c575f80fd5b833561291781612883565b9250602084013561292781612883565b929592945050506040919091013590565b80151581146114ac575f80fd5b5f8060408385031215612956575f80fd5b82356128b381612938565b5f8060408385031215612972575f80fd5b823561297d81612883565b9150602083013561298d81612938565b809150509250929050565b5f80604083850312156129a9575f80fd5b82356129b481612883565b9150602083013561298d81612883565b5f805f604084860312156129d6575f80fd5b833567ffffffffffffffff808211156129ed575f80fd5b818601915086601f830112612a00575f80fd5b813581811115612a0e575f80fd5b8760208260051b8501011115612a22575f80fd5b60209283019550935050840135612a3881612938565b809150509250925092565b600181811c90821680612a5757607f821691505b602082108103612a7557634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176109e8576109e8612ab0565b5f82612af557634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156109e8576109e8612ab0565b5f60208284031215612b1d575f80fd5b5051919050565b5f60208284031215612b34575f80fd5b81516128dc81612938565b5f60208284031215612b4f575f80fd5b81516128dc81612883565b634e487b7160e01b5f52603260045260245ffd5b60208082526028908201527f46524945443a2062616c616e63652065786365656473206d61782077616c6c656040820152671d08185b5bdd5b9d60c21b606082015260800190565b818103818111156109e8576109e8612ab0565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015612c195784516001600160a01b031683529383019391830191600101612bf4565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212206b37fa44b4c57b5401d1488b6022189b74beac6e396b43fd5d42cf60f10cd75564736f6c63430008160033

Deployed Bytecode Sourcemap

7038:11015:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1756:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2670:169;;;;;;;;;;-1:-1:-1;2670:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;2670:169:0;1023:187:1;7904:41:0;;;;;;;;;;-1:-1:-1;7904:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7200:43;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1649:32:1;;;1631:51;;1619:2;1604:18;7200:43:0;1467:221:1;2077:108:0;;;;;;;;;;-1:-1:-1;2165:12:0;;2077:108;;;1839:25:1;;;1827:2;1812:18;2077:108:0;1693:177:1;11492:321:0;;;;;;;;;;-1:-1:-1;11492:321:0;;;;;:::i;:::-;;:::i;:::-;;2847:480;;;;;;;;;;-1:-1:-1;2847:480:0;;;;;:::i;:::-;;:::i;7690:22::-;;;;;;;;;;;;;;;;9680:239;;;;;;;;;;-1:-1:-1;9680:239:0;;;;;:::i;:::-;;:::i;1976:93::-;;;;;;;;;;-1:-1:-1;1976:93:0;;2059:2;2663:36:1;;2651:2;2636:18;1976:93:0;2521:184:1;7368:31:0;;;;;;;;;;-1:-1:-1;7368:31:0;;;;-1:-1:-1;;;;;7368:31:0;;;3335:215;;;;;;;;;;-1:-1:-1;3335:215:0;;;;;:::i;:::-;;:::i;11320:164::-;;;;;;;;;;-1:-1:-1;11320:164:0;;;;;:::i;:::-;;:::i;7660:21::-;;;;;;;;;;;;;;;;7250:38;;;;;;;;;;;;;;;7491:33;;;;;;;;;;-1:-1:-1;7491:33:0;;;;;;;;7721:51;;;;;;;;;;-1:-1:-1;7721:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7779:53;;;;;;;;;;-1:-1:-1;7779:53:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15708:449;;;;;;;;;;-1:-1:-1;15708:449:0;;;;;:::i;:::-;;:::i;7126:28::-;;;;;;;;;;;;;;;;7571:31;;;;;;;;;;-1:-1:-1;7571:31:0;;;;;;;;;;;2193:127;;;;;;;;;;-1:-1:-1;2193:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;2294:18:0;2267:7;2294:18;;;;;;;;;;;;2193:127;5797:150;;;;;;;;;;;;;:::i;10806:84::-;;;;;;;;;;;;;:::i;16421:220::-;;;;;;;;;;-1:-1:-1;16421:220:0;;;;;:::i;:::-;;:::i;17568:312::-;;;;;;;;;;-1:-1:-1;17568:312:0;;;;;:::i;:::-;;:::i;7092:27::-;;;;;;;;;;;;;;;;5583:79;;;;;;;;;;-1:-1:-1;5648:6:0;;-1:-1:-1;;;;;5648:6:0;5583:79;;16165:248;;;;;;;;;;-1:-1:-1;16165:248:0;;;;;:::i;:::-;;:::i;1864:104::-;;;;;;;;;;;;;:::i;15197:277::-;;;;;;;;;;-1:-1:-1;15197:277:0;;;;;:::i;:::-;;:::i;9524:148::-;;;;;;;;;;;;;:::i;3558:401::-;;;;;;;;;;-1:-1:-1;3558:401:0;;;;;:::i;:::-;;:::i;2328:175::-;;;;;;;;;;-1:-1:-1;2328:175:0;;;;;:::i;:::-;;:::i;7161:30::-;;;;;;;;;;;;;;;;7839:58;;;;;;;;;;-1:-1:-1;7839:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7531:33;;;;;;;;;;-1:-1:-1;7531:33:0;;;;;;;;;;;11821:135;;;;;;;;;;-1:-1:-1;11821:135:0;;;;;:::i;:::-;;:::i;11037:275::-;;;;;;;;;;-1:-1:-1;11037:275:0;;;;;:::i;:::-;;:::i;10177:248::-;;;;;;;;;;-1:-1:-1;10177:248:0;;;;;:::i;:::-;;:::i;10433:365::-;;;;;;;;;;-1:-1:-1;10433:365:0;;;;;:::i;:::-;;:::i;7609:42::-;;;;;;;;;;-1:-1:-1;7609:42:0;;;;;;;;;;;9927:242;;;;;;;;;;-1:-1:-1;9927:242:0;;;;;:::i;:::-;;:::i;2511:151::-;;;;;;;;;;-1:-1:-1;2511:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;2627:18:0;;;2600:7;2627:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2511:151;7326:33;;;;;;;;;;;;;;;;16649:297;;;;;;;;;;-1:-1:-1;16649:297:0;;;;;:::i;:::-;;:::i;7408:37::-;;;;;;;;;;;;;;;;5955:244;;;;;;;;;;-1:-1:-1;5955:244:0;;;;;:::i;:::-;;:::i;17888:160::-;;;;;;;;;;;;;:::i;7453:29::-;;;;;;;;;;;;;;;;17000:104;;;;;;;;;;;;;:::i;1756:100::-;1810:13;1843:5;1836:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1756:100;:::o;2670:169::-;2753:4;2770:39;1207:10;2793:7;2802:6;2770:8;:39::i;:::-;-1:-1:-1;2827:4:0;2670:169;;;;;:::o;11492:321::-;5710:6;;-1:-1:-1;;;;;5710:6:0;1207:10;5710:22;5702:67;;;;-1:-1:-1;;;5702:67:0;;;;;;;:::i;:::-;;;;;;;;;11579:1:::1;11569:7;;:11;11565:210;;;11619:7;;11605:10;:21;;11597:78;;;::::0;-1:-1:-1;;;11597:78:0;;5838:2:1;11597:78:0::1;::::0;::::1;5820:21:1::0;5877:2;5857:18;;;5850:30;5916:34;5896:18;;;5889:62;-1:-1:-1;;;5967:18:1;;;5960:42;6019:19;;11597:78:0::1;5636:408:1::0;11597:78:0::1;11785:7;:20:::0;11492:321::o;11565:210::-:1;11727:1;11716:7;;:12;;11708:55;;;::::0;-1:-1:-1;;;11708:55:0;;6251:2:1;11708:55:0::1;::::0;::::1;6233:21:1::0;6290:2;6270:18;;;6263:30;6329:32;6309:18;;;6302:60;6379:18;;11708:55:0::1;6049:354:1::0;2847:480:0;2987:4;3004:36;3014:6;3022:9;3033:6;3004:9;:36::i;:::-;-1:-1:-1;;;;;3080:19:0;;3053:24;3080:19;;;:11;:19;;;;;;;;1207:10;3080:33;;;;;;;;3132:26;;;;3124:79;;;;-1:-1:-1;;;3124:79:0;;6610:2:1;3124:79:0;;;6592:21:1;6649:2;6629:18;;;6622:30;6688:34;6668:18;;;6661:62;-1:-1:-1;;;6739:18:1;;;6732:38;6787:19;;3124:79:0;6408:404:1;3124:79:0;3231:57;3240:6;1207:10;3281:6;3262:16;:25;3231:8;:57::i;:::-;-1:-1:-1;3315:4:0;;2847:480;-1:-1:-1;;;;2847:480:0:o;9680:239::-;5710:6;;-1:-1:-1;;;;;5710:6:0;1207:10;5710:22;5702:67;;;;-1:-1:-1;;;5702:67:0;;;;;;;:::i;:::-;9806:3:::1;9786:13;2165:12:::0;;;2077:108;9786:13:::1;:17;::::0;9802:1:::1;9786:17;:::i;:::-;:23;;;;:::i;:::-;9765:16;:9:::0;9777:4:::1;9765:16;:::i;:::-;:45;;9757:112;;;::::0;-1:-1:-1;;;9757:112:0;;7546:2:1;9757:112:0::1;::::0;::::1;7528:21:1::0;7585:2;7565:18;;;7558:30;7624:34;7604:18;;;7597:62;-1:-1:-1;;;7675:18:1;;;7668:52;7737:19;;9757:112:0::1;7344:418:1::0;9757:112:0::1;9895:16;:9:::0;9907:4:::1;9895:16;:::i;:::-;9880:12;:31:::0;-1:-1:-1;9680:239:0:o;3335:215::-;1207:10;3423:4;3472:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3472:34:0;;;;;;;;;;3423:4;;3440:80;;3463:7;;3472:47;;3509:10;;3472:47;:::i;:::-;3440:8;:80::i;11320:164::-;5710:6;;-1:-1:-1;;;;;5710:6:0;1207:10;5710:22;5702:67;;;;-1:-1:-1;;;5702:67:0;;;;;;;:::i;:::-;11412:1:::1;11399:9;:14;;11391:56;;;::::0;-1:-1:-1;;;11391:56:0;;8099:2:1;11391:56:0::1;::::0;::::1;8081:21:1::0;8138:2;8118:18;;;8111:30;8177:31;8157:18;;;8150:59;8226:18;;11391:56:0::1;7897:353:1::0;11391:56:0::1;11458:6;:18:::0;11320:164::o;15708:449::-;5710:6;;-1:-1:-1;;;;;5710:6:0;1207:10;5710:22;5702:67;;;;-1:-1:-1;;;5702:67:0;;;;;;;:::i;:::-;15805:13:::1;::::0;::::1;::::0;::::1;;;15804:14;15796:59;;;::::0;-1:-1:-1;;;15796:59:0;;8457:2:1;15796:59:0::1;::::0;::::1;8439:21:1::0;;;8476:18;;;8469:30;8535:34;8515:18;;;8508:62;8587:18;;15796:59:0::1;8255:356:1::0;15796:59:0::1;15889:1;15874:11;:16;;15866:63;;;::::0;-1:-1:-1;;;15866:63:0;;8818:2:1;15866:63:0::1;::::0;::::1;8800:21:1::0;8857:2;8837:18;;;8830:30;8896:34;8876:18;;;8869:62;-1:-1:-1;;;8947:18:1;;;8940:32;8989:19;;15866:63:0::1;8616:398:1::0;15866:63:0::1;15940:13;:23:::0;;15974:18;-1:-1:-1;;15974:18:0;;;15940:23:::1;::::0;::::1;;::::0;::::1;-1:-1:-1::0;;15974:18:0;;;;;;;;::::1;::::0;;;;15940:23:::1;16009:13:::0;::::1;;:40:::0;::::1;;;-1:-1:-1::0;16026:18:0::1;::::0;:23;16009:40:::1;16005:145;;;16087:12;16066:18;:33:::0;16114:10:::1;:24:::0;;;16005:145:::1;15708:449:::0;;:::o;5797:150::-;5710:6;;-1:-1:-1;;;;;5710:6:0;1207:10;5710:22;5702:67;;;;-1:-1:-1;;;5702:67:0;;;;;;;:::i;:::-;5890:6:::1;::::0;5869:40:::1;::::0;5906:1:::1;::::0;-1:-1:-1;;;;;5890:6:0::1;::::0;5869:40:::1;::::0;5906:1;;5869:40:::1;5920:6;:19:::0;;-1:-1:-1;;;;;;5920:19:0::1;::::0;;5797:150::o;10806:84::-;5710:6;;-1:-1:-1;;;;;5710:6:0;1207:10;5710:22;5702:67;;;;-1:-1:-1;;;5702:67:0;;;;;;;:::i;:::-;10860:14:::1;:22:::0;;-1:-1:-1;;10860:22:0::1;::::0;;10806:84::o;16421:220::-;5710:6;;-1:-1:-1;;;;;5710:6:0;1207:10;5710:22;5702:67;;;;-1:-1:-1;;;5702:67:0;;;;;;;:::i;:::-;16517:23:::1;::::0;;;::::1;;;16509:81;;;::::0;-1:-1:-1;;;16509:81:0;;9221:2:1;16509:81:0::1;::::0;::::1;9203:21:1::0;9260:2;9240:18;;;9233:30;9299:34;9279:18;;;9272:62;-1:-1:-1;;;9350:18:1;;;9343:43;9403:19;;16509:81:0::1;9019:409:1::0;16509:81:0::1;-1:-1:-1::0;;;;;16601:23:0;;;::::1;;::::0;;;:8:::1;:23;::::0;;;;:32;;-1:-1:-1;;16601:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16421:220::o;17568:312::-;5710:6;;17653:4;;-1:-1:-1;;;;;5710:6:0;1207:10;5710:22;5702:67;;;;-1:-1:-1;;;5702:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17678:19:0;::::1;17670:64;;;::::0;-1:-1:-1;;;17670:64:0;;9635:2:1;17670:64:0::1;::::0;::::1;9617:21:1::0;;;9654:18;;;9647:30;9713:34;9693:18;;;9686:62;9765:18;;17670:64:0::1;9433:356:1::0;17670:64:0::1;17772:38;::::0;-1:-1:-1;;;17772:38:0;;17804:4:::1;17772:38;::::0;::::1;1631:51:1::0;17745:24:0::1;::::0;-1:-1:-1;;;;;17772:23:0;::::1;::::0;::::1;::::0;1604:18:1;;17772:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17828:44;::::0;-1:-1:-1;;;17828:44:0;;-1:-1:-1;;;;;10175:32:1;;;17828:44:0::1;::::0;::::1;10157:51:1::0;10224:18;;;10217:34;;;17745:65:0;;-1:-1:-1;17828:22:0;;::::1;::::0;::::1;::::0;10130:18:1;;17828:44:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17821:51:::0;17568:312;-1:-1:-1;;;;17568:312:0:o;16165:248::-;5710:6;;-1:-1:-1;;;;;5710:6:0;1207:10;5710:22;5702:67;;;;-1:-1:-1;;;5702:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16261:33:0;::::1;16253:94;;;::::0;-1:-1:-1;;;16253:94:0;;10714:2:1;16253:94:0::1;::::0;::::1;10696:21:1::0;10753:2;10733:18;;;10726:30;10792:34;10772:18;;;10765:62;-1:-1:-1;;;10843:18:1;;;10836:46;10899:19;;16253:94:0::1;10512:412:1::0;16253:94:0::1;16358:16;:47:::0;;-1:-1:-1;;;;;;16358:47:0::1;-1:-1:-1::0;;;;;16358:47:0;;;::::1;::::0;;;::::1;::::0;;16165:248::o;1864:104::-;1920:13;1953:7;1946:14;;;;;:::i;15197:277::-;5710:6;;-1:-1:-1;;;;;5710:6:0;1207:10;5710:22;5702:67;;;;-1:-1:-1;;;5702:67:0;;;;;;;:::i;:::-;15294:5:::1;15290:125;;15332:13;-1:-1:-1::0;;;;;15324:21:0::1;:4;-1:-1:-1::0;;;;;15324:21:0::1;::::0;15316:87:::1;;;::::0;-1:-1:-1;;;15316:87:0;;11131:2:1;15316:87:0::1;::::0;::::1;11113:21:1::0;11170:2;11150:18;;;11143:30;11209:34;11189:18;;;11182:62;-1:-1:-1;;;11260:18:1;;;11253:51;11321:19;;15316:87:0::1;10929:417:1::0;15316:87:0::1;-1:-1:-1::0;;;;;15565:31:0;;;;;;:25;:31;;;;;;;;:39;;;;;-1:-1:-1;;15565:39:0;;;;;;;;10979:20;:29;;;;;:42;;;;;;;;;;15425:41:::1;15708:449::o:0;9524:148::-;5710:6;;-1:-1:-1;;;;;5710:6:0;1207:10;5710:22;5702:67;;;;-1:-1:-1;;;5702:67:0;;;;;;;:::i;:::-;9588:15:::1;-1:-1:-1::0;;;;;9588:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9576:49:0::1;;9634:4;9641:15;-1:-1:-1::0;;;;;9641:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9576:88;::::0;-1:-1:-1;;;;;;9576:88:0::1;::::0;;;;;;-1:-1:-1;;;;;11837:15:1;;;9576:88:0::1;::::0;::::1;11819:34:1::0;11889:15;;11869:18;;;11862:43;11754:18;;9576:88:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9524:148::o:0;3558:401::-;1207:10;3651:4;3695:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3695:34:0;;;;;;;;;;3748:35;;;;3740:85;;;;-1:-1:-1;;;3740:85:0;;12118:2:1;3740:85:0;;;12100:21:1;12157:2;12137:18;;;12130:30;12196:34;12176:18;;;12169:62;-1:-1:-1;;;12247:18:1;;;12240:35;12292:19;;3740:85:0;11916:401:1;3740:85:0;3853:67;1207:10;3876:7;3904:15;3885:16;:34;3853:8;:67::i;:::-;-1:-1:-1;3947:4:0;;3558:401;-1:-1:-1;;;3558:401:0:o;2328:175::-;2414:4;2431:42;1207:10;2455:9;2466:6;2431:9;:42::i;11821:135::-;5710:6;;-1:-1:-1;;;;;5710:6:0;1207:10;5710:22;5702:67;;;;-1:-1:-1;;;5702:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11908:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:40;;-1:-1:-1;;11908:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11821:135::o;11037:275::-;5710:6;;-1:-1:-1;;;;;5710:6:0;1207:10;5710:22;5702:67;;;;-1:-1:-1;;;5702:67:0;;;;;;;:::i;:::-;11133:10:::1;11128:127;;11179:13;-1:-1:-1::0;;;;;11168:24:0::1;:7;-1:-1:-1::0;;;;;11168:24:0::1;::::0;11160:83:::1;;;::::0;-1:-1:-1;;;11160:83:0;;12524:2:1;11160:83:0::1;::::0;::::1;12506:21:1::0;12563:2;12543:18;;;12536:30;12602:34;12582:18;;;12575:62;-1:-1:-1;;;12653:18:1;;;12646:44;12707:19;;11160:83:0::1;12322:410:1::0;11160:83:0::1;-1:-1:-1::0;;;;;10979:29:0;;;;;;:20;:29;;;;;:42;;;;;-1:-1:-1;;10979:42:0;;;;;;15708:449;;:::o;10177:248::-;5710:6;;-1:-1:-1;;;;;5710:6:0;1207:10;5710:22;5702:67;;;;-1:-1:-1;;;5702:67:0;;;;;;;:::i;:::-;10306:3:::1;10286:13;2165:12:::0;;;2077:108;10286:13:::1;:17;::::0;10302:1:::1;10286:17;:::i;:::-;:23;;;;:::i;:::-;10265:16;:9:::0;10277:4:::1;10265:16;:::i;:::-;:45;;10257:115;;;::::0;-1:-1:-1;;;10257:115:0;;12939:2:1;10257:115:0::1;::::0;::::1;12921:21:1::0;12978:2;12958:18;;;12951:30;13017:34;12997:18;;;12990:62;13088:27;13068:18;;;13061:55;13133:19;;10257:115:0::1;12737:421:1::0;10257:115:0::1;10401:16;:9:::0;10413:4:::1;10401:16;:::i;:::-;10383:15;:34:::0;-1:-1:-1;10177:248:0:o;10433:365::-;5710:6;;-1:-1:-1;;;;;5710:6:0;1207:10;5710:22;5702:67;;;;-1:-1:-1;;;5702:67:0;;;;;;;:::i;:::-;10564:6:::1;10544:13;2165:12:::0;;;2077:108;10544:13:::1;:17;::::0;10560:1:::1;10544:17;:::i;:::-;:26;;;;:::i;:::-;10524:16;:9:::0;10536:4:::1;10524:16;:::i;:::-;:46;;10516:114;;;::::0;-1:-1:-1;;;10516:114:0;;13365:2:1;10516:114:0::1;::::0;::::1;13347:21:1::0;13404:2;13384:18;;;13377:30;13443:34;13423:18;;;13416:62;13514:25;13494:18;;;13487:53;13557:19;;10516:114:0::1;13163:419:1::0;10516:114:0::1;10682:4;10662:13;2165:12:::0;;;2077:108;10662:13:::1;:17;::::0;10678:1:::1;10662:17;:::i;:::-;:24;;;;:::i;:::-;10649:9;:37;;10641:101;;;::::0;-1:-1:-1;;;10641:101:0;;13789:2:1;10641:101:0::1;::::0;::::1;13771:21:1::0;13828:2;13808:18;;;13801:30;13867:34;13847:18;;;13840:62;-1:-1:-1;;;13918:18:1;;;13911:49;13977:19;;10641:101:0::1;13587:415:1::0;10641:101:0::1;10774:16;:9:::0;10786:4:::1;10774:16;:::i;:::-;10753:18;:37:::0;-1:-1:-1;10433:365:0:o;9927:242::-;5710:6;;-1:-1:-1;;;;;5710:6:0;1207:10;5710:22;5702:67;;;;-1:-1:-1;;;5702:67:0;;;;;;;:::i;:::-;10054:3:::1;10034:13;2165:12:::0;;;2077:108;10034:13:::1;:17;::::0;10050:1:::1;10034:17;:::i;:::-;:23;;;;:::i;:::-;10013:16;:9:::0;10025:4:::1;10013:16;:::i;:::-;:45;;10005:113;;;::::0;-1:-1:-1;;;10005:113:0;;14209:2:1;10005:113:0::1;::::0;::::1;14191:21:1::0;14248:2;14228:18;;;14221:30;14287:34;14267:18;;;14260:62;14358:25;14338:18;;;14331:53;14401:19;;10005:113:0::1;14007:419:1::0;10005:113:0::1;10145:16;:9:::0;10157:4:::1;10145:16;:::i;:::-;10129:13;:32:::0;-1:-1:-1;9927:242:0:o;16649:297::-;5710:6;;-1:-1:-1;;;;;5710:6:0;1207:10;5710:22;5702:67;;;;-1:-1:-1;;;5702:67:0;;;;;;;:::i;:::-;16753:23:::1;::::0;;;::::1;;;16745:82;;;::::0;-1:-1:-1;;;16745:82:0;;14633:2:1;16745:82:0::1;::::0;::::1;14615:21:1::0;14672:2;14652:18;;;14645:30;14711:34;14691:18;;;14684:62;-1:-1:-1;;;14762:18:1;;;14755:44;14816:19;;16745:82:0::1;14431:410:1::0;16745:82:0::1;16843:9;16838:101;16854:20:::0;;::::1;16838:101;;;16921:6;16896:8;:22;16905:9;;16915:1;16905:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16896:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;16896:22:0;:31;;-1:-1:-1;;16896:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;16876:3:0::1;16838:101;;;;16649:297:::0;;;:::o;5955:244::-;5710:6;;-1:-1:-1;;;;;5710:6:0;1207:10;5710:22;5702:67;;;;-1:-1:-1;;;5702:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6044:22:0;::::1;6036:73;;;::::0;-1:-1:-1;;;6036:73:0;;15180:2:1;6036:73:0::1;::::0;::::1;15162:21:1::0;15219:2;15199:18;;;15192:30;15258:34;15238:18;;;15231:62;-1:-1:-1;;;15309:18:1;;;15302:36;15355:19;;6036:73:0::1;14978:402:1::0;6036:73:0::1;6146:6;::::0;6125:38:::1;::::0;-1:-1:-1;;;;;6125:38:0;;::::1;::::0;6146:6:::1;::::0;6125:38:::1;::::0;6146:6:::1;::::0;6125:38:::1;6174:6;:17:::0;;-1:-1:-1;;;;;;6174:17:0::1;-1:-1:-1::0;;;;;6174:17:0;;;::::1;::::0;;;::::1;::::0;;5955:244::o;17888:160::-;5710:6;;-1:-1:-1;;;;;5710:6:0;1207:10;5710:22;5702:67;;;;-1:-1:-1;;;5702:67:0;;;;;;;:::i;:::-;17982:58:::1;::::0;17946:12:::1;::::0;17990:10:::1;::::0;18014:21:::1;::::0;17946:12;17982:58;17946:12;17982:58;18014:21;17990:10;17982:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17000:104:::0;5710:6;;-1:-1:-1;;;;;5710:6:0;1207:10;5710:22;5702:67;;;;-1:-1:-1;;;5702:67:0;;;;;;;:::i;:::-;17065:23:::1;:31:::0;;-1:-1:-1;;17065:31:0::1;::::0;;17000:104::o;4876:380::-;-1:-1:-1;;;;;5012:19:0;;5004:68;;;;-1:-1:-1;;;5004:68:0;;15797:2:1;5004:68:0;;;15779:21:1;15836:2;15816:18;;;15809:30;15875:34;15855:18;;;15848:62;-1:-1:-1;;;15926:18:1;;;15919:34;15970:19;;5004:68:0;15595:400:1;5004:68:0;-1:-1:-1;;;;;5091:21:0;;5083:68;;;;-1:-1:-1;;;5083:68:0;;16202:2:1;5083:68:0;;;16184:21:1;16241:2;16221:18;;;16214:30;16280:34;16260:18;;;16253:62;-1:-1:-1;;;16331:18:1;;;16324:32;16373:19;;5083:68:0;16000:398:1;5083:68:0;-1:-1:-1;;;;;5164:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5216:32;;1839:25:1;;;5216:32:0;;1812:18:1;5216:32:0;;;;;;;4876:380;;;:::o;11964:2745::-;12071:1;12062:6;:10;12054:44;;;;-1:-1:-1;;;12054:44:0;;16605:2:1;12054:44:0;;;16587:21:1;16644:2;16624:18;;;16617:30;-1:-1:-1;;;16663:18:1;;;16656:51;16724:18;;12054:44:0;16403:345:1;12054:44:0;-1:-1:-1;;;;;12118:14:0;;;;;;:8;:14;;;;;;;;12117:15;12109:58;;;;-1:-1:-1;;;12109:58:0;;16955:2:1;12109:58:0;;;16937:21:1;16994:2;16974:18;;;16967:30;17033:32;17013:18;;;17006:60;17083:18;;12109:58:0;16753:354:1;12109:58:0;-1:-1:-1;;;;;12187:12:0;;;;;;:8;:12;;;;;;;;12186:13;12178:59;;;;-1:-1:-1;;;12178:59:0;;17314:2:1;12178:59:0;;;17296:21:1;17353:2;17333:18;;;17326:30;17392:34;17372:18;;;17365:62;-1:-1:-1;;;17443:18:1;;;17436:31;17484:19;;12178:59:0;17112:397:1;12178:59:0;12255:14;;;;12251:1168;;;5648:6;;-1:-1:-1;;;;;12290:15:0;;;5648:6;;12290:15;;;;:32;;-1:-1:-1;5648:6:0;;-1:-1:-1;;;;;12309:13:0;;;5648:6;;12309:13;;12290:32;:61;;;;-1:-1:-1;;;;;;12327:24:0;;;;;;:18;:24;;;;;;;;12326:25;12290:61;:88;;;;-1:-1:-1;;;;;;12356:22:0;;;;;;:18;:22;;;;;;;;12355:23;12290:88;12286:1122;;;12407:13;;;;;;;12399:54;;;;-1:-1:-1;;;12399:54:0;;17716:2:1;12399:54:0;;;17698:21:1;17755:2;17735:18;;;17728:30;17794;17774:18;;;17767:58;17842:18;;12399:54:0;17514:352:1;12399:54:0;12497:1;12476:18;;:22;:74;;;;;12539:10;;12518:18;;:31;;;;:::i;:::-;12502:12;:48;12476:74;12472:143;;;-1:-1:-1;;;;;12576:12:0;;;;;;:8;:12;;;;;:19;;-1:-1:-1;;12576:19:0;12591:4;12576:19;;;12472:143;-1:-1:-1;;;;;12661:31:0;;;;;;:25;:31;;;;;;;;:60;;;;-1:-1:-1;;;;;;12697:24:0;;;;;;:20;:24;;;;;;;;12696:25;12661:60;12657:736;;;12764:12;;12754:6;:22;;12746:80;;;;-1:-1:-1;;;12746:80:0;;18073:2:1;12746:80:0;;;18055:21:1;18112:2;18092:18;;;18085:30;18151:34;18131:18;;;18124:62;-1:-1:-1;;;18202:18:1;;;18195:43;18255:19;;12746:80:0;17871:409:1;12746:80:0;12883:15;;-1:-1:-1;;;;;2294:18:0;;2267:7;2294:18;;;;;;;;;;;12857:22;;:6;:22;:::i;:::-;:41;;12849:94;;;;-1:-1:-1;;;12849:94:0;;;;;;;:::i;:::-;12657:736;;;-1:-1:-1;;;;;13015:29:0;;;;;;:25;:29;;;;;;;;:60;;;;-1:-1:-1;;;;;;13049:26:0;;;;;;:20;:26;;;;;;;;13048:27;13015:60;13011:382;;;13118:13;;13108:6;:23;;13100:82;;;;-1:-1:-1;;;13100:82:0;;18896:2:1;13100:82:0;;;18878:21:1;18935:2;18915:18;;;18908:30;18974:34;18954:18;;;18947:62;-1:-1:-1;;;19025:18:1;;;19018:44;19079:19;;13100:82:0;18694:410:1;13011:382:0;-1:-1:-1;;;;;13230:24:0;;;;;;:20;:24;;;;;;;;13225:168;;13313:15;;-1:-1:-1;;;;;2294:18:0;;2267:7;2294:18;;;;;;;;;;;13287:22;;:6;:22;:::i;:::-;:41;;13279:94;;;;-1:-1:-1;;;13279:94:0;;;;;;;:::i;:::-;13480:4;13431:28;2294:18;;;;;;;;;;;13536;;13512:42;;;;;;;13568:22;;-1:-1:-1;13579:11:0;;;;;;;13568:22;:36;;;;-1:-1:-1;13595:9:0;;;;13594:10;13568:36;:72;;;;-1:-1:-1;;;;;;13609:31:0;;;;;;:25;:31;;;;;;;;13608:32;13568:72;:101;;;;-1:-1:-1;;;;;;13645:24:0;;;;;;:18;:24;;;;;;;;13644:25;13568:101;:128;;;;-1:-1:-1;;;;;;13674:22:0;;;;;;:18;:22;;;;;;;;13673:23;13568:128;13565:234;;;13713:9;:16;;-1:-1:-1;;13713:16:0;13725:4;13713:16;;;13744:11;:9;:11::i;:::-;13770:9;:17;;-1:-1:-1;;13770:17:0;;;13565:234;-1:-1:-1;;;;;13877:24:0;;13811:11;13877:24;;;:18;:24;;;;;;13811:11;;13877:24;;13876:25;:52;;;;-1:-1:-1;;;;;;13906:22:0;;;;;;:18;:22;;;;;;;;13905:23;13876:52;13873:783;;;14000:1;13979:18;;:22;:74;;;;;14042:10;;14021:18;;:31;;;;:::i;:::-;14005:12;:48;13979:74;13975:525;;;14105:3;14091:11;:6;14100:2;14091:11;:::i;:::-;:17;;;;:::i;:::-;14149:16;;14075:33;;-1:-1:-1;14127:54:0;;14143:4;;-1:-1:-1;;;;;14149:16:0;14075:33;14127:15;:54::i;:::-;13975:525;;;-1:-1:-1;;;;;14241:29:0;;;;;;:25;:29;;;;;;;;:44;;;;;14284:1;14274:7;;:11;14241:44;14237:263;;;14330:3;14320:7;;14311:6;:16;;;;:::i;:::-;:22;;;;:::i;:::-;14305:28;;14237:263;;;-1:-1:-1;;;;;14391:31:0;;;;;;:25;:31;;;;;;;;:45;;;;;14435:1;14426:6;;:10;14391:45;14388:112;;;14481:3;14472:6;;14463;:15;;;;:::i;:::-;:21;;;;:::i;:::-;14457:27;;14388:112;14517:7;;14514:87;;14544:41;14560:4;14574;14581:3;14544:15;:41::i;:::-;14625:19;14631:13;14625:3;:19;:::i;:::-;14615:29;;;;:::i;:::-;;;13873:783;14668:33;14684:4;14690:2;14694:6;14668:15;:33::i;:::-;12043:2666;;;;11964:2745;;;:::o;17112:448::-;17196:4;17152:23;2294:18;;;;;;;;;;;;17217:20;;;17213:59;;17254:7;17112:448::o;17213:59::-;17304:18;;;:23;;;:::i;:::-;17286:15;:41;17282:115;;;17362:18;;;:23;;;:::i;:::-;17344:41;;17282:115;17407:34;17425:15;17407:17;:34::i;:::-;17496:16;;17488:64;;17452:12;;-1:-1:-1;;;;;17496:16:0;;17526:21;;17452:12;17488:64;17452:12;17488:64;17526:21;17496:16;17488:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17112:448:0:o;3967:602::-;-1:-1:-1;;;;;4107:20:0;;4099:70;;;;-1:-1:-1;;;4099:70:0;;19444:2:1;4099:70:0;;;19426:21:1;19483:2;19463:18;;;19456:30;19522:34;19502:18;;;19495:62;-1:-1:-1;;;19573:18:1;;;19566:35;19618:19;;4099:70:0;19242:401:1;4099:70:0;-1:-1:-1;;;;;4188:23:0;;4180:71;;;;-1:-1:-1;;;4180:71:0;;19850:2:1;4180:71:0;;;19832:21:1;19889:2;19869:18;;;19862:30;19928:34;19908:18;;;19901:62;-1:-1:-1;;;19979:18:1;;;19972:33;20022:19;;4180:71:0;19648:399:1;4180:71:0;-1:-1:-1;;;;;4288:17:0;;4264:21;4288:17;;;;;;;;;;;4324:23;;;;4316:74;;;;-1:-1:-1;;;4316:74:0;;20254:2:1;4316:74:0;;;20236:21:1;20293:2;20273:18;;;20266:30;20332:34;20312:18;;;20305:62;-1:-1:-1;;;20383:18:1;;;20376:36;20429:19;;4316:74:0;20052:402:1;4316:74:0;-1:-1:-1;;;;;4418:17:0;;;:9;:17;;;;;;;;;;;4438:22;;;4418:42;;4478:20;;;;;;;;:30;;4454:6;;4418:9;4478:30;;4454:6;;4478:30;:::i;:::-;;;;;;;;4543:9;-1:-1:-1;;;;;4526:35:0;4535:6;-1:-1:-1;;;;;4526:35:0;;4554:6;4526:35;;;;1839:25:1;;1827:2;1812:18;;1693:177;4526:35:0;;;;;;;;4088:481;3967:602;;;:::o;14717:472::-;14808:16;;;14822:1;14808:16;;;;;;;;14784:21;;14808:16;;;;;;;;;;-1:-1:-1;14808:16:0;14784:40;;14853:4;14835;14840:1;14835:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;14835:23:0;;;-1:-1:-1;;;;;14835:23:0;;;;;14879:15;-1:-1:-1;;;;;14879:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14869:4;14874:1;14869:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;14869:32:0;;;-1:-1:-1;;;;;14869:32:0;;;;;14912:62;14929:4;14944:15;14962:11;14912:8;:62::i;:::-;14985:196;;-1:-1:-1;;;14985:196:0;;-1:-1:-1;;;;;14985:15:0;:66;;;;:196;;15066:11;;15092:1;;15108:4;;15135;;15155:15;;14985:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14773:416;14717:472;:::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;1215:247::-;1274:6;1327:2;1315:9;1306:7;1302:23;1298:32;1295:52;;;1343:1;1340;1333:12;1295:52;1382:9;1369:23;1401:31;1426:5;1401:31;:::i;:::-;1451:5;1215:247;-1:-1:-1;;;1215:247:1:o;1875:180::-;1934:6;1987:2;1975:9;1966:7;1962:23;1958:32;1955:52;;;2003:1;2000;1993:12;1955:52;-1:-1:-1;2026:23:1;;1875:180;-1:-1:-1;1875:180:1:o;2060:456::-;2137:6;2145;2153;2206:2;2194:9;2185:7;2181:23;2177:32;2174:52;;;2222:1;2219;2212:12;2174:52;2261:9;2248:23;2280:31;2305:5;2280:31;:::i;:::-;2330:5;-1:-1:-1;2387:2:1;2372:18;;2359:32;2400:33;2359:32;2400:33;:::i;:::-;2060:456;;2452:7;;-1:-1:-1;;;2506:2:1;2491:18;;;;2478:32;;2060:456::o;2918:118::-;3004:5;2997:13;2990:21;2983:5;2980:32;2970:60;;3026:1;3023;3016:12;3041:309;3106:6;3114;3167:2;3155:9;3146:7;3142:23;3138:32;3135:52;;;3183:1;3180;3173:12;3135:52;3222:9;3209:23;3241:28;3263:5;3241:28;:::i;3355:382::-;3420:6;3428;3481:2;3469:9;3460:7;3456:23;3452:32;3449:52;;;3497:1;3494;3487:12;3449:52;3536:9;3523:23;3555:31;3580:5;3555:31;:::i;:::-;3605:5;-1:-1:-1;3662:2:1;3647:18;;3634:32;3675:30;3634:32;3675:30;:::i;:::-;3724:7;3714:17;;;3355:382;;;;;:::o;3742:388::-;3810:6;3818;3871:2;3859:9;3850:7;3846:23;3842:32;3839:52;;;3887:1;3884;3877:12;3839:52;3926:9;3913:23;3945:31;3970:5;3945:31;:::i;:::-;3995:5;-1:-1:-1;4052:2:1;4037:18;;4024:32;4065:33;4024:32;4065:33;:::i;4135:750::-;4227:6;4235;4243;4296:2;4284:9;4275:7;4271:23;4267:32;4264:52;;;4312:1;4309;4302:12;4264:52;4352:9;4339:23;4381:18;4422:2;4414:6;4411:14;4408:34;;;4438:1;4435;4428:12;4408:34;4476:6;4465:9;4461:22;4451:32;;4521:7;4514:4;4510:2;4506:13;4502:27;4492:55;;4543:1;4540;4533:12;4492:55;4583:2;4570:16;4609:2;4601:6;4598:14;4595:34;;;4625:1;4622;4615:12;4595:34;4680:7;4673:4;4663:6;4660:1;4656:14;4652:2;4648:23;4644:34;4641:47;4638:67;;;4701:1;4698;4691:12;4638:67;4732:4;4724:13;;;;-1:-1:-1;4756:6:1;-1:-1:-1;;4797:20:1;;4784:34;4827:28;4784:34;4827:28;:::i;:::-;4874:5;4864:15;;;4135:750;;;;;:::o;4890:380::-;4969:1;4965:12;;;;5012;;;5033:61;;5087:4;5079:6;5075:17;5065:27;;5033:61;5140:2;5132:6;5129:14;5109:18;5106:38;5103:161;;5186:10;5181:3;5177:20;5174:1;5167:31;5221:4;5218:1;5211:15;5249:4;5246:1;5239:15;5103:161;;4890:380;;;:::o;5275:356::-;5477:2;5459:21;;;5496:18;;;5489:30;5555:34;5550:2;5535:18;;5528:62;5622:2;5607:18;;5275:356::o;6817:127::-;6878:10;6873:3;6869:20;6866:1;6859:31;6909:4;6906:1;6899:15;6933:4;6930:1;6923:15;6949:168;7022:9;;;7053;;7070:15;;;7064:22;;7050:37;7040:71;;7091:18;;:::i;7122:217::-;7162:1;7188;7178:132;;7232:10;7227:3;7223:20;7220:1;7213:31;7267:4;7264:1;7257:15;7295:4;7292:1;7285:15;7178:132;-1:-1:-1;7324:9:1;;7122:217::o;7767:125::-;7832:9;;;7853:10;;;7850:36;;;7866:18;;:::i;9794:184::-;9864:6;9917:2;9905:9;9896:7;9892:23;9888:32;9885:52;;;9933:1;9930;9923:12;9885:52;-1:-1:-1;9956:16:1;;9794:184;-1:-1:-1;9794:184:1:o;10262:245::-;10329:6;10382:2;10370:9;10361:7;10357:23;10353:32;10350:52;;;10398:1;10395;10388:12;10350:52;10430:9;10424:16;10449:28;10471:5;10449:28;:::i;11351:251::-;11421:6;11474:2;11462:9;11453:7;11449:23;11445:32;11442:52;;;11490:1;11487;11480:12;11442:52;11522:9;11516:16;11541:31;11566:5;11541:31;:::i;14846:127::-;14907:10;14902:3;14898:20;14895:1;14888:31;14938:4;14935:1;14928:15;14962:4;14959:1;14952:15;18285:404;18487:2;18469:21;;;18526:2;18506:18;;;18499:30;18565:34;18560:2;18545:18;;18538:62;-1:-1:-1;;;18631:2:1;18616:18;;18609:38;18679:3;18664:19;;18285:404::o;19109:128::-;19176:9;;;19197:11;;;19194:37;;;19211:18;;:::i;20591:980::-;20853:4;20901:3;20890:9;20886:19;20932:6;20921:9;20914:25;20958:2;20996:6;20991:2;20980:9;20976:18;20969:34;21039:3;21034:2;21023:9;21019:18;21012:31;21063:6;21098;21092:13;21129:6;21121;21114:22;21167:3;21156:9;21152:19;21145:26;;21206:2;21198:6;21194:15;21180:29;;21227:1;21237:195;21251:6;21248:1;21245:13;21237:195;;;21316:13;;-1:-1:-1;;;;;21312:39:1;21300:52;;21407:15;;;;21372:12;;;;21348:1;21266:9;21237:195;;;-1:-1:-1;;;;;;;21488:32:1;;;;21483:2;21468:18;;21461:60;-1:-1:-1;;;21552:3:1;21537:19;21530:35;21449:3;20591:980;-1:-1:-1;;;20591:980:1:o

Swarm Source

ipfs://6b37fa44b4c57b5401d1488b6022189b74beac6e396b43fd5d42cf60f10cd755

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  ]

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.