ETH Price: $3,159.31 (+1.97%)

Token

THE BIG DEBATE (TBD)
 

Overview

Max Total Supply

8,000,000,000 TBD

Holders

203

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
yaknowmasteez.eth
Balance
1,500,702.32725000933202762 TBD

Value
$0.00
0x6233B326E9C2E4E363cbE8cF763085a6CBC13210
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:
TBD

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**



*/

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

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

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

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

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

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

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

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

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

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

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

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    IUniswapV2Router02 public immutable uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address public uniswapV2Pair;
    address private deployerWallet;
    address private marketingWallet;
    address private constant deadAddress = address(0xdead);
    uint public counter = 38943;

    bool private isInSwap;

    // supply
    uint256 public initialTotalSupply = 8_000_000_000 * 1e18;
    // a single wallet can hold up to 2% of supply
    uint256 public maxWallet = (initialTotalSupply * 2)/100;
    uint256 public maxTransactionAmount = maxWallet;
    // swap at 0.2% of supply
    uint256 public swapTokensAtAmount = (initialTotalSupply * 2)/1000;

    bool public tradingEnabled = false;
    bool public swapEnabled = false;

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

    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("THE BIG DEBATE", "TBD") {
        marketingWallet = payable(0xBfbC8B428f68BF604389c97B894848686641b4aA);
        deployerWallet = payable(_msgSender());

        // exclude from maxTransactionAmount
        excludeFromMaxTransaction(address(uniswapV2Router), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);
        excludeFromMaxTransaction(address(_msgSender()), true);
        excludeFromMaxTransaction(deployerWallet, true);
        excludeFromMaxTransaction(marketingWallet, true);

        // exclude from fees
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);
        excludeFromFees(address(_msgSender()), true);
        excludeFromFees(deployerWallet, true);
        excludeFromFees(marketingWallet, true);

        // create a uniswap pair with WETH for this new token
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);

        // mint entire supply to deployer
        _mint(deployerWallet, initialTotalSupply);
    }

    receive() external payable {}

    function enableTrading() external onlyOwner() {
        require(!tradingEnabled,"Trading is already open");
        swapEnabled = true;
        tradingEnabled = true;
    }

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

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

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

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

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

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

    function _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 != deadAddress && !isInSwap) {
            // when trading is closed, only allow sending to and from addresses excluded from fees
            if (!tradingEnabled) {
                require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
            }

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

                // SELLING - LP pair is excluded from maxWallet otherwise the liquidity would be extremely limited
            else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
            }

                // excluded from max transaction limit
            else if (!_isExcludedMaxTransactionAmount[to]) {
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }
        }

        // maybe swap contract tokens for eth
        uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = contractTokenBalance > swapTokensAtAmount;
        if (canSwap && swapEnabled && !isInSwap && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            isInSwap = true;
            swapBack();
            isInSwap = false;
        }

        // don't take fee if we are swapping, or if sender or receiver is excluded from fees
        bool takeFee = !isInSwap && !_isExcludedFromFees[from] && !_isExcludedFromFees[to];

        uint256 fees = 0;
        if (takeFee) {
            // sell (transfer tokens to LP)
            if (automatedMarketMakerPairs[to]) {
                fees = amount.mul(sellFee).div(100);
            }
                // buy (transfer tokens from LP)
            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 setLimits(uint256 _maxTransactionAmount, uint256 _maxWallet) external onlyOwner {
        maxTransactionAmount = _maxTransactionAmount * (10 ** 18);
        maxWallet = _maxWallet * (10 ** 18);
    }

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

    function manualSwap(uint256 percent) external onlyOwner {
        uint256 totalSupplyAmount = totalSupply();
        uint256 contractBalance = balanceOf(address(this));
        uint256 swapAmount = contractBalance * percent / 100;
        swapTokensForEth(swapAmount);
    }

    function setMarketingWallet(address _marketingWallet) external onlyOwner {
        marketingWallet = _marketingWallet;
    }

    function setTaxes(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 40 && _sellFee <= 40, "Fees cannot exceed 40%");
        buyFee = _buyFee;
        sellFee = _sellFee;
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance == 0) {
            // nothing to swap
            return;
        }

        uint256 tokensToSwap = contractBalance;
        if (tokensToSwap > swapTokensAtAmount) {
            tokensToSwap = swapTokensAtAmount;
        }
        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":[{"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":"counter","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":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwap","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"_maxTransactionAmount","type":"uint256"},{"internalType":"uint256","name":"_maxWallet","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a0604052737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1681525061981f6009556b19d971e4fe8401e740000000600b5560646002600b546100729190610a95565b61007c9190610b03565b600c55600c54600d556103e86002600b546100979190610a95565b6100a19190610b03565b600e555f600f5f6101000a81548160ff0219169083151502179055505f600f60016101000a81548160ff0219169083151502179055505f6010555f6011553480156100ea575f80fd5b506040518060400160405280600e81526020017f54484520424947204445424154450000000000000000000000000000000000008152506040518060400160405280600381526020017f544244000000000000000000000000000000000000000000000000000000000081525081600390816101669190610d64565b5080600490816101769190610d64565b50505061019561018a6105c760201b60201c565b6105ce60201b60201c565b73bfbc8b428f68bf604389c97b894848686641b4aa60085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101f76105c760201b60201c565b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610249608051600161069160201b60201c565b61025a30600161069160201b60201c565b61026d61dead600161069160201b60201c565b61028b61027e6105c760201b60201c565b600161069160201b60201c565b6102bd60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161069160201b60201c565b6102ef60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161069160201b60201c565b6103003060016106f760201b60201c565b61031361dead60016106f760201b60201c565b6103316103246105c760201b60201c565b60016106f760201b60201c565b61036360075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016106f760201b60201c565b61039560085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016106f760201b60201c565b60805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103e0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104049190610e91565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561046b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061048f9190610e91565b6040518363ffffffff1660e01b81526004016104ac929190610ecb565b6020604051808303815f875af11580156104c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104ec9190610e91565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061055d60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161069160201b60201c565b61058f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016107ab60201b60201c565b6105c260075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b5461084960201b60201c565b611060565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61069f6109a360201b60201c565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6107056109a360201b60201c565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161079f9190610f0c565b60405180910390a25050565b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ae90610f7f565b60405180910390fd5b6108c85f8383610a2d60201b60201c565b8060025f8282546108d99190610f9d565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516109869190610fdf565b60405180910390a361099f5f8383610a3260201b60201c565b5050565b6109b16105c760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166109d5610a3760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614610a2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2290611042565b60405180910390fd5b565b505050565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610a9f82610a5f565b9150610aaa83610a5f565b9250828202610ab881610a5f565b91508282048414831517610acf57610ace610a68565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610b0d82610a5f565b9150610b1883610a5f565b925082610b2857610b27610ad6565b5b828204905092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610bae57607f821691505b602082108103610bc157610bc0610b6a565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610c237fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610be8565b610c2d8683610be8565b95508019841693508086168417925050509392505050565b5f819050919050565b5f610c68610c63610c5e84610a5f565b610c45565b610a5f565b9050919050565b5f819050919050565b610c8183610c4e565b610c95610c8d82610c6f565b848454610bf4565b825550505050565b5f90565b610ca9610c9d565b610cb4818484610c78565b505050565b5b81811015610cd757610ccc5f82610ca1565b600181019050610cba565b5050565b601f821115610d1c57610ced81610bc7565b610cf684610bd9565b81016020851015610d05578190505b610d19610d1185610bd9565b830182610cb9565b50505b505050565b5f82821c905092915050565b5f610d3c5f1984600802610d21565b1980831691505092915050565b5f610d548383610d2d565b9150826002028217905092915050565b610d6d82610b33565b67ffffffffffffffff811115610d8657610d85610b3d565b5b610d908254610b97565b610d9b828285610cdb565b5f60209050601f831160018114610dcc575f8415610dba578287015190505b610dc48582610d49565b865550610e2b565b601f198416610dda86610bc7565b5f5b82811015610e0157848901518255600182019150602085019450602081019050610ddc565b86831015610e1e5784890151610e1a601f891682610d2d565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610e6082610e37565b9050919050565b610e7081610e56565b8114610e7a575f80fd5b50565b5f81519050610e8b81610e67565b92915050565b5f60208284031215610ea657610ea5610e33565b5b5f610eb384828501610e7d565b91505092915050565b610ec581610e56565b82525050565b5f604082019050610ede5f830185610ebc565b610eeb6020830184610ebc565b9392505050565b5f8115159050919050565b610f0681610ef2565b82525050565b5f602082019050610f1f5f830184610efd565b92915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610f69601f83610f25565b9150610f7482610f35565b602082019050919050565b5f6020820190508181035f830152610f9681610f5d565b9050919050565b5f610fa782610a5f565b9150610fb283610a5f565b9250828201905080821115610fca57610fc9610a68565b5b92915050565b610fd981610a5f565b82525050565b5f602082019050610ff25f830184610fd0565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61102c602083610f25565b915061103782610ff8565b602082019050919050565b5f6020820190508181035f83015261105981611020565b9050919050565b6080516135f561108d5f395f818161090d0152818161209201528181612171015261219801526135f55ff3fe608060405260043610610212575f3560e01c8063715018a611610117578063b70143c91161009f578063c8c8ebe41161006e578063c8c8ebe414610777578063dd62ed3e146107a1578063e2f45605146107dd578063f2fde38b14610807578063f8b45b051461082f57610219565b8063b70143c9146106d7578063c0246668146106ff578063c4590d3f14610727578063c647b20e1461074f57610219565b806395d89b41116100e657806395d89b41146105e55780639a7a23d61461060f578063a457c2d714610637578063a9059cbb14610673578063afa4f3b2146106af57610219565b8063715018a6146105675780637571336a1461057d5780638a8c523c146105a55780638da5cb5b146105bb57610219565b806342966c681161019a5780634fbee193116101695780634fbee193146104735780635d098b38146104af57806361bc221a146104d75780636ddd17131461050157806370a082311461052b57610219565b806342966c68146103cd57806347062402146103f557806349bd5a5e1461041f5780634ada218b1461044957610219565b806323b872dd116101e157806323b872dd146102d75780632b14ca5614610313578063311028af1461033d578063313ce56714610367578063395093511461039157610219565b806306fdde031461021d578063095ea7b3146102475780631694505e1461028357806318160ddd146102ad57610219565b3661021957005b5f80fd5b348015610228575f80fd5b50610231610859565b60405161023e9190612594565b60405180910390f35b348015610252575f80fd5b5061026d60048036038101906102689190612645565b6108e9565b60405161027a919061269d565b60405180910390f35b34801561028e575f80fd5b5061029761090b565b6040516102a49190612711565b60405180910390f35b3480156102b8575f80fd5b506102c161092f565b6040516102ce9190612739565b60405180910390f35b3480156102e2575f80fd5b506102fd60048036038101906102f89190612752565b610938565b60405161030a919061269d565b60405180910390f35b34801561031e575f80fd5b50610327610966565b6040516103349190612739565b60405180910390f35b348015610348575f80fd5b5061035161096c565b60405161035e9190612739565b60405180910390f35b348015610372575f80fd5b5061037b610972565b60405161038891906127bd565b60405180910390f35b34801561039c575f80fd5b506103b760048036038101906103b29190612645565b61097a565b6040516103c4919061269d565b60405180910390f35b3480156103d8575f80fd5b506103f360048036038101906103ee91906127d6565b6109b0565b005b348015610400575f80fd5b506104096109c4565b6040516104169190612739565b60405180910390f35b34801561042a575f80fd5b506104336109ca565b6040516104409190612810565b60405180910390f35b348015610454575f80fd5b5061045d6109ef565b60405161046a919061269d565b60405180910390f35b34801561047e575f80fd5b5061049960048036038101906104949190612829565b610a01565b6040516104a6919061269d565b60405180910390f35b3480156104ba575f80fd5b506104d560048036038101906104d09190612829565b610a53565b005b3480156104e2575f80fd5b506104eb610a9e565b6040516104f89190612739565b60405180910390f35b34801561050c575f80fd5b50610515610aa4565b604051610522919061269d565b60405180910390f35b348015610536575f80fd5b50610551600480360381019061054c9190612829565b610ab7565b60405161055e9190612739565b60405180910390f35b348015610572575f80fd5b5061057b610afc565b005b348015610588575f80fd5b506105a3600480360381019061059e919061287e565b610b0f565b005b3480156105b0575f80fd5b506105b9610b6f565b005b3480156105c6575f80fd5b506105cf610bfd565b6040516105dc9190612810565b60405180910390f35b3480156105f0575f80fd5b506105f9610c25565b6040516106069190612594565b60405180910390f35b34801561061a575f80fd5b506106356004803603810190610630919061287e565b610cb5565b005b348015610642575f80fd5b5061065d60048036038101906106589190612645565b610d5a565b60405161066a919061269d565b60405180910390f35b34801561067e575f80fd5b5061069960048036038101906106949190612645565b610dcf565b6040516106a6919061269d565b60405180910390f35b3480156106ba575f80fd5b506106d560048036038101906106d091906127d6565b610df1565b005b3480156106e2575f80fd5b506106fd60048036038101906106f891906127d6565b610e16565b005b34801561070a575f80fd5b506107256004803603810190610720919061287e565b610e5f565b005b348015610732575f80fd5b5061074d600480360381019061074891906128bc565b610f0d565b005b34801561075a575f80fd5b50610775600480360381019061077091906128bc565b610f4d565b005b348015610782575f80fd5b5061078b610fb8565b6040516107989190612739565b60405180910390f35b3480156107ac575f80fd5b506107c760048036038101906107c291906128fa565b610fbe565b6040516107d49190612739565b60405180910390f35b3480156107e8575f80fd5b506107f1611040565b6040516107fe9190612739565b60405180910390f35b348015610812575f80fd5b5061082d60048036038101906108289190612829565b611046565b005b34801561083a575f80fd5b506108436110c8565b6040516108509190612739565b60405180910390f35b60606003805461086890612965565b80601f016020809104026020016040519081016040528092919081815260200182805461089490612965565b80156108df5780601f106108b6576101008083540402835291602001916108df565b820191905f5260205f20905b8154815290600101906020018083116108c257829003601f168201915b5050505050905090565b5f806108f36110ce565b90506109008185856110d5565b600191505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f600254905090565b5f806109426110ce565b905061094f858285611298565b61095a858585611323565b60019150509392505050565b60115481565b600b5481565b5f6012905090565b5f806109846110ce565b90506109a58185856109968589610fbe565b6109a091906129c2565b6110d5565b600191505092915050565b6109c16109bb6110ce565b82611c53565b50565b60105481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5f9054906101000a900460ff1681565b5f60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b610a5b611e16565b8060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b600f60019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b04611e16565b610b0d5f611e94565b565b610b17611e16565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b610b77611e16565b600f5f9054906101000a900460ff1615610bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbd90612a3f565b60405180910390fd5b6001600f60016101000a81548160ff0219169083151502179055506001600f5f6101000a81548160ff021916908315150217905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610c3490612965565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6090612965565b8015610cab5780601f10610c8257610100808354040283529160200191610cab565b820191905f5260205f20905b815481529060010190602001808311610c8e57829003601f168201915b5050505050905090565b610cbd611e16565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4390612acd565b60405180910390fd5b610d568282611f57565b5050565b5f80610d646110ce565b90505f610d718286610fbe565b905083811015610db6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dad90612b5b565b60405180910390fd5b610dc382868684036110d5565b60019250505092915050565b5f80610dd96110ce565b9050610de6818585611323565b600191505092915050565b610df9611e16565b670de0b6b3a764000081610e0d9190612b79565b600e8190555050565b610e1e611e16565b5f610e2761092f565b90505f610e3330610ab7565b90505f60648483610e449190612b79565b610e4e9190612be7565b9050610e5981611ff5565b50505050565b610e67611e16565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051610f01919061269d565b60405180910390a25050565b610f15611e16565b670de0b6b3a764000082610f299190612b79565b600d81905550670de0b6b3a764000081610f439190612b79565b600c819055505050565b610f55611e16565b60288211158015610f67575060288111155b610fa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9d90612c61565b60405180910390fd5b81601081905550806011819055505050565b600d5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600e5481565b61104e611e16565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b390612cef565b60405180910390fd5b6110c581611e94565b50565b600c5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611143576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113a90612d7d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a890612e0b565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161128b9190612739565b60405180910390a3505050565b5f6112a38484610fbe565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461131d578181101561130f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130690612e73565b60405180910390fd5b61131c84848484036110d5565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611391576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138890612f01565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f690612f8f565b60405180910390fd5b5f81036114165761141183835f612249565b611c4e565b61141e610bfd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561148c575061145c610bfd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114c457505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114fe575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115165750600a5f9054906101000a900460ff16155b156118e357600f5f9054906101000a900460ff166116095760125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806115c9575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611608576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ff90612ff7565b60405180910390fd5b5b60145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156116a6575060135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561174d57600d548111156116f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e790613085565b60405180910390fd5b600c546116fc83610ab7565b8261170791906129c2565b1115611748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173f906130ed565b60405180910390fd5b6118e2565b60145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156117ea575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561183957600d54811115611834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182b9061317b565b60405180910390fd5b6118e1565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166118e057600c5461189383610ab7565b8261189e91906129c2565b11156118df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d6906130ed565b60405180910390fd5b5b5b5b5b5f6118ed30610ab7565b90505f600e54821190508080156119105750600f60019054906101000a900460ff165b80156119285750600a5f9054906101000a900460ff16155b801561197b575060145f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156119ce575060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611a21575060125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a62576001600a5f6101000a81548160ff021916908315150217905550611a486124b5565b5f600a5f6101000a81548160ff0219169083151502179055505b5f600a5f9054906101000a900460ff16158015611ac6575060125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611b19575060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b90505f8115611c3e5760145f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611ba057611b996064611b8b601154886124f090919063ffffffff16565b61250590919063ffffffff16565b9050611c1b565b60145f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611c1a57611c176064611c09601054886124f090919063ffffffff16565b61250590919063ffffffff16565b90505b5b5f811115611c2f57611c2e873083612249565b5b8085611c3b9190613199565b94505b611c49878787612249565b505050505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb89061323c565b60405180910390fd5b611ccc825f8361251a565b5f805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611d4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d46906132ca565b60405180910390fd5b8181035f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f82825403925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611dfe9190612739565b60405180910390a3611e11835f8461251f565b505050565b611e1e6110ce565b73ffffffffffffffffffffffffffffffffffffffff16611e3c610bfd565b73ffffffffffffffffffffffffffffffffffffffff1614611e92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8990613332565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f600267ffffffffffffffff81111561201157612010613350565b5b60405190808252806020026020018201604052801561203f5781602001602082028036833780820191505090505b50905030815f815181106120565761205561337d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061211d91906133be565b816001815181106121315761213061337d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612196307f0000000000000000000000000000000000000000000000000000000000000000846110d5565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016122189594939291906134d9565b5f604051808303815f87803b15801561222f575f80fd5b505af1158015612241573d5f803e3d5ffd5b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036122b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ae90612f01565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612325576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231c90612f8f565b60405180910390fd5b61233083838361251a565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156123b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123aa906135a1565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161249c9190612739565b60405180910390a36124af84848461251f565b50505050565b5f6124bf30610ab7565b90505f81036124ce57506124ee565b5f819050600e548111156124e257600e5490505b6124eb81611ff5565b50505b565b5f81836124fd9190612b79565b905092915050565b5f81836125129190612be7565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61256682612524565b612570818561252e565b935061258081856020860161253e565b6125898161254c565b840191505092915050565b5f6020820190508181035f8301526125ac818461255c565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6125e1826125b8565b9050919050565b6125f1816125d7565b81146125fb575f80fd5b50565b5f8135905061260c816125e8565b92915050565b5f819050919050565b61262481612612565b811461262e575f80fd5b50565b5f8135905061263f8161261b565b92915050565b5f806040838503121561265b5761265a6125b4565b5b5f612668858286016125fe565b925050602061267985828601612631565b9150509250929050565b5f8115159050919050565b61269781612683565b82525050565b5f6020820190506126b05f83018461268e565b92915050565b5f819050919050565b5f6126d96126d46126cf846125b8565b6126b6565b6125b8565b9050919050565b5f6126ea826126bf565b9050919050565b5f6126fb826126e0565b9050919050565b61270b816126f1565b82525050565b5f6020820190506127245f830184612702565b92915050565b61273381612612565b82525050565b5f60208201905061274c5f83018461272a565b92915050565b5f805f60608486031215612769576127686125b4565b5b5f612776868287016125fe565b9350506020612787868287016125fe565b925050604061279886828701612631565b9150509250925092565b5f60ff82169050919050565b6127b7816127a2565b82525050565b5f6020820190506127d05f8301846127ae565b92915050565b5f602082840312156127eb576127ea6125b4565b5b5f6127f884828501612631565b91505092915050565b61280a816125d7565b82525050565b5f6020820190506128235f830184612801565b92915050565b5f6020828403121561283e5761283d6125b4565b5b5f61284b848285016125fe565b91505092915050565b61285d81612683565b8114612867575f80fd5b50565b5f8135905061287881612854565b92915050565b5f8060408385031215612894576128936125b4565b5b5f6128a1858286016125fe565b92505060206128b28582860161286a565b9150509250929050565b5f80604083850312156128d2576128d16125b4565b5b5f6128df85828601612631565b92505060206128f085828601612631565b9150509250929050565b5f80604083850312156129105761290f6125b4565b5b5f61291d858286016125fe565b925050602061292e858286016125fe565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061297c57607f821691505b60208210810361298f5761298e612938565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6129cc82612612565b91506129d783612612565b92508282019050808211156129ef576129ee612995565b5b92915050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612a2960178361252e565b9150612a34826129f5565b602082019050919050565b5f6020820190508181035f830152612a5681612a1d565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f612ab760398361252e565b9150612ac282612a5d565b604082019050919050565b5f6020820190508181035f830152612ae481612aab565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612b4560258361252e565b9150612b5082612aeb565b604082019050919050565b5f6020820190508181035f830152612b7281612b39565b9050919050565b5f612b8382612612565b9150612b8e83612612565b9250828202612b9c81612612565b91508282048414831517612bb357612bb2612995565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612bf182612612565b9150612bfc83612612565b925082612c0c57612c0b612bba565b5b828204905092915050565b7f466565732063616e6e6f742065786365656420343025000000000000000000005f82015250565b5f612c4b60168361252e565b9150612c5682612c17565b602082019050919050565b5f6020820190508181035f830152612c7881612c3f565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612cd960268361252e565b9150612ce482612c7f565b604082019050919050565b5f6020820190508181035f830152612d0681612ccd565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612d6760248361252e565b9150612d7282612d0d565b604082019050919050565b5f6020820190508181035f830152612d9481612d5b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612df560228361252e565b9150612e0082612d9b565b604082019050919050565b5f6020820190508181035f830152612e2281612de9565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612e5d601d8361252e565b9150612e6882612e29565b602082019050919050565b5f6020820190508181035f830152612e8a81612e51565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612eeb60258361252e565b9150612ef682612e91565b604082019050919050565b5f6020820190508181035f830152612f1881612edf565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612f7960238361252e565b9150612f8482612f1f565b604082019050919050565b5f6020820190508181035f830152612fa681612f6d565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f612fe160168361252e565b9150612fec82612fad565b602082019050919050565b5f6020820190508181035f83015261300e81612fd5565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f61306f60358361252e565b915061307a82613015565b604082019050919050565b5f6020820190508181035f83015261309c81613063565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6130d760138361252e565b91506130e2826130a3565b602082019050919050565b5f6020820190508181035f830152613104816130cb565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f61316560368361252e565b91506131708261310b565b604082019050919050565b5f6020820190508181035f83015261319281613159565b9050919050565b5f6131a382612612565b91506131ae83612612565b92508282039050818111156131c6576131c5612995565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f61322660218361252e565b9150613231826131cc565b604082019050919050565b5f6020820190508181035f8301526132538161321a565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132b460228361252e565b91506132bf8261325a565b604082019050919050565b5f6020820190508181035f8301526132e1816132a8565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61331c60208361252e565b9150613327826132e8565b602082019050919050565b5f6020820190508181035f83015261334981613310565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506133b8816125e8565b92915050565b5f602082840312156133d3576133d26125b4565b5b5f6133e0848285016133aa565b91505092915050565b5f819050919050565b5f61340c613407613402846133e9565b6126b6565b612612565b9050919050565b61341c816133f2565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613454816125d7565b82525050565b5f613465838361344b565b60208301905092915050565b5f602082019050919050565b5f61348782613422565b613491818561342c565b935061349c8361343c565b805f5b838110156134cc5781516134b3888261345a565b97506134be83613471565b92505060018101905061349f565b5085935050505092915050565b5f60a0820190506134ec5f83018861272a565b6134f96020830187613413565b818103604083015261350b818661347d565b905061351a6060830185612801565b613527608083018461272a565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61358b60268361252e565b915061359682613531565b604082019050919050565b5f6020820190508181035f8301526135b88161357f565b905091905056fea26469706673582212201c05c6b69ab977a7b31d0bea6bf0bb1e27acf2d88f0d2561faf4f988e4d250cc64736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610212575f3560e01c8063715018a611610117578063b70143c91161009f578063c8c8ebe41161006e578063c8c8ebe414610777578063dd62ed3e146107a1578063e2f45605146107dd578063f2fde38b14610807578063f8b45b051461082f57610219565b8063b70143c9146106d7578063c0246668146106ff578063c4590d3f14610727578063c647b20e1461074f57610219565b806395d89b41116100e657806395d89b41146105e55780639a7a23d61461060f578063a457c2d714610637578063a9059cbb14610673578063afa4f3b2146106af57610219565b8063715018a6146105675780637571336a1461057d5780638a8c523c146105a55780638da5cb5b146105bb57610219565b806342966c681161019a5780634fbee193116101695780634fbee193146104735780635d098b38146104af57806361bc221a146104d75780636ddd17131461050157806370a082311461052b57610219565b806342966c68146103cd57806347062402146103f557806349bd5a5e1461041f5780634ada218b1461044957610219565b806323b872dd116101e157806323b872dd146102d75780632b14ca5614610313578063311028af1461033d578063313ce56714610367578063395093511461039157610219565b806306fdde031461021d578063095ea7b3146102475780631694505e1461028357806318160ddd146102ad57610219565b3661021957005b5f80fd5b348015610228575f80fd5b50610231610859565b60405161023e9190612594565b60405180910390f35b348015610252575f80fd5b5061026d60048036038101906102689190612645565b6108e9565b60405161027a919061269d565b60405180910390f35b34801561028e575f80fd5b5061029761090b565b6040516102a49190612711565b60405180910390f35b3480156102b8575f80fd5b506102c161092f565b6040516102ce9190612739565b60405180910390f35b3480156102e2575f80fd5b506102fd60048036038101906102f89190612752565b610938565b60405161030a919061269d565b60405180910390f35b34801561031e575f80fd5b50610327610966565b6040516103349190612739565b60405180910390f35b348015610348575f80fd5b5061035161096c565b60405161035e9190612739565b60405180910390f35b348015610372575f80fd5b5061037b610972565b60405161038891906127bd565b60405180910390f35b34801561039c575f80fd5b506103b760048036038101906103b29190612645565b61097a565b6040516103c4919061269d565b60405180910390f35b3480156103d8575f80fd5b506103f360048036038101906103ee91906127d6565b6109b0565b005b348015610400575f80fd5b506104096109c4565b6040516104169190612739565b60405180910390f35b34801561042a575f80fd5b506104336109ca565b6040516104409190612810565b60405180910390f35b348015610454575f80fd5b5061045d6109ef565b60405161046a919061269d565b60405180910390f35b34801561047e575f80fd5b5061049960048036038101906104949190612829565b610a01565b6040516104a6919061269d565b60405180910390f35b3480156104ba575f80fd5b506104d560048036038101906104d09190612829565b610a53565b005b3480156104e2575f80fd5b506104eb610a9e565b6040516104f89190612739565b60405180910390f35b34801561050c575f80fd5b50610515610aa4565b604051610522919061269d565b60405180910390f35b348015610536575f80fd5b50610551600480360381019061054c9190612829565b610ab7565b60405161055e9190612739565b60405180910390f35b348015610572575f80fd5b5061057b610afc565b005b348015610588575f80fd5b506105a3600480360381019061059e919061287e565b610b0f565b005b3480156105b0575f80fd5b506105b9610b6f565b005b3480156105c6575f80fd5b506105cf610bfd565b6040516105dc9190612810565b60405180910390f35b3480156105f0575f80fd5b506105f9610c25565b6040516106069190612594565b60405180910390f35b34801561061a575f80fd5b506106356004803603810190610630919061287e565b610cb5565b005b348015610642575f80fd5b5061065d60048036038101906106589190612645565b610d5a565b60405161066a919061269d565b60405180910390f35b34801561067e575f80fd5b5061069960048036038101906106949190612645565b610dcf565b6040516106a6919061269d565b60405180910390f35b3480156106ba575f80fd5b506106d560048036038101906106d091906127d6565b610df1565b005b3480156106e2575f80fd5b506106fd60048036038101906106f891906127d6565b610e16565b005b34801561070a575f80fd5b506107256004803603810190610720919061287e565b610e5f565b005b348015610732575f80fd5b5061074d600480360381019061074891906128bc565b610f0d565b005b34801561075a575f80fd5b50610775600480360381019061077091906128bc565b610f4d565b005b348015610782575f80fd5b5061078b610fb8565b6040516107989190612739565b60405180910390f35b3480156107ac575f80fd5b506107c760048036038101906107c291906128fa565b610fbe565b6040516107d49190612739565b60405180910390f35b3480156107e8575f80fd5b506107f1611040565b6040516107fe9190612739565b60405180910390f35b348015610812575f80fd5b5061082d60048036038101906108289190612829565b611046565b005b34801561083a575f80fd5b506108436110c8565b6040516108509190612739565b60405180910390f35b60606003805461086890612965565b80601f016020809104026020016040519081016040528092919081815260200182805461089490612965565b80156108df5780601f106108b6576101008083540402835291602001916108df565b820191905f5260205f20905b8154815290600101906020018083116108c257829003601f168201915b5050505050905090565b5f806108f36110ce565b90506109008185856110d5565b600191505092915050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f600254905090565b5f806109426110ce565b905061094f858285611298565b61095a858585611323565b60019150509392505050565b60115481565b600b5481565b5f6012905090565b5f806109846110ce565b90506109a58185856109968589610fbe565b6109a091906129c2565b6110d5565b600191505092915050565b6109c16109bb6110ce565b82611c53565b50565b60105481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5f9054906101000a900460ff1681565b5f60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b610a5b611e16565b8060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b600f60019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b04611e16565b610b0d5f611e94565b565b610b17611e16565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b610b77611e16565b600f5f9054906101000a900460ff1615610bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbd90612a3f565b60405180910390fd5b6001600f60016101000a81548160ff0219169083151502179055506001600f5f6101000a81548160ff021916908315150217905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610c3490612965565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6090612965565b8015610cab5780601f10610c8257610100808354040283529160200191610cab565b820191905f5260205f20905b815481529060010190602001808311610c8e57829003601f168201915b5050505050905090565b610cbd611e16565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4390612acd565b60405180910390fd5b610d568282611f57565b5050565b5f80610d646110ce565b90505f610d718286610fbe565b905083811015610db6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dad90612b5b565b60405180910390fd5b610dc382868684036110d5565b60019250505092915050565b5f80610dd96110ce565b9050610de6818585611323565b600191505092915050565b610df9611e16565b670de0b6b3a764000081610e0d9190612b79565b600e8190555050565b610e1e611e16565b5f610e2761092f565b90505f610e3330610ab7565b90505f60648483610e449190612b79565b610e4e9190612be7565b9050610e5981611ff5565b50505050565b610e67611e16565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051610f01919061269d565b60405180910390a25050565b610f15611e16565b670de0b6b3a764000082610f299190612b79565b600d81905550670de0b6b3a764000081610f439190612b79565b600c819055505050565b610f55611e16565b60288211158015610f67575060288111155b610fa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9d90612c61565b60405180910390fd5b81601081905550806011819055505050565b600d5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600e5481565b61104e611e16565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b390612cef565b60405180910390fd5b6110c581611e94565b50565b600c5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611143576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113a90612d7d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a890612e0b565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161128b9190612739565b60405180910390a3505050565b5f6112a38484610fbe565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461131d578181101561130f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130690612e73565b60405180910390fd5b61131c84848484036110d5565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611391576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138890612f01565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f690612f8f565b60405180910390fd5b5f81036114165761141183835f612249565b611c4e565b61141e610bfd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561148c575061145c610bfd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114c457505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114fe575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115165750600a5f9054906101000a900460ff16155b156118e357600f5f9054906101000a900460ff166116095760125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806115c9575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611608576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ff90612ff7565b60405180910390fd5b5b60145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156116a6575060135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561174d57600d548111156116f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e790613085565b60405180910390fd5b600c546116fc83610ab7565b8261170791906129c2565b1115611748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173f906130ed565b60405180910390fd5b6118e2565b60145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156117ea575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561183957600d54811115611834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182b9061317b565b60405180910390fd5b6118e1565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166118e057600c5461189383610ab7565b8261189e91906129c2565b11156118df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d6906130ed565b60405180910390fd5b5b5b5b5b5f6118ed30610ab7565b90505f600e54821190508080156119105750600f60019054906101000a900460ff165b80156119285750600a5f9054906101000a900460ff16155b801561197b575060145f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156119ce575060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611a21575060125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a62576001600a5f6101000a81548160ff021916908315150217905550611a486124b5565b5f600a5f6101000a81548160ff0219169083151502179055505b5f600a5f9054906101000a900460ff16158015611ac6575060125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611b19575060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b90505f8115611c3e5760145f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611ba057611b996064611b8b601154886124f090919063ffffffff16565b61250590919063ffffffff16565b9050611c1b565b60145f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611c1a57611c176064611c09601054886124f090919063ffffffff16565b61250590919063ffffffff16565b90505b5b5f811115611c2f57611c2e873083612249565b5b8085611c3b9190613199565b94505b611c49878787612249565b505050505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb89061323c565b60405180910390fd5b611ccc825f8361251a565b5f805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611d4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d46906132ca565b60405180910390fd5b8181035f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f82825403925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611dfe9190612739565b60405180910390a3611e11835f8461251f565b505050565b611e1e6110ce565b73ffffffffffffffffffffffffffffffffffffffff16611e3c610bfd565b73ffffffffffffffffffffffffffffffffffffffff1614611e92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8990613332565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f600267ffffffffffffffff81111561201157612010613350565b5b60405190808252806020026020018201604052801561203f5781602001602082028036833780820191505090505b50905030815f815181106120565761205561337d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061211d91906133be565b816001815181106121315761213061337d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612196307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846110d5565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016122189594939291906134d9565b5f604051808303815f87803b15801561222f575f80fd5b505af1158015612241573d5f803e3d5ffd5b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036122b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ae90612f01565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612325576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231c90612f8f565b60405180910390fd5b61233083838361251a565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156123b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123aa906135a1565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161249c9190612739565b60405180910390a36124af84848461251f565b50505050565b5f6124bf30610ab7565b90505f81036124ce57506124ee565b5f819050600e548111156124e257600e5490505b6124eb81611ff5565b50505b565b5f81836124fd9190612b79565b905092915050565b5f81836125129190612be7565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61256682612524565b612570818561252e565b935061258081856020860161253e565b6125898161254c565b840191505092915050565b5f6020820190508181035f8301526125ac818461255c565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6125e1826125b8565b9050919050565b6125f1816125d7565b81146125fb575f80fd5b50565b5f8135905061260c816125e8565b92915050565b5f819050919050565b61262481612612565b811461262e575f80fd5b50565b5f8135905061263f8161261b565b92915050565b5f806040838503121561265b5761265a6125b4565b5b5f612668858286016125fe565b925050602061267985828601612631565b9150509250929050565b5f8115159050919050565b61269781612683565b82525050565b5f6020820190506126b05f83018461268e565b92915050565b5f819050919050565b5f6126d96126d46126cf846125b8565b6126b6565b6125b8565b9050919050565b5f6126ea826126bf565b9050919050565b5f6126fb826126e0565b9050919050565b61270b816126f1565b82525050565b5f6020820190506127245f830184612702565b92915050565b61273381612612565b82525050565b5f60208201905061274c5f83018461272a565b92915050565b5f805f60608486031215612769576127686125b4565b5b5f612776868287016125fe565b9350506020612787868287016125fe565b925050604061279886828701612631565b9150509250925092565b5f60ff82169050919050565b6127b7816127a2565b82525050565b5f6020820190506127d05f8301846127ae565b92915050565b5f602082840312156127eb576127ea6125b4565b5b5f6127f884828501612631565b91505092915050565b61280a816125d7565b82525050565b5f6020820190506128235f830184612801565b92915050565b5f6020828403121561283e5761283d6125b4565b5b5f61284b848285016125fe565b91505092915050565b61285d81612683565b8114612867575f80fd5b50565b5f8135905061287881612854565b92915050565b5f8060408385031215612894576128936125b4565b5b5f6128a1858286016125fe565b92505060206128b28582860161286a565b9150509250929050565b5f80604083850312156128d2576128d16125b4565b5b5f6128df85828601612631565b92505060206128f085828601612631565b9150509250929050565b5f80604083850312156129105761290f6125b4565b5b5f61291d858286016125fe565b925050602061292e858286016125fe565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061297c57607f821691505b60208210810361298f5761298e612938565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6129cc82612612565b91506129d783612612565b92508282019050808211156129ef576129ee612995565b5b92915050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612a2960178361252e565b9150612a34826129f5565b602082019050919050565b5f6020820190508181035f830152612a5681612a1d565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f612ab760398361252e565b9150612ac282612a5d565b604082019050919050565b5f6020820190508181035f830152612ae481612aab565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612b4560258361252e565b9150612b5082612aeb565b604082019050919050565b5f6020820190508181035f830152612b7281612b39565b9050919050565b5f612b8382612612565b9150612b8e83612612565b9250828202612b9c81612612565b91508282048414831517612bb357612bb2612995565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612bf182612612565b9150612bfc83612612565b925082612c0c57612c0b612bba565b5b828204905092915050565b7f466565732063616e6e6f742065786365656420343025000000000000000000005f82015250565b5f612c4b60168361252e565b9150612c5682612c17565b602082019050919050565b5f6020820190508181035f830152612c7881612c3f565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612cd960268361252e565b9150612ce482612c7f565b604082019050919050565b5f6020820190508181035f830152612d0681612ccd565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612d6760248361252e565b9150612d7282612d0d565b604082019050919050565b5f6020820190508181035f830152612d9481612d5b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612df560228361252e565b9150612e0082612d9b565b604082019050919050565b5f6020820190508181035f830152612e2281612de9565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612e5d601d8361252e565b9150612e6882612e29565b602082019050919050565b5f6020820190508181035f830152612e8a81612e51565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612eeb60258361252e565b9150612ef682612e91565b604082019050919050565b5f6020820190508181035f830152612f1881612edf565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612f7960238361252e565b9150612f8482612f1f565b604082019050919050565b5f6020820190508181035f830152612fa681612f6d565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f612fe160168361252e565b9150612fec82612fad565b602082019050919050565b5f6020820190508181035f83015261300e81612fd5565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f61306f60358361252e565b915061307a82613015565b604082019050919050565b5f6020820190508181035f83015261309c81613063565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6130d760138361252e565b91506130e2826130a3565b602082019050919050565b5f6020820190508181035f830152613104816130cb565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f61316560368361252e565b91506131708261310b565b604082019050919050565b5f6020820190508181035f83015261319281613159565b9050919050565b5f6131a382612612565b91506131ae83612612565b92508282039050818111156131c6576131c5612995565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f61322660218361252e565b9150613231826131cc565b604082019050919050565b5f6020820190508181035f8301526132538161321a565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132b460228361252e565b91506132bf8261325a565b604082019050919050565b5f6020820190508181035f8301526132e1816132a8565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61331c60208361252e565b9150613327826132e8565b602082019050919050565b5f6020820190508181035f83015261334981613310565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506133b8816125e8565b92915050565b5f602082840312156133d3576133d26125b4565b5b5f6133e0848285016133aa565b91505092915050565b5f819050919050565b5f61340c613407613402846133e9565b6126b6565b612612565b9050919050565b61341c816133f2565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613454816125d7565b82525050565b5f613465838361344b565b60208301905092915050565b5f602082019050919050565b5f61348782613422565b613491818561342c565b935061349c8361343c565b805f5b838110156134cc5781516134b3888261345a565b97506134be83613471565b92505060018101905061349f565b5085935050505092915050565b5f60a0820190506134ec5f83018861272a565b6134f96020830187613413565b818103604083015261350b818661347d565b905061351a6060830185612801565b613527608083018461272a565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61358b60268361252e565b915061359682613531565b604082019050919050565b5f6020820190508181035f8301526135b88161357f565b905091905056fea26469706673582212201c05c6b69ab977a7b31d0bea6bf0bb1e27acf2d88f0d2561faf4f988e4d250cc64736f6c634300081a0033

