ETH Price: $3,410.43 (-1.52%)
Gas: 7 Gwei

Contract

0x6ddf339AeE45a7B2397fF92fE9A8272E02566dF9
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Approve200229032024-06-05 3:21:2327 days ago1717557683IN
0x6ddf339A...E02566dF9
0 ETH0.0008419717.7970328
Approve200158712024-06-04 3:48:2328 days ago1717472903IN
0x6ddf339A...E02566dF9
0 ETH0.000260615.51571246
Approve199935822024-06-01 1:07:3531 days ago1717204055IN
0x6ddf339A...E02566dF9
0 ETH0.000343447.2685868
Approve199088612024-05-20 4:49:3543 days ago1716180575IN
0x6ddf339A...E02566dF9
0 ETH0.00014142.99279787
Approve199072792024-05-19 23:31:4743 days ago1716161507IN
0x6ddf339A...E02566dF9
0 ETH0.00016073.40110546
Transfer199061502024-05-19 19:44:4743 days ago1716147887IN
0x6ddf339A...E02566dF9
0 ETH0.000200753.32814193
Transfer199061322024-05-19 19:40:5943 days ago1716147659IN
0x6ddf339A...E02566dF9
0 ETH0.000212023.51501726
Transfer199061112024-05-19 19:36:4743 days ago1716147407IN
0x6ddf339A...E02566dF9
0 ETH0.000222453.6879859
Approve199060872024-05-19 19:31:5943 days ago1716147119IN
0x6ddf339A...E02566dF9
0 ETH0.000179573.80043027
Approve199060712024-05-19 19:28:4743 days ago1716146927IN
0x6ddf339A...E02566dF9
0 ETH0.000176423.73376088
Approve199015282024-05-19 4:13:3544 days ago1716092015IN
0x6ddf339A...E02566dF9
0 ETH0.000270385.72246926
Approve198921212024-05-17 20:38:2345 days ago1715978303IN
0x6ddf339A...E02566dF9
0 ETH0.000171893.63798682
Approve198901802024-05-17 14:06:3546 days ago1715954795IN
0x6ddf339A...E02566dF9
0 ETH0.000333087.04951846
Approve198875582024-05-17 5:17:3546 days ago1715923055IN
0x6ddf339A...E02566dF9
0 ETH0.000162183.43250943
Approve198824272024-05-16 12:06:1147 days ago1715861171IN
0x6ddf339A...E02566dF9
0 ETH0.000124614.55628
Approve198824262024-05-16 12:05:5947 days ago1715861159IN
0x6ddf339A...E02566dF9
0 ETH0.000215824.56775993
Approve198802702024-05-16 4:51:5947 days ago1715835119IN
0x6ddf339A...E02566dF9
0 ETH0.000251695.32685119
Approve198796262024-05-16 2:41:5947 days ago1715827319IN
0x6ddf339A...E02566dF9
0 ETH0.000447749.5122862
Approve198691442024-05-14 15:32:2349 days ago1715700743IN
0x6ddf339A...E02566dF9
0 ETH0.000386728.18472965
Approve198676002024-05-14 10:17:2349 days ago1715681843IN
0x6ddf339A...E02566dF9
0 ETH0.000376658.01628867
Approve198617102024-05-13 14:31:5950 days ago1715610719IN
0x6ddf339A...E02566dF9
0 ETH0.0009392619.87866208
Approve198544472024-05-12 14:10:3551 days ago1715523035IN
0x6ddf339A...E02566dF9
0 ETH0.000403728.54439393
Approve198507912024-05-12 1:53:1151 days ago1715478791IN
0x6ddf339A...E02566dF9
0 ETH0.000181173.82951466
Transfer198492502024-05-11 20:42:5951 days ago1715460179IN
0x6ddf339A...E02566dF9
0 ETH0.000229113.62386332
Approve198492482024-05-11 20:42:3551 days ago1715460155IN
0x6ddf339A...E02566dF9
0 ETH0.000320016.76421605
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
200325052024-06-06 11:31:4726 days ago1717673507
0x6ddf339A...E02566dF9
0.00026166 ETH
200325052024-06-06 11:31:4726 days ago1717673507
0x6ddf339A...E02566dF9
0.00052333 ETH
200325052024-06-06 11:31:4726 days ago1717673507
0x6ddf339A...E02566dF9
0.00052333 ETH
200325052024-06-06 11:31:4726 days ago1717673507
0x6ddf339A...E02566dF9
0.00130833 ETH
200325052024-06-06 11:31:4726 days ago1717673507
0x6ddf339A...E02566dF9
0.000266 ETH
200325052024-06-06 11:31:4726 days ago1717673507
0x6ddf339A...E02566dF9
0.00053201 ETH
200325052024-06-06 11:31:4726 days ago1717673507
0x6ddf339A...E02566dF9
0.00053201 ETH
200325052024-06-06 11:31:4726 days ago1717673507
0x6ddf339A...E02566dF9
0.00133002 ETH
200229132024-06-05 3:23:2327 days ago1717557803
0x6ddf339A...E02566dF9
0.00002849 ETH
200229132024-06-05 3:23:2327 days ago1717557803
0x6ddf339A...E02566dF9
0.00005698 ETH
200229132024-06-05 3:23:2327 days ago1717557803
0x6ddf339A...E02566dF9
0.00005698 ETH
200229132024-06-05 3:23:2327 days ago1717557803
0x6ddf339A...E02566dF9
0.00014246 ETH
200159142024-06-04 3:56:5928 days ago1717473419
0x6ddf339A...E02566dF9
0.00016745 ETH
200159142024-06-04 3:56:5928 days ago1717473419
0x6ddf339A...E02566dF9
0.0003349 ETH
200159142024-06-04 3:56:5928 days ago1717473419
0x6ddf339A...E02566dF9
0.0003349 ETH
200159142024-06-04 3:56:5928 days ago1717473419
0x6ddf339A...E02566dF9
0.00083726 ETH
199935822024-06-01 1:07:3531 days ago1717204055
0x6ddf339A...E02566dF9
0.00029048 ETH
199935822024-06-01 1:07:3531 days ago1717204055
0x6ddf339A...E02566dF9
0.00058097 ETH
199935822024-06-01 1:07:3531 days ago1717204055
0x6ddf339A...E02566dF9
0.00058097 ETH
199935822024-06-01 1:07:3531 days ago1717204055
0x6ddf339A...E02566dF9
0.00145242 ETH
199774732024-05-29 19:03:4733 days ago1717009427
0x6ddf339A...E02566dF9
0.00030251 ETH
199774732024-05-29 19:03:4733 days ago1717009427
0x6ddf339A...E02566dF9
0.00060503 ETH
199774732024-05-29 19:03:4733 days ago1717009427
0x6ddf339A...E02566dF9
0.00060503 ETH
199774732024-05-29 19:03:4733 days ago1717009427
0x6ddf339A...E02566dF9
0.00151259 ETH
199774732024-05-29 19:03:4733 days ago1717009427
0x6ddf339A...E02566dF9
0.00014962 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CHAINSEND

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed

/*
Website: https://www.chainsendai.com/
Twitter: https://twitter.com/chainsendapp
Telegram: https://t.me/chainsend
*/

pragma solidity 0.8.24;

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

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


contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}

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

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

interface IERC20Errors {
    error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);
    error ERC20InvalidSender(address sender);
    error ERC20InvalidReceiver(address receiver);
    error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);
    error ERC20InvalidApprover(address approver);
    error ERC20InvalidSpender(address spender);
}

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 ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors {
    mapping(address account => uint256) private _balances;

    mapping(address account => mapping(address spender => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual returns (string memory) {
        return _symbol;
    }


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

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `value`.
     */
    function transfer(address to, uint256 value) public virtual returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, value);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual returns (uint256) {
        return _allowances[owner][spender];
    }


    function approve(address spender, uint256 value) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, value);
        return true;
    }

    function transferFrom(address from, address to, uint256 value) public virtual returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, value);
        _transfer(from, to, value);
        return true;
    }

 
    function _transfer(address from, address to, uint256 value) internal virtual {
        if (from == address(0)) {
            revert ERC20InvalidSender(address(0));
        }
        if (to == address(0)) {
            revert ERC20InvalidReceiver(address(0));
        }
        _update(from, to, value);
    }

 
    function _update(address from, address to, uint256 value) internal virtual {
        if (from == address(0)) {
            // Overflow check required: The rest of the code assumes that totalSupply never overflows
            _totalSupply += value;
        } else {
            uint256 fromBalance = _balances[from];
            if (fromBalance < value) {
                revert ERC20InsufficientBalance(from, fromBalance, value);
            }
            unchecked {
                // Overflow not possible: value <= fromBalance <= totalSupply.
                _balances[from] = fromBalance - value;
            }
        }

        if (to == address(0)) {
            unchecked {
                // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply.
                _totalSupply -= value;
            }
        } else {
            unchecked {
                // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.
                _balances[to] += value;
            }
        }

        emit Transfer(from, to, value);
    }

    function _createInitialTokens(address account, uint256 value) internal {
        if (account == address(0)) {
            revert ERC20InvalidReceiver(address(0));
        }
        _update(address(0), account, value);
    }

    function _approve(address owner, address spender, uint256 value) internal {
        _approve(owner, spender, value, true);
    }


    function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {
        if (owner == address(0)) {
            revert ERC20InvalidApprover(address(0));
        }
        if (spender == address(0)) {
            revert ERC20InvalidSpender(address(0));
        }
        _allowances[owner][spender] = value;
        if (emitEvent) {
            emit Approval(owner, spender, value);
        }
    }

    function _spendAllowance(address owner, address spender, uint256 value) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            if (currentAllowance < value) {
                revert ERC20InsufficientAllowance(spender, currentAllowance, value);
            }
            unchecked {
                _approve(owner, spender, currentAllowance - value, false);
            }
        }
    }
}

