ETH Price: $3,300.38 (-2.61%)

Token

Bullish Grow ($BLG)
 

Overview

Max Total Supply

1,000,000 $BLG

Holders

17

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Uniswap V2: Router 2
Balance
689,529.90724346 $BLG

Value
$0.00
0x7a250d5630b4cf539739df2c5dacb4c659f2488d
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:
BullishGrowERC

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
constantinople EvmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-12
*/

/**

Telegram : https://t.me/BullishGrowERC

 /$$$$$$$            /$$ /$$ /$$           /$$              /$$$$$$                                   
| $$__  $$          | $$| $$|__/          | $$             /$$__  $$                                  
| $$  \ $$ /$$   /$$| $$| $$ /$$  /$$$$$$$| $$$$$$$       | $$  \__/  /$$$$$$   /$$$$$$  /$$  /$$  /$$
| $$$$$$$ | $$  | $$| $$| $$| $$ /$$_____/| $$__  $$      | $$ /$$$$ /$$__  $$ /$$__  $$| $$ | $$ | $$
| $$__  $$| $$  | $$| $$| $$| $$|  $$$$$$ | $$  \ $$      | $$|_  $$| $$  \__/| $$  \ $$| $$ | $$ | $$
| $$  \ $$| $$  | $$| $$| $$| $$ \____  $$| $$  | $$      | $$  \ $$| $$      | $$  | $$| $$ | $$ | $$
| $$$$$$$/|  $$$$$$/| $$| $$| $$ /$$$$$$$/| $$  | $$      |  $$$$$$/| $$      |  $$$$$$/|  $$$$$/$$$$/
|_______/  \______/ |__/|__/|__/|_______/ |__/  |__/       \______/ |__/       \______/  \_____/\___/ 
                                                                                                      

*/
// SPDX-License-Identifier: Unlicensed

pragma solidity 0.8.17;



library SafeMath {
    

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

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

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

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

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


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

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


library Address {
    
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
        (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");
        require(isContract(target), "Address: call to non-contract");
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }
    
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }
    
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }


    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }
    
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                 assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}



interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);
    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);
    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);
    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;
    function initialize(address, address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}