Deployed Bytecode Sourcemap

14436:8551:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9664:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10596:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14509:116;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9985:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10805:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15333:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14884:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9884:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11074:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17242:85;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15301:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14632:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15220:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18121:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22230;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14803:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15261:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10101:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;875:103;;;;;;;;;;;;;:::i;:::-;;17335:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17058:176;;;;;;;;;;;;;:::i;:::-;;640:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9772:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17677:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11320:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10236:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21808:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21943:279;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17487:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21589:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22364:213;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15061:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10437:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15146:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;986:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14999:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9664:100;9718:13;9751:5;9744:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9664:100;:::o;10596:201::-;10679:4;10696:13;10712:12;:10;:12::i;:::-;10696:28;;10735:32;10744:5;10751:7;10760:6;10735:8;:32::i;:::-;10785:4;10778:11;;;10596:201;;;;:::o;14509:116::-;;;:::o;9985:108::-;10046:7;10073:12;;10066:19;;9985:108;:::o;10805:261::-;10902:4;10919:15;10937:12;:10;:12::i;:::-;10919:30;;10960:38;10976:4;10982:7;10991:6;10960:15;:38::i;:::-;11009:27;11019:4;11025:2;11029:6;11009:9;:27::i;:::-;11054:4;11047:11;;;10805:261;;;;;:::o;15333:26::-;;;;:::o;14884:56::-;;;;:::o;9884:93::-;9942:5;9967:2;9960:9;;9884:93;:::o;11074:238::-;11162:4;11179:13;11195:12;:10;:12::i;:::-;11179:28;;11218:64;11227:5;11234:7;11271:10;11243:25;11253:5;11260:7;11243:9;:25::i;:::-;:38;;;;:::i;:::-;11218:8;:64::i;:::-;11300:4;11293:11;;;11074:238;;;;:::o;17242:85::-;17292:27;17298:12;:10;:12::i;:::-;17312:6;17292:5;:27::i;:::-;17242:85;:::o;15301:25::-;;;;:::o;14632:28::-;;;;;;;;;;;;;:::o;15220:34::-;;;;;;;;;;;;;:::o;18121:126::-;18187:4;18211:19;:28;18231:7;18211:28;;;;;;;;;;;;;;;;;;;;;;;;;18204:35;;18121:126;;;:::o;22230:::-;599:13;:11;:13::i;:::-;22332:16:::1;22314:15;;:34;;;;;;;;;;;;;;;;;;22230:126:::0;:::o;14803:27::-;;;;:::o;15261:31::-;;;;;;;;;;;;;:::o;10101:127::-;10175:7;10202:9;:18;10212:7;10202:18;;;;;;;;;;;;;;;;10195:25;;10101:127;;;:::o;875:103::-;599:13;:11;:13::i;:::-;940:30:::1;967:1;940:18;:30::i;:::-;875:103::o:0;17335:144::-;599:13;:11;:13::i;:::-;17467:4:::1;17425:31;:39;17457:6;17425:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;17335:144:::0;;:::o;17058:176::-;599:13;:11;:13::i;:::-;17124:14:::1;;;;;;;;;;;17123:15;17115:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;17190:4;17176:11;;:18;;;;;;;;;;;;;;;;;;17222:4;17205:14;;:21;;;;;;;;;;;;;;;;;;17058:176::o:0;640:87::-;686:7;713:6;;;;;;;;;;;706:13;;640:87;:::o;9772:104::-;9828:13;9861:7;9854:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9772:104;:::o;17677:242::-;599:13;:11;:13::i;:::-;17784::::1;;;;;;;;;;;17776:21;;:4;:21;;::::0;17768:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;17870:41;17899:4;17905:5;17870:28;:41::i;:::-;17677:242:::0;;:::o;11320:436::-;11413:4;11430:13;11446:12;:10;:12::i;:::-;11430:28;;11469:24;11496:25;11506:5;11513:7;11496:9;:25::i;:::-;11469:52;;11560:15;11540:16;:35;;11532:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11653:60;11662:5;11669:7;11697:15;11678:16;:34;11653:8;:60::i;:::-;11744:4;11737:11;;;;11320:436;;;;:::o;10236:193::-;10315:4;10332:13;10348:12;:10;:12::i;:::-;10332:28;;10371;10381:5;10388:2;10392:6;10371:9;:28::i;:::-;10417:4;10410:11;;;10236:193;;;;:::o;21808:127::-;599:13;:11;:13::i;:::-;21918:8:::1;21907:7;:20;;;;:::i;:::-;21886:18;:41;;;;21808:127:::0;:::o;21943:279::-;599:13;:11;:13::i;:::-;22010:25:::1;22038:13;:11;:13::i;:::-;22010:41;;22062:23;22088:24;22106:4;22088:9;:24::i;:::-;22062:50;;22123:18;22172:3;22162:7;22144:15;:25;;;;:::i;:::-;:31;;;;:::i;:::-;22123:52;;22186:28;22203:10;22186:16;:28::i;:::-;21999:223;;;21943:279:::0;:::o;17487:182::-;599:13;:11;:13::i;:::-;17603:8:::1;17572:19;:28;17592:7;17572:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17643:7;17627:34;;;17652:8;17627:34;;;;;;:::i;:::-;;;;;;;;17487:182:::0;;:::o;21589:211::-;599:13;:11;:13::i;:::-;21737:8:::1;21712:21;:34;;;;:::i;:::-;21689:20;:57;;;;21783:8;21769:10;:23;;;;:::i;:::-;21757:9;:35;;;;21589:211:::0;;:::o;22364:213::-;599:13;:11;:13::i;:::-;22466:2:::1;22455:7;:13;;:31;;;;;22484:2;22472:8;:14;;22455:31;22447:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;22533:7;22524:6;:16;;;;22561:8;22551:7;:18;;;;22364:213:::0;;:::o;15061:47::-;;;;:::o;10437:151::-;10526:7;10553:11;:18;10565:5;10553:18;;;;;;;;;;;;;;;:27;10572:7;10553:27;;;;;;;;;;;;;;;;10546:34;;10437:151;;;;:::o;15146:65::-;;;;:::o;986:201::-;599:13;:11;:13::i;:::-;1095:1:::1;1075:22;;:8;:22;;::::0;1067:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1151:28;1170:8;1151:18;:28::i;:::-;986:201:::0;:::o;14999:55::-;;;;:::o;113:98::-;166:7;193:10;186:17;;113:98;:::o;13459:346::-;13578:1;13561:19;;:5;:19;;;13553:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13659:1;13640:21;;:7;:21;;;13632:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13743:6;13713:11;:18;13725:5;13713:18;;;;;;;;;;;;;;;:27;13732:7;13713:27;;;;;;;;;;;;;;;:36;;;;13781:7;13765:32;;13774:5;13765:32;;;13790:6;13765:32;;;;;;:::i;:::-;;;;;;;;13459:346;;;:::o;13813:419::-;13914:24;13941:25;13951:5;13958:7;13941:9;:25::i;:::-;13914:52;;14001:17;13981:16;:37;13977:248;;14063:6;14043:16;:26;;14035:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14147:51;14156:5;14163:7;14191:6;14172:16;:25;14147:8;:51::i;:::-;13977:248;13903:329;13813:419;;;:::o;18255:2845::-;18369:1;18353:18;;:4;:18;;;18345:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18446:1;18432:16;;:2;:16;;;18424:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;18515:1;18505:6;:11;18501:93;;18533:28;18549:4;18555:2;18559:1;18533:15;:28::i;:::-;18576:7;;18501:93;18618:7;:5;:7::i;:::-;18610:15;;:4;:15;;;;:32;;;;;18635:7;:5;:7::i;:::-;18629:13;;:2;:13;;;;18610:32;:52;;;;;18660:1;18646:16;;:2;:16;;;;18610:52;:73;;;;;14789:6;18666:17;;:2;:17;;;;18610:73;:86;;;;;18688:8;;;;;;;;;;;18687:9;18610:86;18606:1291;;;18818:14;;;;;;;;;;;18813:143;;18861:19;:25;18881:4;18861:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;18890:19;:23;18910:2;18890:23;;;;;;;;;;;;;;;;;;;;;;;;;18861:52;18853:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;18813:143;19029:25;:31;19055:4;19029:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;19065:31;:35;19097:2;19065:35;;;;;;;;;;;;;;;;;;;;;;;;;19064:36;19029:71;19025:861;;;19139:20;;19129:6;:30;;19121:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;19270:9;;19253:13;19263:2;19253:9;:13::i;:::-;19244:6;:22;;;;:::i;:::-;:35;;19236:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19025:861;;;19460:25;:29;19486:2;19460:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;19494:31;:37;19526:4;19494:37;;;;;;;;;;;;;;;;;;;;;;;;;19493:38;19460:71;19456:430;;;19570:20;;19560:6;:30;;19552:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;19456:430;;;19747:31;:35;19779:2;19747:35;;;;;;;;;;;;;;;;;;;;;;;;;19742:144;;19837:9;;19820:13;19830:2;19820:9;:13::i;:::-;19811:6;:22;;;;:::i;:::-;:35;;19803:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19742:144;19456:430;19025:861;18606:1291;19956:28;19987:24;20005:4;19987:9;:24::i;:::-;19956:55;;20022:12;20060:18;;20037:20;:41;20022:56;;20093:7;:22;;;;;20104:11;;;;;;;;;;;20093:22;:35;;;;;20120:8;;;;;;;;;;;20119:9;20093:35;:71;;;;;20133:25;:31;20159:4;20133:31;;;;;;;;;;;;;;;;;;;;;;;;;20132:32;20093:71;:101;;;;;20169:19;:25;20189:4;20169:25;;;;;;;;;;;;;;;;;;;;;;;;;20168:26;20093:101;:129;;;;;20199:19;:23;20219:2;20199:23;;;;;;;;;;;;;;;;;;;;;;;;;20198:24;20093:129;20089:233;;;20250:4;20239:8;;:15;;;;;;;;;;;;;;;;;;20269:10;:8;:10::i;:::-;20305:5;20294:8;;:16;;;;;;;;;;;;;;;;;;20089:233;20428:12;20444:8;;;;;;;;;;;20443:9;:39;;;;;20457:19;:25;20477:4;20457:25;;;;;;;;;;;;;;;;;;;;;;;;;20456:26;20443:39;:67;;;;;20487:19;:23;20507:2;20487:23;;;;;;;;;;;;;;;;;;;;;;;;;20486:24;20443:67;20428:82;;20523:12;20554:7;20550:499;;;20627:25;:29;20653:2;20627:29;;;;;;;;;;;;;;;;;;;;;;;;;20623:279;;;20684:28;20708:3;20684:19;20695:7;;20684:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;20677:35;;20623:279;;;20800:25;:31;20826:4;20800:31;;;;;;;;;;;;;;;;;;;;;;;;;20797:105;;;20859:27;20882:3;20859:18;20870:6;;20859;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;20852:34;;20797:105;20623:279;20929:1;20922:4;:8;20918:91;;;20951:42;20967:4;20981;20988;20951:15;:42::i;:::-;20918:91;21033:4;21023:14;;;;;:::i;:::-;;;20550:499;21059:33;21075:4;21081:2;21085:6;21059:15;:33::i;:::-;18334:2766;;;;18255:2845;;;;:::o;12856:595::-;12959:1;12940:21;;:7;:21;;;12932:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13012:49;13033:7;13050:1;13054:6;13012:20;:49::i;:::-;13074:22;13099:9;:18;13109:7;13099:18;;;;;;;;;;;;;;;;13074:43;;13154:6;13136:14;:24;;13128:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13273:6;13256:14;:23;13235:9;:18;13245:7;13235:18;;;;;;;;;;;;;;;:44;;;;13310:6;13294:12;;:22;;;;;;;;;;;13371:1;13345:37;;13354:7;13345:37;;;13375:6;13345:37;;;;;;:::i;:::-;;;;;;;;13395:48;13415:7;13432:1;13436:6;13395:19;:48::i;:::-;12921:530;12856:595;;:::o;735:132::-;810:12;:10;:12::i;:::-;799:23;;:7;:5;:7::i;:::-;:23;;;791:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;735:132::o;1195:191::-;1269:16;1288:6;;;;;;;;;;;1269:25;;1314:8;1305:6;;:17;;;;;;;;;;;;;;;;;;1369:8;1338:40;;1359:8;1338:40;;;;;;;;;;;;1258:128;1195:191;:::o;17927:186::-;18044:5;18010:25;:31;18036:4;18010:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18099:5;18065:40;;18093:4;18065:40;;;;;;;;;;;;17927:186;;:::o;21108:473::-;21174:21;21212:1;21198:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21174:40;;21243:4;21225;21230:1;21225:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21269:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21259:4;21264:1;21259:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;21302:62;21319:4;21334:15;21352:11;21302:8;:62::i;:::-;21375:15;:66;;;21456:11;21482:1;21498:4;21517:15;;;;;;;;;;;21547;21375:198;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21163:418;21108:473;:::o;11764:641::-;11877:1;11861:18;;:4;:18;;;11853:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11954:1;11940:16;;:2;:16;;;11932:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12009:38;12030:4;12036:2;12040:6;12009:20;:38::i;:::-;12060:19;12082:9;:15;12092:4;12082:15;;;;;;;;;;;;;;;;12060:37;;12131:6;12116:11;:21;;12108:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12248:6;12234:11;:20;12216:9;:15;12226:4;12216:15;;;;;;;;;;;;;;;:38;;;;12286:6;12269:9;:13;12279:2;12269:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;12336:2;12321:26;;12330:4;12321:26;;;12340:6;12321:26;;;;;;:::i;:::-;;;;;;;;12360:37;12380:4;12386:2;12390:6;12360:19;:37::i;:::-;11842:563;11764:641;;;:::o;22585:399::-;22624:23;22650:24;22668:4;22650:9;:24::i;:::-;22624:50;;22708:1;22689:15;:20;22685:91;;22758:7;;;22685:91;22788:20;22811:15;22788:38;;22856:18;;22841:12;:33;22837:99;;;22906:18;;22891:33;;22837:99;22946:30;22963:12;22946:16;:30::i;:::-;22613:371;;22585:399;:::o;8121:98::-;8179:7;8210:1;8206;:5;;;;:::i;:::-;8199:12;;8121:98;;;;:::o;8227:::-;8285:7;8316:1;8312;:5;;;;:::i;:::-;8305:12;;8227:98;;;;:::o;14240:91::-;;;;:::o;14339: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:60::-;3367:3;3388:5;3381:12;;3339:60;;;:::o;3405:142::-;3455:9;3488:53;3506:34;3515:24;3533:5;3515:24;:::i;:::-;3506:34;:::i;:::-;3488:53;:::i;:::-;3475:66;;3405:142;;;:::o;3553:126::-;3603:9;3636:37;3667:5;3636:37;:::i;:::-;3623:50;;3553:126;;;:::o;3685:152::-;3761:9;3794:37;3825:5;3794:37;:::i;:::-;3781:50;;3685:152;;;:::o;3843:183::-;3956:63;4013:5;3956:63;:::i;:::-;3951:3;3944:76;3843:183;;:::o;4032:274::-;4151:4;4189:2;4178:9;4174:18;4166:26;;4202:97;4296:1;4285:9;4281:17;4272:6;4202:97;:::i;:::-;4032:274;;;;:::o;4312:118::-;4399:24;4417:5;4399:24;:::i;:::-;4394:3;4387:37;4312:118;;:::o;4436:222::-;4529:4;4567:2;4556:9;4552:18;4544:26;;4580:71;4648:1;4637:9;4633:17;4624:6;4580:71;:::i;:::-;4436:222;;;;:::o;4664:619::-;4741:6;4749;4757;4806:2;4794:9;4785:7;4781:23;4777:32;4774:119;;;4812:79;;:::i;:::-;4774:119;4932:1;4957:53;5002:7;4993:6;4982:9;4978:22;4957:53;:::i;:::-;4947:63;;4903:117;5059:2;5085:53;5130:7;5121:6;5110:9;5106:22;5085:53;:::i;:::-;5075:63;;5030:118;5187:2;5213:53;5258:7;5249:6;5238:9;5234:22;5213:53;:::i;:::-;5203:63;;5158:118;4664:619;;;;;:::o;5289:86::-;5324:7;5364:4;5357:5;5353:16;5342:27;;5289:86;;;:::o;5381:112::-;5464:22;5480:5;5464:22;:::i;:::-;5459:3;5452:35;5381:112;;:::o;5499:214::-;5588:4;5626:2;5615:9;5611:18;5603:26;;5639:67;5703:1;5692:9;5688:17;5679:6;5639:67;:::i;:::-;5499:214;;;;:::o;5719:329::-;5778:6;5827:2;5815:9;5806:7;5802:23;5798:32;5795:119;;;5833:79;;:::i;:::-;5795:119;5953:1;5978:53;6023:7;6014:6;6003:9;5999:22;5978:53;:::i;:::-;5968:63;;5924:117;5719:329;;;;:::o;6054:118::-;6141:24;6159:5;6141:24;:::i;:::-;6136:3;6129:37;6054:118;;:::o;6178:222::-;6271:4;6309:2;6298:9;6294:18;6286:26;;6322:71;6390:1;6379:9;6375:17;6366:6;6322:71;:::i;:::-;6178:222;;;;:::o;6406:329::-;6465:6;6514:2;6502:9;6493:7;6489:23;6485:32;6482:119;;;6520:79;;:::i;:::-;6482:119;6640:1;6665:53;6710:7;6701:6;6690:9;6686:22;6665:53;:::i;:::-;6655:63;;6611:117;6406:329;;;;:::o;6741:116::-;6811:21;6826:5;6811:21;:::i;:::-;6804:5;6801:32;6791:60;;6847:1;6844;6837:12;6791:60;6741:116;:::o;6863:133::-;6906:5;6944:6;6931:20;6922:29;;6960:30;6984:5;6960:30;:::i;:::-;6863:133;;;;:::o;7002:468::-;7067:6;7075;7124:2;7112:9;7103:7;7099:23;7095:32;7092:119;;;7130:79;;:::i;:::-;7092:119;7250:1;7275:53;7320:7;7311:6;7300:9;7296:22;7275:53;:::i;:::-;7265:63;;7221:117;7377:2;7403:50;7445:7;7436:6;7425:9;7421:22;7403:50;:::i;:::-;7393:60;;7348:115;7002:468;;;;;:::o;7476:474::-;7544:6;7552;7601:2;7589:9;7580:7;7576:23;7572:32;7569:119;;;7607:79;;:::i;:::-;7569:119;7727:1;7752:53;7797:7;7788:6;7777:9;7773:22;7752:53;:::i;:::-;7742:63;;7698:117;7854:2;7880:53;7925:7;7916:6;7905:9;7901:22;7880:53;:::i;:::-;7870:63;;7825:118;7476:474;;;;;:::o;7956:::-;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:244::-;10447:34;10443:1;10435:6;10431:14;10424:58;10516:27;10511:2;10503:6;10499:15;10492:52;10307:244;:::o;10557:366::-;10699:3;10720:67;10784:2;10779:3;10720:67;:::i;:::-;10713:74;;10796:93;10885:3;10796:93;:::i;:::-;10914:2;10909:3;10905:12;10898:19;;10557:366;;;:::o;10929:419::-;11095:4;11133:2;11122:9;11118:18;11110:26;;11182:9;11176:4;11172:20;11168:1;11157:9;11153:17;11146:47;11210:131;11336:4;11210:131;:::i;:::-;11202:139;;10929:419;;;:::o;11354:224::-;11494:34;11490:1;11482:6;11478:14;11471:58;11563:7;11558:2;11550:6;11546:15;11539:32;11354:224;:::o;11584:366::-;11726:3;11747:67;11811:2;11806:3;11747:67;:::i;:::-;11740:74;;11823:93;11912:3;11823:93;:::i;:::-;11941:2;11936:3;11932:12;11925:19;;11584:366;;;:::o;11956:419::-;12122:4;12160:2;12149:9;12145:18;12137:26;;12209:9;12203:4;12199:20;12195:1;12184:9;12180:17;12173:47;12237:131;12363:4;12237:131;:::i;:::-;12229:139;;11956:419;;;:::o;12381:410::-;12421:7;12444:20;12462:1;12444:20;:::i;:::-;12439:25;;12478:20;12496:1;12478:20;:::i;:::-;12473:25;;12533:1;12530;12526:9;12555:30;12573:11;12555:30;:::i;:::-;12544:41;;12734:1;12725:7;12721:15;12718:1;12715:22;12695:1;12688:9;12668:83;12645:139;;12764:18;;:::i;:::-;12645:139;12429:362;12381:410;;;;:::o;12797:180::-;12845:77;12842:1;12835:88;12942:4;12939:1;12932:15;12966:4;12963:1;12956:15;12983:185;13023:1;13040:20;13058:1;13040:20;:::i;:::-;13035:25;;13074:20;13092:1;13074:20;:::i;:::-;13069:25;;13113:1;13103:35;;13118:18;;:::i;:::-;13103:35;13160:1;13157;13153:9;13148:14;;12983:185;;;;:::o;13174:172::-;13314:24;13310:1;13302:6;13298:14;13291:48;13174:172;:::o;13352:366::-;13494:3;13515:67;13579:2;13574:3;13515:67;:::i;:::-;13508:74;;13591:93;13680:3;13591:93;:::i;:::-;13709:2;13704:3;13700:12;13693:19;;13352:366;;;:::o;13724:419::-;13890:4;13928:2;13917:9;13913:18;13905:26;;13977:9;13971:4;13967:20;13963:1;13952:9;13948:17;13941:47;14005:131;14131:4;14005:131;:::i;:::-;13997:139;;13724:419;;;:::o;14149:225::-;14289:34;14285:1;14277:6;14273:14;14266:58;14358:8;14353:2;14345:6;14341:15;14334:33;14149:225;:::o;14380:366::-;14522:3;14543:67;14607:2;14602:3;14543:67;:::i;:::-;14536:74;;14619:93;14708:3;14619:93;:::i;:::-;14737:2;14732:3;14728:12;14721:19;;14380:366;;;:::o;14752:419::-;14918:4;14956:2;14945:9;14941:18;14933:26;;15005:9;14999:4;14995:20;14991:1;14980:9;14976:17;14969:47;15033:131;15159:4;15033:131;:::i;:::-;15025:139;;14752:419;;;:::o;15177:223::-;15317:34;15313:1;15305:6;15301:14;15294:58;15386:6;15381:2;15373:6;15369:15;15362:31;15177:223;:::o;15406:366::-;15548:3;15569:67;15633:2;15628:3;15569:67;:::i;:::-;15562:74;;15645:93;15734:3;15645:93;:::i;:::-;15763:2;15758:3;15754:12;15747:19;;15406:366;;;:::o;15778:419::-;15944:4;15982:2;15971:9;15967:18;15959:26;;16031:9;16025:4;16021:20;16017:1;16006:9;16002:17;15995:47;16059:131;16185:4;16059:131;:::i;:::-;16051:139;;15778:419;;;:::o;16203:221::-;16343:34;16339:1;16331:6;16327:14;16320:58;16412:4;16407:2;16399:6;16395:15;16388:29;16203:221;:::o;16430:366::-;16572:3;16593:67;16657:2;16652:3;16593:67;:::i;:::-;16586:74;;16669:93;16758:3;16669:93;:::i;:::-;16787:2;16782:3;16778:12;16771:19;;16430:366;;;:::o;16802:419::-;16968:4;17006:2;16995:9;16991:18;16983:26;;17055:9;17049:4;17045:20;17041:1;17030:9;17026:17;17019:47;17083:131;17209:4;17083:131;:::i;:::-;17075:139;;16802:419;;;:::o;17227:179::-;17367:31;17363:1;17355:6;17351:14;17344:55;17227:179;:::o;17412:366::-;17554:3;17575:67;17639:2;17634:3;17575:67;:::i;:::-;17568:74;;17651:93;17740:3;17651:93;:::i;:::-;17769:2;17764:3;17760:12;17753:19;;17412:366;;;:::o;17784:419::-;17950:4;17988:2;17977:9;17973:18;17965:26;;18037:9;18031:4;18027:20;18023:1;18012:9;18008:17;18001:47;18065:131;18191:4;18065:131;:::i;:::-;18057:139;;17784:419;;;:::o;18209:224::-;18349:34;18345:1;18337:6;18333:14;18326:58;18418:7;18413:2;18405:6;18401:15;18394:32;18209:224;:::o;18439:366::-;18581:3;18602:67;18666:2;18661:3;18602:67;:::i;:::-;18595:74;;18678:93;18767:3;18678:93;:::i;:::-;18796:2;18791:3;18787:12;18780:19;;18439:366;;;:::o;18811:419::-;18977:4;19015:2;19004:9;19000:18;18992:26;;19064:9;19058:4;19054:20;19050:1;19039:9;19035:17;19028:47;19092:131;19218:4;19092:131;:::i;:::-;19084:139;;18811:419;;;:::o;19236:222::-;19376:34;19372:1;19364:6;19360:14;19353:58;19445:5;19440:2;19432:6;19428:15;19421:30;19236:222;:::o;19464:366::-;19606:3;19627:67;19691:2;19686:3;19627:67;:::i;:::-;19620:74;;19703:93;19792:3;19703:93;:::i;:::-;19821:2;19816:3;19812:12;19805:19;;19464:366;;;:::o;19836:419::-;20002:4;20040:2;20029:9;20025:18;20017:26;;20089:9;20083:4;20079:20;20075:1;20064:9;20060:17;20053:47;20117:131;20243:4;20117:131;:::i;:::-;20109:139;;19836:419;;;:::o;20261:172::-;20401:24;20397:1;20389:6;20385:14;20378:48;20261:172;:::o;20439:366::-;20581:3;20602:67;20666:2;20661:3;20602:67;:::i;:::-;20595:74;;20678:93;20767:3;20678:93;:::i;:::-;20796:2;20791:3;20787:12;20780:19;;20439:366;;;:::o;20811:419::-;20977:4;21015:2;21004:9;21000:18;20992:26;;21064:9;21058:4;21054:20;21050:1;21039:9;21035:17;21028:47;21092:131;21218:4;21092:131;:::i;:::-;21084:139;;20811:419;;;:::o;21236:240::-;21376:34;21372:1;21364:6;21360:14;21353:58;21445:23;21440:2;21432:6;21428:15;21421:48;21236:240;:::o;21482:366::-;21624:3;21645:67;21709:2;21704:3;21645:67;:::i;:::-;21638:74;;21721:93;21810:3;21721:93;:::i;:::-;21839:2;21834:3;21830:12;21823:19;;21482:366;;;:::o;21854:419::-;22020:4;22058:2;22047:9;22043:18;22035:26;;22107:9;22101:4;22097:20;22093:1;22082:9;22078:17;22071:47;22135:131;22261:4;22135:131;:::i;:::-;22127:139;;21854:419;;;:::o;22279:169::-;22419:21;22415:1;22407:6;22403:14;22396:45;22279:169;:::o;22454:366::-;22596:3;22617:67;22681:2;22676:3;22617:67;:::i;:::-;22610:74;;22693:93;22782:3;22693:93;:::i;:::-;22811:2;22806:3;22802:12;22795:19;;22454:366;;;:::o;22826:419::-;22992:4;23030:2;23019:9;23015:18;23007:26;;23079:9;23073:4;23069:20;23065:1;23054:9;23050:17;23043:47;23107:131;23233:4;23107:131;:::i;:::-;23099:139;;22826:419;;;:::o;23251:241::-;23391:34;23387:1;23379:6;23375:14;23368:58;23460:24;23455:2;23447:6;23443:15;23436:49;23251:241;:::o;23498:366::-;23640:3;23661:67;23725:2;23720:3;23661:67;:::i;:::-;23654:74;;23737:93;23826:3;23737:93;:::i;:::-;23855:2;23850:3;23846:12;23839:19;;23498:366;;;:::o;23870:419::-;24036:4;24074:2;24063:9;24059:18;24051:26;;24123:9;24117:4;24113:20;24109:1;24098:9;24094:17;24087:47;24151:131;24277:4;24151:131;:::i;:::-;24143:139;;23870:419;;;:::o;24295:194::-;24335:4;24355:20;24373:1;24355:20;:::i;:::-;24350:25;;24389:20;24407:1;24389:20;:::i;:::-;24384:25;;24433:1;24430;24426:9;24418:17;;24457:1;24451:4;24448:11;24445:37;;;24462:18;;:::i;:::-;24445:37;24295:194;;;;:::o;24495:220::-;24635:34;24631:1;24623:6;24619:14;24612:58;24704:3;24699:2;24691:6;24687:15;24680:28;24495:220;:::o;24721:366::-;24863:3;24884:67;24948:2;24943:3;24884:67;:::i;:::-;24877:74;;24960:93;25049:3;24960:93;:::i;:::-;25078:2;25073:3;25069:12;25062:19;;24721:366;;;:::o;25093:419::-;25259:4;25297:2;25286:9;25282:18;25274:26;;25346:9;25340:4;25336:20;25332:1;25321:9;25317:17;25310:47;25374:131;25500:4;25374:131;:::i;:::-;25366:139;;25093:419;;;:::o;25518:221::-;25658:34;25654:1;25646:6;25642:14;25635:58;25727:4;25722:2;25714:6;25710:15;25703:29;25518:221;:::o;25745:366::-;25887:3;25908:67;25972:2;25967:3;25908:67;:::i;:::-;25901:74;;25984:93;26073:3;25984:93;:::i;:::-;26102:2;26097:3;26093:12;26086:19;;25745:366;;;:::o;26117:419::-;26283:4;26321:2;26310:9;26306:18;26298:26;;26370:9;26364:4;26360:20;26356:1;26345:9;26341:17;26334:47;26398:131;26524:4;26398:131;:::i;:::-;26390:139;;26117:419;;;:::o;26542:182::-;26682:34;26678:1;26670:6;26666:14;26659:58;26542:182;:::o;26730:366::-;26872:3;26893:67;26957:2;26952:3;26893:67;:::i;:::-;26886:74;;26969:93;27058:3;26969:93;:::i;:::-;27087:2;27082:3;27078:12;27071:19;;26730:366;;;:::o;27102:419::-;27268:4;27306:2;27295:9;27291:18;27283:26;;27355:9;27349:4;27345:20;27341:1;27330:9;27326:17;27319:47;27383:131;27509:4;27383:131;:::i;:::-;27375:139;;27102:419;;;:::o;27527:180::-;27575:77;27572:1;27565:88;27672:4;27669:1;27662:15;27696:4;27693:1;27686:15;27713:180;27761:77;27758:1;27751:88;27858:4;27855:1;27848:15;27882:4;27879:1;27872:15;27899:143;27956:5;27987:6;27981:13;27972:22;;28003:33;28030:5;28003:33;:::i;:::-;27899:143;;;;:::o;28048:351::-;28118:6;28167:2;28155:9;28146:7;28142:23;28138:32;28135:119;;;28173:79;;:::i;:::-;28135:119;28293:1;28318:64;28374:7;28365:6;28354:9;28350:22;28318:64;:::i;:::-;28308:74;;28264:128;28048:351;;;;:::o;28405:85::-;28450:7;28479:5;28468:16;;28405:85;;;:::o;28496:158::-;28554:9;28587:61;28605:42;28614:32;28640:5;28614:32;:::i;:::-;28605:42;:::i;:::-;28587:61;:::i;:::-;28574:74;;28496:158;;;:::o;28660:147::-;28755:45;28794:5;28755:45;:::i;:::-;28750:3;28743:58;28660:147;;:::o;28813:114::-;28880:6;28914:5;28908:12;28898:22;;28813:114;;;:::o;28933:184::-;29032:11;29066:6;29061:3;29054:19;29106:4;29101:3;29097:14;29082:29;;28933:184;;;;:::o;29123:132::-;29190:4;29213:3;29205:11;;29243:4;29238:3;29234:14;29226:22;;29123:132;;;:::o;29261:108::-;29338:24;29356:5;29338:24;:::i;:::-;29333:3;29326:37;29261:108;;:::o;29375:179::-;29444:10;29465:46;29507:3;29499:6;29465:46;:::i;:::-;29543:4;29538:3;29534:14;29520:28;;29375:179;;;;:::o;29560:113::-;29630:4;29662;29657:3;29653:14;29645:22;;29560:113;;;:::o;29709:732::-;29828:3;29857:54;29905:5;29857:54;:::i;:::-;29927:86;30006:6;30001:3;29927:86;:::i;:::-;29920:93;;30037:56;30087:5;30037:56;:::i;:::-;30116:7;30147:1;30132:284;30157:6;30154:1;30151:13;30132:284;;;30233:6;30227:13;30260:63;30319:3;30304:13;30260:63;:::i;:::-;30253:70;;30346:60;30399:6;30346:60;:::i;:::-;30336:70;;30192:224;30179:1;30176;30172:9;30167:14;;30132:284;;;30136:14;30432:3;30425:10;;29833:608;;;29709:732;;;;:::o;30447:831::-;30710:4;30748:3;30737:9;30733:19;30725:27;;30762:71;30830:1;30819:9;30815:17;30806:6;30762:71;:::i;:::-;30843:80;30919:2;30908:9;30904:18;30895:6;30843:80;:::i;:::-;30970:9;30964:4;30960:20;30955:2;30944:9;30940:18;30933:48;30998:108;31101:4;31092:6;30998:108;:::i;:::-;30990:116;;31116:72;31184:2;31173:9;31169:18;31160:6;31116:72;:::i;:::-;31198:73;31266:3;31255:9;31251:19;31242:6;31198:73;:::i;:::-;30447:831;;;;;;;;:::o;31284:225::-;31424:34;31420:1;31412:6;31408:14;31401:58;31493:8;31488:2;31480:6;31476:15;31469:33;31284:225;:::o;31515:366::-;31657:3;31678:67;31742:2;31737:3;31678:67;:::i;:::-;31671:74;;31754:93;31843:3;31754:93;:::i;:::-;31872:2;31867:3;31863:12;31856:19;;31515:366;;;:::o;31887:419::-;32053:4;32091:2;32080:9;32076:18;32068:26;;32140:9;32134:4;32130:20;32126:1;32115:9;32111:17;32104:47;32168:131;32294:4;32168:131;:::i;:::-;32160:139;;31887:419;;;:::o

Swarm Source

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