contract CHAINSEND is ERC20, Ownable {
    
    uint256 public maxWalletToken = 1500000 * 10**18; // 1.5% of total supply
    uint256 public swapAmount = 3000 * 10**18;
    uint256 public marketingFees = 5; // 5% fee on each buy/sell

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    mapping (address => bool) private _isExcludedFromFees;
    mapping (address => bool) public _isBot;
    mapping (address => bool) public tradingWhitelist;

    address payable public operationsWallet = payable(0xd4aE93809F0919C118Ad1CbA4d1DBCD63f212ba5);
    address payable public communityWallet = payable(0xc11F3b6f5B72Cd618f090A56e70A72A78cF88BC4);
    address payable public marketingWallet = payable(0x02e0095B2803feF26a21D788E1Cf0AB74225e4E4);

    event TradingAttempt(address indexed from, address indexed to, bool isFromWhitelisted, bool isToWhitelisted);
    event WhitelistUpdated(address indexed account, bool status);
    event TradingEnabledChanged(bool enabled);
    event SwapAndDistribute(uint256 tokensSwapped, uint256 ethReceived);
    event BotStatusChanged(address indexed account, bool isBlacklisted);


    bool public tradingEnabled = false;

    bool private inSwap;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
   

    constructor() ERC20("CHAINSEND", "CSEND") {
        _createInitialTokens(owner(), 100000000 * (10**18)); // Mint the total supply to the owner
        transferOwnership(owner());

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D // Uniswap Router address
        );
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;

        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[marketingWallet] = true;
        _isExcludedFromFees[operationsWallet] = true;
        _isExcludedFromFees[communityWallet] = true;
    }

    function _transfer(address from, address to, uint256 amount) internal override {
        bool isFromWhitelisted = tradingWhitelist[from];
        bool isToWhitelisted = tradingWhitelist[to];
        emit TradingAttempt(from, to, isFromWhitelisted, isToWhitelisted);

        require(!_isBot[from] && !_isBot[to], "Bot address cannot transfer tokens");
        require(from != address(0) && to != address(0), "ERC20: transfer to/from the zero address");
        require(
            tradingEnabled || from == owner() || to == owner() || isFromWhitelisted || isToWhitelisted,
            "Trading is not enabled or address not whitelisted"
        );

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (from == uniswapV2Pair && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] && to != address(uniswapV2Router)) {
            uint256 contractBalanceRecipient = balanceOf(to);
            require(contractBalanceRecipient + amount <= maxWalletToken, "Exceeds maximum wallet token amount.");
        }

        uint256 contractTokenBalance = balanceOf(address(this));
        bool overMinTokenBalance = contractTokenBalance >= swapAmount;
        if (overMinTokenBalance && !inSwap && to == uniswapV2Pair) {
            swapAndDistribute(contractTokenBalance);
        }

        uint256 feeAmount = amount * marketingFees / 100;
        if (!_isExcludedFromFees[from] && !_isExcludedFromFees[to] && (from == uniswapV2Pair || to == uniswapV2Pair)) {
            super._transfer(from, address(this), feeAmount);
            amount -= feeAmount;
        }

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

    function swapAndDistribute(uint256 tokenAmount) private {
        swapTokensForEth(tokenAmount); // This swaps the tokens for ETH and keeps it in the contract

        uint256 balance = address(this).balance;
        uint256 marketingAmount = balance * 40 / 100; // 40% for marketing
        uint256 operationsAmount = balance * 40 / 100; // 40% for operations
        uint256 communityAmount = balance - (marketingAmount + operationsAmount); // 20% for community

        marketingWallet.transfer(marketingAmount);
        operationsWallet.transfer(operationsAmount);
        communityWallet.transfer(communityAmount);

        emit SwapAndDistribute(tokenAmount, balance);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap{
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

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

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // Contract keeps the ETH
            block.timestamp
        );
    }


    function removeTax(uint256 _newFee) public onlyOwner {
        require(_newFee <= 5, "can't set more than 5%");
        marketingFees = _newFee;
    }

    function updateBotStatus(address account, bool value) public onlyOwner {
        _isBot[account] = value;
        emit BotStatusChanged(account, value);
    }

    function updateWhitelistStatus(address[] memory _addresses, bool[] memory _statuses) public onlyOwner {
        require(_addresses.length == _statuses.length, "Arrays length mismatch");

        for (uint256 i = 0; i < _addresses.length; i++) {
            tradingWhitelist[_addresses[i]] = _statuses[i];
            emit WhitelistUpdated(_addresses[i], _statuses[i]);
        }
    }

    function updateMaxWalletPercentage(uint256 _newMaxPercentage) public onlyOwner {
        require(_newMaxPercentage >= 1, "Cannot set below 1%");
        maxWalletToken = totalSupply() * _newMaxPercentage / 100;
    }
    
    function setSwapAmount(uint256 _newSwapAmount) public onlyOwner {
        swapAmount = _newSwapAmount;

    }

    function enableTrading() public onlyOwner {
        require(tradingEnabled != true, "Already enabled");
        tradingEnabled = true;
    }

    receive() external payable {
        // Allow the contract to receive ETH
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isBlacklisted","type":"bool"}],"name":"BotStatusChanged","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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"}],"name":"SwapAndDistribute","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"bool","name":"isFromWhitelisted","type":"bool"},{"indexed":false,"internalType":"bool","name":"isToWhitelisted","type":"bool"}],"name":"TradingAttempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"TradingEnabledChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"WhitelistUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"communityWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletToken","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":"operationsWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"removeTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newSwapAmount","type":"uint256"}],"name":"setSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAmount","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":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tradingWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","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 IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"updateBotStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newMaxPercentage","type":"uint256"}],"name":"updateMaxWalletPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"bool[]","name":"_statuses","type":"bool[]"}],"name":"updateWhitelistStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526a013da329b633647180000060065568a2a15d09519be00000600755600560085573d4ae93809f0919c118ad1cba4d1dbcd63f212ba5600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c11f3b6f5b72cd618f090a56e70a72a78cf88bc4600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507302e0095b2803fef26a21d788e1cf0ab74225e4e460105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f601060146101000a81548160ff02191690831515021790555034801562000147575f80fd5b506040518060400160405280600981526020017f434841494e53454e4400000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f4353454e440000000000000000000000000000000000000000000000000000008152508160039081620001c5919062000dfc565b508060049081620001d7919062000dfc565b5050505f620001eb620006eb60201b60201c565b90508060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620002b46200029c620006f260201b60201c565b6a52b7d2dcc80cd2e40000006200071a60201b60201c565b620002d4620002c8620006f260201b60201c565b620007a460201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000336573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200035c919062000f45565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003c2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003e8919062000f45565b6040518363ffffffff1660e01b81526004016200040792919062000f86565b6020604051808303815f875af115801562000424573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200044a919062000f45565b600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600b5f620004de620006f260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050620011ac565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200078d575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040162000784919062000fb1565b60405180910390fd5b620007a05f83836200097460201b60201c565b5050565b620007b4620006eb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000845576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200083c906200102a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620008b6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008ad90620010be565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620009c8578060025f828254620009bb91906200110b565b9250508190555062000a99565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101562000a54578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040162000a4b9392919062001156565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000ae2578060025f828254039250508190555062000b2c565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000b8b919062001191565b60405180910390a3505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000c1457607f821691505b60208210810362000c2a5762000c2962000bcf565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000c8e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000c51565b62000c9a868362000c51565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000ce462000cde62000cd88462000cb2565b62000cbb565b62000cb2565b9050919050565b5f819050919050565b62000cff8362000cc4565b62000d1762000d0e8262000ceb565b84845462000c5d565b825550505050565b5f90565b62000d2d62000d1f565b62000d3a81848462000cf4565b505050565b5b8181101562000d615762000d555f8262000d23565b60018101905062000d40565b5050565b601f82111562000db05762000d7a8162000c30565b62000d858462000c42565b8101602085101562000d95578190505b62000dad62000da48562000c42565b83018262000d3f565b50505b505050565b5f82821c905092915050565b5f62000dd25f198460080262000db5565b1980831691505092915050565b5f62000dec838362000dc1565b9150826002028217905092915050565b62000e078262000b98565b67ffffffffffffffff81111562000e235762000e2262000ba2565b5b62000e2f825462000bfc565b62000e3c82828562000d65565b5f60209050601f83116001811462000e72575f841562000e5d578287015190505b62000e69858262000ddf565b86555062000ed8565b601f19841662000e828662000c30565b5f5b8281101562000eab5784890151825560018201915060208501945060208101905062000e84565b8683101562000ecb578489015162000ec7601f89168262000dc1565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000f0f8262000ee4565b9050919050565b62000f218162000f03565b811462000f2c575f80fd5b50565b5f8151905062000f3f8162000f16565b92915050565b5f6020828403121562000f5d5762000f5c62000ee0565b5b5f62000f6c8482850162000f2f565b91505092915050565b62000f808162000f03565b82525050565b5f60408201905062000f9b5f83018562000f75565b62000faa602083018462000f75565b9392505050565b5f60208201905062000fc65f83018462000f75565b92915050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6200101260208362000fcc565b91506200101f8262000fdc565b602082019050919050565b5f6020820190508181035f830152620010438162001004565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f620010a660268362000fcc565b9150620010b3826200104a565b604082019050919050565b5f6020820190508181035f830152620010d78162001098565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620011178262000cb2565b9150620011248362000cb2565b92508282019050808211156200113f576200113e620010de565b5b92915050565b620011508162000cb2565b82525050565b5f6060820190506200116b5f83018662000f75565b6200117a602083018562001145565b62001189604083018462001145565b949350505050565b5f602082019050620011a65f83018462001145565b92915050565b6134f680620011ba5f395ff3fe6080604052600436106101c5575f3560e01c806373366782116100f6578063c757483911610094578063e6c75f7111610063578063e6c75f7114610638578063f2fde38b14610662578063f33f625b1461068a578063fd72e22a146106b2576101cc565b8063c757483914610582578063dd62ed3e146105ac578063e4199422146105e8578063e632313c14610610576101cc565b80638da5cb5b116100d05780638da5cb5b146104b657806395d89b41146104e0578063a9059cbb1461050a578063abb8105214610546576101cc565b8063733667821461044e57806375f0a874146104765780638a8c523c146104a0576101cc565b8063313ce567116101635780634ada218b1161013d5780634ada218b146103965780637042cd5a146103c057806370a08231146103fc578063715018a614610438576101cc565b8063313ce5671461031857806339307e161461034257806349bd5a5e1461036c576101cc565b80631694505e1161019f5780631694505e1461025e57806318160ddd1461028857806323b872dd146102b25780632e8fa821146102ee576101cc565b806304cf574d146101d057806306fdde03146101f8578063095ea7b314610222576101cc565b366101cc57005b5f80fd5b3480156101db575f80fd5b506101f660048036038101906101f191906125c5565b6106dc565b005b348015610203575f80fd5b5061020c6107c0565b604051610219919061267a565b60405180910390f35b34801561022d575f80fd5b50610248600480360381019061024391906126f4565b610850565b604051610255919061274c565b60405180910390f35b348015610269575f80fd5b50610272610872565b60405161027f91906127c0565b60405180910390f35b348015610293575f80fd5b5061029c610897565b6040516102a991906127e8565b60405180910390f35b3480156102bd575f80fd5b506102d860048036038101906102d39190612801565b6108a0565b6040516102e5919061274c565b60405180910390f35b3480156102f9575f80fd5b506103026108ce565b60405161030f91906127e8565b60405180910390f35b348015610323575f80fd5b5061032c6108d4565b604051610339919061286c565b60405180910390f35b34801561034d575f80fd5b506103566108dc565b60405161036391906127e8565b60405180910390f35b348015610377575f80fd5b506103806108e2565b60405161038d9190612894565b60405180910390f35b3480156103a1575f80fd5b506103aa610907565b6040516103b7919061274c565b60405180910390f35b3480156103cb575f80fd5b506103e660048036038101906103e191906128ad565b61091a565b6040516103f3919061274c565b60405180910390f35b348015610407575f80fd5b50610422600480360381019061041d91906128ad565b610937565b60405161042f91906127e8565b60405180910390f35b348015610443575f80fd5b5061044c61097c565b005b348015610459575f80fd5b50610474600480360381019061046f91906125c5565b610acf565b005b348015610481575f80fd5b5061048a610bd1565b60405161049791906128f8565b60405180910390f35b3480156104ab575f80fd5b506104b4610bf6565b005b3480156104c1575f80fd5b506104ca610cff565b6040516104d79190612894565b60405180910390f35b3480156104eb575f80fd5b506104f4610d27565b604051610501919061267a565b60405180910390f35b348015610515575f80fd5b50610530600480360381019061052b91906126f4565b610db7565b60405161053d919061274c565b60405180910390f35b348015610551575f80fd5b5061056c600480360381019061056791906128ad565b610dd9565b604051610579919061274c565b60405180910390f35b34801561058d575f80fd5b50610596610df6565b6040516105a391906128f8565b60405180910390f35b3480156105b7575f80fd5b506105d260048036038101906105cd9190612911565b610e1b565b6040516105df91906127e8565b60405180910390f35b3480156105f3575f80fd5b5061060e60048036038101906106099190612979565b610e9d565b005b34801561061b575f80fd5b50610636600480360381019061063191906125c5565b610fd9565b005b348015610643575f80fd5b5061064c611079565b60405161065991906127e8565b60405180910390f35b34801561066d575f80fd5b50610688600480360381019061068391906128ad565b61107f565b005b348015610695575f80fd5b506106b060048036038101906106ab9190612bb7565b611241565b005b3480156106bd575f80fd5b506106c6611442565b6040516106d391906128f8565b60405180910390f35b6106e4611467565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610772576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076990612c77565b60405180910390fd5b60058111156107b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ad90612cdf565b60405180910390fd5b8060088190555050565b6060600380546107cf90612d2a565b80601f01602080910402602001604051908101604052809291908181526020018280546107fb90612d2a565b80156108465780601f1061081d57610100808354040283529160200191610846565b820191905f5260205f20905b81548152906001019060200180831161082957829003601f168201915b5050505050905090565b5f8061085a611467565b905061086781858561146e565b600191505092915050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b5f806108aa611467565b90506108b7858285611480565b6108c2858585611512565b60019150509392505050565b60075481565b5f6012905090565b60085481565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060149054906101000a900460ff1681565b600d602052805f5260405f205f915054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610984611467565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0990612c77565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ad7611467565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5c90612c77565b60405180910390fd5b6001811015610ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba090612da4565b60405180910390fd5b606481610bb4610897565b610bbe9190612def565b610bc89190612e5d565b60068190555050565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610bfe611467565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8390612c77565b60405180910390fd5b60011515601060149054906101000a900460ff16151503610ce2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd990612ed7565b60405180910390fd5b6001601060146101000a81548160ff021916908315150217905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610d3690612d2a565b80601f0160208091040260200160405190810160405280929190818152602001828054610d6290612d2a565b8015610dad5780601f10610d8457610100808354040283529160200191610dad565b820191905f5260205f20905b815481529060010190602001808311610d9057829003601f168201915b5050505050905090565b5f80610dc1611467565b9050610dce818585611512565b600191505092915050565b600c602052805f5260405f205f915054906101000a900460ff1681565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610ea5611467565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2a90612c77565b60405180910390fd5b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f7f66104465258915f96b5d0522aaec27209b853e86e4223de113fc395ae09f5d82604051610fcd919061274c565b60405180910390a25050565b610fe1611467565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461106f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106690612c77565b60405180910390fd5b8060078190555050565b60065481565b611087611467565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611115576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110c90612c77565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611183576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117a90612f65565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611249611467565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ce90612c77565b60405180910390fd5b805182511461131b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131290612fcd565b60405180910390fd5b5f5b825181101561143d5781818151811061133957611338612feb565b5b6020026020010151600d5f85848151811061135757611356612feb565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508281815181106113c1576113c0612feb565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167ff93f9a76c1bf3444d22400a00cb9fe990e6abe9dbb333fda48859cfee864543d83838151811061141357611412612feb565b5b6020026020010151604051611428919061274c565b60405180910390a2808060010191505061131d565b505050565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b61147b8383836001611c70565b505050565b5f61148b8484610e1b565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461150c57818110156114fd578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016114f493929190613018565b60405180910390fd5b61150b84848484035f611c70565b5b50505050565b5f600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1690505f600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1690508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f1cd8d250f1c200eafe859f87f18252a69fb5877475e1e90fc3c8b82f736f87b4848460405161160b92919061304d565b60405180910390a3600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156116b15750600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6116f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e7906130e4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415801561175857505f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b611797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178e90613172565b60405180910390fd5b601060149054906101000a900460ff16806117e457506117b5610cff565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8061182157506117f2610cff565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b806118295750815b806118315750805b611870576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186790613200565b60405180910390fd5b5f83036118895761188285855f611e3f565b5050611c6b565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614801561192c5750600b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561197f5750600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156119d8575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a3b575f6119e785610937565b905060065484826119f8919061321e565b1115611a39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a30906132c1565b60405180910390fd5b505b5f611a4530610937565b90505f6007548210159050808015611a6a5750601060159054906101000a900460ff16155b8015611ac25750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b15611ad157611ad082611f2f565b5b5f606460085487611ae29190612def565b611aec9190612e5d565b9050600b5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611b8c5750600b5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611c3b5750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161480611c3a5750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16145b5b15611c5a57611c4b883083611e3f565b8086611c5791906132df565b95505b611c65888888611e3f565b50505050505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611ce0575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401611cd79190612894565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d50575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401611d479190612894565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015611e39578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611e3091906127e8565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611eaf575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611ea69190612894565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f1f575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401611f169190612894565b60405180910390fd5b611f2a8383836120fd565b505050565b611f3881612316565b5f4790505f6064602883611f4c9190612def565b611f569190612e5d565b90505f6064602884611f689190612def565b611f729190612e5d565b90505f8183611f81919061321e565b84611f8c91906132df565b905060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8490811502906040515f60405180830381858888f19350505050158015611ff2573d5f803e3d5ffd5b50600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050158015612057573d5f803e3d5ffd5b50600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156120bc573d5f803e3d5ffd5b507f10da9408d1358808fea34ded33d675db0ba8e618a2fb814298059b2a6b0a473f85856040516120ee929190613312565b60405180910390a15050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361214d578060025f828254612141919061321e565b9250508190555061221b565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156121d6578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016121cd93929190613018565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612262578060025f82825403925050819055506122ac565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161230991906127e8565b60405180910390a3505050565b6001601060156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561234d5761234c6129bb565b5b60405190808252806020026020018201604052801561237b5781602001602082028036833780820191505090505b50905030815f8151811061239257612391612feb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612436573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061245a919061334d565b8160018151811061246e5761246d612feb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124d43060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461146e565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612536959493929190613468565b5f604051808303815f87803b15801561254d575f80fd5b505af115801561255f573d5f803e3d5ffd5b50505050505f601060156101000a81548160ff02191690831515021790555050565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b6125a481612592565b81146125ae575f80fd5b50565b5f813590506125bf8161259b565b92915050565b5f602082840312156125da576125d961258a565b5b5f6125e7848285016125b1565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561262757808201518184015260208101905061260c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61264c826125f0565b61265681856125fa565b935061266681856020860161260a565b61266f81612632565b840191505092915050565b5f6020820190508181035f8301526126928184612642565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6126c38261269a565b9050919050565b6126d3816126b9565b81146126dd575f80fd5b50565b5f813590506126ee816126ca565b92915050565b5f806040838503121561270a5761270961258a565b5b5f612717858286016126e0565b9250506020612728858286016125b1565b9150509250929050565b5f8115159050919050565b61274681612732565b82525050565b5f60208201905061275f5f83018461273d565b92915050565b5f819050919050565b5f61278861278361277e8461269a565b612765565b61269a565b9050919050565b5f6127998261276e565b9050919050565b5f6127aa8261278f565b9050919050565b6127ba816127a0565b82525050565b5f6020820190506127d35f8301846127b1565b92915050565b6127e281612592565b82525050565b5f6020820190506127fb5f8301846127d9565b92915050565b5f805f606084860312156128185761281761258a565b5b5f612825868287016126e0565b9350506020612836868287016126e0565b9250506040612847868287016125b1565b9150509250925092565b5f60ff82169050919050565b61286681612851565b82525050565b5f60208201905061287f5f83018461285d565b92915050565b61288e816126b9565b82525050565b5f6020820190506128a75f830184612885565b92915050565b5f602082840312156128c2576128c161258a565b5b5f6128cf848285016126e0565b91505092915050565b5f6128e28261269a565b9050919050565b6128f2816128d8565b82525050565b5f60208201905061290b5f8301846128e9565b92915050565b5f80604083850312156129275761292661258a565b5b5f612934858286016126e0565b9250506020612945858286016126e0565b9150509250929050565b61295881612732565b8114612962575f80fd5b50565b5f813590506129738161294f565b92915050565b5f806040838503121561298f5761298e61258a565b5b5f61299c858286016126e0565b92505060206129ad85828601612965565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6129f182612632565b810181811067ffffffffffffffff82111715612a1057612a0f6129bb565b5b80604052505050565b5f612a22612581565b9050612a2e82826129e8565b919050565b5f67ffffffffffffffff821115612a4d57612a4c6129bb565b5b602082029050602081019050919050565b5f80fd5b5f612a74612a6f84612a33565b612a19565b90508083825260208201905060208402830185811115612a9757612a96612a5e565b5b835b81811015612ac05780612aac88826126e0565b845260208401935050602081019050612a99565b5050509392505050565b5f82601f830112612ade57612add6129b7565b5b8135612aee848260208601612a62565b91505092915050565b5f67ffffffffffffffff821115612b1157612b106129bb565b5b602082029050602081019050919050565b5f612b34612b2f84612af7565b612a19565b90508083825260208201905060208402830185811115612b5757612b56612a5e565b5b835b81811015612b805780612b6c8882612965565b845260208401935050602081019050612b59565b5050509392505050565b5f82601f830112612b9e57612b9d6129b7565b5b8135612bae848260208601612b22565b91505092915050565b5f8060408385031215612bcd57612bcc61258a565b5b5f83013567ffffffffffffffff811115612bea57612be961258e565b5b612bf685828601612aca565b925050602083013567ffffffffffffffff811115612c1757612c1661258e565b5b612c2385828601612b8a565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612c616020836125fa565b9150612c6c82612c2d565b602082019050919050565b5f6020820190508181035f830152612c8e81612c55565b9050919050565b7f63616e277420736574206d6f7265207468616e203525000000000000000000005f82015250565b5f612cc96016836125fa565b9150612cd482612c95565b602082019050919050565b5f6020820190508181035f830152612cf681612cbd565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612d4157607f821691505b602082108103612d5457612d53612cfd565b5b50919050565b7f43616e6e6f74207365742062656c6f77203125000000000000000000000000005f82015250565b5f612d8e6013836125fa565b9150612d9982612d5a565b602082019050919050565b5f6020820190508181035f830152612dbb81612d82565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612df982612592565b9150612e0483612592565b9250828202612e1281612592565b91508282048414831517612e2957612e28612dc2565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612e6782612592565b9150612e7283612592565b925082612e8257612e81612e30565b5b828204905092915050565b7f416c726561647920656e61626c656400000000000000000000000000000000005f82015250565b5f612ec1600f836125fa565b9150612ecc82612e8d565b602082019050919050565b5f6020820190508181035f830152612eee81612eb5565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612f4f6026836125fa565b9150612f5a82612ef5565b604082019050919050565b5f6020820190508181035f830152612f7c81612f43565b9050919050565b7f417272617973206c656e677468206d69736d61746368000000000000000000005f82015250565b5f612fb76016836125fa565b9150612fc282612f83565b602082019050919050565b5f6020820190508181035f830152612fe481612fab565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60608201905061302b5f830186612885565b61303860208301856127d9565b61304560408301846127d9565b949350505050565b5f6040820190506130605f83018561273d565b61306d602083018461273d565b9392505050565b7f426f7420616464726573732063616e6e6f74207472616e7366657220746f6b655f8201527f6e73000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130ce6022836125fa565b91506130d982613074565b604082019050919050565b5f6020820190508181035f8301526130fb816130c2565b9050919050565b7f45524332303a207472616e7366657220746f2f66726f6d20746865207a65726f5f8201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b5f61315c6028836125fa565b915061316782613102565b604082019050919050565b5f6020820190508181035f83015261318981613150565b9050919050565b7f54726164696e67206973206e6f7420656e61626c6564206f72206164647265735f8201527f73206e6f742077686974656c6973746564000000000000000000000000000000602082015250565b5f6131ea6031836125fa565b91506131f582613190565b604082019050919050565b5f6020820190508181035f830152613217816131de565b9050919050565b5f61322882612592565b915061323383612592565b925082820190508082111561324b5761324a612dc2565b5b92915050565b7f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f5f8201527f756e742e00000000000000000000000000000000000000000000000000000000602082015250565b5f6132ab6024836125fa565b91506132b682613251565b604082019050919050565b5f6020820190508181035f8301526132d88161329f565b9050919050565b5f6132e982612592565b91506132f483612592565b925082820390508181111561330c5761330b612dc2565b5b92915050565b5f6040820190506133255f8301856127d9565b61333260208301846127d9565b9392505050565b5f81519050613347816126ca565b92915050565b5f602082840312156133625761336161258a565b5b5f61336f84828501613339565b91505092915050565b5f819050919050565b5f61339b61339661339184613378565b612765565b612592565b9050919050565b6133ab81613381565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6133e3816126b9565b82525050565b5f6133f483836133da565b60208301905092915050565b5f602082019050919050565b5f613416826133b1565b61342081856133bb565b935061342b836133cb565b805f5b8381101561345b57815161344288826133e9565b975061344d83613400565b92505060018101905061342e565b5085935050505092915050565b5f60a08201905061347b5f8301886127d9565b61348860208301876133a2565b818103604083015261349a818661340c565b90506134a96060830185612885565b6134b660808301846127d9565b969550505050505056fea2646970667358221220793f6677382f34c219613678cf120e688568f6123b5edec90f69a714415fc6f264736f6c63430008180033

