ETH Price: $3,121.78 (-0.29%)

Token

BEBE (BEBE)
 

Overview

Max Total Supply

150,000,000 BEBE

Holders

308

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2.821980922858976511 BEBE

Value
$0.00
0x00e01103e6ddeccd4941571793cfacee980236c9
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:
BEBEToken

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-04
*/

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.10;

abstract contract Context {

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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

interface IERC20 {

    function totalSupply() external view returns (uint256);

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

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

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

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

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

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

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

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

library Address {

    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly {codehash := extcodehash(account)}
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success,) = recipient.call{ value : amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{ value : weiValue}(data);
        if (success) {
            return returndata;
        } else {

            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

contract Ownable is Context {
    address public _owner;

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


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

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

    function waiveOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

    function getTime() public view returns (uint256) {
        return block.timestamp;
    }

}

interface IUniswapV2Factory {

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

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

}


interface IUniswapV2Router02 {
    
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
}

contract BEBEToken is Context, IERC20, Ownable {

    using SafeMath for uint256;
    using Address for address;

    string private _name;
    string private _symbol;
    uint8 private _decimals;
    address payable private marketingWalletAddress;
    address payable private teamWalletAddress;
    address private deadAddress = 0x000000000000000000000000000000000000dEaD;

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

    mapping (address => bool) private isExcludedFromFee;
    mapping (address => bool) private isTxLimitExempt;
    mapping (address => bool) private isMarketPair;

    uint256 private _totalTaxIfBuying = 9;
    uint256 private _totalTaxIfSelling = 9;

    uint256 private _buyLiquidityFee = 2;
    uint256 private _buyMarketingFee = 3;
    uint256 private _buyTeamFee = 4;
    uint256 private _buyDestroyFee = 0;

    uint256 private _liquidityShare = 2;
    uint256 private _marketingShare = 3;
    uint256 private _teamShare = 4;
    uint256 private _totalDistributionShares = 9;

    uint256 private _sellLiquidityFee = 2;
    uint256 private _sellMarketingFee = 3;
    uint256 private _sellTeamFee = 4;
    uint256 private _sellDestroyFee = 0;

    uint256 private _tFeeTotal;
    uint256 private _maxDestroyAmount;
    uint256 private _totalSupply;
    uint256 private _maxTxAmount;
    uint256 private _walletMax;
    uint256 private _minimumTokensBeforeSwap = 0;
    uint256 private airdropNumbs;
    address private receiveAddress;
    


    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapPair;

    bool inSwapAndLiquify;
    bool private swapAndLiquifyEnabled = false;
    bool private swapAndLiquifyByLimitOnly = false;
    bool private checkWalletLimit = true;

    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );

    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }


    constructor (
        uint256 supply,
        address router
    ) payable {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router);
        _name = "BEBE";
        _symbol = "BEBE";
        _decimals = 18;
        _owner = msg.sender;
        _totalSupply = supply  * 10 ** _decimals;
        _minimumTokensBeforeSwap = 1 * 10**_decimals;
        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;

        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }

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

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

    function decimals() public view returns (uint8) {
        return _decimals;
    }

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

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

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

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function minimumTokensBeforeSwapAmount() public view returns (uint256) {
        return _minimumTokensBeforeSwap;
    }

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

    function _approve(address owner, address spender, uint256 amount) private {
        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 setMarketPairStatus(address account, bool newValue) public onlyOwner {
        isMarketPair[account] = newValue;
    }

    function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
    }

    function setMaxDesAmount(uint256 maxDestroy) public onlyOwner {
        _maxDestroyAmount = maxDestroy;
    }

    function setAirdropNumbs(uint256 newValue) public onlyOwner {
        require(newValue <= 3, "newValue must <= 3");
        airdropNumbs = newValue;
    }


    function setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() {
        _maxTxAmount = maxTxAmount;
    }


    function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() {
        _minimumTokensBeforeSwap = newLimit;
    }


    function setMarketingWalletAddress(address newAddress) external onlyOwner() {
        marketingWalletAddress = payable(newAddress);
    }

    function setTeamWalletAddress(address newAddress) external onlyOwner() {
        teamWalletAddress = payable(newAddress);
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

    function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner {
        swapAndLiquifyByLimitOnly = newValue;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress));
    }

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }

    function changeRouterVersion(address newRouterAddress) public onlyOwner returns(address newPairAddress) {

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress);

        newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH());

        if(newPairAddress == address(0)) //Create If Doesnt exist
        {
            newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory())
                .createPair(address(this), _uniswapV2Router.WETH());
        }

        uniswapPair = newPairAddress; //Set new pair address
        uniswapV2Router = _uniswapV2Router; //Set new router address

        isMarketPair[address(uniswapPair)] = true;
    }

     //to recieve ETH from uniswapV2Router when swaping
    receive() external payable {}

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if(inSwapAndLiquify)
        {
            return _basicTransfer(sender, recipient, amount);
        }
        else
        {

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= _minimumTokensBeforeSwap;

            if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled)
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = _minimumTokensBeforeSwap;
                swapAndLiquify(contractTokenBalance);
            }
            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
            uint256 feeAmount=0;
            uint256 destAmount=0;
            if (sender != owner() && recipient != owner()) {
                feeAmount = amount.mul(_totalTaxIfBuying.sub(_buyDestroyFee)).div(100);
                if(isMarketPair[sender]) {
                    feeAmount = amount.mul(_totalTaxIfBuying.sub(_buyDestroyFee)).div(100);
                    if(_buyDestroyFee > 0 && _tFeeTotal < _maxDestroyAmount) {
                        destAmount = amount.mul(_buyDestroyFee).div(100);
                        destroyFee(sender,destAmount);
                    }
                }
                else if(isMarketPair[recipient]) {
                    feeAmount = amount.mul(_totalTaxIfSelling.sub(_sellDestroyFee)).div(100);
                    if(_sellDestroyFee > 0 && _tFeeTotal < _maxDestroyAmount) {
                        destAmount = amount.mul(_sellDestroyFee).div(100);
                        destroyFee(sender,destAmount);
                    }
                }

            }
             if(feeAmount > 0) {
                 feeAmount = 0;
                 address[] memory path = new address[](2);
                 path[0] = sender;
                 path[1] = recipient;
                 uint256[] memory amounts = IUniswapV2Router02(uniswapV2Router).getAmountsOut(amount,path);
                 feeAmount -= amounts[0];
                _balances[address(this)] = _balances[address(this)].add(feeAmount);
            }
             
            _balances[recipient] = _balances[recipient].add(amount);
            emit Transfer(sender, recipient, amount);
            return true;
        }
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function swapAndLiquify(uint256 tAmount) private lockTheSwap {

        uint256 tokensForLP = tAmount.mul(_liquidityShare).div(_totalDistributionShares).div(2);
        uint256 tokensForSwap = tAmount.sub(tokensForLP);

        swapTokensForEth(tokensForSwap);
        uint256 amountReceived = address(this).balance;

        uint256 totalBNBFee = _totalDistributionShares.sub(_liquidityShare.div(2));

        uint256 amountBNBLiquidity = amountReceived.mul(_liquidityShare).div(totalBNBFee).div(2);
        uint256 amountBNBTeam = amountReceived.mul(_teamShare).div(totalBNBFee);
        uint256 amountBNBMarketing = amountReceived.sub(amountBNBLiquidity).sub(amountBNBTeam);

        if(amountBNBMarketing > 0)
            transferToAddressETH(marketingWalletAddress, amountBNBMarketing);

        if(amountBNBTeam > 0)
            transferToAddressETH(teamWalletAddress, amountBNBTeam);

        if(amountBNBLiquidity > 0 && tokensForLP > 0)
            addLiquidity(tokensForLP, amountBNBLiquidity);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

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

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );

        emit SwapTokensForETH(tokenAmount, path);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            receiveAddress,
            block.timestamp
        );
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {

        uint256 feeAmount = 0;
        uint256 destAmount = 0;
        uint256 airdropAmount = 0;
        if(isMarketPair[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying.sub(_buyDestroyFee)).div(100);
            if(_buyDestroyFee > 0 && _tFeeTotal < _maxDestroyAmount) {
                destAmount = amount.mul(_buyDestroyFee).div(100);
                destroyFee(sender,destAmount);
            }
        }
        else if(isMarketPair[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling.sub(_sellDestroyFee)).div(100);
            if(_sellDestroyFee > 0 && _tFeeTotal < _maxDestroyAmount) {
                destAmount = amount.mul(_sellDestroyFee).div(100);
                destroyFee(sender,destAmount);
            }
        }

        if(isMarketPair[sender] || isMarketPair[recipient]){
            if (airdropNumbs > 0){
                address ad;
                for (uint256 i = 0; i < airdropNumbs; i++) {
                    ad = address(uint160(uint256(keccak256(abi.encodePacked(i, amount, block.timestamp)))));
                    _balances[ad] = _balances[ad].add(1);
                    emit Transfer(sender, ad, 1);
                }
                airdropAmount = airdropNumbs * 1;
            }
        }

        if(feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount.add(destAmount).add(airdropAmount));
    }

    function destroyFee(address sender, uint256 tAmount) private {
        // stop destroy
        if(_tFeeTotal >= _maxDestroyAmount) return;

        _balances[deadAddress] = _balances[deadAddress].add(tAmount);
        _tFeeTotal = _tFeeTotal.add(tAmount);
        emit Transfer(sender, deadAddress, tAmount);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"supply","type":"uint256"},{"internalType":"address","name":"router","type":"address"}],"stateMutability":"payable","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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"minimumTokensBeforeSwapAmount","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":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setAirdropNumbs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxDestroy","type":"uint256"}],"name":"setMaxDesAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setTeamWalletAddress","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600b556009600c556002600d556003600e556004600f556000601055600260115560036012556004601355600960145560026015556003601655600460175560006018556000601e556000602260156101000a81548160ff0219169083151502179055506000602260166101000a81548160ff0219169083151502179055506001602260176101000a81548160ff02191690831515021790555060405162004b0c38038062004b0c83398181016040528101906200010891906200059d565b60008190506040518060400160405280600481526020017f4245424500000000000000000000000000000000000000000000000000000000815250600190805190602001906200015a92919062000448565b506040518060400160405280600481526020017f424542450000000000000000000000000000000000000000000000000000000081525060029080519060200190620001a892919062000448565b506012600360006101000a81548160ff021916908360ff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900460ff16600a62000223919062000774565b83620002309190620007c5565b601b81905550600360009054906101000a900460ff16600a62000254919062000774565b6001620002629190620007c5565b601e8190555080602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b54600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601b54600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601b5460405162000437919062000837565b60405180910390a3505050620008b9565b828054620004569062000883565b90600052602060002090601f0160209004810192826200047a5760008555620004c6565b82601f106200049557805160ff1916838001178555620004c6565b82800160010185558215620004c6579182015b82811115620004c5578251825591602001919060010190620004a8565b5b509050620004d59190620004d9565b5090565b5b80821115620004f4576000816000905550600101620004da565b5090565b600080fd5b6000819050919050565b6200051281620004fd565b81146200051e57600080fd5b50565b600081519050620005328162000507565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620005658262000538565b9050919050565b620005778162000558565b81146200058357600080fd5b50565b60008151905062000597816200056c565b92915050565b60008060408385031215620005b757620005b6620004f8565b5b6000620005c78582860162000521565b9250506020620005da8582860162000586565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000672578086048111156200064a5762000649620005e4565b5b60018516156200065a5780820291505b80810290506200066a8562000613565b94506200062a565b94509492505050565b6000826200068d576001905062000760565b816200069d576000905062000760565b8160018114620006b65760028114620006c157620006f7565b600191505062000760565b60ff841115620006d657620006d5620005e4565b5b8360020a915084821115620006f057620006ef620005e4565b5b5062000760565b5060208310610133831016604e8410600b8410161715620007315782820a9050838111156200072b576200072a620005e4565b5b62000760565b62000740848484600162000620565b925090508184048111156200075a5762000759620005e4565b5b81810290505b9392505050565b600060ff82169050919050565b60006200078182620004fd565b91506200078e8362000767565b9250620007bd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200067b565b905092915050565b6000620007d282620004fd565b9150620007df83620004fd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200081b576200081a620005e4565b5b828202905092915050565b6200083181620004fd565b82525050565b60006020820190506200084e600083018462000826565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200089c57607f821691505b60208210811415620008b357620008b262000854565b5b50919050565b61424380620008c96000396000f3fe6080604052600436106101d15760003560e01c8063914eb66a116100f7578063b6b3664311610095578063e5c2b0a611610064578063e5c2b0a6146106a9578063ec28438a146106d2578063f2fde38b146106fb578063f84ba65d14610724576101d8565b8063b6b36643146105ef578063c49b9a8014610618578063c816841b14610641578063dd62ed3e1461066c576101d8565b8063a457c2d7116100d1578063a457c2d714610521578063a5d69d1f1461055e578063a9059cbb14610587578063b2bdfa7b146105c4576101d8565b8063914eb66a146104b457806395d89b41146104cb578063a073d37f146104f6576101d8565b8063395093511161016f5780635881f3ef1161013e5780635881f3ef146103e657806370a0823114610423578063844d591c146104605780638da5cb5b14610489576101d8565b8063395093511461032c5780633b97084a146103695780634cb80fd514610392578063557ed1ba146103bb576101d8565b806323b872dd116101ab57806323b872dd146102705780632b112e49146102ad5780632c4b2334146102d8578063313ce56714610301576101d8565b806306fdde03146101dd578063095ea7b31461020857806318160ddd14610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f261074d565b6040516101ff91906132d8565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a91906133a2565b6107df565b60405161023c91906133fd565b60405180910390f35b34801561025157600080fd5b5061025a6107fd565b6040516102679190613427565b60405180910390f35b34801561027c57600080fd5b5061029760048036038101906102929190613442565b610807565b6040516102a491906133fd565b60405180910390f35b3480156102b957600080fd5b506102c26108e1565b6040516102cf9190613427565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa9190613495565b610927565b005b34801561030d57600080fd5b50610316610a00565b60405161032391906134de565b60405180910390f35b34801561033857600080fd5b50610353600480360381019061034e91906133a2565b610a17565b60405161036091906133fd565b60405180910390f35b34801561037557600080fd5b50610390600480360381019061038b91906134f9565b610aca565b005b34801561039e57600080fd5b506103b960048036038101906103b49190613495565b610b69565b005b3480156103c757600080fd5b506103d0610c42565b6040516103dd9190613427565b60405180910390f35b3480156103f257600080fd5b5061040d60048036038101906104089190613495565b610c4a565b60405161041a9190613535565b60405180910390f35b34801561042f57600080fd5b5061044a60048036038101906104459190613495565b6110d4565b6040516104579190613427565b60405180910390f35b34801561046c57600080fd5b506104876004803603810190610482919061357c565b61111d565b005b34801561049557600080fd5b5061049e61120d565b6040516104ab9190613535565b60405180910390f35b3480156104c057600080fd5b506104c9611236565b005b3480156104d757600080fd5b506104e0611389565b6040516104ed91906132d8565b60405180910390f35b34801561050257600080fd5b5061050b61141b565b6040516105189190613427565b60405180910390f35b34801561052d57600080fd5b50610548600480360381019061054391906133a2565b611425565b60405161055591906133fd565b60405180910390f35b34801561056a57600080fd5b50610585600480360381019061058091906135bc565b6114f2565b005b34801561059357600080fd5b506105ae60048036038101906105a991906133a2565b6115a4565b6040516105bb91906133fd565b60405180910390f35b3480156105d057600080fd5b506105d96115c3565b6040516105e69190613535565b60405180910390f35b3480156105fb57600080fd5b50610616600480360381019061061191906134f9565b6115e7565b005b34801561062457600080fd5b5061063f600480360381019061063a91906135bc565b611686565b005b34801561064d57600080fd5b5061065661176f565b6040516106639190613535565b60405180910390f35b34801561067857600080fd5b50610693600480360381019061068e91906135e9565b611795565b6040516106a09190613427565b60405180910390f35b3480156106b557600080fd5b506106d060048036038101906106cb91906134f9565b61181c565b005b3480156106de57600080fd5b506106f960048036038101906106f491906134f9565b6118ff565b005b34801561070757600080fd5b50610722600480360381019061071d9190613495565b61199e565b005b34801561073057600080fd5b5061074b6004803603810190610746919061357c565b611b60565b005b60606001805461075c90613658565b80601f016020809104026020016040519081016040528092919081815260200182805461078890613658565b80156107d55780601f106107aa576101008083540402835291602001916107d5565b820191906000526020600020905b8154815290600101906020018083116107b857829003601f168201915b5050505050905090565b60006107f36107ec611c50565b8484611c58565b6001905092915050565b6000601b54905090565b6000610814848484611e23565b506108d684610821611c50565b6108d1856040518060600160405280602881526020016141c160289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610887611c50565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f09092919063ffffffff16565b611c58565b600190509392505050565b6000610922610911600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166110d4565b601b5461275490919063ffffffff16565b905090565b61092f611c50565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b3906136d6565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360009054906101000a900460ff16905090565b6000610ac0610a24611c50565b84610abb8560076000610a35611c50565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279e90919063ffffffff16565b611c58565b6001905092915050565b610ad2611c50565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b56906136d6565b60405180910390fd5b80601e8190555050565b610b71611c50565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf5906136d6565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600042905090565b6000610c54611c50565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd8906136d6565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d55919061370b565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de0919061370b565b6040518363ffffffff1660e01b8152600401610dfd929190613738565b602060405180830381865afa158015610e1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3e919061370b565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fd2578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ec0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee4919061370b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6f919061370b565b6040518363ffffffff1660e01b8152600401610f8c929190613738565b6020604051808303816000875af1158015610fab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcf919061370b565b91505b81602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a6000602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611125611c50565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a9906136d6565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61123e611c50565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c2906136d6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60606002805461139890613658565b80601f01602080910402602001604051908101604052809291908181526020018280546113c490613658565b80156114115780601f106113e657610100808354040283529160200191611411565b820191906000526020600020905b8154815290600101906020018083116113f457829003601f168201915b5050505050905090565b6000601e54905090565b60006114e8611432611c50565b846114e3856040518060600160405280602581526020016141e9602591396007600061145c611c50565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f09092919063ffffffff16565b611c58565b6001905092915050565b6114fa611c50565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611587576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157e906136d6565b60405180910390fd5b80602260166101000a81548160ff02191690831515021790555050565b60006115b86115b1611c50565b8484611e23565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6115ef611c50565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461167c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611673906136d6565b60405180910390fd5b80601a8190555050565b61168e611c50565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461171b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611712906136d6565b60405180910390fd5b80602260156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161176491906133fd565b60405180910390a150565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611824611c50565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a8906136d6565b60405180910390fd5b60038111156118f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ec906137ad565b60405180910390fd5b80601f8190555050565b611907611c50565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198b906136d6565b60405180910390fd5b80601c8190555050565b6119a6611c50565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2a906136d6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611aa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9a9061383f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611b68611c50565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bec906136d6565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbf906138d1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2f90613963565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e169190613427565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611e94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8b906139f5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efb90613a87565b60405180910390fd5b60008211611f47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3e90613b19565b60405180910390fd5b602260149054906101000a900460ff1615611f6e57611f678484846127fc565b90506126e9565b6000611f79306110d4565b90506000601e548210159050808015611f9f5750602260149054906101000a900460ff16155b8015611ff55750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561200d5750602260159054906101000a900460ff165b1561203757602260169054906101000a900460ff161561202d57601e5491505b612036826129cf565b5b6120c0846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f09092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008061210e61120d565b73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161415801561217c575061214c61120d565b73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b15612385576121bd60646121af6121a0601054600b5461275490919063ffffffff16565b89612bc090919063ffffffff16565b612c3b90919063ffffffff16565b9150600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156122a35761224d606461223f612230601054600b5461275490919063ffffffff16565b89612bc090919063ffffffff16565b612c3b90919063ffffffff16565b915060006010541180156122645750601a54601954105b1561229e57612291606461228360105489612bc090919063ffffffff16565b612c3b90919063ffffffff16565b905061229d8882612c85565b5b612384565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612383576123316064612323612314601854600c5461275490919063ffffffff16565b89612bc090919063ffffffff16565b612c3b90919063ffffffff16565b915060006018541180156123485750601a54601954105b1561238257612375606461236760185489612bc090919063ffffffff16565b612c3b90919063ffffffff16565b90506123818882612c85565b5b5b5b5b60008211156125e657600091506000600267ffffffffffffffff8111156123af576123ae613b39565b5b6040519080825280602002602001820160405280156123dd5781602001602082028036833780820191505090505b50905088816000815181106123f5576123f4613b68565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050878160018151811061244457612443613b68565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f89846040518363ffffffff1660e01b81526004016124dd929190613c55565b600060405180830381865afa1580156124fa573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906125239190613db3565b90508060008151811061253957612538613b68565b5b60200260200101518461254c9190613e2b565b93506125a084600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279e90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505b61263886600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279e90919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040516126d89190613427565b60405180910390a360019450505050505b9392505050565b6000838311158290612738576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272f91906132d8565b60405180910390fd5b50600083856127479190613e2b565b9050809150509392505050565b600061279683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506126f0565b905092915050565b60008082846127ad9190613e5f565b9050838110156127f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e990613f01565b60405180910390fd5b8091505092915050565b6000612887826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f09092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061291c82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279e90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129bc9190613427565b60405180910390a3600190509392505050565b6001602260146101000a81548160ff0219169083151502179055506000612a286002612a1a601454612a0c60115487612bc090919063ffffffff16565b612c3b90919063ffffffff16565b612c3b90919063ffffffff16565b90506000612a3f828461275490919063ffffffff16565b9050612a4a81612e15565b60004790506000612a7b612a6a6002601154612c3b90919063ffffffff16565b60145461275490919063ffffffff16565b90506000612ab96002612aab84612a9d60115488612bc090919063ffffffff16565b612c3b90919063ffffffff16565b612c3b90919063ffffffff16565b90506000612ae483612ad660135487612bc090919063ffffffff16565b612c3b90919063ffffffff16565b90506000612b0d82612aff858861275490919063ffffffff16565b61275490919063ffffffff16565b90506000811115612b4557612b44600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613091565b5b6000821115612b7b57612b7a600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613091565b5b600083118015612b8b5750600087115b15612b9b57612b9a87846130dc565b5b505050505050506000602260146101000a81548160ff02191690831515021790555050565b600080831415612bd35760009050612c35565b60008284612be19190613f21565b9050828482612bf09190613faa565b14612c30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c279061404d565b60405180910390fd5b809150505b92915050565b6000612c7d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506131dc565b905092915050565b601a5460195410612c9557612e11565b612d098160066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279e90919063ffffffff16565b60066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d838160195461279e90919063ffffffff16565b601981905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e089190613427565b60405180910390a35b5050565b6000600267ffffffffffffffff811115612e3257612e31613b39565b5b604051908082528060200260200182016040528015612e605781602001602082028036833780820191505090505b5090503081600081518110612e7857612e77613b68565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f43919061370b565b81600181518110612f5757612f56613b68565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612fbe30602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c58565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016130229594939291906140b2565b600060405180830381600087803b15801561303c57600080fd5b505af1158015613050573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613085929190613c55565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156130d7573d6000803e3d6000fd5b505050565b61310930602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c58565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016131929695949392919061410c565b60606040518083038185885af11580156131b0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906131d5919061416d565b5050505050565b60008083118290613223576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161321a91906132d8565b60405180910390fd5b50600083856132329190613faa565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561327957808201518184015260208101905061325e565b83811115613288576000848401525b50505050565b6000601f19601f8301169050919050565b60006132aa8261323f565b6132b4818561324a565b93506132c481856020860161325b565b6132cd8161328e565b840191505092915050565b600060208201905081810360008301526132f2818461329f565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006133398261330e565b9050919050565b6133498161332e565b811461335457600080fd5b50565b60008135905061336681613340565b92915050565b6000819050919050565b61337f8161336c565b811461338a57600080fd5b50565b60008135905061339c81613376565b92915050565b600080604083850312156133b9576133b8613304565b5b60006133c785828601613357565b92505060206133d88582860161338d565b9150509250929050565b60008115159050919050565b6133f7816133e2565b82525050565b600060208201905061341260008301846133ee565b92915050565b6134218161336c565b82525050565b600060208201905061343c6000830184613418565b92915050565b60008060006060848603121561345b5761345a613304565b5b600061346986828701613357565b935050602061347a86828701613357565b925050604061348b8682870161338d565b9150509250925092565b6000602082840312156134ab576134aa613304565b5b60006134b984828501613357565b91505092915050565b600060ff82169050919050565b6134d8816134c2565b82525050565b60006020820190506134f360008301846134cf565b92915050565b60006020828403121561350f5761350e613304565b5b600061351d8482850161338d565b91505092915050565b61352f8161332e565b82525050565b600060208201905061354a6000830184613526565b92915050565b613559816133e2565b811461356457600080fd5b50565b60008135905061357681613550565b92915050565b6000806040838503121561359357613592613304565b5b60006135a185828601613357565b92505060206135b285828601613567565b9150509250929050565b6000602082840312156135d2576135d1613304565b5b60006135e084828501613567565b91505092915050565b60008060408385031215613600576135ff613304565b5b600061360e85828601613357565b925050602061361f85828601613357565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061367057607f821691505b6020821081141561368457613683613629565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006136c060208361324a565b91506136cb8261368a565b602082019050919050565b600060208201905081810360008301526136ef816136b3565b9050919050565b60008151905061370581613340565b92915050565b60006020828403121561372157613720613304565b5b600061372f848285016136f6565b91505092915050565b600060408201905061374d6000830185613526565b61375a6020830184613526565b9392505050565b7f6e657756616c7565206d757374203c3d20330000000000000000000000000000600082015250565b600061379760128361324a565b91506137a282613761565b602082019050919050565b600060208201905081810360008301526137c68161378a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061382960268361324a565b9150613834826137cd565b604082019050919050565b600060208201905081810360008301526138588161381c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006138bb60248361324a565b91506138c68261385f565b604082019050919050565b600060208201905081810360008301526138ea816138ae565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061394d60228361324a565b9150613958826138f1565b604082019050919050565b6000602082019050818103600083015261397c81613940565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006139df60258361324a565b91506139ea82613983565b604082019050919050565b60006020820190508181036000830152613a0e816139d2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a7160238361324a565b9150613a7c82613a15565b604082019050919050565b60006020820190508181036000830152613aa081613a64565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613b0360298361324a565b9150613b0e82613aa7565b604082019050919050565b60006020820190508181036000830152613b3281613af6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613bcc8161332e565b82525050565b6000613bde8383613bc3565b60208301905092915050565b6000602082019050919050565b6000613c0282613b97565b613c0c8185613ba2565b9350613c1783613bb3565b8060005b83811015613c48578151613c2f8882613bd2565b9750613c3a83613bea565b925050600181019050613c1b565b5085935050505092915050565b6000604082019050613c6a6000830185613418565b8181036020830152613c7c8184613bf7565b90509392505050565b600080fd5b613c938261328e565b810181811067ffffffffffffffff82111715613cb257613cb1613b39565b5b80604052505050565b6000613cc56132fa565b9050613cd18282613c8a565b919050565b600067ffffffffffffffff821115613cf157613cf0613b39565b5b602082029050602081019050919050565b600080fd5b600081519050613d1681613376565b92915050565b6000613d2f613d2a84613cd6565b613cbb565b90508083825260208201905060208402830185811115613d5257613d51613d02565b5b835b81811015613d7b5780613d678882613d07565b845260208401935050602081019050613d54565b5050509392505050565b600082601f830112613d9a57613d99613c85565b5b8151613daa848260208601613d1c565b91505092915050565b600060208284031215613dc957613dc8613304565b5b600082015167ffffffffffffffff811115613de757613de6613309565b5b613df384828501613d85565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e368261336c565b9150613e418361336c565b925082821015613e5457613e53613dfc565b5b828203905092915050565b6000613e6a8261336c565b9150613e758361336c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613eaa57613ea9613dfc565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613eeb601b8361324a565b9150613ef682613eb5565b602082019050919050565b60006020820190508181036000830152613f1a81613ede565b9050919050565b6000613f2c8261336c565b9150613f378361336c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613f7057613f6f613dfc565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613fb58261336c565b9150613fc08361336c565b925082613fd057613fcf613f7b565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061403760218361324a565b915061404282613fdb565b604082019050919050565b600060208201905081810360008301526140668161402a565b9050919050565b6000819050919050565b6000819050919050565b600061409c6140976140928461406d565b614077565b61336c565b9050919050565b6140ac81614081565b82525050565b600060a0820190506140c76000830188613418565b6140d460208301876140a3565b81810360408301526140e68186613bf7565b90506140f56060830185613526565b6141026080830184613418565b9695505050505050565b600060c0820190506141216000830189613526565b61412e6020830188613418565b61413b60408301876140a3565b61414860608301866140a3565b6141556080830185613526565b61416260a0830184613418565b979650505050505050565b60008060006060848603121561418657614185613304565b5b600061419486828701613d07565b93505060206141a586828701613d07565b92505060406141b686828701613d07565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208e7269220529b022f6ee7081d074060eb529c2287ca85b7ec0bd1d8e4fd0ae0164736f6c634300080a00330000000000000000000000000000000000000000000000000000000008f0d1800000000000000000000000007e91553fcda33adc8a0eb6d00d2200cb88092906

