ETH Price: $2,648.62 (+0.23%)

Token

Capital Shares (SHARES)
 

Overview

Max Total Supply

1,000,000,000 SHARES

Holders

26

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
20,000,000 SHARES

Value
$0.00
0x036102088dcf67d874a8387b2b173ff0ac0ed114
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:
SHARES

Compiler Version
v0.8.27+commit.40a35a09

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*
https://t.me/CapitalSharesPortal
https://twitter.com/capitalshares
https://capitalsharesllc.com
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.20;
pragma experimental ABIEncoderV2;

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

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

interface IERC20 {

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

    function totalSupply() external view returns (uint256);

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

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

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

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

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

interface IERC20Metadata is IERC20 {

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

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

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

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

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

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

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

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

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

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

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

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

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

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

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

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

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

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

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

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

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

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

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

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

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

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

    function WETH() external pure returns (address);

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

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

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

library SafeMath {

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

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

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

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

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

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

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    IUniswapV2Router02 public immutable _uniswapV2Router;
    address public uniswapV2Pair;
    address private devWallet;
    address private marketingWallet;
    address private constant deadAddress = address(0xdead);

    uint8 private constant _decimals = 9;
    uint256 public initialTotalSupply = 1000000000 * 10**_decimals;

    uint256 public buyFee = 0;
    uint256 public sellFee = 0;

    // 1% is max wallet
    uint256 public maxWallet = initialTotalSupply;
    uint256 public maxTransactionAmount = maxWallet;

    bool private swapping;

    bool public transferDelayEnabled = true;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    
    //swap for 0.2%
    uint256 public swapTokensAtAmount = (initialTotalSupply * 2)/1000;

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

    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("Capital Shares", "SHARES"){
        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        marketingWallet = payable(0x602912dd385332379166545d0309b422230696Ea);
        devWallet = payable(_msgSender());

        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);
        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);
        excludeFromMaxTransaction(address(_msgSender()), true);
        excludeFromMaxTransaction(marketingWallet, true);
        excludeFromMaxTransaction(devWallet, true);
        excludeFromFees(address(_msgSender()), true);
        excludeFromFees(marketingWallet, true);
        excludeFromFees(devWallet, true);

        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
        // mint
        _mint(devWallet, initialTotalSupply);
    }

    receive() external payable {}

    function addLPToUniswap() external onlyOwner() {
        require(!tradingOpen,"Trading is already open");
        _approve(address(this), address(_uniswapV2Router), initialTotalSupply);
        _uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            0xD069EF73C9Ce6d8F1b5d25a0D80427A44Ab400C7,
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(address(_uniswapV2Router), type(uint).max);
    }

    function burn(uint256 amount) external {
        _burn(_msgSender(), amount);
    }

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


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

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

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

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

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

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

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

        if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {
            if (!tradingOpen) {
                require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
            }

            if (transferDelayEnabled && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]){
                    if (to != address(_uniswapV2Router) && to != address(uniswapV2Pair)){
                        require(_holderLastTransferTimestamp[tx.origin] < block.number && _holderLastTransferTimestamp[to] < block.number, "_transfer:: Transfer Delay enabled.  Try again later.");
                        _holderLastTransferTimestamp[tx.origin] = block.number;
                        _holderLastTransferTimestamp[to] = block.number;
                    }
            }

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

        uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = contractTokenBalance > swapTokensAtAmount;
        if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;
            swapBack(amount);
            swapping = false;
        }

        bool takeFee = !swapping && !_isExcludedFromFees[from] && !_isExcludedFromFees[to];

        uint256 fees = 0;
        if (takeFee) {
            if (automatedMarketMakerPairs[to]) {
                fees = amount.mul(sellFee).div(100);
            }
            else if(automatedMarketMakerPairs[from]) {
                fees = amount.mul(buyFee).div(100);
            }
            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }
            amount -= fees;
        }
        super._transfer(from, to, amount);
    }

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

    function setFee(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        sellFee = _sellFee;
        buyFee = _buyFee;
    }

    function stopTransferDelay() external onlyOwner {
        require(transferDelayEnabled, "Already disabled!");
        transferDelayEnabled = false;
    }


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

    function manualSwapToken(uint256 percent) external {
        require(_msgSender() == marketingWallet);
        uint256 contractBalance = balanceOf(address(this));
        uint256 swapAmount = contractBalance * percent / 100;
        swapTokensForEth(swapAmount);
    }

    function withdrawEth() external {
        require(address(this).balance > 0, "Token: no ETH in the contract");
        require(_msgSender() == devWallet);
        payable(msg.sender).transfer(address(this).balance);
    }

    function tokensWithdraw() external {
        require(_msgSender() == devWallet);
        uint256 amount = balanceOf(address(this));
        _transfer(address(this), devWallet, amount);
    }

    function swapBack(uint256 tokenAmount) private {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance == 0) {
            return;
        }
        uint256 tokensToSwap = contractBalance;

        if (tokensToSwap > swapTokensAtAmount) {
            tokensToSwap = swapTokensAtAmount;
        }

        if(tokensToSwap > tokenAmount) {
            tokensToSwap = tokenAmount;
        }

        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":"addLPToUniswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwapToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeTheLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stopTransferDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensWithdraw","outputs":[],"stateMutability":"nonpayable","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526009600a6100129190610bde565b633b9aca006100219190610c28565b6009555f600a555f600b55600954600c55600c54600d556001600e60016101000a81548160ff0219169083151502179055506103e860026009546100659190610c28565b61006f9190610c96565b6010555f60115f6101000a81548160ff0219169083151502179055505f601160016101000a81548160ff0219169083151502179055503480156100b0575f5ffd5b506040518060400160405280600e81526020017f4361706974616c205368617265730000000000000000000000000000000000008152506040518060400160405280600681526020017f5348415245530000000000000000000000000000000000000000000000000000815250816003908161012c9190610efa565b50806004908161013c9190610efa565b50505061015b6101506105d560201b60201c565b6105dc60201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505073602912dd385332379166545d0309b422230696ea60085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506102056105d560201b60201c565b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061025530600161069f60201b60201c565b61026861dead600161069f60201b60201c565b61027b608051600161075360201b60201c565b61028c30600161075360201b60201c565b61029f61dead600161075360201b60201c565b6102bd6102b06105d560201b60201c565b600161075360201b60201c565b6102ef60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161075360201b60201c565b61032160075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161075360201b60201c565b61033f6103326105d560201b60201c565b600161069f60201b60201c565b61037160085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161069f60201b60201c565b6103a360075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161069f60201b60201c565b60805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103ee573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104129190611027565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610479573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061049d9190611027565b6040518363ffffffff1660e01b81526004016104ba929190611061565b6020604051808303815f875af11580156104d6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104fa9190611027565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061056b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161075360201b60201c565b61059d60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016107b960201b60201c565b6105d060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660095461085760201b60201c565b6111f6565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6106ad6109b160201b60201c565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161074791906110a2565b60405180910390a25050565b6107616109b160201b60201c565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108bc90611115565b60405180910390fd5b6108d65f8383610a3b60201b60201c565b8060025f8282546108e79190611133565b92505081905550805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516109949190611175565b60405180910390a36109ad5f8383610a4060201b60201c565b5050565b6109bf6105d560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166109e3610a4560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614610a39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a30906111d8565b60405180910390fd5b565b505050565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b6001851115610aef57808604811115610acb57610aca610a6d565b5b6001851615610ada5780820291505b8081029050610ae885610a9a565b9450610aaf565b94509492505050565b5f82610b075760019050610bc2565b81610b14575f9050610bc2565b8160018114610b2a5760028114610b3457610b63565b6001915050610bc2565b60ff841115610b4657610b45610a6d565b5b8360020a915084821115610b5d57610b5c610a6d565b5b50610bc2565b5060208310610133831016604e8410600b8410161715610b985782820a905083811115610b9357610b92610a6d565b5b610bc2565b610ba58484846001610aa6565b92509050818404811115610bbc57610bbb610a6d565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f610be882610bc9565b9150610bf383610bd2565b9250610c207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610af8565b905092915050565b5f610c3282610bc9565b9150610c3d83610bc9565b9250828202610c4b81610bc9565b91508282048414831517610c6257610c61610a6d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610ca082610bc9565b9150610cab83610bc9565b925082610cbb57610cba610c69565b5b828204905092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610d4157607f821691505b602082108103610d5457610d53610cfd565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610db67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610d7b565b610dc08683610d7b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f610dfb610df6610df184610bc9565b610dd8565b610bc9565b9050919050565b5f819050919050565b610e1483610de1565b610e28610e2082610e02565b848454610d87565b825550505050565b5f5f905090565b610e3f610e30565b610e4a818484610e0b565b505050565b5b81811015610e6d57610e625f82610e37565b600181019050610e50565b5050565b601f821115610eb257610e8381610d5a565b610e8c84610d6c565b81016020851015610e9b578190505b610eaf610ea785610d6c565b830182610e4f565b50505b505050565b5f82821c905092915050565b5f610ed25f1984600802610eb7565b1980831691505092915050565b5f610eea8383610ec3565b9150826002028217905092915050565b610f0382610cc6565b67ffffffffffffffff811115610f1c57610f1b610cd0565b5b610f268254610d2a565b610f31828285610e71565b5f60209050601f831160018114610f62575f8415610f50578287015190505b610f5a8582610edf565b865550610fc1565b601f198416610f7086610d5a565b5f5b82811015610f9757848901518255600182019150602085019450602081019050610f72565b86831015610fb45784890151610fb0601f891682610ec3565b8355505b6001600288020188555050505b505050505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610ff682610fcd565b9050919050565b61100681610fec565b8114611010575f5ffd5b50565b5f8151905061102181610ffd565b92915050565b5f6020828403121561103c5761103b610fc9565b5b5f61104984828501611013565b91505092915050565b61105b81610fec565b82525050565b5f6040820190506110745f830185611052565b6110816020830184611052565b9392505050565b5f8115159050919050565b61109c81611088565b82525050565b5f6020820190506110b55f830184611093565b92915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f6110ff601f836110bb565b915061110a826110cb565b602082019050919050565b5f6020820190508181035f83015261112c816110f3565b9050919050565b5f61113d82610bc9565b915061114883610bc9565b92508282019050808211156111605761115f610a6d565b5b92915050565b61116f81610bc9565b82525050565b5f6020820190506111885f830184611166565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6111c26020836110bb565b91506111cd8261118e565b602082019050919050565b5f6020820190508181035f8301526111ef816111b6565b9050919050565b608051613e2661123f5f395f8181610aab01528181610ad401528181610bd501528181610d2201528181611a8f015281816125f9015281816126d801526126ff0152613e265ff3fe608060405260043610610228575f3560e01c8063715018a611610122578063a9059cbb116100aa578063dd62ed3e1161006e578063dd62ed3e14610783578063e2f45605146107bf578063f2fde38b146107e9578063f8b45b0514610811578063ffb54a991461083b5761022f565b8063a9059cbb146106b5578063c0246668146106f1578063c876d0b914610719578063c8c8ebe414610743578063c9567bf91461076d5761022f565b806395d89b41116100f157806395d89b41146105fb5780639a7a23d6146106255780639b6365451461064d578063a0ef91df14610663578063a457c2d7146106795761022f565b8063715018a61461056b57806371f5f01a146105815780637571336a146105a95780638da5cb5b146105d15761022f565b806339509351116101b05780634fbee193116101745780634fbee1931461047757806352f7c988146104b3578063583e0568146104db5780636ddd17131461050557806370a082311461052f5761022f565b806339509351146103a95780633edab509146103e557806342966c68146103fb578063470624021461042357806349bd5a5e1461044d5761022f565b806323b872dd116101f757806323b872dd146102d95780632b14ca56146103155780632cb743f71461033f578063311028af14610355578063313ce5671461037f5761022f565b806306fdde0314610233578063095ea7b31461025d578063139864a81461029957806318160ddd146102af5761022f565b3661022f57005b5f5ffd5b34801561023e575f5ffd5b50610247610865565b6040516102549190612ba6565b60405180910390f35b348015610268575f5ffd5b50610283600480360381019061027e9190612c57565b6108f5565b6040516102909190612caf565b60405180910390f35b3480156102a4575f5ffd5b506102ad610917565b005b3480156102ba575f5ffd5b506102c3610933565b6040516102d09190612cd7565b60405180910390f35b3480156102e4575f5ffd5b506102ff60048036038101906102fa9190612cf0565b61093c565b60405161030c9190612caf565b60405180910390f35b348015610320575f5ffd5b5061032961096a565b6040516103369190612cd7565b60405180910390f35b34801561034a575f5ffd5b50610353610970565b005b348015610360575f5ffd5b50610369610a0a565b6040516103769190612cd7565b60405180910390f35b34801561038a575f5ffd5b50610393610a10565b6040516103a09190612d5b565b60405180910390f35b3480156103b4575f5ffd5b506103cf60048036038101906103ca9190612c57565b610a18565b6040516103dc9190612caf565b60405180910390f35b3480156103f0575f5ffd5b506103f9610a4e565b005b348015610406575f5ffd5b50610421600480360381019061041c9190612d74565b610c75565b005b34801561042e575f5ffd5b50610437610c89565b6040516104449190612cd7565b60405180910390f35b348015610458575f5ffd5b50610461610c8f565b60405161046e9190612dae565b60405180910390f35b348015610482575f5ffd5b5061049d60048036038101906104989190612dc7565b610cb4565b6040516104aa9190612caf565b60405180910390f35b3480156104be575f5ffd5b506104d960048036038101906104d49190612df2565b610d06565b005b3480156104e6575f5ffd5b506104ef610d20565b6040516104fc9190612e8b565b60405180910390f35b348015610510575f5ffd5b50610519610d44565b6040516105269190612caf565b60405180910390f35b34801561053a575f5ffd5b5061055560048036038101906105509190612dc7565b610d57565b6040516105629190612cd7565b60405180910390f35b348015610576575f5ffd5b5061057f610d9c565b005b34801561058c575f5ffd5b506105a760048036038101906105a29190612d74565b610daf565b005b3480156105b4575f5ffd5b506105cf60048036038101906105ca9190612ece565b610e43565b005b3480156105dc575f5ffd5b506105e5610ea3565b6040516105f29190612dae565b60405180910390f35b348015610606575f5ffd5b5061060f610ecb565b60405161061c9190612ba6565b60405180910390f35b348015610630575f5ffd5b5061064b60048036038101906106469190612ece565b610f5b565b005b348015610658575f5ffd5b50610661611000565b005b34801561066e575f5ffd5b50610677611073565b005b348015610684575f5ffd5b5061069f600480360381019061069a9190612c57565b61115a565b6040516106ac9190612caf565b60405180910390f35b3480156106c0575f5ffd5b506106db60048036038101906106d69190612c57565b6111cf565b6040516106e89190612caf565b60405180910390f35b3480156106fc575f5ffd5b5061071760048036038101906107129190612ece565b6111f1565b005b348015610724575f5ffd5b5061072d61129f565b60405161073a9190612caf565b60405180910390f35b34801561074e575f5ffd5b506107576112b2565b6040516107649190612cd7565b60405180910390f35b348015610778575f5ffd5b506107816112b8565b005b34801561078e575f5ffd5b506107a960048036038101906107a49190612f0c565b6112f7565b6040516107b69190612cd7565b60405180910390f35b3480156107ca575f5ffd5b506107d3611379565b6040516107e09190612cd7565b60405180910390f35b3480156107f4575f5ffd5b5061080f600480360381019061080a9190612dc7565b61137f565b005b34801561081c575f5ffd5b50610825611401565b6040516108329190612cd7565b60405180910390f35b348015610846575f5ffd5b5061084f611407565b60405161085c9190612caf565b60405180910390f35b60606003805461087490612f77565b80601f01602080910402602001604051908101604052809291908181526020018280546108a090612f77565b80156108eb5780601f106108c2576101008083540402835291602001916108eb565b820191905f5260205f20905b8154815290600101906020018083116108ce57829003601f168201915b5050505050905090565b5f5f6108ff611419565b905061090c818585611420565b600191505092915050565b61091f6115e3565b600954600d81905550600954600c81905550565b5f600254905090565b5f5f610946611419565b9050610953858285611661565b61095e8585856116ec565b60019150509392505050565b600b5481565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109b0611419565b73ffffffffffffffffffffffffffffffffffffffff16146109cf575f5ffd5b5f6109d930610d57565b9050610a073060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836116ec565b50565b60095481565b5f6009905090565b5f5f610a22611419565b9050610a43818585610a3485896112f7565b610a3e9190612fd4565b611420565b600191505092915050565b610a566115e3565b60115f9054906101000a900460ff1615610aa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9c90613051565b60405180910390fd5b610ad2307f0000000000000000000000000000000000000000000000000000000000000000600954611420565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610b1930610d57565b5f5f73d069ef73c9ce6d8f1b5d25a0d80427a44ab400c7426040518863ffffffff1660e01b8152600401610b52969594939291906130a8565b60606040518083038185885af1158015610b6e573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b93919061311b565b50505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610c3292919061316b565b6020604051808303815f875af1158015610c4e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c7291906131a6565b50565b610c86610c80611419565b826122d6565b50565b600a5481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b610d0e6115e3565b80600b8190555081600a819055505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b601160019054906101000a900460ff1681565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610da46115e3565b610dad5f612499565b565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610def611419565b73ffffffffffffffffffffffffffffffffffffffff1614610e0e575f5ffd5b5f610e1830610d57565b90505f60648383610e2991906131d1565b610e33919061323f565b9050610e3e8161255c565b505050565b610e4b6115e3565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610eda90612f77565b80601f0160208091040260200160405190810160405280929190818152602001828054610f0690612f77565b8015610f515780601f10610f2857610100808354040283529160200191610f51565b820191905f5260205f20905b815481529060010190602001808311610f3457829003601f168201915b5050505050905090565b610f636115e3565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ff2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe9906132df565b60405180910390fd5b610ffc82826127b0565b5050565b6110086115e3565b600e60019054906101000a900460ff16611057576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104e90613347565b60405180910390fd5b5f600e60016101000a81548160ff021916908315150217905550565b5f47116110b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ac906133af565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110f5611419565b73ffffffffffffffffffffffffffffffffffffffff1614611114575f5ffd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611157573d5f5f3e3d5ffd5b50565b5f5f611164611419565b90505f61117182866112f7565b9050838110156111b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ad9061343d565b60405180910390fd5b6111c38286868403611420565b60019250505092915050565b5f5f6111d9611419565b90506111e68185856116ec565b600191505092915050565b6111f96115e3565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516112939190612caf565b60405180910390a25050565b600e60019054906101000a900460ff1681565b600d5481565b6112c06115e3565b6001601160016101000a81548160ff021916908315150217905550600160115f6101000a81548160ff021916908315150217905550565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60105481565b6113876115e3565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036113f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ec906134cb565b60405180910390fd5b6113fe81612499565b50565b600c5481565b60115f9054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361148e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148590613559565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f3906135e7565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115d69190612cd7565b60405180910390a3505050565b6115eb611419565b73ffffffffffffffffffffffffffffffffffffffff16611609610ea3565b73ffffffffffffffffffffffffffffffffffffffff161461165f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116569061364f565b60405180910390fd5b565b5f61166c84846112f7565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146116e657818110156116d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cf906136b7565b60405180910390fd5b6116e58484848403611420565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361175a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175190613745565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bf906137d3565b60405180910390fd5b5f81036117df576117da83835f61284e565b6122d1565b6117e7610ea3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118555750611825610ea3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561188d57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118c7575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118df5750600e5f9054906101000a900460ff16155b15611f625760115f9054906101000a900460ff166119d25760125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611992575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6119d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c89061383b565b60405180910390fd5b5b600e60019054906101000a900460ff168015611a35575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611a88575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611c88577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611b36575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c875743600f5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054108015611bc3575043600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054105b611c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf9906138c9565b60405180910390fd5b43600f5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555043600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611d25575060135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611dcc57600d54811115611d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6690613957565b60405180910390fd5b600c54611d7b83610d57565b82611d869190612fd4565b1115611dc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbe906139bf565b60405180910390fd5b611f61565b60145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611e69575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611eb857600d54811115611eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eaa90613a4d565b60405180910390fd5b611f60565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611f5f57600c54611f1283610d57565b82611f1d9190612fd4565b1115611f5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f55906139bf565b60405180910390fd5b5b5b5b5b5f611f6c30610d57565b90505f60105482119050808015611f8f5750601160019054906101000a900460ff165b8015611fa75750600e5f9054906101000a900460ff16155b8015611ffa575060145f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561204d575060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156120a0575060125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156120e2576001600e5f6101000a81548160ff0219169083151502179055506120c883612aba565b5f600e5f6101000a81548160ff0219169083151502179055505b5f600e5f9054906101000a900460ff16158015612146575060125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612199575060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b90505f5f905081156122c15760145f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156122235761221c606461220e600b5488612b0290919063ffffffff16565b612b1790919063ffffffff16565b905061229e565b60145f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561229d5761229a606461228c600a5488612b0290919063ffffffff16565b612b1790919063ffffffff16565b90505b5b5f8111156122b2576122b187308361284e565b5b80856122be9190613a6b565b94505b6122cc87878761284e565b505050505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612344576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233b90613b0e565b60405180910390fd5b61234f825f83612b2c565b5f5f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156123d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c990613b9c565b60405180910390fd5b8181035f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f82825403925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124819190612cd7565b60405180910390a3612494835f84612b31565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600267ffffffffffffffff81111561257857612577613bba565b5b6040519080825280602002602001820160405280156125a65781602001602082028036833780820191505090505b50905030815f815181106125bd576125bc613be7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612660573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126849190613c28565b8160018151811061269857612697613be7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126fd307f000000000000000000000000000000000000000000000000000000000000000084611420565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161277f959493929190613d0a565b5f604051808303815f87803b158015612796575f5ffd5b505af11580156127a8573d5f5f3e3d5ffd5b505050505050565b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036128bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b390613745565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361292a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612921906137d3565b60405180910390fd5b612935838383612b2c565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156129b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129af90613dd2565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612aa19190612cd7565b60405180910390a3612ab4848484612b31565b50505050565b5f612ac430610d57565b90505f8103612ad35750612aff565b5f819050601054811115612ae75760105490505b82811115612af3578290505b612afc8161255c565b50505b50565b5f8183612b0f91906131d1565b905092915050565b5f8183612b24919061323f565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612b7882612b36565b612b828185612b40565b9350612b92818560208601612b50565b612b9b81612b5e565b840191505092915050565b5f6020820190508181035f830152612bbe8184612b6e565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612bf382612bca565b9050919050565b612c0381612be9565b8114612c0d575f5ffd5b50565b5f81359050612c1e81612bfa565b92915050565b5f819050919050565b612c3681612c24565b8114612c40575f5ffd5b50565b5f81359050612c5181612c2d565b92915050565b5f5f60408385031215612c6d57612c6c612bc6565b5b5f612c7a85828601612c10565b9250506020612c8b85828601612c43565b9150509250929050565b5f8115159050919050565b612ca981612c95565b82525050565b5f602082019050612cc25f830184612ca0565b92915050565b612cd181612c24565b82525050565b5f602082019050612cea5f830184612cc8565b92915050565b5f5f5f60608486031215612d0757612d06612bc6565b5b5f612d1486828701612c10565b9350506020612d2586828701612c10565b9250506040612d3686828701612c43565b9150509250925092565b5f60ff82169050919050565b612d5581612d40565b82525050565b5f602082019050612d6e5f830184612d4c565b92915050565b5f60208284031215612d8957612d88612bc6565b5b5f612d9684828501612c43565b91505092915050565b612da881612be9565b82525050565b5f602082019050612dc15f830184612d9f565b92915050565b5f60208284031215612ddc57612ddb612bc6565b5b5f612de984828501612c10565b91505092915050565b5f5f60408385031215612e0857612e07612bc6565b5b5f612e1585828601612c43565b9250506020612e2685828601612c43565b9150509250929050565b5f819050919050565b5f612e53612e4e612e4984612bca565b612e30565b612bca565b9050919050565b5f612e6482612e39565b9050919050565b5f612e7582612e5a565b9050919050565b612e8581612e6b565b82525050565b5f602082019050612e9e5f830184612e7c565b92915050565b612ead81612c95565b8114612eb7575f5ffd5b50565b5f81359050612ec881612ea4565b92915050565b5f5f60408385031215612ee457612ee3612bc6565b5b5f612ef185828601612c10565b9250506020612f0285828601612eba565b9150509250929050565b5f5f60408385031215612f2257612f21612bc6565b5b5f612f2f85828601612c10565b9250506020612f4085828601612c10565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612f8e57607f821691505b602082108103612fa157612fa0612f4a565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612fde82612c24565b9150612fe983612c24565b925082820190508082111561300157613000612fa7565b5b92915050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61303b601783612b40565b915061304682613007565b602082019050919050565b5f6020820190508181035f8301526130688161302f565b9050919050565b5f819050919050565b5f61309261308d6130888461306f565b612e30565b612c24565b9050919050565b6130a281613078565b82525050565b5f60c0820190506130bb5f830189612d9f565b6130c86020830188612cc8565b6130d56040830187613099565b6130e26060830186613099565b6130ef6080830185612d9f565b6130fc60a0830184612cc8565b979650505050505050565b5f8151905061311581612c2d565b92915050565b5f5f5f6060848603121561313257613131612bc6565b5b5f61313f86828701613107565b935050602061315086828701613107565b925050604061316186828701613107565b9150509250925092565b5f60408201905061317e5f830185612d9f565b61318b6020830184612cc8565b9392505050565b5f815190506131a081612ea4565b92915050565b5f602082840312156131bb576131ba612bc6565b5b5f6131c884828501613192565b91505092915050565b5f6131db82612c24565b91506131e683612c24565b92508282026131f481612c24565b9150828204841483151761320b5761320a612fa7565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61324982612c24565b915061325483612c24565b92508261326457613263613212565b5b828204905092915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f6132c9603983612b40565b91506132d48261326f565b604082019050919050565b5f6020820190508181035f8301526132f6816132bd565b9050919050565b7f416c72656164792064697361626c6564210000000000000000000000000000005f82015250565b5f613331601183612b40565b915061333c826132fd565b602082019050919050565b5f6020820190508181035f83015261335e81613325565b9050919050565b7f546f6b656e3a206e6f2045544820696e2074686520636f6e74726163740000005f82015250565b5f613399601d83612b40565b91506133a482613365565b602082019050919050565b5f6020820190508181035f8301526133c68161338d565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613427602583612b40565b9150613432826133cd565b604082019050919050565b5f6020820190508181035f8301526134548161341b565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6134b5602683612b40565b91506134c08261345b565b604082019050919050565b5f6020820190508181035f8301526134e2816134a9565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613543602483612b40565b915061354e826134e9565b604082019050919050565b5f6020820190508181035f83015261357081613537565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6135d1602283612b40565b91506135dc82613577565b604082019050919050565b5f6020820190508181035f8301526135fe816135c5565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613639602083612b40565b915061364482613605565b602082019050919050565b5f6020820190508181035f8301526136668161362d565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f6136a1601d83612b40565b91506136ac8261366d565b602082019050919050565b5f6020820190508181035f8301526136ce81613695565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61372f602583612b40565b915061373a826136d5565b604082019050919050565b5f6020820190508181035f83015261375c81613723565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6137bd602383612b40565b91506137c882613763565b604082019050919050565b5f6020820190508181035f8301526137ea816137b1565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f613825601683612b40565b9150613830826137f1565b602082019050919050565b5f6020820190508181035f83015261385281613819565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e202054727920616761696e206c617465722e0000000000000000000000602082015250565b5f6138b3603583612b40565b91506138be82613859565b604082019050919050565b5f6020820190508181035f8301526138e0816138a7565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f613941603583612b40565b915061394c826138e7565b604082019050919050565b5f6020820190508181035f83015261396e81613935565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6139a9601383612b40565b91506139b482613975565b602082019050919050565b5f6020820190508181035f8301526139d68161399d565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f613a37603683612b40565b9150613a42826139dd565b604082019050919050565b5f6020820190508181035f830152613a6481613a2b565b9050919050565b5f613a7582612c24565b9150613a8083612c24565b9250828203905081811115613a9857613a97612fa7565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f613af8602183612b40565b9150613b0382613a9e565b604082019050919050565b5f6020820190508181035f830152613b2581613aec565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f613b86602283612b40565b9150613b9182613b2c565b604082019050919050565b5f6020820190508181035f830152613bb381613b7a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613c2281612bfa565b92915050565b5f60208284031215613c3d57613c3c612bc6565b5b5f613c4a84828501613c14565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613c8581612be9565b82525050565b5f613c968383613c7c565b60208301905092915050565b5f602082019050919050565b5f613cb882613c53565b613cc28185613c5d565b9350613ccd83613c6d565b805f5b83811015613cfd578151613ce48882613c8b565b9750613cef83613ca2565b925050600181019050613cd0565b5085935050505092915050565b5f60a082019050613d1d5f830188612cc8565b613d2a6020830187613099565b8181036040830152613d3c8186613cae565b9050613d4b6060830185612d9f565b613d586080830184612cc8565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613dbc602683612b40565b9150613dc782613d62565b604082019050919050565b5f6020820190508181035f830152613de981613db0565b905091905056fea2646970667358221220c1cf30dd0bd827deb2f61c5741d2d3f3539bcf7fbac9dd0033dfadea014baec064736f6c634300081b0033

