ETH Price: $3,492.99 (+3.62%)
Gas: 4 Gwei

Token

K9 (K9)
 

Overview

Max Total Supply

1,000,000,000 K9

Holders

118

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000152745647 K9

Value
$0.00
0x8c7b9b2e3837bd2deda8ed1930f8ed6dc6d7b5c2
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
K9

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**
//SPDX-License-Identifier: MIT
K9 | $K9

A police dog, also known as a K-9, is a dog that is trained to assist police and other law enforcement officers. 
Their duties may include searching for drugs and explosives, locating missing people, finding crime scene evidence, 
protecting officers and other people, and attacking suspects who flee from officers.

K9 is a coin inspired by the bravery and dedication of police dogs, set to launch soon. 
Developed by a K9 dogs lovers, this digital currency aims to revolutionize financial transactions 
while supporting K9 units globally. With a portion of every transaction directed towards training, care, 
and retirement for police dogs, K9 Coin ensures these heroes receive the resources they need. 
Featuring a unique digital paw print, K9 Coin represents loyalty and heroism, offering a meaningful way 
to engage with the digital economy and honor the legacy of K9 officers.

Website: https://www.k9coin.club
Twitter: https://x.com/K9_ERC20
Portal: https://t.me/K9Coin
*/

pragma solidity = 0.8.22;
pragma experimental ABIEncoderV2;

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

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

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address to, 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 from, address to, uint256 amount) external returns (bool);
}

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

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

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 value);

    function name() external pure returns (string memory);

    function symbol() external pure returns (string memory);

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

    function balanceOf(address owner) external view returns (uint256);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 value) external returns (bool);

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);

    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

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

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

library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function per(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= 100, "Percentage must be between 0 and 100");
        return a * b / 100;
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

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

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

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

        _beforeTokenTransfer(address(0), account, amount);

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

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}

    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}

