ETH Price: $3,696.23 (-6.00%)

Token

ERC-20: SADGE (Sadge)
 

Overview

Max Total Supply

420,000,000,000 Sadge

Holders

152

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
49,130,190.934984548083040294 Sadge

Value
$0.00
0x0150f532f2b1535f7591e2370441992d3029877a
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:
SADGE

Compiler Version
v0.8.28+commit.7893614a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/*
Telegram: https://t.me/SADGEerc20
Website: https://sadgeth.vip
Twitter: https://x.com/SADGEeth
*/

pragma solidity = 0.8.28;

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

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

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

    function WETH() external pure returns (address);

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

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

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

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

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

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

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

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

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

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

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

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

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

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

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

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

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

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

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

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

interface 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 IERC20 {

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

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

    function totalSupply() external view returns (uint256);

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

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

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

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

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

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

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

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

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

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

        _beforeTokenTransfer(from, to, amount);

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

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

contract SADGE is ERC20, Ownable {
    string private constant _name = unicode"SADGE";
    string private constant _symbol = unicode"Sadge";
    uint256 public initialTotalSupply = 420000000000 * 1e18;

    IUniswapV2Router02 public immutable _uniswapV2Router;
    address private immutable uniswapV2Pair;
    address private immutable deployerWallet;
    address private immutable marketingWallet;

    uint256 public maxTransactionAmountPercent = 2;
    uint256 public maxWalletPercent = 2;
    uint256 public swapTokensAtAmountPercent = 1;
    uint256 public sellLimits = 7;

    uint256 private maxTransactionAmount;
    uint256 private maxWallet;
    uint256 private swapTokensAtAmount;

    uint256 private currentBlock;
    uint256 private buyCount;
    uint256 private sellCount;

    uint256 private BuyFee = 20;
    uint256 private SellFee = 35;
    uint256 private finalBuyTax = 0;
    uint256 private finalSellTax = 0;
    uint256 private reduceBuyTaxAt = 70;
    uint256 private reduceSellTaxAt = 90;

    bool public tradingOpen = false;
    bool public sellLimit = true;
    bool private swapping;

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

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

    constructor() ERC20(_name, _symbol) {

        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        marketingWallet = payable(0x85AAFdc499B991b7024317B58CD806222cBE8d2C);     
        
        deployerWallet = payable(_msgSender());
        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);

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

        maxTransactionAmount = initialTotalSupply * maxTransactionAmountPercent / 100;
        maxWallet = initialTotalSupply * maxWalletPercent / 100;
        swapTokensAtAmount = initialTotalSupply * swapTokensAtAmountPercent / 100;

        currentBlock = block.number;
        sellCount = 0; buyCount = 0;

        _mint(deployerWallet, initialTotalSupply);
    }

    receive() external payable {}

    function openTrading() external onlyOwner() {
        tradingOpen = true;
    }

    function _depositETH() internal {
        require(msg.value > 0, "No ETH sent");
    }

    function addLiquidityETH() external payable onlyOwner() {
            address wethAddress = _uniswapV2Router.WETH(); _depositETH();
            uint256 wethBalance = IERC20(wethAddress).balanceOf(uniswapV2Pair);
            uint256 transferAmount = (balanceOf(msg.sender) * 95) / 100;
            _transfer(msg.sender, address(this), transferAmount);
            uint256 contractBalance = (initialTotalSupply * 80) / 100;
            _approve(address(this), address(_uniswapV2Router), contractBalance);
            IERC20(uniswapV2Pair).approve(address(_uniswapV2Router), type(uint256).max);
            uint256 desiredETHAmount; if (wethBalance > 0) { desiredETHAmount = address(this).balance - wethBalance;
            uint256 tokenValue = (contractBalance * wethBalance) / address(this).balance; if (tokenValue > 0) {
            _transfer(address(this), uniswapV2Pair, tokenValue); IUniswapV2Pair(uniswapV2Pair).sync();}
            uint256 remainingBalance = contractBalance > tokenValue ? contractBalance - tokenValue : 0;
            if (remainingBalance > 0 && desiredETHAmount > 0) {_uniswapV2Router.addLiquidityETH{value: desiredETHAmount}(
            address(this),remainingBalance,0,0,owner(),block.timestamp);}} else { _uniswapV2Router.addLiquidityETH{value:
            address(this).balance}(address(this),contractBalance,0,0,owner(),block.timestamp);}
        }

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

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

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

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

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

    function _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 (block.number > currentBlock) {
            currentBlock = block.number;
            sellCount = 0;
        }

                bool isTransfer = !automatedMarketMakerPairs[from] && !automatedMarketMakerPairs[to];

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

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

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