Deployed Bytecode

0x608060405260043610610228575f3560e01c8063715018a611610122578063a9059cbb116100aa578063dd62ed3e1161006e578063dd62ed3e14610783578063e2f45605146107bf578063f2fde38b146107e9578063f8b45b0514610811578063ffb54a991461083b5761022f565b8063a9059cbb146106b5578063c0246668146106f1578063c876d0b914610719578063c8c8ebe414610743578063c9567bf91461076d5761022f565b806395d89b41116100f157806395d89b41146105fb5780639a7a23d6146106255780639b6365451461064d578063a0ef91df14610663578063a457c2d7146106795761022f565b8063715018a61461056b57806371f5f01a146105815780637571336a146105a95780638da5cb5b146105d15761022f565b806339509351116101b05780634fbee193116101745780634fbee1931461047757806352f7c988146104b3578063583e0568146104db5780636ddd17131461050557806370a082311461052f5761022f565b806339509351146103a95780633edab509146103e557806342966c68146103fb578063470624021461042357806349bd5a5e1461044d5761022f565b806323b872dd116101f757806323b872dd146102d95780632b14ca56146103155780632cb743f71461033f578063311028af14610355578063313ce5671461037f5761022f565b806306fdde0314610233578063095ea7b31461025d578063139864a81461029957806318160ddd146102af5761022f565b3661022f57005b5f5ffd5b34801561023e575f5ffd5b50610247610865565b6040516102549190612ba6565b60405180910390f35b348015610268575f5ffd5b50610283600480360381019061027e9190612c57565b6108f5565b6040516102909190612caf565b60405180910390f35b3480156102a4575f5ffd5b506102ad610917565b005b3480156102ba575f5ffd5b506102c3610933565b6040516102d09190612cd7565b60405180910390f35b3480156102e4575f5ffd5b506102ff60048036038101906102fa9190612cf0565b61093c565b60405161030c9190612caf565b60405180910390f35b348015610320575f5ffd5b5061032961096a565b6040516103369190612cd7565b60405180910390f35b34801561034a575f5ffd5b50610353610970565b005b348015610360575f5ffd5b50610369610a0a565b6040516103769190612cd7565b60405180910390f35b34801561038a575f5ffd5b50610393610a10565b6040516103a09190612d5b565b60405180910390f35b3480156103b4575f5ffd5b506103cf60048036038101906103ca9190612c57565b610a18565b6040516103dc9190612caf565b60405180910390f35b3480156103f0575f5ffd5b506103f9610a4e565b005b348015610406575f5ffd5b50610421600480360381019061041c9190612d74565b610c75565b005b34801561042e575f5ffd5b50610437610c89565b6040516104449190612cd7565b60405180910390f35b348015610458575f5ffd5b50610461610c8f565b60405161046e9190612dae565b60405180910390f35b348015610482575f5ffd5b5061049d60048036038101906104989190612dc7565b610cb4565b6040516104aa9190612caf565b60405180910390f35b3480156104be575f5ffd5b506104d960048036038101906104d49190612df2565b610d06565b005b3480156104e6575f5ffd5b506104ef610d20565b6040516104fc9190612e8b565b60405180910390f35b348015610510575f5ffd5b50610519610d44565b6040516105269190612caf565b60405180910390f35b34801561053a575f5ffd5b5061055560048036038101906105509190612dc7565b610d57565b6040516105629190612cd7565b60405180910390f35b348015610576575f5ffd5b5061057f610d9c565b005b34801561058c575f5ffd5b506105a760048036038101906105a29190612d74565b610daf565b005b3480156105b4575f5ffd5b506105cf60048036038101906105ca9190612ece565b610e43565b005b3480156105dc575f5ffd5b506105e5610ea3565b6040516105f29190612dae565b60405180910390f35b348015610606575f5ffd5b5061060f610ecb565b60405161061c9190612ba6565b60405180910390f35b348015610630575f5ffd5b5061064b60048036038101906106469190612ece565b610f5b565b005b348015610658575f5ffd5b50610661611000565b005b34801561066e575f5ffd5b50610677611073565b005b348015610684575f5ffd5b5061069f600480360381019061069a9190612c57565b61115a565b6040516106ac9190612caf565b60405180910390f35b3480156106c0575f5ffd5b506106db60048036038101906106d69190612c57565b6111cf565b6040516106e89190612caf565b60405180910390f35b3480156106fc575f5ffd5b5061071760048036038101906107129190612ece565b6111f1565b005b348015610724575f5ffd5b5061072d61129f565b60405161073a9190612caf565b60405180910390f35b34801561074e575f5ffd5b506107576112b2565b6040516107649190612cd7565b60405180910390f35b348015610778575f5ffd5b506107816112b8565b005b34801561078e575f5ffd5b506107a960048036038101906107a49190612f0c565b6112f7565b6040516107b69190612cd7565b60405180910390f35b3480156107ca575f5ffd5b506107d3611379565b6040516107e09190612cd7565b60405180910390f35b3480156107f4575f5ffd5b5061080f600480360381019061080a9190612dc7565b61137f565b005b34801561081c575f5ffd5b50610825611401565b6040516108329190612cd7565b60405180910390f35b348015610846575f5ffd5b5061084f611407565b60405161085c9190612caf565b60405180910390f35b60606003805461087490612f77565b80601f01602080910402602001604051908101604052809291908181526020018280546108a090612f77565b80156108eb5780601f106108c2576101008083540402835291602001916108eb565b820191905f5260205f20905b8154815290600101906020018083116108ce57829003601f168201915b5050505050905090565b5f5f6108ff611419565b905061090c818585611420565b600191505092915050565b61091f6115e3565b600954600d81905550600954600c81905550565b5f600254905090565b5f5f610946611419565b9050610953858285611661565b61095e8585856116ec565b60019150509392505050565b600b5481565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109b0611419565b73ffffffffffffffffffffffffffffffffffffffff16146109cf575f5ffd5b5f6109d930610d57565b9050610a073060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836116ec565b50565b60095481565b5f6009905090565b5f5f610a22611419565b9050610a43818585610a3485896112f7565b610a3e9190612fd4565b611420565b600191505092915050565b610a566115e3565b60115f9054906101000a900460ff1615610aa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9c90613051565b60405180910390fd5b610ad2307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d600954611420565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610b1930610d57565b5f5f73d069ef73c9ce6d8f1b5d25a0d80427a44ab400c7426040518863ffffffff1660e01b8152600401610b52969594939291906130a8565b60606040518083038185885af1158015610b6e573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b93919061311b565b50505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610c3292919061316b565b6020604051808303815f875af1158015610c4e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c7291906131a6565b50565b610c86610c80611419565b826122d6565b50565b600a5481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b610d0e6115e3565b80600b8190555081600a819055505050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b601160019054906101000a900460ff1681565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610da46115e3565b610dad5f612499565b565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610def611419565b73ffffffffffffffffffffffffffffffffffffffff1614610e0e575f5ffd5b5f610e1830610d57565b90505f60648383610e2991906131d1565b610e33919061323f565b9050610e3e8161255c565b505050565b610e4b6115e3565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610eda90612f77565b80601f0160208091040260200160405190810160405280929190818152602001828054610f0690612f77565b8015610f515780601f10610f2857610100808354040283529160200191610f51565b820191905f5260205f20905b815481529060010190602001808311610f3457829003601f168201915b5050505050905090565b610f636115e3565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ff2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe9906132df565b60405180910390fd5b610ffc82826127b0565b5050565b6110086115e3565b600e60019054906101000a900460ff16611057576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104e90613347565b60405180910390fd5b5f600e60016101000a81548160ff021916908315150217905550565b5f47116110b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ac906133af565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110f5611419565b73ffffffffffffffffffffffffffffffffffffffff1614611114575f5ffd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611157573d5f5f3e3d5ffd5b50565b5f5f611164611419565b90505f61117182866112f7565b9050838110156111b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ad9061343d565b60405180910390fd5b6111c38286868403611420565b60019250505092915050565b5f5f6111d9611419565b90506111e68185856116ec565b600191505092915050565b6111f96115e3565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516112939190612caf565b60405180910390a25050565b600e60019054906101000a900460ff1681565b600d5481565b6112c06115e3565b6001601160016101000a81548160ff021916908315150217905550600160115f6101000a81548160ff021916908315150217905550565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60105481565b6113876115e3565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036113f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ec906134cb565b60405180910390fd5b6113fe81612499565b50565b600c5481565b60115f9054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361148e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148590613559565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f3906135e7565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115d69190612cd7565b60405180910390a3505050565b6115eb611419565b73ffffffffffffffffffffffffffffffffffffffff16611609610ea3565b73ffffffffffffffffffffffffffffffffffffffff161461165f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116569061364f565b60405180910390fd5b565b5f61166c84846112f7565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146116e657818110156116d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cf906136b7565b60405180910390fd5b6116e58484848403611420565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361175a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175190613745565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bf906137d3565b60405180910390fd5b5f81036117df576117da83835f61284e565b6122d1565b6117e7610ea3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118555750611825610ea3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561188d57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118c7575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118df5750600e5f9054906101000a900460ff16155b15611f625760115f9054906101000a900460ff166119d25760125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611992575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6119d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c89061383b565b60405180910390fd5b5b600e60019054906101000a900460ff168015611a35575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611a88575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611c88577f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611b36575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c875743600f5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054108015611bc3575043600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054105b611c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf9906138c9565b60405180910390fd5b43600f5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555043600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611d25575060135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611dcc57600d54811115611d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6690613957565b60405180910390fd5b600c54611d7b83610d57565b82611d869190612fd4565b1115611dc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbe906139bf565b60405180910390fd5b611f61565b60145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611e69575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611eb857600d54811115611eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eaa90613a4d565b60405180910390fd5b611f60565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611f5f57600c54611f1283610d57565b82611f1d9190612fd4565b1115611f5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f55906139bf565b60405180910390fd5b5b5b5b5b5f611f6c30610d57565b90505f60105482119050808015611f8f5750601160019054906101000a900460ff165b8015611fa75750600e5f9054906101000a900460ff16155b8015611ffa575060145f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561204d575060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156120a0575060125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156120e2576001600e5f6101000a81548160ff0219169083151502179055506120c883612aba565b5f600e5f6101000a81548160ff0219169083151502179055505b5f600e5f9054906101000a900460ff16158015612146575060125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612199575060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b90505f5f905081156122c15760145f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156122235761221c606461220e600b5488612b0290919063ffffffff16565b612b1790919063ffffffff16565b905061229e565b60145f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561229d5761229a606461228c600a5488612b0290919063ffffffff16565b612b1790919063ffffffff16565b90505b5b5f8111156122b2576122b187308361284e565b5b80856122be9190613a6b565b94505b6122cc87878761284e565b505050505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612344576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233b90613b0e565b60405180910390fd5b61234f825f83612b2c565b5f5f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156123d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c990613b9c565b60405180910390fd5b8181035f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f82825403925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124819190612cd7565b60405180910390a3612494835f84612b31565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600267ffffffffffffffff81111561257857612577613bba565b5b6040519080825280602002602001820160405280156125a65781602001602082028036833780820191505090505b50905030815f815181106125bd576125bc613be7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612660573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126849190613c28565b8160018151811061269857612697613be7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126fd307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611420565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161277f959493929190613d0a565b5f604051808303815f87803b158015612796575f5ffd5b505af11580156127a8573d5f5f3e3d5ffd5b505050505050565b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036128bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b390613745565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361292a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612921906137d3565b60405180910390fd5b612935838383612b2c565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156129b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129af90613dd2565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612aa19190612cd7565b60405180910390a3612ab4848484612b31565b50505050565b5f612ac430610d57565b90505f8103612ad35750612aff565b5f819050601054811115612ae75760105490505b82811115612af3578290505b612afc8161255c565b50505b50565b5f8183612b0f91906131d1565b905092915050565b5f8183612b24919061323f565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612b7882612b36565b612b828185612b40565b9350612b92818560208601612b50565b612b9b81612b5e565b840191505092915050565b5f6020820190508181035f830152612bbe8184612b6e565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612bf382612bca565b9050919050565b612c0381612be9565b8114612c0d575f5ffd5b50565b5f81359050612c1e81612bfa565b92915050565b5f819050919050565b612c3681612c24565b8114612c40575f5ffd5b50565b5f81359050612c5181612c2d565b92915050565b5f5f60408385031215612c6d57612c6c612bc6565b5b5f612c7a85828601612c10565b9250506020612c8b85828601612c43565b9150509250929050565b5f8115159050919050565b612ca981612c95565b82525050565b5f602082019050612cc25f830184612ca0565b92915050565b612cd181612c24565b82525050565b5f602082019050612cea5f830184612cc8565b92915050565b5f5f5f60608486031215612d0757612d06612bc6565b5b5f612d1486828701612c10565b9350506020612d2586828701612c10565b9250506040612d3686828701612c43565b9150509250925092565b5f60ff82169050919050565b612d5581612d40565b82525050565b5f602082019050612d6e5f830184612d4c565b92915050565b5f60208284031215612d8957612d88612bc6565b5b5f612d9684828501612c43565b91505092915050565b612da881612be9565b82525050565b5f602082019050612dc15f830184612d9f565b92915050565b5f60208284031215612ddc57612ddb612bc6565b5b5f612de984828501612c10565b91505092915050565b5f5f60408385031215612e0857612e07612bc6565b5b5f612e1585828601612c43565b9250506020612e2685828601612c43565b9150509250929050565b5f819050919050565b5f612e53612e4e612e4984612bca565b612e30565b612bca565b9050919050565b5f612e6482612e39565b9050919050565b5f612e7582612e5a565b9050919050565b612e8581612e6b565b82525050565b5f602082019050612e9e5f830184612e7c565b92915050565b612ead81612c95565b8114612eb7575f5ffd5b50565b5f81359050612ec881612ea4565b92915050565b5f5f60408385031215612ee457612ee3612bc6565b5b5f612ef185828601612c10565b9250506020612f0285828601612eba565b9150509250929050565b5f5f60408385031215612f2257612f21612bc6565b5b5f612f2f85828601612c10565b9250506020612f4085828601612c10565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612f8e57607f821691505b602082108103612fa157612fa0612f4a565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612fde82612c24565b9150612fe983612c24565b925082820190508082111561300157613000612fa7565b5b92915050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61303b601783612b40565b915061304682613007565b602082019050919050565b5f6020820190508181035f8301526130688161302f565b9050919050565b5f819050919050565b5f61309261308d6130888461306f565b612e30565b612c24565b9050919050565b6130a281613078565b82525050565b5f60c0820190506130bb5f830189612d9f565b6130c86020830188612cc8565b6130d56040830187613099565b6130e26060830186613099565b6130ef6080830185612d9f565b6130fc60a0830184612cc8565b979650505050505050565b5f8151905061311581612c2d565b92915050565b5f5f5f6060848603121561313257613131612bc6565b5b5f61313f86828701613107565b935050602061315086828701613107565b925050604061316186828701613107565b9150509250925092565b5f60408201905061317e5f830185612d9f565b61318b6020830184612cc8565b9392505050565b5f815190506131a081612ea4565b92915050565b5f602082840312156131bb576131ba612bc6565b5b5f6131c884828501613192565b91505092915050565b5f6131db82612c24565b91506131e683612c24565b92508282026131f481612c24565b9150828204841483151761320b5761320a612fa7565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61324982612c24565b915061325483612c24565b92508261326457613263613212565b5b828204905092915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f6132c9603983612b40565b91506132d48261326f565b604082019050919050565b5f6020820190508181035f8301526132f6816132bd565b9050919050565b7f416c72656164792064697361626c6564210000000000000000000000000000005f82015250565b5f613331601183612b40565b915061333c826132fd565b602082019050919050565b5f6020820190508181035f83015261335e81613325565b9050919050565b7f546f6b656e3a206e6f2045544820696e2074686520636f6e74726163740000005f82015250565b5f613399601d83612b40565b91506133a482613365565b602082019050919050565b5f6020820190508181035f8301526133c68161338d565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613427602583612b40565b9150613432826133cd565b604082019050919050565b5f6020820190508181035f8301526134548161341b565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6134b5602683612b40565b91506134c08261345b565b604082019050919050565b5f6020820190508181035f8301526134e2816134a9565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613543602483612b40565b915061354e826134e9565b604082019050919050565b5f6020820190508181035f83015261357081613537565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6135d1602283612b40565b91506135dc82613577565b604082019050919050565b5f6020820190508181035f8301526135fe816135c5565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613639602083612b40565b915061364482613605565b602082019050919050565b5f6020820190508181035f8301526136668161362d565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f6136a1601d83612b40565b91506136ac8261366d565b602082019050919050565b5f6020820190508181035f8301526136ce81613695565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61372f602583612b40565b915061373a826136d5565b604082019050919050565b5f6020820190508181035f83015261375c81613723565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6137bd602383612b40565b91506137c882613763565b604082019050919050565b5f6020820190508181035f8301526137ea816137b1565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f613825601683612b40565b9150613830826137f1565b602082019050919050565b5f6020820190508181035f83015261385281613819565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e202054727920616761696e206c617465722e0000000000000000000000602082015250565b5f6138b3603583612b40565b91506138be82613859565b604082019050919050565b5f6020820190508181035f8301526138e0816138a7565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f613941603583612b40565b915061394c826138e7565b604082019050919050565b5f6020820190508181035f83015261396e81613935565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6139a9601383612b40565b91506139b482613975565b602082019050919050565b5f6020820190508181035f8301526139d68161399d565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f613a37603683612b40565b9150613a42826139dd565b604082019050919050565b5f6020820190508181035f830152613a6481613a2b565b9050919050565b5f613a7582612c24565b9150613a8083612c24565b9250828203905081811115613a9857613a97612fa7565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f613af8602183612b40565b9150613b0382613a9e565b604082019050919050565b5f6020820190508181035f830152613b2581613aec565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f613b86602283612b40565b9150613b9182613b2c565b604082019050919050565b5f6020820190508181035f830152613bb381613b7a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613c2281612bfa565b92915050565b5f60208284031215613c3d57613c3c612bc6565b5b5f613c4a84828501613c14565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613c8581612be9565b82525050565b5f613c968383613c7c565b60208301905092915050565b5f602082019050919050565b5f613cb882613c53565b613cc28185613c5d565b9350613ccd83613c6d565b805f5b83811015613cfd578151613ce48882613c8b565b9750613cef83613ca2565b925050600181019050613cd0565b5085935050505092915050565b5f60a082019050613d1d5f830188612cc8565b613d2a6020830187613099565b8181036040830152613d3c8186613cae565b9050613d4b6060830185612d9f565b613d586080830184612cc8565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613dbc602683612b40565b9150613dc782613d62565b604082019050919050565b5f6020820190508181035f830152613de981613db0565b905091905056fea2646970667358221220c1cf30dd0bd827deb2f61c5741d2d3f3539bcf7fbac9dd0033dfadea014baec064736f6c634300081b0033