contract K9 is ERC20, Ownable {
    using SafeMath for uint256;
    
    IUniswapV2Router02 public immutable _uniswapV2Router;
    address public uniswapV2Pair;
    address private deployerWallet;
    address private marketingWallet;
    address private constant deadAddress = address(0xdead);

    bool private swapping;

    string private constant _name = "K9";
    string private constant _symbol = "K9";
    mapping(address => bool) private bots;

    uint256 public initialTotalSupply = 1000000000 * 1e18;
    uint256 public maxTransactionAmount = 20000000 * 1e18;
    uint256 public maxWallet = 20000000 * 1e18;
    uint256 public swapTokensAtAmount = 20000000 * 1e18;

    bool public tradingOpen = false;
    bool public swapEnabled = false;

    uint256 public BuyFee = 20;
    uint256 public SellFee = 25;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    mapping(address => bool) private automatedMarketMakerPairs;
    mapping(address => uint256) private _holderLastTransferTimestamp;

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    constructor(address wallet) ERC20(_name, _symbol) {

        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        marketingWallet = payable(wallet);
        excludeFromMaxTransaction(address(wallet), true);

        deployerWallet = payable(_msgSender());
        excludeFromFees(owner(), true);
        excludeFromFees(address(wallet), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);  
       
        _mint(msg.sender, initialTotalSupply);
    }

    receive() external payable {}

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"Trading is already open");
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
        _approve(address(this), address(_uniswapV2Router), initialTotalSupply);
        _uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)).per(80),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(_uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }
    function excludeFromMaxTransaction(address updAds, bool isEx)
        public
        onlyOwner
    {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    function setAutomatedMarketMakerPair(address pair, bool value)
        public
        onlyOwner
    {
        require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");
        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function isExcludedFromFees(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
        for (uint256 i = 0; i < notbot.length; i++) {
            bots[notbot[i]] = false;
        }
    }

    function _transfer(address from, address to, uint256 amount) internal override {

        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        
        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {

            require(!bots[from] && !bots[to]);

            if (!tradingOpen) {
                require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
            }

            if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]
            ) {
                require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }

            else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
            } 
            
            else if (!_isExcludedMaxTransactionAmount[to]) {
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance > 0;

        if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;
            swapBack(amount);
            swapping = false;
        }

        bool takeFee = !swapping;

        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;

        if (takeFee) {
            if (automatedMarketMakerPairs[to]) {
                fees = amount.mul(SellFee).div(100);
            }
            else {
                fees = amount.mul(BuyFee).div(100);
            }

        if (fees > 0) {
            super._transfer(from, address(this), fees);
        }
        amount -= fees;
    }
        super._transfer(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();
        _approve(address(this), address(_uniswapV2Router), tokenAmount);
        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            marketingWallet,
            block.timestamp
        );
    }

    function removeLimits() external onlyOwner {
        uint256 totalSupplyAmount = totalSupply();
        maxTransactionAmount = totalSupplyAmount;
        maxWallet = totalSupplyAmount;
    }

    function cleartuckEths() external {
        require(address(this).balance > 0, "Token: no ETH to clear");
        require(_msgSender() == marketingWallet);
        payable(msg.sender).transfer(address(this).balance);
    }

    function burnsRemainTokens(ERC20 tokenAddress) external {
        uint256 remainingTokens = tokenAddress.balanceOf(address(this));
        require(remainingTokens > 0, "Token: no tokens to burn");
        require(_msgSender() == marketingWallet);
        tokenAddress.transfer(deadAddress, remainingTokens);
    }

    function setSwapTokensAtAmount(uint256 _amount) external onlyOwner {
        swapTokensAtAmount = _amount * (10 ** 18);
    }

    function manualwap(uint256 percent) external {
        require(_msgSender() == marketingWallet);
        uint256 totalSupplyAmount = totalSupply();
        uint256 contractBalance = balanceOf(address(this));
        uint256 requiredBalance = totalSupplyAmount * percent / 100;
        require(contractBalance >= requiredBalance, "Not enough tokens");
        swapTokensForEth(requiredBalance);
    }

    function SetFee(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 30 && _sellFee <= 99, "Fees cannot exceed 30%");
        BuyFee = _buyFee;
        SellFee = _sellFee;
    }

    function swapBack(uint256 tokens) private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 tokensToSwap;
    if (contractBalance == 0) {
        return;
    } 
    else if(contractBalance > 0 && contractBalance < swapTokensAtAmount) {
        tokensToSwap = contractBalance;
    }
    else {
        uint256 sellFeeTokens = tokens.mul(SellFee).div(100);
        tokens -= sellFeeTokens;
        if (tokens > swapTokensAtAmount) {
            tokensToSwap = swapTokensAtAmount;
        } else {
            tokensToSwap = tokens;
        }
    }
    swapTokensForEth(tokensToSwap);
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"BuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"SetFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"tokenAddress","type":"address"}],"name":"burnsRemainTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cleartuckEths","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","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":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526b033b2e3c9fd0803ce8000000600a556a108b2a2c28029094000000600b556a108b2a2c28029094000000600c556a108b2a2c28029094000000600d555f600e5f6101000a81548160ff0219169083151502179055505f600e60016101000a81548160ff0219169083151502179055506014600f5560196010553480156200008a575f80fd5b5060405162004e4138038062004e418339818101604052810190620000b091906200079a565b6040518060400160405280600281526020017f4b390000000000000000000000000000000000000000000000000000000000008152506040518060400160405280600281526020017f4b3900000000000000000000000000000000000000000000000000000000000081525081600390816200012d919062000a2e565b5080600490816200013f919062000a2e565b50505062000162620001566200032360201b60201c565b6200032a60201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050620001bf6080516001620003ed60201b60201c565b8060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000212816001620003ed60201b60201c565b620002226200032360201b60201c565b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000283620002756200045560201b60201c565b60016200047d60201b60201c565b620002968160016200047d60201b60201c565b620002a93060016200047d60201b60201c565b620002be61dead60016200047d60201b60201c565b620002e0620002d26200045560201b60201c565b6001620003ed60201b60201c565b620002f3306001620003ed60201b60201c565b6200030861dead6001620003ed60201b60201c565b6200031c33600a546200053560201b60201c565b5062000cc8565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620003fd6200069a60201b60201c565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200048d6200069a60201b60201c565b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000529919062000b2e565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200059d9062000ba7565b60405180910390fd5b620005b95f83836200072b60201b60201c565b8060025f828254620005cc919062000bf4565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200067b919062000c3f565b60405180910390a3620006965f83836200073060201b60201c565b5050565b620006aa6200032360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620006d06200045560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000729576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007209062000ca8565b60405180910390fd5b565b505050565b505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620007648262000739565b9050919050565b620007768162000758565b811462000781575f80fd5b50565b5f8151905062000794816200076b565b92915050565b5f60208284031215620007b257620007b162000735565b5b5f620007c18482850162000784565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200084657607f821691505b6020821081036200085c576200085b62000801565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620008c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000883565b620008cc868362000883565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000916620009106200090a84620008e4565b620008ed565b620008e4565b9050919050565b5f819050919050565b6200093183620008f6565b6200094962000940826200091d565b8484546200088f565b825550505050565b5f90565b6200095f62000951565b6200096c81848462000926565b505050565b5b818110156200099357620009875f8262000955565b60018101905062000972565b5050565b601f821115620009e257620009ac8162000862565b620009b78462000874565b81016020851015620009c7578190505b620009df620009d68562000874565b83018262000971565b50505b505050565b5f82821c905092915050565b5f62000a045f1984600802620009e7565b1980831691505092915050565b5f62000a1e8383620009f3565b9150826002028217905092915050565b62000a3982620007ca565b67ffffffffffffffff81111562000a555762000a54620007d4565b5b62000a6182546200082e565b62000a6e82828562000997565b5f60209050601f83116001811462000aa4575f841562000a8f578287015190505b62000a9b858262000a11565b86555062000b0a565b601f19841662000ab48662000862565b5f5b8281101562000add5784890151825560018201915060208501945060208101905062000ab6565b8683101562000afd578489015162000af9601f891682620009f3565b8355505b6001600288020188555050505b505050505050565b5f8115159050919050565b62000b288162000b12565b82525050565b5f60208201905062000b435f83018462000b1d565b92915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000b8f601f8362000b49565b915062000b9c8262000b59565b602082019050919050565b5f6020820190508181035f83015262000bc08162000b81565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000c0082620008e4565b915062000c0d83620008e4565b925082820190508082111562000c285762000c2762000bc7565b5b92915050565b62000c3981620008e4565b82525050565b5f60208201905062000c545f83018462000c2e565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f62000c9060208362000b49565b915062000c9d8262000c5a565b602082019050919050565b5f6020820190508181035f83015262000cc18162000c82565b9050919050565b60805161412862000d195f395f8181610bec0152818161110a015281816111b30152818161133801528181611361015281816114680152818161259401528181612673015261269a01526141285ff3fe60806040526004361061021d575f3560e01c80638da5cb5b11610122578063c9567bf9116100aa578063dd8546521161006e578063dd85465214610796578063e2f45605146107c0578063f2fde38b146107ea578063f8b45b0514610812578063ffb54a991461083c57610224565b8063c9567bf9146106ca578063cf9522fd146106e0578063d34628cc1461070a578063db1b718214610732578063dd62ed3e1461075a57610224565b8063a457c2d7116100f1578063a457c2d7146105d8578063a9059cbb14610614578063afa4f3b214610650578063c024666814610678578063c8c8ebe4146106a057610224565b80638da5cb5b1461054657806394f153841461057057806395d89b41146105865780639a7a23d6146105b057610224565b806349bd5a5e116101a55780636ddd1713116101745780636ddd17131461048c57806370a08231146104b6578063715018a6146104f2578063751039fc146105085780637571336a1461051e57610224565b806349bd5a5e146103d45780634fbee193146103fe578063500b9aa21461043a578063583e05681461046257610224565b806323b872dd116101ec57806323b872dd146102e0578063311028af1461031c578063313ce5671461034657806331c2d84714610370578063395093511461039857610224565b8063032dc6a21461022857806306fdde0314610250578063095ea7b31461027a57806318160ddd146102b657610224565b3661022457005b5f80fd5b348015610233575f80fd5b5061024e60048036038101906102499190612c8f565b610866565b005b34801561025b575f80fd5b506102646108d1565b6040516102719190612d57565b60405180910390f35b348015610285575f80fd5b506102a0600480360381019061029b9190612dd1565b610961565b6040516102ad9190612e29565b60405180910390f35b3480156102c1575f80fd5b506102ca610983565b6040516102d79190612e51565b60405180910390f35b3480156102eb575f80fd5b5061030660048036038101906103019190612e6a565b61098c565b6040516103139190612e29565b60405180910390f35b348015610327575f80fd5b506103306109ba565b60405161033d9190612e51565b60405180910390f35b348015610351575f80fd5b5061035a6109c0565b6040516103679190612ed5565b60405180910390f35b34801561037b575f80fd5b506103966004803603810190610391919061302e565b6109c8565b005b3480156103a3575f80fd5b506103be60048036038101906103b99190612dd1565b610a5a565b6040516103cb9190612e29565b60405180910390f35b3480156103df575f80fd5b506103e8610a90565b6040516103f59190613084565b60405180910390f35b348015610409575f80fd5b50610424600480360381019061041f919061309d565b610ab5565b6040516104319190612e29565b60405180910390f35b348015610445575f80fd5b50610460600480360381019061045b91906130c8565b610b07565b005b34801561046d575f80fd5b50610476610bea565b604051610483919061314e565b60405180910390f35b348015610497575f80fd5b506104a0610c0e565b6040516104ad9190612e29565b60405180910390f35b3480156104c1575f80fd5b506104dc60048036038101906104d7919061309d565b610c21565b6040516104e99190612e51565b60405180910390f35b3480156104fd575f80fd5b50610506610c66565b005b348015610513575f80fd5b5061051c610c79565b005b348015610529575f80fd5b50610544600480360381019061053f9190613191565b610c9d565b005b348015610551575f80fd5b5061055a610cfd565b6040516105679190613084565b60405180910390f35b34801561057b575f80fd5b50610584610d25565b005b348015610591575f80fd5b5061059a610e0c565b6040516105a79190612d57565b60405180910390f35b3480156105bb575f80fd5b506105d660048036038101906105d19190613191565b610e9c565b005b3480156105e3575f80fd5b506105fe60048036038101906105f99190612dd1565b610f41565b60405161060b9190612e29565b60405180910390f35b34801561061f575f80fd5b5061063a60048036038101906106359190612dd1565b610fb6565b6040516106479190612e29565b60405180910390f35b34801561065b575f80fd5b50610676600480360381019061067191906130c8565b610fd8565b005b348015610683575f80fd5b5061069e60048036038101906106999190613191565b610ffd565b005b3480156106ab575f80fd5b506106b46110ab565b6040516106c19190612e51565b60405180910390f35b3480156106d5575f80fd5b506106de6110b1565b005b3480156106eb575f80fd5b506106f461153d565b6040516107019190612e51565b60405180910390f35b348015610715575f80fd5b50610730600480360381019061072b919061302e565b611543565b005b34801561073d575f80fd5b506107586004803603810190610753919061320a565b6115d6565b005b348015610765575f80fd5b50610780600480360381019061077b9190613235565b611774565b60405161078d9190612e51565b60405180910390f35b3480156107a1575f80fd5b506107aa6117f6565b6040516107b79190612e51565b60405180910390f35b3480156107cb575f80fd5b506107d46117fc565b6040516107e19190612e51565b60405180910390f35b3480156107f5575f80fd5b50610810600480360381019061080b919061309d565b611802565b005b34801561081d575f80fd5b50610826611884565b6040516108339190612e51565b60405180910390f35b348015610847575f80fd5b5061085061188a565b60405161085d9190612e29565b60405180910390f35b61086e61189c565b601e8211158015610880575060638111155b6108bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b6906132bd565b60405180910390fd5b81600f81905550806010819055505050565b6060600380546108e090613308565b80601f016020809104026020016040519081016040528092919081815260200182805461090c90613308565b80156109575780601f1061092e57610100808354040283529160200191610957565b820191905f5260205f20905b81548152906001019060200180831161093a57829003601f168201915b5050505050905090565b5f8061096b61191a565b9050610978818585611921565b600191505092915050565b5f600254905090565b5f8061099661191a565b90506109a3858285611ae4565b6109ae858585611b6f565b60019150509392505050565b600a5481565b5f6012905090565b6109d061189c565b5f5b8151811015610a56575f60095f8484815181106109f2576109f1613338565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506109d2565b5050565b5f80610a6461191a565b9050610a85818585610a768589611774565b610a809190613392565b611921565b600191505092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b4761191a565b73ffffffffffffffffffffffffffffffffffffffff1614610b66575f80fd5b5f610b6f610983565b90505f610b7b30610c21565b90505f60648484610b8c91906133c5565b610b969190613433565b905080821015610bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd2906134ad565b60405180910390fd5b610be4816124f7565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600e60019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c6e61189c565b610c775f61274b565b565b610c8161189c565b5f610c8a610983565b905080600b8190555080600c8190555050565b610ca561189c565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f4711610d67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5e90613515565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610da761191a565b73ffffffffffffffffffffffffffffffffffffffff1614610dc6575f80fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610e09573d5f803e3d5ffd5b50565b606060048054610e1b90613308565b80601f0160208091040260200160405190810160405280929190818152602001828054610e4790613308565b8015610e925780601f10610e6957610100808354040283529160200191610e92565b820191905f5260205f20905b815481529060010190602001808311610e7557829003601f168201915b5050505050905090565b610ea461189c565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2a906135a3565b60405180910390fd5b610f3d828261280e565b5050565b5f80610f4b61191a565b90505f610f588286611774565b905083811015610f9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9490613631565b60405180910390fd5b610faa8286868403611921565b60019250505092915050565b5f80610fc061191a565b9050610fcd818585611b6f565b600191505092915050565b610fe061189c565b670de0b6b3a764000081610ff491906133c5565b600d8190555050565b61100561189c565b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161109f9190612e29565b60405180910390a25050565b600b5481565b6110b961189c565b600e5f9054906101000a900460ff1615611108576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ff90613699565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611171573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061119591906136cb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396307f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561121a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061123e91906136cb565b6040518363ffffffff1660e01b815260040161125b9291906136f6565b6020604051808303815f875af1158015611277573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061129b91906136cb565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061130660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610c9d565b61133260065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161280e565b61135f307f0000000000000000000000000000000000000000000000000000000000000000600a54611921565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d71947306113b960506113ab30610c21565b6128ac90919063ffffffff16565b5f806113c3610cfd565b426040518863ffffffff1660e01b81526004016113e596959493929190613756565b60606040518083038185885af1158015611401573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061142691906137c9565b50505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016114c5929190613819565b6020604051808303815f875af11580156114e1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115059190613854565b506001600e60016101000a81548160ff0219169083151502179055506001600e5f6101000a81548160ff021916908315150217905550565b60105481565b61154b61189c565b5f5b81518110156115d257600160095f84848151811061156e5761156d613338565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061154d565b5050565b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016116109190613084565b602060405180830381865afa15801561162b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061164f919061387f565b90505f8111611693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168a906138f4565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116d361191a565b73ffffffffffffffffffffffffffffffffffffffff16146116f2575f80fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61dead836040518363ffffffff1660e01b815260040161172f929190613819565b6020604051808303815f875af115801561174b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061176f9190613854565b505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600f5481565b600d5481565b61180a61189c565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186f90613982565b60405180910390fd5b6118818161274b565b50565b600c5481565b600e5f9054906101000a900460ff1681565b6118a461191a565b73ffffffffffffffffffffffffffffffffffffffff166118c2610cfd565b73ffffffffffffffffffffffffffffffffffffffff1614611918576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190f906139ea565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361198f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198690613a78565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f490613b06565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ad79190612e51565b60405180910390a3505050565b5f611aef8484611774565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611b695781811015611b5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5290613b6e565b60405180910390fd5b611b688484848403611921565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd490613bfc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4290613c8a565b60405180910390fd5b5f8103611c6257611c5d83835f612911565b6124f2565b611c6a610cfd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611cd85750611ca8610cfd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d1057505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d4a575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d635750600860149054906101000a900460ff16155b156121d65760095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611e06575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611e0e575f80fd5b600e5f9054906101000a900460ff16611efc5760115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611ebc575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611efb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef290613cf2565b60405180910390fd5b5b60135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611f99575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561204057600b54811115611fe3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fda90613d80565b60405180910390fd5b600c54611fef83610c21565b82611ffa9190613392565b111561203b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203290613de8565b60405180910390fd5b6121d5565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156120dd575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561212c57600b54811115612127576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211e90613e76565b60405180910390fd5b6121d4565b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166121d357600c5461218683610c21565b826121919190613392565b11156121d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c990613de8565b60405180910390fd5b5b5b5b5b5f6121e030610c21565b90505f80821190508080156122015750600e60019054906101000a900460ff165b801561221a5750600860149054906101000a900460ff16155b801561226d575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156122c0575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612313575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612357576001600860146101000a81548160ff02191690831515021790555061233c83612b7d565b5f600860146101000a81548160ff0219169083151502179055505b5f600860149054906101000a900460ff1615905060115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612406575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561240f575f90505b5f81156124e25760135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156124945761248d606461247f60105488612c1790919063ffffffff16565b612c2c90919063ffffffff16565b90506124bf565b6124bc60646124ae600f5488612c1790919063ffffffff16565b612c2c90919063ffffffff16565b90505b5f8111156124d3576124d2873083612911565b5b80856124df9190613e94565b94505b6124ed878787612911565b505050505b505050565b5f600267ffffffffffffffff81111561251357612512612ef2565b5b6040519080825280602002602001820160405280156125415781602001602082028036833780820191505090505b50905030815f8151811061255857612557613338565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061261f91906136cb565b8160018151811061263357612632613338565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612698307f000000000000000000000000000000000000000000000000000000000000000084611921565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161271a959493929190613f7e565b5f604051808303815f87803b158015612731575f80fd5b505af1158015612743573d5f803e3d5ffd5b505050505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f60648211156128f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e890614046565b60405180910390fd5b606482846128ff91906133c5565b6129099190613433565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361297f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297690613bfc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036129ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e490613c8a565b60405180910390fd5b6129f8838383612c41565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a72906140d4565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b649190612e51565b60405180910390a3612b77848484612c46565b50505050565b5f612b8730610c21565b90505f808203612b98575050612c14565b5f82118015612ba85750600d5482105b15612bb557819050612c08565b5f612bde6064612bd060105487612c1790919063ffffffff16565b612c2c90919063ffffffff16565b90508084612bec9190613e94565b9350600d54841115612c0257600d549150612c06565b8391505b505b612c11816124f7565b50505b50565b5f8183612c2491906133c5565b905092915050565b5f8183612c399190613433565b905092915050565b505050565b505050565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b612c6e81612c5c565b8114612c78575f80fd5b50565b5f81359050612c8981612c65565b92915050565b5f8060408385031215612ca557612ca4612c54565b5b5f612cb285828601612c7b565b9250506020612cc385828601612c7b565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612d04578082015181840152602081019050612ce9565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612d2982612ccd565b612d338185612cd7565b9350612d43818560208601612ce7565b612d4c81612d0f565b840191505092915050565b5f6020820190508181035f830152612d6f8184612d1f565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612da082612d77565b9050919050565b612db081612d96565b8114612dba575f80fd5b50565b5f81359050612dcb81612da7565b92915050565b5f8060408385031215612de757612de6612c54565b5b5f612df485828601612dbd565b9250506020612e0585828601612c7b565b9150509250929050565b5f8115159050919050565b612e2381612e0f565b82525050565b5f602082019050612e3c5f830184612e1a565b92915050565b612e4b81612c5c565b82525050565b5f602082019050612e645f830184612e42565b92915050565b5f805f60608486031215612e8157612e80612c54565b5b5f612e8e86828701612dbd565b9350506020612e9f86828701612dbd565b9250506040612eb086828701612c7b565b9150509250925092565b5f60ff82169050919050565b612ecf81612eba565b82525050565b5f602082019050612ee85f830184612ec6565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612f2882612d0f565b810181811067ffffffffffffffff82111715612f4757612f46612ef2565b5b80604052505050565b5f612f59612c4b565b9050612f658282612f1f565b919050565b5f67ffffffffffffffff821115612f8457612f83612ef2565b5b602082029050602081019050919050565b5f80fd5b5f612fab612fa684612f6a565b612f50565b90508083825260208201905060208402830185811115612fce57612fcd612f95565b5b835b81811015612ff75780612fe38882612dbd565b845260208401935050602081019050612fd0565b5050509392505050565b5f82601f83011261301557613014612eee565b5b8135613025848260208601612f99565b91505092915050565b5f6020828403121561304357613042612c54565b5b5f82013567ffffffffffffffff8111156130605761305f612c58565b5b61306c84828501613001565b91505092915050565b61307e81612d96565b82525050565b5f6020820190506130975f830184613075565b92915050565b5f602082840312156130b2576130b1612c54565b5b5f6130bf84828501612dbd565b91505092915050565b5f602082840312156130dd576130dc612c54565b5b5f6130ea84828501612c7b565b91505092915050565b5f819050919050565b5f61311661311161310c84612d77565b6130f3565b612d77565b9050919050565b5f613127826130fc565b9050919050565b5f6131388261311d565b9050919050565b6131488161312e565b82525050565b5f6020820190506131615f83018461313f565b92915050565b61317081612e0f565b811461317a575f80fd5b50565b5f8135905061318b81613167565b92915050565b5f80604083850312156131a7576131a6612c54565b5b5f6131b485828601612dbd565b92505060206131c58582860161317d565b9150509250929050565b5f6131d982612d96565b9050919050565b6131e9816131cf565b81146131f3575f80fd5b50565b5f81359050613204816131e0565b92915050565b5f6020828403121561321f5761321e612c54565b5b5f61322c848285016131f6565b91505092915050565b5f806040838503121561324b5761324a612c54565b5b5f61325885828601612dbd565b925050602061326985828601612dbd565b9150509250929050565b7f466565732063616e6e6f742065786365656420333025000000000000000000005f82015250565b5f6132a7601683612cd7565b91506132b282613273565b602082019050919050565b5f6020820190508181035f8301526132d48161329b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061331f57607f821691505b602082108103613332576133316132db565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61339c82612c5c565b91506133a783612c5c565b92508282019050808211156133bf576133be613365565b5b92915050565b5f6133cf82612c5c565b91506133da83612c5c565b92508282026133e881612c5c565b915082820484148315176133ff576133fe613365565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61343d82612c5c565b915061344883612c5c565b92508261345857613457613406565b5b828204905092915050565b7f4e6f7420656e6f75676820746f6b656e730000000000000000000000000000005f82015250565b5f613497601183612cd7565b91506134a282613463565b602082019050919050565b5f6020820190508181035f8301526134c48161348b565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f6134ff601683612cd7565b915061350a826134cb565b602082019050919050565b5f6020820190508181035f83015261352c816134f3565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f61358d603983612cd7565b915061359882613533565b604082019050919050565b5f6020820190508181035f8301526135ba81613581565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61361b602583612cd7565b9150613626826135c1565b604082019050919050565b5f6020820190508181035f8301526136488161360f565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f613683601783612cd7565b915061368e8261364f565b602082019050919050565b5f6020820190508181035f8301526136b081613677565b9050919050565b5f815190506136c581612da7565b92915050565b5f602082840312156136e0576136df612c54565b5b5f6136ed848285016136b7565b91505092915050565b5f6040820190506137095f830185613075565b6137166020830184613075565b9392505050565b5f819050919050565b5f61374061373b6137368461371d565b6130f3565b612c5c565b9050919050565b61375081613726565b82525050565b5f60c0820190506137695f830189613075565b6137766020830188612e42565b6137836040830187613747565b6137906060830186613747565b61379d6080830185613075565b6137aa60a0830184612e42565b979650505050505050565b5f815190506137c381612c65565b92915050565b5f805f606084860312156137e0576137df612c54565b5b5f6137ed868287016137b5565b93505060206137fe868287016137b5565b925050604061380f868287016137b5565b9150509250925092565b5f60408201905061382c5f830185613075565b6138396020830184612e42565b9392505050565b5f8151905061384e81613167565b92915050565b5f6020828403121561386957613868612c54565b5b5f61387684828501613840565b91505092915050565b5f6020828403121561389457613893612c54565b5b5f6138a1848285016137b5565b91505092915050565b7f546f6b656e3a206e6f20746f6b656e7320746f206275726e00000000000000005f82015250565b5f6138de601883612cd7565b91506138e9826138aa565b602082019050919050565b5f6020820190508181035f83015261390b816138d2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61396c602683612cd7565b915061397782613912565b604082019050919050565b5f6020820190508181035f83015261399981613960565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6139d4602083612cd7565b91506139df826139a0565b602082019050919050565b5f6020820190508181035f830152613a01816139c8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613a62602483612cd7565b9150613a6d82613a08565b604082019050919050565b5f6020820190508181035f830152613a8f81613a56565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613af0602283612cd7565b9150613afb82613a96565b604082019050919050565b5f6020820190508181035f830152613b1d81613ae4565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f613b58601d83612cd7565b9150613b6382613b24565b602082019050919050565b5f6020820190508181035f830152613b8581613b4c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613be6602583612cd7565b9150613bf182613b8c565b604082019050919050565b5f6020820190508181035f830152613c1381613bda565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613c74602383612cd7565b9150613c7f82613c1a565b604082019050919050565b5f6020820190508181035f830152613ca181613c68565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f613cdc601683612cd7565b9150613ce782613ca8565b602082019050919050565b5f6020820190508181035f830152613d0981613cd0565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f613d6a603583612cd7565b9150613d7582613d10565b604082019050919050565b5f6020820190508181035f830152613d9781613d5e565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613dd2601383612cd7565b9150613ddd82613d9e565b602082019050919050565b5f6020820190508181035f830152613dff81613dc6565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f613e60603683612cd7565b9150613e6b82613e06565b604082019050919050565b5f6020820190508181035f830152613e8d81613e54565b9050919050565b5f613e9e82612c5c565b9150613ea983612c5c565b9250828203905081811115613ec157613ec0613365565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613ef981612d96565b82525050565b5f613f0a8383613ef0565b60208301905092915050565b5f602082019050919050565b5f613f2c82613ec7565b613f368185613ed1565b9350613f4183613ee1565b805f5b83811015613f71578151613f588882613eff565b9750613f6383613f16565b925050600181019050613f44565b5085935050505092915050565b5f60a082019050613f915f830188612e42565b613f9e6020830187613747565b8181036040830152613fb08186613f22565b9050613fbf6060830185613075565b613fcc6080830184612e42565b9695505050505050565b7f50657263656e74616765206d757374206265206265747765656e203020616e645f8201527f2031303000000000000000000000000000000000000000000000000000000000602082015250565b5f614030602483612cd7565b915061403b82613fd6565b604082019050919050565b5f6020820190508181035f83015261405d81614024565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6140be602683612cd7565b91506140c982614064565b604082019050919050565b5f6020820190508181035f8301526140eb816140b2565b905091905056fea264697066735822122099a10c5c031c08bdb3adcf3ba63bc52fe5517a44b92068d5a6094333b3e2f4e564736f6c63430008160033000000000000000000000000dc450df3cb766633742c259dd7ba23ef047f06e8