Deployed Bytecode

0x6080604052600436106101c5575f3560e01c806373366782116100f6578063c757483911610094578063e6c75f7111610063578063e6c75f7114610638578063f2fde38b14610662578063f33f625b1461068a578063fd72e22a146106b2576101cc565b8063c757483914610582578063dd62ed3e146105ac578063e4199422146105e8578063e632313c14610610576101cc565b80638da5cb5b116100d05780638da5cb5b146104b657806395d89b41146104e0578063a9059cbb1461050a578063abb8105214610546576101cc565b8063733667821461044e57806375f0a874146104765780638a8c523c146104a0576101cc565b8063313ce567116101635780634ada218b1161013d5780634ada218b146103965780637042cd5a146103c057806370a08231146103fc578063715018a614610438576101cc565b8063313ce5671461031857806339307e161461034257806349bd5a5e1461036c576101cc565b80631694505e1161019f5780631694505e1461025e57806318160ddd1461028857806323b872dd146102b25780632e8fa821146102ee576101cc565b806304cf574d146101d057806306fdde03146101f8578063095ea7b314610222576101cc565b366101cc57005b5f80fd5b3480156101db575f80fd5b506101f660048036038101906101f191906125c5565b6106dc565b005b348015610203575f80fd5b5061020c6107c0565b604051610219919061267a565b60405180910390f35b34801561022d575f80fd5b50610248600480360381019061024391906126f4565b610850565b604051610255919061274c565b60405180910390f35b348015610269575f80fd5b50610272610872565b60405161027f91906127c0565b60405180910390f35b348015610293575f80fd5b5061029c610897565b6040516102a991906127e8565b60405180910390f35b3480156102bd575f80fd5b506102d860048036038101906102d39190612801565b6108a0565b6040516102e5919061274c565b60405180910390f35b3480156102f9575f80fd5b506103026108ce565b60405161030f91906127e8565b60405180910390f35b348015610323575f80fd5b5061032c6108d4565b604051610339919061286c565b60405180910390f35b34801561034d575f80fd5b506103566108dc565b60405161036391906127e8565b60405180910390f35b348015610377575f80fd5b506103806108e2565b60405161038d9190612894565b60405180910390f35b3480156103a1575f80fd5b506103aa610907565b6040516103b7919061274c565b60405180910390f35b3480156103cb575f80fd5b506103e660048036038101906103e191906128ad565b61091a565b6040516103f3919061274c565b60405180910390f35b348015610407575f80fd5b50610422600480360381019061041d91906128ad565b610937565b60405161042f91906127e8565b60405180910390f35b348015610443575f80fd5b5061044c61097c565b005b348015610459575f80fd5b50610474600480360381019061046f91906125c5565b610acf565b005b348015610481575f80fd5b5061048a610bd1565b60405161049791906128f8565b60405180910390f35b3480156104ab575f80fd5b506104b4610bf6565b005b3480156104c1575f80fd5b506104ca610cff565b6040516104d79190612894565b60405180910390f35b3480156104eb575f80fd5b506104f4610d27565b604051610501919061267a565b60405180910390f35b348015610515575f80fd5b50610530600480360381019061052b91906126f4565b610db7565b60405161053d919061274c565b60405180910390f35b348015610551575f80fd5b5061056c600480360381019061056791906128ad565b610dd9565b604051610579919061274c565b60405180910390f35b34801561058d575f80fd5b50610596610df6565b6040516105a391906128f8565b60405180910390f35b3480156105b7575f80fd5b506105d260048036038101906105cd9190612911565b610e1b565b6040516105df91906127e8565b60405180910390f35b3480156105f3575f80fd5b5061060e60048036038101906106099190612979565b610e9d565b005b34801561061b575f80fd5b50610636600480360381019061063191906125c5565b610fd9565b005b348015610643575f80fd5b5061064c611079565b60405161065991906127e8565b60405180910390f35b34801561066d575f80fd5b50610688600480360381019061068391906128ad565b61107f565b005b348015610695575f80fd5b506106b060048036038101906106ab9190612bb7565b611241565b005b3480156106bd575f80fd5b506106c6611442565b6040516106d391906128f8565b60405180910390f35b6106e4611467565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610772576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076990612c77565b60405180910390fd5b60058111156107b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ad90612cdf565b60405180910390fd5b8060088190555050565b6060600380546107cf90612d2a565b80601f01602080910402602001604051908101604052809291908181526020018280546107fb90612d2a565b80156108465780601f1061081d57610100808354040283529160200191610846565b820191905f5260205f20905b81548152906001019060200180831161082957829003601f168201915b5050505050905090565b5f8061085a611467565b905061086781858561146e565b600191505092915050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b5f806108aa611467565b90506108b7858285611480565b6108c2858585611512565b60019150509392505050565b60075481565b5f6012905090565b60085481565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060149054906101000a900460ff1681565b600d602052805f5260405f205f915054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610984611467565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0990612c77565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ad7611467565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5c90612c77565b60405180910390fd5b6001811015610ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba090612da4565b60405180910390fd5b606481610bb4610897565b610bbe9190612def565b610bc89190612e5d565b60068190555050565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610bfe611467565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8390612c77565b60405180910390fd5b60011515601060149054906101000a900460ff16151503610ce2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd990612ed7565b60405180910390fd5b6001601060146101000a81548160ff021916908315150217905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610d3690612d2a565b80601f0160208091040260200160405190810160405280929190818152602001828054610d6290612d2a565b8015610dad5780601f10610d8457610100808354040283529160200191610dad565b820191905f5260205f20905b815481529060010190602001808311610d9057829003601f168201915b5050505050905090565b5f80610dc1611467565b9050610dce818585611512565b600191505092915050565b600c602052805f5260405f205f915054906101000a900460ff1681565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610ea5611467565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2a90612c77565b60405180910390fd5b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f7f66104465258915f96b5d0522aaec27209b853e86e4223de113fc395ae09f5d82604051610fcd919061274c565b60405180910390a25050565b610fe1611467565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461106f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106690612c77565b60405180910390fd5b8060078190555050565b60065481565b611087611467565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611115576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110c90612c77565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611183576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117a90612f65565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611249611467565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ce90612c77565b60405180910390fd5b805182511461131b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131290612fcd565b60405180910390fd5b5f5b825181101561143d5781818151811061133957611338612feb565b5b6020026020010151600d5f85848151811061135757611356612feb565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508281815181106113c1576113c0612feb565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167ff93f9a76c1bf3444d22400a00cb9fe990e6abe9dbb333fda48859cfee864543d83838151811061141357611412612feb565b5b6020026020010151604051611428919061274c565b60405180910390a2808060010191505061131d565b505050565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b61147b8383836001611c70565b505050565b5f61148b8484610e1b565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461150c57818110156114fd578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016114f493929190613018565b60405180910390fd5b61150b84848484035f611c70565b5b50505050565b5f600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1690505f600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1690508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f1cd8d250f1c200eafe859f87f18252a69fb5877475e1e90fc3c8b82f736f87b4848460405161160b92919061304d565b60405180910390a3600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156116b15750600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6116f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e7906130e4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415801561175857505f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b611797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178e90613172565b60405180910390fd5b601060149054906101000a900460ff16806117e457506117b5610cff565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8061182157506117f2610cff565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b806118295750815b806118315750805b611870576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186790613200565b60405180910390fd5b5f83036118895761188285855f611e3f565b5050611c6b565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614801561192c5750600b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561197f5750600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156119d8575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a3b575f6119e785610937565b905060065484826119f8919061321e565b1115611a39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a30906132c1565b60405180910390fd5b505b5f611a4530610937565b90505f6007548210159050808015611a6a5750601060159054906101000a900460ff16155b8015611ac25750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b15611ad157611ad082611f2f565b5b5f606460085487611ae29190612def565b611aec9190612e5d565b9050600b5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611b8c5750600b5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611c3b5750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161480611c3a5750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16145b5b15611c5a57611c4b883083611e3f565b8086611c5791906132df565b95505b611c65888888611e3f565b50505050505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611ce0575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401611cd79190612894565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d50575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401611d479190612894565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015611e39578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611e3091906127e8565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611eaf575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611ea69190612894565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f1f575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401611f169190612894565b60405180910390fd5b611f2a8383836120fd565b505050565b611f3881612316565b5f4790505f6064602883611f4c9190612def565b611f569190612e5d565b90505f6064602884611f689190612def565b611f729190612e5d565b90505f8183611f81919061321e565b84611f8c91906132df565b905060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8490811502906040515f60405180830381858888f19350505050158015611ff2573d5f803e3d5ffd5b50600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050158015612057573d5f803e3d5ffd5b50600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156120bc573d5f803e3d5ffd5b507f10da9408d1358808fea34ded33d675db0ba8e618a2fb814298059b2a6b0a473f85856040516120ee929190613312565b60405180910390a15050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361214d578060025f828254612141919061321e565b9250508190555061221b565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156121d6578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016121cd93929190613018565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612262578060025f82825403925050819055506122ac565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161230991906127e8565b60405180910390a3505050565b6001601060156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561234d5761234c6129bb565b5b60405190808252806020026020018201604052801561237b5781602001602082028036833780820191505090505b50905030815f8151811061239257612391612feb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612436573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061245a919061334d565b8160018151811061246e5761246d612feb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124d43060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461146e565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612536959493929190613468565b5f604051808303815f87803b15801561254d575f80fd5b505af115801561255f573d5f803e3d5ffd5b50505050505f601060156101000a81548160ff02191690831515021790555050565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b6125a481612592565b81146125ae575f80fd5b50565b5f813590506125bf8161259b565b92915050565b5f602082840312156125da576125d961258a565b5b5f6125e7848285016125b1565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561262757808201518184015260208101905061260c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61264c826125f0565b61265681856125fa565b935061266681856020860161260a565b61266f81612632565b840191505092915050565b5f6020820190508181035f8301526126928184612642565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6126c38261269a565b9050919050565b6126d3816126b9565b81146126dd575f80fd5b50565b5f813590506126ee816126ca565b92915050565b5f806040838503121561270a5761270961258a565b5b5f612717858286016126e0565b9250506020612728858286016125b1565b9150509250929050565b5f8115159050919050565b61274681612732565b82525050565b5f60208201905061275f5f83018461273d565b92915050565b5f819050919050565b5f61278861278361277e8461269a565b612765565b61269a565b9050919050565b5f6127998261276e565b9050919050565b5f6127aa8261278f565b9050919050565b6127ba816127a0565b82525050565b5f6020820190506127d35f8301846127b1565b92915050565b6127e281612592565b82525050565b5f6020820190506127fb5f8301846127d9565b92915050565b5f805f606084860312156128185761281761258a565b5b5f612825868287016126e0565b9350506020612836868287016126e0565b9250506040612847868287016125b1565b9150509250925092565b5f60ff82169050919050565b61286681612851565b82525050565b5f60208201905061287f5f83018461285d565b92915050565b61288e816126b9565b82525050565b5f6020820190506128a75f830184612885565b92915050565b5f602082840312156128c2576128c161258a565b5b5f6128cf848285016126e0565b91505092915050565b5f6128e28261269a565b9050919050565b6128f2816128d8565b82525050565b5f60208201905061290b5f8301846128e9565b92915050565b5f80604083850312156129275761292661258a565b5b5f612934858286016126e0565b9250506020612945858286016126e0565b9150509250929050565b61295881612732565b8114612962575f80fd5b50565b5f813590506129738161294f565b92915050565b5f806040838503121561298f5761298e61258a565b5b5f61299c858286016126e0565b92505060206129ad85828601612965565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6129f182612632565b810181811067ffffffffffffffff82111715612a1057612a0f6129bb565b5b80604052505050565b5f612a22612581565b9050612a2e82826129e8565b919050565b5f67ffffffffffffffff821115612a4d57612a4c6129bb565b5b602082029050602081019050919050565b5f80fd5b5f612a74612a6f84612a33565b612a19565b90508083825260208201905060208402830185811115612a9757612a96612a5e565b5b835b81811015612ac05780612aac88826126e0565b845260208401935050602081019050612a99565b5050509392505050565b5f82601f830112612ade57612add6129b7565b5b8135612aee848260208601612a62565b91505092915050565b5f67ffffffffffffffff821115612b1157612b106129bb565b5b602082029050602081019050919050565b5f612b34612b2f84612af7565b612a19565b90508083825260208201905060208402830185811115612b5757612b56612a5e565b5b835b81811015612b805780612b6c8882612965565b845260208401935050602081019050612b59565b5050509392505050565b5f82601f830112612b9e57612b9d6129b7565b5b8135612bae848260208601612b22565b91505092915050565b5f8060408385031215612bcd57612bcc61258a565b5b5f83013567ffffffffffffffff811115612bea57612be961258e565b5b612bf685828601612aca565b925050602083013567ffffffffffffffff811115612c1757612c1661258e565b5b612c2385828601612b8a565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612c616020836125fa565b9150612c6c82612c2d565b602082019050919050565b5f6020820190508181035f830152612c8e81612c55565b9050919050565b7f63616e277420736574206d6f7265207468616e203525000000000000000000005f82015250565b5f612cc96016836125fa565b9150612cd482612c95565b602082019050919050565b5f6020820190508181035f830152612cf681612cbd565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612d4157607f821691505b602082108103612d5457612d53612cfd565b5b50919050565b7f43616e6e6f74207365742062656c6f77203125000000000000000000000000005f82015250565b5f612d8e6013836125fa565b9150612d9982612d5a565b602082019050919050565b5f6020820190508181035f830152612dbb81612d82565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612df982612592565b9150612e0483612592565b9250828202612e1281612592565b91508282048414831517612e2957612e28612dc2565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612e6782612592565b9150612e7283612592565b925082612e8257612e81612e30565b5b828204905092915050565b7f416c726561647920656e61626c656400000000000000000000000000000000005f82015250565b5f612ec1600f836125fa565b9150612ecc82612e8d565b602082019050919050565b5f6020820190508181035f830152612eee81612eb5565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612f4f6026836125fa565b9150612f5a82612ef5565b604082019050919050565b5f6020820190508181035f830152612f7c81612f43565b9050919050565b7f417272617973206c656e677468206d69736d61746368000000000000000000005f82015250565b5f612fb76016836125fa565b9150612fc282612f83565b602082019050919050565b5f6020820190508181035f830152612fe481612fab565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60608201905061302b5f830186612885565b61303860208301856127d9565b61304560408301846127d9565b949350505050565b5f6040820190506130605f83018561273d565b61306d602083018461273d565b9392505050565b7f426f7420616464726573732063616e6e6f74207472616e7366657220746f6b655f8201527f6e73000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130ce6022836125fa565b91506130d982613074565b604082019050919050565b5f6020820190508181035f8301526130fb816130c2565b9050919050565b7f45524332303a207472616e7366657220746f2f66726f6d20746865207a65726f5f8201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b5f61315c6028836125fa565b915061316782613102565b604082019050919050565b5f6020820190508181035f83015261318981613150565b9050919050565b7f54726164696e67206973206e6f7420656e61626c6564206f72206164647265735f8201527f73206e6f742077686974656c6973746564000000000000000000000000000000602082015250565b5f6131ea6031836125fa565b91506131f582613190565b604082019050919050565b5f6020820190508181035f830152613217816131de565b9050919050565b5f61322882612592565b915061323383612592565b925082820190508082111561324b5761324a612dc2565b5b92915050565b7f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f5f8201527f756e742e00000000000000000000000000000000000000000000000000000000602082015250565b5f6132ab6024836125fa565b91506132b682613251565b604082019050919050565b5f6020820190508181035f8301526132d88161329f565b9050919050565b5f6132e982612592565b91506132f483612592565b925082820390508181111561330c5761330b612dc2565b5b92915050565b5f6040820190506133255f8301856127d9565b61333260208301846127d9565b9392505050565b5f81519050613347816126ca565b92915050565b5f602082840312156133625761336161258a565b5b5f61336f84828501613339565b91505092915050565b5f819050919050565b5f61339b61339661339184613378565b612765565b612592565b9050919050565b6133ab81613381565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6133e3816126b9565b82525050565b5f6133f483836133da565b60208301905092915050565b5f602082019050919050565b5f613416826133b1565b61342081856133bb565b935061342b836133cb565b805f5b8381101561345b57815161344288826133e9565b975061344d83613400565b92505060018101905061342e565b5085935050505092915050565b5f60a08201905061347b5f8301886127d9565b61348860208301876133a2565b818103604083015261349a818661340c565b90506134a96060830185612885565b6134b660808301846127d9565b969550505050505056fea2646970667358221220793f6677382f34c219613678cf120e688568f6123b5edec90f69a714415fc6f264736f6c63430008180033