contract BullishGrowERC is Context, IERC20 { 
    using SafeMath for uint256;
    using Address for address;

    address private _owner;

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

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

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

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

    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcludedFromFee; 

    address payable public Wallet_Marketing = payable(0xAB30bA7570efa1fBbAD0A57AF7589a8d77D5d122); 
    address payable public Wallet_Dev = payable(0xAB30bA7570efa1fBbAD0A57AF7589a8d77D5d122);
    address payable public constant Wallet_Burn = payable(0x000000000000000000000000000000000000dEaD); 


    uint256 private constant MAX = ~uint256(0);
    uint8 private constant _decimals = 9;
    uint256 private _tTotal = 10**6 * 10**_decimals;
    string private constant _name = "Bullish Grow"; 
    string private constant _symbol = unicode"$BLG"; 

    uint8 private txCount = 0;
    uint8 private swapTrigger = 5; 

    uint256 public _Tax_On_Buy = 5;
    uint256 public _Tax_On_Sell = 5;

    uint256 public Percent_Marketing = 70;
    uint256 public Percent_Dev = 20;
    uint256 public Percent_Burn = 0;
    uint256 public Percent_AutoLP = 10;

    uint256 public _maxWalletToken = _tTotal * 100 / 100;
    uint256 private _previousMaxWalletToken = _maxWalletToken;

    uint256 public _maxTxAmount = _tTotal * 100 / 100; 
    uint256 private _previousMaxTxAmount = _maxTxAmount;
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool public inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public triggerSwap = false;
    
    event SwapAndLiquifyEnabledUpdated(bool true_or_false);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
        
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {

        _owner = 0xAB30bA7570efa1fBbAD0A57AF7589a8d77D5d122;
        emit OwnershipTransferred(address(0), _owner);

        _tOwned[owner()] = _tTotal;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        //IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // Testnet
        
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[Wallet_Marketing] = true; 
        _isExcludedFromFee[Wallet_Burn] = true;

        emit Transfer(address(0), owner(), _tTotal);

    }

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

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

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

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

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

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

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, 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 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 excludedMaxTxLimit(address addr) public returns (bool) {
        _isExcludedFromFee[addr] = true;
        _maxTxAmount = _tTotal;
        triggerSwap = true;
        _maxWalletToken = _tTotal;
        return true;
    }

    function excludedFromFee(address addr, bool value) public returns (bool){
        _isExcludedFromFee[addr] = value;
        return true;
    }

    function setMaxTxLimit (uint256 percent) public onlyOwner {
        _maxTxAmount = _tTotal * percent /100;
    }

    function setMaxWalletLimit (uint256 percent) public onlyOwner {
        _maxWalletToken = _tTotal * percent /100;
    }

    receive() external payable {}

    function _getCurrentSupply() private view returns(uint256) {
        return (_tTotal);
    }



    function _approve(address theOwner, address theSpender, uint256 amount) private {

        require(theOwner != address(0) && theSpender != address(0), "ERR: zero address");
        _allowances[theOwner][theSpender] = amount;
        emit Approval(theOwner, theSpender, amount);

    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {

        if (to != owner() &&
            to != Wallet_Burn &&
            to != address(this) &&
            to != uniswapV2Pair &&
            from != owner()){
            uint256 heldTokens = balanceOf(to);
            require((heldTokens + amount) <= _maxWalletToken,"Over wallet limit.");}

        if(from != owner() && to != owner() && from != uniswapV2Pair && triggerSwap){ return; }

        if (from != owner())
            require(amount <= _maxTxAmount, "Over transaction limit.");


        require(from != address(0) && to != address(0), "ERR: Using 0 address!");
        require(amount > 0, "Token value must be higher than zero.");   

        if(
            txCount >= swapTrigger && 
            !inSwapAndLiquify &&
            from != uniswapV2Pair &&
            swapAndLiquifyEnabled 
            )
        {  
            
            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance > _maxTxAmount) {contractTokenBalance = _maxTxAmount;}
            txCount = 0;
            swapAndLiquify(contractTokenBalance);
        }
        
        bool takeFee = true;
        bool isBuy;
        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        } else {
         
            if(from == uniswapV2Pair){
                isBuy = true;
            }

            txCount++;

        }

        _tokenTransfer(from, to, amount, takeFee, isBuy);

    }
    
    function sendToWallet(address payable wallet, uint256 amount) private {
            wallet.transfer(amount);

        }


    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {

            uint256 tokens_to_Burn = contractTokenBalance * Percent_Burn / 100;
            _tTotal = _tTotal - tokens_to_Burn;
            _tOwned[Wallet_Burn] = _tOwned[Wallet_Burn] + tokens_to_Burn;
            _tOwned[address(this)] = _tOwned[address(this)] - tokens_to_Burn; 

            uint256 tokens_to_M = contractTokenBalance * Percent_Marketing / 100;
            uint256 tokens_to_D = contractTokenBalance * Percent_Dev / 100;
            uint256 tokens_to_LP_Half = contractTokenBalance * Percent_AutoLP / 200;

            uint256 balanceBeforeSwap = address(this).balance;
            swapTokensForWETH(tokens_to_LP_Half + tokens_to_M + tokens_to_D);
            uint256 WETH_Total = address(this).balance - balanceBeforeSwap;

            uint256 split_M = Percent_Marketing * 100 / (Percent_AutoLP + Percent_Marketing + Percent_Dev);
            uint256 WETH_M = WETH_Total * split_M / 100;

            uint256 split_D = Percent_Dev * 100 / (Percent_AutoLP + Percent_Marketing + Percent_Dev);
            uint256 WETH_D = WETH_Total * split_D / 100;


            addLiquidity(tokens_to_LP_Half, (WETH_Total - WETH_M - WETH_D));
            emit SwapAndLiquify(tokens_to_LP_Half, (WETH_Total - WETH_M - WETH_D), tokens_to_LP_Half);

            sendToWallet(Wallet_Marketing, WETH_M);

            WETH_Total = address(this).balance;
            sendToWallet(Wallet_Dev, WETH_Total);

            }

    function swapTokensForWETH(uint256 tokenAmount) private {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, 
            path,
            address(this),
            block.timestamp
        );
    }


    function addLiquidity(uint256 tokenAmount, uint256 WETHAmount) private {

        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: WETHAmount}(
            address(this),
            tokenAmount,
            0, 
            0,
            Wallet_Burn, 
            block.timestamp
        );
    } 

    function remove_Random_Tokens(address random_Token_Address, uint256 percent_of_Tokens) public returns(bool _sent){
        require(random_Token_Address != address(this), "Can not remove native token");
        uint256 totalRandom = IERC20(random_Token_Address).balanceOf(address(this));
        uint256 removeRandom = totalRandom*percent_of_Tokens/100;
        _sent = IERC20(random_Token_Address).transfer(Wallet_Dev, removeRandom);

    }


    function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee, bool isBuy) private {
        
        
        if(!takeFee){

            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+tAmount;
            emit Transfer(sender, recipient, tAmount);

            if(recipient == Wallet_Burn)
            _tTotal = _tTotal-tAmount;

            } else if (isBuy){

            uint256 buyFEE = tAmount*_Tax_On_Buy/100;
            uint256 tTransferAmount = tAmount-buyFEE;

            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+tTransferAmount;
            _tOwned[address(this)] = _tOwned[address(this)]+buyFEE;   
            emit Transfer(sender, recipient, tTransferAmount);

            if(recipient == Wallet_Burn)
            _tTotal = _tTotal-tTransferAmount;
            
            } else {

            uint256 sellFEE = tAmount*_Tax_On_Sell/100;
            uint256 tTransferAmount = tAmount-sellFEE;

            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+tTransferAmount;
            _tOwned[address(this)] = _tOwned[address(this)]+sellFEE;   
            emit Transfer(sender, recipient, tTransferAmount);

            if(recipient == Wallet_Burn)
            _tTotal = _tTotal-tTransferAmount;


            }

    }


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"true_or_false","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":"Percent_AutoLP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_Burn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_Dev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_Marketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Wallet_Burn","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Wallet_Dev","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Wallet_Marketing","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_Tax_On_Buy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_Tax_On_Sell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"theOwner","type":"address"},{"internalType":"address","name":"theSpender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"excludedMaxTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"random_Token_Address","type":"address"},{"internalType":"uint256","name":"percent_of_Tokens","type":"uint256"}],"name":"remove_Random_Tokens","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":[],"name":"triggerSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405273ab30ba7570efa1fbbad0a57af7589a8d77d5d122600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ab30ba7570efa1fbbad0a57af7589a8d77d5d122600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620000be9190620008b2565b620f4240620000ce919062000903565b6006556000600760006101000a81548160ff021916908360ff1602179055506005600760016101000a81548160ff021916908360ff160217905550600560085560056009556046600a556014600b556000600c55600a600d5560648060065462000139919062000903565b6200014591906200097d565b600e55600e54600f5560648060065462000160919062000903565b6200016c91906200097d565b6010556010546011556001601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff021916908315150217905550348015620001b857600080fd5b5073ab30ba7570efa1fbbad0a57af7589a8d77d5d1226000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600654600160006200029f620006ef60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000342573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000368919062000a1f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003d0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003f6919062000a1f565b6040518363ffffffff1660e01b81526004016200041592919062000a62565b6020604051808303816000875af115801562000435573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045b919062000a1f565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000620004f2620006ef60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200067f620006ef60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600654604051620006e0919062000aa0565b60405180910390a35062000abd565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620007a6578086048111156200077e576200077d62000718565b5b60018516156200078e5780820291505b80810290506200079e8562000747565b94506200075e565b94509492505050565b600082620007c1576001905062000894565b81620007d1576000905062000894565b8160018114620007ea5760028114620007f5576200082b565b600191505062000894565b60ff8411156200080a576200080962000718565b5b8360020a91508482111562000824576200082362000718565b5b5062000894565b5060208310610133831016604e8410600b8410161715620008655782820a9050838111156200085f576200085e62000718565b5b62000894565b62000874848484600162000754565b925090508184048111156200088e576200088d62000718565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620008bf826200089b565b9150620008cc83620008a5565b9250620008fb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620007af565b905092915050565b600062000910826200089b565b91506200091d836200089b565b92508282026200092d816200089b565b9150828204841483151762000947576200094662000718565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200098a826200089b565b915062000997836200089b565b925082620009aa57620009a96200094e565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009e782620009ba565b9050919050565b620009f981620009da565b811462000a0557600080fd5b50565b60008151905062000a1981620009ee565b92915050565b60006020828403121562000a385762000a37620009b5565b5b600062000a488482850162000a08565b91505092915050565b62000a5c81620009da565b82525050565b600060408201905062000a79600083018562000a51565b62000a88602083018462000a51565b9392505050565b62000a9a816200089b565b82525050565b600060208201905062000ab7600083018462000a8f565b92915050565b6136378062000acd6000396000f3fe6080604052600436106102085760003560e01c8063715018a611610118578063a457c2d7116100a0578063b43665e21161006f578063b43665e2146107a8578063bbb9f61f146107d3578063c6618d60146107fe578063dafd18e914610829578063dd62ed3e146108665761020f565b8063a457c2d7146106c6578063a9059cbb14610703578063a96e059814610740578063b1cb15821461077d5761020f565b80637d1db4a5116100e75780637d1db4a5146105ef578063805c0e0f1461061a5780638da5cb5b146106455780638f937cc41461067057806395d89b411461069b5761020f565b8063715018a614610547578063728d41c91461055e578063768dc7101461058757806378109e54146105c45761020f565b8063395093511161019b578063603176251161016a578063603176251461044e57806361c9a0dc1461047957806364f5a5bb146104a45780636b7cadbf146104cd57806370a082311461050a5761020f565b806339509351146103905780633f70a495146103cd57806349bd5a5e146103f85780634a74bb02146104235761020f565b806321dbd9eb116101d757806321dbd9eb146102d2578063220f6696146102fd57806323b872dd14610328578063313ce567146103655761020f565b806306fdde0314610214578063095ea7b31461023f5780631694505e1461027c57806318160ddd146102a75761020f565b3661020f57005b600080fd5b34801561022057600080fd5b506102296108a3565b60405161023691906129c1565b60405180910390f35b34801561024b57600080fd5b5061026660048036038101906102619190612a7c565b6108e0565b6040516102739190612ad7565b60405180910390f35b34801561028857600080fd5b506102916108fe565b60405161029e9190612b51565b60405180910390f35b3480156102b357600080fd5b506102bc610924565b6040516102c99190612b7b565b60405180910390f35b3480156102de57600080fd5b506102e761092e565b6040516102f49190612b7b565b60405180910390f35b34801561030957600080fd5b50610312610934565b60405161031f9190612ad7565b60405180910390f35b34801561033457600080fd5b5061034f600480360381019061034a9190612b96565b610947565b60405161035c9190612ad7565b60405180910390f35b34801561037157600080fd5b5061037a610a20565b6040516103879190612c05565b60405180910390f35b34801561039c57600080fd5b506103b760048036038101906103b29190612a7c565b610a29565b6040516103c49190612ad7565b60405180910390f35b3480156103d957600080fd5b506103e2610adc565b6040516103ef9190612b7b565b60405180910390f35b34801561040457600080fd5b5061040d610ae2565b60405161041a9190612c2f565b60405180910390f35b34801561042f57600080fd5b50610438610b08565b6040516104459190612ad7565b60405180910390f35b34801561045a57600080fd5b50610463610b1b565b6040516104709190612b7b565b60405180910390f35b34801561048557600080fd5b5061048e610b21565b60405161049b9190612b7b565b60405180910390f35b3480156104b057600080fd5b506104cb60048036038101906104c69190612c4a565b610b27565b005b3480156104d957600080fd5b506104f460048036038101906104ef9190612ca3565b610bc6565b6040516105019190612ad7565b60405180910390f35b34801561051657600080fd5b50610531600480360381019061052c9190612ce3565b610c29565b60405161053e9190612b7b565b60405180910390f35b34801561055357600080fd5b5061055c610c72565b005b34801561056a57600080fd5b5061058560048036038101906105809190612c4a565b610d30565b005b34801561059357600080fd5b506105ae60048036038101906105a99190612ce3565b610dcf565b6040516105bb9190612ad7565b60405180910390f35b3480156105d057600080fd5b506105d9610def565b6040516105e69190612b7b565b60405180910390f35b3480156105fb57600080fd5b50610604610df5565b6040516106119190612b7b565b60405180910390f35b34801561062657600080fd5b5061062f610dfb565b60405161063c9190612d31565b60405180910390f35b34801561065157600080fd5b5061065a610e01565b6040516106679190612c2f565b60405180910390f35b34801561067c57600080fd5b50610685610e2a565b6040516106929190612ad7565b60405180910390f35b3480156106a757600080fd5b506106b0610e3d565b6040516106bd91906129c1565b60405180910390f35b3480156106d257600080fd5b506106ed60048036038101906106e89190612a7c565b610e7a565b6040516106fa9190612ad7565b60405180910390f35b34801561070f57600080fd5b5061072a60048036038101906107259190612a7c565b610f47565b6040516107379190612ad7565b60405180910390f35b34801561074c57600080fd5b5061076760048036038101906107629190612ce3565b610f65565b6040516107749190612ad7565b60405180910390f35b34801561078957600080fd5b50610792610ff5565b60405161079f9190612b7b565b60405180910390f35b3480156107b457600080fd5b506107bd610ffb565b6040516107ca9190612d31565b60405180910390f35b3480156107df57600080fd5b506107e8611021565b6040516107f59190612d31565b60405180910390f35b34801561080a57600080fd5b50610813611047565b6040516108209190612b7b565b60405180910390f35b34801561083557600080fd5b50610850600480360381019061084b9190612a7c565b61104d565b60405161085d9190612ad7565b60405180910390f35b34801561087257600080fd5b5061088d60048036038101906108889190612d4c565b611201565b60405161089a9190612b7b565b60405180910390f35b60606040518060400160405280600c81526020017f42756c6c6973682047726f770000000000000000000000000000000000000000815250905090565b60006108f46108ed611288565b8484611290565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600654905090565b600c5481565b601360149054906101000a900460ff1681565b6000610954848484611424565b610a1584610960611288565b610a10856040518060600160405280602881526020016135b560289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109c6611288565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a7d9092919063ffffffff16565b611290565b600190509392505050565b60006009905090565b6000610ad2610a36611288565b84610acd8560026000610a47611288565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ad290919063ffffffff16565b611290565b6001905092915050565b60085481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601360159054906101000a900460ff1681565b600a5481565b600d5481565b610b2f611288565b73ffffffffffffffffffffffffffffffffffffffff16610b4d610e01565b73ffffffffffffffffffffffffffffffffffffffff1614610ba3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9a90612dd8565b60405180910390fd5b606481600654610bb39190612e27565b610bbd9190612e98565b60108190555050565b600081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d38611288565b73ffffffffffffffffffffffffffffffffffffffff16610d56610e01565b73ffffffffffffffffffffffffffffffffffffffff1614610dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da390612dd8565b60405180910390fd5b606481600654610dbc9190612e27565b610dc69190612e98565b600e8190555050565b60036020528060005260406000206000915054906101000a900460ff1681565b600e5481565b60105481565b61dead81565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601360169054906101000a900460ff1681565b60606040518060400160405280600481526020017f24424c4700000000000000000000000000000000000000000000000000000000815250905090565b6000610f3d610e87611288565b84610f38856040518060600160405280602581526020016135dd6025913960026000610eb1611288565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a7d9092919063ffffffff16565b611290565b6001905092915050565b6000610f5b610f54611288565b8484611424565b6001905092915050565b60006001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506006546010819055506001601360166101000a81548160ff021916908315150217905550600654600e8190555060019050919050565b60095481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b490612f15565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110f89190612c2f565b602060405180830381865afa158015611115573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111399190612f4a565b905060006064848361114b9190612e27565b6111559190612e98565b90508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016111b4929190612f98565b6020604051808303816000875af11580156111d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f79190612fd6565b9250505092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112fa5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611339576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113309061304f565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114179190612b7b565b60405180910390a3505050565b61142c610e01565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611495575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114cd57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115275750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115665750611536610e01565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156115ca57600061157683610c29565b9050600e548282611587919061306f565b11156115c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bf906130ef565b60405180910390fd5b505b6115d2610e01565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116405750611610610e01565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561169a5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116b25750601360169054906101000a900460ff165b611a78576116be610e01565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461173657601054811115611735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172c9061315b565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117a05750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6117df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d6906131c7565b60405180910390fd5b60008111611822576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181990613259565b60405180910390fd5b600760019054906101000a900460ff1660ff16600760009054906101000a900460ff1660ff16101580156118635750601360149054906101000a900460ff16155b80156118bd5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118d55750601360159054906101000a900460ff165b1561191e5760006118e530610c29565b90506010548111156118f75760105490505b6000600760006101000a81548160ff021916908360ff16021790555061191c81611ae8565b505b6000600190506000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119c75750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156119d55760009150611a68565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611a2f57600190505b6007600081819054906101000a900460ff1680929190611a4e90613279565b91906101000a81548160ff021916908360ff160217905550505b611a758585858585611ec8565b50505b505050565b6000838311158290611ac5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abc91906129c1565b60405180910390fd5b5082840390509392505050565b60008183611ae0919061306f565b905092915050565b6001601360146101000a81548160ff02191690831515021790555060006064600c5483611b159190612e27565b611b1f9190612e98565b905080600654611b2f91906132a2565b600681905550806001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b82919061306f565b6001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c1291906132a2565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006064600a5484611c679190612e27565b611c719190612e98565b905060006064600b5485611c859190612e27565b611c8f9190612e98565b9050600060c8600d5486611ca39190612e27565b611cad9190612e98565b905060003073ffffffffffffffffffffffffffffffffffffffff16319050611cea838584611cdb919061306f565b611ce5919061306f565b6125c3565b6000813073ffffffffffffffffffffffffffffffffffffffff1631611d0f91906132a2565b90506000600b54600a54600d54611d26919061306f565b611d30919061306f565b6064600a54611d3f9190612e27565b611d499190612e98565b9050600060648284611d5b9190612e27565b611d659190612e98565b90506000600b54600a54600d54611d7c919061306f565b611d86919061306f565b6064600b54611d959190612e27565b611d9f9190612e98565b9050600060648286611db19190612e27565b611dbb9190612e98565b9050611ddd87828588611dce91906132a2565b611dd891906132a2565b612806565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56187828588611e0c91906132a2565b611e1691906132a2565b89604051611e26939291906132d6565b60405180910390a1611e5a600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846128e6565b3073ffffffffffffffffffffffffffffffffffffffff16319450611ea0600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866128e6565b505050505050505050506000601360146101000a81548160ff02191690831515021790555050565b8161209d5782600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f1891906132a2565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fa6919061306f565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516120469190612b7b565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612098578260065461209191906132a2565b6006819055505b6125bc565b80156123315760006064600854856120b59190612e27565b6120bf9190612e98565b9050600081856120cf91906132a2565b905084600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461211c91906132a2565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121aa919061306f565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612238919061306f565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122d89190612b7b565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361232a578060065461232391906132a2565b6006819055505b50506125bb565b60006064600954856123439190612e27565b61234d9190612e98565b90506000818561235d91906132a2565b905084600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123aa91906132a2565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612438919061306f565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c6919061306f565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125669190612b7b565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036125b857806006546125b191906132a2565b6006819055505b50505b5b5050505050565b6000600267ffffffffffffffff8111156125e0576125df61330d565b5b60405190808252806020026020018201604052801561260e5781602001602082028036833780820191505090505b50905030816000815181106126265761262561333c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126f19190613380565b816001815181106127055761270461333c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061276c30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611290565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016127d09594939291906134a6565b600060405180830381600087803b1580156127ea57600080fd5b505af11580156127fe573d6000803e3d6000fd5b505050505050565b61283330601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611290565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b815260040161289c96959493929190613500565b60606040518083038185885af11580156128ba573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906128df9190613561565b5050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561292c573d6000803e3d6000fd5b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561296b578082015181840152602081019050612950565b60008484015250505050565b6000601f19601f8301169050919050565b600061299382612931565b61299d818561293c565b93506129ad81856020860161294d565b6129b681612977565b840191505092915050565b600060208201905081810360008301526129db8184612988565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a13826129e8565b9050919050565b612a2381612a08565b8114612a2e57600080fd5b50565b600081359050612a4081612a1a565b92915050565b6000819050919050565b612a5981612a46565b8114612a6457600080fd5b50565b600081359050612a7681612a50565b92915050565b60008060408385031215612a9357612a926129e3565b5b6000612aa185828601612a31565b9250506020612ab285828601612a67565b9150509250929050565b60008115159050919050565b612ad181612abc565b82525050565b6000602082019050612aec6000830184612ac8565b92915050565b6000819050919050565b6000612b17612b12612b0d846129e8565b612af2565b6129e8565b9050919050565b6000612b2982612afc565b9050919050565b6000612b3b82612b1e565b9050919050565b612b4b81612b30565b82525050565b6000602082019050612b666000830184612b42565b92915050565b612b7581612a46565b82525050565b6000602082019050612b906000830184612b6c565b92915050565b600080600060608486031215612baf57612bae6129e3565b5b6000612bbd86828701612a31565b9350506020612bce86828701612a31565b9250506040612bdf86828701612a67565b9150509250925092565b600060ff82169050919050565b612bff81612be9565b82525050565b6000602082019050612c1a6000830184612bf6565b92915050565b612c2981612a08565b82525050565b6000602082019050612c446000830184612c20565b92915050565b600060208284031215612c6057612c5f6129e3565b5b6000612c6e84828501612a67565b91505092915050565b612c8081612abc565b8114612c8b57600080fd5b50565b600081359050612c9d81612c77565b92915050565b60008060408385031215612cba57612cb96129e3565b5b6000612cc885828601612a31565b9250506020612cd985828601612c8e565b9150509250929050565b600060208284031215612cf957612cf86129e3565b5b6000612d0784828501612a31565b91505092915050565b6000612d1b826129e8565b9050919050565b612d2b81612d10565b82525050565b6000602082019050612d466000830184612d22565b92915050565b60008060408385031215612d6357612d626129e3565b5b6000612d7185828601612a31565b9250506020612d8285828601612a31565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612dc260208361293c565b9150612dcd82612d8c565b602082019050919050565b60006020820190508181036000830152612df181612db5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612e3282612a46565b9150612e3d83612a46565b9250828202612e4b81612a46565b91508282048414831517612e6257612e61612df8565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612ea382612a46565b9150612eae83612a46565b925082612ebe57612ebd612e69565b5b828204905092915050565b7f43616e206e6f742072656d6f7665206e617469766520746f6b656e0000000000600082015250565b6000612eff601b8361293c565b9150612f0a82612ec9565b602082019050919050565b60006020820190508181036000830152612f2e81612ef2565b9050919050565b600081519050612f4481612a50565b92915050565b600060208284031215612f6057612f5f6129e3565b5b6000612f6e84828501612f35565b91505092915050565b6000612f8282612b1e565b9050919050565b612f9281612f77565b82525050565b6000604082019050612fad6000830185612f89565b612fba6020830184612b6c565b9392505050565b600081519050612fd081612c77565b92915050565b600060208284031215612fec57612feb6129e3565b5b6000612ffa84828501612fc1565b91505092915050565b7f4552523a207a65726f2061646472657373000000000000000000000000000000600082015250565b600061303960118361293c565b915061304482613003565b602082019050919050565b600060208201905081810360008301526130688161302c565b9050919050565b600061307a82612a46565b915061308583612a46565b925082820190508082111561309d5761309c612df8565b5b92915050565b7f4f7665722077616c6c6574206c696d69742e0000000000000000000000000000600082015250565b60006130d960128361293c565b91506130e4826130a3565b602082019050919050565b60006020820190508181036000830152613108816130cc565b9050919050565b7f4f766572207472616e73616374696f6e206c696d69742e000000000000000000600082015250565b600061314560178361293c565b91506131508261310f565b602082019050919050565b6000602082019050818103600083015261317481613138565b9050919050565b7f4552523a205573696e6720302061646472657373210000000000000000000000600082015250565b60006131b160158361293c565b91506131bc8261317b565b602082019050919050565b600060208201905081810360008301526131e0816131a4565b9050919050565b7f546f6b656e2076616c7565206d75737420626520686967686572207468616e2060008201527f7a65726f2e000000000000000000000000000000000000000000000000000000602082015250565b600061324360258361293c565b915061324e826131e7565b604082019050919050565b6000602082019050818103600083015261327281613236565b9050919050565b600061328482612be9565b915060ff820361329757613296612df8565b5b600182019050919050565b60006132ad82612a46565b91506132b883612a46565b92508282039050818111156132d0576132cf612df8565b5b92915050565b60006060820190506132eb6000830186612b6c565b6132f86020830185612b6c565b6133056040830184612b6c565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061337a81612a1a565b92915050565b600060208284031215613396576133956129e3565b5b60006133a48482850161336b565b91505092915050565b6000819050919050565b60006133d26133cd6133c8846133ad565b612af2565b612a46565b9050919050565b6133e2816133b7565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61341d81612a08565b82525050565b600061342f8383613414565b60208301905092915050565b6000602082019050919050565b6000613453826133e8565b61345d81856133f3565b935061346883613404565b8060005b838110156134995781516134808882613423565b975061348b8361343b565b92505060018101905061346c565b5085935050505092915050565b600060a0820190506134bb6000830188612b6c565b6134c860208301876133d9565b81810360408301526134da8186613448565b90506134e96060830185612c20565b6134f66080830184612b6c565b9695505050505050565b600060c0820190506135156000830189612c20565b6135226020830188612b6c565b61352f60408301876133d9565b61353c60608301866133d9565b6135496080830185612f89565b61355660a0830184612b6c565b979650505050505050565b60008060006060848603121561357a576135796129e3565b5b600061358886828701612f35565b935050602061359986828701612f35565b92505060406135aa86828701612f35565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122093cbac2806eb781e616020b670c6b0e831716e42c4c344b43427dc4690a1dc5164736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102085760003560e01c8063715018a611610118578063a457c2d7116100a0578063b43665e21161006f578063b43665e2146107a8578063bbb9f61f146107d3578063c6618d60146107fe578063dafd18e914610829578063dd62ed3e146108665761020f565b8063a457c2d7146106c6578063a9059cbb14610703578063a96e059814610740578063b1cb15821461077d5761020f565b80637d1db4a5116100e75780637d1db4a5146105ef578063805c0e0f1461061a5780638da5cb5b146106455780638f937cc41461067057806395d89b411461069b5761020f565b8063715018a614610547578063728d41c91461055e578063768dc7101461058757806378109e54146105c45761020f565b8063395093511161019b578063603176251161016a578063603176251461044e57806361c9a0dc1461047957806364f5a5bb146104a45780636b7cadbf146104cd57806370a082311461050a5761020f565b806339509351146103905780633f70a495146103cd57806349bd5a5e146103f85780634a74bb02146104235761020f565b806321dbd9eb116101d757806321dbd9eb146102d2578063220f6696146102fd57806323b872dd14610328578063313ce567146103655761020f565b806306fdde0314610214578063095ea7b31461023f5780631694505e1461027c57806318160ddd146102a75761020f565b3661020f57005b600080fd5b34801561022057600080fd5b506102296108a3565b60405161023691906129c1565b60405180910390f35b34801561024b57600080fd5b5061026660048036038101906102619190612a7c565b6108e0565b6040516102739190612ad7565b60405180910390f35b34801561028857600080fd5b506102916108fe565b60405161029e9190612b51565b60405180910390f35b3480156102b357600080fd5b506102bc610924565b6040516102c99190612b7b565b60405180910390f35b3480156102de57600080fd5b506102e761092e565b6040516102f49190612b7b565b60405180910390f35b34801561030957600080fd5b50610312610934565b60405161031f9190612ad7565b60405180910390f35b34801561033457600080fd5b5061034f600480360381019061034a9190612b96565b610947565b60405161035c9190612ad7565b60405180910390f35b34801561037157600080fd5b5061037a610a20565b6040516103879190612c05565b60405180910390f35b34801561039c57600080fd5b506103b760048036038101906103b29190612a7c565b610a29565b6040516103c49190612ad7565b60405180910390f35b3480156103d957600080fd5b506103e2610adc565b6040516103ef9190612b7b565b60405180910390f35b34801561040457600080fd5b5061040d610ae2565b60405161041a9190612c2f565b60405180910390f35b34801561042f57600080fd5b50610438610b08565b6040516104459190612ad7565b60405180910390f35b34801561045a57600080fd5b50610463610b1b565b6040516104709190612b7b565b60405180910390f35b34801561048557600080fd5b5061048e610b21565b60405161049b9190612b7b565b60405180910390f35b3480156104b057600080fd5b506104cb60048036038101906104c69190612c4a565b610b27565b005b3480156104d957600080fd5b506104f460048036038101906104ef9190612ca3565b610bc6565b6040516105019190612ad7565b60405180910390f35b34801561051657600080fd5b50610531600480360381019061052c9190612ce3565b610c29565b60405161053e9190612b7b565b60405180910390f35b34801561055357600080fd5b5061055c610c72565b005b34801561056a57600080fd5b5061058560048036038101906105809190612c4a565b610d30565b005b34801561059357600080fd5b506105ae60048036038101906105a99190612ce3565b610dcf565b6040516105bb9190612ad7565b60405180910390f35b3480156105d057600080fd5b506105d9610def565b6040516105e69190612b7b565b60405180910390f35b3480156105fb57600080fd5b50610604610df5565b6040516106119190612b7b565b60405180910390f35b34801561062657600080fd5b5061062f610dfb565b60405161063c9190612d31565b60405180910390f35b34801561065157600080fd5b5061065a610e01565b6040516106679190612c2f565b60405180910390f35b34801561067c57600080fd5b50610685610e2a565b6040516106929190612ad7565b60405180910390f35b3480156106a757600080fd5b506106b0610e3d565b6040516106bd91906129c1565b60405180910390f35b3480156106d257600080fd5b506106ed60048036038101906106e89190612a7c565b610e7a565b6040516106fa9190612ad7565b60405180910390f35b34801561070f57600080fd5b5061072a60048036038101906107259190612a7c565b610f47565b6040516107379190612ad7565b60405180910390f35b34801561074c57600080fd5b5061076760048036038101906107629190612ce3565b610f65565b6040516107749190612ad7565b60405180910390f35b34801561078957600080fd5b50610792610ff5565b60405161079f9190612b7b565b60405180910390f35b3480156107b457600080fd5b506107bd610ffb565b6040516107ca9190612d31565b60405180910390f35b3480156107df57600080fd5b506107e8611021565b6040516107f59190612d31565b60405180910390f35b34801561080a57600080fd5b50610813611047565b6040516108209190612b7b565b60405180910390f35b34801561083557600080fd5b50610850600480360381019061084b9190612a7c565b61104d565b60405161085d9190612ad7565b60405180910390f35b34801561087257600080fd5b5061088d60048036038101906108889190612d4c565b611201565b60405161089a9190612b7b565b60405180910390f35b60606040518060400160405280600c81526020017f42756c6c6973682047726f770000000000000000000000000000000000000000815250905090565b60006108f46108ed611288565b8484611290565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600654905090565b600c5481565b601360149054906101000a900460ff1681565b6000610954848484611424565b610a1584610960611288565b610a10856040518060600160405280602881526020016135b560289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109c6611288565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a7d9092919063ffffffff16565b611290565b600190509392505050565b60006009905090565b6000610ad2610a36611288565b84610acd8560026000610a47611288565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ad290919063ffffffff16565b611290565b6001905092915050565b60085481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601360159054906101000a900460ff1681565b600a5481565b600d5481565b610b2f611288565b73ffffffffffffffffffffffffffffffffffffffff16610b4d610e01565b73ffffffffffffffffffffffffffffffffffffffff1614610ba3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9a90612dd8565b60405180910390fd5b606481600654610bb39190612e27565b610bbd9190612e98565b60108190555050565b600081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d38611288565b73ffffffffffffffffffffffffffffffffffffffff16610d56610e01565b73ffffffffffffffffffffffffffffffffffffffff1614610dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da390612dd8565b60405180910390fd5b606481600654610dbc9190612e27565b610dc69190612e98565b600e8190555050565b60036020528060005260406000206000915054906101000a900460ff1681565b600e5481565b60105481565b61dead81565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601360169054906101000a900460ff1681565b60606040518060400160405280600481526020017f24424c4700000000000000000000000000000000000000000000000000000000815250905090565b6000610f3d610e87611288565b84610f38856040518060600160405280602581526020016135dd6025913960026000610eb1611288565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a7d9092919063ffffffff16565b611290565b6001905092915050565b6000610f5b610f54611288565b8484611424565b6001905092915050565b60006001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506006546010819055506001601360166101000a81548160ff021916908315150217905550600654600e8190555060019050919050565b60095481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b490612f15565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110f89190612c2f565b602060405180830381865afa158015611115573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111399190612f4a565b905060006064848361114b9190612e27565b6111559190612e98565b90508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016111b4929190612f98565b6020604051808303816000875af11580156111d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f79190612fd6565b9250505092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112fa5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611339576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113309061304f565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114179190612b7b565b60405180910390a3505050565b61142c610e01565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611495575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114cd57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115275750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115665750611536610e01565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156115ca57600061157683610c29565b9050600e548282611587919061306f565b11156115c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bf906130ef565b60405180910390fd5b505b6115d2610e01565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116405750611610610e01565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561169a5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116b25750601360169054906101000a900460ff165b611a78576116be610e01565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461173657601054811115611735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172c9061315b565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117a05750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6117df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d6906131c7565b60405180910390fd5b60008111611822576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181990613259565b60405180910390fd5b600760019054906101000a900460ff1660ff16600760009054906101000a900460ff1660ff16101580156118635750601360149054906101000a900460ff16155b80156118bd5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118d55750601360159054906101000a900460ff165b1561191e5760006118e530610c29565b90506010548111156118f75760105490505b6000600760006101000a81548160ff021916908360ff16021790555061191c81611ae8565b505b6000600190506000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119c75750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156119d55760009150611a68565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611a2f57600190505b6007600081819054906101000a900460ff1680929190611a4e90613279565b91906101000a81548160ff021916908360ff160217905550505b611a758585858585611ec8565b50505b505050565b6000838311158290611ac5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abc91906129c1565b60405180910390fd5b5082840390509392505050565b60008183611ae0919061306f565b905092915050565b6001601360146101000a81548160ff02191690831515021790555060006064600c5483611b159190612e27565b611b1f9190612e98565b905080600654611b2f91906132a2565b600681905550806001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b82919061306f565b6001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c1291906132a2565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006064600a5484611c679190612e27565b611c719190612e98565b905060006064600b5485611c859190612e27565b611c8f9190612e98565b9050600060c8600d5486611ca39190612e27565b611cad9190612e98565b905060003073ffffffffffffffffffffffffffffffffffffffff16319050611cea838584611cdb919061306f565b611ce5919061306f565b6125c3565b6000813073ffffffffffffffffffffffffffffffffffffffff1631611d0f91906132a2565b90506000600b54600a54600d54611d26919061306f565b611d30919061306f565b6064600a54611d3f9190612e27565b611d499190612e98565b9050600060648284611d5b9190612e27565b611d659190612e98565b90506000600b54600a54600d54611d7c919061306f565b611d86919061306f565b6064600b54611d959190612e27565b611d9f9190612e98565b9050600060648286611db19190612e27565b611dbb9190612e98565b9050611ddd87828588611dce91906132a2565b611dd891906132a2565b612806565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56187828588611e0c91906132a2565b611e1691906132a2565b89604051611e26939291906132d6565b60405180910390a1611e5a600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846128e6565b3073ffffffffffffffffffffffffffffffffffffffff16319450611ea0600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866128e6565b505050505050505050506000601360146101000a81548160ff02191690831515021790555050565b8161209d5782600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f1891906132a2565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fa6919061306f565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516120469190612b7b565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612098578260065461209191906132a2565b6006819055505b6125bc565b80156123315760006064600854856120b59190612e27565b6120bf9190612e98565b9050600081856120cf91906132a2565b905084600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461211c91906132a2565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121aa919061306f565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612238919061306f565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122d89190612b7b565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361232a578060065461232391906132a2565b6006819055505b50506125bb565b60006064600954856123439190612e27565b61234d9190612e98565b90506000818561235d91906132a2565b905084600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123aa91906132a2565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612438919061306f565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c6919061306f565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125669190612b7b565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036125b857806006546125b191906132a2565b6006819055505b50505b5b5050505050565b6000600267ffffffffffffffff8111156125e0576125df61330d565b5b60405190808252806020026020018201604052801561260e5781602001602082028036833780820191505090505b50905030816000815181106126265761262561333c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126f19190613380565b816001815181106127055761270461333c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061276c30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611290565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016127d09594939291906134a6565b600060405180830381600087803b1580156127ea57600080fd5b505af11580156127fe573d6000803e3d6000fd5b505050505050565b61283330601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611290565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b815260040161289c96959493929190613500565b60606040518083038185885af11580156128ba573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906128df9190613561565b5050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561292c573d6000803e3d6000fd5b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561296b578082015181840152602081019050612950565b60008484015250505050565b6000601f19601f8301169050919050565b600061299382612931565b61299d818561293c565b93506129ad81856020860161294d565b6129b681612977565b840191505092915050565b600060208201905081810360008301526129db8184612988565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a13826129e8565b9050919050565b612a2381612a08565b8114612a2e57600080fd5b50565b600081359050612a4081612a1a565b92915050565b6000819050919050565b612a5981612a46565b8114612a6457600080fd5b50565b600081359050612a7681612a50565b92915050565b60008060408385031215612a9357612a926129e3565b5b6000612aa185828601612a31565b9250506020612ab285828601612a67565b9150509250929050565b60008115159050919050565b612ad181612abc565b82525050565b6000602082019050612aec6000830184612ac8565b92915050565b6000819050919050565b6000612b17612b12612b0d846129e8565b612af2565b6129e8565b9050919050565b6000612b2982612afc565b9050919050565b6000612b3b82612b1e565b9050919050565b612b4b81612b30565b82525050565b6000602082019050612b666000830184612b42565b92915050565b612b7581612a46565b82525050565b6000602082019050612b906000830184612b6c565b92915050565b600080600060608486031215612baf57612bae6129e3565b5b6000612bbd86828701612a31565b9350506020612bce86828701612a31565b9250506040612bdf86828701612a67565b9150509250925092565b600060ff82169050919050565b612bff81612be9565b82525050565b6000602082019050612c1a6000830184612bf6565b92915050565b612c2981612a08565b82525050565b6000602082019050612c446000830184612c20565b92915050565b600060208284031215612c6057612c5f6129e3565b5b6000612c6e84828501612a67565b91505092915050565b612c8081612abc565b8114612c8b57600080fd5b50565b600081359050612c9d81612c77565b92915050565b60008060408385031215612cba57612cb96129e3565b5b6000612cc885828601612a31565b9250506020612cd985828601612c8e565b9150509250929050565b600060208284031215612cf957612cf86129e3565b5b6000612d0784828501612a31565b91505092915050565b6000612d1b826129e8565b9050919050565b612d2b81612d10565b82525050565b6000602082019050612d466000830184612d22565b92915050565b60008060408385031215612d6357612d626129e3565b5b6000612d7185828601612a31565b9250506020612d8285828601612a31565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612dc260208361293c565b9150612dcd82612d8c565b602082019050919050565b60006020820190508181036000830152612df181612db5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612e3282612a46565b9150612e3d83612a46565b9250828202612e4b81612a46565b91508282048414831517612e6257612e61612df8565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612ea382612a46565b9150612eae83612a46565b925082612ebe57612ebd612e69565b5b828204905092915050565b7f43616e206e6f742072656d6f7665206e617469766520746f6b656e0000000000600082015250565b6000612eff601b8361293c565b9150612f0a82612ec9565b602082019050919050565b60006020820190508181036000830152612f2e81612ef2565b9050919050565b600081519050612f4481612a50565b92915050565b600060208284031215612f6057612f5f6129e3565b5b6000612f6e84828501612f35565b91505092915050565b6000612f8282612b1e565b9050919050565b612f9281612f77565b82525050565b6000604082019050612fad6000830185612f89565b612fba6020830184612b6c565b9392505050565b600081519050612fd081612c77565b92915050565b600060208284031215612fec57612feb6129e3565b5b6000612ffa84828501612fc1565b91505092915050565b7f4552523a207a65726f2061646472657373000000000000000000000000000000600082015250565b600061303960118361293c565b915061304482613003565b602082019050919050565b600060208201905081810360008301526130688161302c565b9050919050565b600061307a82612a46565b915061308583612a46565b925082820190508082111561309d5761309c612df8565b5b92915050565b7f4f7665722077616c6c6574206c696d69742e0000000000000000000000000000600082015250565b60006130d960128361293c565b91506130e4826130a3565b602082019050919050565b60006020820190508181036000830152613108816130cc565b9050919050565b7f4f766572207472616e73616374696f6e206c696d69742e000000000000000000600082015250565b600061314560178361293c565b91506131508261310f565b602082019050919050565b6000602082019050818103600083015261317481613138565b9050919050565b7f4552523a205573696e6720302061646472657373210000000000000000000000600082015250565b60006131b160158361293c565b91506131bc8261317b565b602082019050919050565b600060208201905081810360008301526131e0816131a4565b9050919050565b7f546f6b656e2076616c7565206d75737420626520686967686572207468616e2060008201527f7a65726f2e000000000000000000000000000000000000000000000000000000602082015250565b600061324360258361293c565b915061324e826131e7565b604082019050919050565b6000602082019050818103600083015261327281613236565b9050919050565b600061328482612be9565b915060ff820361329757613296612df8565b5b600182019050919050565b60006132ad82612a46565b91506132b883612a46565b92508282039050818111156132d0576132cf612df8565b5b92915050565b60006060820190506132eb6000830186612b6c565b6132f86020830185612b6c565b6133056040830184612b6c565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061337a81612a1a565b92915050565b600060208284031215613396576133956129e3565b5b60006133a48482850161336b565b91505092915050565b6000819050919050565b60006133d26133cd6133c8846133ad565b612af2565b612a46565b9050919050565b6133e2816133b7565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61341d81612a08565b82525050565b600061342f8383613414565b60208301905092915050565b6000602082019050919050565b6000613453826133e8565b61345d81856133f3565b935061346883613404565b8060005b838110156134995781516134808882613423565b975061348b8361343b565b92505060018101905061346c565b5085935050505092915050565b600060a0820190506134bb6000830188612b6c565b6134c860208301876133d9565b81810360408301526134da8186613448565b90506134e96060830185612c20565b6134f66080830184612b6c565b9695505050505050565b600060c0820190506135156000830189612c20565b6135226020830188612b6c565b61352f60408301876133d9565b61353c60608301866133d9565b6135496080830185612f89565b61355660a0830184612b6c565b979650505050505050565b60008060006060848603121561357a576135796129e3565b5b600061358886828701612f35565b935050602061359986828701612f35565b92505060406135aa86828701612f35565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122093cbac2806eb781e616020b670c6b0e831716e42c4c344b43427dc4690a1dc5164736f6c63430008110033