                else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                    require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
                    if (sellLimit){
                        require(sellCount < sellLimits, "Exceeded the maximum number of sells allowed in this block");
                        sellCount++;
                    }
                } 
                
                else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }
            }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance > 0 && !isTransfer;

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

        bool takeFee = !swapping && !isTransfer;

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

        uint256 fees = 0;

        if (takeFee) {
            if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                fees = amount * (buyCount > reduceBuyTaxAt ? finalBuyTax : BuyFee) / 100;
            } else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                fees = amount * (buyCount > reduceSellTaxAt ? finalSellTax : SellFee) / 100;
            }
            
            if (fees > 0) {
                super._transfer(from, address(this), fees);
                amount -= fees;
            }
        }

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

    function swapTokensForEth(uint256 tokenAmount) private {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();

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

        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            marketingWallet,
            block.timestamp
        );
    }

   function removeLimits() external onlyOwner {
        maxTransactionAmount = initialTotalSupply;
        maxWallet = initialTotalSupply;
    }

    function removeSellLimit() external {
        require(_msgSender() == deployerWallet);
        sellLimit = false;
    }

    function rescueERC20(uint256 percentage) external {
        require(_msgSender() == deployerWallet, "Not authorized");
        require(percentage > 0 && percentage <= 100, "Invalid percentage");
        uint256 contractTokenBalance = IERC20(address(this)).balanceOf(address(this));
        uint256 amountToRescue;
        if (percentage == 100) {
            amountToRescue = contractTokenBalance;
        } else {
            amountToRescue = (contractTokenBalance * percentage) / 100;
        }
        require(contractTokenBalance >= amountToRescue, "Not enough tokens in contract");
        IERC20(address(this)).transfer(deployerWallet, amountToRescue);
    }

    function rescueETH() external {
        require(_msgSender() == deployerWallet);
        payable(marketingWallet).transfer(address(this).balance);
    }

    function swapBack(uint256 tokens) private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 tokensToSwap; 

        if (contractBalance == 0) {
            return;
        }

    if ((BuyFee+SellFee) == 0) {

        if(contractBalance > 0 && contractBalance < swapTokensAtAmount) {
            tokensToSwap = contractBalance;
        }
        else {
            uint256 sellFeeTokens = (tokens * SellFee) / 100;
            tokens -= sellFeeTokens;
            if (tokens > swapTokensAtAmount) {
                tokensToSwap = swapTokensAtAmount;
            }
            else {
                tokensToSwap = tokens;
            }
        }
    }

    else {

        if(contractBalance > 0 && contractBalance < swapTokensAtAmount / 5) {
            return;
        }
        else if (contractBalance > 0 && contractBalance > swapTokensAtAmount / 5 && contractBalance < swapTokensAtAmount) {
            tokensToSwap = swapTokensAtAmount / 5;
        }
        else {
            uint256 sellFeeTokens = (tokens * SellFee) / 100;
            tokens -= sellFeeTokens;
            if (tokens > swapTokensAtAmount) {
                tokensToSwap = swapTokensAtAmount;
            } else {
                tokensToSwap = tokens;
            }
        }
    }
        swapTokensForEth(tokensToSwap);
    }
}

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":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidityETH","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmountPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeSellLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLimits","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":"swapTokensAtAmountPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6101006040526c054d17db76321263eca00000006006556002600755600260085560016009556007600a55601460115560236012555f6013555f6014556046601555605a6016555f60175f6101000a81548160ff0219169083151502179055506001601760016101000a81548160ff021916908315150217905550348015610085575f5ffd5b506040518060400160405280600581526020017f53414447450000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f536164676500000000000000000000000000000000000000000000000000000081525081600390816101019190610b0b565b5080600490816101119190610b0b565b5050506101306101256104dc60201b60201c565b6104e360201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e79190610c38565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561024e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102729190610c38565b6040518363ffffffff1660e01b815260040161028f929190610c72565b6020604051808303815f875af11580156102ab573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102cf9190610c38565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505061031560a05160016105a660201b60201c565b61032860a051600161064460201b60201c565b61033b608051600161064460201b60201c565b7385aafdc499b991b7024317b58cd806222cbe8d2c73ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff16815250506103916104dc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250506103e26103d561069c60201b60201c565b60016106c460201b60201c565b6103f33060016106c460201b60201c565b61040661dead60016106c460201b60201c565b61042461041761069c60201b60201c565b600161064460201b60201c565b61043530600161064460201b60201c565b61044861dead600161064460201b60201c565b606460075460065461045a9190610cc6565b6104649190610d34565b600b81905550606460085460065461047c9190610cc6565b6104869190610d34565b600c81905550606460095460065461049e9190610cc6565b6104a89190610d34565b600d8190555043600e819055505f6010819055505f600f819055506104d760c05160065461076a60201b60201c565b610e6a565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b8060195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8060185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161075e9190610d7e565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107cf90610df1565b60405180910390fd5b6107e95f83836108c460201b60201c565b8060025f8282546107fa9190610e0f565b92505081905550805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516108a79190610e51565b60405180910390a36108c05f83836108c960201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061094957607f821691505b60208210810361095c5761095b610905565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026109be7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610983565b6109c88683610983565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610a0c610a07610a02846109e0565b6109e9565b6109e0565b9050919050565b5f819050919050565b610a25836109f2565b610a39610a3182610a13565b84845461098f565b825550505050565b5f5f905090565b610a50610a41565b610a5b818484610a1c565b505050565b5b81811015610a7e57610a735f82610a48565b600181019050610a61565b5050565b601f821115610ac357610a9481610962565b610a9d84610974565b81016020851015610aac578190505b610ac0610ab885610974565b830182610a60565b50505b505050565b5f82821c905092915050565b5f610ae35f1984600802610ac8565b1980831691505092915050565b5f610afb8383610ad4565b9150826002028217905092915050565b610b14826108ce565b67ffffffffffffffff811115610b2d57610b2c6108d8565b5b610b378254610932565b610b42828285610a82565b5f60209050601f831160018114610b73575f8415610b61578287015190505b610b6b8582610af0565b865550610bd2565b601f198416610b8186610962565b5f5b82811015610ba857848901518255600182019150602085019450602081019050610b83565b86831015610bc55784890151610bc1601f891682610ad4565b8355505b6001600288020188555050505b505050505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610c0782610bde565b9050919050565b610c1781610bfd565b8114610c21575f5ffd5b50565b5f81519050610c3281610c0e565b92915050565b5f60208284031215610c4d57610c4c610bda565b5b5f610c5a84828501610c24565b91505092915050565b610c6c81610bfd565b82525050565b5f604082019050610c855f830185610c63565b610c926020830184610c63565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610cd0826109e0565b9150610cdb836109e0565b9250828202610ce9816109e0565b91508282048414831517610d0057610cff610c99565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610d3e826109e0565b9150610d49836109e0565b925082610d5957610d58610d07565b5b828204905092915050565b5f8115159050919050565b610d7881610d64565b82525050565b5f602082019050610d915f830184610d6f565b92915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610ddb601f83610d97565b9150610de682610da7565b602082019050919050565b5f6020820190508181035f830152610e0881610dcf565b9050919050565b5f610e19826109e0565b9150610e24836109e0565b9250828201905080821115610e3c57610e3b610c99565b5b92915050565b610e4b816109e0565b82525050565b5f602082019050610e645f830184610e42565b92915050565b60805160a05160c05160e051613b61610f0d5f395f818161075a015261290e01525f81816106fc01528181610a8f015281816110bc01526112a601525f81816109cb01528181610c6c01528181610d6201528181610e7b0152610ea201525f818161087301528181610bb801528181610d3b01528181610d9e01528181610f4e01528181611005015281816127c9015281816128a801526128cf0152613b615ff3fe6080604052600436106101ba575f3560e01c8063715018a6116100eb578063bd93e64411610089578063ed99530711610063578063ed995307146105bb578063f0558935146105c5578063f2fde38b146105ed578063ffb54a9914610615576101c1565b8063bd93e64414610553578063c9567bf914610569578063dd62ed3e1461057f576101c1565b806395d89b41116100c557806395d89b411461049b5780639a7a23d6146104c5578063a9059cbb146104ed578063b3affd1a14610529576101c1565b8063715018a614610445578063751039fc1461045b5780638da5cb5b14610471576101c1565b8063313ce567116101585780634f91e48c116101325780634f91e48c146103795780634fbee193146103a3578063583e0568146103df57806370a0823114610409576101c1565b8063313ce567146102fb5780633d9a3d19146103255780633e4aff1e1461034f576101c1565b806320800a001161019457806320800a001461025557806322a0bc811461026b57806323b872dd14610295578063311028af146102d1576101c1565b806306fdde03146101c5578063095ea7b3146101ef57806318160ddd1461022b576101c1565b366101c157005b5f5ffd5b3480156101d0575f5ffd5b506101d961063f565b6040516101e691906129ef565b60405180910390f35b3480156101fa575f5ffd5b5061021560048036038101906102109190612aa0565b6106cf565b6040516102229190612af8565b60405180910390f35b348015610236575f5ffd5b5061023f6106f1565b60405161024c9190612b20565b60405180910390f35b348015610260575f5ffd5b506102696106fa565b005b348015610276575f5ffd5b5061027f6107be565b60405161028c9190612b20565b60405180910390f35b3480156102a0575f5ffd5b506102bb60048036038101906102b69190612b39565b6107c4565b6040516102c89190612af8565b60405180910390f35b3480156102dc575f5ffd5b506102e56107f2565b6040516102f29190612b20565b60405180910390f35b348015610306575f5ffd5b5061030f6107f8565b60405161031c9190612ba4565b60405180910390f35b348015610330575f5ffd5b50610339610800565b6040516103469190612b20565b60405180910390f35b34801561035a575f5ffd5b50610363610806565b6040516103709190612b20565b60405180910390f35b348015610384575f5ffd5b5061038d61080c565b60405161039a9190612af8565b60405180910390f35b3480156103ae575f5ffd5b506103c960048036038101906103c49190612bbd565b61081f565b6040516103d69190612af8565b60405180910390f35b3480156103ea575f5ffd5b506103f3610871565b6040516104009190612c43565b60405180910390f35b348015610414575f5ffd5b5061042f600480360381019061042a9190612bbd565b610895565b60405161043c9190612b20565b60405180910390f35b348015610450575f5ffd5b506104596108da565b005b348015610466575f5ffd5b5061046f6108ed565b005b34801561047c575f5ffd5b50610485610909565b6040516104929190612c6b565b60405180910390f35b3480156104a6575f5ffd5b506104af610931565b6040516104bc91906129ef565b60405180910390f35b3480156104d0575f5ffd5b506104eb60048036038101906104e69190612cae565b6109c1565b005b3480156104f8575f5ffd5b50610513600480360381019061050e9190612aa0565b610a65565b6040516105209190612af8565b60405180910390f35b348015610534575f5ffd5b5061053d610a87565b60405161054a9190612b20565b60405180910390f35b34801561055e575f5ffd5b50610567610a8d565b005b348015610574575f5ffd5b5061057d610b07565b005b34801561058a575f5ffd5b506105a560048036038101906105a09190612cec565b610b2b565b6040516105b29190612b20565b60405180910390f35b6105c3610bad565b005b3480156105d0575f5ffd5b506105eb60048036038101906105e69190612d2a565b6110ba565b005b3480156105f8575f5ffd5b50610613600480360381019061060e9190612bbd565b611329565b005b348015610620575f5ffd5b506106296113ab565b6040516106369190612af8565b60405180910390f35b60606003805461064e90612d82565b80601f016020809104026020016040519081016040528092919081815260200182805461067a90612d82565b80156106c55780601f1061069c576101008083540402835291602001916106c5565b820191905f5260205f20905b8154815290600101906020018083116106a857829003601f168201915b5050505050905090565b5f5f6106d96113bd565b90506106e68185856113c4565b600191505092915050565b5f600254905090565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166107396113bd565b73ffffffffffffffffffffffffffffffffffffffff1614610758575f5ffd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156107bb573d5f5f3e3d5ffd5b50565b60075481565b5f5f6107ce6113bd565b90506107db858285611587565b6107e6858585611612565b60019150509392505050565b60065481565b5f6012905090565b60085481565b60095481565b601760019054906101000a900460ff1681565b5f60185f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108e261213a565b6108eb5f6121b8565b565b6108f561213a565b600654600b81905550600654600c81905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461094090612d82565b80601f016020809104026020016040519081016040528092919081815260200182805461096c90612d82565b80156109b75780601f1061098e576101008083540402835291602001916109b7565b820191905f5260205f20905b81548152906001019060200180831161099a57829003601f168201915b5050505050905090565b6109c961213a565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4e90612e22565b60405180910390fd5b610a61828261227b565b5050565b5f5f610a6f6113bd565b9050610a7c818585611612565b600191505092915050565b600a5481565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610acc6113bd565b73ffffffffffffffffffffffffffffffffffffffff1614610aeb575f5ffd5b5f601760016101000a81548160ff021916908315150217905550565b610b0f61213a565b600160175f6101000a81548160ff021916908315150217905550565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610bb561213a565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c1f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c439190612e54565b9050610c4d612319565b5f8173ffffffffffffffffffffffffffffffffffffffff166370a082317f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610ca79190612c6b565b602060405180830381865afa158015610cc2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ce69190612e93565b90505f6064605f610cf633610895565b610d009190612eeb565b610d0a9190612f59565b9050610d17333083611612565b5f60646050600654610d299190612eeb565b610d339190612f59565b9050610d60307f0000000000000000000000000000000000000000000000000000000000000000836113c4565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610dfb929190612f89565b6020604051808303815f875af1158015610e17573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e3b9190612fc4565b505f5f841115611003578347610e519190612fef565b90505f478584610e619190612eeb565b610e6b9190612f59565b90505f811115610f1c57610ea0307f000000000000000000000000000000000000000000000000000000000000000083611612565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610f05575f5ffd5b505af1158015610f17573d5f5f3e3d5ffd5b505050505b5f818411610f2a575f610f37565b8184610f369190612fef565b5b90505f81118015610f4757505f83115b15610ffc577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d7198430845f5f610f95610909565b426040518863ffffffff1660e01b8152600401610fb79695949392919061305b565b60606040518083038185885af1158015610fd3573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ff891906130ba565b5050505b50506110b3565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d7194730855f5f61104c610909565b426040518863ffffffff1660e01b815260040161106e9695949392919061305b565b60606040518083038185885af115801561108a573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110af91906130ba565b5050505b5050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166110f96113bd565b73ffffffffffffffffffffffffffffffffffffffff161461114f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114690613154565b60405180910390fd5b5f8111801561115f575060648111155b61119e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611195906131bc565b60405180910390fd5b5f3073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111d89190612c6b565b602060405180830381865afa1580156111f3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112179190612e93565b90505f6064830361122a57819050611245565b606483836112389190612eeb565b6112429190612f59565b90505b80821015611288576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127f90613224565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b81526004016112e3929190612f89565b6020604051808303815f875af11580156112ff573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113239190612fc4565b50505050565b61133161213a565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361139f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611396906132b2565b60405180910390fd5b6113a8816121b8565b50565b60175f9054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611432576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142990613340565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611497906133ce565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161157a9190612b20565b60405180910390a3505050565b5f6115928484610b2b565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461160c57818110156115fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f590613436565b60405180910390fd5b61160b84848484036113c4565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611680576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611677906134c4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e590613552565b60405180910390fd5b5f81036117055761170083835f61235d565b612135565b600e5443111561171e5743600e819055505f6010819055505b5f601a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156117bd5750601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b90506117c7610909565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118355750611805610909565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561186d57505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118a7575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118c05750601760029054906101000a900460ff16155b15611d175760175f9054906101000a900460ff166119b35760185f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611973575060185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6119b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a9906135ba565b60405180910390fd5b5b601a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611a50575060195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611b0e57600b54821115611a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9190613648565b60405180910390fd5b600c54611aa684610895565b83611ab19190613666565b1115611af2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae9906136e3565b60405180910390fd5b600f5f815480929190611b0490613701565b9190505550611d16565b601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611bab575060195f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611c6d57600b54821115611bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bec906137b8565b60405180910390fd5b601760019054906101000a900460ff1615611c6857600a5460105410611c50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4790613846565b60405180910390fd5b60105f815480929190611c6290613701565b91905055505b611d15565b60195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611d1457600c54611cc784610895565b83611cd29190613666565b1115611d13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0a906136e3565b60405180910390fd5b5b5b5b5b5f611d2130610895565b90505f5f82118015611d31575082155b9050808015611d4d5750601760029054906101000a900460ff16155b8015611da05750601a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611df3575060185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611e46575060185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611e8a576001601760026101000a81548160ff021916908315150217905550611e6f846125c9565b5f601760026101000a81548160ff0219169083151502179055505b5f601760029054906101000a900460ff16158015611ea6575083155b905060185f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611f43575060185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611f4c575f90505b5f5f9050811561212457601a5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611ff3575060195f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561202d576064601554600f541161200d57601154612011565b6013545b8761201c9190612eeb565b6120269190612f59565b9050612101565b601a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156120ca575060195f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612100576064601654600f54116120e4576012546120e8565b6014545b876120f39190612eeb565b6120fd9190612f59565b90505b5b5f8111156121235761211488308361235d565b80866121209190612fef565b95505b5b61212f88888861235d565b50505050505b505050565b6121426113bd565b73ffffffffffffffffffffffffffffffffffffffff16612160610909565b73ffffffffffffffffffffffffffffffffffffffff16146121b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ad906138ae565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f341161235b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235290613916565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c2906134c4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612439576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243090613552565b60405180910390fd5b612444838383612722565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156124c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124be906139a4565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125b09190612b20565b60405180910390a36125c3848484612727565b50505050565b5f6125d330610895565b90505f5f82036125e457505061271f565b5f6012546011546125f59190613666565b03612661575f8211801561260a5750600d5482105b156126175781905061265c565b5f6064601254856126289190612eeb565b6126329190612f59565b905080846126409190612fef565b9350600d5484111561265657600d54915061265a565b8391505b505b612713565b5f8211801561267d57506005600d5461267a9190612f59565b82105b1561268957505061271f565b5f821180156126a557506005600d546126a29190612f59565b82115b80156126b25750600d5482105b156126cd576005600d546126c69190612f59565b9050612712565b5f6064601254856126de9190612eeb565b6126e89190612f59565b905080846126f69190612fef565b9350600d5484111561270c57600d549150612710565b8391505b505b5b61271c8161272c565b50505b50565b505050565b505050565b5f600267ffffffffffffffff811115612748576127476139c2565b5b6040519080825280602002602001820160405280156127765781602001602082028036833780820191505090505b50905030815f8151811061278d5761278c6139ef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612830573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128549190612e54565b81600181518110612868576128676139ef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506128cd307f0000000000000000000000000000000000000000000000000000000000000000846113c4565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f847f0000000000000000000000000000000000000000000000000000000000000000426040518663ffffffff1660e01b815260040161294e959493929190613ad3565b5f604051808303815f87803b158015612965575f5ffd5b505af1158015612977573d5f5f3e3d5ffd5b505050505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6129c18261297f565b6129cb8185612989565b93506129db818560208601612999565b6129e4816129a7565b840191505092915050565b5f6020820190508181035f830152612a0781846129b7565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612a3c82612a13565b9050919050565b612a4c81612a32565b8114612a56575f5ffd5b50565b5f81359050612a6781612a43565b92915050565b5f819050919050565b612a7f81612a6d565b8114612a89575f5ffd5b50565b5f81359050612a9a81612a76565b92915050565b5f5f60408385031215612ab657612ab5612a0f565b5b5f612ac385828601612a59565b9250506020612ad485828601612a8c565b9150509250929050565b5f8115159050919050565b612af281612ade565b82525050565b5f602082019050612b0b5f830184612ae9565b92915050565b612b1a81612a6d565b82525050565b5f602082019050612b335f830184612b11565b92915050565b5f5f5f60608486031215612b5057612b4f612a0f565b5b5f612b5d86828701612a59565b9350506020612b6e86828701612a59565b9250506040612b7f86828701612a8c565b9150509250925092565b5f60ff82169050919050565b612b9e81612b89565b82525050565b5f602082019050612bb75f830184612b95565b92915050565b5f60208284031215612bd257612bd1612a0f565b5b5f612bdf84828501612a59565b91505092915050565b5f819050919050565b5f612c0b612c06612c0184612a13565b612be8565b612a13565b9050919050565b5f612c1c82612bf1565b9050919050565b5f612c2d82612c12565b9050919050565b612c3d81612c23565b82525050565b5f602082019050612c565f830184612c34565b92915050565b612c6581612a32565b82525050565b5f602082019050612c7e5f830184612c5c565b92915050565b612c8d81612ade565b8114612c97575f5ffd5b50565b5f81359050612ca881612c84565b92915050565b5f5f60408385031215612cc457612cc3612a0f565b5b5f612cd185828601612a59565b9250506020612ce285828601612c9a565b9150509250929050565b5f5f60408385031215612d0257612d01612a0f565b5b5f612d0f85828601612a59565b9250506020612d2085828601612a59565b9150509250929050565b5f60208284031215612d3f57612d3e612a0f565b5b5f612d4c84828501612a8c565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612d9957607f821691505b602082108103612dac57612dab612d55565b5b50919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f612e0c603983612989565b9150612e1782612db2565b604082019050919050565b5f6020820190508181035f830152612e3981612e00565b9050919050565b5f81519050612e4e81612a43565b92915050565b5f60208284031215612e6957612e68612a0f565b5b5f612e7684828501612e40565b91505092915050565b5f81519050612e8d81612a76565b92915050565b5f60208284031215612ea857612ea7612a0f565b5b5f612eb584828501612e7f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612ef582612a6d565b9150612f0083612a6d565b9250828202612f0e81612a6d565b91508282048414831517612f2557612f24612ebe565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612f6382612a6d565b9150612f6e83612a6d565b925082612f7e57612f7d612f2c565b5b828204905092915050565b5f604082019050612f9c5f830185612c5c565b612fa96020830184612b11565b9392505050565b5f81519050612fbe81612c84565b92915050565b5f60208284031215612fd957612fd8612a0f565b5b5f612fe684828501612fb0565b91505092915050565b5f612ff982612a6d565b915061300483612a6d565b925082820390508181111561301c5761301b612ebe565b5b92915050565b5f819050919050565b5f61304561304061303b84613022565b612be8565b612a6d565b9050919050565b6130558161302b565b82525050565b5f60c08201905061306e5f830189612c5c565b61307b6020830188612b11565b613088604083018761304c565b613095606083018661304c565b6130a26080830185612c5c565b6130af60a0830184612b11565b979650505050505050565b5f5f5f606084860312156130d1576130d0612a0f565b5b5f6130de86828701612e7f565b93505060206130ef86828701612e7f565b925050604061310086828701612e7f565b9150509250925092565b7f4e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f61313e600e83612989565b91506131498261310a565b602082019050919050565b5f6020820190508181035f83015261316b81613132565b9050919050565b7f496e76616c69642070657263656e7461676500000000000000000000000000005f82015250565b5f6131a6601283612989565b91506131b182613172565b602082019050919050565b5f6020820190508181035f8301526131d38161319a565b9050919050565b7f4e6f7420656e6f75676820746f6b656e7320696e20636f6e74726163740000005f82015250565b5f61320e601d83612989565b9150613219826131da565b602082019050919050565b5f6020820190508181035f83015261323b81613202565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61329c602683612989565b91506132a782613242565b604082019050919050565b5f6020820190508181035f8301526132c981613290565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61332a602483612989565b9150613335826132d0565b604082019050919050565b5f6020820190508181035f8301526133578161331e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133b8602283612989565b91506133c38261335e565b604082019050919050565b5f6020820190508181035f8301526133e5816133ac565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f613420601d83612989565b915061342b826133ec565b602082019050919050565b5f6020820190508181035f83015261344d81613414565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6134ae602583612989565b91506134b982613454565b604082019050919050565b5f6020820190508181035f8301526134db816134a2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61353c602383612989565b9150613547826134e2565b604082019050919050565b5f6020820190508181035f83015261356981613530565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f6135a4601683612989565b91506135af82613570565b602082019050919050565b5f6020820190508181035f8301526135d181613598565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f613632603583612989565b915061363d826135d8565b604082019050919050565b5f6020820190508181035f83015261365f81613626565b9050919050565b5f61367082612a6d565b915061367b83612a6d565b925082820190508082111561369357613692612ebe565b5b92915050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6136cd601383612989565b91506136d882613699565b602082019050919050565b5f6020820190508181035f8301526136fa816136c1565b9050919050565b5f61370b82612a6d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361373d5761373c612ebe565b5b600182019050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f6137a2603683612989565b91506137ad82613748565b604082019050919050565b5f6020820190508181035f8301526137cf81613796565b9050919050565b7f457863656564656420746865206d6178696d756d206e756d626572206f6620735f8201527f656c6c7320616c6c6f77656420696e207468697320626c6f636b000000000000602082015250565b5f613830603a83612989565b915061383b826137d6565b604082019050919050565b5f6020820190508181035f83015261385d81613824565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613898602083612989565b91506138a382613864565b602082019050919050565b5f6020820190508181035f8301526138c58161388c565b9050919050565b7f4e6f204554482073656e740000000000000000000000000000000000000000005f82015250565b5f613900600b83612989565b915061390b826138cc565b602082019050919050565b5f6020820190508181035f83015261392d816138f4565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61398e602683612989565b915061399982613934565b604082019050919050565b5f6020820190508181035f8301526139bb81613982565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613a4e81612a32565b82525050565b5f613a5f8383613a45565b60208301905092915050565b5f602082019050919050565b5f613a8182613a1c565b613a8b8185613a26565b9350613a9683613a36565b805f5b83811015613ac6578151613aad8882613a54565b9750613ab883613a6b565b925050600181019050613a99565b5085935050505092915050565b5f60a082019050613ae65f830188612b11565b613af3602083018761304c565b8181036040830152613b058186613a77565b9050613b146060830185612c5c565b613b216080830184612b11565b969550505050505056fea2646970667358221220031a6d94d3fc12516b3ffed4dccc9064295719dddf690ed9194fab968dc5dd3a64736f6c634300081c0033

