ETH Price: $3,626.28 (-6.86%)

Token

ERC-20: SHUFFLE ($SHUFFLE)
 

Overview

Max Total Supply

1,000,000,000 $SHUFFLE

Holders

62

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0 $SHUFFLE

Value
$0.00
0xe56796e325734958cff98e3071a07a2f28cfd124
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:
Shuffle

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/*
Telegram: https://t.me/shuffleerc
Bot: https://t.me/shuflleerc_bot
Twitter: https://x.com/shuffleboterc
Website: https://shuffleerc.com
Whitepaper: https://shufflebot.gitbook.io/shufflebot
*/

pragma solidity ^0.8.25;

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 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 swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

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

    function transfer(address recipient, uint256 amount) external returns (bool);

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

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

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

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

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

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

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

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

    function renounceOwnership() public virtual onlyOwner {
        _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);
    }
}

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

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

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

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

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, 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;
        _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 _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}

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

contract Shuffle is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
    address public constant deadAddress = address(0xdead);

    bool private swapping;

    address private marketingWallet;

    uint256 public maxTransactionAmount;
    uint256 public swapTokensAtAmount;
    uint256 public maxWallet;
    uint256 public maxSwapAmount;

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

    uint256 public buyTotalFees;

    uint256 public sellTotalFees;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) public _isExcludedMaxTransactionAmount;

    mapping(address => bool) public automatedMarketMakerPairs;

    mapping(uint256 => uint256) private blockSwaps;

    event UpdateUniswapV2Router(address indexed newAddress, address indexed oldAddress);

    event ExcludeFromFees(address indexed account, bool isExcluded);

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    event marketingWalletUpdated(address indexed newWallet, address indexed oldWallet);

    event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity);

    constructor() ERC20("SHUFFLE", "$SHUFFLE") {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;

        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);

        uint256 totalSupply = 1_000_000_000 * 1e18;

        maxTransactionAmount = 20_000_000 * 1e18;
        maxWallet = 20_000_000 * 1e18;
        swapTokensAtAmount = 100_000 * 1e18;
        maxSwapAmount = 10_000_000 * 1e18;

        sellTotalFees = 30;
        buyTotalFees = 30;

        marketingWallet = msg.sender;

        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);

        _mint(msg.sender, totalSupply);
    }

    receive() external payable {}

    function LaunchShuffle() external payable onlyOwner {
        tradingActive = true;
        swapEnabled = true;
    }

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

    function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner {
        swapTokensAtAmount = newAmount * (10 ** 18);
    }

    function updateMaxSwap(uint256 newAmount) external onlyOwner {
        maxSwapAmount = newAmount * (10 ** 18);
    }

    function updateMaxTxnAmount(uint256 newNum) external onlyOwner {
        require(newNum >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set maxTransactionAmount lower than 0.1%");
        maxTransactionAmount = newNum * (10 ** 18);
    }

    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(newNum >= ((totalSupply() * 5) / 1000) / 1e18, "Cannot set maxWallet lower than 0.5%");
        maxWallet = newNum * (10 ** 18);
    }

    function whitelistContract(address _whitelist, bool isWL) public onlyOwner {
        _isExcludedMaxTransactionAmount[_whitelist] = isWL;

        _isExcludedFromFees[_whitelist] = isWL;
    }

    function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function updateSwapEnabled(bool enabled) external onlyOwner {
        swapEnabled = enabled;
    }

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

    function manualswap(uint256 amount) external {
        require(_msgSender() == marketingWallet);
        require(amount <= balanceOf(address(this)) && amount > 0, "Wrong amount");
        swapTokensForEth(amount);
    }

    function manualsend() external {
        bool success;
        (success,) = address(marketingWallet).call{value: address(this).balance}("");
    }

    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 updateBuyFees(uint256 _marketingFee) external onlyOwner {
        buyTotalFees = _marketingFee;
    }

    function updateSellFees(uint256 _marketingFee) external onlyOwner {
        sellTotalFees = _marketingFee;
    }

    function updateFees(uint256 _buy, uint256 _sell) external onlyOwner {
        buyTotalFees = _buy;
        sellTotalFees = _sell;
    }

    function updateMarketingWallet(address newMarketingWallet) external onlyOwner {
        emit marketingWalletUpdated(newMarketingWallet, marketingWallet);
        marketingWallet = newMarketingWallet;
    }

    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 (limitsInEffect) {
            if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {
                if (!tradingActive) {
                    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 >= swapTokensAtAmount;
        if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            if (blockSwaps[block.number] < 2) {
                swapping = true;
                swapBack();
                swapping = false;
                blockSwaps[block.number] = blockSwaps[block.number] + 1;
            }
        }

        bool takeFee = !swapping;

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

        uint256 fees = 0;
        if (takeFee) {
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = amount.mul(sellTotalFees).div(100);
            }
            else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = amount.mul(buyTotalFees).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,
            address(this),
            block.timestamp
        );
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        bool success;

        if (contractBalance == 0) {
            return;
        }

        if (contractBalance > maxSwapAmount) {
            contractBalance = maxSwapAmount;
        }

        uint256 amountToSwapForETH = contractBalance;
        swapTokensForEth(amountToSwapForETH);
        uint256 totalETH = address(this).balance;
        (success,) = address(marketingWallet).call{value: totalETH}("");
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"marketingWalletUpdated","type":"event"},{"inputs":[],"name":"LaunchShuffle","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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":"limitsAreOver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","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":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateMaxSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_whitelist","type":"address"},{"internalType":"bool","name":"isWL","type":"bool"}],"name":"whitelistContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526001600b5f6101000a81548160ff0219169083151502179055505f600b60016101000a81548160ff0219169083151502179055505f600b60026101000a81548160ff02191690831515021790555034801561005d575f80fd5b506040518060400160405280600781526020017f53485546464c45000000000000000000000000000000000000000000000000008152506040518060400160405280600881526020017f2453485546464c4500000000000000000000000000000000000000000000000081525081600390816100d99190610c38565b5080600490816100e99190610c38565b5050506101086100fd6104f360201b60201c565b6104fa60201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90506101318160016105bd60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d29190610d65565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610237573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061025b9190610d65565b6040518363ffffffff1660e01b8152600401610278929190610d9f565b6020604051808303815f875af1158015610294573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102b89190610d65565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506102fe60a05160016105bd60201b60201c565b61031160a051600161069d60201b60201c565b60a05173ffffffffffffffffffffffffffffffffffffffff1663095ea7b36080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610370929190610dd5565b6020604051808303815f875af115801561038c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103b09190610e31565b505f6b033b2e3c9fd0803ce800000090506a108b2a2c280290940000006007819055506a108b2a2c2802909400000060098190555069152d02c7e14af68000006008819055506a084595161401484a000000600a81905550601e600d81905550601e600c819055503360065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061047661046961073b60201b60201c565b600161076360201b60201c565b61048730600161076360201b60201c565b61049a61dead600161076360201b60201c565b6104b86104ab61073b60201b60201c565b60016105bd60201b60201c565b6104c93060016105bd60201b60201c565b6104dc61dead60016105bd60201b60201c565b6104ec338261089160201b60201c565b5050610fdd565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6105cb6104f360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166105ef61073b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614610645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063c90610eb6565b60405180910390fd5b80600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b8060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6107716104f360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1661079561073b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146107eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e290610eb6565b60405180910390fd5b80600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516108859190610ee3565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f690610f46565b60405180910390fd5b6109105f83836109f460201b60201c565b8060025f8282546109219190610f91565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546109739190610f91565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516109d79190610fc4565b60405180910390a36109f05f83836109f960201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610a7957607f821691505b602082108103610a8c57610a8b610a35565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610aee7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610ab3565b610af88683610ab3565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610b3c610b37610b3284610b10565b610b19565b610b10565b9050919050565b5f819050919050565b610b5583610b22565b610b69610b6182610b43565b848454610abf565b825550505050565b5f90565b610b7d610b71565b610b88818484610b4c565b505050565b5b81811015610bab57610ba05f82610b75565b600181019050610b8e565b5050565b601f821115610bf057610bc181610a92565b610bca84610aa4565b81016020851015610bd9578190505b610bed610be585610aa4565b830182610b8d565b50505b505050565b5f82821c905092915050565b5f610c105f1984600802610bf5565b1980831691505092915050565b5f610c288383610c01565b9150826002028217905092915050565b610c41826109fe565b67ffffffffffffffff811115610c5a57610c59610a08565b5b610c648254610a62565b610c6f828285610baf565b5f60209050601f831160018114610ca0575f8415610c8e578287015190505b610c988582610c1d565b865550610cff565b601f198416610cae86610a92565b5f5b82811015610cd557848901518255600182019150602085019450602081019050610cb0565b86831015610cf25784890151610cee601f891682610c01565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610d3482610d0b565b9050919050565b610d4481610d2a565b8114610d4e575f80fd5b50565b5f81519050610d5f81610d3b565b92915050565b5f60208284031215610d7a57610d79610d07565b5b5f610d8784828501610d51565b91505092915050565b610d9981610d2a565b82525050565b5f604082019050610db25f830185610d90565b610dbf6020830184610d90565b9392505050565b610dcf81610b10565b82525050565b5f604082019050610de85f830185610d90565b610df56020830184610dc6565b9392505050565b5f8115159050919050565b610e1081610dfc565b8114610e1a575f80fd5b50565b5f81519050610e2b81610e07565b92915050565b5f60208284031215610e4657610e45610d07565b5b5f610e5384828501610e1d565b91505092915050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f610ea0602083610e5c565b9150610eab82610e6c565b602082019050919050565b5f6020820190508181035f830152610ecd81610e94565b9050919050565b610edd81610dfc565b82525050565b5f602082019050610ef65f830184610ed4565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610f30601f83610e5c565b9150610f3b82610efc565b602082019050919050565b5f6020820190508181035f830152610f5d81610f24565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610f9b82610b10565b9150610fa683610b10565b9250828201905080821115610fbe57610fbd610f64565b5b92915050565b5f602082019050610fd75f830184610dc6565b92915050565b60805160a05161425261101a5f395f8181610f06015261152501525f8181610b6f01528181612bad01528181612c8c0152612cb301526142525ff3fe608060405260043610610275575f3560e01c8063881dce601161014e578063c0246668116100c0578063d85ba06311610079578063d85ba06314610900578063dd62ed3e1461092a578063e2f4560514610966578063eba4c33314610990578063f2fde38b146109b8578063f8b45b05146109e05761027c565b8063c02466681461081e578063c18bc19514610846578063c306f0ab1461086e578063c8c8ebe414610884578063cce987d4146108ae578063d257b34f146108d85761027c565b8063a457c2d711610112578063a457c2d7146106f0578063a672990c1461072c578063a9059cbb14610754578063aacebbe314610790578063b62496f5146107b8578063bbc0c742146107f45761027c565b8063881dce60146106245780638da5cb5b1461064c578063924de9b71461067657806395d89b411461069e5780639a7a23d6146106c85761027c565b806345bcde42116101e75780636ddd1713116101ab5780636ddd1713146105425780636fc3eaec1461056c57806370a0823114610582578063715018a6146105be57806371fc4688146105d45780637571336a146105fc5761027c565b806345bcde421461049257806349bd5a5e1461049c5780634a62bb65146104c65780636a486a8e146104f05780636db794371461051a5761027c565b806318160ddd1161023957806318160ddd14610374578063203e727e1461039e57806323b872dd146103c657806327c8f83514610402578063313ce5671461042c57806339509351146104565761027c565b806306fdde0314610280578063095ea7b3146102aa57806310d5de53146102e6578063150074a3146103225780631694505e1461034a5761027c565b3661027c57005b5f80fd5b34801561028b575f80fd5b50610294610a0a565b6040516102a191906131c7565b60405180910390f35b3480156102b5575f80fd5b506102d060048036038101906102cb9190613278565b610a9a565b6040516102dd91906132d0565b60405180910390f35b3480156102f1575f80fd5b5061030c600480360381019061030791906132e9565b610ab7565b60405161031991906132d0565b60405180910390f35b34801561032d575f80fd5b5061034860048036038101906103439190613314565b610ad4565b005b348015610355575f80fd5b5061035e610b6d565b60405161036b919061339a565b60405180910390f35b34801561037f575f80fd5b50610388610b91565b60405161039591906133c2565b60405180910390f35b3480156103a9575f80fd5b506103c460048036038101906103bf9190613314565b610b9a565b005b3480156103d1575f80fd5b506103ec60048036038101906103e791906133db565b610ca9565b6040516103f991906132d0565b60405180910390f35b34801561040d575f80fd5b50610416610d9b565b604051610423919061343a565b60405180910390f35b348015610437575f80fd5b50610440610da1565b60405161044d919061346e565b60405180910390f35b348015610461575f80fd5b5061047c60048036038101906104779190613278565b610da9565b60405161048991906132d0565b60405180910390f35b61049a610e50565b005b3480156104a7575f80fd5b506104b0610f04565b6040516104bd919061343a565b60405180910390f35b3480156104d1575f80fd5b506104da610f28565b6040516104e791906132d0565b60405180910390f35b3480156104fb575f80fd5b50610504610f3a565b60405161051191906133c2565b60405180910390f35b348015610525575f80fd5b50610540600480360381019061053b9190613487565b610f40565b005b34801561054d575f80fd5b50610556610fce565b60405161056391906132d0565b60405180910390f35b348015610577575f80fd5b50610580610fe1565b005b34801561058d575f80fd5b506105a860048036038101906105a391906132e9565b61106f565b6040516105b591906133c2565b60405180910390f35b3480156105c9575f80fd5b506105d26110b4565b005b3480156105df575f80fd5b506105fa60048036038101906105f59190613314565b61113b565b005b348015610607575f80fd5b50610622600480360381019061061d91906134ef565b6111c1565b005b34801561062f575f80fd5b5061064a60048036038101906106459190613314565b611295565b005b348015610657575f80fd5b50610660611356565b60405161066d919061343a565b60405180910390f35b348015610681575f80fd5b5061069c6004803603810190610697919061352d565b61137e565b005b3480156106a9575f80fd5b506106b2611417565b6040516106bf91906131c7565b60405180910390f35b3480156106d3575f80fd5b506106ee60048036038101906106e991906134ef565b6114a7565b005b3480156106fb575f80fd5b5061071660048036038101906107119190613278565b6115bf565b60405161072391906132d0565b60405180910390f35b348015610737575f80fd5b50610752600480360381019061074d91906134ef565b6116a5565b005b34801561075f575f80fd5b5061077a60048036038101906107759190613278565b6117cd565b60405161078791906132d0565b60405180910390f35b34801561079b575f80fd5b506107b660048036038101906107b191906132e9565b6117ea565b005b3480156107c3575f80fd5b506107de60048036038101906107d991906132e9565b611924565b6040516107eb91906132d0565b60405180910390f35b3480156107ff575f80fd5b50610808611941565b60405161081591906132d0565b60405180910390f35b348015610829575f80fd5b50610844600480360381019061083f91906134ef565b611954565b005b348015610851575f80fd5b5061086c60048036038101906108679190613314565b611a76565b005b348015610879575f80fd5b50610882611b85565b005b34801561088f575f80fd5b50610898611c1c565b6040516108a591906133c2565b60405180910390f35b3480156108b9575f80fd5b506108c2611c22565b6040516108cf91906133c2565b60405180910390f35b3480156108e3575f80fd5b506108fe60048036038101906108f99190613314565b611c28565b005b34801561090b575f80fd5b50610914611cc1565b60405161092191906133c2565b60405180910390f35b348015610935575f80fd5b50610950600480360381019061094b9190613558565b611cc7565b60405161095d91906133c2565b60405180910390f35b348015610971575f80fd5b5061097a611d49565b60405161098791906133c2565b60405180910390f35b34801561099b575f80fd5b506109b660048036038101906109b19190613314565b611d4f565b005b3480156109c3575f80fd5b506109de60048036038101906109d991906132e9565b611dd5565b005b3480156109eb575f80fd5b506109f4611ecb565b604051610a0191906133c2565b60405180910390f35b606060038054610a19906135c3565b80601f0160208091040260200160405190810160405280929190818152602001828054610a45906135c3565b8015610a905780601f10610a6757610100808354040283529160200191610a90565b820191905f5260205f20905b815481529060010190602001808311610a7357829003601f168201915b5050505050905090565b5f610aad610aa6611ed1565b8484611ed8565b6001905092915050565b600f602052805f5260405f205f915054906101000a900460ff1681565b610adc611ed1565b73ffffffffffffffffffffffffffffffffffffffff16610afa611356565b73ffffffffffffffffffffffffffffffffffffffff1614610b50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b479061363d565b60405180910390fd5b670de0b6b3a764000081610b649190613688565b600a8190555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f600254905090565b610ba2611ed1565b73ffffffffffffffffffffffffffffffffffffffff16610bc0611356565b73ffffffffffffffffffffffffffffffffffffffff1614610c16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0d9061363d565b60405180910390fd5b670de0b6b3a76400006103e86001610c2c610b91565b610c369190613688565b610c4091906136f6565b610c4a91906136f6565b811015610c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8390613796565b60405180910390fd5b670de0b6b3a764000081610ca09190613688565b60078190555050565b5f610cb584848461209b565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610cfc611ed1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610d7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7290613824565b60405180910390fd5b610d8f85610d87611ed1565b858403611ed8565b60019150509392505050565b61dead81565b5f6012905090565b5f610e46610db5611ed1565b848460015f610dc2611ed1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610e419190613842565b611ed8565b6001905092915050565b610e58611ed1565b73ffffffffffffffffffffffffffffffffffffffff16610e76611356565b73ffffffffffffffffffffffffffffffffffffffff1614610ecc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec39061363d565b60405180910390fd5b6001600b60016101000a81548160ff0219169083151502179055506001600b60026101000a81548160ff021916908315150217905550565b7f000000000000000000000000000000000000000000000000000000000000000081565b600b5f9054906101000a900460ff1681565b600d5481565b610f48611ed1565b73ffffffffffffffffffffffffffffffffffffffff16610f66611356565b73ffffffffffffffffffffffffffffffffffffffff1614610fbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb39061363d565b60405180910390fd5b81600c8190555080600d819055505050565b600b60029054906101000a900460ff1681565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051611027906138a2565b5f6040518083038185875af1925050503d805f8114611061576040519150601f19603f3d011682016040523d82523d5f602084013e611066565b606091505b50508091505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6110bc611ed1565b73ffffffffffffffffffffffffffffffffffffffff166110da611356565b73ffffffffffffffffffffffffffffffffffffffff1614611130576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111279061363d565b60405180910390fd5b6111395f612a4d565b565b611143611ed1565b73ffffffffffffffffffffffffffffffffffffffff16611161611356565b73ffffffffffffffffffffffffffffffffffffffff16146111b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ae9061363d565b60405180910390fd5b80600c8190555050565b6111c9611ed1565b73ffffffffffffffffffffffffffffffffffffffff166111e7611356565b73ffffffffffffffffffffffffffffffffffffffff161461123d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112349061363d565b60405180910390fd5b80600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112d5611ed1565b73ffffffffffffffffffffffffffffffffffffffff16146112f4575f80fd5b6112fd3061106f565b811115801561130b57505f81115b61134a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134190613900565b60405180910390fd5b61135381612b10565b50565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611386611ed1565b73ffffffffffffffffffffffffffffffffffffffff166113a4611356565b73ffffffffffffffffffffffffffffffffffffffff16146113fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f19061363d565b60405180910390fd5b80600b60026101000a81548160ff02191690831515021790555050565b606060048054611426906135c3565b80601f0160208091040260200160405190810160405280929190818152602001828054611452906135c3565b801561149d5780601f106114745761010080835404028352916020019161149d565b820191905f5260205f20905b81548152906001019060200180831161148057829003601f168201915b5050505050905090565b6114af611ed1565b73ffffffffffffffffffffffffffffffffffffffff166114cd611356565b73ffffffffffffffffffffffffffffffffffffffff1614611523576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151a9061363d565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a89061398e565b60405180910390fd5b6115bb8282612d43565b5050565b5f8060015f6115cc611ed1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611686576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167d90613a1c565b60405180910390fd5b61169a611691611ed1565b85858403611ed8565b600191505092915050565b6116ad611ed1565b73ffffffffffffffffffffffffffffffffffffffff166116cb611356565b73ffffffffffffffffffffffffffffffffffffffff1614611721576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117189061363d565b60405180910390fd5b80600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f6117e06117d9611ed1565b848461209b565b6001905092915050565b6117f2611ed1565b73ffffffffffffffffffffffffffffffffffffffff16611810611356565b73ffffffffffffffffffffffffffffffffffffffff1614611866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185d9061363d565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a38060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6010602052805f5260405f205f915054906101000a900460ff1681565b600b60019054906101000a900460ff1681565b61195c611ed1565b73ffffffffffffffffffffffffffffffffffffffff1661197a611356565b73ffffffffffffffffffffffffffffffffffffffff16146119d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c79061363d565b60405180910390fd5b80600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611a6a91906132d0565b60405180910390a25050565b611a7e611ed1565b73ffffffffffffffffffffffffffffffffffffffff16611a9c611356565b73ffffffffffffffffffffffffffffffffffffffff1614611af2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae99061363d565b60405180910390fd5b670de0b6b3a76400006103e86005611b08610b91565b611b129190613688565b611b1c91906136f6565b611b2691906136f6565b811015611b68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5f90613aaa565b60405180910390fd5b670de0b6b3a764000081611b7c9190613688565b60098190555050565b611b8d611ed1565b73ffffffffffffffffffffffffffffffffffffffff16611bab611356565b73ffffffffffffffffffffffffffffffffffffffff1614611c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf89061363d565b60405180910390fd5b5f600b5f6101000a81548160ff021916908315150217905550565b60075481565b600a5481565b611c30611ed1565b73ffffffffffffffffffffffffffffffffffffffff16611c4e611356565b73ffffffffffffffffffffffffffffffffffffffff1614611ca4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9b9061363d565b60405180910390fd5b670de0b6b3a764000081611cb89190613688565b60088190555050565b600c5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085481565b611d57611ed1565b73ffffffffffffffffffffffffffffffffffffffff16611d75611356565b73ffffffffffffffffffffffffffffffffffffffff1614611dcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc29061363d565b60405180910390fd5b80600d8190555050565b611ddd611ed1565b73ffffffffffffffffffffffffffffffffffffffff16611dfb611356565b73ffffffffffffffffffffffffffffffffffffffff1614611e51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e489061363d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb690613b38565b60405180910390fd5b611ec881612a4d565b50565b60095481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3d90613bc6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fab90613c54565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161208e91906133c2565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210090613ce2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216e90613d70565b60405180910390fd5b5f810361218e5761218983835f612de1565b612a48565b600b5f9054906101000a900460ff1615612672576121aa611356565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561221857506121e8611356565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561225057505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561228a575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122a35750600560149054906101000a900460ff16155b1561267157600b60019054906101000a900460ff1661239757600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806123575750600e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612396576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238d90613dd8565b60405180910390fd5b5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156124345750600f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156124db5760075481111561247e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247590613e66565b60405180910390fd5b60095461248a8361106f565b826124959190613842565b11156124d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124cd90613ece565b60405180910390fd5b612670565b60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156125785750600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156125c7576007548111156125c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125b990613f5c565b60405180910390fd5b61266f565b600f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661266e576009546126218361106f565b8261262c9190613842565b111561266d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161266490613ece565b60405180910390fd5b5b5b5b5b5b5f61267c3061106f565b90505f60085482101590508080156126a05750600b60029054906101000a900460ff165b80156126b95750600560149054906101000a900460ff16155b801561270c575060105f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561275f5750600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156127b25750600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561284357600260115f4381526020019081526020015f20541015612842576001600560146101000a81548160ff0219169083151502179055506127f4613056565b5f600560146101000a81548160ff021916908315150217905550600160115f4381526020019081526020015f205461282c9190613842565b60115f4381526020019081526020015f20819055505b5b5f600560149054906101000a900460ff16159050600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806128f25750600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156128fb575f90505b5f8115612a385760105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561295957505f600d54115b1561298d576129866064612978600d548861312390919063ffffffff16565b61313890919063ffffffff16565b9050612a15565b60105f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156129e457505f600c54115b15612a1457612a116064612a03600c548861312390919063ffffffff16565b61313890919063ffffffff16565b90505b5b5f811115612a2957612a28873083612de1565b5b8085612a359190613f7a565b94505b612a43878787612de1565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600267ffffffffffffffff811115612b2c57612b2b613fad565b5b604051908082528060200260200182016040528015612b5a5781602001602082028036833780820191505090505b50905030815f81518110612b7157612b70613fda565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c14573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c38919061401b565b81600181518110612c4c57612c4b613fda565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612cb1307f000000000000000000000000000000000000000000000000000000000000000084611ed8565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612d12959493929190614136565b5f604051808303815f87803b158015612d29575f80fd5b505af1158015612d3b573d5f803e3d5ffd5b505050505050565b8060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612e4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e4690613ce2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb490613d70565b60405180910390fd5b612ec883838361314d565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612f4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f42906141fe565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612fd99190613842565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161303d91906133c2565b60405180910390a3613050848484613152565b50505050565b5f6130603061106f565b90505f808203613071575050613121565b600a5482111561308157600a5491505b5f82905061308e81612b10565b5f47905060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816040516130d7906138a2565b5f6040518083038185875af1925050503d805f8114613111576040519150601f19603f3d011682016040523d82523d5f602084013e613116565b606091505b505080935050505050505b565b5f81836131309190613688565b905092915050565b5f818361314591906136f6565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61319982613157565b6131a38185613161565b93506131b3818560208601613171565b6131bc8161317f565b840191505092915050565b5f6020820190508181035f8301526131df818461318f565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613214826131eb565b9050919050565b6132248161320a565b811461322e575f80fd5b50565b5f8135905061323f8161321b565b92915050565b5f819050919050565b61325781613245565b8114613261575f80fd5b50565b5f813590506132728161324e565b92915050565b5f806040838503121561328e5761328d6131e7565b5b5f61329b85828601613231565b92505060206132ac85828601613264565b9150509250929050565b5f8115159050919050565b6132ca816132b6565b82525050565b5f6020820190506132e35f8301846132c1565b92915050565b5f602082840312156132fe576132fd6131e7565b5b5f61330b84828501613231565b91505092915050565b5f60208284031215613329576133286131e7565b5b5f61333684828501613264565b91505092915050565b5f819050919050565b5f61336261335d613358846131eb565b61333f565b6131eb565b9050919050565b5f61337382613348565b9050919050565b5f61338482613369565b9050919050565b6133948161337a565b82525050565b5f6020820190506133ad5f83018461338b565b92915050565b6133bc81613245565b82525050565b5f6020820190506133d55f8301846133b3565b92915050565b5f805f606084860312156133f2576133f16131e7565b5b5f6133ff86828701613231565b935050602061341086828701613231565b925050604061342186828701613264565b9150509250925092565b6134348161320a565b82525050565b5f60208201905061344d5f83018461342b565b92915050565b5f60ff82169050919050565b61346881613453565b82525050565b5f6020820190506134815f83018461345f565b92915050565b5f806040838503121561349d5761349c6131e7565b5b5f6134aa85828601613264565b92505060206134bb85828601613264565b9150509250929050565b6134ce816132b6565b81146134d8575f80fd5b50565b5f813590506134e9816134c5565b92915050565b5f8060408385031215613505576135046131e7565b5b5f61351285828601613231565b9250506020613523858286016134db565b9150509250929050565b5f60208284031215613542576135416131e7565b5b5f61354f848285016134db565b91505092915050565b5f806040838503121561356e5761356d6131e7565b5b5f61357b85828601613231565b925050602061358c85828601613231565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806135da57607f821691505b6020821081036135ed576135ec613596565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613627602083613161565b9150613632826135f3565b602082019050919050565b5f6020820190508181035f8301526136548161361b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61369282613245565b915061369d83613245565b92508282026136ab81613245565b915082820484148315176136c2576136c161365b565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61370082613245565b915061370b83613245565b92508261371b5761371a6136c9565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e74205f8201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b5f613780602f83613161565b915061378b82613726565b604082019050919050565b5f6020820190508181035f8301526137ad81613774565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f61380e602883613161565b9150613819826137b4565b604082019050919050565b5f6020820190508181035f83015261383b81613802565b9050919050565b5f61384c82613245565b915061385783613245565b925082820190508082111561386f5761386e61365b565b5b92915050565b5f81905092915050565b50565b5f61388d5f83613875565b91506138988261387f565b5f82019050919050565b5f6138ac82613882565b9150819050919050565b7f57726f6e6720616d6f756e7400000000000000000000000000000000000000005f82015250565b5f6138ea600c83613161565b91506138f5826138b6565b602082019050919050565b5f6020820190508181035f830152613917816138de565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613978603983613161565b91506139838261391e565b604082019050919050565b5f6020820190508181035f8301526139a58161396c565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613a06602583613161565b9150613a11826139ac565b604082019050919050565b5f6020820190508181035f830152613a33816139fa565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e205f8201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b5f613a94602483613161565b9150613a9f82613a3a565b604082019050919050565b5f6020820190508181035f830152613ac181613a88565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613b22602683613161565b9150613b2d82613ac8565b604082019050919050565b5f6020820190508181035f830152613b4f81613b16565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613bb0602483613161565b9150613bbb82613b56565b604082019050919050565b5f6020820190508181035f830152613bdd81613ba4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613c3e602283613161565b9150613c4982613be4565b604082019050919050565b5f6020820190508181035f830152613c6b81613c32565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613ccc602583613161565b9150613cd782613c72565b604082019050919050565b5f6020820190508181035f830152613cf981613cc0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613d5a602383613161565b9150613d6582613d00565b604082019050919050565b5f6020820190508181035f830152613d8781613d4e565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f613dc2601683613161565b9150613dcd82613d8e565b602082019050919050565b5f6020820190508181035f830152613def81613db6565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f613e50603583613161565b9150613e5b82613df6565b604082019050919050565b5f6020820190508181035f830152613e7d81613e44565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613eb8601383613161565b9150613ec382613e84565b602082019050919050565b5f6020820190508181035f830152613ee581613eac565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f613f46603683613161565b9150613f5182613eec565b604082019050919050565b5f6020820190508181035f830152613f7381613f3a565b9050919050565b5f613f8482613245565b9150613f8f83613245565b9250828203905081811115613fa757613fa661365b565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506140158161321b565b92915050565b5f602082840312156140305761402f6131e7565b5b5f61403d84828501614007565b91505092915050565b5f819050919050565b5f61406961406461405f84614046565b61333f565b613245565b9050919050565b6140798161404f565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6140b18161320a565b82525050565b5f6140c283836140a8565b60208301905092915050565b5f602082019050919050565b5f6140e48261407f565b6140ee8185614089565b93506140f983614099565b805f5b8381101561412957815161411088826140b7565b975061411b836140ce565b9250506001810190506140fc565b5085935050505092915050565b5f60a0820190506141495f8301886133b3565b6141566020830187614070565b818103604083015261416881866140da565b9050614177606083018561342b565b61418460808301846133b3565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6141e8602683613161565b91506141f38261418e565b604082019050919050565b5f6020820190508181035f830152614215816141dc565b905091905056fea26469706673582212200f37e6d75d44a9e6e0fe919dde7a00e476db26fcb0886e9495c75ebe44d7cb9a64736f6c63430008190033

Deployed Bytecode

0x608060405260043610610275575f3560e01c8063881dce601161014e578063c0246668116100c0578063d85ba06311610079578063d85ba06314610900578063dd62ed3e1461092a578063e2f4560514610966578063eba4c33314610990578063f2fde38b146109b8578063f8b45b05146109e05761027c565b8063c02466681461081e578063c18bc19514610846578063c306f0ab1461086e578063c8c8ebe414610884578063cce987d4146108ae578063d257b34f146108d85761027c565b8063a457c2d711610112578063a457c2d7146106f0578063a672990c1461072c578063a9059cbb14610754578063aacebbe314610790578063b62496f5146107b8578063bbc0c742146107f45761027c565b8063881dce60146106245780638da5cb5b1461064c578063924de9b71461067657806395d89b411461069e5780639a7a23d6146106c85761027c565b806345bcde42116101e75780636ddd1713116101ab5780636ddd1713146105425780636fc3eaec1461056c57806370a0823114610582578063715018a6146105be57806371fc4688146105d45780637571336a146105fc5761027c565b806345bcde421461049257806349bd5a5e1461049c5780634a62bb65146104c65780636a486a8e146104f05780636db794371461051a5761027c565b806318160ddd1161023957806318160ddd14610374578063203e727e1461039e57806323b872dd146103c657806327c8f83514610402578063313ce5671461042c57806339509351146104565761027c565b806306fdde0314610280578063095ea7b3146102aa57806310d5de53146102e6578063150074a3146103225780631694505e1461034a5761027c565b3661027c57005b5f80fd5b34801561028b575f80fd5b50610294610a0a565b6040516102a191906131c7565b60405180910390f35b3480156102b5575f80fd5b506102d060048036038101906102cb9190613278565b610a9a565b6040516102dd91906132d0565b60405180910390f35b3480156102f1575f80fd5b5061030c600480360381019061030791906132e9565b610ab7565b60405161031991906132d0565b60405180910390f35b34801561032d575f80fd5b5061034860048036038101906103439190613314565b610ad4565b005b348015610355575f80fd5b5061035e610b6d565b60405161036b919061339a565b60405180910390f35b34801561037f575f80fd5b50610388610b91565b60405161039591906133c2565b60405180910390f35b3480156103a9575f80fd5b506103c460048036038101906103bf9190613314565b610b9a565b005b3480156103d1575f80fd5b506103ec60048036038101906103e791906133db565b610ca9565b6040516103f991906132d0565b60405180910390f35b34801561040d575f80fd5b50610416610d9b565b604051610423919061343a565b60405180910390f35b348015610437575f80fd5b50610440610da1565b60405161044d919061346e565b60405180910390f35b348015610461575f80fd5b5061047c60048036038101906104779190613278565b610da9565b60405161048991906132d0565b60405180910390f35b61049a610e50565b005b3480156104a7575f80fd5b506104b0610f04565b6040516104bd919061343a565b60405180910390f35b3480156104d1575f80fd5b506104da610f28565b6040516104e791906132d0565b60405180910390f35b3480156104fb575f80fd5b50610504610f3a565b60405161051191906133c2565b60405180910390f35b348015610525575f80fd5b50610540600480360381019061053b9190613487565b610f40565b005b34801561054d575f80fd5b50610556610fce565b60405161056391906132d0565b60405180910390f35b348015610577575f80fd5b50610580610fe1565b005b34801561058d575f80fd5b506105a860048036038101906105a391906132e9565b61106f565b6040516105b591906133c2565b60405180910390f35b3480156105c9575f80fd5b506105d26110b4565b005b3480156105df575f80fd5b506105fa60048036038101906105f59190613314565b61113b565b005b348015610607575f80fd5b50610622600480360381019061061d91906134ef565b6111c1565b005b34801561062f575f80fd5b5061064a60048036038101906106459190613314565b611295565b005b348015610657575f80fd5b50610660611356565b60405161066d919061343a565b60405180910390f35b348015610681575f80fd5b5061069c6004803603810190610697919061352d565b61137e565b005b3480156106a9575f80fd5b506106b2611417565b6040516106bf91906131c7565b60405180910390f35b3480156106d3575f80fd5b506106ee60048036038101906106e991906134ef565b6114a7565b005b3480156106fb575f80fd5b5061071660048036038101906107119190613278565b6115bf565b60405161072391906132d0565b60405180910390f35b348015610737575f80fd5b50610752600480360381019061074d91906134ef565b6116a5565b005b34801561075f575f80fd5b5061077a60048036038101906107759190613278565b6117cd565b60405161078791906132d0565b60405180910390f35b34801561079b575f80fd5b506107b660048036038101906107b191906132e9565b6117ea565b005b3480156107c3575f80fd5b506107de60048036038101906107d991906132e9565b611924565b6040516107eb91906132d0565b60405180910390f35b3480156107ff575f80fd5b50610808611941565b60405161081591906132d0565b60405180910390f35b348015610829575f80fd5b50610844600480360381019061083f91906134ef565b611954565b005b348015610851575f80fd5b5061086c60048036038101906108679190613314565b611a76565b005b348015610879575f80fd5b50610882611b85565b005b34801561088f575f80fd5b50610898611c1c565b6040516108a591906133c2565b60405180910390f35b3480156108b9575f80fd5b506108c2611c22565b6040516108cf91906133c2565b60405180910390f35b3480156108e3575f80fd5b506108fe60048036038101906108f99190613314565b611c28565b005b34801561090b575f80fd5b50610914611cc1565b60405161092191906133c2565b60405180910390f35b348015610935575f80fd5b50610950600480360381019061094b9190613558565b611cc7565b60405161095d91906133c2565b60405180910390f35b348015610971575f80fd5b5061097a611d49565b60405161098791906133c2565b60405180910390f35b34801561099b575f80fd5b506109b660048036038101906109b19190613314565b611d4f565b005b3480156109c3575f80fd5b506109de60048036038101906109d991906132e9565b611dd5565b005b3480156109eb575f80fd5b506109f4611ecb565b604051610a0191906133c2565b60405180910390f35b606060038054610a19906135c3565b80601f0160208091040260200160405190810160405280929190818152602001828054610a45906135c3565b8015610a905780601f10610a6757610100808354040283529160200191610a90565b820191905f5260205f20905b815481529060010190602001808311610a7357829003601f168201915b5050505050905090565b5f610aad610aa6611ed1565b8484611ed8565b6001905092915050565b600f602052805f5260405f205f915054906101000a900460ff1681565b610adc611ed1565b73ffffffffffffffffffffffffffffffffffffffff16610afa611356565b73ffffffffffffffffffffffffffffffffffffffff1614610b50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b479061363d565b60405180910390fd5b670de0b6b3a764000081610b649190613688565b600a8190555050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f600254905090565b610ba2611ed1565b73ffffffffffffffffffffffffffffffffffffffff16610bc0611356565b73ffffffffffffffffffffffffffffffffffffffff1614610c16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0d9061363d565b60405180910390fd5b670de0b6b3a76400006103e86001610c2c610b91565b610c369190613688565b610c4091906136f6565b610c4a91906136f6565b811015610c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8390613796565b60405180910390fd5b670de0b6b3a764000081610ca09190613688565b60078190555050565b5f610cb584848461209b565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610cfc611ed1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610d7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7290613824565b60405180910390fd5b610d8f85610d87611ed1565b858403611ed8565b60019150509392505050565b61dead81565b5f6012905090565b5f610e46610db5611ed1565b848460015f610dc2611ed1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610e419190613842565b611ed8565b6001905092915050565b610e58611ed1565b73ffffffffffffffffffffffffffffffffffffffff16610e76611356565b73ffffffffffffffffffffffffffffffffffffffff1614610ecc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec39061363d565b60405180910390fd5b6001600b60016101000a81548160ff0219169083151502179055506001600b60026101000a81548160ff021916908315150217905550565b7f000000000000000000000000edb82ef3b56fc39f7d4088a2d8724a1f0caac67281565b600b5f9054906101000a900460ff1681565b600d5481565b610f48611ed1565b73ffffffffffffffffffffffffffffffffffffffff16610f66611356565b73ffffffffffffffffffffffffffffffffffffffff1614610fbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb39061363d565b60405180910390fd5b81600c8190555080600d819055505050565b600b60029054906101000a900460ff1681565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051611027906138a2565b5f6040518083038185875af1925050503d805f8114611061576040519150601f19603f3d011682016040523d82523d5f602084013e611066565b606091505b50508091505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6110bc611ed1565b73ffffffffffffffffffffffffffffffffffffffff166110da611356565b73ffffffffffffffffffffffffffffffffffffffff1614611130576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111279061363d565b60405180910390fd5b6111395f612a4d565b565b611143611ed1565b73ffffffffffffffffffffffffffffffffffffffff16611161611356565b73ffffffffffffffffffffffffffffffffffffffff16146111b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ae9061363d565b60405180910390fd5b80600c8190555050565b6111c9611ed1565b73ffffffffffffffffffffffffffffffffffffffff166111e7611356565b73ffffffffffffffffffffffffffffffffffffffff161461123d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112349061363d565b60405180910390fd5b80600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112d5611ed1565b73ffffffffffffffffffffffffffffffffffffffff16146112f4575f80fd5b6112fd3061106f565b811115801561130b57505f81115b61134a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134190613900565b60405180910390fd5b61135381612b10565b50565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611386611ed1565b73ffffffffffffffffffffffffffffffffffffffff166113a4611356565b73ffffffffffffffffffffffffffffffffffffffff16146113fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f19061363d565b60405180910390fd5b80600b60026101000a81548160ff02191690831515021790555050565b606060048054611426906135c3565b80601f0160208091040260200160405190810160405280929190818152602001828054611452906135c3565b801561149d5780601f106114745761010080835404028352916020019161149d565b820191905f5260205f20905b81548152906001019060200180831161148057829003601f168201915b5050505050905090565b6114af611ed1565b73ffffffffffffffffffffffffffffffffffffffff166114cd611356565b73ffffffffffffffffffffffffffffffffffffffff1614611523576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151a9061363d565b60405180910390fd5b7f000000000000000000000000edb82ef3b56fc39f7d4088a2d8724a1f0caac67273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a89061398e565b60405180910390fd5b6115bb8282612d43565b5050565b5f8060015f6115cc611ed1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611686576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167d90613a1c565b60405180910390fd5b61169a611691611ed1565b85858403611ed8565b600191505092915050565b6116ad611ed1565b73ffffffffffffffffffffffffffffffffffffffff166116cb611356565b73ffffffffffffffffffffffffffffffffffffffff1614611721576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117189061363d565b60405180910390fd5b80600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f6117e06117d9611ed1565b848461209b565b6001905092915050565b6117f2611ed1565b73ffffffffffffffffffffffffffffffffffffffff16611810611356565b73ffffffffffffffffffffffffffffffffffffffff1614611866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185d9061363d565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a38060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6010602052805f5260405f205f915054906101000a900460ff1681565b600b60019054906101000a900460ff1681565b61195c611ed1565b73ffffffffffffffffffffffffffffffffffffffff1661197a611356565b73ffffffffffffffffffffffffffffffffffffffff16146119d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c79061363d565b60405180910390fd5b80600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611a6a91906132d0565b60405180910390a25050565b611a7e611ed1565b73ffffffffffffffffffffffffffffffffffffffff16611a9c611356565b73ffffffffffffffffffffffffffffffffffffffff1614611af2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae99061363d565b60405180910390fd5b670de0b6b3a76400006103e86005611b08610b91565b611b129190613688565b611b1c91906136f6565b611b2691906136f6565b811015611b68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5f90613aaa565b60405180910390fd5b670de0b6b3a764000081611b7c9190613688565b60098190555050565b611b8d611ed1565b73ffffffffffffffffffffffffffffffffffffffff16611bab611356565b73ffffffffffffffffffffffffffffffffffffffff1614611c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf89061363d565b60405180910390fd5b5f600b5f6101000a81548160ff021916908315150217905550565b60075481565b600a5481565b611c30611ed1565b73ffffffffffffffffffffffffffffffffffffffff16611c4e611356565b73ffffffffffffffffffffffffffffffffffffffff1614611ca4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9b9061363d565b60405180910390fd5b670de0b6b3a764000081611cb89190613688565b60088190555050565b600c5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085481565b611d57611ed1565b73ffffffffffffffffffffffffffffffffffffffff16611d75611356565b73ffffffffffffffffffffffffffffffffffffffff1614611dcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc29061363d565b60405180910390fd5b80600d8190555050565b611ddd611ed1565b73ffffffffffffffffffffffffffffffffffffffff16611dfb611356565b73ffffffffffffffffffffffffffffffffffffffff1614611e51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e489061363d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb690613b38565b60405180910390fd5b611ec881612a4d565b50565b60095481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3d90613bc6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fab90613c54565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161208e91906133c2565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210090613ce2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216e90613d70565b60405180910390fd5b5f810361218e5761218983835f612de1565b612a48565b600b5f9054906101000a900460ff1615612672576121aa611356565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561221857506121e8611356565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561225057505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561228a575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122a35750600560149054906101000a900460ff16155b1561267157600b60019054906101000a900460ff1661239757600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806123575750600e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612396576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238d90613dd8565b60405180910390fd5b5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156124345750600f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156124db5760075481111561247e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247590613e66565b60405180910390fd5b60095461248a8361106f565b826124959190613842565b11156124d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124cd90613ece565b60405180910390fd5b612670565b60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156125785750600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156125c7576007548111156125c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125b990613f5c565b60405180910390fd5b61266f565b600f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661266e576009546126218361106f565b8261262c9190613842565b111561266d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161266490613ece565b60405180910390fd5b5b5b5b5b5b5f61267c3061106f565b90505f60085482101590508080156126a05750600b60029054906101000a900460ff165b80156126b95750600560149054906101000a900460ff16155b801561270c575060105f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561275f5750600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156127b25750600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561284357600260115f4381526020019081526020015f20541015612842576001600560146101000a81548160ff0219169083151502179055506127f4613056565b5f600560146101000a81548160ff021916908315150217905550600160115f4381526020019081526020015f205461282c9190613842565b60115f4381526020019081526020015f20819055505b5b5f600560149054906101000a900460ff16159050600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806128f25750600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156128fb575f90505b5f8115612a385760105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561295957505f600d54115b1561298d576129866064612978600d548861312390919063ffffffff16565b61313890919063ffffffff16565b9050612a15565b60105f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156129e457505f600c54115b15612a1457612a116064612a03600c548861312390919063ffffffff16565b61313890919063ffffffff16565b90505b5b5f811115612a2957612a28873083612de1565b5b8085612a359190613f7a565b94505b612a43878787612de1565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600267ffffffffffffffff811115612b2c57612b2b613fad565b5b604051908082528060200260200182016040528015612b5a5781602001602082028036833780820191505090505b50905030815f81518110612b7157612b70613fda565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c14573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c38919061401b565b81600181518110612c4c57612c4b613fda565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612cb1307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611ed8565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612d12959493929190614136565b5f604051808303815f87803b158015612d29575f80fd5b505af1158015612d3b573d5f803e3d5ffd5b505050505050565b8060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612e4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e4690613ce2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb490613d70565b60405180910390fd5b612ec883838361314d565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612f4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f42906141fe565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612fd99190613842565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161303d91906133c2565b60405180910390a3613050848484613152565b50505050565b5f6130603061106f565b90505f808203613071575050613121565b600a5482111561308157600a5491505b5f82905061308e81612b10565b5f47905060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816040516130d7906138a2565b5f6040518083038185875af1925050503d805f8114613111576040519150601f19603f3d011682016040523d82523d5f602084013e613116565b606091505b505080935050505050505b565b5f81836131309190613688565b905092915050565b5f818361314591906136f6565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61319982613157565b6131a38185613161565b93506131b3818560208601613171565b6131bc8161317f565b840191505092915050565b5f6020820190508181035f8301526131df818461318f565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613214826131eb565b9050919050565b6132248161320a565b811461322e575f80fd5b50565b5f8135905061323f8161321b565b92915050565b5f819050919050565b61325781613245565b8114613261575f80fd5b50565b5f813590506132728161324e565b92915050565b5f806040838503121561328e5761328d6131e7565b5b5f61329b85828601613231565b92505060206132ac85828601613264565b9150509250929050565b5f8115159050919050565b6132ca816132b6565b82525050565b5f6020820190506132e35f8301846132c1565b92915050565b5f602082840312156132fe576132fd6131e7565b5b5f61330b84828501613231565b91505092915050565b5f60208284031215613329576133286131e7565b5b5f61333684828501613264565b91505092915050565b5f819050919050565b5f61336261335d613358846131eb565b61333f565b6131eb565b9050919050565b5f61337382613348565b9050919050565b5f61338482613369565b9050919050565b6133948161337a565b82525050565b5f6020820190506133ad5f83018461338b565b92915050565b6133bc81613245565b82525050565b5f6020820190506133d55f8301846133b3565b92915050565b5f805f606084860312156133f2576133f16131e7565b5b5f6133ff86828701613231565b935050602061341086828701613231565b925050604061342186828701613264565b9150509250925092565b6134348161320a565b82525050565b5f60208201905061344d5f83018461342b565b92915050565b5f60ff82169050919050565b61346881613453565b82525050565b5f6020820190506134815f83018461345f565b92915050565b5f806040838503121561349d5761349c6131e7565b5b5f6134aa85828601613264565b92505060206134bb85828601613264565b9150509250929050565b6134ce816132b6565b81146134d8575f80fd5b50565b5f813590506134e9816134c5565b92915050565b5f8060408385031215613505576135046131e7565b5b5f61351285828601613231565b9250506020613523858286016134db565b9150509250929050565b5f60208284031215613542576135416131e7565b5b5f61354f848285016134db565b91505092915050565b5f806040838503121561356e5761356d6131e7565b5b5f61357b85828601613231565b925050602061358c85828601613231565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806135da57607f821691505b6020821081036135ed576135ec613596565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613627602083613161565b9150613632826135f3565b602082019050919050565b5f6020820190508181035f8301526136548161361b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61369282613245565b915061369d83613245565b92508282026136ab81613245565b915082820484148315176136c2576136c161365b565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61370082613245565b915061370b83613245565b92508261371b5761371a6136c9565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e74205f8201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b5f613780602f83613161565b915061378b82613726565b604082019050919050565b5f6020820190508181035f8301526137ad81613774565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f61380e602883613161565b9150613819826137b4565b604082019050919050565b5f6020820190508181035f83015261383b81613802565b9050919050565b5f61384c82613245565b915061385783613245565b925082820190508082111561386f5761386e61365b565b5b92915050565b5f81905092915050565b50565b5f61388d5f83613875565b91506138988261387f565b5f82019050919050565b5f6138ac82613882565b9150819050919050565b7f57726f6e6720616d6f756e7400000000000000000000000000000000000000005f82015250565b5f6138ea600c83613161565b91506138f5826138b6565b602082019050919050565b5f6020820190508181035f830152613917816138de565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613978603983613161565b91506139838261391e565b604082019050919050565b5f6020820190508181035f8301526139a58161396c565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613a06602583613161565b9150613a11826139ac565b604082019050919050565b5f6020820190508181035f830152613a33816139fa565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e205f8201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b5f613a94602483613161565b9150613a9f82613a3a565b604082019050919050565b5f6020820190508181035f830152613ac181613a88565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613b22602683613161565b9150613b2d82613ac8565b604082019050919050565b5f6020820190508181035f830152613b4f81613b16565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613bb0602483613161565b9150613bbb82613b56565b604082019050919050565b5f6020820190508181035f830152613bdd81613ba4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613c3e602283613161565b9150613c4982613be4565b604082019050919050565b5f6020820190508181035f830152613c6b81613c32565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613ccc602583613161565b9150613cd782613c72565b604082019050919050565b5f6020820190508181035f830152613cf981613cc0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613d5a602383613161565b9150613d6582613d00565b604082019050919050565b5f6020820190508181035f830152613d8781613d4e565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f613dc2601683613161565b9150613dcd82613d8e565b602082019050919050565b5f6020820190508181035f830152613def81613db6565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f613e50603583613161565b9150613e5b82613df6565b604082019050919050565b5f6020820190508181035f830152613e7d81613e44565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613eb8601383613161565b9150613ec382613e84565b602082019050919050565b5f6020820190508181035f830152613ee581613eac565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f613f46603683613161565b9150613f5182613eec565b604082019050919050565b5f6020820190508181035f830152613f7381613f3a565b9050919050565b5f613f8482613245565b9150613f8f83613245565b9250828203905081811115613fa757613fa661365b565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506140158161321b565b92915050565b5f602082840312156140305761402f6131e7565b5b5f61403d84828501614007565b91505092915050565b5f819050919050565b5f61406961406461405f84614046565b61333f565b613245565b9050919050565b6140798161404f565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6140b18161320a565b82525050565b5f6140c283836140a8565b60208301905092915050565b5f602082019050919050565b5f6140e48261407f565b6140ee8185614089565b93506140f983614099565b805f5b8381101561412957815161411088826140b7565b975061411b836140ce565b9250506001810190506140fc565b5085935050505092915050565b5f60a0820190506141495f8301886133b3565b6141566020830187614070565b818103604083015261416881866140da565b9050614177606083018561342b565b61418460808301846133b3565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6141e8602683613161565b91506141f38261418e565b604082019050919050565b5f6020820190508181035f830152614215816141dc565b905091905056fea26469706673582212200f37e6d75d44a9e6e0fe919dde7a00e476db26fcb0886e9495c75ebe44d7cb9a64736f6c63430008190033

Deployed Bytecode Sourcemap

11693:9411:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7229:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8143:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12407:63;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14758:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11770:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7550:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14884:240;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8320:458;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11873:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7449:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8786:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14395:120;;;:::i;:::-;;11828:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12155:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12311:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17092:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12235:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16245:149;;;;;;;;;;;;;:::i;:::-;;7666:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6305:103;;;;;;;;;;;;;:::i;:::-;;16850:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15564:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16014:223;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6082:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15716:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7337:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16402:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9009:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15361:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7801:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17238:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12479:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12195:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15824:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15132:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14523:85;;;;;;;;;;;;;:::i;:::-;;12005:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12118:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14616:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12275:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7984:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12047:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16970:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6416:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12087:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7229:100;7283:13;7316:5;7309:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7229:100;:::o;8143:169::-;8226:4;8243:39;8252:12;:10;:12::i;:::-;8266:7;8275:6;8243:8;:39::i;:::-;8300:4;8293:11;;8143:169;;;;:::o;12407:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;14758:118::-;6228:12;:10;:12::i;:::-;6217:23;;:7;:5;:7::i;:::-;:23;;;6209:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14859:8:::1;14846:9;:22;;;;:::i;:::-;14830:13;:38;;;;14758:118:::0;:::o;11770:51::-;;;:::o;7550:108::-;7611:7;7638:12;;7631:19;;7550:108;:::o;14884:240::-;6228:12;:10;:12::i;:::-;6217:23;;:7;:5;:7::i;:::-;:23;;;6209:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15007:4:::1;14999;14994:1;14978:13;:11;:13::i;:::-;:17;;;;:::i;:::-;14977:26;;;;:::i;:::-;14976:35;;;;:::i;:::-;14966:6;:45;;14958:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;15107:8;15097:6;:19;;;;:::i;:::-;15074:20;:42;;;;14884:240:::0;:::o;8320:458::-;8426:4;8443:36;8453:6;8461:9;8472:6;8443:9;:36::i;:::-;8492:24;8519:11;:19;8531:6;8519:19;;;;;;;;;;;;;;;:33;8539:12;:10;:12::i;:::-;8519:33;;;;;;;;;;;;;;;;8492:60;;8591:6;8571:16;:26;;8563:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8678:57;8687:6;8695:12;:10;:12::i;:::-;8728:6;8709:16;:25;8678:8;:57::i;:::-;8766:4;8759:11;;;8320:458;;;;;:::o;11873:53::-;11919:6;11873:53;:::o;7449:93::-;7507:5;7532:2;7525:9;;7449:93;:::o;8786:215::-;8874:4;8891:80;8900:12;:10;:12::i;:::-;8914:7;8960:10;8923:11;:25;8935:12;:10;:12::i;:::-;8923:25;;;;;;;;;;;;;;;:34;8949:7;8923:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;8891:8;:80::i;:::-;8989:4;8982:11;;8786:215;;;;:::o;14395:120::-;6228:12;:10;:12::i;:::-;6217:23;;:7;:5;:7::i;:::-;:23;;;6209:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14474:4:::1;14458:13;;:20;;;;;;;;;;;;;;;;;;14503:4;14489:11;;:18;;;;;;;;;;;;;;;;;;14395:120::o:0;11828:38::-;;;:::o;12155:33::-;;;;;;;;;;;;;:::o;12311:28::-;;;;:::o;17092:138::-;6228:12;:10;:12::i;:::-;6217:23;;:7;:5;:7::i;:::-;:23;;;6209:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17186:4:::1;17171:12;:19;;;;17217:5;17201:13;:21;;;;17092:138:::0;;:::o;12235:31::-;;;;;;;;;;;;;:::o;16245:149::-;16287:12;16331:15;;;;;;;;;;;16323:29;;16360:21;16323:63;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16310:76;;;;;16276:118;16245:149::o;7666:127::-;7740:7;7767:9;:18;7777:7;7767:18;;;;;;;;;;;;;;;;7760:25;;7666:127;;;:::o;6305:103::-;6228:12;:10;:12::i;:::-;6217:23;;:7;:5;:7::i;:::-;:23;;;6209:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6370:30:::1;6397:1;6370:18;:30::i;:::-;6305:103::o:0;16850:112::-;6228:12;:10;:12::i;:::-;6217:23;;:7;:5;:7::i;:::-;:23;;;6209:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16941:13:::1;16926:12;:28;;;;16850:112:::0;:::o;15564:144::-;6228:12;:10;:12::i;:::-;6217:23;;:7;:5;:7::i;:::-;:23;;;6209:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15696:4:::1;15654:31;:39;15686:6;15654:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;15564:144:::0;;:::o;16014:223::-;16094:15;;;;;;;;;;;16078:31;;:12;:10;:12::i;:::-;:31;;;16070:40;;;;;;16139:24;16157:4;16139:9;:24::i;:::-;16129:6;:34;;:48;;;;;16176:1;16167:6;:10;16129:48;16121:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;16205:24;16222:6;16205:16;:24::i;:::-;16014:223;:::o;6082:87::-;6128:7;6155:6;;;;;;;;;;;6148:13;;6082:87;:::o;15716:100::-;6228:12;:10;:12::i;:::-;6217:23;;:7;:5;:7::i;:::-;:23;;;6209:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15801:7:::1;15787:11;;:21;;;;;;;;;;;;;;;;;;15716:100:::0;:::o;7337:104::-;7393:13;7426:7;7419:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7337:104;:::o;16402:244::-;6228:12;:10;:12::i;:::-;6217:23;;:7;:5;:7::i;:::-;:23;;;6209:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16509:13:::1;16501:21;;:4;:21;;::::0;16493:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;16597:41;16626:4;16632:5;16597:28;:41::i;:::-;16402:244:::0;;:::o;9009:413::-;9102:4;9119:24;9146:11;:25;9158:12;:10;:12::i;:::-;9146:25;;;;;;;;;;;;;;;:34;9172:7;9146:34;;;;;;;;;;;;;;;;9119:61;;9219:15;9199:16;:35;;9191:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;9312:67;9321:12;:10;:12::i;:::-;9335:7;9363:15;9344:16;:34;9312:8;:67::i;:::-;9410:4;9403:11;;;9009:413;;;;:::o;15361:195::-;6228:12;:10;:12::i;:::-;6217:23;;:7;:5;:7::i;:::-;:23;;;6209:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15493:4:::1;15447:31;:43;15479:10;15447:43;;;;;;;;;;;;;;;;:50;;;;;;;;;;;;;;;;;;15544:4;15510:19;:31;15530:10;15510:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;15361:195:::0;;:::o;7801:175::-;7887:4;7904:42;7914:12;:10;:12::i;:::-;7928:9;7939:6;7904:9;:42::i;:::-;7964:4;7957:11;;7801:175;;;;:::o;17238:208::-;6228:12;:10;:12::i;:::-;6217:23;;:7;:5;:7::i;:::-;:23;;;6209:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17375:15:::1;;;;;;;;;;;17332:59;;17355:18;17332:59;;;;;;;;;;;;17420:18;17402:15;;:36;;;;;;;;;;;;;;;;;;17238:208:::0;:::o;12479:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;12195:33::-;;;;;;;;;;;;;:::o;15824:182::-;6228:12;:10;:12::i;:::-;6217:23;;:7;:5;:7::i;:::-;:23;;;6209:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15940:8:::1;15909:19;:28;15929:7;15909:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;15980:7;15964:34;;;15989:8;15964:34;;;;;;:::i;:::-;;;;;;;;15824:182:::0;;:::o;15132:221::-;6228:12;:10;:12::i;:::-;6217:23;;:7;:5;:7::i;:::-;:23;;;6209:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15258:4:::1;15250;15245:1;15229:13;:11;:13::i;:::-;:17;;;;:::i;:::-;15228:26;;;;:::i;:::-;15227:35;;;;:::i;:::-;15217:6;:45;;15209:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;15336:8;15326:6;:19;;;;:::i;:::-;15314:9;:31;;;;15132:221:::0;:::o;14523:85::-;6228:12;:10;:12::i;:::-;6217:23;;:7;:5;:7::i;:::-;:23;;;6209:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14595:5:::1;14578:14;;:22;;;;;;;;;;;;;;;;;;14523:85::o:0;12005:35::-;;;;:::o;12118:28::-;;;;:::o;14616:134::-;6228:12;:10;:12::i;:::-;6217:23;;:7;:5;:7::i;:::-;:23;;;6209:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14733:8:::1;14720:9;:22;;;;:::i;:::-;14699:18;:43;;;;14616:134:::0;:::o;12275:27::-;;;;:::o;7984:151::-;8073:7;8100:11;:18;8112:5;8100:18;;;;;;;;;;;;;;;:27;8119:7;8100:27;;;;;;;;;;;;;;;;8093:34;;7984:151;;;;:::o;12047:33::-;;;;:::o;16970:114::-;6228:12;:10;:12::i;:::-;6217:23;;:7;:5;:7::i;:::-;:23;;;6209:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17063:13:::1;17047;:29;;;;16970:114:::0;:::o;6416:201::-;6228:12;:10;:12::i;:::-;6217:23;;:7;:5;:7::i;:::-;:23;;;6209:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6525:1:::1;6505:22;;:8;:22;;::::0;6497:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6581:28;6600:8;6581:18;:28::i;:::-;6416:201:::0;:::o;12087:24::-;;;;:::o;5628:98::-;5681:7;5708:10;5701:17;;5628:98;:::o;11143:346::-;11262:1;11245:19;;:5;:19;;;11237:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11343:1;11324:21;;:7;:21;;;11316:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11427:6;11397:11;:18;11409:5;11397:18;;;;;;;;;;;;;;;:27;11416:7;11397:27;;;;;;;;;;;;;;;:36;;;;11465:7;11449:32;;11458:5;11449:32;;;11474:6;11449:32;;;;;;:::i;:::-;;;;;;;;11143:346;;;:::o;17454:2631::-;17568:1;17552:18;;:4;:18;;;17544:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17645:1;17631:16;;:2;:16;;;17623:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;17714:1;17704:6;:11;17700:93;;17732:28;17748:4;17754:2;17758:1;17732:15;:28::i;:::-;17775:7;;17700:93;17809:14;;;;;;;;;;;17805:1050;;;17852:7;:5;:7::i;:::-;17844:15;;:4;:15;;;;:32;;;;;17869:7;:5;:7::i;:::-;17863:13;;:2;:13;;;;17844:32;:52;;;;;17894:1;17880:16;;:2;:16;;;;17844:52;:77;;;;;17914:6;17900:21;;:2;:21;;;;17844:77;:90;;;;;17926:8;;;;;;;;;;;17925:9;17844:90;17840:1004;;;17960:13;;;;;;;;;;;17955:150;;18006:19;:25;18026:4;18006:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;18035:19;:23;18055:2;18035:23;;;;;;;;;;;;;;;;;;;;;;;;;18006:52;17998:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;17955:150;18129:25;:31;18155:4;18129:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;18165:31;:35;18197:2;18165:35;;;;;;;;;;;;;;;;;;;;;;;;;18164:36;18129:71;18125:704;;;18243:20;;18233:6;:30;;18225:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;18378:9;;18361:13;18371:2;18361:9;:13::i;:::-;18352:6;:22;;;;:::i;:::-;:35;;18344:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18125:704;;;18458:25;:29;18484:2;18458:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;18492:31;:37;18524:4;18492:37;;;;;;;;;;;;;;;;;;;;;;;;;18491:38;18458:71;18454:375;;;18572:20;;18562:6;:30;;18554:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;18454:375;;;18682:31;:35;18714:2;18682:35;;;;;;;;;;;;;;;;;;;;;;;;;18677:152;;18776:9;;18759:13;18769:2;18759:9;:13::i;:::-;18750:6;:22;;;;:::i;:::-;:35;;18742:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18677:152;18454:375;18125:704;17840:1004;17805:1050;18867:28;18898:24;18916:4;18898:9;:24::i;:::-;18867:55;;18933:12;18972:18;;18948:20;:42;;18933:57;;19005:7;:22;;;;;19016:11;;;;;;;;;;;19005:22;:35;;;;;19032:8;;;;;;;;;;;19031:9;19005:35;:71;;;;;19045:25;:31;19071:4;19045:31;;;;;;;;;;;;;;;;;;;;;;;;;19044:32;19005:71;:101;;;;;19081:19;:25;19101:4;19081:25;;;;;;;;;;;;;;;;;;;;;;;;;19080:26;19005:101;:129;;;;;19111:19;:23;19131:2;19111:23;;;;;;;;;;;;;;;;;;;;;;;;;19110:24;19005:129;19001:383;;;19182:1;19155:10;:24;19166:12;19155:24;;;;;;;;;;;;:28;19151:222;;;19215:4;19204:8;;:15;;;;;;;;;;;;;;;;;;19238:10;:8;:10::i;:::-;19278:5;19267:8;;:16;;;;;;;;;;;;;;;;;;19356:1;19329:10;:24;19340:12;19329:24;;;;;;;;;;;;:28;;;;:::i;:::-;19302:10;:24;19313:12;19302:24;;;;;;;;;;;:55;;;;19151:222;19001:383;19396:12;19412:8;;;;;;;;;;;19411:9;19396:24;;19437:19;:25;19457:4;19437:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;19466:19;:23;19486:2;19466:23;;;;;;;;;;;;;;;;;;;;;;;;;19437:52;19433:100;;;19516:5;19506:15;;19433:100;19545:12;19576:7;19572:460;;;19604:25;:29;19630:2;19604:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;19653:1;19637:13;;:17;19604:50;19600:283;;;19682:34;19712:3;19682:25;19693:13;;19682:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;19675:41;;19600:283;;;19755:25;:31;19781:4;19755:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;19805:1;19790:12;;:16;19755:51;19751:132;;;19834:33;19863:3;19834:24;19845:12;;19834:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;19827:40;;19751:132;19600:283;19910:1;19903:4;:8;19899:91;;;19932:42;19948:4;19962;19969;19932:15;:42::i;:::-;19899:91;20016:4;20006:14;;;;;:::i;:::-;;;19572:460;20044:33;20060:4;20066:2;20070:6;20044:15;:33::i;:::-;17533:2552;;;;17454:2631;;;;:::o;6625:191::-;6699:16;6718:6;;;;;;;;;;;6699:25;;6744:8;6735:6;;:17;;;;;;;;;;;;;;;;;;6799:8;6768:40;;6789:8;6768:40;;;;;;;;;;;;6688:128;6625:191;:::o;20093:473::-;20159:21;20197:1;20183:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20159:40;;20228:4;20210;20215:1;20210:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;20254:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20244:4;20249:1;20244:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;20289:62;20306:4;20321:15;20339:11;20289:8;:62::i;:::-;20362:15;:66;;;20443:11;20469:1;20485:4;20512;20532:15;20362:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20148:418;20093:473;:::o;16654:188::-;16771:5;16737:25;:31;16763:4;16737:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;16828:5;16794:40;;16822:4;16794:40;;;;;;;;;;;;16654:188;;:::o;9430:699::-;9554:1;9536:20;;:6;:20;;;9528:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;9638:1;9617:23;;:9;:23;;;9609:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9693:47;9714:6;9722:9;9733:6;9693:20;:47::i;:::-;9753:21;9777:9;:17;9787:6;9777:17;;;;;;;;;;;;;;;;9753:41;;9830:6;9813:13;:23;;9805:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9951:6;9935:13;:22;9915:9;:17;9925:6;9915:17;;;;;;;;;;;;;;;:42;;;;10003:6;9979:9;:20;9989:9;9979:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;10044:9;10027:35;;10036:6;10027:35;;;10055:6;10027:35;;;;;;:::i;:::-;;;;;;;;10075:46;10095:6;10103:9;10114:6;10075:19;:46::i;:::-;9517:612;9430:699;;;:::o;20574:527::-;20613:23;20639:24;20657:4;20639:9;:24::i;:::-;20613:50;;20674:12;20722:1;20703:15;:20;20699:59;;20740:7;;;;20699:59;20792:13;;20774:15;:31;20770:95;;;20840:13;;20822:31;;20770:95;20877:26;20906:15;20877:44;;20932:36;20949:18;20932:16;:36::i;:::-;20979:16;20998:21;20979:40;;21051:15;;;;;;;;;;;21043:29;;21080:8;21043:50;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21030:63;;;;;20602:499;;;;20574:527;:::o;3722:98::-;3780:7;3811:1;3807;:5;;;;:::i;:::-;3800:12;;3722:98;;;;:::o;3828:::-;3886:7;3917:1;3913;:5;;;;:::i;:::-;3906:12;;3828:98;;;;:::o;11497:91::-;;;;:::o;11596:90::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:329::-;3398:6;3447:2;3435:9;3426:7;3422:23;3418:32;3415:119;;;3453:79;;:::i;:::-;3415:119;3573:1;3598:53;3643:7;3634:6;3623:9;3619:22;3598:53;:::i;:::-;3588:63;;3544:117;3339:329;;;;:::o;3674:::-;3733:6;3782:2;3770:9;3761:7;3757:23;3753:32;3750:119;;;3788:79;;:::i;:::-;3750:119;3908:1;3933:53;3978:7;3969:6;3958:9;3954:22;3933:53;:::i;:::-;3923:63;;3879:117;3674:329;;;;:::o;4009:60::-;4037:3;4058:5;4051:12;;4009:60;;;:::o;4075:142::-;4125:9;4158:53;4176:34;4185:24;4203:5;4185:24;:::i;:::-;4176:34;:::i;:::-;4158:53;:::i;:::-;4145:66;;4075:142;;;:::o;4223:126::-;4273:9;4306:37;4337:5;4306:37;:::i;:::-;4293:50;;4223:126;;;:::o;4355:152::-;4431:9;4464:37;4495:5;4464:37;:::i;:::-;4451:50;;4355:152;;;:::o;4513:183::-;4626:63;4683:5;4626:63;:::i;:::-;4621:3;4614:76;4513:183;;:::o;4702:274::-;4821:4;4859:2;4848:9;4844:18;4836:26;;4872:97;4966:1;4955:9;4951:17;4942:6;4872:97;:::i;:::-;4702:274;;;;:::o;4982:118::-;5069:24;5087:5;5069:24;:::i;:::-;5064:3;5057:37;4982:118;;:::o;5106:222::-;5199:4;5237:2;5226:9;5222:18;5214:26;;5250:71;5318:1;5307:9;5303:17;5294:6;5250:71;:::i;:::-;5106:222;;;;:::o;5334:619::-;5411:6;5419;5427;5476:2;5464:9;5455:7;5451:23;5447:32;5444:119;;;5482:79;;:::i;:::-;5444:119;5602:1;5627:53;5672:7;5663:6;5652:9;5648:22;5627:53;:::i;:::-;5617:63;;5573:117;5729:2;5755:53;5800:7;5791:6;5780:9;5776:22;5755:53;:::i;:::-;5745:63;;5700:118;5857:2;5883:53;5928:7;5919:6;5908:9;5904:22;5883:53;:::i;:::-;5873:63;;5828:118;5334:619;;;;;:::o;5959:118::-;6046:24;6064:5;6046:24;:::i;:::-;6041:3;6034:37;5959:118;;:::o;6083:222::-;6176:4;6214:2;6203:9;6199:18;6191:26;;6227:71;6295:1;6284:9;6280:17;6271:6;6227:71;:::i;:::-;6083:222;;;;:::o;6311:86::-;6346:7;6386:4;6379:5;6375:16;6364:27;;6311:86;;;:::o;6403:112::-;6486:22;6502:5;6486:22;:::i;:::-;6481:3;6474:35;6403:112;;:::o;6521:214::-;6610:4;6648:2;6637:9;6633:18;6625:26;;6661:67;6725:1;6714:9;6710:17;6701:6;6661:67;:::i;:::-;6521:214;;;;:::o;6741:474::-;6809:6;6817;6866:2;6854:9;6845:7;6841:23;6837:32;6834:119;;;6872:79;;:::i;:::-;6834:119;6992:1;7017:53;7062:7;7053:6;7042:9;7038:22;7017:53;:::i;:::-;7007:63;;6963:117;7119:2;7145:53;7190:7;7181:6;7170:9;7166:22;7145:53;:::i;:::-;7135:63;;7090:118;6741:474;;;;;:::o;7221:116::-;7291:21;7306:5;7291:21;:::i;:::-;7284:5;7281:32;7271:60;;7327:1;7324;7317:12;7271:60;7221:116;:::o;7343:133::-;7386:5;7424:6;7411:20;7402:29;;7440:30;7464:5;7440:30;:::i;:::-;7343:133;;;;:::o;7482:468::-;7547:6;7555;7604:2;7592:9;7583:7;7579:23;7575:32;7572:119;;;7610:79;;:::i;:::-;7572:119;7730:1;7755:53;7800:7;7791:6;7780:9;7776:22;7755:53;:::i;:::-;7745:63;;7701:117;7857:2;7883:50;7925:7;7916:6;7905:9;7901:22;7883:50;:::i;:::-;7873:60;;7828:115;7482:468;;;;;:::o;7956:323::-;8012:6;8061:2;8049:9;8040:7;8036:23;8032:32;8029:119;;;8067:79;;:::i;:::-;8029:119;8187:1;8212:50;8254:7;8245:6;8234:9;8230:22;8212:50;:::i;:::-;8202:60;;8158:114;7956:323;;;;:::o;8285:474::-;8353:6;8361;8410:2;8398:9;8389:7;8385:23;8381:32;8378:119;;;8416:79;;:::i;:::-;8378:119;8536:1;8561:53;8606:7;8597:6;8586:9;8582:22;8561:53;:::i;:::-;8551:63;;8507:117;8663:2;8689:53;8734:7;8725:6;8714:9;8710:22;8689:53;:::i;:::-;8679:63;;8634:118;8285:474;;;;;:::o;8765:180::-;8813:77;8810:1;8803:88;8910:4;8907:1;8900:15;8934:4;8931:1;8924:15;8951:320;8995:6;9032:1;9026:4;9022:12;9012:22;;9079:1;9073:4;9069:12;9100:18;9090:81;;9156:4;9148:6;9144:17;9134:27;;9090:81;9218:2;9210:6;9207:14;9187:18;9184:38;9181:84;;9237:18;;:::i;:::-;9181:84;9002:269;8951:320;;;:::o;9277:182::-;9417:34;9413:1;9405:6;9401:14;9394:58;9277:182;:::o;9465:366::-;9607:3;9628:67;9692:2;9687:3;9628:67;:::i;:::-;9621:74;;9704:93;9793:3;9704:93;:::i;:::-;9822:2;9817:3;9813:12;9806:19;;9465:366;;;:::o;9837:419::-;10003:4;10041:2;10030:9;10026:18;10018:26;;10090:9;10084:4;10080:20;10076:1;10065:9;10061:17;10054:47;10118:131;10244:4;10118:131;:::i;:::-;10110:139;;9837:419;;;:::o;10262:180::-;10310:77;10307:1;10300:88;10407:4;10404:1;10397:15;10431:4;10428:1;10421:15;10448:410;10488:7;10511:20;10529:1;10511:20;:::i;:::-;10506:25;;10545:20;10563:1;10545:20;:::i;:::-;10540:25;;10600:1;10597;10593:9;10622:30;10640:11;10622:30;:::i;:::-;10611:41;;10801:1;10792:7;10788:15;10785:1;10782:22;10762:1;10755:9;10735:83;10712:139;;10831:18;;:::i;:::-;10712:139;10496:362;10448:410;;;;:::o;10864:180::-;10912:77;10909:1;10902:88;11009:4;11006:1;10999:15;11033:4;11030:1;11023:15;11050:185;11090:1;11107:20;11125:1;11107:20;:::i;:::-;11102:25;;11141:20;11159:1;11141:20;:::i;:::-;11136:25;;11180:1;11170:35;;11185:18;;:::i;:::-;11170:35;11227:1;11224;11220:9;11215:14;;11050:185;;;;:::o;11241:234::-;11381:34;11377:1;11369:6;11365:14;11358:58;11450:17;11445:2;11437:6;11433:15;11426:42;11241:234;:::o;11481:366::-;11623:3;11644:67;11708:2;11703:3;11644:67;:::i;:::-;11637:74;;11720:93;11809:3;11720:93;:::i;:::-;11838:2;11833:3;11829:12;11822:19;;11481:366;;;:::o;11853:419::-;12019:4;12057:2;12046:9;12042:18;12034:26;;12106:9;12100:4;12096:20;12092:1;12081:9;12077:17;12070:47;12134:131;12260:4;12134:131;:::i;:::-;12126:139;;11853:419;;;:::o;12278:227::-;12418:34;12414:1;12406:6;12402:14;12395:58;12487:10;12482:2;12474:6;12470:15;12463:35;12278:227;:::o;12511:366::-;12653:3;12674:67;12738:2;12733:3;12674:67;:::i;:::-;12667:74;;12750:93;12839:3;12750:93;:::i;:::-;12868:2;12863:3;12859:12;12852:19;;12511:366;;;:::o;12883:419::-;13049:4;13087:2;13076:9;13072:18;13064:26;;13136:9;13130:4;13126:20;13122:1;13111:9;13107:17;13100:47;13164:131;13290:4;13164:131;:::i;:::-;13156:139;;12883:419;;;:::o;13308:191::-;13348:3;13367:20;13385:1;13367:20;:::i;:::-;13362:25;;13401:20;13419:1;13401:20;:::i;:::-;13396:25;;13444:1;13441;13437:9;13430:16;;13465:3;13462:1;13459:10;13456:36;;;13472:18;;:::i;:::-;13456:36;13308:191;;;;:::o;13505:147::-;13606:11;13643:3;13628:18;;13505:147;;;;:::o;13658:114::-;;:::o;13778:398::-;13937:3;13958:83;14039:1;14034:3;13958:83;:::i;:::-;13951:90;;14050:93;14139:3;14050:93;:::i;:::-;14168:1;14163:3;14159:11;14152:18;;13778:398;;;:::o;14182:379::-;14366:3;14388:147;14531:3;14388:147;:::i;:::-;14381:154;;14552:3;14545:10;;14182:379;;;:::o;14567:162::-;14707:14;14703:1;14695:6;14691:14;14684:38;14567:162;:::o;14735:366::-;14877:3;14898:67;14962:2;14957:3;14898:67;:::i;:::-;14891:74;;14974:93;15063:3;14974:93;:::i;:::-;15092:2;15087:3;15083:12;15076:19;;14735:366;;;:::o;15107:419::-;15273:4;15311:2;15300:9;15296:18;15288:26;;15360:9;15354:4;15350:20;15346:1;15335:9;15331:17;15324:47;15388:131;15514:4;15388:131;:::i;:::-;15380:139;;15107:419;;;:::o;15532:244::-;15672:34;15668:1;15660:6;15656:14;15649:58;15741:27;15736:2;15728:6;15724:15;15717:52;15532:244;:::o;15782:366::-;15924:3;15945:67;16009:2;16004:3;15945:67;:::i;:::-;15938:74;;16021:93;16110:3;16021:93;:::i;:::-;16139:2;16134:3;16130:12;16123:19;;15782:366;;;:::o;16154:419::-;16320:4;16358:2;16347:9;16343:18;16335:26;;16407:9;16401:4;16397:20;16393:1;16382:9;16378:17;16371:47;16435:131;16561:4;16435:131;:::i;:::-;16427:139;;16154:419;;;:::o;16579:224::-;16719:34;16715:1;16707:6;16703:14;16696:58;16788:7;16783:2;16775:6;16771:15;16764:32;16579:224;:::o;16809:366::-;16951:3;16972:67;17036:2;17031:3;16972:67;:::i;:::-;16965:74;;17048:93;17137:3;17048:93;:::i;:::-;17166:2;17161:3;17157:12;17150:19;;16809:366;;;:::o;17181:419::-;17347:4;17385:2;17374:9;17370:18;17362:26;;17434:9;17428:4;17424:20;17420:1;17409:9;17405:17;17398:47;17462:131;17588:4;17462:131;:::i;:::-;17454:139;;17181:419;;;:::o;17606:223::-;17746:34;17742:1;17734:6;17730:14;17723:58;17815:6;17810:2;17802:6;17798:15;17791:31;17606:223;:::o;17835:366::-;17977:3;17998:67;18062:2;18057:3;17998:67;:::i;:::-;17991:74;;18074:93;18163:3;18074:93;:::i;:::-;18192:2;18187:3;18183:12;18176:19;;17835:366;;;:::o;18207:419::-;18373:4;18411:2;18400:9;18396:18;18388:26;;18460:9;18454:4;18450:20;18446:1;18435:9;18431:17;18424:47;18488:131;18614:4;18488:131;:::i;:::-;18480:139;;18207:419;;;:::o;18632:225::-;18772:34;18768:1;18760:6;18756:14;18749:58;18841:8;18836:2;18828:6;18824:15;18817:33;18632:225;:::o;18863:366::-;19005:3;19026:67;19090:2;19085:3;19026:67;:::i;:::-;19019:74;;19102:93;19191:3;19102:93;:::i;:::-;19220:2;19215:3;19211:12;19204:19;;18863:366;;;:::o;19235:419::-;19401:4;19439:2;19428:9;19424:18;19416:26;;19488:9;19482:4;19478:20;19474:1;19463:9;19459:17;19452:47;19516:131;19642:4;19516:131;:::i;:::-;19508:139;;19235:419;;;:::o;19660:223::-;19800:34;19796:1;19788:6;19784:14;19777:58;19869:6;19864:2;19856:6;19852:15;19845:31;19660:223;:::o;19889:366::-;20031:3;20052:67;20116:2;20111:3;20052:67;:::i;:::-;20045:74;;20128:93;20217:3;20128:93;:::i;:::-;20246:2;20241:3;20237:12;20230:19;;19889:366;;;:::o;20261:419::-;20427:4;20465:2;20454:9;20450:18;20442:26;;20514:9;20508:4;20504:20;20500:1;20489:9;20485:17;20478:47;20542:131;20668:4;20542:131;:::i;:::-;20534:139;;20261:419;;;:::o;20686:221::-;20826:34;20822:1;20814:6;20810:14;20803:58;20895:4;20890:2;20882:6;20878:15;20871:29;20686:221;:::o;20913:366::-;21055:3;21076:67;21140:2;21135:3;21076:67;:::i;:::-;21069:74;;21152:93;21241:3;21152:93;:::i;:::-;21270:2;21265:3;21261:12;21254:19;;20913:366;;;:::o;21285:419::-;21451:4;21489:2;21478:9;21474:18;21466:26;;21538:9;21532:4;21528:20;21524:1;21513:9;21509:17;21502:47;21566:131;21692:4;21566:131;:::i;:::-;21558:139;;21285:419;;;:::o;21710:224::-;21850:34;21846:1;21838:6;21834:14;21827:58;21919:7;21914:2;21906:6;21902:15;21895:32;21710:224;:::o;21940:366::-;22082:3;22103:67;22167:2;22162:3;22103:67;:::i;:::-;22096:74;;22179:93;22268:3;22179:93;:::i;:::-;22297:2;22292:3;22288:12;22281:19;;21940:366;;;:::o;22312:419::-;22478:4;22516:2;22505:9;22501:18;22493:26;;22565:9;22559:4;22555:20;22551:1;22540:9;22536:17;22529:47;22593:131;22719:4;22593:131;:::i;:::-;22585:139;;22312:419;;;:::o;22737:222::-;22877:34;22873:1;22865:6;22861:14;22854:58;22946:5;22941:2;22933:6;22929:15;22922:30;22737:222;:::o;22965:366::-;23107:3;23128:67;23192:2;23187:3;23128:67;:::i;:::-;23121:74;;23204:93;23293:3;23204:93;:::i;:::-;23322:2;23317:3;23313:12;23306:19;;22965:366;;;:::o;23337:419::-;23503:4;23541:2;23530:9;23526:18;23518:26;;23590:9;23584:4;23580:20;23576:1;23565:9;23561:17;23554:47;23618:131;23744:4;23618:131;:::i;:::-;23610:139;;23337:419;;;:::o;23762:172::-;23902:24;23898:1;23890:6;23886:14;23879:48;23762:172;:::o;23940:366::-;24082:3;24103:67;24167:2;24162:3;24103:67;:::i;:::-;24096:74;;24179:93;24268:3;24179:93;:::i;:::-;24297:2;24292:3;24288:12;24281:19;;23940:366;;;:::o;24312:419::-;24478:4;24516:2;24505:9;24501:18;24493:26;;24565:9;24559:4;24555:20;24551:1;24540:9;24536:17;24529:47;24593:131;24719:4;24593:131;:::i;:::-;24585:139;;24312:419;;;:::o;24737:240::-;24877:34;24873:1;24865:6;24861:14;24854:58;24946:23;24941:2;24933:6;24929:15;24922:48;24737:240;:::o;24983:366::-;25125:3;25146:67;25210:2;25205:3;25146:67;:::i;:::-;25139:74;;25222:93;25311:3;25222:93;:::i;:::-;25340:2;25335:3;25331:12;25324:19;;24983:366;;;:::o;25355:419::-;25521:4;25559:2;25548:9;25544:18;25536:26;;25608:9;25602:4;25598:20;25594:1;25583:9;25579:17;25572:47;25636:131;25762:4;25636:131;:::i;:::-;25628:139;;25355:419;;;:::o;25780:169::-;25920:21;25916:1;25908:6;25904:14;25897:45;25780:169;:::o;25955:366::-;26097:3;26118:67;26182:2;26177:3;26118:67;:::i;:::-;26111:74;;26194:93;26283:3;26194:93;:::i;:::-;26312:2;26307:3;26303:12;26296:19;;25955:366;;;:::o;26327:419::-;26493:4;26531:2;26520:9;26516:18;26508:26;;26580:9;26574:4;26570:20;26566:1;26555:9;26551:17;26544:47;26608:131;26734:4;26608:131;:::i;:::-;26600:139;;26327:419;;;:::o;26752:241::-;26892:34;26888:1;26880:6;26876:14;26869:58;26961:24;26956:2;26948:6;26944:15;26937:49;26752:241;:::o;26999:366::-;27141:3;27162:67;27226:2;27221:3;27162:67;:::i;:::-;27155:74;;27238:93;27327:3;27238:93;:::i;:::-;27356:2;27351:3;27347:12;27340:19;;26999:366;;;:::o;27371:419::-;27537:4;27575:2;27564:9;27560:18;27552:26;;27624:9;27618:4;27614:20;27610:1;27599:9;27595:17;27588:47;27652:131;27778:4;27652:131;:::i;:::-;27644:139;;27371:419;;;:::o;27796:194::-;27836:4;27856:20;27874:1;27856:20;:::i;:::-;27851:25;;27890:20;27908:1;27890:20;:::i;:::-;27885:25;;27934:1;27931;27927:9;27919:17;;27958:1;27952:4;27949:11;27946:37;;;27963:18;;:::i;:::-;27946:37;27796:194;;;;:::o;27996:180::-;28044:77;28041:1;28034:88;28141:4;28138:1;28131:15;28165:4;28162:1;28155:15;28182:180;28230:77;28227:1;28220:88;28327:4;28324:1;28317:15;28351:4;28348:1;28341:15;28368:143;28425:5;28456:6;28450:13;28441:22;;28472:33;28499:5;28472:33;:::i;:::-;28368:143;;;;:::o;28517:351::-;28587:6;28636:2;28624:9;28615:7;28611:23;28607:32;28604:119;;;28642:79;;:::i;:::-;28604:119;28762:1;28787:64;28843:7;28834:6;28823:9;28819:22;28787:64;:::i;:::-;28777:74;;28733:128;28517:351;;;;:::o;28874:85::-;28919:7;28948:5;28937:16;;28874:85;;;:::o;28965:158::-;29023:9;29056:61;29074:42;29083:32;29109:5;29083:32;:::i;:::-;29074:42;:::i;:::-;29056:61;:::i;:::-;29043:74;;28965:158;;;:::o;29129:147::-;29224:45;29263:5;29224:45;:::i;:::-;29219:3;29212:58;29129:147;;:::o;29282:114::-;29349:6;29383:5;29377:12;29367:22;;29282:114;;;:::o;29402:184::-;29501:11;29535:6;29530:3;29523:19;29575:4;29570:3;29566:14;29551:29;;29402:184;;;;:::o;29592:132::-;29659:4;29682:3;29674:11;;29712:4;29707:3;29703:14;29695:22;;29592:132;;;:::o;29730:108::-;29807:24;29825:5;29807:24;:::i;:::-;29802:3;29795:37;29730:108;;:::o;29844:179::-;29913:10;29934:46;29976:3;29968:6;29934:46;:::i;:::-;30012:4;30007:3;30003:14;29989:28;;29844:179;;;;:::o;30029:113::-;30099:4;30131;30126:3;30122:14;30114:22;;30029:113;;;:::o;30178:732::-;30297:3;30326:54;30374:5;30326:54;:::i;:::-;30396:86;30475:6;30470:3;30396:86;:::i;:::-;30389:93;;30506:56;30556:5;30506:56;:::i;:::-;30585:7;30616:1;30601:284;30626:6;30623:1;30620:13;30601:284;;;30702:6;30696:13;30729:63;30788:3;30773:13;30729:63;:::i;:::-;30722:70;;30815:60;30868:6;30815:60;:::i;:::-;30805:70;;30661:224;30648:1;30645;30641:9;30636:14;;30601:284;;;30605:14;30901:3;30894:10;;30302:608;;;30178:732;;;;:::o;30916:831::-;31179:4;31217:3;31206:9;31202:19;31194:27;;31231:71;31299:1;31288:9;31284:17;31275:6;31231:71;:::i;:::-;31312:80;31388:2;31377:9;31373:18;31364:6;31312:80;:::i;:::-;31439:9;31433:4;31429:20;31424:2;31413:9;31409:18;31402:48;31467:108;31570:4;31561:6;31467:108;:::i;:::-;31459:116;;31585:72;31653:2;31642:9;31638:18;31629:6;31585:72;:::i;:::-;31667:73;31735:3;31724:9;31720:19;31711:6;31667:73;:::i;:::-;30916:831;;;;;;;;:::o;31753:225::-;31893:34;31889:1;31881:6;31877:14;31870:58;31962:8;31957:2;31949:6;31945:15;31938:33;31753:225;:::o;31984:366::-;32126:3;32147:67;32211:2;32206:3;32147:67;:::i;:::-;32140:74;;32223:93;32312:3;32223:93;:::i;:::-;32341:2;32336:3;32332:12;32325:19;;31984:366;;;:::o;32356:419::-;32522:4;32560:2;32549:9;32545:18;32537:26;;32609:9;32603:4;32599:20;32595:1;32584:9;32580:17;32573:47;32637:131;32763:4;32637:131;:::i;:::-;32629:139;;32356:419;;;:::o

Swarm Source

ipfs://0f37e6d75d44a9e6e0fe919dde7a00e476db26fcb0886e9495c75ebe44d7cb9a
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.