Deployed Bytecode Sourcemap

14562:9269:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9791:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10722:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22473:147;;;;;;;;;;;;;:::i;:::-;;10111:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10931:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15011:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23142:194;;;;;;;;;;;;;:::i;:::-;;14908:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10011:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11200:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17103:547;;;;;;;;;;;;;:::i;:::-;;17658:85;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14979:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14697:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18672:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22165:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14638:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15465:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10227:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1002:103;;;;;;;;;;;;;:::i;:::-;;22628:273;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17751:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;767:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9899:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18213:257;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22307:156;;;;;;;;;;;;;:::i;:::-;;22909:225;;;;;;;;;;;;;:::i;:::-;;11446:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10362:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18023:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15209:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15123:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17905:110;;;;;;;;;;;;;:::i;:::-;;10563:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15353:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1113:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15071:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15427:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9791:100;9845:13;9878:5;9871:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9791:100;:::o;10722:201::-;10805:4;10822:13;10838:12;:10;:12::i;:::-;10822:28;;10861:32;10870:5;10877:7;10886:6;10861:8;:32::i;:::-;10911:4;10904:11;;;10722:201;;;;:::o;22473:147::-;726:13;:11;:13::i;:::-;22553:18:::1;;22530:20;:41;;;;22594:18;;22582:9;:30;;;;22473:147::o:0;10111:108::-;10172:7;10199:12;;10192:19;;10111:108;:::o;10931:261::-;11028:4;11045:15;11063:12;:10;:12::i;:::-;11045:30;;11086:38;11102:4;11108:7;11117:6;11086:15;:38::i;:::-;11135:27;11145:4;11151:2;11155:6;11135:9;:27::i;:::-;11180:4;11173:11;;;10931:261;;;;;:::o;15011:26::-;;;;:::o;23142:194::-;23212:9;;;;;;;;;;;23196:25;;:12;:10;:12::i;:::-;:25;;;23188:34;;;;;;23233:14;23250:24;23268:4;23250:9;:24::i;:::-;23233:41;;23285:43;23303:4;23310:9;;;;;;;;;;;23321:6;23285:9;:43::i;:::-;23177:159;23142:194::o;14908:62::-;;;;:::o;10011:92::-;10069:5;10094:1;10087:8;;10011:92;:::o;11200:238::-;11288:4;11305:13;11321:12;:10;:12::i;:::-;11305:28;;11344:64;11353:5;11360:7;11397:10;11369:25;11379:5;11386:7;11369:9;:25::i;:::-;:38;;;;:::i;:::-;11344:8;:64::i;:::-;11426:4;11419:11;;;11200:238;;;;:::o;17103:547::-;726:13;:11;:13::i;:::-;17170:11:::1;;;;;;;;;;;17169:12;17161:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;17219:70;17236:4;17251:16;17270:18;;17219:8;:70::i;:::-;17300:16;:32;;;17340:21;17385:4;17405:24;17423:4;17405:9;:24::i;:::-;17444:1;17460;17476:42;17533:15;17300:259;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17577:13;;;;;;;;;;;17570:29;;;17608:16;17627:14;17570:72;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17103:547::o:0;17658:85::-;17708:27;17714:12;:10;:12::i;:::-;17728:6;17708:5;:27::i;:::-;17658:85;:::o;14979:25::-;;;;:::o;14697:28::-;;;;;;;;;;;;;:::o;18672:126::-;18738:4;18762:19;:28;18782:7;18762:28;;;;;;;;;;;;;;;;;;;;;;;;;18755:35;;18672:126;;;:::o;22165:134::-;726:13;:11;:13::i;:::-;22256:8:::1;22246:7;:18;;;;22284:7;22275:6;:16;;;;22165:134:::0;;:::o;14638:52::-;;;:::o;15465:31::-;;;;;;;;;;;;;:::o;10227:127::-;10301:7;10328:9;:18;10338:7;10328:18;;;;;;;;;;;;;;;;10321:25;;10227:127;;;:::o;1002:103::-;726:13;:11;:13::i;:::-;1067:30:::1;1094:1;1067:18;:30::i;:::-;1002:103::o:0;22628:273::-;22714:15;;;;;;;;;;;22698:31;;:12;:10;:12::i;:::-;:31;;;22690:40;;;;;;22741:23;22767:24;22785:4;22767:9;:24::i;:::-;22741:50;;22802:18;22851:3;22841:7;22823:15;:25;;;;:::i;:::-;:31;;;;:::i;:::-;22802:52;;22865:28;22882:10;22865:16;:28::i;:::-;22679:222;;22628:273;:::o;17751:144::-;726:13;:11;:13::i;:::-;17883:4:::1;17841:31;:39;17873:6;17841:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;17751:144:::0;;:::o;767:87::-;813:7;840:6;;;;;;;;;;;833:13;;767:87;:::o;9899:104::-;9955:13;9988:7;9981:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9899:104;:::o;18213:257::-;726:13;:11;:13::i;:::-;18335::::1;;;;;;;;;;;18327:21;;:4;:21;;::::0;18319:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18421:41;18450:4;18456:5;18421:28;:41::i;:::-;18213:257:::0;;:::o;22307:156::-;726:13;:11;:13::i;:::-;22374:20:::1;;;;;;;;;;;22366:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;22450:5;22427:20;;:28;;;;;;;;;;;;;;;;;;22307:156::o:0;22909:225::-;22984:1;22960:21;:25;22952:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23054:9;;;;;;;;;;;23038:25;;:12;:10;:12::i;:::-;:25;;;23030:34;;;;;;23083:10;23075:28;;:51;23104:21;23075:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22909:225::o;11446:436::-;11539:4;11556:13;11572:12;:10;:12::i;:::-;11556:28;;11595:24;11622:25;11632:5;11639:7;11622:9;:25::i;:::-;11595:52;;11686:15;11666:16;:35;;11658:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11779:60;11788:5;11795:7;11823:15;11804:16;:34;11779:8;:60::i;:::-;11870:4;11863:11;;;;11446:436;;;;:::o;10362:193::-;10441:4;10458:13;10474:12;:10;:12::i;:::-;10458:28;;10497;10507:5;10514:2;10518:6;10497:9;:28::i;:::-;10543:4;10536:11;;;10362:193;;;;:::o;18023:182::-;726:13;:11;:13::i;:::-;18139:8:::1;18108:19;:28;18128:7;18108:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18179:7;18163:34;;;18188:8;18163:34;;;;;;:::i;:::-;;;;;;;;18023:182:::0;;:::o;15209:39::-;;;;;;;;;;;;;:::o;15123:47::-;;;;:::o;17905:110::-;726:13;:11;:13::i;:::-;17974:4:::1;17960:11;;:18;;;;;;;;;;;;;;;;;;18003:4;17989:11;;:18;;;;;;;;;;;;;;;;;;17905:110::o:0;10563:151::-;10652:7;10679:11;:18;10691:5;10679:18;;;;;;;;;;;;;;;:27;10698:7;10679:27;;;;;;;;;;;;;;;;10672:34;;10563:151;;;;:::o;15353:65::-;;;;:::o;1113:201::-;726:13;:11;:13::i;:::-;1222:1:::1;1202:22;;:8;:22;;::::0;1194:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1278:28;1297:8;1278:18;:28::i;:::-;1113:201:::0;:::o;15071:45::-;;;;:::o;15427:31::-;;;;;;;;;;;;;:::o;240:98::-;293:7;320:10;313:17;;240:98;:::o;13585:346::-;13704:1;13687:19;;:5;:19;;;13679:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13785:1;13766:21;;:7;:21;;;13758:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13869:6;13839:11;:18;13851:5;13839:18;;;;;;;;;;;;;;;:27;13858:7;13839:27;;;;;;;;;;;;;;;:36;;;;13907:7;13891:32;;13900:5;13891:32;;;13916:6;13891:32;;;;;;:::i;:::-;;;;;;;;13585:346;;;:::o;862:132::-;937:12;:10;:12::i;:::-;926:23;;:7;:5;:7::i;:::-;:23;;;918:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;862:132::o;13939:419::-;14040:24;14067:25;14077:5;14084:7;14067:9;:25::i;:::-;14040:52;;14127:17;14107:16;:37;14103:248;;14189:6;14169:16;:26;;14161:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14273:51;14282:5;14289:7;14317:6;14298:16;:25;14273:8;:51::i;:::-;14103:248;14029:329;13939:419;;;:::o;18806:2867::-;18920:1;18904:18;;:4;:18;;;18896:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18997:1;18983:16;;:2;:16;;;18975:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19066:1;19056:6;:11;19052:93;;19084:28;19100:4;19106:2;19110:1;19084:15;:28::i;:::-;19127:7;;19052:93;19169:7;:5;:7::i;:::-;19161:15;;:4;:15;;;;:32;;;;;19186:7;:5;:7::i;:::-;19180:13;;:2;:13;;;;19161:32;:52;;;;;19211:1;19197:16;;:2;:16;;;;19161:52;:77;;;;;19231:6;19217:21;;:2;:21;;;;19161:77;:90;;;;;19243:8;;;;;;;;;;;19242:9;19161:90;19157:1545;;;19273:11;;;;;;;;;;;19268:140;;19313:19;:25;19333:4;19313:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;19342:19;:23;19362:2;19342:23;;;;;;;;;;;;;;;;;;;;;;;;;19313:52;19305:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;19268:140;19428:20;;;;;;;;;;;:50;;;;;19453:19;:25;19473:4;19453:25;;;;;;;;;;;;;;;;;;;;;;;;;19452:26;19428:50;:78;;;;;19483:19;:23;19503:2;19483:23;;;;;;;;;;;;;;;;;;;;;;;;;19482:24;19428:78;19424:566;;;19548:16;19534:31;;:2;:31;;;;:63;;;;;19583:13;;;;;;;;;;;19569:28;;:2;:28;;;;19534:63;19530:445;;;19675:12;19633:28;:39;19662:9;19633:39;;;;;;;;;;;;;;;;:54;:105;;;;;19726:12;19691:28;:32;19720:2;19691:32;;;;;;;;;;;;;;;;:47;19633:105;19625:171;;;;;;;;;;;;:::i;:::-;;;;;;;;;19865:12;19823:28;:39;19852:9;19823:39;;;;;;;;;;;;;;;:54;;;;19939:12;19904:28;:32;19933:2;19904:32;;;;;;;;;;;;;;;:47;;;;19530:445;19424:566;20010:25;:31;20036:4;20010:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20046:31;:35;20078:2;20046:35;;;;;;;;;;;;;;;;;;;;;;;;;20045:36;20010:71;20006:685;;;20120:20;;20110:6;:30;;20102:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;20251:9;;20234:13;20244:2;20234:9;:13::i;:::-;20225:6;:22;;;;:::i;:::-;:35;;20217:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20006:685;;;20323:25;:29;20349:2;20323:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20357:31;:37;20389:4;20357:37;;;;;;;;;;;;;;;;;;;;;;;;;20356:38;20323:71;20319:372;;;20433:20;;20423:6;:30;;20415:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;20319:372;;;20552:31;:35;20584:2;20552:35;;;;;;;;;;;;;;;;;;;;;;;;;20547:144;;20642:9;;20625:13;20635:2;20625:9;:13::i;:::-;20616:6;:22;;;;:::i;:::-;:35;;20608:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20547:144;20319:372;20006:685;19157:1545;20714:28;20745:24;20763:4;20745:9;:24::i;:::-;20714:55;;20780:12;20818:18;;20795:20;:41;20780:56;;20851:7;:22;;;;;20862:11;;;;;;;;;;;20851:22;:35;;;;;20878:8;;;;;;;;;;;20877:9;20851:35;:71;;;;;20891:25;:31;20917:4;20891:31;;;;;;;;;;;;;;;;;;;;;;;;;20890:32;20851:71;:101;;;;;20927:19;:25;20947:4;20927:25;;;;;;;;;;;;;;;;;;;;;;;;;20926:26;20851:101;:129;;;;;20957:19;:23;20977:2;20957:23;;;;;;;;;;;;;;;;;;;;;;;;;20956:24;20851:129;20847:239;;;21008:4;20997:8;;:15;;;;;;;;;;;;;;;;;;21027:16;21036:6;21027:8;:16::i;:::-;21069:5;21058:8;;:16;;;;;;;;;;;;;;;;;;20847:239;21098:12;21114:8;;;;;;;;;;;21113:9;:39;;;;;21127:19;:25;21147:4;21127:25;;;;;;;;;;;;;;;;;;;;;;;;;21126:26;21113:39;:67;;;;;21157:19;:23;21177:2;21157:23;;;;;;;;;;;;;;;;;;;;;;;;;21156:24;21113:67;21098:82;;21193:12;21208:1;21193:16;;21224:7;21220:402;;;21252:25;:29;21278:2;21252:29;;;;;;;;;;;;;;;;;;;;;;;;;21248:229;;;21309:28;21333:3;21309:19;21320:7;;21309:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;21302:35;;21248:229;;;21375:25;:31;21401:4;21375:31;;;;;;;;;;;;;;;;;;;;;;;;;21372:105;;;21434:27;21457:3;21434:18;21445:6;;21434;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;21427:34;;21372:105;21248:229;21502:1;21495:4;:8;21491:91;;;21524:42;21540:4;21554;21561;21524:15;:42::i;:::-;21491:91;21606:4;21596:14;;;;;:::i;:::-;;;21220:402;21632:33;21648:4;21654:2;21658:6;21632:15;:33::i;:::-;18885:2788;;;;18806:2867;;;;:::o;12982:595::-;13085:1;13066:21;;:7;:21;;;13058:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13138:49;13159:7;13176:1;13180:6;13138:20;:49::i;:::-;13200:22;13225:9;:18;13235:7;13225:18;;;;;;;;;;;;;;;;13200:43;;13280:6;13262:14;:24;;13254:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13399:6;13382:14;:23;13361:9;:18;13371:7;13361:18;;;;;;;;;;;;;;;:44;;;;13436:6;13420:12;;:22;;;;;;;;;;;13497:1;13471:37;;13480:7;13471:37;;;13501:6;13471:37;;;;;;:::i;:::-;;;;;;;;13521:48;13541:7;13558:1;13562:6;13521:19;:48::i;:::-;13047:530;12982:595;;:::o;1322:191::-;1396:16;1415:6;;;;;;;;;;;1396:25;;1441:8;1432:6;;:17;;;;;;;;;;;;;;;;;;1496:8;1465:40;;1486:8;1465:40;;;;;;;;;;;;1385:128;1322:191;:::o;21681:476::-;21747:21;21785:1;21771:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21747:40;;21816:4;21798;21803:1;21798:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21842:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21832:4;21837:1;21832:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;21876:63;21893:4;21908:16;21927:11;21876:8;:63::i;:::-;21950:16;:67;;;22032:11;22058:1;22074:4;22093:15;;;;;;;;;;;22123;21950:199;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21736:421;21681:476;:::o;18478:186::-;18595:5;18561:25;:31;18587:4;18561:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18650:5;18616:40;;18644:4;18616:40;;;;;;;;;;;;18478:186;;:::o;11890:641::-;12003:1;11987:18;;:4;:18;;;11979:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12080:1;12066:16;;:2;:16;;;12058:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12135:38;12156:4;12162:2;12166:6;12135:20;:38::i;:::-;12186:19;12208:9;:15;12218:4;12208:15;;;;;;;;;;;;;;;;12186:37;;12257:6;12242:11;:21;;12234:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12374:6;12360:11;:20;12342:9;:15;12352:4;12342:15;;;;;;;;;;;;;;;:38;;;;12412:6;12395:9;:13;12405:2;12395:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;12462:2;12447:26;;12456:4;12447:26;;;12466:6;12447:26;;;;;;:::i;:::-;;;;;;;;12486:37;12506:4;12512:2;12516:6;12486:19;:37::i;:::-;11968:563;11890:641;;;:::o;23344:484::-;23402:23;23428:24;23446:4;23428:9;:24::i;:::-;23402:50;;23486:1;23467:15;:20;23463:59;;23504:7;;;23463:59;23532:20;23555:15;23532:38;;23602:18;;23587:12;:33;23583:99;;;23652:18;;23637:33;;23583:99;23712:11;23697:12;:26;23694:84;;;23755:11;23740:26;;23694:84;23790:30;23807:12;23790:16;:30::i;:::-;23391:437;;23344:484;;:::o;8248:98::-;8306:7;8337:1;8333;:5;;;;:::i;:::-;8326:12;;8248:98;;;;:::o;8354:::-;8412:7;8443:1;8439;:5;;;;:::i;:::-;8432:12;;8354:98;;;;:::o;14366:91::-;;;;:::o;14465:90::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339: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:118::-;5168:24;5186:5;5168:24;:::i;:::-;5163:3;5156:37;5081:118;;:::o;5205:222::-;5298:4;5336:2;5325:9;5321:18;5313:26;;5349:71;5417:1;5406:9;5402:17;5393:6;5349:71;:::i;:::-;5205:222;;;;:::o;5433:329::-;5492:6;5541:2;5529:9;5520:7;5516:23;5512:32;5509:119;;;5547:79;;:::i;:::-;5509:119;5667:1;5692:53;5737:7;5728:6;5717:9;5713:22;5692:53;:::i;:::-;5682:63;;5638:117;5433:329;;;;:::o;5768:474::-;5836:6;5844;5893:2;5881:9;5872:7;5868:23;5864:32;5861:119;;;5899:79;;:::i;:::-;5861:119;6019:1;6044:53;6089:7;6080:6;6069:9;6065:22;6044:53;:::i;:::-;6034:63;;5990:117;6146:2;6172:53;6217:7;6208:6;6197:9;6193:22;6172:53;:::i;:::-;6162:63;;6117:118;5768:474;;;;;:::o;6248:60::-;6276:3;6297:5;6290:12;;6248:60;;;:::o;6314:142::-;6364:9;6397:53;6415:34;6424:24;6442:5;6424:24;:::i;:::-;6415:34;:::i;:::-;6397:53;:::i;:::-;6384:66;;6314:142;;;:::o;6462:126::-;6512:9;6545:37;6576:5;6545:37;:::i;:::-;6532:50;;6462:126;;;:::o;6594:152::-;6670:9;6703:37;6734:5;6703:37;:::i;:::-;6690:50;;6594:152;;;:::o;6752:183::-;6865:63;6922:5;6865:63;:::i;:::-;6860:3;6853:76;6752:183;;:::o;6941:274::-;7060:4;7098:2;7087:9;7083:18;7075:26;;7111:97;7205:1;7194:9;7190:17;7181:6;7111:97;:::i;:::-;6941:274;;;;:::o;7221:116::-;7291:21;7306:5;7291:21;:::i;:::-;7284:5;7281:32;7271:60;;7327:1;7324;7317:12;7271:60;7221:116;:::o;7343:133::-;7386:5;7424:6;7411:20;7402:29;;7440:30;7464:5;7440:30;:::i;:::-;7343:133;;;;:::o;7482:468::-;7547:6;7555;7604:2;7592:9;7583:7;7579:23;7575:32;7572:119;;;7610:79;;:::i;:::-;7572:119;7730:1;7755:53;7800:7;7791:6;7780:9;7776:22;7755:53;:::i;:::-;7745:63;;7701:117;7857:2;7883:50;7925:7;7916:6;7905:9;7901:22;7883:50;:::i;:::-;7873:60;;7828:115;7482:468;;;;;:::o;7956:474::-;8024:6;8032;8081:2;8069:9;8060:7;8056:23;8052:32;8049:119;;;8087:79;;:::i;:::-;8049:119;8207:1;8232:53;8277:7;8268:6;8257:9;8253:22;8232:53;:::i;:::-;8222:63;;8178:117;8334:2;8360:53;8405:7;8396:6;8385:9;8381:22;8360:53;:::i;:::-;8350:63;;8305:118;7956:474;;;;;:::o;8436:180::-;8484:77;8481:1;8474:88;8581:4;8578:1;8571:15;8605:4;8602:1;8595:15;8622:320;8666:6;8703:1;8697:4;8693:12;8683:22;;8750:1;8744:4;8740:12;8771:18;8761:81;;8827:4;8819:6;8815:17;8805:27;;8761:81;8889:2;8881:6;8878:14;8858:18;8855:38;8852:84;;8908:18;;:::i;:::-;8852:84;8673:269;8622:320;;;:::o;8948:180::-;8996:77;8993:1;8986:88;9093:4;9090:1;9083:15;9117:4;9114:1;9107:15;9134:191;9174:3;9193:20;9211:1;9193:20;:::i;:::-;9188:25;;9227:20;9245:1;9227:20;:::i;:::-;9222:25;;9270:1;9267;9263:9;9256:16;;9291:3;9288:1;9285:10;9282:36;;;9298:18;;:::i;:::-;9282:36;9134:191;;;;:::o;9331:173::-;9471:25;9467:1;9459:6;9455:14;9448:49;9331:173;:::o;9510:366::-;9652:3;9673:67;9737:2;9732:3;9673:67;:::i;:::-;9666:74;;9749:93;9838:3;9749:93;:::i;:::-;9867:2;9862:3;9858:12;9851:19;;9510:366;;;:::o;9882:419::-;10048:4;10086:2;10075:9;10071:18;10063:26;;10135:9;10129:4;10125:20;10121:1;10110:9;10106:17;10099:47;10163:131;10289:4;10163:131;:::i;:::-;10155:139;;9882:419;;;:::o;10307:85::-;10352:7;10381:5;10370:16;;10307:85;;;:::o;10398:158::-;10456:9;10489:61;10507:42;10516:32;10542:5;10516:32;:::i;:::-;10507:42;:::i;:::-;10489:61;:::i;:::-;10476:74;;10398:158;;;:::o;10562:147::-;10657:45;10696:5;10657:45;:::i;:::-;10652:3;10645:58;10562:147;;:::o;10715:807::-;10964:4;11002:3;10991:9;10987:19;10979:27;;11016:71;11084:1;11073:9;11069:17;11060:6;11016:71;:::i;:::-;11097:72;11165:2;11154:9;11150:18;11141:6;11097:72;:::i;:::-;11179:80;11255:2;11244:9;11240:18;11231:6;11179:80;:::i;:::-;11269;11345:2;11334:9;11330:18;11321:6;11269:80;:::i;:::-;11359:73;11427:3;11416:9;11412:19;11403:6;11359:73;:::i;:::-;11442;11510:3;11499:9;11495:19;11486:6;11442:73;:::i;:::-;10715:807;;;;;;;;;:::o;11528:143::-;11585:5;11616:6;11610:13;11601:22;;11632:33;11659:5;11632:33;:::i;:::-;11528:143;;;;:::o;11677:663::-;11765:6;11773;11781;11830:2;11818:9;11809:7;11805:23;11801:32;11798:119;;;11836:79;;:::i;:::-;11798:119;11956:1;11981:64;12037:7;12028:6;12017:9;12013:22;11981:64;:::i;:::-;11971:74;;11927:128;12094:2;12120:64;12176:7;12167:6;12156:9;12152:22;12120:64;:::i;:::-;12110:74;;12065:129;12233:2;12259:64;12315:7;12306:6;12295:9;12291:22;12259:64;:::i;:::-;12249:74;;12204:129;11677:663;;;;;:::o;12346:332::-;12467:4;12505:2;12494:9;12490:18;12482:26;;12518:71;12586:1;12575:9;12571:17;12562:6;12518:71;:::i;:::-;12599:72;12667:2;12656:9;12652:18;12643:6;12599:72;:::i;:::-;12346:332;;;;;:::o;12684:137::-;12738:5;12769:6;12763:13;12754:22;;12785:30;12809:5;12785:30;:::i;:::-;12684:137;;;;:::o;12827:345::-;12894:6;12943:2;12931:9;12922:7;12918:23;12914:32;12911:119;;;12949:79;;:::i;:::-;12911:119;13069:1;13094:61;13147:7;13138:6;13127:9;13123:22;13094:61;:::i;:::-;13084:71;;13040:125;12827:345;;;;:::o;13178:410::-;13218:7;13241:20;13259:1;13241:20;:::i;:::-;13236:25;;13275:20;13293:1;13275:20;:::i;:::-;13270:25;;13330:1;13327;13323:9;13352:30;13370:11;13352:30;:::i;:::-;13341:41;;13531:1;13522:7;13518:15;13515:1;13512:22;13492:1;13485:9;13465:83;13442:139;;13561:18;;:::i;:::-;13442:139;13226:362;13178:410;;;;:::o;13594:180::-;13642:77;13639:1;13632:88;13739:4;13736:1;13729:15;13763:4;13760:1;13753:15;13780:185;13820:1;13837:20;13855:1;13837:20;:::i;:::-;13832:25;;13871:20;13889:1;13871:20;:::i;:::-;13866:25;;13910:1;13900:35;;13915:18;;:::i;:::-;13900:35;13957:1;13954;13950:9;13945:14;;13780:185;;;;:::o;13971:244::-;14111:34;14107:1;14099:6;14095:14;14088:58;14180:27;14175:2;14167:6;14163:15;14156:52;13971:244;:::o;14221:366::-;14363:3;14384:67;14448:2;14443:3;14384:67;:::i;:::-;14377:74;;14460:93;14549:3;14460:93;:::i;:::-;14578:2;14573:3;14569:12;14562:19;;14221:366;;;:::o;14593:419::-;14759:4;14797:2;14786:9;14782:18;14774:26;;14846:9;14840:4;14836:20;14832:1;14821:9;14817:17;14810:47;14874:131;15000:4;14874:131;:::i;:::-;14866:139;;14593:419;;;:::o;15018:167::-;15158:19;15154:1;15146:6;15142:14;15135:43;15018:167;:::o;15191:366::-;15333:3;15354:67;15418:2;15413:3;15354:67;:::i;:::-;15347:74;;15430:93;15519:3;15430:93;:::i;:::-;15548:2;15543:3;15539:12;15532:19;;15191:366;;;:::o;15563:419::-;15729:4;15767:2;15756:9;15752:18;15744:26;;15816:9;15810:4;15806:20;15802:1;15791:9;15787:17;15780:47;15844:131;15970:4;15844:131;:::i;:::-;15836:139;;15563:419;;;:::o;15988:179::-;16128:31;16124:1;16116:6;16112:14;16105:55;15988:179;:::o;16173:366::-;16315:3;16336:67;16400:2;16395:3;16336:67;:::i;:::-;16329:74;;16412:93;16501:3;16412:93;:::i;:::-;16530:2;16525:3;16521:12;16514:19;;16173:366;;;:::o;16545:419::-;16711:4;16749:2;16738:9;16734:18;16726:26;;16798:9;16792:4;16788:20;16784:1;16773:9;16769:17;16762:47;16826:131;16952:4;16826:131;:::i;:::-;16818:139;;16545:419;;;:::o;16970:224::-;17110:34;17106:1;17098:6;17094:14;17087:58;17179:7;17174:2;17166:6;17162:15;17155:32;16970:224;:::o;17200:366::-;17342:3;17363:67;17427:2;17422:3;17363:67;:::i;:::-;17356:74;;17439:93;17528:3;17439:93;:::i;:::-;17557:2;17552:3;17548:12;17541:19;;17200:366;;;:::o;17572:419::-;17738:4;17776:2;17765:9;17761:18;17753:26;;17825:9;17819:4;17815:20;17811:1;17800:9;17796:17;17789:47;17853:131;17979:4;17853:131;:::i;:::-;17845:139;;17572:419;;;:::o;17997:225::-;18137:34;18133:1;18125:6;18121:14;18114:58;18206:8;18201:2;18193:6;18189:15;18182:33;17997:225;:::o;18228:366::-;18370:3;18391:67;18455:2;18450:3;18391:67;:::i;:::-;18384:74;;18467:93;18556:3;18467:93;:::i;:::-;18585:2;18580:3;18576:12;18569:19;;18228:366;;;:::o;18600:419::-;18766:4;18804:2;18793:9;18789:18;18781:26;;18853:9;18847:4;18843:20;18839:1;18828:9;18824:17;18817:47;18881:131;19007:4;18881:131;:::i;:::-;18873:139;;18600:419;;;:::o;19025:223::-;19165:34;19161:1;19153:6;19149:14;19142:58;19234:6;19229:2;19221:6;19217:15;19210:31;19025:223;:::o;19254:366::-;19396:3;19417:67;19481:2;19476:3;19417:67;:::i;:::-;19410:74;;19493:93;19582:3;19493:93;:::i;:::-;19611:2;19606:3;19602:12;19595:19;;19254:366;;;:::o;19626:419::-;19792:4;19830:2;19819:9;19815:18;19807:26;;19879:9;19873:4;19869:20;19865:1;19854:9;19850:17;19843:47;19907:131;20033:4;19907:131;:::i;:::-;19899:139;;19626:419;;;:::o;20051:221::-;20191:34;20187:1;20179:6;20175:14;20168:58;20260:4;20255:2;20247:6;20243:15;20236:29;20051:221;:::o;20278:366::-;20420:3;20441:67;20505:2;20500:3;20441:67;:::i;:::-;20434:74;;20517:93;20606:3;20517:93;:::i;:::-;20635:2;20630:3;20626:12;20619:19;;20278:366;;;:::o;20650:419::-;20816:4;20854:2;20843:9;20839:18;20831:26;;20903:9;20897:4;20893:20;20889:1;20878:9;20874:17;20867:47;20931:131;21057:4;20931:131;:::i;:::-;20923:139;;20650:419;;;:::o;21075:182::-;21215:34;21211:1;21203:6;21199:14;21192:58;21075:182;:::o;21263:366::-;21405:3;21426:67;21490:2;21485:3;21426:67;:::i;:::-;21419:74;;21502:93;21591:3;21502:93;:::i;:::-;21620:2;21615:3;21611:12;21604:19;;21263:366;;;:::o;21635:419::-;21801:4;21839:2;21828:9;21824:18;21816:26;;21888:9;21882:4;21878:20;21874:1;21863:9;21859:17;21852:47;21916:131;22042:4;21916:131;:::i;:::-;21908:139;;21635:419;;;:::o;22060:179::-;22200:31;22196:1;22188:6;22184:14;22177:55;22060:179;:::o;22245:366::-;22387:3;22408:67;22472:2;22467:3;22408:67;:::i;:::-;22401:74;;22484:93;22573:3;22484:93;:::i;:::-;22602:2;22597:3;22593:12;22586:19;;22245:366;;;:::o;22617:419::-;22783:4;22821:2;22810:9;22806:18;22798:26;;22870:9;22864:4;22860:20;22856:1;22845:9;22841:17;22834:47;22898:131;23024:4;22898:131;:::i;:::-;22890:139;;22617:419;;;:::o;23042:224::-;23182:34;23178:1;23170:6;23166:14;23159:58;23251:7;23246:2;23238:6;23234:15;23227:32;23042:224;:::o;23272:366::-;23414:3;23435:67;23499:2;23494:3;23435:67;:::i;:::-;23428:74;;23511:93;23600:3;23511:93;:::i;:::-;23629:2;23624:3;23620:12;23613:19;;23272:366;;;:::o;23644:419::-;23810:4;23848:2;23837:9;23833:18;23825:26;;23897:9;23891:4;23887:20;23883:1;23872:9;23868:17;23861:47;23925:131;24051:4;23925:131;:::i;:::-;23917:139;;23644:419;;;:::o;24069:222::-;24209:34;24205:1;24197:6;24193:14;24186:58;24278:5;24273:2;24265:6;24261:15;24254:30;24069:222;:::o;24297:366::-;24439:3;24460:67;24524:2;24519:3;24460:67;:::i;:::-;24453:74;;24536:93;24625:3;24536:93;:::i;:::-;24654:2;24649:3;24645:12;24638:19;;24297:366;;;:::o;24669:419::-;24835:4;24873:2;24862:9;24858:18;24850:26;;24922:9;24916:4;24912:20;24908:1;24897:9;24893:17;24886:47;24950:131;25076:4;24950:131;:::i;:::-;24942:139;;24669:419;;;:::o;25094:172::-;25234:24;25230:1;25222:6;25218:14;25211:48;25094:172;:::o;25272:366::-;25414:3;25435:67;25499:2;25494:3;25435:67;:::i;:::-;25428:74;;25511:93;25600:3;25511:93;:::i;:::-;25629:2;25624:3;25620:12;25613:19;;25272:366;;;:::o;25644:419::-;25810:4;25848:2;25837:9;25833:18;25825:26;;25897:9;25891:4;25887:20;25883:1;25872:9;25868:17;25861:47;25925:131;26051:4;25925:131;:::i;:::-;25917:139;;25644:419;;;:::o;26069:240::-;26209:34;26205:1;26197:6;26193:14;26186:58;26278:23;26273:2;26265:6;26261:15;26254:48;26069:240;:::o;26315:366::-;26457:3;26478:67;26542:2;26537:3;26478:67;:::i;:::-;26471:74;;26554:93;26643:3;26554:93;:::i;:::-;26672:2;26667:3;26663:12;26656:19;;26315:366;;;:::o;26687:419::-;26853:4;26891:2;26880:9;26876:18;26868:26;;26940:9;26934:4;26930:20;26926:1;26915:9;26911:17;26904:47;26968:131;27094:4;26968:131;:::i;:::-;26960:139;;26687:419;;;:::o;27112:240::-;27252:34;27248:1;27240:6;27236:14;27229:58;27321:23;27316:2;27308:6;27304:15;27297:48;27112:240;:::o;27358:366::-;27500:3;27521:67;27585:2;27580:3;27521:67;:::i;:::-;27514:74;;27597:93;27686:3;27597:93;:::i;:::-;27715:2;27710:3;27706:12;27699:19;;27358:366;;;:::o;27730:419::-;27896:4;27934:2;27923:9;27919:18;27911:26;;27983:9;27977:4;27973:20;27969:1;27958:9;27954:17;27947:47;28011:131;28137:4;28011:131;:::i;:::-;28003:139;;27730:419;;;:::o;28155:169::-;28295:21;28291:1;28283:6;28279:14;28272:45;28155:169;:::o;28330:366::-;28472:3;28493:67;28557:2;28552:3;28493:67;:::i;:::-;28486:74;;28569:93;28658:3;28569:93;:::i;:::-;28687:2;28682:3;28678:12;28671:19;;28330:366;;;:::o;28702:419::-;28868:4;28906:2;28895:9;28891:18;28883:26;;28955:9;28949:4;28945:20;28941:1;28930:9;28926:17;28919:47;28983:131;29109:4;28983:131;:::i;:::-;28975:139;;28702:419;;;:::o;29127:241::-;29267:34;29263:1;29255:6;29251:14;29244:58;29336:24;29331:2;29323:6;29319:15;29312:49;29127:241;:::o;29374:366::-;29516:3;29537:67;29601:2;29596:3;29537:67;:::i;:::-;29530:74;;29613:93;29702:3;29613:93;:::i;:::-;29731:2;29726:3;29722:12;29715:19;;29374:366;;;:::o;29746:419::-;29912:4;29950:2;29939:9;29935:18;29927:26;;29999:9;29993:4;29989:20;29985:1;29974:9;29970:17;29963:47;30027:131;30153:4;30027:131;:::i;:::-;30019:139;;29746:419;;;:::o;30171:194::-;30211:4;30231:20;30249:1;30231:20;:::i;:::-;30226:25;;30265:20;30283:1;30265:20;:::i;:::-;30260:25;;30309:1;30306;30302:9;30294:17;;30333:1;30327:4;30324:11;30321:37;;;30338:18;;:::i;:::-;30321:37;30171:194;;;;:::o;30371:220::-;30511:34;30507:1;30499:6;30495:14;30488:58;30580:3;30575:2;30567:6;30563:15;30556:28;30371:220;:::o;30597:366::-;30739:3;30760:67;30824:2;30819:3;30760:67;:::i;:::-;30753:74;;30836:93;30925:3;30836:93;:::i;:::-;30954:2;30949:3;30945:12;30938:19;;30597:366;;;:::o;30969:419::-;31135:4;31173:2;31162:9;31158:18;31150:26;;31222:9;31216:4;31212:20;31208:1;31197:9;31193:17;31186:47;31250:131;31376:4;31250:131;:::i;:::-;31242:139;;30969:419;;;:::o;31394:221::-;31534:34;31530:1;31522:6;31518:14;31511:58;31603:4;31598:2;31590:6;31586:15;31579:29;31394:221;:::o;31621:366::-;31763:3;31784:67;31848:2;31843:3;31784:67;:::i;:::-;31777:74;;31860:93;31949:3;31860:93;:::i;:::-;31978:2;31973:3;31969:12;31962:19;;31621:366;;;:::o;31993:419::-;32159:4;32197:2;32186:9;32182:18;32174:26;;32246:9;32240:4;32236:20;32232:1;32221:9;32217:17;32210:47;32274:131;32400:4;32274:131;:::i;:::-;32266:139;;31993:419;;;:::o;32418:180::-;32466:77;32463:1;32456:88;32563:4;32560:1;32553:15;32587:4;32584:1;32577:15;32604:180;32652:77;32649:1;32642:88;32749:4;32746:1;32739:15;32773:4;32770:1;32763:15;32790:143;32847:5;32878:6;32872:13;32863:22;;32894:33;32921:5;32894:33;:::i;:::-;32790:143;;;;:::o;32939:351::-;33009:6;33058:2;33046:9;33037:7;33033:23;33029:32;33026:119;;;33064:79;;:::i;:::-;33026:119;33184:1;33209:64;33265:7;33256:6;33245:9;33241:22;33209:64;:::i;:::-;33199:74;;33155:128;32939:351;;;;:::o;33296:114::-;33363:6;33397:5;33391:12;33381:22;;33296:114;;;:::o;33416:184::-;33515:11;33549:6;33544:3;33537:19;33589:4;33584:3;33580:14;33565:29;;33416:184;;;;:::o;33606:132::-;33673:4;33696:3;33688:11;;33726:4;33721:3;33717:14;33709:22;;33606:132;;;:::o;33744:108::-;33821:24;33839:5;33821:24;:::i;:::-;33816:3;33809:37;33744:108;;:::o;33858:179::-;33927:10;33948:46;33990:3;33982:6;33948:46;:::i;:::-;34026:4;34021:3;34017:14;34003:28;;33858:179;;;;:::o;34043:113::-;34113:4;34145;34140:3;34136:14;34128:22;;34043:113;;;:::o;34192:732::-;34311:3;34340:54;34388:5;34340:54;:::i;:::-;34410:86;34489:6;34484:3;34410:86;:::i;:::-;34403:93;;34520:56;34570:5;34520:56;:::i;:::-;34599:7;34630:1;34615:284;34640:6;34637:1;34634:13;34615:284;;;34716:6;34710:13;34743:63;34802:3;34787:13;34743:63;:::i;:::-;34736:70;;34829:60;34882:6;34829:60;:::i;:::-;34819:70;;34675:224;34662:1;34659;34655:9;34650:14;;34615:284;;;34619:14;34915:3;34908:10;;34316:608;;;34192:732;;;;:::o;34930:831::-;35193:4;35231:3;35220:9;35216:19;35208:27;;35245:71;35313:1;35302:9;35298:17;35289:6;35245:71;:::i;:::-;35326:80;35402:2;35391:9;35387:18;35378:6;35326:80;:::i;:::-;35453:9;35447:4;35443:20;35438:2;35427:9;35423:18;35416:48;35481:108;35584:4;35575:6;35481:108;:::i;:::-;35473:116;;35599:72;35667:2;35656:9;35652:18;35643:6;35599:72;:::i;:::-;35681:73;35749:3;35738:9;35734:19;35725:6;35681:73;:::i;:::-;34930:831;;;;;;;;:::o;35767:225::-;35907:34;35903:1;35895:6;35891:14;35884:58;35976:8;35971:2;35963:6;35959:15;35952:33;35767:225;:::o;35998:366::-;36140:3;36161:67;36225:2;36220:3;36161:67;:::i;:::-;36154:74;;36237:93;36326:3;36237:93;:::i;:::-;36355:2;36350:3;36346:12;36339:19;;35998:366;;;:::o;36370:419::-;36536:4;36574:2;36563:9;36559:18;36551:26;;36623:9;36617:4;36613:20;36609:1;36598:9;36594:17;36587:47;36651:131;36777:4;36651:131;:::i;:::-;36643:139;;36370:419;;;:::o

Swarm Source

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