Deployed Bytecode Sourcemap

8635:6428:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13746:153;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4040:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5386:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8880:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4504:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5584:249;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8764:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4355:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8812:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8928:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9811:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9071:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4666:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1797:148;;;;;;;;;;;;;:::i;:::-;;14475:219;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9328:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14826:143;;;;;;;;;;;;;:::i;:::-;;1331:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4250:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4989:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9025:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9229:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5234:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13907:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14706:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8685:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1545:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14076:391;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9129:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13746:153;1468:12;:10;:12::i;:::-;1458:22;;:6;;;;;;;;;;;:22;;;1450:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13829:1:::1;13818:7;:12;;13810:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;13884:7;13868:13;:23;;;;13746:153:::0;:::o;4040:91::-;4085:13;4118:5;4111:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4040:91;:::o;5386:190::-;5459:4;5476:13;5492:12;:10;:12::i;:::-;5476:28;;5515:31;5524:5;5531:7;5540:5;5515:8;:31::i;:::-;5564:4;5557:11;;;5386:190;;;;:::o;8880:41::-;;;;;;;;;;;;;:::o;4504:99::-;4556:7;4583:12;;4576:19;;4504:99;:::o;5584:249::-;5671:4;5688:15;5706:12;:10;:12::i;:::-;5688:30;;5729:37;5745:4;5751:7;5760:5;5729:15;:37::i;:::-;5777:26;5787:4;5793:2;5797:5;5777:9;:26::i;:::-;5821:4;5814:11;;;5584:249;;;;;:::o;8764:41::-;;;;:::o;4355:84::-;4404:5;4429:2;4422:9;;4355:84;:::o;8812:32::-;;;;:::o;8928:28::-;;;;;;;;;;;;;:::o;9811:34::-;;;;;;;;;;;;;:::o;9071:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;4666:118::-;4731:7;4758:9;:18;4768:7;4758:18;;;;;;;;;;;;;;;;4751:25;;4666:118;;;:::o;1797:148::-;1468:12;:10;:12::i;:::-;1458:22;;:6;;;;;;;;;;;:22;;;1450:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1904:1:::1;1867:40;;1888:6;;;;;;;;;;;1867:40;;;;;;;;;;;;1935:1;1918:6;;:19;;;;;;;;;;;;;;;;;;1797:148::o:0;14475:219::-;1468:12;:10;:12::i;:::-;1458:22;;:6;;;;;;;;;;;:22;;;1450:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14594:1:::1;14573:17;:22;;14565:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;14683:3;14663:17;14647:13;:11;:13::i;:::-;:33;;;;:::i;:::-;:39;;;;:::i;:::-;14630:14;:56;;;;14475:219:::0;:::o;9328:92::-;;;;;;;;;;;;;:::o;14826:143::-;1468:12;:10;:12::i;:::-;1458:22;;:6;;;;;;;;;;;:22;;;1450:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14905:4:::1;14887:22;;:14;;;;;;;;;;;:22;;::::0;14879:50:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;14957:4;14940:14;;:21;;;;;;;;;;;;;;;;;;14826:143::o:0;1331:79::-;1369:7;1396:6;;;;;;;;;;;1389:13;;1331:79;:::o;4250:95::-;4297:13;4330:7;4323:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4250:95;:::o;4989:182::-;5058:4;5075:13;5091:12;:10;:12::i;:::-;5075:28;;5114:27;5124:5;5131:2;5135:5;5114:9;:27::i;:::-;5159:4;5152:11;;;4989:182;;;;:::o;9025:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;9229:92::-;;;;;;;;;;;;;:::o;5234:142::-;5314:7;5341:11;:18;5353:5;5341:18;;;;;;;;;;;;;;;:27;5360:7;5341:27;;;;;;;;;;;;;;;;5334:34;;5234:142;;;;:::o;13907:161::-;1468:12;:10;:12::i;:::-;1458:22;;:6;;;;;;;;;;;:22;;;1450:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14007:5:::1;13989:6;:15;13996:7;13989:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;14045:7;14028:32;;;14054:5;14028:32;;;;;;:::i;:::-;;;;;;;;13907:161:::0;;:::o;14706:112::-;1468:12;:10;:12::i;:::-;1458:22;;:6;;;;;;;;;;;:22;;;1450:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14794:14:::1;14781:10;:27;;;;14706:112:::0;:::o;8685:48::-;;;;:::o;1545:244::-;1468:12;:10;:12::i;:::-;1458:22;;:6;;;;;;;;;;;:22;;;1450:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1654:1:::1;1634:22;;:8;:22;;::::0;1626:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1744:8;1715:38;;1736:6;;;;;;;;;;;1715:38;;;;;;;;;;;;1773:8;1764:6;;:17;;;;;;;;;;;;;;;;;;1545:244:::0;:::o;14076:391::-;1468:12;:10;:12::i;:::-;1458:22;;:6;;;;;;;;;;;:22;;;1450:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14218:9:::1;:16;14197:10;:17;:37;14189:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;14279:9;14274:186;14298:10;:17;14294:1;:21;14274:186;;;14371:9;14381:1;14371:12;;;;;;;;:::i;:::-;;;;;;;;14337:16;:31;14354:10;14365:1;14354:13;;;;;;;;:::i;:::-;;;;;;;;14337:31;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;14420:10;14431:1;14420:13;;;;;;;;:::i;:::-;;;;;;;;14403:45;;;14435:9;14445:1;14435:12;;;;;;;;:::i;:::-;;;;;;;;14403:45;;;;;;:::i;:::-;;;;;;;;14317:3;;;;;;;14274:186;;;;14076:391:::0;;:::o;9129:93::-;;;;;;;;;;;;;:::o;906:98::-;959:7;986:10;979:17;;906:98;:::o;7550:130::-;7635:37;7644:5;7651:7;7660:5;7667:4;7635:8;:37::i;:::-;7550:130;;;:::o;8141:487::-;8241:24;8268:25;8278:5;8285:7;8268:9;:25::i;:::-;8241:52;;8328:17;8308:16;:37;8304:317;;8385:5;8366:16;:24;8362:132;;;8445:7;8454:16;8472:5;8418:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;8362:132;8537:57;8546:5;8553:7;8581:5;8562:16;:24;8588:5;8537:8;:57::i;:::-;8304:317;8230:398;8141:487;;;:::o;10786:1701::-;10876:22;10901:16;:22;10918:4;10901:22;;;;;;;;;;;;;;;;;;;;;;;;;10876:47;;10934:20;10957:16;:20;10974:2;10957:20;;;;;;;;;;;;;;;;;;;;;;;;;10934:43;;11014:2;10993:60;;11008:4;10993:60;;;11018:17;11037:15;10993:60;;;;;;;:::i;:::-;;;;;;;;11075:6;:12;11082:4;11075:12;;;;;;;;;;;;;;;;;;;;;;;;;11074:13;:28;;;;;11092:6;:10;11099:2;11092:10;;;;;;;;;;;;;;;;;;;;;;;;;11091:11;11074:28;11066:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;11176:1;11160:18;;:4;:18;;;;:38;;;;;11196:1;11182:16;;:2;:16;;;;11160:38;11152:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;11276:14;;;;;;;;;;;:33;;;;11302:7;:5;:7::i;:::-;11294:15;;:4;:15;;;11276:33;:50;;;;11319:7;:5;:7::i;:::-;11313:13;;:2;:13;;;11276:50;:71;;;;11330:17;11276:71;:90;;;;11351:15;11276:90;11254:189;;;;;;;;;;;;:::i;:::-;;;;;;;;;11470:1;11460:6;:11;11456:93;;11488:28;11504:4;11510:2;11514:1;11488:15;:28::i;:::-;11531:7;;;;11456:93;11573:13;;;;;;;;;;;11565:21;;:4;:21;;;:51;;;;;11591:19;:25;11611:4;11591:25;;;;;;;;;;;;;;;;;;;;;;;;;11590:26;11565:51;:79;;;;;11621:19;:23;11641:2;11621:23;;;;;;;;;;;;;;;;;;;;;;;;;11620:24;11565:79;:113;;;;;11662:15;;;;;;;;;;;11648:30;;:2;:30;;;;11565:113;11561:309;;;11695:32;11730:13;11740:2;11730:9;:13::i;:::-;11695:48;;11803:14;;11793:6;11766:24;:33;;;;:::i;:::-;:51;;11758:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;11680:190;11561:309;11882:28;11913:24;11931:4;11913:9;:24::i;:::-;11882:55;;11948:24;11999:10;;11975:20;:34;;11948:61;;12024:19;:30;;;;;12048:6;;;;;;;;;;;12047:7;12024:30;:53;;;;;12064:13;;;;;;;;;;;12058:19;;:2;:19;;;12024:53;12020:125;;;12094:39;12112:20;12094:17;:39::i;:::-;12020:125;12157:17;12202:3;12186:13;;12177:6;:22;;;;:::i;:::-;:28;;;;:::i;:::-;12157:48;;12221:19;:25;12241:4;12221:25;;;;;;;;;;;;;;;;;;;;;;;;;12220:26;:54;;;;;12251:19;:23;12271:2;12251:23;;;;;;;;;;;;;;;;;;;;;;;;;12250:24;12220:54;:104;;;;;12287:13;;;;;;;;;;;12279:21;;:4;:21;;;:44;;;;12310:13;;;;;;;;;;;12304:19;;:2;:19;;;12279:44;12220:104;12216:218;;;12341:47;12357:4;12371;12378:9;12341:15;:47::i;:::-;12413:9;12403:19;;;;;:::i;:::-;;;12216:218;12446:33;12462:4;12468:2;12472:6;12446:15;:33::i;:::-;10865:1622;;;;;10786:1701;;;;:::o;7690:443::-;7820:1;7803:19;;:5;:19;;;7799:91;;7875:1;7846:32;;;;;;;;;;;:::i;:::-;;;;;;;;7799:91;7923:1;7904:21;;:7;:21;;;7900:92;;7977:1;7949:31;;;;;;;;;;;:::i;:::-;;;;;;;;7900:92;8032:5;8002:11;:18;8014:5;8002:18;;;;;;;;;;;;;;;:27;8021:7;8002:27;;;;;;;;;;;;;;;:35;;;;8052:9;8048:78;;;8099:7;8083:31;;8092:5;8083:31;;;8108:5;8083:31;;;;;;:::i;:::-;;;;;;;;8048:78;7690:443;;;;:::o;5844:316::-;5952:1;5936:18;;:4;:18;;;5932:88;;6005:1;5978:30;;;;;;;;;;;:::i;:::-;;;;;;;;5932:88;6048:1;6034:16;;:2;:16;;;6030:88;;6103:1;6074:32;;;;;;;;;;;:::i;:::-;;;;;;;;6030:88;6128:24;6136:4;6142:2;6146:5;6128:7;:24::i;:::-;5844:316;;;:::o;12495:693::-;12562:29;12579:11;12562:16;:29::i;:::-;12666:15;12684:21;12666:39;;12716:23;12757:3;12752:2;12742:7;:12;;;;:::i;:::-;:18;;;;:::i;:::-;12716:44;;12792:24;12834:3;12829:2;12819:7;:12;;;;:::i;:::-;:18;;;;:::i;:::-;12792:45;;12870:23;12925:16;12907:15;:34;;;;:::i;:::-;12896:7;:46;;;;:::i;:::-;12870:72;;12976:15;;;;;;;;;;;:24;;:41;13001:15;12976:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13028:16;;;;;;;;;;;:25;;:43;13054:16;13028:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13082:15;;;;;;;;;;;:24;;:41;13107:15;13082:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13141:39;13159:11;13172:7;13141:39;;;;;;;:::i;:::-;;;;;;;;12551:637;;;;12495:693;:::o;6171:1135::-;6277:1;6261:18;;:4;:18;;;6257:552;;6415:5;6399:12;;:21;;;;;;;:::i;:::-;;;;;;;;6257:552;;;6453:19;6475:9;:15;6485:4;6475:15;;;;;;;;;;;;;;;;6453:37;;6523:5;6509:11;:19;6505:117;;;6581:4;6587:11;6600:5;6556:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6505:117;6777:5;6763:11;:19;6745:9;:15;6755:4;6745:15;;;;;;;;;;;;;;;:37;;;;6438:371;6257:552;6839:1;6825:16;;:2;:16;;;6821:435;;7007:5;6991:12;;:21;;;;;;;;;;;6821:435;;;7224:5;7207:9;:13;7217:2;7207:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6821:435;7288:2;7273:25;;7282:4;7273:25;;;7292:5;7273:25;;;;;;:::i;:::-;;;;;;;;6171:1135;;;:::o;13196:540::-;9921:4;9912:6;;:13;;;;;;;;;;;;;;;;;;13273:21:::1;13311:1;13297:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13273:40;;13342:4;13324;13329:1;13324:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13368:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13358:4;13363:1;13358:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;13403:62;13420:4;13435:15;;;;;;;;;;;13453:11;13403:8;:62::i;:::-;13478:15;;;;;;;;;;;:66;;;13559:11;13585:1;13629:4;13656;13702:15;13478:250;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13262:474;9957:5:::0;9948:6;;:14;;;;;;;;;;;;;;;;;;13196:540;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:99::-;1077:6;1111:5;1105:12;1095:22;;1025:99;;;:::o;1130:169::-;1214:11;1248:6;1243:3;1236:19;1288:4;1283:3;1279:14;1264:29;;1130:169;;;;:::o;1305:246::-;1386:1;1396:113;1410:6;1407:1;1404:13;1396:113;;;1495:1;1490:3;1486:11;1480:18;1476:1;1471:3;1467:11;1460:39;1432:2;1429:1;1425:10;1420:15;;1396:113;;;1543:1;1534:6;1529:3;1525:16;1518:27;1367:184;1305:246;;;:::o;1557:102::-;1598:6;1649:2;1645:7;1640:2;1633:5;1629:14;1625:28;1615:38;;1557:102;;;:::o;1665:377::-;1753:3;1781:39;1814:5;1781:39;:::i;:::-;1836:71;1900:6;1895:3;1836:71;:::i;:::-;1829:78;;1916:65;1974:6;1969:3;1962:4;1955:5;1951:16;1916:65;:::i;:::-;2006:29;2028:6;2006:29;:::i;:::-;2001:3;1997:39;1990:46;;1757:285;1665:377;;;;:::o;2048:313::-;2161:4;2199:2;2188:9;2184:18;2176:26;;2248:9;2242:4;2238:20;2234:1;2223:9;2219:17;2212:47;2276:78;2349:4;2340:6;2276:78;:::i;:::-;2268:86;;2048:313;;;;:::o;2367:126::-;2404:7;2444:42;2437:5;2433:54;2422:65;;2367:126;;;:::o;2499:96::-;2536:7;2565:24;2583:5;2565:24;:::i;:::-;2554:35;;2499:96;;;:::o;2601:122::-;2674:24;2692:5;2674:24;:::i;:::-;2667:5;2664:35;2654:63;;2713:1;2710;2703:12;2654:63;2601:122;:::o;2729:139::-;2775:5;2813:6;2800:20;2791:29;;2829:33;2856:5;2829:33;:::i;:::-;2729:139;;;;:::o;2874:474::-;2942:6;2950;2999:2;2987:9;2978:7;2974:23;2970:32;2967:119;;;3005:79;;:::i;:::-;2967:119;3125:1;3150:53;3195:7;3186:6;3175:9;3171:22;3150:53;:::i;:::-;3140:63;;3096:117;3252:2;3278:53;3323:7;3314:6;3303:9;3299:22;3278:53;:::i;:::-;3268:63;;3223:118;2874:474;;;;;:::o;3354:90::-;3388:7;3431:5;3424:13;3417:21;3406:32;;3354:90;;;:::o;3450:109::-;3531:21;3546:5;3531:21;:::i;:::-;3526:3;3519:34;3450:109;;:::o;3565:210::-;3652:4;3690:2;3679:9;3675:18;3667:26;;3703:65;3765:1;3754:9;3750:17;3741:6;3703:65;:::i;:::-;3565:210;;;;:::o;3781:60::-;3809:3;3830:5;3823:12;;3781:60;;;:::o;3847:142::-;3897:9;3930:53;3948:34;3957:24;3975:5;3957:24;:::i;:::-;3948:34;:::i;:::-;3930:53;:::i;:::-;3917:66;;3847:142;;;:::o;3995:126::-;4045:9;4078:37;4109:5;4078:37;:::i;:::-;4065:50;;3995:126;;;:::o;4127:152::-;4203:9;4236:37;4267:5;4236:37;:::i;:::-;4223:50;;4127:152;;;:::o;4285:183::-;4398:63;4455:5;4398:63;:::i;:::-;4393:3;4386:76;4285:183;;:::o;4474:274::-;4593:4;4631:2;4620:9;4616:18;4608:26;;4644:97;4738:1;4727:9;4723:17;4714:6;4644:97;:::i;:::-;4474:274;;;;:::o;4754:118::-;4841:24;4859:5;4841:24;:::i;:::-;4836:3;4829:37;4754:118;;:::o;4878:222::-;4971:4;5009:2;4998:9;4994:18;4986:26;;5022:71;5090:1;5079:9;5075:17;5066:6;5022:71;:::i;:::-;4878:222;;;;:::o;5106:619::-;5183:6;5191;5199;5248:2;5236:9;5227:7;5223:23;5219:32;5216:119;;;5254:79;;:::i;:::-;5216:119;5374:1;5399:53;5444:7;5435:6;5424:9;5420:22;5399:53;:::i;:::-;5389:63;;5345:117;5501:2;5527:53;5572:7;5563:6;5552:9;5548:22;5527:53;:::i;:::-;5517:63;;5472:118;5629:2;5655:53;5700:7;5691:6;5680:9;5676:22;5655:53;:::i;:::-;5645:63;;5600:118;5106:619;;;;;:::o;5731:86::-;5766:7;5806:4;5799:5;5795:16;5784:27;;5731:86;;;:::o;5823:112::-;5906:22;5922:5;5906:22;:::i;:::-;5901:3;5894:35;5823:112;;:::o;5941:214::-;6030:4;6068:2;6057:9;6053:18;6045:26;;6081:67;6145:1;6134:9;6130:17;6121:6;6081:67;:::i;:::-;5941:214;;;;:::o;6161:118::-;6248:24;6266:5;6248:24;:::i;:::-;6243:3;6236:37;6161:118;;:::o;6285:222::-;6378:4;6416:2;6405:9;6401:18;6393:26;;6429:71;6497:1;6486:9;6482:17;6473:6;6429:71;:::i;:::-;6285:222;;;;:::o;6513:329::-;6572:6;6621:2;6609:9;6600:7;6596:23;6592:32;6589:119;;;6627:79;;:::i;:::-;6589:119;6747:1;6772:53;6817:7;6808:6;6797:9;6793:22;6772:53;:::i;:::-;6762:63;;6718:117;6513:329;;;;:::o;6848:104::-;6893:7;6922:24;6940:5;6922:24;:::i;:::-;6911:35;;6848:104;;;:::o;6958:142::-;7061:32;7087:5;7061:32;:::i;:::-;7056:3;7049:45;6958:142;;:::o;7106:254::-;7215:4;7253:2;7242:9;7238:18;7230:26;;7266:87;7350:1;7339:9;7335:17;7326:6;7266:87;:::i;:::-;7106:254;;;;:::o;7366:474::-;7434:6;7442;7491:2;7479:9;7470:7;7466:23;7462:32;7459:119;;;7497:79;;:::i;:::-;7459:119;7617:1;7642:53;7687:7;7678:6;7667:9;7663:22;7642:53;:::i;:::-;7632:63;;7588:117;7744:2;7770:53;7815:7;7806:6;7795:9;7791:22;7770:53;:::i;:::-;7760:63;;7715:118;7366:474;;;;;:::o;7846:116::-;7916:21;7931:5;7916:21;:::i;:::-;7909:5;7906:32;7896:60;;7952:1;7949;7942:12;7896:60;7846:116;:::o;7968:133::-;8011:5;8049:6;8036:20;8027:29;;8065:30;8089:5;8065:30;:::i;:::-;7968:133;;;;:::o;8107:468::-;8172:6;8180;8229:2;8217:9;8208:7;8204:23;8200:32;8197:119;;;8235:79;;:::i;:::-;8197:119;8355:1;8380:53;8425:7;8416:6;8405:9;8401:22;8380:53;:::i;:::-;8370:63;;8326:117;8482:2;8508:50;8550:7;8541:6;8530:9;8526:22;8508:50;:::i;:::-;8498:60;;8453:115;8107:468;;;;;:::o;8581:117::-;8690:1;8687;8680:12;8704:180;8752:77;8749:1;8742:88;8849:4;8846:1;8839:15;8873:4;8870:1;8863:15;8890:281;8973:27;8995:4;8973:27;:::i;:::-;8965:6;8961:40;9103:6;9091:10;9088:22;9067:18;9055:10;9052:34;9049:62;9046:88;;;9114:18;;:::i;:::-;9046:88;9154:10;9150:2;9143:22;8933:238;8890:281;;:::o;9177:129::-;9211:6;9238:20;;:::i;:::-;9228:30;;9267:33;9295:4;9287:6;9267:33;:::i;:::-;9177:129;;;:::o;9312:311::-;9389:4;9479:18;9471:6;9468:30;9465:56;;;9501:18;;:::i;:::-;9465:56;9551:4;9543:6;9539:17;9531:25;;9611:4;9605;9601:15;9593:23;;9312:311;;;:::o;9629:117::-;9738:1;9735;9728:12;9769:710;9865:5;9890:81;9906:64;9963:6;9906:64;:::i;:::-;9890:81;:::i;:::-;9881:90;;9991:5;10020:6;10013:5;10006:21;10054:4;10047:5;10043:16;10036:23;;10107:4;10099:6;10095:17;10087:6;10083:30;10136:3;10128:6;10125:15;10122:122;;;10155:79;;:::i;:::-;10122:122;10270:6;10253:220;10287:6;10282:3;10279:15;10253:220;;;10362:3;10391:37;10424:3;10412:10;10391:37;:::i;:::-;10386:3;10379:50;10458:4;10453:3;10449:14;10442:21;;10329:144;10313:4;10308:3;10304:14;10297:21;;10253:220;;;10257:21;9871:608;;9769:710;;;;;:::o;10502:370::-;10573:5;10622:3;10615:4;10607:6;10603:17;10599:27;10589:122;;10630:79;;:::i;:::-;10589:122;10747:6;10734:20;10772:94;10862:3;10854:6;10847:4;10839:6;10835:17;10772:94;:::i;:::-;10763:103;;10579:293;10502:370;;;;:::o;10878:308::-;10952:4;11042:18;11034:6;11031:30;11028:56;;;11064:18;;:::i;:::-;11028:56;11114:4;11106:6;11102:17;11094:25;;11174:4;11168;11164:15;11156:23;;10878:308;;;:::o;11206:701::-;11299:5;11324:78;11340:61;11394:6;11340:61;:::i;:::-;11324:78;:::i;:::-;11315:87;;11422:5;11451:6;11444:5;11437:21;11485:4;11478:5;11474:16;11467:23;;11538:4;11530:6;11526:17;11518:6;11514:30;11567:3;11559:6;11556:15;11553:122;;;11586:79;;:::i;:::-;11553:122;11701:6;11684:217;11718:6;11713:3;11710:15;11684:217;;;11793:3;11822:34;11852:3;11840:10;11822:34;:::i;:::-;11817:3;11810:47;11886:4;11881:3;11877:14;11870:21;;11760:141;11744:4;11739:3;11735:14;11728:21;;11684:217;;;11688:21;11305:602;;11206:701;;;;;:::o;11927:364::-;11995:5;12044:3;12037:4;12029:6;12025:17;12021:27;12011:122;;12052:79;;:::i;:::-;12011:122;12169:6;12156:20;12194:91;12281:3;12273:6;12266:4;12258:6;12254:17;12194:91;:::i;:::-;12185:100;;12001:290;11927:364;;;;:::o;12297:888::-;12412:6;12420;12469:2;12457:9;12448:7;12444:23;12440:32;12437:119;;;12475:79;;:::i;:::-;12437:119;12623:1;12612:9;12608:17;12595:31;12653:18;12645:6;12642:30;12639:117;;;12675:79;;:::i;:::-;12639:117;12780:78;12850:7;12841:6;12830:9;12826:22;12780:78;:::i;:::-;12770:88;;12566:302;12935:2;12924:9;12920:18;12907:32;12966:18;12958:6;12955:30;12952:117;;;12988:79;;:::i;:::-;12952:117;13093:75;13160:7;13151:6;13140:9;13136:22;13093:75;:::i;:::-;13083:85;;12878:300;12297:888;;;;;:::o;13191:182::-;13331:34;13327:1;13319:6;13315:14;13308:58;13191:182;:::o;13379:366::-;13521:3;13542:67;13606:2;13601:3;13542:67;:::i;:::-;13535:74;;13618:93;13707:3;13618:93;:::i;:::-;13736:2;13731:3;13727:12;13720:19;;13379:366;;;:::o;13751:419::-;13917:4;13955:2;13944:9;13940:18;13932:26;;14004:9;13998:4;13994:20;13990:1;13979:9;13975:17;13968:47;14032:131;14158:4;14032:131;:::i;:::-;14024:139;;13751:419;;;:::o;14176:172::-;14316:24;14312:1;14304:6;14300:14;14293:48;14176:172;:::o;14354:366::-;14496:3;14517:67;14581:2;14576:3;14517:67;:::i;:::-;14510:74;;14593:93;14682:3;14593:93;:::i;:::-;14711:2;14706:3;14702:12;14695:19;;14354:366;;;:::o;14726:419::-;14892:4;14930:2;14919:9;14915:18;14907:26;;14979:9;14973:4;14969:20;14965:1;14954:9;14950:17;14943:47;15007:131;15133:4;15007:131;:::i;:::-;14999:139;;14726:419;;;:::o;15151:180::-;15199:77;15196:1;15189:88;15296:4;15293:1;15286:15;15320:4;15317:1;15310:15;15337:320;15381:6;15418:1;15412:4;15408:12;15398:22;;15465:1;15459:4;15455:12;15486:18;15476:81;;15542:4;15534:6;15530:17;15520:27;;15476:81;15604:2;15596:6;15593:14;15573:18;15570:38;15567:84;;15623:18;;:::i;:::-;15567:84;15388:269;15337:320;;;:::o;15663:169::-;15803:21;15799:1;15791:6;15787:14;15780:45;15663:169;:::o;15838:366::-;15980:3;16001:67;16065:2;16060:3;16001:67;:::i;:::-;15994:74;;16077:93;16166:3;16077:93;:::i;:::-;16195:2;16190:3;16186:12;16179:19;;15838:366;;;:::o;16210:419::-;16376:4;16414:2;16403:9;16399:18;16391:26;;16463:9;16457:4;16453:20;16449:1;16438:9;16434:17;16427:47;16491:131;16617:4;16491:131;:::i;:::-;16483:139;;16210:419;;;:::o;16635:180::-;16683:77;16680:1;16673:88;16780:4;16777:1;16770:15;16804:4;16801:1;16794:15;16821:410;16861:7;16884:20;16902:1;16884:20;:::i;:::-;16879:25;;16918:20;16936:1;16918:20;:::i;:::-;16913:25;;16973:1;16970;16966:9;16995:30;17013:11;16995:30;:::i;:::-;16984:41;;17174:1;17165:7;17161:15;17158:1;17155:22;17135:1;17128:9;17108:83;17085:139;;17204:18;;:::i;:::-;17085:139;16869:362;16821:410;;;;:::o;17237:180::-;17285:77;17282:1;17275:88;17382:4;17379:1;17372:15;17406:4;17403:1;17396:15;17423:185;17463:1;17480:20;17498:1;17480:20;:::i;:::-;17475:25;;17514:20;17532:1;17514:20;:::i;:::-;17509:25;;17553:1;17543:35;;17558:18;;:::i;:::-;17543:35;17600:1;17597;17593:9;17588:14;;17423:185;;;;:::o;17614:165::-;17754:17;17750:1;17742:6;17738:14;17731:41;17614:165;:::o;17785:366::-;17927:3;17948:67;18012:2;18007:3;17948:67;:::i;:::-;17941:74;;18024:93;18113:3;18024:93;:::i;:::-;18142:2;18137:3;18133:12;18126:19;;17785:366;;;:::o;18157:419::-;18323:4;18361:2;18350:9;18346:18;18338:26;;18410:9;18404:4;18400:20;18396:1;18385:9;18381:17;18374:47;18438:131;18564:4;18438:131;:::i;:::-;18430:139;;18157:419;;;:::o;18582:225::-;18722:34;18718:1;18710:6;18706:14;18699:58;18791:8;18786:2;18778:6;18774:15;18767:33;18582:225;:::o;18813:366::-;18955:3;18976:67;19040:2;19035:3;18976:67;:::i;:::-;18969:74;;19052:93;19141:3;19052:93;:::i;:::-;19170:2;19165:3;19161:12;19154:19;;18813:366;;;:::o;19185:419::-;19351:4;19389:2;19378:9;19374:18;19366:26;;19438:9;19432:4;19428:20;19424:1;19413:9;19409:17;19402:47;19466:131;19592:4;19466:131;:::i;:::-;19458:139;;19185:419;;;:::o;19610:172::-;19750:24;19746:1;19738:6;19734:14;19727:48;19610:172;:::o;19788:366::-;19930:3;19951:67;20015:2;20010:3;19951:67;:::i;:::-;19944:74;;20027:93;20116:3;20027:93;:::i;:::-;20145:2;20140:3;20136:12;20129:19;;19788:366;;;:::o;20160:419::-;20326:4;20364:2;20353:9;20349:18;20341:26;;20413:9;20407:4;20403:20;20399:1;20388:9;20384:17;20377:47;20441:131;20567:4;20441:131;:::i;:::-;20433:139;;20160:419;;;:::o;20585:180::-;20633:77;20630:1;20623:88;20730:4;20727:1;20720:15;20754:4;20751:1;20744:15;20771:442;20920:4;20958:2;20947:9;20943:18;20935:26;;20971:71;21039:1;21028:9;21024:17;21015:6;20971:71;:::i;:::-;21052:72;21120:2;21109:9;21105:18;21096:6;21052:72;:::i;:::-;21134;21202:2;21191:9;21187:18;21178:6;21134:72;:::i;:::-;20771:442;;;;;;:::o;21219:308::-;21328:4;21366:2;21355:9;21351:18;21343:26;;21379:65;21441:1;21430:9;21426:17;21417:6;21379:65;:::i;:::-;21454:66;21516:2;21505:9;21501:18;21492:6;21454:66;:::i;:::-;21219:308;;;;;:::o;21533:221::-;21673:34;21669:1;21661:6;21657:14;21650:58;21742:4;21737:2;21729:6;21725:15;21718:29;21533:221;:::o;21760:366::-;21902:3;21923:67;21987:2;21982:3;21923:67;:::i;:::-;21916:74;;21999:93;22088:3;21999:93;:::i;:::-;22117:2;22112:3;22108:12;22101:19;;21760:366;;;:::o;22132:419::-;22298:4;22336:2;22325:9;22321:18;22313:26;;22385:9;22379:4;22375:20;22371:1;22360:9;22356:17;22349:47;22413:131;22539:4;22413:131;:::i;:::-;22405:139;;22132:419;;;:::o;22557:227::-;22697:34;22693:1;22685:6;22681:14;22674:58;22766:10;22761:2;22753:6;22749:15;22742:35;22557:227;:::o;22790:366::-;22932:3;22953:67;23017:2;23012:3;22953:67;:::i;:::-;22946:74;;23029:93;23118:3;23029:93;:::i;:::-;23147:2;23142:3;23138:12;23131:19;;22790:366;;;:::o;23162:419::-;23328:4;23366:2;23355:9;23351:18;23343:26;;23415:9;23409:4;23405:20;23401:1;23390:9;23386:17;23379:47;23443:131;23569:4;23443:131;:::i;:::-;23435:139;;23162:419;;;:::o;23587:236::-;23727:34;23723:1;23715:6;23711:14;23704:58;23796:19;23791:2;23783:6;23779:15;23772:44;23587:236;:::o;23829:366::-;23971:3;23992:67;24056:2;24051:3;23992:67;:::i;:::-;23985:74;;24068:93;24157:3;24068:93;:::i;:::-;24186:2;24181:3;24177:12;24170:19;;23829:366;;;:::o;24201:419::-;24367:4;24405:2;24394:9;24390:18;24382:26;;24454:9;24448:4;24444:20;24440:1;24429:9;24425:17;24418:47;24482:131;24608:4;24482:131;:::i;:::-;24474:139;;24201:419;;;:::o;24626:191::-;24666:3;24685:20;24703:1;24685:20;:::i;:::-;24680:25;;24719:20;24737:1;24719:20;:::i;:::-;24714:25;;24762:1;24759;24755:9;24748:16;;24783:3;24780:1;24777:10;24774:36;;;24790:18;;:::i;:::-;24774:36;24626:191;;;;:::o;24823:223::-;24963:34;24959:1;24951:6;24947:14;24940:58;25032:6;25027:2;25019:6;25015:15;25008:31;24823:223;:::o;25052:366::-;25194:3;25215:67;25279:2;25274:3;25215:67;:::i;:::-;25208:74;;25291:93;25380:3;25291:93;:::i;:::-;25409:2;25404:3;25400:12;25393:19;;25052:366;;;:::o;25424:419::-;25590:4;25628:2;25617:9;25613:18;25605:26;;25677:9;25671:4;25667:20;25663:1;25652:9;25648:17;25641:47;25705:131;25831:4;25705:131;:::i;:::-;25697:139;;25424:419;;;:::o;25849:194::-;25889:4;25909:20;25927:1;25909:20;:::i;:::-;25904:25;;25943:20;25961:1;25943:20;:::i;:::-;25938:25;;25987:1;25984;25980:9;25972:17;;26011:1;26005:4;26002:11;25999:37;;;26016:18;;:::i;:::-;25999:37;25849:194;;;;:::o;26049:332::-;26170:4;26208:2;26197:9;26193:18;26185:26;;26221:71;26289:1;26278:9;26274:17;26265:6;26221:71;:::i;:::-;26302:72;26370:2;26359:9;26355:18;26346:6;26302:72;:::i;:::-;26049:332;;;;;:::o;26387:143::-;26444:5;26475:6;26469:13;26460:22;;26491:33;26518:5;26491:33;:::i;:::-;26387:143;;;;:::o;26536:351::-;26606:6;26655:2;26643:9;26634:7;26630:23;26626:32;26623:119;;;26661:79;;:::i;:::-;26623:119;26781:1;26806:64;26862:7;26853:6;26842:9;26838:22;26806:64;:::i;:::-;26796:74;;26752:128;26536:351;;;;:::o;26893:85::-;26938:7;26967:5;26956:16;;26893:85;;;:::o;26984:158::-;27042:9;27075:61;27093:42;27102:32;27128:5;27102:32;:::i;:::-;27093:42;:::i;:::-;27075:61;:::i;:::-;27062:74;;26984:158;;;:::o;27148:147::-;27243:45;27282:5;27243:45;:::i;:::-;27238:3;27231:58;27148:147;;:::o;27301:114::-;27368:6;27402:5;27396:12;27386:22;;27301:114;;;:::o;27421:184::-;27520:11;27554:6;27549:3;27542:19;27594:4;27589:3;27585:14;27570:29;;27421:184;;;;:::o;27611:132::-;27678:4;27701:3;27693:11;;27731:4;27726:3;27722:14;27714:22;;27611:132;;;:::o;27749:108::-;27826:24;27844:5;27826:24;:::i;:::-;27821:3;27814:37;27749:108;;:::o;27863:179::-;27932:10;27953:46;27995:3;27987:6;27953:46;:::i;:::-;28031:4;28026:3;28022:14;28008:28;;27863:179;;;;:::o;28048:113::-;28118:4;28150;28145:3;28141:14;28133:22;;28048:113;;;:::o;28197:732::-;28316:3;28345:54;28393:5;28345:54;:::i;:::-;28415:86;28494:6;28489:3;28415:86;:::i;:::-;28408:93;;28525:56;28575:5;28525:56;:::i;:::-;28604:7;28635:1;28620:284;28645:6;28642:1;28639:13;28620:284;;;28721:6;28715:13;28748:63;28807:3;28792:13;28748:63;:::i;:::-;28741:70;;28834:60;28887:6;28834:60;:::i;:::-;28824:70;;28680:224;28667:1;28664;28660:9;28655:14;;28620:284;;;28624:14;28920:3;28913:10;;28321:608;;;28197:732;;;;:::o;28935:831::-;29198:4;29236:3;29225:9;29221:19;29213:27;;29250:71;29318:1;29307:9;29303:17;29294:6;29250:71;:::i;:::-;29331:80;29407:2;29396:9;29392:18;29383:6;29331:80;:::i;:::-;29458:9;29452:4;29448:20;29443:2;29432:9;29428:18;29421:48;29486:108;29589:4;29580:6;29486:108;:::i;:::-;29478:116;;29604:72;29672:2;29661:9;29657:18;29648:6;29604:72;:::i;:::-;29686:73;29754:3;29743:9;29739:19;29730:6;29686:73;:::i;:::-;28935:831;;;;;;;;:::o

Swarm Source

ipfs://793f6677382f34c219613678cf120e688568f6123b5edec90f69a714415fc6f2

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.