Deployed Bytecode

0x60806040526004361061021d575f3560e01c80638da5cb5b11610122578063c9567bf9116100aa578063dd8546521161006e578063dd85465214610796578063e2f45605146107c0578063f2fde38b146107ea578063f8b45b0514610812578063ffb54a991461083c57610224565b8063c9567bf9146106ca578063cf9522fd146106e0578063d34628cc1461070a578063db1b718214610732578063dd62ed3e1461075a57610224565b8063a457c2d7116100f1578063a457c2d7146105d8578063a9059cbb14610614578063afa4f3b214610650578063c024666814610678578063c8c8ebe4146106a057610224565b80638da5cb5b1461054657806394f153841461057057806395d89b41146105865780639a7a23d6146105b057610224565b806349bd5a5e116101a55780636ddd1713116101745780636ddd17131461048c57806370a08231146104b6578063715018a6146104f2578063751039fc146105085780637571336a1461051e57610224565b806349bd5a5e146103d45780634fbee193146103fe578063500b9aa21461043a578063583e05681461046257610224565b806323b872dd116101ec57806323b872dd146102e0578063311028af1461031c578063313ce5671461034657806331c2d84714610370578063395093511461039857610224565b8063032dc6a21461022857806306fdde0314610250578063095ea7b31461027a57806318160ddd146102b657610224565b3661022457005b5f80fd5b348015610233575f80fd5b5061024e60048036038101906102499190612c8f565b610866565b005b34801561025b575f80fd5b506102646108d1565b6040516102719190612d57565b60405180910390f35b348015610285575f80fd5b506102a0600480360381019061029b9190612dd1565b610961565b6040516102ad9190612e29565b60405180910390f35b3480156102c1575f80fd5b506102ca610983565b6040516102d79190612e51565b60405180910390f35b3480156102eb575f80fd5b5061030660048036038101906103019190612e6a565b61098c565b6040516103139190612e29565b60405180910390f35b348015610327575f80fd5b506103306109ba565b60405161033d9190612e51565b60405180910390f35b348015610351575f80fd5b5061035a6109c0565b6040516103679190612ed5565b60405180910390f35b34801561037b575f80fd5b506103966004803603810190610391919061302e565b6109c8565b005b3480156103a3575f80fd5b506103be60048036038101906103b99190612dd1565b610a5a565b6040516103cb9190612e29565b60405180910390f35b3480156103df575f80fd5b506103e8610a90565b6040516103f59190613084565b60405180910390f35b348015610409575f80fd5b50610424600480360381019061041f919061309d565b610ab5565b6040516104319190612e29565b60405180910390f35b348015610445575f80fd5b50610460600480360381019061045b91906130c8565b610b07565b005b34801561046d575f80fd5b50610476610bea565b604051610483919061314e565b60405180910390f35b348015610497575f80fd5b506104a0610c0e565b6040516104ad9190612e29565b60405180910390f35b3480156104c1575f80fd5b506104dc60048036038101906104d7919061309d565b610c21565b6040516104e99190612e51565b60405180910390f35b3480156104fd575f80fd5b50610506610c66565b005b348015610513575f80fd5b5061051c610c79565b005b348015610529575f80fd5b50610544600480360381019061053f9190613191565b610c9d565b005b348015610551575f80fd5b5061055a610cfd565b6040516105679190613084565b60405180910390f35b34801561057b575f80fd5b50610584610d25565b005b348015610591575f80fd5b5061059a610e0c565b6040516105a79190612d57565b60405180910390f35b3480156105bb575f80fd5b506105d660048036038101906105d19190613191565b610e9c565b005b3480156105e3575f80fd5b506105fe60048036038101906105f99190612dd1565b610f41565b60405161060b9190612e29565b60405180910390f35b34801561061f575f80fd5b5061063a60048036038101906106359190612dd1565b610fb6565b6040516106479190612e29565b60405180910390f35b34801561065b575f80fd5b50610676600480360381019061067191906130c8565b610fd8565b005b348015610683575f80fd5b5061069e60048036038101906106999190613191565b610ffd565b005b3480156106ab575f80fd5b506106b46110ab565b6040516106c19190612e51565b60405180910390f35b3480156106d5575f80fd5b506106de6110b1565b005b3480156106eb575f80fd5b506106f461153d565b6040516107019190612e51565b60405180910390f35b348015610715575f80fd5b50610730600480360381019061072b919061302e565b611543565b005b34801561073d575f80fd5b506107586004803603810190610753919061320a565b6115d6565b005b348015610765575f80fd5b50610780600480360381019061077b9190613235565b611774565b60405161078d9190612e51565b60405180910390f35b3480156107a1575f80fd5b506107aa6117f6565b6040516107b79190612e51565b60405180910390f35b3480156107cb575f80fd5b506107d46117fc565b6040516107e19190612e51565b60405180910390f35b3480156107f5575f80fd5b50610810600480360381019061080b919061309d565b611802565b005b34801561081d575f80fd5b50610826611884565b6040516108339190612e51565b60405180910390f35b348015610847575f80fd5b5061085061188a565b60405161085d9190612e29565b60405180910390f35b61086e61189c565b601e8211158015610880575060638111155b6108bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b6906132bd565b60405180910390fd5b81600f81905550806010819055505050565b6060600380546108e090613308565b80601f016020809104026020016040519081016040528092919081815260200182805461090c90613308565b80156109575780601f1061092e57610100808354040283529160200191610957565b820191905f5260205f20905b81548152906001019060200180831161093a57829003601f168201915b5050505050905090565b5f8061096b61191a565b9050610978818585611921565b600191505092915050565b5f600254905090565b5f8061099661191a565b90506109a3858285611ae4565b6109ae858585611b6f565b60019150509392505050565b600a5481565b5f6012905090565b6109d061189c565b5f5b8151811015610a56575f60095f8484815181106109f2576109f1613338565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506109d2565b5050565b5f80610a6461191a565b9050610a85818585610a768589611774565b610a809190613392565b611921565b600191505092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b4761191a565b73ffffffffffffffffffffffffffffffffffffffff1614610b66575f80fd5b5f610b6f610983565b90505f610b7b30610c21565b90505f60648484610b8c91906133c5565b610b969190613433565b905080821015610bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd2906134ad565b60405180910390fd5b610be4816124f7565b50505050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b600e60019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c6e61189c565b610c775f61274b565b565b610c8161189c565b5f610c8a610983565b905080600b8190555080600c8190555050565b610ca561189c565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f4711610d67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5e90613515565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610da761191a565b73ffffffffffffffffffffffffffffffffffffffff1614610dc6575f80fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610e09573d5f803e3d5ffd5b50565b606060048054610e1b90613308565b80601f0160208091040260200160405190810160405280929190818152602001828054610e4790613308565b8015610e925780601f10610e6957610100808354040283529160200191610e92565b820191905f5260205f20905b815481529060010190602001808311610e7557829003601f168201915b5050505050905090565b610ea461189c565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2a906135a3565b60405180910390fd5b610f3d828261280e565b5050565b5f80610f4b61191a565b90505f610f588286611774565b905083811015610f9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9490613631565b60405180910390fd5b610faa8286868403611921565b60019250505092915050565b5f80610fc061191a565b9050610fcd818585611b6f565b600191505092915050565b610fe061189c565b670de0b6b3a764000081610ff491906133c5565b600d8190555050565b61100561189c565b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161109f9190612e29565b60405180910390a25050565b600b5481565b6110b961189c565b600e5f9054906101000a900460ff1615611108576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ff90613699565b60405180910390fd5b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611171573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061119591906136cb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561121a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061123e91906136cb565b6040518363ffffffff1660e01b815260040161125b9291906136f6565b6020604051808303815f875af1158015611277573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061129b91906136cb565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061130660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610c9d565b61133260065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161280e565b61135f307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d600a54611921565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71947306113b960506113ab30610c21565b6128ac90919063ffffffff16565b5f806113c3610cfd565b426040518863ffffffff1660e01b81526004016113e596959493929190613756565b60606040518083038185885af1158015611401573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061142691906137c9565b50505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016114c5929190613819565b6020604051808303815f875af11580156114e1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115059190613854565b506001600e60016101000a81548160ff0219169083151502179055506001600e5f6101000a81548160ff021916908315150217905550565b60105481565b61154b61189c565b5f5b81518110156115d257600160095f84848151811061156e5761156d613338565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061154d565b5050565b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016116109190613084565b602060405180830381865afa15801561162b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061164f919061387f565b90505f8111611693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168a906138f4565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116d361191a565b73ffffffffffffffffffffffffffffffffffffffff16146116f2575f80fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61dead836040518363ffffffff1660e01b815260040161172f929190613819565b6020604051808303815f875af115801561174b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061176f9190613854565b505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600f5481565b600d5481565b61180a61189c565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186f90613982565b60405180910390fd5b6118818161274b565b50565b600c5481565b600e5f9054906101000a900460ff1681565b6118a461191a565b73ffffffffffffffffffffffffffffffffffffffff166118c2610cfd565b73ffffffffffffffffffffffffffffffffffffffff1614611918576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190f906139ea565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361198f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198690613a78565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f490613b06565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ad79190612e51565b60405180910390a3505050565b5f611aef8484611774565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611b695781811015611b5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5290613b6e565b60405180910390fd5b611b688484848403611921565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd490613bfc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4290613c8a565b60405180910390fd5b5f8103611c6257611c5d83835f612911565b6124f2565b611c6a610cfd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611cd85750611ca8610cfd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d1057505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d4a575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d635750600860149054906101000a900460ff16155b156121d65760095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611e06575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611e0e575f80fd5b600e5f9054906101000a900460ff16611efc5760115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611ebc575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611efb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef290613cf2565b60405180910390fd5b5b60135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611f99575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561204057600b54811115611fe3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fda90613d80565b60405180910390fd5b600c54611fef83610c21565b82611ffa9190613392565b111561203b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203290613de8565b60405180910390fd5b6121d5565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156120dd575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561212c57600b54811115612127576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211e90613e76565b60405180910390fd5b6121d4565b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166121d357600c5461218683610c21565b826121919190613392565b11156121d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c990613de8565b60405180910390fd5b5b5b5b5b5f6121e030610c21565b90505f80821190508080156122015750600e60019054906101000a900460ff165b801561221a5750600860149054906101000a900460ff16155b801561226d575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156122c0575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612313575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612357576001600860146101000a81548160ff02191690831515021790555061233c83612b7d565b5f600860146101000a81548160ff0219169083151502179055505b5f600860149054906101000a900460ff1615905060115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612406575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561240f575f90505b5f81156124e25760135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156124945761248d606461247f60105488612c1790919063ffffffff16565b612c2c90919063ffffffff16565b90506124bf565b6124bc60646124ae600f5488612c1790919063ffffffff16565b612c2c90919063ffffffff16565b90505b5f8111156124d3576124d2873083612911565b5b80856124df9190613e94565b94505b6124ed878787612911565b505050505b505050565b5f600267ffffffffffffffff81111561251357612512612ef2565b5b6040519080825280602002602001820160405280156125415781602001602082028036833780820191505090505b50905030815f8151811061255857612557613338565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061261f91906136cb565b8160018151811061263357612632613338565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612698307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611921565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161271a959493929190613f7e565b5f604051808303815f87803b158015612731575f80fd5b505af1158015612743573d5f803e3d5ffd5b505050505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f60648211156128f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e890614046565b60405180910390fd5b606482846128ff91906133c5565b6129099190613433565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361297f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297690613bfc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036129ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e490613c8a565b60405180910390fd5b6129f8838383612c41565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a72906140d4565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b649190612e51565b60405180910390a3612b77848484612c46565b50505050565b5f612b8730610c21565b90505f808203612b98575050612c14565b5f82118015612ba85750600d5482105b15612bb557819050612c08565b5f612bde6064612bd060105487612c1790919063ffffffff16565b612c2c90919063ffffffff16565b90508084612bec9190613e94565b9350600d54841115612c0257600d549150612c06565b8391505b505b612c11816124f7565b50505b50565b5f8183612c2491906133c5565b905092915050565b5f8183612c399190613433565b905092915050565b505050565b505050565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b612c6e81612c5c565b8114612c78575f80fd5b50565b5f81359050612c8981612c65565b92915050565b5f8060408385031215612ca557612ca4612c54565b5b5f612cb285828601612c7b565b9250506020612cc385828601612c7b565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612d04578082015181840152602081019050612ce9565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612d2982612ccd565b612d338185612cd7565b9350612d43818560208601612ce7565b612d4c81612d0f565b840191505092915050565b5f6020820190508181035f830152612d6f8184612d1f565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612da082612d77565b9050919050565b612db081612d96565b8114612dba575f80fd5b50565b5f81359050612dcb81612da7565b92915050565b5f8060408385031215612de757612de6612c54565b5b5f612df485828601612dbd565b9250506020612e0585828601612c7b565b9150509250929050565b5f8115159050919050565b612e2381612e0f565b82525050565b5f602082019050612e3c5f830184612e1a565b92915050565b612e4b81612c5c565b82525050565b5f602082019050612e645f830184612e42565b92915050565b5f805f60608486031215612e8157612e80612c54565b5b5f612e8e86828701612dbd565b9350506020612e9f86828701612dbd565b9250506040612eb086828701612c7b565b9150509250925092565b5f60ff82169050919050565b612ecf81612eba565b82525050565b5f602082019050612ee85f830184612ec6565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612f2882612d0f565b810181811067ffffffffffffffff82111715612f4757612f46612ef2565b5b80604052505050565b5f612f59612c4b565b9050612f658282612f1f565b919050565b5f67ffffffffffffffff821115612f8457612f83612ef2565b5b602082029050602081019050919050565b5f80fd5b5f612fab612fa684612f6a565b612f50565b90508083825260208201905060208402830185811115612fce57612fcd612f95565b5b835b81811015612ff75780612fe38882612dbd565b845260208401935050602081019050612fd0565b5050509392505050565b5f82601f83011261301557613014612eee565b5b8135613025848260208601612f99565b91505092915050565b5f6020828403121561304357613042612c54565b5b5f82013567ffffffffffffffff8111156130605761305f612c58565b5b61306c84828501613001565b91505092915050565b61307e81612d96565b82525050565b5f6020820190506130975f830184613075565b92915050565b5f602082840312156130b2576130b1612c54565b5b5f6130bf84828501612dbd565b91505092915050565b5f602082840312156130dd576130dc612c54565b5b5f6130ea84828501612c7b565b91505092915050565b5f819050919050565b5f61311661311161310c84612d77565b6130f3565b612d77565b9050919050565b5f613127826130fc565b9050919050565b5f6131388261311d565b9050919050565b6131488161312e565b82525050565b5f6020820190506131615f83018461313f565b92915050565b61317081612e0f565b811461317a575f80fd5b50565b5f8135905061318b81613167565b92915050565b5f80604083850312156131a7576131a6612c54565b5b5f6131b485828601612dbd565b92505060206131c58582860161317d565b9150509250929050565b5f6131d982612d96565b9050919050565b6131e9816131cf565b81146131f3575f80fd5b50565b5f81359050613204816131e0565b92915050565b5f6020828403121561321f5761321e612c54565b5b5f61322c848285016131f6565b91505092915050565b5f806040838503121561324b5761324a612c54565b5b5f61325885828601612dbd565b925050602061326985828601612dbd565b9150509250929050565b7f466565732063616e6e6f742065786365656420333025000000000000000000005f82015250565b5f6132a7601683612cd7565b91506132b282613273565b602082019050919050565b5f6020820190508181035f8301526132d48161329b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061331f57607f821691505b602082108103613332576133316132db565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61339c82612c5c565b91506133a783612c5c565b92508282019050808211156133bf576133be613365565b5b92915050565b5f6133cf82612c5c565b91506133da83612c5c565b92508282026133e881612c5c565b915082820484148315176133ff576133fe613365565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61343d82612c5c565b915061344883612c5c565b92508261345857613457613406565b5b828204905092915050565b7f4e6f7420656e6f75676820746f6b656e730000000000000000000000000000005f82015250565b5f613497601183612cd7565b91506134a282613463565b602082019050919050565b5f6020820190508181035f8301526134c48161348b565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f6134ff601683612cd7565b915061350a826134cb565b602082019050919050565b5f6020820190508181035f83015261352c816134f3565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f61358d603983612cd7565b915061359882613533565b604082019050919050565b5f6020820190508181035f8301526135ba81613581565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61361b602583612cd7565b9150613626826135c1565b604082019050919050565b5f6020820190508181035f8301526136488161360f565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f613683601783612cd7565b915061368e8261364f565b602082019050919050565b5f6020820190508181035f8301526136b081613677565b9050919050565b5f815190506136c581612da7565b92915050565b5f602082840312156136e0576136df612c54565b5b5f6136ed848285016136b7565b91505092915050565b5f6040820190506137095f830185613075565b6137166020830184613075565b9392505050565b5f819050919050565b5f61374061373b6137368461371d565b6130f3565b612c5c565b9050919050565b61375081613726565b82525050565b5f60c0820190506137695f830189613075565b6137766020830188612e42565b6137836040830187613747565b6137906060830186613747565b61379d6080830185613075565b6137aa60a0830184612e42565b979650505050505050565b5f815190506137c381612c65565b92915050565b5f805f606084860312156137e0576137df612c54565b5b5f6137ed868287016137b5565b93505060206137fe868287016137b5565b925050604061380f868287016137b5565b9150509250925092565b5f60408201905061382c5f830185613075565b6138396020830184612e42565b9392505050565b5f8151905061384e81613167565b92915050565b5f6020828403121561386957613868612c54565b5b5f61387684828501613840565b91505092915050565b5f6020828403121561389457613893612c54565b5b5f6138a1848285016137b5565b91505092915050565b7f546f6b656e3a206e6f20746f6b656e7320746f206275726e00000000000000005f82015250565b5f6138de601883612cd7565b91506138e9826138aa565b602082019050919050565b5f6020820190508181035f83015261390b816138d2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61396c602683612cd7565b915061397782613912565b604082019050919050565b5f6020820190508181035f83015261399981613960565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6139d4602083612cd7565b91506139df826139a0565b602082019050919050565b5f6020820190508181035f830152613a01816139c8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613a62602483612cd7565b9150613a6d82613a08565b604082019050919050565b5f6020820190508181035f830152613a8f81613a56565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613af0602283612cd7565b9150613afb82613a96565b604082019050919050565b5f6020820190508181035f830152613b1d81613ae4565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f613b58601d83612cd7565b9150613b6382613b24565b602082019050919050565b5f6020820190508181035f830152613b8581613b4c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613be6602583612cd7565b9150613bf182613b8c565b604082019050919050565b5f6020820190508181035f830152613c1381613bda565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613c74602383612cd7565b9150613c7f82613c1a565b604082019050919050565b5f6020820190508181035f830152613ca181613c68565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f613cdc601683612cd7565b9150613ce782613ca8565b602082019050919050565b5f6020820190508181035f830152613d0981613cd0565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f613d6a603583612cd7565b9150613d7582613d10565b604082019050919050565b5f6020820190508181035f830152613d9781613d5e565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613dd2601383612cd7565b9150613ddd82613d9e565b602082019050919050565b5f6020820190508181035f830152613dff81613dc6565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f613e60603683612cd7565b9150613e6b82613e06565b604082019050919050565b5f6020820190508181035f830152613e8d81613e54565b9050919050565b5f613e9e82612c5c565b9150613ea983612c5c565b9250828203905081811115613ec157613ec0613365565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613ef981612d96565b82525050565b5f613f0a8383613ef0565b60208301905092915050565b5f602082019050919050565b5f613f2c82613ec7565b613f368185613ed1565b9350613f4183613ee1565b805f5b83811015613f71578151613f588882613eff565b9750613f6383613f16565b925050600181019050613f44565b5085935050505092915050565b5f60a082019050613f915f830188612e42565b613f9e6020830187613747565b8181036040830152613fb08186613f22565b9050613fbf6060830185613075565b613fcc6080830184612e42565b9695505050505050565b7f50657263656e74616765206d757374206265206265747765656e203020616e645f8201527f2031303000000000000000000000000000000000000000000000000000000000602082015250565b5f614030602483612cd7565b915061403b82613fd6565b604082019050919050565b5f6020820190508181035f83015261405d81614024565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6140be602683612cd7565b91506140c982614064565b604082019050919050565b5f6020820190508181035f8301526140eb816140b2565b905091905056fea264697066735822122099a10c5c031c08bdb3adcf3ba63bc52fe5517a44b92068d5a6094333b3e2f4e564736f6c63430008160033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000dc450df3cb766633742c259dd7ba23ef047f06e8