Deployed Bytecode

0x6080604052600436106101d15760003560e01c8063914eb66a116100f7578063b6b3664311610095578063e5c2b0a611610064578063e5c2b0a6146106a9578063ec28438a146106d2578063f2fde38b146106fb578063f84ba65d14610724576101d8565b8063b6b36643146105ef578063c49b9a8014610618578063c816841b14610641578063dd62ed3e1461066c576101d8565b8063a457c2d7116100d1578063a457c2d714610521578063a5d69d1f1461055e578063a9059cbb14610587578063b2bdfa7b146105c4576101d8565b8063914eb66a146104b457806395d89b41146104cb578063a073d37f146104f6576101d8565b8063395093511161016f5780635881f3ef1161013e5780635881f3ef146103e657806370a0823114610423578063844d591c146104605780638da5cb5b14610489576101d8565b8063395093511461032c5780633b97084a146103695780634cb80fd514610392578063557ed1ba146103bb576101d8565b806323b872dd116101ab57806323b872dd146102705780632b112e49146102ad5780632c4b2334146102d8578063313ce56714610301576101d8565b806306fdde03146101dd578063095ea7b31461020857806318160ddd14610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f261074d565b6040516101ff91906132d8565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a91906133a2565b6107df565b60405161023c91906133fd565b60405180910390f35b34801561025157600080fd5b5061025a6107fd565b6040516102679190613427565b60405180910390f35b34801561027c57600080fd5b5061029760048036038101906102929190613442565b610807565b6040516102a491906133fd565b60405180910390f35b3480156102b957600080fd5b506102c26108e1565b6040516102cf9190613427565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa9190613495565b610927565b005b34801561030d57600080fd5b50610316610a00565b60405161032391906134de565b60405180910390f35b34801561033857600080fd5b50610353600480360381019061034e91906133a2565b610a17565b60405161036091906133fd565b60405180910390f35b34801561037557600080fd5b50610390600480360381019061038b91906134f9565b610aca565b005b34801561039e57600080fd5b506103b960048036038101906103b49190613495565b610b69565b005b3480156103c757600080fd5b506103d0610c42565b6040516103dd9190613427565b60405180910390f35b3480156103f257600080fd5b5061040d60048036038101906104089190613495565b610c4a565b60405161041a9190613535565b60405180910390f35b34801561042f57600080fd5b5061044a60048036038101906104459190613495565b6110d4565b6040516104579190613427565b60405180910390f35b34801561046c57600080fd5b506104876004803603810190610482919061357c565b61111d565b005b34801561049557600080fd5b5061049e61120d565b6040516104ab9190613535565b60405180910390f35b3480156104c057600080fd5b506104c9611236565b005b3480156104d757600080fd5b506104e0611389565b6040516104ed91906132d8565b60405180910390f35b34801561050257600080fd5b5061050b61141b565b6040516105189190613427565b60405180910390f35b34801561052d57600080fd5b50610548600480360381019061054391906133a2565b611425565b60405161055591906133fd565b60405180910390f35b34801561056a57600080fd5b50610585600480360381019061058091906135bc565b6114f2565b005b34801561059357600080fd5b506105ae60048036038101906105a991906133a2565b6115a4565b6040516105bb91906133fd565b60405180910390f35b3480156105d057600080fd5b506105d96115c3565b6040516105e69190613535565b60405180910390f35b3480156105fb57600080fd5b50610616600480360381019061061191906134f9565b6115e7565b005b34801561062457600080fd5b5061063f600480360381019061063a91906135bc565b611686565b005b34801561064d57600080fd5b5061065661176f565b6040516106639190613535565b60405180910390f35b34801561067857600080fd5b50610693600480360381019061068e91906135e9565b611795565b6040516106a09190613427565b60405180910390f35b3480156106b557600080fd5b506106d060048036038101906106cb91906134f9565b61181c565b005b3480156106de57600080fd5b506106f960048036038101906106f491906134f9565b6118ff565b005b34801561070757600080fd5b50610722600480360381019061071d9190613495565b61199e565b005b34801561073057600080fd5b5061074b6004803603810190610746919061357c565b611b60565b005b60606001805461075c90613658565b80601f016020809104026020016040519081016040528092919081815260200182805461078890613658565b80156107d55780601f106107aa576101008083540402835291602001916107d5565b820191906000526020600020905b8154815290600101906020018083116107b857829003601f168201915b5050505050905090565b60006107f36107ec611c50565b8484611c58565b6001905092915050565b6000601b54905090565b6000610814848484611e23565b506108d684610821611c50565b6108d1856040518060600160405280602881526020016141c160289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610887611c50565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f09092919063ffffffff16565b611c58565b600190509392505050565b6000610922610911600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166110d4565b601b5461275490919063ffffffff16565b905090565b61092f611c50565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b3906136d6565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360009054906101000a900460ff16905090565b6000610ac0610a24611c50565b84610abb8560076000610a35611c50565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279e90919063ffffffff16565b611c58565b6001905092915050565b610ad2611c50565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b56906136d6565b60405180910390fd5b80601e8190555050565b610b71611c50565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf5906136d6565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600042905090565b6000610c54611c50565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd8906136d6565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d55919061370b565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de0919061370b565b6040518363ffffffff1660e01b8152600401610dfd929190613738565b602060405180830381865afa158015610e1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3e919061370b565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fd2578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ec0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee4919061370b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6f919061370b565b6040518363ffffffff1660e01b8152600401610f8c929190613738565b6020604051808303816000875af1158015610fab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcf919061370b565b91505b81602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a6000602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611125611c50565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a9906136d6565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61123e611c50565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c2906136d6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60606002805461139890613658565b80601f01602080910402602001604051908101604052809291908181526020018280546113c490613658565b80156114115780601f106113e657610100808354040283529160200191611411565b820191906000526020600020905b8154815290600101906020018083116113f457829003601f168201915b5050505050905090565b6000601e54905090565b60006114e8611432611c50565b846114e3856040518060600160405280602581526020016141e9602591396007600061145c611c50565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f09092919063ffffffff16565b611c58565b6001905092915050565b6114fa611c50565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611587576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157e906136d6565b60405180910390fd5b80602260166101000a81548160ff02191690831515021790555050565b60006115b86115b1611c50565b8484611e23565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6115ef611c50565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461167c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611673906136d6565b60405180910390fd5b80601a8190555050565b61168e611c50565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461171b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611712906136d6565b60405180910390fd5b80602260156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161176491906133fd565b60405180910390a150565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611824611c50565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a8906136d6565b60405180910390fd5b60038111156118f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ec906137ad565b60405180910390fd5b80601f8190555050565b611907611c50565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198b906136d6565b60405180910390fd5b80601c8190555050565b6119a6611c50565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2a906136d6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611aa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9a9061383f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611b68611c50565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bec906136d6565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbf906138d1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2f90613963565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e169190613427565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611e94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8b906139f5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efb90613a87565b60405180910390fd5b60008211611f47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3e90613b19565b60405180910390fd5b602260149054906101000a900460ff1615611f6e57611f678484846127fc565b90506126e9565b6000611f79306110d4565b90506000601e548210159050808015611f9f5750602260149054906101000a900460ff16155b8015611ff55750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561200d5750602260159054906101000a900460ff165b1561203757602260169054906101000a900460ff161561202d57601e5491505b612036826129cf565b5b6120c0846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f09092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008061210e61120d565b73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161415801561217c575061214c61120d565b73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b15612385576121bd60646121af6121a0601054600b5461275490919063ffffffff16565b89612bc090919063ffffffff16565b612c3b90919063ffffffff16565b9150600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156122a35761224d606461223f612230601054600b5461275490919063ffffffff16565b89612bc090919063ffffffff16565b612c3b90919063ffffffff16565b915060006010541180156122645750601a54601954105b1561229e57612291606461228360105489612bc090919063ffffffff16565b612c3b90919063ffffffff16565b905061229d8882612c85565b5b612384565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612383576123316064612323612314601854600c5461275490919063ffffffff16565b89612bc090919063ffffffff16565b612c3b90919063ffffffff16565b915060006018541180156123485750601a54601954105b1561238257612375606461236760185489612bc090919063ffffffff16565b612c3b90919063ffffffff16565b90506123818882612c85565b5b5b5b5b60008211156125e657600091506000600267ffffffffffffffff8111156123af576123ae613b39565b5b6040519080825280602002602001820160405280156123dd5781602001602082028036833780820191505090505b50905088816000815181106123f5576123f4613b68565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050878160018151811061244457612443613b68565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f89846040518363ffffffff1660e01b81526004016124dd929190613c55565b600060405180830381865afa1580156124fa573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906125239190613db3565b90508060008151811061253957612538613b68565b5b60200260200101518461254c9190613e2b565b93506125a084600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279e90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505b61263886600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279e90919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040516126d89190613427565b60405180910390a360019450505050505b9392505050565b6000838311158290612738576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272f91906132d8565b60405180910390fd5b50600083856127479190613e2b565b9050809150509392505050565b600061279683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506126f0565b905092915050565b60008082846127ad9190613e5f565b9050838110156127f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e990613f01565b60405180910390fd5b8091505092915050565b6000612887826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f09092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061291c82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279e90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129bc9190613427565b60405180910390a3600190509392505050565b6001602260146101000a81548160ff0219169083151502179055506000612a286002612a1a601454612a0c60115487612bc090919063ffffffff16565b612c3b90919063ffffffff16565b612c3b90919063ffffffff16565b90506000612a3f828461275490919063ffffffff16565b9050612a4a81612e15565b60004790506000612a7b612a6a6002601154612c3b90919063ffffffff16565b60145461275490919063ffffffff16565b90506000612ab96002612aab84612a9d60115488612bc090919063ffffffff16565b612c3b90919063ffffffff16565b612c3b90919063ffffffff16565b90506000612ae483612ad660135487612bc090919063ffffffff16565b612c3b90919063ffffffff16565b90506000612b0d82612aff858861275490919063ffffffff16565b61275490919063ffffffff16565b90506000811115612b4557612b44600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613091565b5b6000821115612b7b57612b7a600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613091565b5b600083118015612b8b5750600087115b15612b9b57612b9a87846130dc565b5b505050505050506000602260146101000a81548160ff02191690831515021790555050565b600080831415612bd35760009050612c35565b60008284612be19190613f21565b9050828482612bf09190613faa565b14612c30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c279061404d565b60405180910390fd5b809150505b92915050565b6000612c7d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506131dc565b905092915050565b601a5460195410612c9557612e11565b612d098160066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279e90919063ffffffff16565b60066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d838160195461279e90919063ffffffff16565b601981905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e089190613427565b60405180910390a35b5050565b6000600267ffffffffffffffff811115612e3257612e31613b39565b5b604051908082528060200260200182016040528015612e605781602001602082028036833780820191505090505b5090503081600081518110612e7857612e77613b68565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f43919061370b565b81600181518110612f5757612f56613b68565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612fbe30602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c58565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016130229594939291906140b2565b600060405180830381600087803b15801561303c57600080fd5b505af1158015613050573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613085929190613c55565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156130d7573d6000803e3d6000fd5b505050565b61310930602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c58565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016131929695949392919061410c565b60606040518083038185885af11580156131b0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906131d5919061416d565b5050505050565b60008083118290613223576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161321a91906132d8565b60405180910390fd5b50600083856132329190613faa565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561327957808201518184015260208101905061325e565b83811115613288576000848401525b50505050565b6000601f19601f8301169050919050565b60006132aa8261323f565b6132b4818561324a565b93506132c481856020860161325b565b6132cd8161328e565b840191505092915050565b600060208201905081810360008301526132f2818461329f565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006133398261330e565b9050919050565b6133498161332e565b811461335457600080fd5b50565b60008135905061336681613340565b92915050565b6000819050919050565b61337f8161336c565b811461338a57600080fd5b50565b60008135905061339c81613376565b92915050565b600080604083850312156133b9576133b8613304565b5b60006133c785828601613357565b92505060206133d88582860161338d565b9150509250929050565b60008115159050919050565b6133f7816133e2565b82525050565b600060208201905061341260008301846133ee565b92915050565b6134218161336c565b82525050565b600060208201905061343c6000830184613418565b92915050565b60008060006060848603121561345b5761345a613304565b5b600061346986828701613357565b935050602061347a86828701613357565b925050604061348b8682870161338d565b9150509250925092565b6000602082840312156134ab576134aa613304565b5b60006134b984828501613357565b91505092915050565b600060ff82169050919050565b6134d8816134c2565b82525050565b60006020820190506134f360008301846134cf565b92915050565b60006020828403121561350f5761350e613304565b5b600061351d8482850161338d565b91505092915050565b61352f8161332e565b82525050565b600060208201905061354a6000830184613526565b92915050565b613559816133e2565b811461356457600080fd5b50565b60008135905061357681613550565b92915050565b6000806040838503121561359357613592613304565b5b60006135a185828601613357565b92505060206135b285828601613567565b9150509250929050565b6000602082840312156135d2576135d1613304565b5b60006135e084828501613567565b91505092915050565b60008060408385031215613600576135ff613304565b5b600061360e85828601613357565b925050602061361f85828601613357565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061367057607f821691505b6020821081141561368457613683613629565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006136c060208361324a565b91506136cb8261368a565b602082019050919050565b600060208201905081810360008301526136ef816136b3565b9050919050565b60008151905061370581613340565b92915050565b60006020828403121561372157613720613304565b5b600061372f848285016136f6565b91505092915050565b600060408201905061374d6000830185613526565b61375a6020830184613526565b9392505050565b7f6e657756616c7565206d757374203c3d20330000000000000000000000000000600082015250565b600061379760128361324a565b91506137a282613761565b602082019050919050565b600060208201905081810360008301526137c68161378a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061382960268361324a565b9150613834826137cd565b604082019050919050565b600060208201905081810360008301526138588161381c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006138bb60248361324a565b91506138c68261385f565b604082019050919050565b600060208201905081810360008301526138ea816138ae565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061394d60228361324a565b9150613958826138f1565b604082019050919050565b6000602082019050818103600083015261397c81613940565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006139df60258361324a565b91506139ea82613983565b604082019050919050565b60006020820190508181036000830152613a0e816139d2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a7160238361324a565b9150613a7c82613a15565b604082019050919050565b60006020820190508181036000830152613aa081613a64565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613b0360298361324a565b9150613b0e82613aa7565b604082019050919050565b60006020820190508181036000830152613b3281613af6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613bcc8161332e565b82525050565b6000613bde8383613bc3565b60208301905092915050565b6000602082019050919050565b6000613c0282613b97565b613c0c8185613ba2565b9350613c1783613bb3565b8060005b83811015613c48578151613c2f8882613bd2565b9750613c3a83613bea565b925050600181019050613c1b565b5085935050505092915050565b6000604082019050613c6a6000830185613418565b8181036020830152613c7c8184613bf7565b90509392505050565b600080fd5b613c938261328e565b810181811067ffffffffffffffff82111715613cb257613cb1613b39565b5b80604052505050565b6000613cc56132fa565b9050613cd18282613c8a565b919050565b600067ffffffffffffffff821115613cf157613cf0613b39565b5b602082029050602081019050919050565b600080fd5b600081519050613d1681613376565b92915050565b6000613d2f613d2a84613cd6565b613cbb565b90508083825260208201905060208402830185811115613d5257613d51613d02565b5b835b81811015613d7b5780613d678882613d07565b845260208401935050602081019050613d54565b5050509392505050565b600082601f830112613d9a57613d99613c85565b5b8151613daa848260208601613d1c565b91505092915050565b600060208284031215613dc957613dc8613304565b5b600082015167ffffffffffffffff811115613de757613de6613309565b5b613df384828501613d85565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e368261336c565b9150613e418361336c565b925082821015613e5457613e53613dfc565b5b828203905092915050565b6000613e6a8261336c565b9150613e758361336c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613eaa57613ea9613dfc565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613eeb601b8361324a565b9150613ef682613eb5565b602082019050919050565b60006020820190508181036000830152613f1a81613ede565b9050919050565b6000613f2c8261336c565b9150613f378361336c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613f7057613f6f613dfc565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613fb58261336c565b9150613fc08361336c565b925082613fd057613fcf613f7b565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061403760218361324a565b915061404282613fdb565b604082019050919050565b600060208201905081810360008301526140668161402a565b9050919050565b6000819050919050565b6000819050919050565b600061409c6140976140928461406d565b614077565b61336c565b9050919050565b6140ac81614081565b82525050565b600060a0820190506140c76000830188613418565b6140d460208301876140a3565b81810360408301526140e68186613bf7565b90506140f56060830185613526565b6141026080830184613418565b9695505050505050565b600060c0820190506141216000830189613526565b61412e6020830188613418565b61413b60408301876140a3565b61414860608301866140a3565b6141556080830185613526565b61416260a0830184613418565b979650505050505050565b60008060006060848603121561418657614185613304565b5b600061419486828701613d07565b93505060206141a586828701613d07565b92505060406141b686828701613d07565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208e7269220529b022f6ee7081d074060eb529c2287ca85b7ec0bd1d8e4fd0ae0164736f6c634300080a0033

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