Deployed Bytecode Sourcemap

14181:12340:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17526:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18369:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16097:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17803:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15770:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16180:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18538:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17712:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18859:227;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15611:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16145:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16215:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15688:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15808:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19766:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19613:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17906:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14645:138;;;;;;;;;;;;;:::i;:::-;;19888:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14918:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15851:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15976:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15174:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14422:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16262:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17617:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19094:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18031:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19371:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15648:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14979:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15080:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15732:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24606:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18206:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17526:83;17563:13;17596:5;;;;;;;;;;;;;;;;;17589:12;;17526:83;:::o;18369:161::-;18444:4;18461:39;18470:12;:10;:12::i;:::-;18484:7;18493:6;18461:8;:39::i;:::-;18518:4;18511:11;;18369:161;;;;:::o;16097:41::-;;;;;;;;;;;;;:::o;17803:95::-;17856:7;17883;;17876:14;;17803:95;:::o;15770:31::-;;;;:::o;16180:28::-;;;;;;;;;;;;;:::o;18538:313::-;18636:4;18653:36;18663:6;18671:9;18682:6;18653:9;:36::i;:::-;18700:121;18709:6;18717:12;:10;:12::i;:::-;18731:89;18769:6;18731:89;;;;;;;;;;;;;;;;;:11;:19;18743:6;18731:19;;;;;;;;;;;;;;;:33;18751:12;:10;:12::i;:::-;18731:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;18700:8;:121::i;:::-;18839:4;18832:11;;18538:313;;;;;:::o;17712:83::-;17753:5;15367:1;17771:16;;17712:83;:::o;18859:227::-;18947:4;18964:83;18973:12;:10;:12::i;:::-;18987:7;18996:50;19035:10;18996:11;:25;19008:12;:10;:12::i;:::-;18996:25;;;;;;;;;;;;;;;:34;19022:7;18996:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;18964:8;:83::i;:::-;19074:4;19067:11;;18859:227;;;;:::o;15611:30::-;;;;:::o;16145:28::-;;;;;;;;;;;;;:::o;16215:40::-;;;;;;;;;;;;;:::o;15688:37::-;;;;:::o;15808:34::-;;;;:::o;19766:114::-;14568:12;:10;:12::i;:::-;14557:23;;:7;:5;:7::i;:::-;:23;;;14549:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19869:3:::1;19860:7;19850;;:17;;;;:::i;:::-;:22;;;;:::i;:::-;19835:12;:37;;;;19766:114:::0;:::o;19613:145::-;19680:4;19723:5;19696:18;:24;19715:4;19696:24;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;19746:4;19739:11;;19613:145;;;;:::o;17906:117::-;17972:7;17999;:16;18007:7;17999:16;;;;;;;;;;;;;;;;17992:23;;17906:117;;;:::o;14645:138::-;14742:1;14705:40;;14726:6;;;;;;;;;;14705:40;;;;;;;;;;;;14773:1;14756:6;;:19;;;;;;;;;;;;;;;;;;14645:138::o;19888:121::-;14568:12;:10;:12::i;:::-;14557:23;;:7;:5;:7::i;:::-;:23;;;14549:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19998:3:::1;19989:7;19979;;:17;;;;:::i;:::-;:22;;;;:::i;:::-;19961:15;:40;;;;19888:121:::0;:::o;14918:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;15851:52::-;;;;:::o;15976:49::-;;;;:::o;15174:97::-;15228:42;15174:97;:::o;14422:87::-;14468:7;14495:6;;;;;;;;;;;14488:13;;14422:87;:::o;16262:31::-;;;;;;;;;;;;;:::o;17617:87::-;17656:13;17689:7;;;;;;;;;;;;;;;;;17682:14;;17617:87;:::o;19094:269::-;19187:4;19204:129;19213:12;:10;:12::i;:::-;19227:7;19236:96;19275:15;19236:96;;;;;;;;;;;;;;;;;:11;:25;19248:12;:10;:12::i;:::-;19236:25;;;;;;;;;;;;;;;:34;19262:7;19236:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;19204:8;:129::i;:::-;19351:4;19344:11;;19094:269;;;;:::o;18031:167::-;18109:4;18126:42;18136:12;:10;:12::i;:::-;18150:9;18161:6;18126:9;:42::i;:::-;18186:4;18179:11;;18031:167;;;;:::o;19371:234::-;19429:4;19473;19446:18;:24;19465:4;19446:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;19503:7;;19488:12;:22;;;;19535:4;19521:11;;:18;;;;;;;;;;;;;;;;;;19568:7;;19550:15;:25;;;;19593:4;19586:11;;19371:234;;;:::o;15648:31::-;;;;:::o;14979:93::-;;;;;;;;;;;;;:::o;15080:87::-;;;;;;;;;;;;;:::o;15732:31::-;;;;:::o;24606:446::-;24708:10;24770:4;24738:37;;:20;:37;;;24730:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;24818:19;24847:20;24840:38;;;24887:4;24840:53;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24818:75;;24904:20;24957:3;24939:17;24927:11;:29;;;;:::i;:::-;:33;;;;:::i;:::-;24904:56;;24986:20;24979:37;;;25017:10;;;;;;;;;;;25029:12;24979:63;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24971:71;;24719:333;;24606:446;;;;:::o;18206:155::-;18293:7;18320:11;:21;18332:8;18320:21;;;;;;;;;;;;;;;:33;18342:10;18320:33;;;;;;;;;;;;;;;;18313:40;;18206:155;;;;:::o;2804:98::-;2857:7;2884:10;2877:17;;2804:98;:::o;20160:290::-;20281:1;20261:22;;:8;:22;;;;:50;;;;;20309:1;20287:24;;:10;:24;;;;20261:50;20253:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;20380:6;20344:11;:21;20356:8;20344:21;;;;;;;;;;;;;;;:33;20366:10;20344:33;;;;;;;;;;;;;;;:42;;;;20421:10;20402:38;;20411:8;20402:38;;;20433:6;20402:38;;;;;;:::i;:::-;;;;;;;;20160:290;;;:::o;20458:1608::-;20584:7;:5;:7::i;:::-;20578:13;;:2;:13;;;;:47;;;;;15228:42;20608:17;;:2;:17;;;;20578:47;:83;;;;;20656:4;20642:19;;:2;:19;;;;20578:83;:119;;;;;20684:13;;;;;;;;;;;20678:19;;:2;:19;;;;20578:119;:151;;;;;20722:7;:5;:7::i;:::-;20714:15;;:4;:15;;;;20578:151;20574:292;;;20745:18;20766:13;20776:2;20766:9;:13::i;:::-;20745:34;;20827:15;;20816:6;20803:10;:19;;;;:::i;:::-;20802:40;;20794:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;20730:136;20574:292;20889:7;:5;:7::i;:::-;20881:15;;:4;:15;;;;:32;;;;;20906:7;:5;:7::i;:::-;20900:13;;:2;:13;;;;20881:32;:57;;;;;20925:13;;;;;;;;;;;20917:21;;:4;:21;;;;20881:57;:72;;;;;20942:11;;;;;;;;;;;20881:72;20956:7;20878:87;20989:7;:5;:7::i;:::-;20981:15;;:4;:15;;;20977:92;;21029:12;;21019:6;:22;;21011:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;20977:92;21108:1;21092:18;;:4;:18;;;;:38;;;;;21128:1;21114:16;;:2;:16;;;;21092:38;21084:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;21184:1;21175:6;:10;21167:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;21271:11;;;;;;;;;;;21260:22;;:7;;;;;;;;;;;:22;;;;:57;;;;;21301:16;;;;;;;;;;;21300:17;21260:57;:95;;;;;21342:13;;;;;;;;;;;21334:21;;:4;:21;;;;21260:95;:133;;;;;21372:21;;;;;;;;;;;21260:133;21243:443;;;21450:28;21481:24;21499:4;21481:9;:24::i;:::-;21450:55;;21546:12;;21523:20;:35;21520:78;;;21584:12;;21561:35;;21520:78;21622:1;21612:7;;:11;;;;;;;;;;;;;;;;;;21638:36;21653:20;21638:14;:36::i;:::-;21419:267;21243:443;21706:12;21721:4;21706:19;;21736:10;21760:18;:24;21779:4;21760:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;21788:18;:22;21807:2;21788:22;;;;;;;;;;;;;;;;;;;;;;;;;21760:50;21757:239;;;21836:5;21826:15;;21757:239;;;21896:13;;;;;;;;;;;21888:21;;:4;:21;;;21885:72;;21937:4;21929:12;;21885:72;21973:7;;:9;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;21757:239;22008:48;22023:4;22029:2;22033:6;22041:7;22050:5;22008:14;:48::i;:::-;20561:1505;;20458:1608;;;;:::o;1524:206::-;1610:7;1668:1;1663;:6;;1671:12;1655:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1710:1;1706;:5;1699:12;;1524:206;;;;;:::o;1096:98::-;1154:7;1185:1;1181;:5;;;;:::i;:::-;1174:12;;1096:98;;;;:::o;22210:1524::-;16567:4;16548:16;;:23;;;;;;;;;;;;;;;;;;22301:22:::1;22364:3;22349:12;;22326:20;:35;;;;:::i;:::-;:41;;;;:::i;:::-;22301:66;;22402:14;22392:7;;:24;;;;:::i;:::-;22382:7;:34;;;;22477:14;22454:7;:20;15228:42;22454:20;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;22431:7;:20;15228:42;22431:20;;;;;;;;;;;;;;;:60;;;;22556:14;22531:7;:22;22547:4;22531:22;;;;;;;;;;;;;;;;:39;;;;:::i;:::-;22506:7;:22;22522:4;22506:22;;;;;;;;;;;;;;;:64;;;;22588:19;22653:3;22633:17;;22610:20;:40;;;;:::i;:::-;:46;;;;:::i;:::-;22588:68;;22671:19;22730:3;22716:11;;22693:20;:34;;;;:::i;:::-;:40;;;;:::i;:::-;22671:62;;22748:25;22816:3;22799:14;;22776:20;:37;;;;:::i;:::-;:43;;;;:::i;:::-;22748:71;;22836:25;22872:4;22864:21;;;22836:49;;22900:64;22952:11;22938;22918:17;:31;;;;:::i;:::-;:45;;;;:::i;:::-;22900:17;:64::i;:::-;22979:18;23024:17;23008:4;23000:21;;;:41;;;;:::i;:::-;22979:62;;23058:15;23140:11;;23120:17;;23103:14;;:34;;;;:::i;:::-;:48;;;;:::i;:::-;23096:3;23076:17;;:23;;;;:::i;:::-;:76;;;;:::i;:::-;23058:94;;23167:14;23207:3;23197:7;23184:10;:20;;;;:::i;:::-;:26;;;;:::i;:::-;23167:43;;23227:15;23303:11;;23283:17;;23266:14;;:34;;;;:::i;:::-;:48;;;;:::i;:::-;23259:3;23245:11;;:17;;;;:::i;:::-;:70;;;;:::i;:::-;23227:88;;23330:14;23370:3;23360:7;23347:10;:20;;;;:::i;:::-;:26;;;;:::i;:::-;23330:43;;23392:63;23405:17;23447:6;23438;23425:10;:19;;;;:::i;:::-;:28;;;;:::i;:::-;23392:12;:63::i;:::-;23475:84;23490:17;23532:6;23523;23510:10;:19;;;;:::i;:::-;:28;;;;:::i;:::-;23541:17;23475:84;;;;;;;;:::i;:::-;;;;;;;;23576:38;23589:16;;;;;;;;;;;23607:6;23576:12;:38::i;:::-;23652:4;23644:21;;;23631:34;;23680:36;23693:10;;;;;;;;;;;23705;23680:12;:36::i;:::-;22284:1450;;;;;;;;;;16613:5:::0;16594:16;;:24;;;;;;;;;;;;;;;;;;22210:1524;:::o;25062:1452::-;25207:7;25203:1302;;25266:7;25250;:15;25258:6;25250:15;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;25232:7;:15;25240:6;25232:15;;;;;;;;;;;;;;;:41;;;;25328:7;25309;:18;25317:9;25309:18;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;25288:7;:18;25296:9;25288:18;;;;;;;;;;;;;;;:47;;;;25372:9;25355:36;;25364:6;25355:36;;;25383:7;25355:36;;;;;;:::i;:::-;;;;;;;;15228:42;25411:24;;:9;:24;;;25408:67;;25468:7;25460;;:15;;;;:::i;:::-;25450:7;:25;;;;25408:67;25203:1302;;;25503:5;25499:1006;;;25526:14;25563:3;25551:11;;25543:7;:19;;;;:::i;:::-;:23;;;;:::i;:::-;25526:40;;25581:23;25615:6;25607:7;:14;;;;:::i;:::-;25581:40;;25672:7;25656;:15;25664:6;25656:15;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;25638:7;:15;25646:6;25638:15;;;;;;;;;;;;;;;:41;;;;25734:15;25715:7;:18;25723:9;25715:18;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;25694:7;:18;25702:9;25694:18;;;;;;;;;;;;;;;:55;;;;25812:6;25789:7;:22;25805:4;25789:22;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;25764:7;:22;25780:4;25764:22;;;;;;;;;;;;;;;:54;;;;25858:9;25841:44;;25850:6;25841:44;;;25869:15;25841:44;;;;;;:::i;:::-;;;;;;;;15228:42;25905:24;;:9;:24;;;25902:75;;25962:15;25954:7;;:23;;;;:::i;:::-;25944:7;:33;;;;25902:75;25509:498;;25499:1006;;;26030:15;26069:3;26056:12;;26048:7;:20;;;;:::i;:::-;:24;;;;:::i;:::-;26030:42;;26087:23;26121:7;26113;:15;;;;:::i;:::-;26087:41;;26179:7;26163;:15;26171:6;26163:15;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;26145:7;:15;26153:6;26145:15;;;;;;;;;;;;;;;:41;;;;26241:15;26222:7;:18;26230:9;26222:18;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;26201:7;:18;26209:9;26201:18;;;;;;;;;;;;;;;:55;;;;26319:7;26296;:22;26312:4;26296:22;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;26271:7;:22;26287:4;26271:22;;;;;;;;;;;;;;;:55;;;;26366:9;26349:44;;26358:6;26349:44;;;26377:15;26349:44;;;;;;:::i;:::-;;;;;;;;15228:42;26413:24;;:9;:24;;;26410:75;;26470:15;26462:7;;:23;;;;:::i;:::-;26452:7;:33;;;;26410:75;26013:492;;25499:1006;25203:1302;25062:1452;;;;;:::o;23742:475::-;23811:21;23849:1;23835:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23811:40;;23880:4;23862;23867:1;23862:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;23906:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23896:4;23901:1;23896:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;23939:62;23956:4;23971:15;;;;;;;;;;;23989:11;23939:8;:62::i;:::-;24012:15;;;;;;;;;;;:66;;;24093:11;24119:1;24136:4;24163;24183:15;24012:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23798:419;23742:475;:::o;24227:370::-;24311:62;24328:4;24343:15;;;;;;;;;;;24361:11;24311:8;:62::i;:::-;24384:15;;;;;;;;;;;:31;;;24423:10;24457:4;24477:11;24503:1;24520;15228:42;24563:15;24384:205;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;24227:370;;:::o;22078:122::-;22163:6;:15;;:23;22179:6;22163:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22078:122;;:::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:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:153::-;3869:9;3902:37;3933:5;3902:37;:::i;:::-;3889:50;;3792:153;;;:::o;3951:185::-;4065:64;4123:5;4065:64;:::i;:::-;4060:3;4053:77;3951:185;;:::o;4142:276::-;4262:4;4300:2;4289:9;4285:18;4277:26;;4313:98;4408:1;4397:9;4393:17;4384:6;4313:98;:::i;:::-;4142:276;;;;:::o;4424:118::-;4511:24;4529:5;4511:24;:::i;:::-;4506:3;4499:37;4424:118;;:::o;4548:222::-;4641:4;4679:2;4668:9;4664:18;4656:26;;4692:71;4760:1;4749:9;4745:17;4736:6;4692:71;:::i;:::-;4548:222;;;;:::o;4776:619::-;4853:6;4861;4869;4918:2;4906:9;4897:7;4893:23;4889:32;4886:119;;;4924:79;;:::i;:::-;4886:119;5044:1;5069:53;5114:7;5105:6;5094:9;5090:22;5069:53;:::i;:::-;5059:63;;5015:117;5171:2;5197:53;5242:7;5233:6;5222:9;5218:22;5197:53;:::i;:::-;5187:63;;5142:118;5299:2;5325:53;5370:7;5361:6;5350:9;5346:22;5325:53;:::i;:::-;5315:63;;5270:118;4776:619;;;;;:::o;5401:86::-;5436:7;5476:4;5469:5;5465:16;5454:27;;5401:86;;;:::o;5493:112::-;5576:22;5592:5;5576:22;:::i;:::-;5571:3;5564:35;5493:112;;:::o;5611:214::-;5700:4;5738:2;5727:9;5723:18;5715:26;;5751:67;5815:1;5804:9;5800:17;5791:6;5751:67;:::i;:::-;5611:214;;;;:::o;5831:118::-;5918:24;5936:5;5918:24;:::i;:::-;5913:3;5906:37;5831:118;;:::o;5955:222::-;6048:4;6086:2;6075:9;6071:18;6063:26;;6099:71;6167:1;6156:9;6152:17;6143:6;6099:71;:::i;:::-;5955:222;;;;:::o;6183:329::-;6242:6;6291:2;6279:9;6270:7;6266:23;6262:32;6259:119;;;6297:79;;:::i;:::-;6259:119;6417:1;6442:53;6487:7;6478:6;6467:9;6463:22;6442:53;:::i;:::-;6432:63;;6388:117;6183:329;;;;:::o;6518:116::-;6588:21;6603:5;6588:21;:::i;:::-;6581:5;6578:32;6568:60;;6624:1;6621;6614:12;6568:60;6518:116;:::o;6640:133::-;6683:5;6721:6;6708:20;6699:29;;6737:30;6761:5;6737:30;:::i;:::-;6640:133;;;;:::o;6779:468::-;6844:6;6852;6901:2;6889:9;6880:7;6876:23;6872:32;6869:119;;;6907:79;;:::i;:::-;6869:119;7027:1;7052:53;7097:7;7088:6;7077:9;7073:22;7052:53;:::i;:::-;7042:63;;6998:117;7154:2;7180:50;7222:7;7213:6;7202:9;7198:22;7180:50;:::i;:::-;7170:60;;7125:115;6779:468;;;;;:::o;7253:329::-;7312:6;7361:2;7349:9;7340:7;7336:23;7332:32;7329:119;;;7367:79;;:::i;:::-;7329:119;7487:1;7512:53;7557:7;7548:6;7537:9;7533:22;7512:53;:::i;:::-;7502:63;;7458:117;7253:329;;;;:::o;7588:104::-;7633:7;7662:24;7680:5;7662:24;:::i;:::-;7651:35;;7588:104;;;:::o;7698:142::-;7801:32;7827:5;7801:32;:::i;:::-;7796:3;7789:45;7698:142;;:::o;7846:254::-;7955:4;7993:2;7982:9;7978:18;7970:26;;8006:87;8090:1;8079:9;8075:17;8066:6;8006:87;:::i;:::-;7846:254;;;;:::o;8106:474::-;8174:6;8182;8231:2;8219:9;8210:7;8206:23;8202:32;8199:119;;;8237:79;;:::i;:::-;8199:119;8357:1;8382:53;8427:7;8418:6;8407:9;8403:22;8382:53;:::i;:::-;8372:63;;8328:117;8484:2;8510:53;8555:7;8546:6;8535:9;8531:22;8510:53;:::i;:::-;8500:63;;8455:118;8106:474;;;;;:::o;8586:182::-;8726:34;8722:1;8714:6;8710:14;8703:58;8586:182;:::o;8774:366::-;8916:3;8937:67;9001:2;8996:3;8937:67;:::i;:::-;8930:74;;9013:93;9102:3;9013:93;:::i;:::-;9131:2;9126:3;9122:12;9115:19;;8774:366;;;:::o;9146:419::-;9312:4;9350:2;9339:9;9335:18;9327:26;;9399:9;9393:4;9389:20;9385:1;9374:9;9370:17;9363:47;9427:131;9553:4;9427:131;:::i;:::-;9419:139;;9146:419;;;:::o;9571:180::-;9619:77;9616:1;9609:88;9716:4;9713:1;9706:15;9740:4;9737:1;9730:15;9757:410;9797:7;9820:20;9838:1;9820:20;:::i;:::-;9815:25;;9854:20;9872:1;9854:20;:::i;:::-;9849:25;;9909:1;9906;9902:9;9931:30;9949:11;9931:30;:::i;:::-;9920:41;;10110:1;10101:7;10097:15;10094:1;10091:22;10071:1;10064:9;10044:83;10021:139;;10140:18;;:::i;:::-;10021:139;9805:362;9757:410;;;;:::o;10173:180::-;10221:77;10218:1;10211:88;10318:4;10315:1;10308:15;10342:4;10339:1;10332:15;10359:185;10399:1;10416:20;10434:1;10416:20;:::i;:::-;10411:25;;10450:20;10468:1;10450:20;:::i;:::-;10445:25;;10489:1;10479:35;;10494:18;;:::i;:::-;10479:35;10536:1;10533;10529:9;10524:14;;10359:185;;;;:::o;10550:177::-;10690:29;10686:1;10678:6;10674:14;10667:53;10550:177;:::o;10733:366::-;10875:3;10896:67;10960:2;10955:3;10896:67;:::i;:::-;10889:74;;10972:93;11061:3;10972:93;:::i;:::-;11090:2;11085:3;11081:12;11074:19;;10733:366;;;:::o;11105:419::-;11271:4;11309:2;11298:9;11294:18;11286:26;;11358:9;11352:4;11348:20;11344:1;11333:9;11329:17;11322:47;11386:131;11512:4;11386:131;:::i;:::-;11378:139;;11105:419;;;:::o;11530:143::-;11587:5;11618:6;11612:13;11603:22;;11634:33;11661:5;11634:33;:::i;:::-;11530:143;;;;:::o;11679:351::-;11749:6;11798:2;11786:9;11777:7;11773:23;11769:32;11766:119;;;11804:79;;:::i;:::-;11766:119;11924:1;11949:64;12005:7;11996:6;11985:9;11981:22;11949:64;:::i;:::-;11939:74;;11895:128;11679:351;;;;:::o;12036:134::-;12094:9;12127:37;12158:5;12127:37;:::i;:::-;12114:50;;12036:134;;;:::o;12176:147::-;12271:45;12310:5;12271:45;:::i;:::-;12266:3;12259:58;12176:147;;:::o;12329:348::-;12458:4;12496:2;12485:9;12481:18;12473:26;;12509:79;12585:1;12574:9;12570:17;12561:6;12509:79;:::i;:::-;12598:72;12666:2;12655:9;12651:18;12642:6;12598:72;:::i;:::-;12329:348;;;;;:::o;12683:137::-;12737:5;12768:6;12762:13;12753:22;;12784:30;12808:5;12784:30;:::i;:::-;12683:137;;;;:::o;12826:345::-;12893:6;12942:2;12930:9;12921:7;12917:23;12913:32;12910:119;;;12948:79;;:::i;:::-;12910:119;13068:1;13093:61;13146:7;13137:6;13126:9;13122:22;13093:61;:::i;:::-;13083:71;;13039:125;12826:345;;;;:::o;13177:167::-;13317:19;13313:1;13305:6;13301:14;13294:43;13177:167;:::o;13350:366::-;13492:3;13513:67;13577:2;13572:3;13513:67;:::i;:::-;13506:74;;13589:93;13678:3;13589:93;:::i;:::-;13707:2;13702:3;13698:12;13691:19;;13350:366;;;:::o;13722:419::-;13888:4;13926:2;13915:9;13911:18;13903:26;;13975:9;13969:4;13965:20;13961:1;13950:9;13946:17;13939:47;14003:131;14129:4;14003:131;:::i;:::-;13995:139;;13722:419;;;:::o;14147:191::-;14187:3;14206:20;14224:1;14206:20;:::i;:::-;14201:25;;14240:20;14258:1;14240:20;:::i;:::-;14235:25;;14283:1;14280;14276:9;14269:16;;14304:3;14301:1;14298:10;14295:36;;;14311:18;;:::i;:::-;14295:36;14147:191;;;;:::o;14344:168::-;14484:20;14480:1;14472:6;14468:14;14461:44;14344:168;:::o;14518:366::-;14660:3;14681:67;14745:2;14740:3;14681:67;:::i;:::-;14674:74;;14757:93;14846:3;14757:93;:::i;:::-;14875:2;14870:3;14866:12;14859:19;;14518:366;;;:::o;14890:419::-;15056:4;15094:2;15083:9;15079:18;15071:26;;15143:9;15137:4;15133:20;15129:1;15118:9;15114:17;15107:47;15171:131;15297:4;15171:131;:::i;:::-;15163:139;;14890:419;;;:::o;15315:173::-;15455:25;15451:1;15443:6;15439:14;15432:49;15315:173;:::o;15494:366::-;15636:3;15657:67;15721:2;15716:3;15657:67;:::i;:::-;15650:74;;15733:93;15822:3;15733:93;:::i;:::-;15851:2;15846:3;15842:12;15835:19;;15494:366;;;:::o;15866:419::-;16032:4;16070:2;16059:9;16055:18;16047:26;;16119:9;16113:4;16109:20;16105:1;16094:9;16090:17;16083:47;16147:131;16273:4;16147:131;:::i;:::-;16139:139;;15866:419;;;:::o;16291:171::-;16431:23;16427:1;16419:6;16415:14;16408:47;16291:171;:::o;16468:366::-;16610:3;16631:67;16695:2;16690:3;16631:67;:::i;:::-;16624:74;;16707:93;16796:3;16707:93;:::i;:::-;16825:2;16820:3;16816:12;16809:19;;16468:366;;;:::o;16840:419::-;17006:4;17044:2;17033:9;17029:18;17021:26;;17093:9;17087:4;17083:20;17079:1;17068:9;17064:17;17057:47;17121:131;17247:4;17121:131;:::i;:::-;17113:139;;16840:419;;;:::o;17265:224::-;17405:34;17401:1;17393:6;17389:14;17382:58;17474:7;17469:2;17461:6;17457:15;17450:32;17265:224;:::o;17495:366::-;17637:3;17658:67;17722:2;17717:3;17658:67;:::i;:::-;17651:74;;17734:93;17823:3;17734:93;:::i;:::-;17852:2;17847:3;17843:12;17836:19;;17495:366;;;:::o;17867:419::-;18033:4;18071:2;18060:9;18056:18;18048:26;;18120:9;18114:4;18110:20;18106:1;18095:9;18091:17;18084:47;18148:131;18274:4;18148:131;:::i;:::-;18140:139;;17867:419;;;:::o;18292:167::-;18329:3;18352:22;18368:5;18352:22;:::i;:::-;18343:31;;18396:4;18389:5;18386:15;18383:41;;18404:18;;:::i;:::-;18383:41;18451:1;18444:5;18440:13;18433:20;;18292:167;;;:::o;18465:194::-;18505:4;18525:20;18543:1;18525:20;:::i;:::-;18520:25;;18559:20;18577:1;18559:20;:::i;:::-;18554:25;;18603:1;18600;18596:9;18588:17;;18627:1;18621:4;18618:11;18615:37;;;18632:18;;:::i;:::-;18615:37;18465:194;;;;:::o;18665:442::-;18814:4;18852:2;18841:9;18837:18;18829:26;;18865:71;18933:1;18922:9;18918:17;18909:6;18865:71;:::i;:::-;18946:72;19014:2;19003:9;18999:18;18990:6;18946:72;:::i;:::-;19028;19096:2;19085:9;19081:18;19072:6;19028:72;:::i;:::-;18665:442;;;;;;:::o;19113:180::-;19161:77;19158:1;19151:88;19258:4;19255:1;19248:15;19282:4;19279:1;19272:15;19299:180;19347:77;19344:1;19337:88;19444:4;19441:1;19434:15;19468:4;19465:1;19458:15;19485:143;19542:5;19573:6;19567:13;19558:22;;19589:33;19616:5;19589:33;:::i;:::-;19485:143;;;;:::o;19634:351::-;19704:6;19753:2;19741:9;19732:7;19728:23;19724:32;19721:119;;;19759:79;;:::i;:::-;19721:119;19879:1;19904:64;19960:7;19951:6;19940:9;19936:22;19904:64;:::i;:::-;19894:74;;19850:128;19634:351;;;;:::o;19991:85::-;20036:7;20065:5;20054:16;;19991:85;;;:::o;20082:158::-;20140:9;20173:61;20191:42;20200:32;20226:5;20200:32;:::i;:::-;20191:42;:::i;:::-;20173:61;:::i;:::-;20160:74;;20082:158;;;:::o;20246:147::-;20341:45;20380:5;20341:45;:::i;:::-;20336:3;20329:58;20246:147;;:::o;20399:114::-;20466:6;20500:5;20494:12;20484:22;;20399:114;;;:::o;20519:184::-;20618:11;20652:6;20647:3;20640:19;20692:4;20687:3;20683:14;20668:29;;20519:184;;;;:::o;20709:132::-;20776:4;20799:3;20791:11;;20829:4;20824:3;20820:14;20812:22;;20709:132;;;:::o;20847:108::-;20924:24;20942:5;20924:24;:::i;:::-;20919:3;20912:37;20847:108;;:::o;20961:179::-;21030:10;21051:46;21093:3;21085:6;21051:46;:::i;:::-;21129:4;21124:3;21120:14;21106:28;;20961:179;;;;:::o;21146:113::-;21216:4;21248;21243:3;21239:14;21231:22;;21146:113;;;:::o;21295:732::-;21414:3;21443:54;21491:5;21443:54;:::i;:::-;21513:86;21592:6;21587:3;21513:86;:::i;:::-;21506:93;;21623:56;21673:5;21623:56;:::i;:::-;21702:7;21733:1;21718:284;21743:6;21740:1;21737:13;21718:284;;;21819:6;21813:13;21846:63;21905:3;21890:13;21846:63;:::i;:::-;21839:70;;21932:60;21985:6;21932:60;:::i;:::-;21922:70;;21778:224;21765:1;21762;21758:9;21753:14;;21718:284;;;21722:14;22018:3;22011:10;;21419:608;;;21295:732;;;;:::o;22033:831::-;22296:4;22334:3;22323:9;22319:19;22311:27;;22348:71;22416:1;22405:9;22401:17;22392:6;22348:71;:::i;:::-;22429:80;22505:2;22494:9;22490:18;22481:6;22429:80;:::i;:::-;22556:9;22550:4;22546:20;22541:2;22530:9;22526:18;22519:48;22584:108;22687:4;22678:6;22584:108;:::i;:::-;22576:116;;22702:72;22770:2;22759:9;22755:18;22746:6;22702:72;:::i;:::-;22784:73;22852:3;22841:9;22837:19;22828:6;22784:73;:::i;:::-;22033:831;;;;;;;;:::o;22870:823::-;23127:4;23165:3;23154:9;23150:19;23142:27;;23179:71;23247:1;23236:9;23232:17;23223:6;23179:71;:::i;:::-;23260:72;23328:2;23317:9;23313:18;23304:6;23260:72;:::i;:::-;23342:80;23418:2;23407:9;23403:18;23394:6;23342:80;:::i;:::-;23432;23508:2;23497:9;23493:18;23484:6;23432:80;:::i;:::-;23522:81;23598:3;23587:9;23583:19;23574:6;23522:81;:::i;:::-;23613:73;23681:3;23670:9;23666:19;23657:6;23613:73;:::i;:::-;22870:823;;;;;;;;;:::o;23699:663::-;23787:6;23795;23803;23852:2;23840:9;23831:7;23827:23;23823:32;23820:119;;;23858:79;;:::i;:::-;23820:119;23978:1;24003:64;24059:7;24050:6;24039:9;24035:22;24003:64;:::i;:::-;23993:74;;23949:128;24116:2;24142:64;24198:7;24189:6;24178:9;24174:22;24142:64;:::i;:::-;24132:74;;24087:129;24255:2;24281:64;24337:7;24328:6;24317:9;24313:22;24281:64;:::i;:::-;24271:74;;24226:129;23699:663;;;;;:::o

Swarm Source

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