-----Decoded View---------------
Arg [0] : wallet (address): 0xdC450dF3cB766633742C259DD7ba23Ef047F06E8

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000dc450df3cb766633742c259dd7ba23ef047f06e8


Deployed Bytecode Sourcemap

15578:9195:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23919:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10806:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11738:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11127:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11947:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16050:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11026:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19568:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12216:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15713:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19259:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23505:406;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15654:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16317:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11243:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1905:103;;;;;;;;;;;;;:::i;:::-;;22608:194;;;;;;;;;;;;;:::i;:::-;;18427:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1670:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22810:226;;;;;;;;;;;;;:::i;:::-;;10914:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18792:265;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12462:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11378:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23370:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18602:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16110:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17682:739;;;;;;;;;;;;;:::i;:::-;;16390:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19393:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23044:318;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11579:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16357:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16219:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2016:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16170:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16279:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23919:211;1629:13;:11;:13::i;:::-;24019:2:::1;24008:7;:13;;:31;;;;;24037:2;24025:8;:14;;24008:31;24000:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;24086:7;24077:6;:16;;;;24114:8;24104:7;:18;;;;23919:211:::0;;:::o;10806:100::-;10860:13;10893:5;10886:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10806:100;:::o;11738:201::-;11821:4;11838:13;11854:12;:10;:12::i;:::-;11838:28;;11877:32;11886:5;11893:7;11902:6;11877:8;:32::i;:::-;11927:4;11920:11;;;11738:201;;;;:::o;11127:108::-;11188:7;11215:12;;11208:19;;11127:108;:::o;11947:261::-;12044:4;12061:15;12079:12;:10;:12::i;:::-;12061:30;;12102:38;12118:4;12124:7;12133:6;12102:15;:38::i;:::-;12151:27;12161:4;12167:2;12171:6;12151:9;:27::i;:::-;12196:4;12189:11;;;11947:261;;;;;:::o;16050:53::-;;;;:::o;11026:93::-;11084:5;11109:2;11102:9;;11026:93;:::o;19568:171::-;1629:13;:11;:13::i;:::-;19643:9:::1;19638:94;19662:6;:13;19658:1;:17;19638:94;;;19715:5;19697:4;:15;19702:6;19709:1;19702:9;;;;;;;;:::i;:::-;;;;;;;;19697:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;19677:3;;;;;;;19638:94;;;;19568:171:::0;:::o;12216:238::-;12304:4;12321:13;12337:12;:10;:12::i;:::-;12321:28;;12360:64;12369:5;12376:7;12413:10;12385:25;12395:5;12402:7;12385:9;:25::i;:::-;:38;;;;:::i;:::-;12360:8;:64::i;:::-;12442:4;12435:11;;;12216:238;;;;:::o;15713:28::-;;;;;;;;;;;;;:::o;19259:126::-;19325:4;19349:19;:28;19369:7;19349:28;;;;;;;;;;;;;;;;;;;;;;;;;19342:35;;19259:126;;;:::o;23505:406::-;23585:15;;;;;;;;;;;23569:31;;:12;:10;:12::i;:::-;:31;;;23561:40;;;;;;23612:25;23640:13;:11;:13::i;:::-;23612:41;;23664:23;23690:24;23708:4;23690:9;:24::i;:::-;23664:50;;23725:23;23781:3;23771:7;23751:17;:27;;;;:::i;:::-;:33;;;;:::i;:::-;23725:59;;23822:15;23803;:34;;23795:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;23870:33;23887:15;23870:16;:33::i;:::-;23550:361;;;23505:406;:::o;15654:52::-;;;:::o;16317:31::-;;;;;;;;;;;;;:::o;11243:127::-;11317:7;11344:9;:18;11354:7;11344:18;;;;;;;;;;;;;;;;11337:25;;11243:127;;;:::o;1905:103::-;1629:13;:11;:13::i;:::-;1970:30:::1;1997:1;1970:18;:30::i;:::-;1905:103::o:0;22608:194::-;1629:13;:11;:13::i;:::-;22662:25:::1;22690:13;:11;:13::i;:::-;22662:41;;22737:17;22714:20;:40;;;;22777:17;22765:9;:29;;;;22651:151;22608:194::o:0;18427:167::-;1629:13;:11;:13::i;:::-;18582:4:::1;18540:31;:39;18572:6;18540:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;18427:167:::0;;:::o;1670:87::-;1716:7;1743:6;;;;;;;;;;;1736:13;;1670:87;:::o;22810:226::-;22887:1;22863:21;:25;22855:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;22950:15;;;;;;;;;;;22934:31;;:12;:10;:12::i;:::-;:31;;;22926:40;;;;;;22985:10;22977:28;;:51;23006:21;22977:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22810:226::o;10914:104::-;10970:13;11003:7;10996:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10914:104;:::o;18792:265::-;1629:13;:11;:13::i;:::-;18922::::1;;;;;;;;;;;18914:21;;:4;:21;;::::0;18906:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19008:41;19037:4;19043:5;19008:28;:41::i;:::-;18792:265:::0;;:::o;12462:436::-;12555:4;12572:13;12588:12;:10;:12::i;:::-;12572:28;;12611:24;12638:25;12648:5;12655:7;12638:9;:25::i;:::-;12611:52;;12702:15;12682:16;:35;;12674:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;12795:60;12804:5;12811:7;12839:15;12820:16;:34;12795:8;:60::i;:::-;12886:4;12879:11;;;;12462:436;;;;:::o;11378:193::-;11457:4;11474:13;11490:12;:10;:12::i;:::-;11474:28;;11513;11523:5;11530:2;11534:6;11513:9;:28::i;:::-;11559:4;11552:11;;;11378:193;;;;:::o;23370:127::-;1629:13;:11;:13::i;:::-;23480:8:::1;23469:7;:20;;;;:::i;:::-;23448:18;:41;;;;23370:127:::0;:::o;18602:182::-;1629:13;:11;:13::i;:::-;18718:8:::1;18687:19;:28;18707:7;18687:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18758:7;18742:34;;;18767:8;18742:34;;;;;;:::i;:::-;;;;;;;;18602:182:::0;;:::o;16110:53::-;;;;:::o;17682:739::-;1629:13;:11;:13::i;:::-;17746:11:::1;;;;;;;;;;;17745:12;17737:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;17829:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17811:56;;;17876:4;17883:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17811:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17795:13;;:112;;;;;;;;;;;;;;;;;;17918:55;17952:13;;;;;;;;;;;17968:4;17918:25;:55::i;:::-;17984:58;18021:13;;;;;;;;;;;18037:4;17984:28;:58::i;:::-;18053:70;18070:4;18085:16;18104:18;;18053:8;:70::i;:::-;18134:16;:32;;;18174:21;18205:4;18211:32;18240:2;18211:24;18229:4;18211:9;:24::i;:::-;:28;;:32;;;;:::i;:::-;18244:1;18246::::0;18248:7:::1;:5;:7::i;:::-;18256:15;18134:138;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18290:13;;;;;;;;;;;18283:29;;;18321:16;18340:14;18283:72;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18380:4;18366:11;;:18;;;;;;;;;;;;;;;;;;18409:4;18395:11;;:18;;;;;;;;;;;;;;;;;;17682:739::o:0;16390:27::-;;;;:::o;19393:167::-;1629:13;:11;:13::i;:::-;19467:9:::1;19462:91;19486:5;:12;19482:1;:16;19462:91;;;19537:4;19520;:14;19525:5;19531:1;19525:8;;;;;;;;:::i;:::-;;;;;;;;19520:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;19500:3;;;;;;;19462:91;;;;19393:167:::0;:::o;23044:318::-;23111:23;23137:12;:22;;;23168:4;23137:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23111:63;;23211:1;23193:15;:19;23185:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;23276:15;;;;;;;;;;;23260:31;;:12;:10;:12::i;:::-;:31;;;23252:40;;;;;;23303:12;:21;;;15870:6;23338:15;23303:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23100:262;23044:318;:::o;11579:151::-;11668:7;11695:11;:18;11707:5;11695:18;;;;;;;;;;;;;;;:27;11714:7;11695:27;;;;;;;;;;;;;;;;11688:34;;11579:151;;;;:::o;16357:26::-;;;;:::o;16219:51::-;;;;:::o;2016:201::-;1629:13;:11;:13::i;:::-;2125:1:::1;2105:22;;:8;:22;;::::0;2097:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2181:28;2200:8;2181:18;:28::i;:::-;2016:201:::0;:::o;16170:42::-;;;;:::o;16279:31::-;;;;;;;;;;;;;:::o;1765:132::-;1840:12;:10;:12::i;:::-;1829:23;;:7;:5;:7::i;:::-;:23;;;1821:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1765:132::o;1143:98::-;1196:7;1223:10;1216:17;;1143:98;:::o;14601:346::-;14720:1;14703:19;;:5;:19;;;14695:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14801:1;14782:21;;:7;:21;;;14774:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14885:6;14855:11;:18;14867:5;14855:18;;;;;;;;;;;;;;;:27;14874:7;14855:27;;;;;;;;;;;;;;;:36;;;;14923:7;14907:32;;14916:5;14907:32;;;14932:6;14907:32;;;;;;:::i;:::-;;;;;;;;14601:346;;;:::o;14955:419::-;15056:24;15083:25;15093:5;15100:7;15083:9;:25::i;:::-;15056:52;;15143:17;15123:16;:37;15119:248;;15205:6;15185:16;:26;;15177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15289:51;15298:5;15305:7;15333:6;15314:16;:25;15289:8;:51::i;:::-;15119:248;15045:329;14955:419;;;:::o;19747:2367::-;19863:1;19847:18;;:4;:18;;;19839:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19940:1;19926:16;;:2;:16;;;19918:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;20017:1;20007:6;:11;20003:93;;20035:28;20051:4;20057:2;20061:1;20035:15;:28::i;:::-;20078:7;;20003:93;20120:7;:5;:7::i;:::-;20112:15;;:4;:15;;;;:32;;;;;20137:7;:5;:7::i;:::-;20131:13;;:2;:13;;;;20112:32;:52;;;;;20162:1;20148:16;;:2;:16;;;;20112:52;:77;;;;;20182:6;20168:21;;:2;:21;;;;20112:77;:90;;;;;20194:8;;;;;;;;;;;20193:9;20112:90;20108:1046;;;20230:4;:10;20235:4;20230:10;;;;;;;;;;;;;;;;;;;;;;;;;20229:11;:24;;;;;20245:4;:8;20250:2;20245:8;;;;;;;;;;;;;;;;;;;;;;;;;20244:9;20229:24;20221:33;;;;;;20276:11;;;;;;;;;;;20271:140;;20316:19;:25;20336:4;20316:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;20345:19;:23;20365:2;20345:23;;;;;;;;;;;;;;;;;;;;;;;;;20316:52;20308:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;20271:140;20431:25;:31;20457:4;20431:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20467:31;:35;20499:2;20467:35;;;;;;;;;;;;;;;;;;;;;;;;;20466:36;20431:71;20427:716;;;20555:20;;20545:6;:30;;20537:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;20686:9;;20669:13;20679:2;20669:9;:13::i;:::-;20660:6;:22;;;;:::i;:::-;:35;;20652:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20427:716;;;20760:25;:29;20786:2;20760:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20794:31;:37;20826:4;20794:37;;;;;;;;;;;;;;;;;;;;;;;;;20793:38;20760:71;20756:387;;;20870:20;;20860:6;:30;;20852:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;20756:387;;;21004:31;:35;21036:2;21004:35;;;;;;;;;;;;;;;;;;;;;;;;;20999:144;;21094:9;;21077:13;21087:2;21077:9;:13::i;:::-;21068:6;:22;;;;:::i;:::-;:35;;21060:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20999:144;20756:387;20427:716;20108:1046;21166:28;21197:24;21215:4;21197:9;:24::i;:::-;21166:55;;21234:12;21272:1;21249:20;:24;21234:39;;21290:7;:22;;;;;21301:11;;;;;;;;;;;21290:22;:35;;;;;21317:8;;;;;;;;;;;21316:9;21290:35;:71;;;;;21330:25;:31;21356:4;21330:31;;;;;;;;;;;;;;;;;;;;;;;;;21329:32;21290:71;:101;;;;;21366:19;:25;21386:4;21366:25;;;;;;;;;;;;;;;;;;;;;;;;;21365:26;21290:101;:129;;;;;21396:19;:23;21416:2;21396:23;;;;;;;;;;;;;;;;;;;;;;;;;21395:24;21290:129;21286:239;;;21447:4;21436:8;;:15;;;;;;;;;;;;;;;;;;21466:16;21475:6;21466:8;:16::i;:::-;21508:5;21497:8;;:16;;;;;;;;;;;;;;;;;;21286:239;21537:12;21553:8;;;;;;;;;;;21552:9;21537:24;;21578:19;:25;21598:4;21578:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;21607:19;:23;21627:2;21607:23;;;;;;;;;;;;;;;;;;;;;;;;;21578:52;21574:100;;;21657:5;21647:15;;21574:100;21686:12;21719:7;21715:348;;;21747:25;:29;21773:2;21747:29;;;;;;;;;;;;;;;;;;;;;;;;;21743:193;;;21804:28;21828:3;21804:19;21815:7;;21804:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;21797:35;;21743:193;;;21893:27;21916:3;21893:18;21904:6;;21893;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;21886:34;;21743:193;21959:1;21952:4;:8;21948:83;;;21977:42;21993:4;22007;22014;21977:15;:42::i;:::-;21948:83;22051:4;22041:14;;;;;:::i;:::-;;;21715:348;22073:33;22089:4;22095:2;22099:6;22073:15;:33::i;:::-;19826:2288;;;;19747:2367;;;;:::o;22122:478::-;22190:21;22228:1;22214:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22190:40;;22259:4;22241;22246:1;22241:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22285:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22275:4;22280:1;22275:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;22319:63;22336:4;22351:16;22370:11;22319:8;:63::i;:::-;22393:16;:67;;;22475:11;22501:1;22517:4;22536:15;;;;;;;;;;;22566;22393:199;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22177:423;22122:478;:::o;2225:191::-;2299:16;2318:6;;;;;;;;;;;2299:25;;2344:8;2335:6;;:17;;;;;;;;;;;;;;;;;;2399:8;2368:40;;2389:8;2368:40;;;;;;;;;;;;2288:128;2225:191;:::o;19065:186::-;19182:5;19148:25;:31;19174:4;19148:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;19237:5;19203:40;;19231:4;19203:40;;;;;;;;;;;;19065:186;;:::o;9795:172::-;9853:7;9886:3;9881:1;:8;;9873:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;9956:3;9952:1;9948;:5;;;;:::i;:::-;:11;;;;:::i;:::-;9941:18;;9795:172;;;;:::o;12906:641::-;13019:1;13003:18;;:4;:18;;;12995:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13096:1;13082:16;;:2;:16;;;13074:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13151:38;13172:4;13178:2;13182:6;13151:20;:38::i;:::-;13202:19;13224:9;:15;13234:4;13224:15;;;;;;;;;;;;;;;;13202:37;;13273:6;13258:11;:21;;13250:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;13390:6;13376:11;:20;13358:9;:15;13368:4;13358:15;;;;;;;;;;;;;;;:38;;;;13428:6;13411:9;:13;13421:2;13411:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;13478:2;13463:26;;13472:4;13463:26;;;13482:6;13463:26;;;;;;:::i;:::-;;;;;;;;13502:37;13522:4;13528:2;13532:6;13502:19;:37::i;:::-;12984:563;12906:641;;;:::o;24138:632::-;24191:23;24217:24;24235:4;24217:9;:24::i;:::-;24191:50;;24252:20;24302:1;24283:15;:20;24279:449;;24316:7;;;;24279:449;24363:1;24345:15;:19;:59;;;;;24386:18;;24368:15;:36;24345:59;24342:386;;;24432:15;24417:30;;24342:386;;;24477:21;24501:28;24525:3;24501:19;24512:7;;24501:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;24477:52;;24550:13;24540:23;;;;;:::i;:::-;;;24587:18;;24578:6;:27;24574:147;;;24637:18;;24622:33;;24574:147;;;24703:6;24688:21;;24574:147;24466:262;24342:386;24734:30;24751:12;24734:16;:30::i;:::-;24180:590;;24138:632;;:::o;9263:98::-;9321:7;9352:1;9348;:5;;;;:::i;:::-;9341:12;;9263:98;;;;:::o;9369:::-;9427:7;9458:1;9454;:5;;;;:::i;:::-;9447:12;;9369:98;;;;:::o;15382:91::-;;;;:::o;15481:90::-;;;;:::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:474::-;758:6;766;815:2;803:9;794:7;790:23;786:32;783:119;;;821:79;;:::i;:::-;783:119;941:1;966:53;1011:7;1002:6;991:9;987:22;966:53;:::i;:::-;956:63;;912:117;1068:2;1094:53;1139:7;1130:6;1119:9;1115:22;1094:53;:::i;:::-;1084:63;;1039:118;690:474;;;;;:::o;1170:99::-;1222:6;1256:5;1250:12;1240:22;;1170:99;;;:::o;1275:169::-;1359:11;1393:6;1388:3;1381:19;1433:4;1428:3;1424:14;1409:29;;1275:169;;;;:::o;1450:246::-;1531:1;1541:113;1555:6;1552:1;1549:13;1541:113;;;1640:1;1635:3;1631:11;1625:18;1621:1;1616:3;1612:11;1605:39;1577:2;1574:1;1570:10;1565:15;;1541:113;;;1688:1;1679:6;1674:3;1670:16;1663:27;1512:184;1450:246;;;:::o;1702:102::-;1743:6;1794:2;1790:7;1785:2;1778:5;1774:14;1770:28;1760:38;;1702:102;;;:::o;1810:377::-;1898:3;1926:39;1959:5;1926:39;:::i;:::-;1981:71;2045:6;2040:3;1981:71;:::i;:::-;1974:78;;2061:65;2119:6;2114:3;2107:4;2100:5;2096:16;2061:65;:::i;:::-;2151:29;2173:6;2151:29;:::i;:::-;2146:3;2142:39;2135:46;;1902:285;1810:377;;;;:::o;2193:313::-;2306:4;2344:2;2333:9;2329:18;2321:26;;2393:9;2387:4;2383:20;2379:1;2368:9;2364:17;2357:47;2421:78;2494:4;2485:6;2421:78;:::i;:::-;2413:86;;2193:313;;;;:::o;2512:126::-;2549:7;2589:42;2582:5;2578:54;2567:65;;2512:126;;;:::o;2644:96::-;2681:7;2710:24;2728:5;2710:24;:::i;:::-;2699:35;;2644:96;;;:::o;2746:122::-;2819:24;2837:5;2819:24;:::i;:::-;2812:5;2809:35;2799:63;;2858:1;2855;2848:12;2799:63;2746:122;:::o;2874:139::-;2920:5;2958:6;2945:20;2936:29;;2974:33;3001:5;2974:33;:::i;:::-;2874:139;;;;:::o;3019:474::-;3087:6;3095;3144:2;3132:9;3123:7;3119:23;3115:32;3112:119;;;3150:79;;:::i;:::-;3112:119;3270:1;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3241:117;3397:2;3423:53;3468:7;3459:6;3448:9;3444:22;3423:53;:::i;:::-;3413:63;;3368:118;3019:474;;;;;:::o;3499:90::-;3533:7;3576:5;3569:13;3562:21;3551:32;;3499:90;;;:::o;3595:109::-;3676:21;3691:5;3676:21;:::i;:::-;3671:3;3664:34;3595:109;;:::o;3710:210::-;3797:4;3835:2;3824:9;3820:18;3812:26;;3848:65;3910:1;3899:9;3895:17;3886:6;3848:65;:::i;:::-;3710:210;;;;:::o;3926:118::-;4013:24;4031:5;4013:24;:::i;:::-;4008:3;4001:37;3926:118;;:::o;4050:222::-;4143:4;4181:2;4170:9;4166:18;4158:26;;4194:71;4262:1;4251:9;4247:17;4238:6;4194:71;:::i;:::-;4050:222;;;;:::o;4278:619::-;4355:6;4363;4371;4420:2;4408:9;4399:7;4395:23;4391:32;4388:119;;;4426:79;;:::i;:::-;4388:119;4546:1;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4517:117;4673:2;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4644:118;4801:2;4827:53;4872:7;4863:6;4852:9;4848:22;4827:53;:::i;:::-;4817:63;;4772:118;4278:619;;;;;:::o;4903:86::-;4938:7;4978:4;4971:5;4967:16;4956:27;;4903:86;;;:::o;4995:112::-;5078:22;5094:5;5078:22;:::i;:::-;5073:3;5066:35;4995:112;;:::o;5113:214::-;5202:4;5240:2;5229:9;5225:18;5217:26;;5253:67;5317:1;5306:9;5302:17;5293:6;5253:67;:::i;:::-;5113:214;;;;:::o;5333:117::-;5442:1;5439;5432:12;5456:180;5504:77;5501:1;5494:88;5601:4;5598:1;5591:15;5625:4;5622:1;5615:15;5642:281;5725:27;5747:4;5725:27;:::i;:::-;5717:6;5713:40;5855:6;5843:10;5840:22;5819:18;5807:10;5804:34;5801:62;5798:88;;;5866:18;;:::i;:::-;5798:88;5906:10;5902:2;5895:22;5685:238;5642:281;;:::o;5929:129::-;5963:6;5990:20;;:::i;:::-;5980:30;;6019:33;6047:4;6039:6;6019:33;:::i;:::-;5929:129;;;:::o;6064:311::-;6141:4;6231:18;6223:6;6220:30;6217:56;;;6253:18;;:::i;:::-;6217:56;6303:4;6295:6;6291:17;6283:25;;6363:4;6357;6353:15;6345:23;;6064:311;;;:::o;6381:117::-;6490:1;6487;6480:12;6521:710;6617:5;6642:81;6658:64;6715:6;6658:64;:::i;:::-;6642:81;:::i;:::-;6633:90;;6743:5;6772:6;6765:5;6758:21;6806:4;6799:5;6795:16;6788:23;;6859:4;6851:6;6847:17;6839:6;6835:30;6888:3;6880:6;6877:15;6874:122;;;6907:79;;:::i;:::-;6874:122;7022:6;7005:220;7039:6;7034:3;7031:15;7005:220;;;7114:3;7143:37;7176:3;7164:10;7143:37;:::i;:::-;7138:3;7131:50;7210:4;7205:3;7201:14;7194:21;;7081:144;7065:4;7060:3;7056:14;7049:21;;7005:220;;;7009:21;6623:608;;6521:710;;;;;:::o;7254:370::-;7325:5;7374:3;7367:4;7359:6;7355:17;7351:27;7341:122;;7382:79;;:::i;:::-;7341:122;7499:6;7486:20;7524:94;7614:3;7606:6;7599:4;7591:6;7587:17;7524:94;:::i;:::-;7515:103;;7331:293;7254:370;;;;:::o;7630:539::-;7714:6;7763:2;7751:9;7742:7;7738:23;7734:32;7731:119;;;7769:79;;:::i;:::-;7731:119;7917:1;7906:9;7902:17;7889:31;7947:18;7939:6;7936:30;7933:117;;;7969:79;;:::i;:::-;7933:117;8074:78;8144:7;8135:6;8124:9;8120:22;8074:78;:::i;:::-;8064:88;;7860:302;7630:539;;;;:::o;8175:118::-;8262:24;8280:5;8262:24;:::i;:::-;8257:3;8250:37;8175:118;;:::o;8299:222::-;8392:4;8430:2;8419:9;8415:18;8407:26;;8443:71;8511:1;8500:9;8496:17;8487:6;8443:71;:::i;:::-;8299:222;;;;:::o;8527:329::-;8586:6;8635:2;8623:9;8614:7;8610:23;8606:32;8603:119;;;8641:79;;:::i;:::-;8603:119;8761:1;8786:53;8831:7;8822:6;8811:9;8807:22;8786:53;:::i;:::-;8776:63;;8732:117;8527:329;;;;:::o;8862:::-;8921:6;8970:2;8958:9;8949:7;8945:23;8941:32;8938:119;;;8976:79;;:::i;:::-;8938:119;9096:1;9121:53;9166:7;9157:6;9146:9;9142:22;9121:53;:::i;:::-;9111:63;;9067:117;8862:329;;;;:::o;9197:60::-;9225:3;9246:5;9239:12;;9197:60;;;:::o;9263:142::-;9313:9;9346:53;9364:34;9373:24;9391:5;9373:24;:::i;:::-;9364:34;:::i;:::-;9346:53;:::i;:::-;9333:66;;9263:142;;;:::o;9411:126::-;9461:9;9494:37;9525:5;9494:37;:::i;:::-;9481:50;;9411:126;;;:::o;9543:152::-;9619:9;9652:37;9683:5;9652:37;:::i;:::-;9639:50;;9543:152;;;:::o;9701:183::-;9814:63;9871:5;9814:63;:::i;:::-;9809:3;9802:76;9701:183;;:::o;9890:274::-;10009:4;10047:2;10036:9;10032:18;10024:26;;10060:97;10154:1;10143:9;10139:17;10130:6;10060:97;:::i;:::-;9890:274;;;;:::o;10170:116::-;10240:21;10255:5;10240:21;:::i;:::-;10233:5;10230:32;10220:60;;10276:1;10273;10266:12;10220:60;10170:116;:::o;10292:133::-;10335:5;10373:6;10360:20;10351:29;;10389:30;10413:5;10389:30;:::i;:::-;10292:133;;;;:::o;10431:468::-;10496:6;10504;10553:2;10541:9;10532:7;10528:23;10524:32;10521:119;;;10559:79;;:::i;:::-;10521:119;10679:1;10704:53;10749:7;10740:6;10729:9;10725:22;10704:53;:::i;:::-;10694:63;;10650:117;10806:2;10832:50;10874:7;10865:6;10854:9;10850:22;10832:50;:::i;:::-;10822:60;;10777:115;10431:468;;;;;:::o;10905:110::-;10956:7;10985:24;11003:5;10985:24;:::i;:::-;10974:35;;10905:110;;;:::o;11021:150::-;11108:38;11140:5;11108:38;:::i;:::-;11101:5;11098:49;11088:77;;11161:1;11158;11151:12;11088:77;11021:150;:::o;11177:167::-;11237:5;11275:6;11262:20;11253:29;;11291:47;11332:5;11291:47;:::i;:::-;11177:167;;;;:::o;11350:357::-;11423:6;11472:2;11460:9;11451:7;11447:23;11443:32;11440:119;;;11478:79;;:::i;:::-;11440:119;11598:1;11623:67;11682:7;11673:6;11662:9;11658:22;11623:67;:::i;:::-;11613:77;;11569:131;11350:357;;;;:::o;11713:474::-;11781:6;11789;11838:2;11826:9;11817:7;11813:23;11809:32;11806:119;;;11844:79;;:::i;:::-;11806:119;11964:1;11989:53;12034:7;12025:6;12014:9;12010:22;11989:53;:::i;:::-;11979:63;;11935:117;12091:2;12117:53;12162:7;12153:6;12142:9;12138:22;12117:53;:::i;:::-;12107:63;;12062:118;11713:474;;;;;:::o;12193:172::-;12333:24;12329:1;12321:6;12317:14;12310:48;12193:172;:::o;12371:366::-;12513:3;12534:67;12598:2;12593:3;12534:67;:::i;:::-;12527:74;;12610:93;12699:3;12610:93;:::i;:::-;12728:2;12723:3;12719:12;12712:19;;12371:366;;;:::o;12743:419::-;12909:4;12947:2;12936:9;12932:18;12924:26;;12996:9;12990:4;12986:20;12982:1;12971:9;12967:17;12960:47;13024:131;13150:4;13024:131;:::i;:::-;13016:139;;12743:419;;;:::o;13168:180::-;13216:77;13213:1;13206:88;13313:4;13310:1;13303:15;13337:4;13334:1;13327:15;13354:320;13398:6;13435:1;13429:4;13425:12;13415:22;;13482:1;13476:4;13472:12;13503:18;13493:81;;13559:4;13551:6;13547:17;13537:27;;13493:81;13621:2;13613:6;13610:14;13590:18;13587:38;13584:84;;13640:18;;:::i;:::-;13584:84;13405:269;13354:320;;;:::o;13680:180::-;13728:77;13725:1;13718:88;13825:4;13822:1;13815:15;13849:4;13846:1;13839:15;13866:180;13914:77;13911:1;13904:88;14011:4;14008:1;14001:15;14035:4;14032:1;14025:15;14052:191;14092:3;14111:20;14129:1;14111:20;:::i;:::-;14106:25;;14145:20;14163:1;14145:20;:::i;:::-;14140:25;;14188:1;14185;14181:9;14174:16;;14209:3;14206:1;14203:10;14200:36;;;14216:18;;:::i;:::-;14200:36;14052:191;;;;:::o;14249:410::-;14289:7;14312:20;14330:1;14312:20;:::i;:::-;14307:25;;14346:20;14364:1;14346:20;:::i;:::-;14341:25;;14401:1;14398;14394:9;14423:30;14441:11;14423:30;:::i;:::-;14412:41;;14602:1;14593:7;14589:15;14586:1;14583:22;14563:1;14556:9;14536:83;14513:139;;14632:18;;:::i;:::-;14513:139;14297:362;14249:410;;;;:::o;14665:180::-;14713:77;14710:1;14703:88;14810:4;14807:1;14800:15;14834:4;14831:1;14824:15;14851:185;14891:1;14908:20;14926:1;14908:20;:::i;:::-;14903:25;;14942:20;14960:1;14942:20;:::i;:::-;14937:25;;14981:1;14971:35;;14986:18;;:::i;:::-;14971:35;15028:1;15025;15021:9;15016:14;;14851:185;;;;:::o;15042:167::-;15182:19;15178:1;15170:6;15166:14;15159:43;15042:167;:::o;15215:366::-;15357:3;15378:67;15442:2;15437:3;15378:67;:::i;:::-;15371:74;;15454:93;15543:3;15454:93;:::i;:::-;15572:2;15567:3;15563:12;15556:19;;15215:366;;;:::o;15587:419::-;15753:4;15791:2;15780:9;15776:18;15768:26;;15840:9;15834:4;15830:20;15826:1;15815:9;15811:17;15804:47;15868:131;15994:4;15868:131;:::i;:::-;15860:139;;15587:419;;;:::o;16012:172::-;16152:24;16148:1;16140:6;16136:14;16129:48;16012:172;:::o;16190:366::-;16332:3;16353:67;16417:2;16412:3;16353:67;:::i;:::-;16346:74;;16429:93;16518:3;16429:93;:::i;:::-;16547:2;16542:3;16538:12;16531:19;;16190:366;;;:::o;16562:419::-;16728:4;16766:2;16755:9;16751:18;16743:26;;16815:9;16809:4;16805:20;16801:1;16790:9;16786:17;16779:47;16843:131;16969:4;16843:131;:::i;:::-;16835:139;;16562:419;;;:::o;16987:244::-;17127:34;17123:1;17115:6;17111:14;17104:58;17196:27;17191:2;17183:6;17179:15;17172:52;16987:244;:::o;17237:366::-;17379:3;17400:67;17464:2;17459:3;17400:67;:::i;:::-;17393:74;;17476:93;17565:3;17476:93;:::i;:::-;17594:2;17589:3;17585:12;17578:19;;17237:366;;;:::o;17609:419::-;17775:4;17813:2;17802:9;17798:18;17790:26;;17862:9;17856:4;17852:20;17848:1;17837:9;17833:17;17826:47;17890:131;18016:4;17890:131;:::i;:::-;17882:139;;17609:419;;;:::o;18034:224::-;18174:34;18170:1;18162:6;18158:14;18151:58;18243:7;18238:2;18230:6;18226:15;18219:32;18034:224;:::o;18264:366::-;18406:3;18427:67;18491:2;18486:3;18427:67;:::i;:::-;18420:74;;18503:93;18592:3;18503:93;:::i;:::-;18621:2;18616:3;18612:12;18605:19;;18264:366;;;:::o;18636:419::-;18802:4;18840:2;18829:9;18825:18;18817:26;;18889:9;18883:4;18879:20;18875:1;18864:9;18860:17;18853:47;18917:131;19043:4;18917:131;:::i;:::-;18909:139;;18636:419;;;:::o;19061:173::-;19201:25;19197:1;19189:6;19185:14;19178:49;19061:173;:::o;19240:366::-;19382:3;19403:67;19467:2;19462:3;19403:67;:::i;:::-;19396:74;;19479:93;19568:3;19479:93;:::i;:::-;19597:2;19592:3;19588:12;19581:19;;19240:366;;;:::o;19612:419::-;19778:4;19816:2;19805:9;19801:18;19793:26;;19865:9;19859:4;19855:20;19851:1;19840:9;19836:17;19829:47;19893:131;20019:4;19893:131;:::i;:::-;19885:139;;19612:419;;;:::o;20037:143::-;20094:5;20125:6;20119:13;20110:22;;20141:33;20168:5;20141:33;:::i;:::-;20037:143;;;;:::o;20186:351::-;20256:6;20305:2;20293:9;20284:7;20280:23;20276:32;20273:119;;;20311:79;;:::i;:::-;20273:119;20431:1;20456:64;20512:7;20503:6;20492:9;20488:22;20456:64;:::i;:::-;20446:74;;20402:128;20186:351;;;;:::o;20543:332::-;20664:4;20702:2;20691:9;20687:18;20679:26;;20715:71;20783:1;20772:9;20768:17;20759:6;20715:71;:::i;:::-;20796:72;20864:2;20853:9;20849:18;20840:6;20796:72;:::i;:::-;20543:332;;;;;:::o;20881:85::-;20926:7;20955:5;20944:16;;20881:85;;;:::o;20972:158::-;21030:9;21063:61;21081:42;21090:32;21116:5;21090:32;:::i;:::-;21081:42;:::i;:::-;21063:61;:::i;:::-;21050:74;;20972:158;;;:::o;21136:147::-;21231:45;21270:5;21231:45;:::i;:::-;21226:3;21219:58;21136:147;;:::o;21289:807::-;21538:4;21576:3;21565:9;21561:19;21553:27;;21590:71;21658:1;21647:9;21643:17;21634:6;21590:71;:::i;:::-;21671:72;21739:2;21728:9;21724:18;21715:6;21671:72;:::i;:::-;21753:80;21829:2;21818:9;21814:18;21805:6;21753:80;:::i;:::-;21843;21919:2;21908:9;21904:18;21895:6;21843:80;:::i;:::-;21933:73;22001:3;21990:9;21986:19;21977:6;21933:73;:::i;:::-;22016;22084:3;22073:9;22069:19;22060:6;22016:73;:::i;:::-;21289:807;;;;;;;;;:::o;22102:143::-;22159:5;22190:6;22184:13;22175:22;;22206:33;22233:5;22206:33;:::i;:::-;22102:143;;;;:::o;22251:663::-;22339:6;22347;22355;22404:2;22392:9;22383:7;22379:23;22375:32;22372:119;;;22410:79;;:::i;:::-;22372:119;22530:1;22555:64;22611:7;22602:6;22591:9;22587:22;22555:64;:::i;:::-;22545:74;;22501:128;22668:2;22694:64;22750:7;22741:6;22730:9;22726:22;22694:64;:::i;:::-;22684:74;;22639:129;22807:2;22833:64;22889:7;22880:6;22869:9;22865:22;22833:64;:::i;:::-;22823:74;;22778:129;22251:663;;;;;:::o;22920:332::-;23041:4;23079:2;23068:9;23064:18;23056:26;;23092:71;23160:1;23149:9;23145:17;23136:6;23092:71;:::i;:::-;23173:72;23241:2;23230:9;23226:18;23217:6;23173:72;:::i;:::-;22920:332;;;;;:::o;23258:137::-;23312:5;23343:6;23337:13;23328:22;;23359:30;23383:5;23359:30;:::i;:::-;23258:137;;;;:::o;23401:345::-;23468:6;23517:2;23505:9;23496:7;23492:23;23488:32;23485:119;;;23523:79;;:::i;:::-;23485:119;23643:1;23668:61;23721:7;23712:6;23701:9;23697:22;23668:61;:::i;:::-;23658:71;;23614:125;23401:345;;;;:::o;23752:351::-;23822:6;23871:2;23859:9;23850:7;23846:23;23842:32;23839:119;;;23877:79;;:::i;:::-;23839:119;23997:1;24022:64;24078:7;24069:6;24058:9;24054:22;24022:64;:::i;:::-;24012:74;;23968:128;23752:351;;;;:::o;24109:174::-;24249:26;24245:1;24237:6;24233:14;24226:50;24109:174;:::o;24289:366::-;24431:3;24452:67;24516:2;24511:3;24452:67;:::i;:::-;24445:74;;24528:93;24617:3;24528:93;:::i;:::-;24646:2;24641:3;24637:12;24630:19;;24289:366;;;:::o;24661:419::-;24827:4;24865:2;24854:9;24850:18;24842:26;;24914:9;24908:4;24904:20;24900:1;24889:9;24885:17;24878:47;24942:131;25068:4;24942:131;:::i;:::-;24934:139;;24661:419;;;:::o;25086:225::-;25226:34;25222:1;25214:6;25210:14;25203:58;25295:8;25290:2;25282:6;25278:15;25271:33;25086:225;:::o;25317:366::-;25459:3;25480:67;25544:2;25539:3;25480:67;:::i;:::-;25473:74;;25556:93;25645:3;25556:93;:::i;:::-;25674:2;25669:3;25665:12;25658:19;;25317:366;;;:::o;25689:419::-;25855:4;25893:2;25882:9;25878:18;25870:26;;25942:9;25936:4;25932:20;25928:1;25917:9;25913:17;25906:47;25970:131;26096:4;25970:131;:::i;:::-;25962:139;;25689:419;;;:::o;26114:182::-;26254:34;26250:1;26242:6;26238:14;26231:58;26114:182;:::o;26302:366::-;26444:3;26465:67;26529:2;26524:3;26465:67;:::i;:::-;26458:74;;26541:93;26630:3;26541:93;:::i;:::-;26659:2;26654:3;26650:12;26643:19;;26302:366;;;:::o;26674:419::-;26840:4;26878:2;26867:9;26863:18;26855:26;;26927:9;26921:4;26917:20;26913:1;26902:9;26898:17;26891:47;26955:131;27081:4;26955:131;:::i;:::-;26947:139;;26674:419;;;:::o;27099:223::-;27239:34;27235:1;27227:6;27223:14;27216:58;27308:6;27303:2;27295:6;27291:15;27284:31;27099:223;:::o;27328:366::-;27470:3;27491:67;27555:2;27550:3;27491:67;:::i;:::-;27484:74;;27567:93;27656:3;27567:93;:::i;:::-;27685:2;27680:3;27676:12;27669:19;;27328:366;;;:::o;27700:419::-;27866:4;27904:2;27893:9;27889:18;27881:26;;27953:9;27947:4;27943:20;27939:1;27928:9;27924:17;27917:47;27981:131;28107:4;27981:131;:::i;:::-;27973:139;;27700:419;;;:::o;28125:221::-;28265:34;28261:1;28253:6;28249:14;28242:58;28334:4;28329:2;28321:6;28317:15;28310:29;28125:221;:::o;28352:366::-;28494:3;28515:67;28579:2;28574:3;28515:67;:::i;:::-;28508:74;;28591:93;28680:3;28591:93;:::i;:::-;28709:2;28704:3;28700:12;28693:19;;28352:366;;;:::o;28724:419::-;28890:4;28928:2;28917:9;28913:18;28905:26;;28977:9;28971:4;28967:20;28963:1;28952:9;28948:17;28941:47;29005:131;29131:4;29005:131;:::i;:::-;28997:139;;28724:419;;;:::o;29149:179::-;29289:31;29285:1;29277:6;29273:14;29266:55;29149:179;:::o;29334:366::-;29476:3;29497:67;29561:2;29556:3;29497:67;:::i;:::-;29490:74;;29573:93;29662:3;29573:93;:::i;:::-;29691:2;29686:3;29682:12;29675:19;;29334:366;;;:::o;29706:419::-;29872:4;29910:2;29899:9;29895:18;29887:26;;29959:9;29953:4;29949:20;29945:1;29934:9;29930:17;29923:47;29987:131;30113:4;29987:131;:::i;:::-;29979:139;;29706:419;;;:::o;30131:224::-;30271:34;30267:1;30259:6;30255:14;30248:58;30340:7;30335:2;30327:6;30323:15;30316:32;30131:224;:::o;30361:366::-;30503:3;30524:67;30588:2;30583:3;30524:67;:::i;:::-;30517:74;;30600:93;30689:3;30600:93;:::i;:::-;30718:2;30713:3;30709:12;30702:19;;30361:366;;;:::o;30733:419::-;30899:4;30937:2;30926:9;30922:18;30914:26;;30986:9;30980:4;30976:20;30972:1;30961:9;30957:17;30950:47;31014:131;31140:4;31014:131;:::i;:::-;31006:139;;30733:419;;;:::o;31158:222::-;31298:34;31294:1;31286:6;31282:14;31275:58;31367:5;31362:2;31354:6;31350:15;31343:30;31158:222;:::o;31386:366::-;31528:3;31549:67;31613:2;31608:3;31549:67;:::i;:::-;31542:74;;31625:93;31714:3;31625:93;:::i;:::-;31743:2;31738:3;31734:12;31727:19;;31386:366;;;:::o;31758:419::-;31924:4;31962:2;31951:9;31947:18;31939:26;;32011:9;32005:4;32001:20;31997:1;31986:9;31982:17;31975:47;32039:131;32165:4;32039:131;:::i;:::-;32031:139;;31758:419;;;:::o;32183:172::-;32323:24;32319:1;32311:6;32307:14;32300:48;32183:172;:::o;32361:366::-;32503:3;32524:67;32588:2;32583:3;32524:67;:::i;:::-;32517:74;;32600:93;32689:3;32600:93;:::i;:::-;32718:2;32713:3;32709:12;32702:19;;32361:366;;;:::o;32733:419::-;32899:4;32937:2;32926:9;32922:18;32914:26;;32986:9;32980:4;32976:20;32972:1;32961:9;32957:17;32950:47;33014:131;33140:4;33014:131;:::i;:::-;33006:139;;32733:419;;;:::o;33158:240::-;33298:34;33294:1;33286:6;33282:14;33275:58;33367:23;33362:2;33354:6;33350:15;33343:48;33158:240;:::o;33404:366::-;33546:3;33567:67;33631:2;33626:3;33567:67;:::i;:::-;33560:74;;33643:93;33732:3;33643:93;:::i;:::-;33761:2;33756:3;33752:12;33745:19;;33404:366;;;:::o;33776:419::-;33942:4;33980:2;33969:9;33965:18;33957:26;;34029:9;34023:4;34019:20;34015:1;34004:9;34000:17;33993:47;34057:131;34183:4;34057:131;:::i;:::-;34049:139;;33776:419;;;:::o;34201:169::-;34341:21;34337:1;34329:6;34325:14;34318:45;34201:169;:::o;34376:366::-;34518:3;34539:67;34603:2;34598:3;34539:67;:::i;:::-;34532:74;;34615:93;34704:3;34615:93;:::i;:::-;34733:2;34728:3;34724:12;34717:19;;34376:366;;;:::o;34748:419::-;34914:4;34952:2;34941:9;34937:18;34929:26;;35001:9;34995:4;34991:20;34987:1;34976:9;34972:17;34965:47;35029:131;35155:4;35029:131;:::i;:::-;35021:139;;34748:419;;;:::o;35173:241::-;35313:34;35309:1;35301:6;35297:14;35290:58;35382:24;35377:2;35369:6;35365:15;35358:49;35173:241;:::o;35420:366::-;35562:3;35583:67;35647:2;35642:3;35583:67;:::i;:::-;35576:74;;35659:93;35748:3;35659:93;:::i;:::-;35777:2;35772:3;35768:12;35761:19;;35420:366;;;:::o;35792:419::-;35958:4;35996:2;35985:9;35981:18;35973:26;;36045:9;36039:4;36035:20;36031:1;36020:9;36016:17;36009:47;36073:131;36199:4;36073:131;:::i;:::-;36065:139;;35792:419;;;:::o;36217:194::-;36257:4;36277:20;36295:1;36277:20;:::i;:::-;36272:25;;36311:20;36329:1;36311:20;:::i;:::-;36306:25;;36355:1;36352;36348:9;36340:17;;36379:1;36373:4;36370:11;36367:37;;;36384:18;;:::i;:::-;36367:37;36217:194;;;;:::o;36417:114::-;36484:6;36518:5;36512:12;36502:22;;36417:114;;;:::o;36537:184::-;36636:11;36670:6;36665:3;36658:19;36710:4;36705:3;36701:14;36686:29;;36537:184;;;;:::o;36727:132::-;36794:4;36817:3;36809:11;;36847:4;36842:3;36838:14;36830:22;;36727:132;;;:::o;36865:108::-;36942:24;36960:5;36942:24;:::i;:::-;36937:3;36930:37;36865:108;;:::o;36979:179::-;37048:10;37069:46;37111:3;37103:6;37069:46;:::i;:::-;37147:4;37142:3;37138:14;37124:28;;36979:179;;;;:::o;37164:113::-;37234:4;37266;37261:3;37257:14;37249:22;;37164:113;;;:::o;37313:732::-;37432:3;37461:54;37509:5;37461:54;:::i;:::-;37531:86;37610:6;37605:3;37531:86;:::i;:::-;37524:93;;37641:56;37691:5;37641:56;:::i;:::-;37720:7;37751:1;37736:284;37761:6;37758:1;37755:13;37736:284;;;37837:6;37831:13;37864:63;37923:3;37908:13;37864:63;:::i;:::-;37857:70;;37950:60;38003:6;37950:60;:::i;:::-;37940:70;;37796:224;37783:1;37780;37776:9;37771:14;;37736:284;;;37740:14;38036:3;38029:10;;37437:608;;;37313:732;;;;:::o;38051:831::-;38314:4;38352:3;38341:9;38337:19;38329:27;;38366:71;38434:1;38423:9;38419:17;38410:6;38366:71;:::i;:::-;38447:80;38523:2;38512:9;38508:18;38499:6;38447:80;:::i;:::-;38574:9;38568:4;38564:20;38559:2;38548:9;38544:18;38537:48;38602:108;38705:4;38696:6;38602:108;:::i;:::-;38594:116;;38720:72;38788:2;38777:9;38773:18;38764:6;38720:72;:::i;:::-;38802:73;38870:3;38859:9;38855:19;38846:6;38802:73;:::i;:::-;38051:831;;;;;;;;:::o;38888:223::-;39028:34;39024:1;39016:6;39012:14;39005:58;39097:6;39092:2;39084:6;39080:15;39073:31;38888:223;:::o;39117:366::-;39259:3;39280:67;39344:2;39339:3;39280:67;:::i;:::-;39273:74;;39356:93;39445:3;39356:93;:::i;:::-;39474:2;39469:3;39465:12;39458:19;;39117:366;;;:::o;39489:419::-;39655:4;39693:2;39682:9;39678:18;39670:26;;39742:9;39736:4;39732:20;39728:1;39717:9;39713:17;39706:47;39770:131;39896:4;39770:131;:::i;:::-;39762:139;;39489:419;;;:::o;39914:225::-;40054:34;40050:1;40042:6;40038:14;40031:58;40123:8;40118:2;40110:6;40106:15;40099:33;39914:225;:::o;40145:366::-;40287:3;40308:67;40372:2;40367:3;40308:67;:::i;:::-;40301:74;;40384:93;40473:3;40384:93;:::i;:::-;40502:2;40497:3;40493:12;40486:19;;40145:366;;;:::o;40517:419::-;40683:4;40721:2;40710:9;40706:18;40698:26;;40770:9;40764:4;40760:20;40756:1;40745:9;40741:17;40734:47;40798:131;40924:4;40798:131;:::i;:::-;40790:139;;40517:419;;;:::o

Swarm Source

ipfs://99a10c5c031c08bdb3adcf3ba63bc52fe5517a44b92068d5a6094333b3e2f4e5
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.