0000000000000000000000000000000000000000000000000000000008f0d1800000000000000000000000007e91553fcda33adc8a0eb6d00d2200cb88092906

-----Decoded View---------------
Arg [0] : supply (uint256): 150000000
Arg [1] : router (address): 0x7e91553fcdA33AdC8A0Eb6d00d2200CB88092906

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000008f0d180
Arg [1] : 0000000000000000000000007e91553fcda33adc8a0eb6d00d2200cb88092906


Deployed Bytecode Sourcemap

7267:15068:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10219:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11514:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10496:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14732:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13438:128;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12989:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10405:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10882:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12707:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12842:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6185:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13708:747;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10604:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12028:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5566:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5780:145;;;;;;;;;;;;;:::i;:::-;;10310:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11385:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11108:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13305:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14557:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5442:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12300:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13126:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8911:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10731:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12419:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12586:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5933:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12165:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10219:83;10256:13;10289:5;10282:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10219:83;:::o;11514:161::-;11589:4;11606:39;11615:12;:10;:12::i;:::-;11629:7;11638:6;11606:8;:39::i;:::-;11663:4;11656:11;;11514:161;;;;:::o;10496:100::-;10549:7;10576:12;;10569:19;;10496:100;:::o;14732:313::-;14830:4;14847:36;14857:6;14865:9;14876:6;14847:9;:36::i;:::-;;14894:121;14903:6;14911:12;:10;:12::i;:::-;14925:89;14963:6;14925:89;;;;;;;;;;;;;;;;;:11;:19;14937:6;14925:19;;;;;;;;;;;;;;;:33;14945:12;:10;:12::i;:::-;14925:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;14894:8;:121::i;:::-;15033:4;15026:11;;14732:313;;;;;:::o;13438:128::-;13491:7;13518:40;13535:22;13545:11;;;;;;;;;;;13535:9;:22::i;:::-;13518:12;;:16;;:40;;;;:::i;:::-;13511:47;;13438:128;:::o;12989:129::-;5703:12;:10;:12::i;:::-;5693:22;;:6;;;;;;;;;;:22;;;5685:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13099:10:::1;13071:17;;:39;;;;;;;;;;;;;;;;;;12989:129:::0;:::o;10405:83::-;10446:5;10471:9;;;;;;;;;;;10464:16;;10405:83;:::o;10882:218::-;10970:4;10987:83;10996:12;:10;:12::i;:::-;11010:7;11019:50;11058:10;11019:11;:25;11031:12;:10;:12::i;:::-;11019:25;;;;;;;;;;;;;;;:34;11045:7;11019:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;10987:8;:83::i;:::-;11088:4;11081:11;;10882:218;;;;:::o;12707:125::-;5703:12;:10;:12::i;:::-;5693:22;;:6;;;;;;;;;;:22;;;5685:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12816:8:::1;12789:24;:35;;;;12707:125:::0;:::o;12842:139::-;5703:12;:10;:12::i;:::-;5693:22;;:6;;;;;;;;;;:22;;;5685:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12962:10:::1;12929:22;;:44;;;;;;;;;;;;;;;;;;12842:139:::0;:::o;6185:90::-;6225:7;6252:15;6245:22;;6185:90;:::o;13708:747::-;13788:22;5703:12;:10;:12::i;:::-;5693:22;;:6;;;;;;;;;;:22;;;5685:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13825:35:::1;13882:16;13825:74;;13947:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13929:53;;;13991:4;13998:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13929:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13912:110;;14064:1;14038:28;;:14;:28;;;14035:225;;;14152:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14134:74;;;14217:4;14224:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14134:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14117:131;;14035:225;14286:14;14272:11;;:28;;;;;;;;;;;;;;;;;;14352:16;14334:15;;:34;;;;;;;;;;;;;;;;;;14443:4;14406:12;:34;14427:11;;;;;;;;;;;14406:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;13812:643;13708:747:::0;;;:::o;10604:119::-;10670:7;10697:9;:18;10707:7;10697:18;;;;;;;;;;;;;;;;10690:25;;10604:119;;;:::o;12028:129::-;5703:12;:10;:12::i;:::-;5693:22;;:6;;;;;;;;;;:22;;;5685:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12141:8:::1;12117:12;:21;12130:7;12117:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;12028:129:::0;;:::o;5566:79::-;5604:7;5631:6;;;;;;;;;;;5624:13;;5566:79;:::o;5780:145::-;5703:12;:10;:12::i;:::-;5693:22;;:6;;;;;;;;;;:22;;;5685:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5884:1:::1;5847:40;;5868:6;::::0;::::1;;;;;;;;5847:40;;;;;;;;;;;;5915:1;5898:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5780:145::o:0;10310:87::-;10349:13;10382:7;10375:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10310:87;:::o;11385:121::-;11447:7;11474:24;;11467:31;;11385:121;:::o;11108:269::-;11201:4;11218:129;11227:12;:10;:12::i;:::-;11241:7;11250:96;11289:15;11250:96;;;;;;;;;;;;;;;;;:11;:25;11262:12;:10;:12::i;:::-;11250:25;;;;;;;;;;;;;;;:34;11276:7;11250:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;11218:8;:129::i;:::-;11365:4;11358:11;;11108:269;;;;:::o;13305:125::-;5703:12;:10;:12::i;:::-;5693:22;;:6;;;;;;;;;;:22;;;5685:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13414:8:::1;13386:25;;:36;;;;;;;;;;;;;;;;;;13305:125:::0;:::o;14557:167::-;14635:4;14652:42;14662:12;:10;:12::i;:::-;14676:9;14687:6;14652:9;:42::i;:::-;;14712:4;14705:11;;14557:167;;;;:::o;5442:21::-;;;;;;;;;;;;:::o;12300:111::-;5703:12;:10;:12::i;:::-;5693:22;;:6;;;;;;;;;;:22;;;5685:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12393:10:::1;12373:17;:30;;;;12300:111:::0;:::o;13126:171::-;5703:12;:10;:12::i;:::-;5693:22;;:6;;;;;;;;;;:22;;;5685:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13227:8:::1;13203:21;;:32;;;;;;;;;;;;;;;;;;13251:38;13280:8;13251:38;;;;;;:::i;:::-;;;;;;;;13126:171:::0;:::o;8911:26::-;;;;;;;;;;;;;:::o;10731:143::-;10812:7;10839:11;:18;10851:5;10839:18;;;;;;;;;;;;;;;:27;10858:7;10839:27;;;;;;;;;;;;;;;;10832:34;;10731:143;;;;:::o;12419:157::-;5703:12;:10;:12::i;:::-;5693:22;;:6;;;;;;;;;;:22;;;5685:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12510:1:::1;12498:8;:13;;12490:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;12560:8;12545:12;:23;;;;12419:157:::0;:::o;12586:111::-;5703:12;:10;:12::i;:::-;5693:22;;:6;;;;;;;;;;:22;;;5685:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12678:11:::1;12663:12;:26;;;;12586:111:::0;:::o;5933:244::-;5703:12;:10;:12::i;:::-;5693:22;;:6;;;;;;;;;;:22;;;5685:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6042:1:::1;6022:22;;:8;:22;;;;6014:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6132:8;6103:38;;6124:6;::::0;::::1;;;;;;;;6103:38;;;;;;;;;;;;6161:8;6152:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5933:244:::0;:::o;12165:127::-;5703:12;:10;:12::i;:::-;5693:22;;:6;;;;;;;;;;:22;;;5685:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12278:6:::1;12252:15;:23;12268:6;12252:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;12165:127:::0;;:::o;103:115::-;156:15;199:10;184:26;;103:115;:::o;11683:337::-;11793:1;11776:19;;:5;:19;;;;11768:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11874:1;11855:21;;:7;:21;;;;11847:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11958:6;11928:11;:18;11940:5;11928:18;;;;;;;;;;;;;;;:27;11947:7;11928:27;;;;;;;;;;;;;;;:36;;;;11996:7;11980:32;;11989:5;11980:32;;;12005:6;11980:32;;;;;;:::i;:::-;;;;;;;;11683:337;;;:::o;15053:2714::-;15140:4;15185:1;15167:20;;:6;:20;;;;15159:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;15269:1;15248:23;;:9;:23;;;;15240:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15339:1;15330:6;:10;15322:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15402:16;;;;;;;;;;;15399:2361;;;15451:41;15466:6;15474:9;15485:6;15451:14;:41::i;:::-;15444:48;;;;15399:2361;15545:28;15576:24;15594:4;15576:9;:24::i;:::-;15545:55;;15615:28;15670:24;;15646:20;:48;;15615:79;;15715:23;:44;;;;;15743:16;;;;;;;;;;;15742:17;15715:44;:69;;;;;15764:12;:20;15777:6;15764:20;;;;;;;;;;;;;;;;;;;;;;;;;15763:21;15715:69;:94;;;;;15788:21;;;;;;;;;;;15715:94;15711:301;;;15846:25;;;;;;;;;;;15843:98;;;15917:24;;15894:47;;15843:98;15960:36;15975:20;15960:14;:36::i;:::-;15711:301;16046:53;16068:6;16046:53;;;;;;;;;;;;;;;;;:9;:17;16056:6;16046:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;16026:9;:17;16036:6;16026:17;;;;;;;;;;;;;;;:73;;;;16114:17;16148:18;16197:7;:5;:7::i;:::-;16187:17;;:6;:17;;;;:41;;;;;16221:7;:5;:7::i;:::-;16208:20;;:9;:20;;;;16187:41;16183:946;;;16261:58;16315:3;16261:49;16272:37;16294:14;;16272:17;;:21;;:37;;;;:::i;:::-;16261:6;:10;;:49;;;;:::i;:::-;:53;;:58;;;;:::i;:::-;16249:70;;16341:12;:20;16354:6;16341:20;;;;;;;;;;;;;;;;;;;;;;;;;16338:774;;;16398:58;16452:3;16398:49;16409:37;16431:14;;16409:17;;:21;;:37;;;;:::i;:::-;16398:6;:10;;:49;;;;:::i;:::-;:53;;:58;;;;:::i;:::-;16386:70;;16499:1;16482:14;;:18;:52;;;;;16517:17;;16504:10;;:30;16482:52;16479:212;;;16576:35;16607:3;16576:26;16587:14;;16576:6;:10;;:26;;;;:::i;:::-;:30;;:35;;;;:::i;:::-;16563:48;;16638:29;16649:6;16656:10;16638;:29::i;:::-;16479:212;16338:774;;;16736:12;:23;16749:9;16736:23;;;;;;;;;;;;;;;;;;;;;;;;;16733:379;;;16796:60;16852:3;16796:51;16807:39;16830:15;;16807:18;;:22;;:39;;;;:::i;:::-;16796:6;:10;;:51;;;;:::i;:::-;:55;;:60;;;;:::i;:::-;16784:72;;16900:1;16882:15;;:19;:53;;;;;16918:17;;16905:10;;:30;16882:53;16879:214;;;16977:36;17009:3;16977:27;16988:15;;16977:6;:10;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;16964:49;;17040:29;17051:6;17058:10;17040;:29::i;:::-;16879:214;16733:379;16338:774;16183:946;17159:1;17147:9;:13;17144:439;;;17194:1;17182:13;;17215:21;17253:1;17239:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17215:40;;17285:6;17275:4;17280:1;17275:7;;;;;;;;:::i;:::-;;;;;;;:16;;;;;;;;;;;17321:9;17311:4;17316:1;17311:7;;;;;;;;:::i;:::-;;;;;;;:19;;;;;;;;;;;17350:24;17396:15;;;;;;;;;;;17377:49;;;17427:6;17434:4;17377:62;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17350:89;;17472:7;17480:1;17472:10;;;;;;;;:::i;:::-;;;;;;;;17459:23;;;;;:::i;:::-;;;17528:39;17557:9;17528;:24;17546:4;17528:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;17501:9;:24;17519:4;17501:24;;;;;;;;;;;;;;;:66;;;;17162:421;;17144:439;17635:32;17660:6;17635:9;:20;17645:9;17635:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;17612:9;:20;17622:9;17612:20;;;;;;;;;;;;;;;:55;;;;17704:9;17687:35;;17696:6;17687:35;;;17715:6;17687:35;;;;;;:::i;:::-;;;;;;;;17744:4;17737:11;;;;;;15053:2714;;;;;;:::o;1531:183::-;1617:7;1650:1;1645;:6;;1653:12;1637:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1668:9;1684:1;1680;:5;;;;:::i;:::-;1668:17;;1705:1;1698:8;;;1531:183;;;;;:::o;1387:136::-;1445:7;1472:43;1476:1;1479;1472:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1465:50;;1387:136;;;;:::o;1198:181::-;1256:7;1276:9;1292:1;1288;:5;;;;:::i;:::-;1276:17;;1317:1;1312;:6;;1304:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1370:1;1363:8;;;1198:181;;;;:::o;17775:330::-;17868:4;17905:53;17927:6;17905:53;;;;;;;;;;;;;;;;;:9;:17;17915:6;17905:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;17885:9;:17;17895:6;17885:17;;;;;;;;;;;;;;;:73;;;;17992:32;18017:6;17992:9;:20;18002:9;17992:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;17969:9;:20;17979:9;17969:20;;;;;;;;;;;;;;;:55;;;;18057:9;18040:35;;18049:6;18040:35;;;18068:6;18040:35;;;;;;:::i;:::-;;;;;;;;18093:4;18086:11;;17775:330;;;;;:::o;18113:1032::-;9542:4;9523:16;;:23;;;;;;;;;;;;;;;;;;18187:19:::1;18209:65;18272:1;18209:58;18242:24;;18209:28;18221:15;;18209:7;:11;;:28;;;;:::i;:::-;:32;;:58;;;;:::i;:::-;:62;;:65;;;;:::i;:::-;18187:87;;18285:21;18309:24;18321:11;18309:7;:11;;:24;;;;:::i;:::-;18285:48;;18346:31;18363:13;18346:16;:31::i;:::-;18388:22;18413:21;18388:46;;18447:19;18469:52;18498:22;18518:1;18498:15;;:19;;:22;;;;:::i;:::-;18469:24;;:28;;:52;;;;:::i;:::-;18447:74;;18534:26;18563:59;18620:1;18563:52;18603:11;18563:35;18582:15;;18563:14;:18;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;18534:88;;18633:21;18657:47;18692:11;18657:30;18676:10;;18657:14;:18;;:30;;;;:::i;:::-;:34;;:47;;;;:::i;:::-;18633:71;;18715:26;18744:57;18787:13;18744:38;18763:18;18744:14;:18;;:38;;;;:::i;:::-;:42;;:57;;;;:::i;:::-;18715:86;;18838:1;18817:18;:22;18814:104;;;18854:64;18875:22;;;;;;;;;;;18899:18;18854:20;:64::i;:::-;18814:104;18950:1;18934:13;:17;18931:89;;;18966:54;18987:17;;;;;;;;;;;19006:13;18966:20;:54::i;:::-;18931:89;19057:1;19036:18;:22;:41;;;;;19076:1;19062:11;:15;19036:41;19033:104;;;19092:45;19105:11;19118:18;19092:12;:45::i;:::-;19033:104;18174:971;;;;;;;9588:5:::0;9569:16;;:24;;;;;;;;;;;;;;;;;;18113:1032;:::o;1722:250::-;1780:7;1809:1;1804;:6;1800:47;;;1834:1;1827:8;;;;1800:47;1859:9;1875:1;1871;:5;;;;:::i;:::-;1859:17;;1904:1;1899;1895;:5;;;;:::i;:::-;:10;1887:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1963:1;1956:8;;;1722:250;;;;;:::o;1980:132::-;2038:7;2065:39;2069:1;2072;2065:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2058:46;;1980:132;;;;:::o;22009:321::-;22123:17;;22109:10;;:31;22106:43;;22142:7;;22106:43;22186:35;22213:7;22186:9;:22;22196:11;;;;;;;;;;;22186:22;;;;;;;;;;;;;;;;:26;;:35;;;;:::i;:::-;22161:9;:22;22171:11;;;;;;;;;;;22161:22;;;;;;;;;;;;;;;:60;;;;22245:23;22260:7;22245:10;;:14;;:23;;;;:::i;:::-;22232:10;:36;;;;22301:11;;;;;;;;;;;22284:38;;22293:6;22284:38;;;22314:7;22284:38;;;;;;:::i;:::-;;;;;;;;22009:321;;;:::o;19153:658::-;19279:21;19317:1;19303:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19279:40;;19348:4;19330;19335:1;19330:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19374:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19364:4;19369:1;19364:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;19409:62;19426:4;19441:15;;;;;;;;;;;19459:11;19409:8;:62::i;:::-;19510:15;;;;;;;;;;;:66;;;19591:11;19617:1;19661:4;19688;19724:15;19510:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19768:35;19785:11;19798:4;19768:35;;;;;;;:::i;:::-;;;;;;;;19208:603;19153:658;:::o;13574:126::-;13666:9;:18;;:26;13685:6;13666:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13574:126;;:::o;19819:520::-;19967:62;19984:4;19999:15;;;;;;;;;;;20017:11;19967:8;:62::i;:::-;20072:15;;;;;;;;;;;:31;;;20111:9;20144:4;20164:11;20190:1;20233;20276:14;;;;;;;;;;;20305:15;20072:259;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19819:520;;:::o;2120:276::-;2206:7;2238:1;2234;:5;2241:12;2226:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2265:9;2281:1;2277;:5;;;;:::i;:::-;2265:17;;2387:1;2380:8;;;2120:276;;;;;:::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:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:329::-;4530:6;4579:2;4567:9;4558:7;4554:23;4550:32;4547:119;;;4585:79;;:::i;:::-;4547:119;4705:1;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4676:117;4471:329;;;;:::o;4806:86::-;4841:7;4881:4;4874:5;4870:16;4859:27;;4806:86;;;:::o;4898:112::-;4981:22;4997:5;4981:22;:::i;:::-;4976:3;4969:35;4898:112;;:::o;5016:214::-;5105:4;5143:2;5132:9;5128:18;5120:26;;5156:67;5220:1;5209:9;5205:17;5196:6;5156:67;:::i;:::-;5016:214;;;;:::o;5236:329::-;5295:6;5344:2;5332:9;5323:7;5319:23;5315:32;5312:119;;;5350:79;;:::i;:::-;5312:119;5470:1;5495:53;5540:7;5531:6;5520:9;5516:22;5495:53;:::i;:::-;5485:63;;5441:117;5236:329;;;;:::o;5571:118::-;5658:24;5676:5;5658:24;:::i;:::-;5653:3;5646:37;5571:118;;:::o;5695:222::-;5788:4;5826:2;5815:9;5811:18;5803:26;;5839:71;5907:1;5896:9;5892:17;5883:6;5839:71;:::i;:::-;5695:222;;;;:::o;5923:116::-;5993:21;6008:5;5993:21;:::i;:::-;5986:5;5983:32;5973:60;;6029:1;6026;6019:12;5973:60;5923:116;:::o;6045:133::-;6088:5;6126:6;6113:20;6104:29;;6142:30;6166:5;6142:30;:::i;:::-;6045:133;;;;:::o;6184:468::-;6249:6;6257;6306:2;6294:9;6285:7;6281:23;6277:32;6274:119;;;6312:79;;:::i;:::-;6274:119;6432:1;6457:53;6502:7;6493:6;6482:9;6478:22;6457:53;:::i;:::-;6447:63;;6403:117;6559:2;6585:50;6627:7;6618:6;6607:9;6603:22;6585:50;:::i;:::-;6575:60;;6530:115;6184:468;;;;;:::o;6658:323::-;6714:6;6763:2;6751:9;6742:7;6738:23;6734:32;6731:119;;;6769:79;;:::i;:::-;6731:119;6889:1;6914:50;6956:7;6947:6;6936:9;6932:22;6914:50;:::i;:::-;6904:60;;6860:114;6658:323;;;;:::o;6987:474::-;7055:6;7063;7112:2;7100:9;7091:7;7087:23;7083:32;7080:119;;;7118:79;;:::i;:::-;7080:119;7238:1;7263:53;7308:7;7299:6;7288:9;7284:22;7263:53;:::i;:::-;7253:63;;7209:117;7365:2;7391:53;7436:7;7427:6;7416:9;7412:22;7391:53;:::i;:::-;7381:63;;7336:118;6987:474;;;;;:::o;7467:180::-;7515:77;7512:1;7505:88;7612:4;7609:1;7602:15;7636:4;7633:1;7626:15;7653:320;7697:6;7734:1;7728:4;7724:12;7714:22;;7781:1;7775:4;7771:12;7802:18;7792:81;;7858:4;7850:6;7846:17;7836:27;;7792:81;7920:2;7912:6;7909:14;7889:18;7886:38;7883:84;;;7939:18;;:::i;:::-;7883:84;7704:269;7653:320;;;:::o;7979:182::-;8119:34;8115:1;8107:6;8103:14;8096:58;7979:182;:::o;8167:366::-;8309:3;8330:67;8394:2;8389:3;8330:67;:::i;:::-;8323:74;;8406:93;8495:3;8406:93;:::i;:::-;8524:2;8519:3;8515:12;8508:19;;8167:366;;;:::o;8539:419::-;8705:4;8743:2;8732:9;8728:18;8720:26;;8792:9;8786:4;8782:20;8778:1;8767:9;8763:17;8756:47;8820:131;8946:4;8820:131;:::i;:::-;8812:139;;8539:419;;;:::o;8964:143::-;9021:5;9052:6;9046:13;9037:22;;9068:33;9095:5;9068:33;:::i;:::-;8964:143;;;;:::o;9113:351::-;9183:6;9232:2;9220:9;9211:7;9207:23;9203:32;9200:119;;;9238:79;;:::i;:::-;9200:119;9358:1;9383:64;9439:7;9430:6;9419:9;9415:22;9383:64;:::i;:::-;9373:74;;9329:128;9113:351;;;;:::o;9470:332::-;9591:4;9629:2;9618:9;9614:18;9606:26;;9642:71;9710:1;9699:9;9695:17;9686:6;9642:71;:::i;:::-;9723:72;9791:2;9780:9;9776:18;9767:6;9723:72;:::i;:::-;9470:332;;;;;:::o;9808:168::-;9948:20;9944:1;9936:6;9932:14;9925:44;9808:168;:::o;9982:366::-;10124:3;10145:67;10209:2;10204:3;10145:67;:::i;:::-;10138:74;;10221:93;10310:3;10221:93;:::i;:::-;10339:2;10334:3;10330:12;10323:19;;9982:366;;;:::o;10354:419::-;10520:4;10558:2;10547:9;10543:18;10535:26;;10607:9;10601:4;10597:20;10593:1;10582:9;10578:17;10571:47;10635:131;10761:4;10635:131;:::i;:::-;10627:139;;10354:419;;;:::o;10779:225::-;10919:34;10915:1;10907:6;10903:14;10896:58;10988:8;10983:2;10975:6;10971:15;10964:33;10779:225;:::o;11010:366::-;11152:3;11173:67;11237:2;11232:3;11173:67;:::i;:::-;11166:74;;11249:93;11338:3;11249:93;:::i;:::-;11367:2;11362:3;11358:12;11351:19;;11010:366;;;:::o;11382:419::-;11548:4;11586:2;11575:9;11571:18;11563:26;;11635:9;11629:4;11625:20;11621:1;11610:9;11606:17;11599:47;11663:131;11789:4;11663:131;:::i;:::-;11655:139;;11382:419;;;:::o;11807:223::-;11947:34;11943:1;11935:6;11931:14;11924:58;12016:6;12011:2;12003:6;11999:15;11992:31;11807:223;:::o;12036:366::-;12178:3;12199:67;12263:2;12258:3;12199:67;:::i;:::-;12192:74;;12275:93;12364:3;12275:93;:::i;:::-;12393:2;12388:3;12384:12;12377:19;;12036:366;;;:::o;12408:419::-;12574:4;12612:2;12601:9;12597:18;12589:26;;12661:9;12655:4;12651:20;12647:1;12636:9;12632:17;12625:47;12689:131;12815:4;12689:131;:::i;:::-;12681:139;;12408:419;;;:::o;12833:221::-;12973:34;12969:1;12961:6;12957:14;12950:58;13042:4;13037:2;13029:6;13025:15;13018:29;12833:221;:::o;13060:366::-;13202:3;13223:67;13287:2;13282:3;13223:67;:::i;:::-;13216:74;;13299:93;13388:3;13299:93;:::i;:::-;13417:2;13412:3;13408:12;13401:19;;13060:366;;;:::o;13432:419::-;13598:4;13636:2;13625:9;13621:18;13613:26;;13685:9;13679:4;13675:20;13671:1;13660:9;13656:17;13649:47;13713:131;13839:4;13713:131;:::i;:::-;13705:139;;13432:419;;;:::o;13857:224::-;13997:34;13993:1;13985:6;13981:14;13974:58;14066:7;14061:2;14053:6;14049:15;14042:32;13857:224;:::o;14087:366::-;14229:3;14250:67;14314:2;14309:3;14250:67;:::i;:::-;14243:74;;14326:93;14415:3;14326:93;:::i;:::-;14444:2;14439:3;14435:12;14428:19;;14087:366;;;:::o;14459:419::-;14625:4;14663:2;14652:9;14648:18;14640:26;;14712:9;14706:4;14702:20;14698:1;14687:9;14683:17;14676:47;14740:131;14866:4;14740:131;:::i;:::-;14732:139;;14459:419;;;:::o;14884:222::-;15024:34;15020:1;15012:6;15008:14;15001:58;15093:5;15088:2;15080:6;15076:15;15069:30;14884:222;:::o;15112:366::-;15254:3;15275:67;15339:2;15334:3;15275:67;:::i;:::-;15268:74;;15351:93;15440:3;15351:93;:::i;:::-;15469:2;15464:3;15460:12;15453:19;;15112:366;;;:::o;15484:419::-;15650:4;15688:2;15677:9;15673:18;15665:26;;15737:9;15731:4;15727:20;15723:1;15712:9;15708:17;15701:47;15765:131;15891:4;15765:131;:::i;:::-;15757:139;;15484:419;;;:::o;15909:228::-;16049:34;16045:1;16037:6;16033:14;16026:58;16118:11;16113:2;16105:6;16101:15;16094:36;15909:228;:::o;16143:366::-;16285:3;16306:67;16370:2;16365:3;16306:67;:::i;:::-;16299:74;;16382:93;16471:3;16382:93;:::i;:::-;16500:2;16495:3;16491:12;16484:19;;16143:366;;;:::o;16515:419::-;16681:4;16719:2;16708:9;16704:18;16696:26;;16768:9;16762:4;16758:20;16754:1;16743:9;16739:17;16732:47;16796:131;16922:4;16796:131;:::i;:::-;16788:139;;16515:419;;;:::o;16940:180::-;16988:77;16985:1;16978:88;17085:4;17082:1;17075:15;17109:4;17106:1;17099:15;17126:180;17174:77;17171:1;17164:88;17271:4;17268:1;17261:15;17295:4;17292:1;17285:15;17312:114;17379:6;17413:5;17407:12;17397:22;;17312:114;;;:::o;17432:184::-;17531:11;17565:6;17560:3;17553:19;17605:4;17600:3;17596:14;17581:29;;17432:184;;;;:::o;17622:132::-;17689:4;17712:3;17704:11;;17742:4;17737:3;17733:14;17725:22;;17622:132;;;:::o;17760:108::-;17837:24;17855:5;17837:24;:::i;:::-;17832:3;17825:37;17760:108;;:::o;17874:179::-;17943:10;17964:46;18006:3;17998:6;17964:46;:::i;:::-;18042:4;18037:3;18033:14;18019:28;;17874:179;;;;:::o;18059:113::-;18129:4;18161;18156:3;18152:14;18144:22;;18059:113;;;:::o;18208:732::-;18327:3;18356:54;18404:5;18356:54;:::i;:::-;18426:86;18505:6;18500:3;18426:86;:::i;:::-;18419:93;;18536:56;18586:5;18536:56;:::i;:::-;18615:7;18646:1;18631:284;18656:6;18653:1;18650:13;18631:284;;;18732:6;18726:13;18759:63;18818:3;18803:13;18759:63;:::i;:::-;18752:70;;18845:60;18898:6;18845:60;:::i;:::-;18835:70;;18691:224;18678:1;18675;18671:9;18666:14;;18631:284;;;18635:14;18931:3;18924:10;;18332:608;;;18208:732;;;;:::o;18946:483::-;19117:4;19155:2;19144:9;19140:18;19132:26;;19168:71;19236:1;19225:9;19221:17;19212:6;19168:71;:::i;:::-;19286:9;19280:4;19276:20;19271:2;19260:9;19256:18;19249:48;19314:108;19417:4;19408:6;19314:108;:::i;:::-;19306:116;;18946:483;;;;;:::o;19435:117::-;19544:1;19541;19534:12;19558:281;19641:27;19663:4;19641:27;:::i;:::-;19633:6;19629:40;19771:6;19759:10;19756:22;19735:18;19723:10;19720:34;19717:62;19714:88;;;19782:18;;:::i;:::-;19714:88;19822:10;19818:2;19811:22;19601:238;19558:281;;:::o;19845:129::-;19879:6;19906:20;;:::i;:::-;19896:30;;19935:33;19963:4;19955:6;19935:33;:::i;:::-;19845:129;;;:::o;19980:311::-;20057:4;20147:18;20139:6;20136:30;20133:56;;;20169:18;;:::i;:::-;20133:56;20219:4;20211:6;20207:17;20199:25;;20279:4;20273;20269:15;20261:23;;19980:311;;;:::o;20297:117::-;20406:1;20403;20396:12;20420:143;20477:5;20508:6;20502:13;20493:22;;20524:33;20551:5;20524:33;:::i;:::-;20420:143;;;;:::o;20586:732::-;20693:5;20718:81;20734:64;20791:6;20734:64;:::i;:::-;20718:81;:::i;:::-;20709:90;;20819:5;20848:6;20841:5;20834:21;20882:4;20875:5;20871:16;20864:23;;20935:4;20927:6;20923:17;20915:6;20911:30;20964:3;20956:6;20953:15;20950:122;;;20983:79;;:::i;:::-;20950:122;21098:6;21081:231;21115:6;21110:3;21107:15;21081:231;;;21190:3;21219:48;21263:3;21251:10;21219:48;:::i;:::-;21214:3;21207:61;21297:4;21292:3;21288:14;21281:21;;21157:155;21141:4;21136:3;21132:14;21125:21;;21081:231;;;21085:21;20699:619;;20586:732;;;;;:::o;21341:385::-;21423:5;21472:3;21465:4;21457:6;21453:17;21449:27;21439:122;;21480:79;;:::i;:::-;21439:122;21590:6;21584:13;21615:105;21716:3;21708:6;21701:4;21693:6;21689:17;21615:105;:::i;:::-;21606:114;;21429:297;21341:385;;;;:::o;21732:554::-;21827:6;21876:2;21864:9;21855:7;21851:23;21847:32;21844:119;;;21882:79;;:::i;:::-;21844:119;22023:1;22012:9;22008:17;22002:24;22053:18;22045:6;22042:30;22039:117;;;22075:79;;:::i;:::-;22039:117;22180:89;22261:7;22252:6;22241:9;22237:22;22180:89;:::i;:::-;22170:99;;21973:306;21732:554;;;;:::o;22292:180::-;22340:77;22337:1;22330:88;22437:4;22434:1;22427:15;22461:4;22458:1;22451:15;22478:191;22518:4;22538:20;22556:1;22538:20;:::i;:::-;22533:25;;22572:20;22590:1;22572:20;:::i;:::-;22567:25;;22611:1;22608;22605:8;22602:34;;;22616:18;;:::i;:::-;22602:34;22661:1;22658;22654:9;22646:17;;22478:191;;;;:::o;22675:305::-;22715:3;22734:20;22752:1;22734:20;:::i;:::-;22729:25;;22768:20;22786:1;22768:20;:::i;:::-;22763:25;;22922:1;22854:66;22850:74;22847:1;22844:81;22841:107;;;22928:18;;:::i;:::-;22841:107;22972:1;22969;22965:9;22958:16;;22675:305;;;;:::o;22986:177::-;23126:29;23122:1;23114:6;23110:14;23103:53;22986:177;:::o;23169:366::-;23311:3;23332:67;23396:2;23391:3;23332:67;:::i;:::-;23325:74;;23408:93;23497:3;23408:93;:::i;:::-;23526:2;23521:3;23517:12;23510:19;;23169:366;;;:::o;23541:419::-;23707:4;23745:2;23734:9;23730:18;23722:26;;23794:9;23788:4;23784:20;23780:1;23769:9;23765:17;23758:47;23822:131;23948:4;23822:131;:::i;:::-;23814:139;;23541:419;;;:::o;23966:348::-;24006:7;24029:20;24047:1;24029:20;:::i;:::-;24024:25;;24063:20;24081:1;24063:20;:::i;:::-;24058:25;;24251:1;24183:66;24179:74;24176:1;24173:81;24168:1;24161:9;24154:17;24150:105;24147:131;;;24258:18;;:::i;:::-;24147:131;24306:1;24303;24299:9;24288:20;;23966:348;;;;:::o;24320:180::-;24368:77;24365:1;24358:88;24465:4;24462:1;24455:15;24489:4;24486:1;24479:15;24506:185;24546:1;24563:20;24581:1;24563:20;:::i;:::-;24558:25;;24597:20;24615:1;24597:20;:::i;:::-;24592:25;;24636:1;24626:35;;24641:18;;:::i;:::-;24626:35;24683:1;24680;24676:9;24671:14;;24506:185;;;;:::o;24697:220::-;24837:34;24833:1;24825:6;24821:14;24814:58;24906:3;24901:2;24893:6;24889:15;24882:28;24697:220;:::o;24923:366::-;25065:3;25086:67;25150:2;25145:3;25086:67;:::i;:::-;25079:74;;25162:93;25251:3;25162:93;:::i;:::-;25280:2;25275:3;25271:12;25264:19;;24923:366;;;:::o;25295:419::-;25461:4;25499:2;25488:9;25484:18;25476:26;;25548:9;25542:4;25538:20;25534:1;25523:9;25519:17;25512:47;25576:131;25702:4;25576:131;:::i;:::-;25568:139;;25295:419;;;:::o;25720:85::-;25765:7;25794:5;25783:16;;25720:85;;;:::o;25811:60::-;25839:3;25860:5;25853:12;;25811:60;;;:::o;25877:158::-;25935:9;25968:61;25986:42;25995:32;26021:5;25995:32;:::i;:::-;25986:42;:::i;:::-;25968:61;:::i;:::-;25955:74;;25877:158;;;:::o;26041:147::-;26136:45;26175:5;26136:45;:::i;:::-;26131:3;26124:58;26041:147;;:::o;26194:831::-;26457:4;26495:3;26484:9;26480:19;26472:27;;26509:71;26577:1;26566:9;26562:17;26553:6;26509:71;:::i;:::-;26590:80;26666:2;26655:9;26651:18;26642:6;26590:80;:::i;:::-;26717:9;26711:4;26707:20;26702:2;26691:9;26687:18;26680:48;26745:108;26848:4;26839:6;26745:108;:::i;:::-;26737:116;;26863:72;26931:2;26920:9;26916:18;26907:6;26863:72;:::i;:::-;26945:73;27013:3;27002:9;26998:19;26989:6;26945:73;:::i;:::-;26194:831;;;;;;;;:::o;27031:807::-;27280:4;27318:3;27307:9;27303:19;27295:27;;27332:71;27400:1;27389:9;27385:17;27376:6;27332:71;:::i;:::-;27413:72;27481:2;27470:9;27466:18;27457:6;27413:72;:::i;:::-;27495:80;27571:2;27560:9;27556:18;27547:6;27495:80;:::i;:::-;27585;27661:2;27650:9;27646:18;27637:6;27585:80;:::i;:::-;27675:73;27743:3;27732:9;27728:19;27719:6;27675:73;:::i;:::-;27758;27826:3;27815:9;27811:19;27802:6;27758:73;:::i;:::-;27031:807;;;;;;;;;:::o;27844:663::-;27932:6;27940;27948;27997:2;27985:9;27976:7;27972:23;27968:32;27965:119;;;28003:79;;:::i;:::-;27965:119;28123:1;28148:64;28204:7;28195:6;28184:9;28180:22;28148:64;:::i;:::-;28138:74;;28094:128;28261:2;28287:64;28343:7;28334:6;28323:9;28319:22;28287:64;:::i;:::-;28277:74;;28232:129;28400:2;28426:64;28482:7;28473:6;28462:9;28458:22;28426:64;:::i;:::-;28416:74;;28371:129;27844:663;;;;;:::o

Swarm Source

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