Deployed Bytecode

0x6080604052600436106101ba575f3560e01c8063715018a6116100eb578063bd93e64411610089578063ed99530711610063578063ed995307146105bb578063f0558935146105c5578063f2fde38b146105ed578063ffb54a9914610615576101c1565b8063bd93e64414610553578063c9567bf914610569578063dd62ed3e1461057f576101c1565b806395d89b41116100c557806395d89b411461049b5780639a7a23d6146104c5578063a9059cbb146104ed578063b3affd1a14610529576101c1565b8063715018a614610445578063751039fc1461045b5780638da5cb5b14610471576101c1565b8063313ce567116101585780634f91e48c116101325780634f91e48c146103795780634fbee193146103a3578063583e0568146103df57806370a0823114610409576101c1565b8063313ce567146102fb5780633d9a3d19146103255780633e4aff1e1461034f576101c1565b806320800a001161019457806320800a001461025557806322a0bc811461026b57806323b872dd14610295578063311028af146102d1576101c1565b806306fdde03146101c5578063095ea7b3146101ef57806318160ddd1461022b576101c1565b366101c157005b5f5ffd5b3480156101d0575f5ffd5b506101d961063f565b6040516101e691906129ef565b60405180910390f35b3480156101fa575f5ffd5b5061021560048036038101906102109190612aa0565b6106cf565b6040516102229190612af8565b60405180910390f35b348015610236575f5ffd5b5061023f6106f1565b60405161024c9190612b20565b60405180910390f35b348015610260575f5ffd5b506102696106fa565b005b348015610276575f5ffd5b5061027f6107be565b60405161028c9190612b20565b60405180910390f35b3480156102a0575f5ffd5b506102bb60048036038101906102b69190612b39565b6107c4565b6040516102c89190612af8565b60405180910390f35b3480156102dc575f5ffd5b506102e56107f2565b6040516102f29190612b20565b60405180910390f35b348015610306575f5ffd5b5061030f6107f8565b60405161031c9190612ba4565b60405180910390f35b348015610330575f5ffd5b50610339610800565b6040516103469190612b20565b60405180910390f35b34801561035a575f5ffd5b50610363610806565b6040516103709190612b20565b60405180910390f35b348015610384575f5ffd5b5061038d61080c565b60405161039a9190612af8565b60405180910390f35b3480156103ae575f5ffd5b506103c960048036038101906103c49190612bbd565b61081f565b6040516103d69190612af8565b60405180910390f35b3480156103ea575f5ffd5b506103f3610871565b6040516104009190612c43565b60405180910390f35b348015610414575f5ffd5b5061042f600480360381019061042a9190612bbd565b610895565b60405161043c9190612b20565b60405180910390f35b348015610450575f5ffd5b506104596108da565b005b348015610466575f5ffd5b5061046f6108ed565b005b34801561047c575f5ffd5b50610485610909565b6040516104929190612c6b565b60405180910390f35b3480156104a6575f5ffd5b506104af610931565b6040516104bc91906129ef565b60405180910390f35b3480156104d0575f5ffd5b506104eb60048036038101906104e69190612cae565b6109c1565b005b3480156104f8575f5ffd5b50610513600480360381019061050e9190612aa0565b610a65565b6040516105209190612af8565b60405180910390f35b348015610534575f5ffd5b5061053d610a87565b60405161054a9190612b20565b60405180910390f35b34801561055e575f5ffd5b50610567610a8d565b005b348015610574575f5ffd5b5061057d610b07565b005b34801561058a575f5ffd5b506105a560048036038101906105a09190612cec565b610b2b565b6040516105b29190612b20565b60405180910390f35b6105c3610bad565b005b3480156105d0575f5ffd5b506105eb60048036038101906105e69190612d2a565b6110ba565b005b3480156105f8575f5ffd5b50610613600480360381019061060e9190612bbd565b611329565b005b348015610620575f5ffd5b506106296113ab565b6040516106369190612af8565b60405180910390f35b60606003805461064e90612d82565b80601f016020809104026020016040519081016040528092919081815260200182805461067a90612d82565b80156106c55780601f1061069c576101008083540402835291602001916106c5565b820191905f5260205f20905b8154815290600101906020018083116106a857829003601f168201915b5050505050905090565b5f5f6106d96113bd565b90506106e68185856113c4565b600191505092915050565b5f600254905090565b7f000000000000000000000000c6b6bc50e2fdbe1d1080e285ddefe0b0b471651573ffffffffffffffffffffffffffffffffffffffff166107396113bd565b73ffffffffffffffffffffffffffffffffffffffff1614610758575f5ffd5b7f00000000000000000000000085aafdc499b991b7024317b58cd806222cbe8d2c73ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156107bb573d5f5f3e3d5ffd5b50565b60075481565b5f5f6107ce6113bd565b90506107db858285611587565b6107e6858585611612565b60019150509392505050565b60065481565b5f6012905090565b60085481565b60095481565b601760019054906101000a900460ff1681565b5f60185f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108e261213a565b6108eb5f6121b8565b565b6108f561213a565b600654600b81905550600654600c81905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461094090612d82565b80601f016020809104026020016040519081016040528092919081815260200182805461096c90612d82565b80156109b75780601f1061098e576101008083540402835291602001916109b7565b820191905f5260205f20905b81548152906001019060200180831161099a57829003601f168201915b5050505050905090565b6109c961213a565b7f000000000000000000000000efcfd6fd9581f41290c3505b3c1e51a53fb609b873ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4e90612e22565b60405180910390fd5b610a61828261227b565b5050565b5f5f610a6f6113bd565b9050610a7c818585611612565b600191505092915050565b600a5481565b7f000000000000000000000000c6b6bc50e2fdbe1d1080e285ddefe0b0b471651573ffffffffffffffffffffffffffffffffffffffff16610acc6113bd565b73ffffffffffffffffffffffffffffffffffffffff1614610aeb575f5ffd5b5f601760016101000a81548160ff021916908315150217905550565b610b0f61213a565b600160175f6101000a81548160ff021916908315150217905550565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610bb561213a565b5f7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c1f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c439190612e54565b9050610c4d612319565b5f8173ffffffffffffffffffffffffffffffffffffffff166370a082317f000000000000000000000000efcfd6fd9581f41290c3505b3c1e51a53fb609b86040518263ffffffff1660e01b8152600401610ca79190612c6b565b602060405180830381865afa158015610cc2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ce69190612e93565b90505f6064605f610cf633610895565b610d009190612eeb565b610d0a9190612f59565b9050610d17333083611612565b5f60646050600654610d299190612eeb565b610d339190612f59565b9050610d60307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d836113c4565b7f000000000000000000000000efcfd6fd9581f41290c3505b3c1e51a53fb609b873ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610dfb929190612f89565b6020604051808303815f875af1158015610e17573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e3b9190612fc4565b505f5f841115611003578347610e519190612fef565b90505f478584610e619190612eeb565b610e6b9190612f59565b90505f811115610f1c57610ea0307f000000000000000000000000efcfd6fd9581f41290c3505b3c1e51a53fb609b883611612565b7f000000000000000000000000efcfd6fd9581f41290c3505b3c1e51a53fb609b873ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610f05575f5ffd5b505af1158015610f17573d5f5f3e3d5ffd5b505050505b5f818411610f2a575f610f37565b8184610f369190612fef565b5b90505f81118015610f4757505f83115b15610ffc577f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d7198430845f5f610f95610909565b426040518863ffffffff1660e01b8152600401610fb79695949392919061305b565b60606040518083038185885af1158015610fd3573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ff891906130ba565b5050505b50506110b3565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d7194730855f5f61104c610909565b426040518863ffffffff1660e01b815260040161106e9695949392919061305b565b60606040518083038185885af115801561108a573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110af91906130ba565b5050505b5050505050565b7f000000000000000000000000c6b6bc50e2fdbe1d1080e285ddefe0b0b471651573ffffffffffffffffffffffffffffffffffffffff166110f96113bd565b73ffffffffffffffffffffffffffffffffffffffff161461114f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114690613154565b60405180910390fd5b5f8111801561115f575060648111155b61119e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611195906131bc565b60405180910390fd5b5f3073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111d89190612c6b565b602060405180830381865afa1580156111f3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112179190612e93565b90505f6064830361122a57819050611245565b606483836112389190612eeb565b6112429190612f59565b90505b80821015611288576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127f90613224565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f000000000000000000000000c6b6bc50e2fdbe1d1080e285ddefe0b0b4716515836040518363ffffffff1660e01b81526004016112e3929190612f89565b6020604051808303815f875af11580156112ff573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113239190612fc4565b50505050565b61133161213a565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361139f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611396906132b2565b60405180910390fd5b6113a8816121b8565b50565b60175f9054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611432576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142990613340565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611497906133ce565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161157a9190612b20565b60405180910390a3505050565b5f6115928484610b2b565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461160c57818110156115fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f590613436565b60405180910390fd5b61160b84848484036113c4565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611680576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611677906134c4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e590613552565b60405180910390fd5b5f81036117055761170083835f61235d565b612135565b600e5443111561171e5743600e819055505f6010819055505b5f601a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156117bd5750601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b90506117c7610909565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118355750611805610909565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561186d57505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118a7575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118c05750601760029054906101000a900460ff16155b15611d175760175f9054906101000a900460ff166119b35760185f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611973575060185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6119b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a9906135ba565b60405180910390fd5b5b601a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611a50575060195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611b0e57600b54821115611a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9190613648565b60405180910390fd5b600c54611aa684610895565b83611ab19190613666565b1115611af2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae9906136e3565b60405180910390fd5b600f5f815480929190611b0490613701565b9190505550611d16565b601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611bab575060195f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611c6d57600b54821115611bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bec906137b8565b60405180910390fd5b601760019054906101000a900460ff1615611c6857600a5460105410611c50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4790613846565b60405180910390fd5b60105f815480929190611c6290613701565b91905055505b611d15565b60195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611d1457600c54611cc784610895565b83611cd29190613666565b1115611d13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0a906136e3565b60405180910390fd5b5b5b5b5b5f611d2130610895565b90505f5f82118015611d31575082155b9050808015611d4d5750601760029054906101000a900460ff16155b8015611da05750601a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611df3575060185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611e46575060185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611e8a576001601760026101000a81548160ff021916908315150217905550611e6f846125c9565b5f601760026101000a81548160ff0219169083151502179055505b5f601760029054906101000a900460ff16158015611ea6575083155b905060185f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611f43575060185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611f4c575f90505b5f5f9050811561212457601a5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611ff3575060195f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561202d576064601554600f541161200d57601154612011565b6013545b8761201c9190612eeb565b6120269190612f59565b9050612101565b601a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156120ca575060195f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612100576064601654600f54116120e4576012546120e8565b6014545b876120f39190612eeb565b6120fd9190612f59565b90505b5b5f8111156121235761211488308361235d565b80866121209190612fef565b95505b5b61212f88888861235d565b50505050505b505050565b6121426113bd565b73ffffffffffffffffffffffffffffffffffffffff16612160610909565b73ffffffffffffffffffffffffffffffffffffffff16146121b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ad906138ae565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f341161235b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235290613916565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c2906134c4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612439576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243090613552565b60405180910390fd5b612444838383612722565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156124c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124be906139a4565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125b09190612b20565b60405180910390a36125c3848484612727565b50505050565b5f6125d330610895565b90505f5f82036125e457505061271f565b5f6012546011546125f59190613666565b03612661575f8211801561260a5750600d5482105b156126175781905061265c565b5f6064601254856126289190612eeb565b6126329190612f59565b905080846126409190612fef565b9350600d5484111561265657600d54915061265a565b8391505b505b612713565b5f8211801561267d57506005600d5461267a9190612f59565b82105b1561268957505061271f565b5f821180156126a557506005600d546126a29190612f59565b82115b80156126b25750600d5482105b156126cd576005600d546126c69190612f59565b9050612712565b5f6064601254856126de9190612eeb565b6126e89190612f59565b905080846126f69190612fef565b9350600d5484111561270c57600d549150612710565b8391505b505b5b61271c8161272c565b50505b50565b505050565b505050565b5f600267ffffffffffffffff811115612748576127476139c2565b5b6040519080825280602002602001820160405280156127765781602001602082028036833780820191505090505b50905030815f8151811061278d5761278c6139ef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612830573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128549190612e54565b81600181518110612868576128676139ef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506128cd307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846113c4565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f847f00000000000000000000000085aafdc499b991b7024317b58cd806222cbe8d2c426040518663ffffffff1660e01b815260040161294e959493929190613ad3565b5f604051808303815f87803b158015612965575f5ffd5b505af1158015612977573d5f5f3e3d5ffd5b505050505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6129c18261297f565b6129cb8185612989565b93506129db818560208601612999565b6129e4816129a7565b840191505092915050565b5f6020820190508181035f830152612a0781846129b7565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612a3c82612a13565b9050919050565b612a4c81612a32565b8114612a56575f5ffd5b50565b5f81359050612a6781612a43565b92915050565b5f819050919050565b612a7f81612a6d565b8114612a89575f5ffd5b50565b5f81359050612a9a81612a76565b92915050565b5f5f60408385031215612ab657612ab5612a0f565b5b5f612ac385828601612a59565b9250506020612ad485828601612a8c565b9150509250929050565b5f8115159050919050565b612af281612ade565b82525050565b5f602082019050612b0b5f830184612ae9565b92915050565b612b1a81612a6d565b82525050565b5f602082019050612b335f830184612b11565b92915050565b5f5f5f60608486031215612b5057612b4f612a0f565b5b5f612b5d86828701612a59565b9350506020612b6e86828701612a59565b9250506040612b7f86828701612a8c565b9150509250925092565b5f60ff82169050919050565b612b9e81612b89565b82525050565b5f602082019050612bb75f830184612b95565b92915050565b5f60208284031215612bd257612bd1612a0f565b5b5f612bdf84828501612a59565b91505092915050565b5f819050919050565b5f612c0b612c06612c0184612a13565b612be8565b612a13565b9050919050565b5f612c1c82612bf1565b9050919050565b5f612c2d82612c12565b9050919050565b612c3d81612c23565b82525050565b5f602082019050612c565f830184612c34565b92915050565b612c6581612a32565b82525050565b5f602082019050612c7e5f830184612c5c565b92915050565b612c8d81612ade565b8114612c97575f5ffd5b50565b5f81359050612ca881612c84565b92915050565b5f5f60408385031215612cc457612cc3612a0f565b5b5f612cd185828601612a59565b9250506020612ce285828601612c9a565b9150509250929050565b5f5f60408385031215612d0257612d01612a0f565b5b5f612d0f85828601612a59565b9250506020612d2085828601612a59565b9150509250929050565b5f60208284031215612d3f57612d3e612a0f565b5b5f612d4c84828501612a8c565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612d9957607f821691505b602082108103612dac57612dab612d55565b5b50919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f612e0c603983612989565b9150612e1782612db2565b604082019050919050565b5f6020820190508181035f830152612e3981612e00565b9050919050565b5f81519050612e4e81612a43565b92915050565b5f60208284031215612e6957612e68612a0f565b5b5f612e7684828501612e40565b91505092915050565b5f81519050612e8d81612a76565b92915050565b5f60208284031215612ea857612ea7612a0f565b5b5f612eb584828501612e7f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612ef582612a6d565b9150612f0083612a6d565b9250828202612f0e81612a6d565b91508282048414831517612f2557612f24612ebe565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612f6382612a6d565b9150612f6e83612a6d565b925082612f7e57612f7d612f2c565b5b828204905092915050565b5f604082019050612f9c5f830185612c5c565b612fa96020830184612b11565b9392505050565b5f81519050612fbe81612c84565b92915050565b5f60208284031215612fd957612fd8612a0f565b5b5f612fe684828501612fb0565b91505092915050565b5f612ff982612a6d565b915061300483612a6d565b925082820390508181111561301c5761301b612ebe565b5b92915050565b5f819050919050565b5f61304561304061303b84613022565b612be8565b612a6d565b9050919050565b6130558161302b565b82525050565b5f60c08201905061306e5f830189612c5c565b61307b6020830188612b11565b613088604083018761304c565b613095606083018661304c565b6130a26080830185612c5c565b6130af60a0830184612b11565b979650505050505050565b5f5f5f606084860312156130d1576130d0612a0f565b5b5f6130de86828701612e7f565b93505060206130ef86828701612e7f565b925050604061310086828701612e7f565b9150509250925092565b7f4e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f61313e600e83612989565b91506131498261310a565b602082019050919050565b5f6020820190508181035f83015261316b81613132565b9050919050565b7f496e76616c69642070657263656e7461676500000000000000000000000000005f82015250565b5f6131a6601283612989565b91506131b182613172565b602082019050919050565b5f6020820190508181035f8301526131d38161319a565b9050919050565b7f4e6f7420656e6f75676820746f6b656e7320696e20636f6e74726163740000005f82015250565b5f61320e601d83612989565b9150613219826131da565b602082019050919050565b5f6020820190508181035f83015261323b81613202565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61329c602683612989565b91506132a782613242565b604082019050919050565b5f6020820190508181035f8301526132c981613290565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61332a602483612989565b9150613335826132d0565b604082019050919050565b5f6020820190508181035f8301526133578161331e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133b8602283612989565b91506133c38261335e565b604082019050919050565b5f6020820190508181035f8301526133e5816133ac565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f613420601d83612989565b915061342b826133ec565b602082019050919050565b5f6020820190508181035f83015261344d81613414565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6134ae602583612989565b91506134b982613454565b604082019050919050565b5f6020820190508181035f8301526134db816134a2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61353c602383612989565b9150613547826134e2565b604082019050919050565b5f6020820190508181035f83015261356981613530565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f6135a4601683612989565b91506135af82613570565b602082019050919050565b5f6020820190508181035f8301526135d181613598565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f613632603583612989565b915061363d826135d8565b604082019050919050565b5f6020820190508181035f83015261365f81613626565b9050919050565b5f61367082612a6d565b915061367b83612a6d565b925082820190508082111561369357613692612ebe565b5b92915050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6136cd601383612989565b91506136d882613699565b602082019050919050565b5f6020820190508181035f8301526136fa816136c1565b9050919050565b5f61370b82612a6d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361373d5761373c612ebe565b5b600182019050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f6137a2603683612989565b91506137ad82613748565b604082019050919050565b5f6020820190508181035f8301526137cf81613796565b9050919050565b7f457863656564656420746865206d6178696d756d206e756d626572206f6620735f8201527f656c6c7320616c6c6f77656420696e207468697320626c6f636b000000000000602082015250565b5f613830603a83612989565b915061383b826137d6565b604082019050919050565b5f6020820190508181035f83015261385d81613824565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613898602083612989565b91506138a382613864565b602082019050919050565b5f6020820190508181035f8301526138c58161388c565b9050919050565b7f4e6f204554482073656e740000000000000000000000000000000000000000005f82015250565b5f613900600b83612989565b915061390b826138cc565b602082019050919050565b5f6020820190508181035f83015261392d816138f4565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61398e602683612989565b915061399982613934565b604082019050919050565b5f6020820190508181035f8301526139bb81613982565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613a4e81612a32565b82525050565b5f613a5f8383613a45565b60208301905092915050565b5f602082019050919050565b5f613a8182613a1c565b613a8b8185613a26565b9350613a9683613a36565b805f5b83811015613ac6578151613aad8882613a54565b9750613ab883613a6b565b925050600181019050613a99565b5085935050505092915050565b5f60a082019050613ae65f830188612b11565b613af3602083018761304c565b8181036040830152613b058186613a77565b9050613b146060830185612c5c565b613b216080830184612b11565b969550505050505056fea2646970667358221220031a6d94d3fc12516b3ffed4dccc9064295719dddf690ed9194fab968dc5dd3a64736f6c634300081c0033

Deployed Bytecode Sourcemap

11697:11429:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7409:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8341:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7730:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21584:155;;;;;;;;;;;;;:::i;:::-;;12111:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8550:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11845:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7629:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12164:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12206:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12784:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16886:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11909:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7846:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6485:103;;;;;;;;;;;;;:::i;:::-;;20618:144;;;;;;;;;;;;;:::i;:::-;;6250:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7517:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16442:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7981:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12257:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20770:122;;;;;;;;;;;;;:::i;:::-;;14532:81;;;;;;;;;;;;;:::i;:::-;;8182:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14717:1393;;;:::i;:::-;;20900:676;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6596:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12746:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7409:100;7463:13;7496:5;7489:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7409:100;:::o;8341:201::-;8424:4;8441:13;8457:12;:10;:12::i;:::-;8441:28;;8480:32;8489:5;8496:7;8505:6;8480:8;:32::i;:::-;8530:4;8523:11;;;8341:201;;;;:::o;7730:108::-;7791:7;7818:12;;7811:19;;7730:108;:::o;21584:155::-;21649:14;21633:30;;:12;:10;:12::i;:::-;:30;;;21625:39;;;;;;21683:15;21675:33;;:56;21709:21;21675:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21584:155::o;12111:46::-;;;;:::o;8550:295::-;8681:4;8698:15;8716:12;:10;:12::i;:::-;8698:30;;8739:38;8755:4;8761:7;8770:6;8739:15;:38::i;:::-;8788:27;8798:4;8804:2;8808:6;8788:9;:27::i;:::-;8833:4;8826:11;;;8550:295;;;;;:::o;11845:55::-;;;;:::o;7629:93::-;7687:5;7712:2;7705:9;;7629:93;:::o;12164:35::-;;;;:::o;12206:44::-;;;;:::o;12784:28::-;;;;;;;;;;;;;:::o;16886:126::-;16952:4;16976:19;:28;16996:7;16976:28;;;;;;;;;;;;;;;;;;;;;;;;;16969:35;;16886:126;;;:::o;11909:52::-;;;:::o;7846:127::-;7920:7;7947:9;:18;7957:7;7947:18;;;;;;;;;;;;;;;;7940:25;;7846:127;;;:::o;6485:103::-;6209:13;:11;:13::i;:::-;6550:30:::1;6577:1;6550:18;:30::i;:::-;6485:103::o:0;20618:144::-;6209:13;:11;:13::i;:::-;20695:18:::1;;20672:20;:41;;;;20736:18;;20724:9;:30;;;;20618:144::o:0;6250:87::-;6296:7;6323:6;;;;;;;;;;;6316:13;;6250:87;:::o;7517:104::-;7573:13;7606:7;7599:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7517:104;:::o;16442:242::-;6209:13;:11;:13::i;:::-;16549::::1;16541:21;;:4;:21;;::::0;16533:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;16635:41;16664:4;16670:5;16635:28;:41::i;:::-;16442:242:::0;;:::o;7981:193::-;8060:4;8077:13;8093:12;:10;:12::i;:::-;8077:28;;8116;8126:5;8133:2;8137:6;8116:9;:28::i;:::-;8162:4;8155:11;;;7981:193;;;;:::o;12257:29::-;;;;:::o;20770:122::-;20841:14;20825:30;;:12;:10;:12::i;:::-;:30;;;20817:39;;;;;;20879:5;20867:9;;:17;;;;;;;;;;;;;;;;;;20770:122::o;14532:81::-;6209:13;:11;:13::i;:::-;14601:4:::1;14587:11;;:18;;;;;;;;;;;;;;;;;;14532:81::o:0;8182:151::-;8271:7;8298:11;:18;8310:5;8298:18;;;;;;;;;;;;;;;:27;8317:7;8298:27;;;;;;;;;;;;;;;;8291:34;;8182:151;;;;:::o;14717:1393::-;6209:13;:11;:13::i;:::-;14788:19:::1;14810:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14788:45;;14835:13;:11;:13::i;:::-;14863:19;14892:11;14885:29;;;14915:13;14885:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14863:66;;14944:22;15000:3;14994:2;14970:21;14980:10;14970:9;:21::i;:::-;:26;;;;:::i;:::-;14969:34;;;;:::i;:::-;14944:59;;15018:52;15028:10;15048:4;15055:14;15018:9;:52::i;:::-;15085:23;15139:3;15133:2;15112:18;;:23;;;;:::i;:::-;15111:31;;;;:::i;:::-;15085:57;;15157:67;15174:4;15189:16;15208:15;15157:8;:67::i;:::-;15246:13;15239:29;;;15277:16;15296:17;15239:75;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15329:24;15373:1;15359:11;:15;15355:744;;;15421:11;15397:21;:35;;;;:::i;:::-;15378:54;;15447:18;15502:21;15487:11;15469:15;:29;;;;:::i;:::-;15468:55;;;;:::i;:::-;15447:76;;15542:1;15529:10;:14;15525:126;;;15560:51;15578:4;15585:13;15600:10;15560:9;:51::i;:::-;15628:13;15613:34;;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15525:126;15665:24;15710:10;15692:15;:28;:63;;15754:1;15692:63;;;15741:10;15723:15;:28;;;;:::i;:::-;15692:63;15665:90;;15793:1;15774:16;:20;:44;;;;;15817:1;15798:16;:20;15774:44;15770:184;;;15821:16;:32;;;15861:16;15901:4;15907:16;15924:1;15926;15928:7;:5;:7::i;:::-;15936:15;15821:131;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15770:184;15376:579;;15355:744;;;15963:16;:32;;;16016:21;16047:4;16053:15;16069:1;16071;16073:7;:5;:7::i;:::-;16081:15;15963:134;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15355:744;14773:1337;;;;;14717:1393::o:0;20900:676::-;20985:14;20969:30;;:12;:10;:12::i;:::-;:30;;;20961:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;21050:1;21037:10;:14;:35;;;;;21069:3;21055:10;:17;;21037:35;21029:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;21106:28;21152:4;21137:31;;;21177:4;21137:46;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21106:77;;21194:22;21245:3;21231:10;:17;21227:178;;21282:20;21265:37;;21227:178;;;21390:3;21376:10;21353:20;:33;;;;:::i;:::-;21352:41;;;;:::i;:::-;21335:58;;21227:178;21447:14;21423:20;:38;;21415:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;21521:4;21506:30;;;21537:14;21553;21506:62;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20950:626;;20900:676;:::o;6596:201::-;6209:13;:11;:13::i;:::-;6705:1:::1;6685:22;;:8;:22;;::::0;6677:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6761:28;6780:8;6761:18;:28::i;:::-;6596:201:::0;:::o;12746:31::-;;;;;;;;;;;;;:::o;205:98::-;258:7;285:10;278:17;;205:98;:::o;10584:380::-;10737:1;10720:19;;:5;:19;;;10712:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10818:1;10799:21;;:7;:21;;;10791:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10902:6;10872:11;:18;10884:5;10872:18;;;;;;;;;;;;;;;:27;10891:7;10872:27;;;;;;;;;;;;;;;:36;;;;10940:7;10924:32;;10933:5;10924:32;;;10949:6;10924:32;;;;;;:::i;:::-;;;;;;;;10584:380;;;:::o;10972:453::-;11107:24;11134:25;11144:5;11151:7;11134:9;:25::i;:::-;11107:52;;11194:17;11174:16;:37;11170:248;;11256:6;11236:16;:26;;11228:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11340:51;11349:5;11356:7;11384:6;11365:16;:25;11340:8;:51::i;:::-;11170:248;11096:329;10972:453;;;:::o;17020:3101::-;17136:1;17120:18;;:4;:18;;;17112:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17213:1;17199:16;;:2;:16;;;17191:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;17282:1;17272:6;:11;17268:93;;17300:28;17316:4;17322:2;17326:1;17300:15;:28::i;:::-;17343:7;;17268:93;17392:12;;17377;:27;17373:115;;;17436:12;17421;:27;;;;17475:1;17463:9;:13;;;;17373:115;17508:15;17527:25;:31;17553:4;17527:31;;;;;;;;;;;;;;;;;;;;;;;;;17526:32;:66;;;;;17563:25;:29;17589:2;17563:29;;;;;;;;;;;;;;;;;;;;;;;;;17562:30;17526:66;17508:84;;17625:7;:5;:7::i;:::-;17617:15;;:4;:15;;;;:32;;;;;17642:7;:5;:7::i;:::-;17636:13;;:2;:13;;;;17617:32;:52;;;;;17667:1;17653:16;;:2;:16;;;;17617:52;:77;;;;;17687:6;17673:21;;:2;:21;;;;17617:77;:90;;;;;17699:8;;;;;;;;;;;17698:9;17617:90;17613:1311;;;17735:11;;;;;;;;;;;17730:148;;17779:19;:25;17799:4;17779:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;17808:19;:23;17828:2;17808:23;;;;;;;;;;;;;;;;;;;;;;;;;17779:52;17771:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;17730:148;17902:25;:31;17928:4;17902:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;17938:31;:35;17970:2;17938:35;;;;;;;;;;;;;;;;;;;;;;;;;17937:36;17902:71;17898:1011;;;18034:20;;18024:6;:30;;18016:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;18169:9;;18152:13;18162:2;18152:9;:13::i;:::-;18143:6;:22;;;;:::i;:::-;:35;;18135:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18225:8;;:10;;;;;;;;;:::i;:::-;;;;;;17898:1011;;;18284:25;:29;18310:2;18284:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;18318:31;:37;18350:4;18318:37;;;;;;;;;;;;;;;;;;;;;;;;;18317:38;18284:71;18280:629;;;18398:20;;18388:6;:30;;18380:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;18504:9;;;;;;;;;;;18500:196;;;18561:10;;18549:9;;:22;18541:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;18661:9;;:11;;;;;;;;;:::i;:::-;;;;;;18500:196;18280:629;;;18762:31;:35;18794:2;18762:35;;;;;;;;;;;;;;;;;;;;;;;;;18757:152;;18856:9;;18839:13;18849:2;18839:9;:13::i;:::-;18830:6;:22;;;;:::i;:::-;:35;;18822:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18757:152;18280:629;17898:1011;17613:1311;18936:28;18967:24;18985:4;18967:9;:24::i;:::-;18936:55;;19004:12;19042:1;19019:20;:24;:39;;;;;19048:10;19047:11;19019:39;19004:54;;19075:7;:20;;;;;19087:8;;;;;;;;;;;19086:9;19075:20;:56;;;;;19100:25;:31;19126:4;19100:31;;;;;;;;;;;;;;;;;;;;;;;;;19099:32;19075:56;:86;;;;;19136:19;:25;19156:4;19136:25;;;;;;;;;;;;;;;;;;;;;;;;;19135:26;19075:86;:114;;;;;19166:19;:23;19186:2;19166:23;;;;;;;;;;;;;;;;;;;;;;;;;19165:24;19075:114;19071:224;;;19217:4;19206:8;;:15;;;;;;;;;;;;;;;;;;19236:16;19245:6;19236:8;:16::i;:::-;19278:5;19267:8;;:16;;;;;;;;;;;;;;;;;;19071:224;19307:12;19323:8;;;;;;;;;;;19322:9;:24;;;;;19336:10;19335:11;19322:24;19307:39;;19363:19;:25;19383:4;19363:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;19392:19;:23;19412:2;19392:23;;;;;;;;;;;;;;;;;;;;;;;;;19363:52;19359:100;;;19442:5;19432:15;;19359:100;19471:12;19486:1;19471:16;;19504:7;19500:568;;;19532:25;:31;19558:4;19532:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;19568:31;:35;19600:2;19568:35;;;;;;;;;;;;;;;;;;;;;;;;;19567:36;19532:71;19528:377;;;19693:3;19652:14;;19641:8;;:25;:48;;19683:6;;19641:48;;;19669:11;;19641:48;19631:6;:59;;;;:::i;:::-;:65;;;;:::i;:::-;19624:72;;19528:377;;;19722:25;:29;19748:2;19722:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;19756:31;:37;19788:4;19756:37;;;;;;;;;;;;;;;;;;;;;;;;;19755:38;19722:71;19718:187;;;19886:3;19842:15;;19831:8;;:26;:51;;19875:7;;19831:51;;;19860:12;;19831:51;19821:6;:62;;;;:::i;:::-;:68;;;;:::i;:::-;19814:75;;19718:187;19528:377;19944:1;19937:4;:8;19933:124;;;19966:42;19982:4;19996;20003;19966:15;:42::i;:::-;20037:4;20027:14;;;;;:::i;:::-;;;19933:124;19500:568;20080:33;20096:4;20102:2;20106:6;20080:15;:33::i;:::-;17099:3022;;;;;17020:3101;;;;:::o;6345:132::-;6420:12;:10;:12::i;:::-;6409:23;;:7;:5;:7::i;:::-;:23;;;6401:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6345:132::o;6805:191::-;6879:16;6898:6;;;;;;;;;;;6879:25;;6924:8;6915:6;;:17;;;;;;;;;;;;;;;;;;6979:8;6948:40;;6969:8;6948:40;;;;;;;;;;;;6868:128;6805:191;:::o;16692:186::-;16809:5;16775:25;:31;16801:4;16775:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;16864:5;16830:40;;16858:4;16830:40;;;;;;;;;;;;16692:186;;:::o;14621:88::-;14684:1;14672:9;:13;14664:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;14621:88::o;8853:675::-;9000:1;8984:18;;:4;:18;;;8976:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9077:1;9063:16;;:2;:16;;;9055:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9132:38;9153:4;9159:2;9163:6;9132:20;:38::i;:::-;9183:19;9205:9;:15;9215:4;9205:15;;;;;;;;;;;;;;;;9183:37;;9254:6;9239:11;:21;;9231:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;9371:6;9357:11;:20;9339:9;:15;9349:4;9339:15;;;;;;;;;;;;;;;:38;;;;9409:6;9392:9;:13;9402:2;9392:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;9459:2;9444:26;;9453:4;9444:26;;;9463:6;9444:26;;;;;;:::i;:::-;;;;;;;;9483:37;9503:4;9509:2;9513:6;9483:19;:37::i;:::-;8965:563;8853:675;;;:::o;21747:1376::-;21800:23;21826:24;21844:4;21826:9;:24::i;:::-;21800:50;;21861:20;21918:1;21899:15;:20;21895:59;;21936:7;;;;21895:59;21986:1;21974:7;;21967:6;;:14;;;;:::i;:::-;21966:21;21962:1113;;22023:1;22005:15;:19;:59;;;;;22046:18;;22028:15;:36;22005:59;22002:439;;;22096:15;22081:30;;22002:439;;;22153:21;22198:3;22187:7;;22178:6;:16;;;;:::i;:::-;22177:24;;;;:::i;:::-;22153:48;;22226:13;22216:23;;;;;:::i;:::-;;;22267:18;;22258:6;:27;22254:176;;;22321:18;;22306:33;;22254:176;;;22408:6;22393:21;;22254:176;22138:303;22002:439;21962:1113;;;22495:1;22477:15;:19;:63;;;;;22539:1;22518:18;;:22;;;;:::i;:::-;22500:15;:40;22477:63;22474:594;;;22557:7;;;;22474:594;22612:1;22594:15;:19;:63;;;;;22656:1;22635:18;;:22;;;;:::i;:::-;22617:15;:40;22594:63;:103;;;;;22679:18;;22661:15;:36;22594:103;22590:478;;;22750:1;22729:18;;:22;;;;:::i;:::-;22714:37;;22590:478;;;22793:21;22838:3;22827:7;;22818:6;:16;;;;:::i;:::-;22817:24;;;;:::i;:::-;22793:48;;22866:13;22856:23;;;;;:::i;:::-;;;22907:18;;22898:6;:27;22894:163;;;22961:18;;22946:33;;22894:163;;;23035:6;23020:21;;22894:163;22778:290;22590:478;21962:1113;23085:30;23102:12;23085:16;:30::i;:::-;21789:1334;;21747:1376;;:::o;11433:125::-;;;;:::o;11566:124::-;;;;:::o;20129:482::-;20197:21;20235:1;20221:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20197:40;;20266:4;20248;20253:1;20248:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;20292:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20282:4;20287:1;20282:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;20328:63;20345:4;20360:16;20379:11;20328:8;:63::i;:::-;20404:16;:67;;;20486:11;20512:1;20528:4;20547:15;20577;20404:199;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20184:427;20129:482;:::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:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:60::-;5109:3;5130:5;5123:12;;5081:60;;;:::o;5147:142::-;5197:9;5230:53;5248:34;5257:24;5275:5;5257:24;:::i;:::-;5248:34;:::i;:::-;5230:53;:::i;:::-;5217:66;;5147:142;;;:::o;5295:126::-;5345:9;5378:37;5409:5;5378:37;:::i;:::-;5365:50;;5295:126;;;:::o;5427:151::-;5502:9;5535:37;5566:5;5535:37;:::i;:::-;5522:50;;5427:151;;;:::o;5584:181::-;5696:62;5752:5;5696:62;:::i;:::-;5691:3;5684:75;5584:181;;:::o;5771:272::-;5889:4;5927:2;5916:9;5912:18;5904:26;;5940:96;6033:1;6022:9;6018:17;6009:6;5940:96;:::i;:::-;5771:272;;;;:::o;6049:118::-;6136:24;6154:5;6136:24;:::i;:::-;6131:3;6124:37;6049:118;;:::o;6173:222::-;6266:4;6304:2;6293:9;6289:18;6281:26;;6317:71;6385:1;6374:9;6370:17;6361:6;6317:71;:::i;:::-;6173:222;;;;:::o;6401:116::-;6471:21;6486:5;6471:21;:::i;:::-;6464:5;6461:32;6451:60;;6507:1;6504;6497:12;6451:60;6401:116;:::o;6523:133::-;6566:5;6604:6;6591:20;6582:29;;6620:30;6644:5;6620:30;:::i;:::-;6523:133;;;;:::o;6662:468::-;6727:6;6735;6784:2;6772:9;6763:7;6759:23;6755:32;6752:119;;;6790:79;;:::i;:::-;6752:119;6910:1;6935:53;6980:7;6971:6;6960:9;6956:22;6935:53;:::i;:::-;6925:63;;6881:117;7037:2;7063:50;7105:7;7096:6;7085:9;7081:22;7063:50;:::i;:::-;7053:60;;7008:115;6662:468;;;;;:::o;7136:474::-;7204:6;7212;7261:2;7249:9;7240:7;7236:23;7232:32;7229:119;;;7267:79;;:::i;:::-;7229:119;7387:1;7412:53;7457:7;7448:6;7437:9;7433:22;7412:53;:::i;:::-;7402:63;;7358:117;7514:2;7540:53;7585:7;7576:6;7565:9;7561:22;7540:53;:::i;:::-;7530:63;;7485:118;7136:474;;;;;:::o;7616:329::-;7675:6;7724:2;7712:9;7703:7;7699:23;7695:32;7692:119;;;7730:79;;:::i;:::-;7692:119;7850:1;7875:53;7920:7;7911:6;7900:9;7896:22;7875:53;:::i;:::-;7865:63;;7821:117;7616:329;;;;:::o;7951:180::-;7999:77;7996:1;7989:88;8096:4;8093:1;8086:15;8120:4;8117:1;8110:15;8137:320;8181:6;8218:1;8212:4;8208:12;8198:22;;8265:1;8259:4;8255:12;8286:18;8276:81;;8342:4;8334:6;8330:17;8320:27;;8276:81;8404:2;8396:6;8393:14;8373:18;8370:38;8367:84;;8423:18;;:::i;:::-;8367:84;8188:269;8137:320;;;:::o;8463:244::-;8603:34;8599:1;8591:6;8587:14;8580:58;8672:27;8667:2;8659:6;8655:15;8648:52;8463:244;:::o;8713:366::-;8855:3;8876:67;8940:2;8935:3;8876:67;:::i;:::-;8869:74;;8952:93;9041:3;8952:93;:::i;:::-;9070:2;9065:3;9061:12;9054:19;;8713:366;;;:::o;9085:419::-;9251:4;9289:2;9278:9;9274:18;9266:26;;9338:9;9332:4;9328:20;9324:1;9313:9;9309:17;9302:47;9366:131;9492:4;9366:131;:::i;:::-;9358:139;;9085:419;;;:::o;9510:143::-;9567:5;9598:6;9592:13;9583:22;;9614:33;9641:5;9614:33;:::i;:::-;9510:143;;;;:::o;9659:351::-;9729:6;9778:2;9766:9;9757:7;9753:23;9749:32;9746:119;;;9784:79;;:::i;:::-;9746:119;9904:1;9929:64;9985:7;9976:6;9965:9;9961:22;9929:64;:::i;:::-;9919:74;;9875:128;9659:351;;;;:::o;10016:143::-;10073:5;10104:6;10098:13;10089:22;;10120:33;10147:5;10120:33;:::i;:::-;10016:143;;;;:::o;10165:351::-;10235:6;10284:2;10272:9;10263:7;10259:23;10255:32;10252:119;;;10290:79;;:::i;:::-;10252:119;10410:1;10435:64;10491:7;10482:6;10471:9;10467:22;10435:64;:::i;:::-;10425:74;;10381:128;10165:351;;;;:::o;10522:180::-;10570:77;10567:1;10560:88;10667:4;10664:1;10657:15;10691:4;10688:1;10681:15;10708:410;10748:7;10771:20;10789:1;10771:20;:::i;:::-;10766:25;;10805:20;10823:1;10805:20;:::i;:::-;10800:25;;10860:1;10857;10853:9;10882:30;10900:11;10882:30;:::i;:::-;10871:41;;11061:1;11052:7;11048:15;11045:1;11042:22;11022:1;11015:9;10995:83;10972:139;;11091:18;;:::i;:::-;10972:139;10756:362;10708:410;;;;:::o;11124:180::-;11172:77;11169:1;11162:88;11269:4;11266:1;11259:15;11293:4;11290:1;11283:15;11310:185;11350:1;11367:20;11385:1;11367:20;:::i;:::-;11362:25;;11401:20;11419:1;11401:20;:::i;:::-;11396:25;;11440:1;11430:35;;11445:18;;:::i;:::-;11430:35;11487:1;11484;11480:9;11475:14;;11310:185;;;;:::o;11501:332::-;11622:4;11660:2;11649:9;11645:18;11637:26;;11673:71;11741:1;11730:9;11726:17;11717:6;11673:71;:::i;:::-;11754:72;11822:2;11811:9;11807:18;11798:6;11754:72;:::i;:::-;11501:332;;;;;:::o;11839:137::-;11893:5;11924:6;11918:13;11909:22;;11940:30;11964:5;11940:30;:::i;:::-;11839:137;;;;:::o;11982:345::-;12049:6;12098:2;12086:9;12077:7;12073:23;12069:32;12066:119;;;12104:79;;:::i;:::-;12066:119;12224:1;12249:61;12302:7;12293:6;12282:9;12278:22;12249:61;:::i;:::-;12239:71;;12195:125;11982:345;;;;:::o;12333:194::-;12373:4;12393:20;12411:1;12393:20;:::i;:::-;12388:25;;12427:20;12445:1;12427:20;:::i;:::-;12422:25;;12471:1;12468;12464:9;12456:17;;12495:1;12489:4;12486:11;12483:37;;;12500:18;;:::i;:::-;12483:37;12333:194;;;;:::o;12533:85::-;12578:7;12607:5;12596:16;;12533:85;;;:::o;12624:158::-;12682:9;12715:61;12733:42;12742:32;12768:5;12742:32;:::i;:::-;12733:42;:::i;:::-;12715:61;:::i;:::-;12702:74;;12624:158;;;:::o;12788:147::-;12883:45;12922:5;12883:45;:::i;:::-;12878:3;12871:58;12788:147;;:::o;12941:807::-;13190:4;13228:3;13217:9;13213:19;13205:27;;13242:71;13310:1;13299:9;13295:17;13286:6;13242:71;:::i;:::-;13323:72;13391:2;13380:9;13376:18;13367:6;13323:72;:::i;:::-;13405:80;13481:2;13470:9;13466:18;13457:6;13405:80;:::i;:::-;13495;13571:2;13560:9;13556:18;13547:6;13495:80;:::i;:::-;13585:73;13653:3;13642:9;13638:19;13629:6;13585:73;:::i;:::-;13668;13736:3;13725:9;13721:19;13712:6;13668:73;:::i;:::-;12941:807;;;;;;;;;:::o;13754:663::-;13842:6;13850;13858;13907:2;13895:9;13886:7;13882:23;13878:32;13875:119;;;13913:79;;:::i;:::-;13875:119;14033:1;14058:64;14114:7;14105:6;14094:9;14090:22;14058:64;:::i;:::-;14048:74;;14004:128;14171:2;14197:64;14253:7;14244:6;14233:9;14229:22;14197:64;:::i;:::-;14187:74;;14142:129;14310:2;14336:64;14392:7;14383:6;14372:9;14368:22;14336:64;:::i;:::-;14326:74;;14281:129;13754:663;;;;;:::o;14423:164::-;14563:16;14559:1;14551:6;14547:14;14540:40;14423:164;:::o;14593:366::-;14735:3;14756:67;14820:2;14815:3;14756:67;:::i;:::-;14749:74;;14832:93;14921:3;14832:93;:::i;:::-;14950:2;14945:3;14941:12;14934:19;;14593:366;;;:::o;14965:419::-;15131:4;15169:2;15158:9;15154:18;15146:26;;15218:9;15212:4;15208:20;15204:1;15193:9;15189:17;15182:47;15246:131;15372:4;15246:131;:::i;:::-;15238:139;;14965:419;;;:::o;15390:168::-;15530:20;15526:1;15518:6;15514:14;15507:44;15390:168;:::o;15564:366::-;15706:3;15727:67;15791:2;15786:3;15727:67;:::i;:::-;15720:74;;15803:93;15892:3;15803:93;:::i;:::-;15921:2;15916:3;15912:12;15905:19;;15564:366;;;:::o;15936:419::-;16102:4;16140:2;16129:9;16125:18;16117:26;;16189:9;16183:4;16179:20;16175:1;16164:9;16160:17;16153:47;16217:131;16343:4;16217:131;:::i;:::-;16209:139;;15936:419;;;:::o;16361:179::-;16501:31;16497:1;16489:6;16485:14;16478:55;16361:179;:::o;16546:366::-;16688:3;16709:67;16773:2;16768:3;16709:67;:::i;:::-;16702:74;;16785:93;16874:3;16785:93;:::i;:::-;16903:2;16898:3;16894:12;16887:19;;16546:366;;;:::o;16918:419::-;17084:4;17122:2;17111:9;17107:18;17099:26;;17171:9;17165:4;17161:20;17157:1;17146:9;17142:17;17135:47;17199:131;17325:4;17199:131;:::i;:::-;17191:139;;16918:419;;;:::o;17343:225::-;17483:34;17479:1;17471:6;17467:14;17460:58;17552:8;17547:2;17539:6;17535:15;17528:33;17343:225;:::o;17574:366::-;17716:3;17737:67;17801:2;17796:3;17737:67;:::i;:::-;17730:74;;17813:93;17902:3;17813:93;:::i;:::-;17931:2;17926:3;17922:12;17915:19;;17574:366;;;:::o;17946:419::-;18112:4;18150:2;18139:9;18135:18;18127:26;;18199:9;18193:4;18189:20;18185:1;18174:9;18170:17;18163:47;18227:131;18353:4;18227:131;:::i;:::-;18219:139;;17946:419;;;:::o;18371:223::-;18511:34;18507:1;18499:6;18495:14;18488:58;18580:6;18575:2;18567:6;18563:15;18556:31;18371:223;:::o;18600:366::-;18742:3;18763:67;18827:2;18822:3;18763:67;:::i;:::-;18756:74;;18839:93;18928:3;18839:93;:::i;:::-;18957:2;18952:3;18948:12;18941:19;;18600:366;;;:::o;18972:419::-;19138:4;19176:2;19165:9;19161:18;19153:26;;19225:9;19219:4;19215:20;19211:1;19200:9;19196:17;19189:47;19253:131;19379:4;19253:131;:::i;:::-;19245:139;;18972:419;;;:::o;19397:221::-;19537:34;19533:1;19525:6;19521:14;19514:58;19606:4;19601:2;19593:6;19589:15;19582:29;19397:221;:::o;19624:366::-;19766:3;19787:67;19851:2;19846:3;19787:67;:::i;:::-;19780:74;;19863:93;19952:3;19863:93;:::i;:::-;19981:2;19976:3;19972:12;19965:19;;19624:366;;;:::o;19996:419::-;20162:4;20200:2;20189:9;20185:18;20177:26;;20249:9;20243:4;20239:20;20235:1;20224:9;20220:17;20213:47;20277:131;20403:4;20277:131;:::i;:::-;20269:139;;19996:419;;;:::o;20421:179::-;20561:31;20557:1;20549:6;20545:14;20538:55;20421:179;:::o;20606:366::-;20748:3;20769:67;20833:2;20828:3;20769:67;:::i;:::-;20762:74;;20845:93;20934:3;20845:93;:::i;:::-;20963:2;20958:3;20954:12;20947:19;;20606:366;;;:::o;20978:419::-;21144:4;21182:2;21171:9;21167:18;21159:26;;21231:9;21225:4;21221:20;21217:1;21206:9;21202:17;21195:47;21259:131;21385:4;21259:131;:::i;:::-;21251:139;;20978:419;;;:::o;21403:224::-;21543:34;21539:1;21531:6;21527:14;21520:58;21612:7;21607:2;21599:6;21595:15;21588:32;21403:224;:::o;21633:366::-;21775:3;21796:67;21860:2;21855:3;21796:67;:::i;:::-;21789:74;;21872:93;21961:3;21872:93;:::i;:::-;21990:2;21985:3;21981:12;21974:19;;21633:366;;;:::o;22005:419::-;22171:4;22209:2;22198:9;22194:18;22186:26;;22258:9;22252:4;22248:20;22244:1;22233:9;22229:17;22222:47;22286:131;22412:4;22286:131;:::i;:::-;22278:139;;22005:419;;;:::o;22430:222::-;22570:34;22566:1;22558:6;22554:14;22547:58;22639:5;22634:2;22626:6;22622:15;22615:30;22430:222;:::o;22658:366::-;22800:3;22821:67;22885:2;22880:3;22821:67;:::i;:::-;22814:74;;22897:93;22986:3;22897:93;:::i;:::-;23015:2;23010:3;23006:12;22999:19;;22658:366;;;:::o;23030:419::-;23196:4;23234:2;23223:9;23219:18;23211:26;;23283:9;23277:4;23273:20;23269:1;23258:9;23254:17;23247:47;23311:131;23437:4;23311:131;:::i;:::-;23303:139;;23030:419;;;:::o;23455:172::-;23595:24;23591:1;23583:6;23579:14;23572:48;23455:172;:::o;23633:366::-;23775:3;23796:67;23860:2;23855:3;23796:67;:::i;:::-;23789:74;;23872:93;23961:3;23872:93;:::i;:::-;23990:2;23985:3;23981:12;23974:19;;23633:366;;;:::o;24005:419::-;24171:4;24209:2;24198:9;24194:18;24186:26;;24258:9;24252:4;24248:20;24244:1;24233:9;24229:17;24222:47;24286:131;24412:4;24286:131;:::i;:::-;24278:139;;24005:419;;;:::o;24430:240::-;24570:34;24566:1;24558:6;24554:14;24547:58;24639:23;24634:2;24626:6;24622:15;24615:48;24430:240;:::o;24676:366::-;24818:3;24839:67;24903:2;24898:3;24839:67;:::i;:::-;24832:74;;24915:93;25004:3;24915:93;:::i;:::-;25033:2;25028:3;25024:12;25017:19;;24676:366;;;:::o;25048:419::-;25214:4;25252:2;25241:9;25237:18;25229:26;;25301:9;25295:4;25291:20;25287:1;25276:9;25272:17;25265:47;25329:131;25455:4;25329:131;:::i;:::-;25321:139;;25048:419;;;:::o;25473:191::-;25513:3;25532:20;25550:1;25532:20;:::i;:::-;25527:25;;25566:20;25584:1;25566:20;:::i;:::-;25561:25;;25609:1;25606;25602:9;25595:16;;25630:3;25627:1;25624:10;25621:36;;;25637:18;;:::i;:::-;25621:36;25473:191;;;;:::o;25670:169::-;25810:21;25806:1;25798:6;25794:14;25787:45;25670:169;:::o;25845:366::-;25987:3;26008:67;26072:2;26067:3;26008:67;:::i;:::-;26001:74;;26084:93;26173:3;26084:93;:::i;:::-;26202:2;26197:3;26193:12;26186:19;;25845:366;;;:::o;26217:419::-;26383:4;26421:2;26410:9;26406:18;26398:26;;26470:9;26464:4;26460:20;26456:1;26445:9;26441:17;26434:47;26498:131;26624:4;26498:131;:::i;:::-;26490:139;;26217:419;;;:::o;26642:233::-;26681:3;26704:24;26722:5;26704:24;:::i;:::-;26695:33;;26750:66;26743:5;26740:77;26737:103;;26820:18;;:::i;:::-;26737:103;26867:1;26860:5;26856:13;26849:20;;26642:233;;;:::o;26881:241::-;27021:34;27017:1;27009:6;27005:14;26998:58;27090:24;27085:2;27077:6;27073:15;27066:49;26881:241;:::o;27128:366::-;27270:3;27291:67;27355:2;27350:3;27291:67;:::i;:::-;27284:74;;27367:93;27456:3;27367:93;:::i;:::-;27485:2;27480:3;27476:12;27469:19;;27128:366;;;:::o;27500:419::-;27666:4;27704:2;27693:9;27689:18;27681:26;;27753:9;27747:4;27743:20;27739:1;27728:9;27724:17;27717:47;27781:131;27907:4;27781:131;:::i;:::-;27773:139;;27500:419;;;:::o;27925:245::-;28065:34;28061:1;28053:6;28049:14;28042:58;28134:28;28129:2;28121:6;28117:15;28110:53;27925:245;:::o;28176:366::-;28318:3;28339:67;28403:2;28398:3;28339:67;:::i;:::-;28332:74;;28415:93;28504:3;28415:93;:::i;:::-;28533:2;28528:3;28524:12;28517:19;;28176:366;;;:::o;28548:419::-;28714:4;28752:2;28741:9;28737:18;28729:26;;28801:9;28795:4;28791:20;28787:1;28776:9;28772:17;28765:47;28829:131;28955:4;28829:131;:::i;:::-;28821:139;;28548:419;;;:::o;28973:182::-;29113:34;29109:1;29101:6;29097:14;29090:58;28973:182;:::o;29161:366::-;29303:3;29324:67;29388:2;29383:3;29324:67;:::i;:::-;29317:74;;29400:93;29489:3;29400:93;:::i;:::-;29518:2;29513:3;29509:12;29502:19;;29161:366;;;:::o;29533:419::-;29699:4;29737:2;29726:9;29722:18;29714:26;;29786:9;29780:4;29776:20;29772:1;29761:9;29757:17;29750:47;29814:131;29940:4;29814:131;:::i;:::-;29806:139;;29533:419;;;:::o;29958:161::-;30098:13;30094:1;30086:6;30082:14;30075:37;29958:161;:::o;30125:366::-;30267:3;30288:67;30352:2;30347:3;30288:67;:::i;:::-;30281:74;;30364:93;30453:3;30364:93;:::i;:::-;30482:2;30477:3;30473:12;30466:19;;30125:366;;;:::o;30497:419::-;30663:4;30701:2;30690:9;30686:18;30678:26;;30750:9;30744:4;30740:20;30736:1;30725:9;30721:17;30714:47;30778:131;30904:4;30778:131;:::i;:::-;30770:139;;30497:419;;;:::o;30922:225::-;31062:34;31058:1;31050:6;31046:14;31039:58;31131:8;31126:2;31118:6;31114:15;31107:33;30922:225;:::o;31153:366::-;31295:3;31316:67;31380:2;31375:3;31316:67;:::i;:::-;31309:74;;31392:93;31481:3;31392:93;:::i;:::-;31510:2;31505:3;31501:12;31494:19;;31153:366;;;:::o;31525:419::-;31691:4;31729:2;31718:9;31714:18;31706:26;;31778:9;31772:4;31768:20;31764:1;31753:9;31749:17;31742:47;31806:131;31932:4;31806:131;:::i;:::-;31798:139;;31525:419;;;:::o;31950:180::-;31998:77;31995:1;31988:88;32095:4;32092:1;32085:15;32119:4;32116:1;32109:15;32136:180;32184:77;32181:1;32174:88;32281:4;32278:1;32271:15;32305:4;32302:1;32295:15;32322:114;32389:6;32423:5;32417:12;32407:22;;32322:114;;;:::o;32442:184::-;32541:11;32575:6;32570:3;32563:19;32615:4;32610:3;32606:14;32591:29;;32442:184;;;;:::o;32632:132::-;32699:4;32722:3;32714:11;;32752:4;32747:3;32743:14;32735:22;;32632:132;;;:::o;32770:108::-;32847:24;32865:5;32847:24;:::i;:::-;32842:3;32835:37;32770:108;;:::o;32884:179::-;32953:10;32974:46;33016:3;33008:6;32974:46;:::i;:::-;33052:4;33047:3;33043:14;33029:28;;32884:179;;;;:::o;33069:113::-;33139:4;33171;33166:3;33162:14;33154:22;;33069:113;;;:::o;33218:732::-;33337:3;33366:54;33414:5;33366:54;:::i;:::-;33436:86;33515:6;33510:3;33436:86;:::i;:::-;33429:93;;33546:56;33596:5;33546:56;:::i;:::-;33625:7;33656:1;33641:284;33666:6;33663:1;33660:13;33641:284;;;33742:6;33736:13;33769:63;33828:3;33813:13;33769:63;:::i;:::-;33762:70;;33855:60;33908:6;33855:60;:::i;:::-;33845:70;;33701:224;33688:1;33685;33681:9;33676:14;;33641:284;;;33645:14;33941:3;33934:10;;33342:608;;;33218:732;;;;:::o;33956:831::-;34219:4;34257:3;34246:9;34242:19;34234:27;;34271:71;34339:1;34328:9;34324:17;34315:6;34271:71;:::i;:::-;34352:80;34428:2;34417:9;34413:18;34404:6;34352:80;:::i;:::-;34479:9;34473:4;34469:20;34464:2;34453:9;34449:18;34442:48;34507:108;34610:4;34601:6;34507:108;:::i;:::-;34499:116;;34625:72;34693:2;34682:9;34678:18;34669:6;34625:72;:::i;:::-;34707:73;34775:3;34764:9;34760:19;34751:6;34707:73;:::i;:::-;33956:831;;;;;;;;:::o

Swarm Source

ipfs://031a6d94d3fc12516b3ffed4dccc9064295719dddf690ed9194fab968dc5dd3a
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.