ETH Price: $2,646.31 (+1.30%)

Token

PAW Stake (PAWs)
 

Overview

Max Total Supply

1,000,000,000 PAWs

Holders

38

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
9,500,000 PAWs

Value
$0.00
0x88565bDE2D55eA0460ACd250f05818acC9B91E99
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:
PAWStake

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-03-22
*/

/**

 Twitter https://twitter.com/StakePaw
 Website https://www.pawstake.co/

*/

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


interface IERC20 {
    
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        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;
        }
    }
    
}



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

abstract contract Ownable is Context {
    address private _owner;


    
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        _owner = 0x448C43CD32C1B65DcCF052D6038ba4E82766f952;
        emit OwnershipTransferred(address(0), _owner);
    }

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

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

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

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

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 PAWStake is Context, IERC20, Ownable { 
    using SafeMath for uint256;
    using Address for address;


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

       


    address payable private Wallet_Dev = payable(0x448C43CD32C1B65DcCF052D6038ba4E82766f952);
    address payable private Wallet_Burn = payable(0x000000000000000000000000000000000000dEaD); 
    address payable private Wallet_zero = payable(0x0000000000000000000000000000000000000000); 


   


    string private _name = "PAW Stake"; 
    string private _symbol = "PAWs";  
    uint8 private _decimals = 9;
    uint256 private _tTotal = 1000000000 * 10**9;
    uint256 private _tFeeTotal;

    
    uint8 private txCount = 0;
    uint8 private swapTrigger = 2; 


    uint256 private impossible = 40; 



    uint256 private _TotalFee = 40;
    uint256 public _buyFee = 20;
    uint256 public _sellFee = 20;


    
    uint256 private _previousTotalFee = _TotalFee; 
    uint256 private _previousBuyFee = _buyFee; 
    uint256 private _previousSellFee = _sellFee; 

  
    uint256 public _maxWalletToken = _tTotal.mul(1).div(100);
    uint256 private _previousMaxWalletToken = _maxWalletToken;


    
    uint256 public _maxTxAmount = _tTotal.mul(1).div(100);
    uint256 private _previousMaxTxAmount = _maxTxAmount;

 
                                     
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool public inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
        
    );
    
     
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

 
    
    constructor () {
        _tOwned[owner()] = _tTotal;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        
        // Create pair address for PancakeSwap
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[Wallet_Dev] = true;
        
        emit Transfer(address(0), owner(), _tTotal);
    }


 

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

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

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

    function totalSupply() public view override returns (uint256) {
        return _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 owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    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 excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }
    
  
    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }


  
    

    function _set_Fees(uint256 Buy_Fee, uint256 Sell_Fee) external onlyOwner() {

        require((Buy_Fee + Sell_Fee) <= impossible, "Fee is too high!");
        _sellFee = Sell_Fee;
        _buyFee = Buy_Fee;

    }



    
    function Wallet_Update_Dev(address payable wallet) public onlyOwner() {
        Wallet_Dev = wallet;
        _isExcludedFromFee[Wallet_Dev] = true;
    }



    function set_Swap_And_Liquify_Enabled(bool true_or_false) public onlyOwner {
        swapAndLiquifyEnabled = true_or_false;
        emit SwapAndLiquifyEnabledUpdated(true_or_false);
    }

   
    function set_Number_Of_Transactions_Before_Liquify_Trigger(uint8 number_of_transactions) public onlyOwner {
        swapTrigger = number_of_transactions;
    }
    


    
    receive() external payable {}


    bool public noFeeToTransfer = true;

    
    function set_Transfers_Without_Fees(bool true_or_false) external onlyOwner {
        noFeeToTransfer = true_or_false;
    }

 
    function set_Max_Transaction_Percent(uint256 maxTxPercent_x100) external onlyOwner() {
        _maxTxAmount = _tTotal*maxTxPercent_x100/10000;
    }    
    
    
     function set_Max_Wallet_Percent(uint256 maxWallPercent_x100) external onlyOwner() {
        _maxWalletToken = _tTotal*maxWallPercent_x100/10000;
    }



    
    function removeAllFee() private {
        if(_TotalFee == 0 && _buyFee == 0 && _sellFee == 0) return;


        _previousBuyFee = _buyFee; 
        _previousSellFee = _sellFee; 
        _previousTotalFee = _TotalFee;
        _buyFee = 0;
        _sellFee = 0;
        _TotalFee = 0;

    }
    
   
    function restoreAllFee() private {
    
    _TotalFee = _previousTotalFee;
    _buyFee = _previousBuyFee; 
    _sellFee = _previousSellFee; 

    }


    
    function _approve(address owner, address spender, uint256 amount) private {

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

    }

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

 
        if (to != owner() &&
            to != Wallet_Dev &&
            to != address(this) &&
            to != uniswapV2Pair &&
            to != Wallet_Burn &&
            from != owner()){
            uint256 heldTokens = balanceOf(to);
            require((heldTokens + amount) <= _maxWalletToken,"You are trying to buy too many tokens. You have reached the limit for one wallet.");}


        
        if (from != owner() && to != owner())
            require(amount <= _maxTxAmount, "You are trying to buy more than the max transaction limit.");




    


 

        if(
            txCount >= swapTrigger && 
            !inSwapAndLiquify &&
            from != uniswapV2Pair &&
            swapAndLiquifyEnabled 
            )
        {  
            
            txCount = 0;
            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance > _maxTxAmount) {contractTokenBalance = _maxTxAmount;}
            if(contractTokenBalance > 0){
            swapAndLiquify(contractTokenBalance);
        }
        }




        
        bool takeFee = true;
         
        if(_isExcludedFromFee[from] || _isExcludedFromFee[to] || (noFeeToTransfer && from != uniswapV2Pair && to != uniswapV2Pair)){
            takeFee = false;
        } else if (from == uniswapV2Pair){_TotalFee = _buyFee;} else if (to == uniswapV2Pair){_TotalFee = _sellFee;}
        
        _tokenTransfer(from,to,amount,takeFee);
    }




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


    
    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        
        swapTokensForETH(contractTokenBalance);
        uint256 contractETH = address(this).balance;
        sendToWallet(Wallet_Dev,contractETH);
    }


    
    function process_Tokens_Now (uint256 percent_Of_Tokens_To_Process) public onlyOwner {
        
        require(!inSwapAndLiquify, "Currently processing, try later."); 
        if (percent_Of_Tokens_To_Process > 100){percent_Of_Tokens_To_Process == 100;}
        uint256 tokensOnContract = balanceOf(address(this));
        uint256 sendTokens = tokensOnContract*percent_Of_Tokens_To_Process/100;
        swapAndLiquify(sendTokens);
    }


     
    function swapTokensForETH(uint256 tokenAmount) private {

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

 
    function remove_Random_Tokens(address random_Token_Address, address send_to_wallet, uint256 number_of_tokens) public onlyOwner returns(bool _sent){
        require(random_Token_Address != address(this), "Can not remove native token");
        uint256 randomBalance = IERC20(random_Token_Address).balanceOf(address(this));
        if (number_of_tokens > randomBalance){number_of_tokens = randomBalance;}
        _sent = IERC20(random_Token_Address).transfer(send_to_wallet, number_of_tokens);
    }


  
    function set_New_Router_and_Make_Pair(address newRouter) public onlyOwner() {
        IUniswapV2Router02 _newPCSRouter = IUniswapV2Router02(newRouter);
        uniswapV2Pair = IUniswapV2Factory(_newPCSRouter.factory()).createPair(address(this), _newPCSRouter.WETH());
        uniswapV2Router = _newPCSRouter;
    }
   
   
    function set_New_Router_Address(address newRouter) public onlyOwner() {
        IUniswapV2Router02 _newPCSRouter = IUniswapV2Router02(newRouter);
        uniswapV2Router = _newPCSRouter;
    }
    
    
    function set_New_Pair_Address(address newPair) public onlyOwner() {
        uniswapV2Pair = newPair;
    }

 
    function _tokenTransfer(address sender, address recipient, uint256 amount,bool takeFee) private {
        
        
        if(!takeFee){
            removeAllFee();
            } else {
                txCount++;
            }
            _transferTokens(sender, recipient, amount);
        
        if(!takeFee)
            restoreAllFee();
    }

    
    function _transferTokens(address sender, address recipient, uint256 tAmount) private {
        (uint256 tTransferAmount, uint256 tDev) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _tOwned[address(this)] = _tOwned[address(this)].add(tDev);   
        emit Transfer(sender, recipient, tTransferAmount);
    }


    
    function _getValues(uint256 tAmount) private view returns (uint256, uint256) {
        uint256 tDev = tAmount*_TotalFee/100;
        uint256 tTransferAmount = tAmount.sub(tDev);
        return (tTransferAmount, tDev);
    }



    


}

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":"enabled","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":[{"internalType":"address payable","name":"wallet","type":"address"}],"name":"Wallet_Update_Dev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_buyFee","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":[],"name":"_sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"Buy_Fee","type":"uint256"},{"internalType":"uint256","name":"Sell_Fee","type":"uint256"}],"name":"_set_Fees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"noFeeToTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent_Of_Tokens_To_Process","type":"uint256"}],"name":"process_Tokens_Now","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"random_Token_Address","type":"address"},{"internalType":"address","name":"send_to_wallet","type":"address"},{"internalType":"uint256","name":"number_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":"maxTxPercent_x100","type":"uint256"}],"name":"set_Max_Transaction_Percent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_x100","type":"uint256"}],"name":"set_Max_Wallet_Percent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPair","type":"address"}],"name":"set_New_Pair_Address","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"set_New_Router_Address","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"set_New_Router_and_Make_Pair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"number_of_transactions","type":"uint8"}],"name":"set_Number_Of_Transactions_Before_Liquify_Trigger","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"true_or_false","type":"bool"}],"name":"set_Swap_And_Liquify_Enabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"true_or_false","type":"bool"}],"name":"set_Transfers_Without_Fees","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":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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"}]

608060405273448c43cd32c1b65dccf052d6038ba4e82766f952600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600981526020017f504157205374616b650000000000000000000000000000000000000000000000815250600790805190602001906200012b92919062000828565b506040518060400160405280600481526020017f5041577300000000000000000000000000000000000000000000000000000000815250600890805190602001906200017992919062000828565b5060098060006101000a81548160ff021916908360ff160217905550670de0b6b3a7640000600a556000600c60006101000a81548160ff021916908360ff1602179055506002600c60016101000a81548160ff021916908360ff1602179055506028600d556028600e556014600f556014601055600e54601155600f54601255601054601355620002366064620002226001600a54620007cf60201b62001fb81790919060201c565b620007e760201b62001fce1790919060201c565b601455601454601555620002766064620002626001600a54620007cf60201b62001fb81790919060201c565b620007e760201b62001fce1790919060201c565b6016556016546017556001601960156101000a81548160ff0219169083151502179055506001601960166101000a81548160ff021916908315150217905550348015620002c257600080fd5b5073448c43cd32c1b65dccf052d6038ba4e82766f9526000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600a5460016000620003a9620007ff60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200044757600080fd5b505afa1580156200045c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004829190620008ef565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620004e557600080fd5b505afa158015620004fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005209190620008ef565b6040518363ffffffff1660e01b81526004016200053f92919062000943565b602060405180830381600087803b1580156200055a57600080fd5b505af11580156200056f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005959190620008ef565b601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360006200062c620007ff60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200075f620007ff60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a54604051620007c0919062000970565b60405180910390a35062000b46565b60008183620007df9190620009c5565b905092915050565b60008183620007f791906200098d565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b828054620008369062000a64565b90600052602060002090601f0160209004810192826200085a5760008555620008a6565b82601f106200087557805160ff1916838001178555620008a6565b82800160010185558215620008a6579182015b82811115620008a557825182559160200191906001019062000888565b5b509050620008b59190620008b9565b5090565b5b80821115620008d4576000816000905550600101620008ba565b5090565b600081519050620008e98162000b2c565b92915050565b60006020828403121562000908576200090762000b27565b5b60006200091884828501620008d8565b91505092915050565b6200092c8162000a26565b82525050565b6200093d8162000a5a565b82525050565b60006040820190506200095a600083018562000921565b62000969602083018462000921565b9392505050565b600060208201905062000987600083018462000932565b92915050565b60006200099a8262000a5a565b9150620009a78362000a5a565b925082620009ba57620009b962000ac9565b5b828204905092915050565b6000620009d28262000a5a565b9150620009df8362000a5a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000a1b5762000a1a62000a9a565b5b828202905092915050565b600062000a338262000a3a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000600282049050600182168062000a7d57607f821691505b6020821081141562000a945762000a9362000af8565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b62000b378162000a26565b811462000b4357600080fd5b50565b613ce18062000b566000396000f3fe6080604052600436106102295760003560e01c806370a082311161012357806395d89b41116100ab578063dd62ed3e1161006f578063dd62ed3e14610828578063ddbf526614610865578063ea2f0b371461088e578063f2fde38b146108b7578063f7739b5f146108e057610230565b806395d89b4114610731578063a457c2d71461075c578063a514a07d14610799578063a9059cbb146107c2578063d785d5be146107ff57610230565b80637caefa89116100f25780637caefa89146106605780637d1db4a5146106895780638824e16e146106b45780638da5cb5b146106dd578063942201841461070857610230565b806370a08231146105a4578063715018a6146105e1578063768dc710146105f857806378109e541461063557610230565b8063313ce567116101b1578063437823ec11610175578063437823ec146104d157806349bd5a5e146104fa5780634a74bb0214610525578063590f897e1461055057806367cbd84c1461057b57610230565b8063313ce567146103d85780633343ab831461040357806336b1a1bc14610440578063395093511461046957806340b9a54b146104a657610230565b80631694505e116101f85780631694505e146102f157806318160ddd1461031c578063220f66961461034757806323b872dd146103725780632e39c6c6146103af57610230565b806306fdde0314610235578063095ea7b3146102605780631282a0a01461029d57806313fad07a146102c657610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a610909565b60405161025791906134b0565b60405180910390f35b34801561026c57600080fd5b506102876004803603810190610282919061307c565b61099b565b604051610294919061347a565b60405180910390f35b3480156102a957600080fd5b506102c460048036038101906102bf9190612f62565b6109b9565b005b3480156102d257600080fd5b506102db610c46565b6040516102e8919061347a565b60405180910390f35b3480156102fd57600080fd5b50610306610c59565b6040516103139190613495565b60405180910390f35b34801561032857600080fd5b50610331610c7f565b60405161033e91906135d2565b60405180910390f35b34801561035357600080fd5b5061035c610c89565b604051610369919061347a565b60405180910390f35b34801561037e57600080fd5b5061039960048036038101906103949190613029565b610c9c565b6040516103a6919061347a565b60405180910390f35b3480156103bb57600080fd5b506103d660048036038101906103d19190613116565b610d75565b005b3480156103e457600080fd5b506103ed610e15565b6040516103fa9190613647565b60405180910390f35b34801561040f57600080fd5b5061042a60048036038101906104259190613029565b610e2c565b604051610437919061347a565b60405180910390f35b34801561044c57600080fd5b5061046760048036038101906104629190612f62565b611049565b005b34801561047557600080fd5b50610490600480360381019061048b919061307c565b61110f565b60405161049d919061347a565b60405180910390f35b3480156104b257600080fd5b506104bb6111c2565b6040516104c891906135d2565b60405180910390f35b3480156104dd57600080fd5b506104f860048036038101906104f39190612f62565b6111c8565b005b34801561050657600080fd5b5061050f61129f565b60405161051c919061340d565b60405180910390f35b34801561053157600080fd5b5061053a6112c5565b604051610547919061347a565b60405180910390f35b34801561055c57600080fd5b506105656112d8565b60405161057291906135d2565b60405180910390f35b34801561058757600080fd5b506105a2600480360381019061059d9190613170565b6112de565b005b3480156105b057600080fd5b506105cb60048036038101906105c69190612f62565b6113bc565b6040516105d891906135d2565b60405180910390f35b3480156105ed57600080fd5b506105f6611405565b005b34801561060457600080fd5b5061061f600480360381019061061a9190612f62565b61153f565b60405161062c919061347a565b60405180910390f35b34801561064157600080fd5b5061064a61155f565b60405161065791906135d2565b60405180910390f35b34801561066c57600080fd5b50610687600480360381019061068291906131b0565b611565565b005b34801561069557600080fd5b5061069e6115ff565b6040516106ab91906135d2565b60405180910390f35b3480156106c057600080fd5b506106db60048036038101906106d69190612fbc565b611605565b005b3480156106e957600080fd5b506106f261173f565b6040516106ff919061340d565b60405180910390f35b34801561071457600080fd5b5061072f600480360381019061072a9190613116565b611768565b005b34801561073d57600080fd5b50610746611808565b60405161075391906134b0565b60405180910390f35b34801561076857600080fd5b50610783600480360381019061077e919061307c565b61189a565b604051610790919061347a565b60405180910390f35b3480156107a557600080fd5b506107c060048036038101906107bb91906130bc565b611967565b005b3480156107ce57600080fd5b506107e960048036038101906107e4919061307c565b611a00565b6040516107f6919061347a565b60405180910390f35b34801561080b57600080fd5b5061082660048036038101906108219190612f62565b611a1e565b005b34801561083457600080fd5b5061084f600480360381019061084a9190612fe9565b611ade565b60405161085c91906135d2565b60405180910390f35b34801561087157600080fd5b5061088c60048036038101906108879190613116565b611b65565b005b34801561089a57600080fd5b506108b560048036038101906108b09190612f62565b611c68565b005b3480156108c357600080fd5b506108de60048036038101906108d99190612f62565b611d3f565b005b3480156108ec57600080fd5b50610907600480360381019061090291906130bc565b611ee8565b005b606060078054610918906138ae565b80601f0160208091040260200160405190810160405280929190818152602001828054610944906138ae565b80156109915780601f1061096657610100808354040283529160200191610991565b820191906000526020600020905b81548152906001019060200180831161097457829003601f168201915b5050505050905090565b60006109af6109a8611fe4565b8484611fec565b6001905092915050565b6109c1611fe4565b73ffffffffffffffffffffffffffffffffffffffff166109df61173f565b73ffffffffffffffffffffffffffffffffffffffff1614610a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2c90613552565b60405180910390fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610a8057600080fd5b505afa158015610a94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab89190612f8f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610b1a57600080fd5b505afa158015610b2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b529190612f8f565b6040518363ffffffff1660e01b8152600401610b6f929190613428565b602060405180830381600087803b158015610b8957600080fd5b505af1158015610b9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc19190612f8f565b601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601960169054906101000a900460ff1681565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a54905090565b601960149054906101000a900460ff1681565b6000610ca9848484612180565b610d6a84610cb5611fe4565b610d6585604051806060016040528060288152602001613c5f60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d1b611fe4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127bf9092919063ffffffff16565b611fec565b600190509392505050565b610d7d611fe4565b73ffffffffffffffffffffffffffffffffffffffff16610d9b61173f565b73ffffffffffffffffffffffffffffffffffffffff1614610df1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de890613552565b60405180910390fd5b61271081600a54610e02919061373e565b610e0c919061370d565b60168190555050565b6000600960009054906101000a900460ff16905090565b6000610e36611fe4565b73ffffffffffffffffffffffffffffffffffffffff16610e5461173f565b73ffffffffffffffffffffffffffffffffffffffff1614610eaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea190613552565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610f19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1090613512565b60405180910390fd5b60008473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f54919061340d565b60206040518083038186803b158015610f6c57600080fd5b505afa158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa49190613143565b905080831115610fb2578092505b8473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85856040518363ffffffff1660e01b8152600401610fed929190613451565b602060405180830381600087803b15801561100757600080fd5b505af115801561101b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103f91906130e9565b9150509392505050565b611051611fe4565b73ffffffffffffffffffffffffffffffffffffffff1661106f61173f565b73ffffffffffffffffffffffffffffffffffffffff16146110c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bc90613552565b60405180910390fd5b600081905080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60006111b861111c611fe4565b846111b3856002600061112d611fe4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281490919063ffffffff16565b611fec565b6001905092915050565b600f5481565b6111d0611fe4565b73ffffffffffffffffffffffffffffffffffffffff166111ee61173f565b73ffffffffffffffffffffffffffffffffffffffff1614611244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123b90613552565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601960159054906101000a900460ff1681565b60105481565b6112e6611fe4565b73ffffffffffffffffffffffffffffffffffffffff1661130461173f565b73ffffffffffffffffffffffffffffffffffffffff161461135a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135190613552565b60405180910390fd5b600d54818361136991906136b7565b11156113aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a190613532565b60405180910390fd5b8060108190555081600f819055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61140d611fe4565b73ffffffffffffffffffffffffffffffffffffffff1661142b61173f565b73ffffffffffffffffffffffffffffffffffffffff1614611481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147890613552565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60036020528060005260406000206000915054906101000a900460ff1681565b60145481565b61156d611fe4565b73ffffffffffffffffffffffffffffffffffffffff1661158b61173f565b73ffffffffffffffffffffffffffffffffffffffff16146115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d890613552565b60405180910390fd5b80600c60016101000a81548160ff021916908360ff16021790555050565b60165481565b61160d611fe4565b73ffffffffffffffffffffffffffffffffffffffff1661162b61173f565b73ffffffffffffffffffffffffffffffffffffffff1614611681576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167890613552565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611770611fe4565b73ffffffffffffffffffffffffffffffffffffffff1661178e61173f565b73ffffffffffffffffffffffffffffffffffffffff16146117e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117db90613552565b60405180910390fd5b61271081600a546117f5919061373e565b6117ff919061370d565b60148190555050565b606060088054611817906138ae565b80601f0160208091040260200160405190810160405280929190818152602001828054611843906138ae565b80156118905780601f1061186557610100808354040283529160200191611890565b820191906000526020600020905b81548152906001019060200180831161187357829003601f168201915b5050505050905090565b600061195d6118a7611fe4565b8461195885604051806060016040528060258152602001613c8760259139600260006118d1611fe4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127bf9092919063ffffffff16565b611fec565b6001905092915050565b61196f611fe4565b73ffffffffffffffffffffffffffffffffffffffff1661198d61173f565b73ffffffffffffffffffffffffffffffffffffffff16146119e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119da90613552565b60405180910390fd5b80601960166101000a81548160ff02191690831515021790555050565b6000611a14611a0d611fe4565b8484612180565b6001905092915050565b611a26611fe4565b73ffffffffffffffffffffffffffffffffffffffff16611a4461173f565b73ffffffffffffffffffffffffffffffffffffffff1614611a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9190613552565b60405180910390fd5b80601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b6d611fe4565b73ffffffffffffffffffffffffffffffffffffffff16611b8b61173f565b73ffffffffffffffffffffffffffffffffffffffff1614611be1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd890613552565b60405180910390fd5b601960149054906101000a900460ff1615611c31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2890613572565b60405180910390fd5b6000611c3c306113bc565b9050600060648383611c4e919061373e565b611c58919061370d565b9050611c638161282a565b505050565b611c70611fe4565b73ffffffffffffffffffffffffffffffffffffffff16611c8e61173f565b73ffffffffffffffffffffffffffffffffffffffff1614611ce4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdb90613552565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611d47611fe4565b73ffffffffffffffffffffffffffffffffffffffff16611d6561173f565b73ffffffffffffffffffffffffffffffffffffffff1614611dbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db290613552565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e22906134d2565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611ef0611fe4565b73ffffffffffffffffffffffffffffffffffffffff16611f0e61173f565b73ffffffffffffffffffffffffffffffffffffffff1614611f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5b90613552565b60405180910390fd5b80601960156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051611fad919061347a565b60405180910390a150565b60008183611fc6919061373e565b905092915050565b60008183611fdc919061370d565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156120565750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b612095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208c906135b2565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161217391906135d2565b60405180910390a3505050565b61218861173f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156122115750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561224957503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122a35750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122fd5750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561233c575061230c61173f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156123a057600061234c836113bc565b9050601454828261235d91906136b7565b111561239e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239590613592565b60405180910390fd5b505b6123a861173f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561241657506123e661173f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561246157601654811115612460576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612457906134f2565b60405180910390fd5b5b600c60019054906101000a900460ff1660ff16600c60009054906101000a900460ff1660ff16101580156124a25750601960149054906101000a900460ff16155b80156124fc5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156125145750601960159054906101000a900460ff165b15612567576000600c60006101000a81548160ff021916908360ff1602179055506000612540306113bc565b90506016548111156125525760165490505b6000811115612565576125648161282a565b5b505b600060019050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061260e5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806126d95750601960169054906101000a900460ff16801561267e5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156126d85750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156126e757600090506127ad565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561274b57600f54600e819055506127ac565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156127ab57601054600e819055505b5b5b6127b98484848461289e565b50505050565b6000838311158290612807576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127fe91906134b0565b60405180910390fd5b5082840390509392505050565b6000818361282291906136b7565b905092915050565b6001601960146101000a81548160ff02191690831515021790555061284e81612908565b600047905061287f600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612b5a565b506000601960146101000a81548160ff02191690831515021790555050565b806128b0576128ab612ba5565b6128e9565b600c600081819054906101000a900460ff16809291906128cf906138e0565b91906101000a81548160ff021916908360ff160217905550505b6128f4848484612c07565b8061290257612901612e42565b5b50505050565b6000600267ffffffffffffffff811115612925576129246139c6565b5b6040519080825280602002602001820160405280156129535781602001602082028036833780820191505090505b509050308160008151811061296b5761296a613997565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612a0d57600080fd5b505afa158015612a21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a459190612f8f565b81600181518110612a5957612a58613997565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612ac030601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611fec565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612b249594939291906135ed565b600060405180830381600087803b158015612b3e57600080fd5b505af1158015612b52573d6000803e3d6000fd5b505050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612ba0573d6000803e3d6000fd5b505050565b6000600e54148015612bb957506000600f54145b8015612bc757506000601054145b15612bd157612c05565b600f54601281905550601054601381905550600e546011819055506000600f8190555060006010819055506000600e819055505b565b600080612c1383612e5f565b91509150612c6983600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ea490919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612cfe82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281490919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d9381600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281490919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612e3391906135d2565b60405180910390a35050505050565b601154600e81905550601254600f81905550601354601081905550565b60008060006064600e5485612e74919061373e565b612e7e919061370d565b90506000612e958286612ea490919063ffffffff16565b90508082935093505050915091565b60008183612eb29190613798565b905092915050565b600081359050612ec981613beb565b92915050565b600081519050612ede81613beb565b92915050565b600081359050612ef381613c02565b92915050565b600081359050612f0881613c19565b92915050565b600081519050612f1d81613c19565b92915050565b600081359050612f3281613c30565b92915050565b600081519050612f4781613c30565b92915050565b600081359050612f5c81613c47565b92915050565b600060208284031215612f7857612f776139f5565b5b6000612f8684828501612eba565b91505092915050565b600060208284031215612fa557612fa46139f5565b5b6000612fb384828501612ecf565b91505092915050565b600060208284031215612fd257612fd16139f5565b5b6000612fe084828501612ee4565b91505092915050565b6000806040838503121561300057612fff6139f5565b5b600061300e85828601612eba565b925050602061301f85828601612eba565b9150509250929050565b600080600060608486031215613042576130416139f5565b5b600061305086828701612eba565b935050602061306186828701612eba565b925050604061307286828701612f23565b9150509250925092565b60008060408385031215613093576130926139f5565b5b60006130a185828601612eba565b92505060206130b285828601612f23565b9150509250929050565b6000602082840312156130d2576130d16139f5565b5b60006130e084828501612ef9565b91505092915050565b6000602082840312156130ff576130fe6139f5565b5b600061310d84828501612f0e565b91505092915050565b60006020828403121561312c5761312b6139f5565b5b600061313a84828501612f23565b91505092915050565b600060208284031215613159576131586139f5565b5b600061316784828501612f38565b91505092915050565b60008060408385031215613187576131866139f5565b5b600061319585828601612f23565b92505060206131a685828601612f23565b9150509250929050565b6000602082840312156131c6576131c56139f5565b5b60006131d484828501612f4d565b91505092915050565b60006131e983836131f5565b60208301905092915050565b6131fe816137cc565b82525050565b61320d816137cc565b82525050565b600061321e82613672565b6132288185613695565b935061323383613662565b8060005b8381101561326457815161324b88826131dd565b975061325683613688565b925050600181019050613237565b5085935050505092915050565b61327a816137f0565b82525050565b61328981613833565b82525050565b61329881613845565b82525050565b60006132a98261367d565b6132b381856136a6565b93506132c381856020860161387b565b6132cc816139fa565b840191505092915050565b60006132e46026836136a6565b91506132ef82613a0b565b604082019050919050565b6000613307603a836136a6565b915061331282613a5a565b604082019050919050565b600061332a601b836136a6565b915061333582613aa9565b602082019050919050565b600061334d6010836136a6565b915061335882613ad2565b602082019050919050565b60006133706020836136a6565b915061337b82613afb565b602082019050919050565b60006133936020836136a6565b915061339e82613b24565b602082019050919050565b60006133b66051836136a6565b91506133c182613b4d565b606082019050919050565b60006133d96011836136a6565b91506133e482613bc2565b602082019050919050565b6133f88161381c565b82525050565b61340781613826565b82525050565b60006020820190506134226000830184613204565b92915050565b600060408201905061343d6000830185613204565b61344a6020830184613204565b9392505050565b60006040820190506134666000830185613204565b61347360208301846133ef565b9392505050565b600060208201905061348f6000830184613271565b92915050565b60006020820190506134aa6000830184613280565b92915050565b600060208201905081810360008301526134ca818461329e565b905092915050565b600060208201905081810360008301526134eb816132d7565b9050919050565b6000602082019050818103600083015261350b816132fa565b9050919050565b6000602082019050818103600083015261352b8161331d565b9050919050565b6000602082019050818103600083015261354b81613340565b9050919050565b6000602082019050818103600083015261356b81613363565b9050919050565b6000602082019050818103600083015261358b81613386565b9050919050565b600060208201905081810360008301526135ab816133a9565b9050919050565b600060208201905081810360008301526135cb816133cc565b9050919050565b60006020820190506135e760008301846133ef565b92915050565b600060a08201905061360260008301886133ef565b61360f602083018761328f565b81810360408301526136218186613213565b90506136306060830185613204565b61363d60808301846133ef565b9695505050505050565b600060208201905061365c60008301846133fe565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006136c28261381c565b91506136cd8361381c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156137025761370161390a565b5b828201905092915050565b60006137188261381c565b91506137238361381c565b92508261373357613732613939565b5b828204905092915050565b60006137498261381c565b91506137548361381c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561378d5761378c61390a565b5b828202905092915050565b60006137a38261381c565b91506137ae8361381c565b9250828210156137c1576137c061390a565b5b828203905092915050565b60006137d7826137fc565b9050919050565b60006137e9826137fc565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061383e82613857565b9050919050565b60006138508261381c565b9050919050565b600061386282613869565b9050919050565b6000613874826137fc565b9050919050565b60005b8381101561389957808201518184015260208101905061387e565b838111156138a8576000848401525b50505050565b600060028204905060018216806138c657607f821691505b602082108114156138da576138d9613968565b5b50919050565b60006138eb82613826565b915060ff8214156138ff576138fe61390a565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f596f752061726520747279696e6720746f20627579206d6f7265207468616e2060008201527f746865206d6178207472616e73616374696f6e206c696d69742e000000000000602082015250565b7f43616e206e6f742072656d6f7665206e617469766520746f6b656e0000000000600082015250565b7f46656520697320746f6f20686967682100000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f43757272656e746c792070726f63657373696e672c20747279206c617465722e600082015250565b7f596f752061726520747279696e6720746f2062757920746f6f206d616e79207460008201527f6f6b656e732e20596f752068617665207265616368656420746865206c696d6960208201527f7420666f72206f6e652077616c6c65742e000000000000000000000000000000604082015250565b7f4552523a207a65726f2061646472657373000000000000000000000000000000600082015250565b613bf4816137cc565b8114613bff57600080fd5b50565b613c0b816137de565b8114613c1657600080fd5b50565b613c22816137f0565b8114613c2d57600080fd5b50565b613c398161381c565b8114613c4457600080fd5b50565b613c5081613826565b8114613c5b57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220104a857ee8c782a6f38d10b011f147c86e5d01c8c787705f991bf341c276c60d64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106102295760003560e01c806370a082311161012357806395d89b41116100ab578063dd62ed3e1161006f578063dd62ed3e14610828578063ddbf526614610865578063ea2f0b371461088e578063f2fde38b146108b7578063f7739b5f146108e057610230565b806395d89b4114610731578063a457c2d71461075c578063a514a07d14610799578063a9059cbb146107c2578063d785d5be146107ff57610230565b80637caefa89116100f25780637caefa89146106605780637d1db4a5146106895780638824e16e146106b45780638da5cb5b146106dd578063942201841461070857610230565b806370a08231146105a4578063715018a6146105e1578063768dc710146105f857806378109e541461063557610230565b8063313ce567116101b1578063437823ec11610175578063437823ec146104d157806349bd5a5e146104fa5780634a74bb0214610525578063590f897e1461055057806367cbd84c1461057b57610230565b8063313ce567146103d85780633343ab831461040357806336b1a1bc14610440578063395093511461046957806340b9a54b146104a657610230565b80631694505e116101f85780631694505e146102f157806318160ddd1461031c578063220f66961461034757806323b872dd146103725780632e39c6c6146103af57610230565b806306fdde0314610235578063095ea7b3146102605780631282a0a01461029d57806313fad07a146102c657610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a610909565b60405161025791906134b0565b60405180910390f35b34801561026c57600080fd5b506102876004803603810190610282919061307c565b61099b565b604051610294919061347a565b60405180910390f35b3480156102a957600080fd5b506102c460048036038101906102bf9190612f62565b6109b9565b005b3480156102d257600080fd5b506102db610c46565b6040516102e8919061347a565b60405180910390f35b3480156102fd57600080fd5b50610306610c59565b6040516103139190613495565b60405180910390f35b34801561032857600080fd5b50610331610c7f565b60405161033e91906135d2565b60405180910390f35b34801561035357600080fd5b5061035c610c89565b604051610369919061347a565b60405180910390f35b34801561037e57600080fd5b5061039960048036038101906103949190613029565b610c9c565b6040516103a6919061347a565b60405180910390f35b3480156103bb57600080fd5b506103d660048036038101906103d19190613116565b610d75565b005b3480156103e457600080fd5b506103ed610e15565b6040516103fa9190613647565b60405180910390f35b34801561040f57600080fd5b5061042a60048036038101906104259190613029565b610e2c565b604051610437919061347a565b60405180910390f35b34801561044c57600080fd5b5061046760048036038101906104629190612f62565b611049565b005b34801561047557600080fd5b50610490600480360381019061048b919061307c565b61110f565b60405161049d919061347a565b60405180910390f35b3480156104b257600080fd5b506104bb6111c2565b6040516104c891906135d2565b60405180910390f35b3480156104dd57600080fd5b506104f860048036038101906104f39190612f62565b6111c8565b005b34801561050657600080fd5b5061050f61129f565b60405161051c919061340d565b60405180910390f35b34801561053157600080fd5b5061053a6112c5565b604051610547919061347a565b60405180910390f35b34801561055c57600080fd5b506105656112d8565b60405161057291906135d2565b60405180910390f35b34801561058757600080fd5b506105a2600480360381019061059d9190613170565b6112de565b005b3480156105b057600080fd5b506105cb60048036038101906105c69190612f62565b6113bc565b6040516105d891906135d2565b60405180910390f35b3480156105ed57600080fd5b506105f6611405565b005b34801561060457600080fd5b5061061f600480360381019061061a9190612f62565b61153f565b60405161062c919061347a565b60405180910390f35b34801561064157600080fd5b5061064a61155f565b60405161065791906135d2565b60405180910390f35b34801561066c57600080fd5b50610687600480360381019061068291906131b0565b611565565b005b34801561069557600080fd5b5061069e6115ff565b6040516106ab91906135d2565b60405180910390f35b3480156106c057600080fd5b506106db60048036038101906106d69190612fbc565b611605565b005b3480156106e957600080fd5b506106f261173f565b6040516106ff919061340d565b60405180910390f35b34801561071457600080fd5b5061072f600480360381019061072a9190613116565b611768565b005b34801561073d57600080fd5b50610746611808565b60405161075391906134b0565b60405180910390f35b34801561076857600080fd5b50610783600480360381019061077e919061307c565b61189a565b604051610790919061347a565b60405180910390f35b3480156107a557600080fd5b506107c060048036038101906107bb91906130bc565b611967565b005b3480156107ce57600080fd5b506107e960048036038101906107e4919061307c565b611a00565b6040516107f6919061347a565b60405180910390f35b34801561080b57600080fd5b5061082660048036038101906108219190612f62565b611a1e565b005b34801561083457600080fd5b5061084f600480360381019061084a9190612fe9565b611ade565b60405161085c91906135d2565b60405180910390f35b34801561087157600080fd5b5061088c60048036038101906108879190613116565b611b65565b005b34801561089a57600080fd5b506108b560048036038101906108b09190612f62565b611c68565b005b3480156108c357600080fd5b506108de60048036038101906108d99190612f62565b611d3f565b005b3480156108ec57600080fd5b50610907600480360381019061090291906130bc565b611ee8565b005b606060078054610918906138ae565b80601f0160208091040260200160405190810160405280929190818152602001828054610944906138ae565b80156109915780601f1061096657610100808354040283529160200191610991565b820191906000526020600020905b81548152906001019060200180831161097457829003601f168201915b5050505050905090565b60006109af6109a8611fe4565b8484611fec565b6001905092915050565b6109c1611fe4565b73ffffffffffffffffffffffffffffffffffffffff166109df61173f565b73ffffffffffffffffffffffffffffffffffffffff1614610a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2c90613552565b60405180910390fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610a8057600080fd5b505afa158015610a94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab89190612f8f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610b1a57600080fd5b505afa158015610b2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b529190612f8f565b6040518363ffffffff1660e01b8152600401610b6f929190613428565b602060405180830381600087803b158015610b8957600080fd5b505af1158015610b9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc19190612f8f565b601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601960169054906101000a900460ff1681565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a54905090565b601960149054906101000a900460ff1681565b6000610ca9848484612180565b610d6a84610cb5611fe4565b610d6585604051806060016040528060288152602001613c5f60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d1b611fe4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127bf9092919063ffffffff16565b611fec565b600190509392505050565b610d7d611fe4565b73ffffffffffffffffffffffffffffffffffffffff16610d9b61173f565b73ffffffffffffffffffffffffffffffffffffffff1614610df1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de890613552565b60405180910390fd5b61271081600a54610e02919061373e565b610e0c919061370d565b60168190555050565b6000600960009054906101000a900460ff16905090565b6000610e36611fe4565b73ffffffffffffffffffffffffffffffffffffffff16610e5461173f565b73ffffffffffffffffffffffffffffffffffffffff1614610eaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea190613552565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610f19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1090613512565b60405180910390fd5b60008473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f54919061340d565b60206040518083038186803b158015610f6c57600080fd5b505afa158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa49190613143565b905080831115610fb2578092505b8473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85856040518363ffffffff1660e01b8152600401610fed929190613451565b602060405180830381600087803b15801561100757600080fd5b505af115801561101b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103f91906130e9565b9150509392505050565b611051611fe4565b73ffffffffffffffffffffffffffffffffffffffff1661106f61173f565b73ffffffffffffffffffffffffffffffffffffffff16146110c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bc90613552565b60405180910390fd5b600081905080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60006111b861111c611fe4565b846111b3856002600061112d611fe4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281490919063ffffffff16565b611fec565b6001905092915050565b600f5481565b6111d0611fe4565b73ffffffffffffffffffffffffffffffffffffffff166111ee61173f565b73ffffffffffffffffffffffffffffffffffffffff1614611244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123b90613552565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601960159054906101000a900460ff1681565b60105481565b6112e6611fe4565b73ffffffffffffffffffffffffffffffffffffffff1661130461173f565b73ffffffffffffffffffffffffffffffffffffffff161461135a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135190613552565b60405180910390fd5b600d54818361136991906136b7565b11156113aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a190613532565b60405180910390fd5b8060108190555081600f819055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61140d611fe4565b73ffffffffffffffffffffffffffffffffffffffff1661142b61173f565b73ffffffffffffffffffffffffffffffffffffffff1614611481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147890613552565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60036020528060005260406000206000915054906101000a900460ff1681565b60145481565b61156d611fe4565b73ffffffffffffffffffffffffffffffffffffffff1661158b61173f565b73ffffffffffffffffffffffffffffffffffffffff16146115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d890613552565b60405180910390fd5b80600c60016101000a81548160ff021916908360ff16021790555050565b60165481565b61160d611fe4565b73ffffffffffffffffffffffffffffffffffffffff1661162b61173f565b73ffffffffffffffffffffffffffffffffffffffff1614611681576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167890613552565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611770611fe4565b73ffffffffffffffffffffffffffffffffffffffff1661178e61173f565b73ffffffffffffffffffffffffffffffffffffffff16146117e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117db90613552565b60405180910390fd5b61271081600a546117f5919061373e565b6117ff919061370d565b60148190555050565b606060088054611817906138ae565b80601f0160208091040260200160405190810160405280929190818152602001828054611843906138ae565b80156118905780601f1061186557610100808354040283529160200191611890565b820191906000526020600020905b81548152906001019060200180831161187357829003601f168201915b5050505050905090565b600061195d6118a7611fe4565b8461195885604051806060016040528060258152602001613c8760259139600260006118d1611fe4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127bf9092919063ffffffff16565b611fec565b6001905092915050565b61196f611fe4565b73ffffffffffffffffffffffffffffffffffffffff1661198d61173f565b73ffffffffffffffffffffffffffffffffffffffff16146119e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119da90613552565b60405180910390fd5b80601960166101000a81548160ff02191690831515021790555050565b6000611a14611a0d611fe4565b8484612180565b6001905092915050565b611a26611fe4565b73ffffffffffffffffffffffffffffffffffffffff16611a4461173f565b73ffffffffffffffffffffffffffffffffffffffff1614611a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9190613552565b60405180910390fd5b80601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b6d611fe4565b73ffffffffffffffffffffffffffffffffffffffff16611b8b61173f565b73ffffffffffffffffffffffffffffffffffffffff1614611be1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd890613552565b60405180910390fd5b601960149054906101000a900460ff1615611c31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2890613572565b60405180910390fd5b6000611c3c306113bc565b9050600060648383611c4e919061373e565b611c58919061370d565b9050611c638161282a565b505050565b611c70611fe4565b73ffffffffffffffffffffffffffffffffffffffff16611c8e61173f565b73ffffffffffffffffffffffffffffffffffffffff1614611ce4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdb90613552565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611d47611fe4565b73ffffffffffffffffffffffffffffffffffffffff16611d6561173f565b73ffffffffffffffffffffffffffffffffffffffff1614611dbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db290613552565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e22906134d2565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611ef0611fe4565b73ffffffffffffffffffffffffffffffffffffffff16611f0e61173f565b73ffffffffffffffffffffffffffffffffffffffff1614611f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5b90613552565b60405180910390fd5b80601960156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051611fad919061347a565b60405180910390a150565b60008183611fc6919061373e565b905092915050565b60008183611fdc919061370d565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156120565750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b612095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208c906135b2565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161217391906135d2565b60405180910390a3505050565b61218861173f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156122115750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561224957503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122a35750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122fd5750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561233c575061230c61173f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156123a057600061234c836113bc565b9050601454828261235d91906136b7565b111561239e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239590613592565b60405180910390fd5b505b6123a861173f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561241657506123e661173f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561246157601654811115612460576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612457906134f2565b60405180910390fd5b5b600c60019054906101000a900460ff1660ff16600c60009054906101000a900460ff1660ff16101580156124a25750601960149054906101000a900460ff16155b80156124fc5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156125145750601960159054906101000a900460ff165b15612567576000600c60006101000a81548160ff021916908360ff1602179055506000612540306113bc565b90506016548111156125525760165490505b6000811115612565576125648161282a565b5b505b600060019050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061260e5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806126d95750601960169054906101000a900460ff16801561267e5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156126d85750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156126e757600090506127ad565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561274b57600f54600e819055506127ac565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156127ab57601054600e819055505b5b5b6127b98484848461289e565b50505050565b6000838311158290612807576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127fe91906134b0565b60405180910390fd5b5082840390509392505050565b6000818361282291906136b7565b905092915050565b6001601960146101000a81548160ff02191690831515021790555061284e81612908565b600047905061287f600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612b5a565b506000601960146101000a81548160ff02191690831515021790555050565b806128b0576128ab612ba5565b6128e9565b600c600081819054906101000a900460ff16809291906128cf906138e0565b91906101000a81548160ff021916908360ff160217905550505b6128f4848484612c07565b8061290257612901612e42565b5b50505050565b6000600267ffffffffffffffff811115612925576129246139c6565b5b6040519080825280602002602001820160405280156129535781602001602082028036833780820191505090505b509050308160008151811061296b5761296a613997565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612a0d57600080fd5b505afa158015612a21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a459190612f8f565b81600181518110612a5957612a58613997565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612ac030601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611fec565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612b249594939291906135ed565b600060405180830381600087803b158015612b3e57600080fd5b505af1158015612b52573d6000803e3d6000fd5b505050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612ba0573d6000803e3d6000fd5b505050565b6000600e54148015612bb957506000600f54145b8015612bc757506000601054145b15612bd157612c05565b600f54601281905550601054601381905550600e546011819055506000600f8190555060006010819055506000600e819055505b565b600080612c1383612e5f565b91509150612c6983600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ea490919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612cfe82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281490919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d9381600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281490919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612e3391906135d2565b60405180910390a35050505050565b601154600e81905550601254600f81905550601354601081905550565b60008060006064600e5485612e74919061373e565b612e7e919061370d565b90506000612e958286612ea490919063ffffffff16565b90508082935093505050915091565b60008183612eb29190613798565b905092915050565b600081359050612ec981613beb565b92915050565b600081519050612ede81613beb565b92915050565b600081359050612ef381613c02565b92915050565b600081359050612f0881613c19565b92915050565b600081519050612f1d81613c19565b92915050565b600081359050612f3281613c30565b92915050565b600081519050612f4781613c30565b92915050565b600081359050612f5c81613c47565b92915050565b600060208284031215612f7857612f776139f5565b5b6000612f8684828501612eba565b91505092915050565b600060208284031215612fa557612fa46139f5565b5b6000612fb384828501612ecf565b91505092915050565b600060208284031215612fd257612fd16139f5565b5b6000612fe084828501612ee4565b91505092915050565b6000806040838503121561300057612fff6139f5565b5b600061300e85828601612eba565b925050602061301f85828601612eba565b9150509250929050565b600080600060608486031215613042576130416139f5565b5b600061305086828701612eba565b935050602061306186828701612eba565b925050604061307286828701612f23565b9150509250925092565b60008060408385031215613093576130926139f5565b5b60006130a185828601612eba565b92505060206130b285828601612f23565b9150509250929050565b6000602082840312156130d2576130d16139f5565b5b60006130e084828501612ef9565b91505092915050565b6000602082840312156130ff576130fe6139f5565b5b600061310d84828501612f0e565b91505092915050565b60006020828403121561312c5761312b6139f5565b5b600061313a84828501612f23565b91505092915050565b600060208284031215613159576131586139f5565b5b600061316784828501612f38565b91505092915050565b60008060408385031215613187576131866139f5565b5b600061319585828601612f23565b92505060206131a685828601612f23565b9150509250929050565b6000602082840312156131c6576131c56139f5565b5b60006131d484828501612f4d565b91505092915050565b60006131e983836131f5565b60208301905092915050565b6131fe816137cc565b82525050565b61320d816137cc565b82525050565b600061321e82613672565b6132288185613695565b935061323383613662565b8060005b8381101561326457815161324b88826131dd565b975061325683613688565b925050600181019050613237565b5085935050505092915050565b61327a816137f0565b82525050565b61328981613833565b82525050565b61329881613845565b82525050565b60006132a98261367d565b6132b381856136a6565b93506132c381856020860161387b565b6132cc816139fa565b840191505092915050565b60006132e46026836136a6565b91506132ef82613a0b565b604082019050919050565b6000613307603a836136a6565b915061331282613a5a565b604082019050919050565b600061332a601b836136a6565b915061333582613aa9565b602082019050919050565b600061334d6010836136a6565b915061335882613ad2565b602082019050919050565b60006133706020836136a6565b915061337b82613afb565b602082019050919050565b60006133936020836136a6565b915061339e82613b24565b602082019050919050565b60006133b66051836136a6565b91506133c182613b4d565b606082019050919050565b60006133d96011836136a6565b91506133e482613bc2565b602082019050919050565b6133f88161381c565b82525050565b61340781613826565b82525050565b60006020820190506134226000830184613204565b92915050565b600060408201905061343d6000830185613204565b61344a6020830184613204565b9392505050565b60006040820190506134666000830185613204565b61347360208301846133ef565b9392505050565b600060208201905061348f6000830184613271565b92915050565b60006020820190506134aa6000830184613280565b92915050565b600060208201905081810360008301526134ca818461329e565b905092915050565b600060208201905081810360008301526134eb816132d7565b9050919050565b6000602082019050818103600083015261350b816132fa565b9050919050565b6000602082019050818103600083015261352b8161331d565b9050919050565b6000602082019050818103600083015261354b81613340565b9050919050565b6000602082019050818103600083015261356b81613363565b9050919050565b6000602082019050818103600083015261358b81613386565b9050919050565b600060208201905081810360008301526135ab816133a9565b9050919050565b600060208201905081810360008301526135cb816133cc565b9050919050565b60006020820190506135e760008301846133ef565b92915050565b600060a08201905061360260008301886133ef565b61360f602083018761328f565b81810360408301526136218186613213565b90506136306060830185613204565b61363d60808301846133ef565b9695505050505050565b600060208201905061365c60008301846133fe565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006136c28261381c565b91506136cd8361381c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156137025761370161390a565b5b828201905092915050565b60006137188261381c565b91506137238361381c565b92508261373357613732613939565b5b828204905092915050565b60006137498261381c565b91506137548361381c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561378d5761378c61390a565b5b828202905092915050565b60006137a38261381c565b91506137ae8361381c565b9250828210156137c1576137c061390a565b5b828203905092915050565b60006137d7826137fc565b9050919050565b60006137e9826137fc565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061383e82613857565b9050919050565b60006138508261381c565b9050919050565b600061386282613869565b9050919050565b6000613874826137fc565b9050919050565b60005b8381101561389957808201518184015260208101905061387e565b838111156138a8576000848401525b50505050565b600060028204905060018216806138c657607f821691505b602082108114156138da576138d9613968565b5b50919050565b60006138eb82613826565b915060ff8214156138ff576138fe61390a565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f596f752061726520747279696e6720746f20627579206d6f7265207468616e2060008201527f746865206d6178207472616e73616374696f6e206c696d69742e000000000000602082015250565b7f43616e206e6f742072656d6f7665206e617469766520746f6b656e0000000000600082015250565b7f46656520697320746f6f20686967682100000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f43757272656e746c792070726f63657373696e672c20747279206c617465722e600082015250565b7f596f752061726520747279696e6720746f2062757920746f6f206d616e79207460008201527f6f6b656e732e20596f752068617665207265616368656420746865206c696d6960208201527f7420666f72206f6e652077616c6c65742e000000000000000000000000000000604082015250565b7f4552523a207a65726f2061646472657373000000000000000000000000000000600082015250565b613bf4816137cc565b8114613bff57600080fd5b50565b613c0b816137de565b8114613c1657600080fd5b50565b613c22816137f0565b8114613c2d57600080fd5b50565b613c398161381c565b8114613c4457600080fd5b50565b613c5081613826565b8114613c5b57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220104a857ee8c782a6f38d10b011f147c86e5d01c8c787705f991bf341c276c60d64736f6c63430008070033

Deployed Bytecode Sourcemap

14122:12110:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16808:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17639:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24506:318;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19726:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15654:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17085:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15737:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17808:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19911:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16994:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23990:502;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24840:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18129:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15117:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18637:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15702:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15772:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15151:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18896:219;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17188:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5905:148;;;;;;;;;;;;;:::i;:::-;;14378:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15355:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19504:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15492:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19133:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5669:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20084:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16899:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18355:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19775:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17313:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25053:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17488:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23045:443;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18764:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6067:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19301:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16808:83;16845:13;16878:5;16871:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16808:83;:::o;17639:161::-;17714:4;17731:39;17740:12;:10;:12::i;:::-;17754:7;17763:6;17731:8;:39::i;:::-;17788:4;17781:11;;17639:161;;;;:::o;24506:318::-;5822:12;:10;:12::i;:::-;5811:23;;:7;:5;:7::i;:::-;:23;;;5803:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24593:32:::1;24647:9;24593:64;;24702:13;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24684:53;;;24746:4;24753:13;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24684:90;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24668:13;;:106;;;;;;;;;;;;;;;;;;24803:13;24785:15;;:31;;;;;;;;;;;;;;;;;;24582:242;24506:318:::0;:::o;19726:34::-;;;;;;;;;;;;;:::o;15654:41::-;;;;;;;;;;;;;:::o;17085:95::-;17138:7;17165;;17158:14;;17085:95;:::o;15737:28::-;;;;;;;;;;;;;:::o;17808:313::-;17906:4;17923:36;17933:6;17941:9;17952:6;17923:9;:36::i;:::-;17970:121;17979:6;17987:12;:10;:12::i;:::-;18001:89;18039:6;18001:89;;;;;;;;;;;;;;;;;:11;:19;18013:6;18001:19;;;;;;;;;;;;;;;:33;18021:12;:10;:12::i;:::-;18001:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;17970:8;:121::i;:::-;18109:4;18102:11;;17808:313;;;;;:::o;19911:150::-;5822:12;:10;:12::i;:::-;5811:23;;:7;:5;:7::i;:::-;:23;;;5803:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20048:5:::1;20030:17;20022:7;;:25;;;;:::i;:::-;:31;;;;:::i;:::-;20007:12;:46;;;;19911:150:::0;:::o;16994:83::-;17035:5;17060:9;;;;;;;;;;;17053:16;;16994:83;:::o;23990:502::-;24125:10;5822:12;:10;:12::i;:::-;5811:23;;:7;:5;:7::i;:::-;:23;;;5803:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24187:4:::1;24155:37;;:20;:37;;;;24147:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;24235:21;24266:20;24259:38;;;24306:4;24259:53;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24235:77;;24346:13;24327:16;:32;24323:72;;;24380:13;24361:32;;24323:72;24420:20;24413:37;;;24451:14;24467:16;24413:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24405:79;;24136:356;23990:502:::0;;;;;:::o;24840:195::-;5822:12;:10;:12::i;:::-;5811:23;;:7;:5;:7::i;:::-;:23;;;5803:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24921:32:::1;24975:9;24921:64;;25014:13;24996:15;;:31;;;;;;;;;;;;;;;;;;24910:125;24840:195:::0;:::o;18129:218::-;18217:4;18234:83;18243:12;:10;:12::i;:::-;18257:7;18266:50;18305:10;18266:11;:25;18278:12;:10;:12::i;:::-;18266:25;;;;;;;;;;;;;;;:34;18292:7;18266:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;18234:8;:83::i;:::-;18335:4;18328:11;;18129:218;;;;:::o;15117:27::-;;;;:::o;18637:111::-;5822:12;:10;:12::i;:::-;5811:23;;:7;:5;:7::i;:::-;:23;;;5803:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18736:4:::1;18706:18;:27;18725:7;18706:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;18637:111:::0;:::o;15702:28::-;;;;;;;;;;;;;:::o;15772:40::-;;;;;;;;;;;;;:::o;15151:28::-;;;;:::o;18896:219::-;5822:12;:10;:12::i;:::-;5811:23;;:7;:5;:7::i;:::-;:23;;;5803:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19016:10:::1;;19003:8;18993:7;:18;;;;:::i;:::-;18992:34;;18984:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;19069:8;19058;:19;;;;19098:7;19088;:17;;;;18896:219:::0;;:::o;17188:117::-;17254:7;17281;:16;17289:7;17281:16;;;;;;;;;;;;;;;;17274:23;;17188:117;;;:::o;5905:148::-;5822:12;:10;:12::i;:::-;5811:23;;:7;:5;:7::i;:::-;:23;;;5803:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6012:1:::1;5975:40;;5996:6;::::0;::::1;;;;;;;;5975:40;;;;;;;;;;;;6043:1;6026:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5905:148::o:0;14378:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;15355:56::-;;;;:::o;19504:161::-;5822:12;:10;:12::i;:::-;5811:23;;:7;:5;:7::i;:::-;:23;;;5803:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19635:22:::1;19621:11;;:36;;;;;;;;;;;;;;;;;;19504:161:::0;:::o;15492:53::-;;;;:::o;19133:156::-;5822:12;:10;:12::i;:::-;5811:23;;:7;:5;:7::i;:::-;:23;;;5803:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19227:6:::1;19214:10;;:19;;;;;;;;;;;;;;;;;;19277:4;19244:18;:30;19263:10;;;;;;;;;;;19244:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;19133:156:::0;:::o;5669:87::-;5715:7;5742:6;;;;;;;;;;;5735:13;;5669:87;:::o;20084:152::-;5822:12;:10;:12::i;:::-;5811:23;;:7;:5;:7::i;:::-;:23;;;5803:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20223:5:::1;20203:19;20195:7;;:27;;;;:::i;:::-;:33;;;;:::i;:::-;20177:15;:51;;;;20084:152:::0;:::o;16899:87::-;16938:13;16971:7;16964:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16899:87;:::o;18355:269::-;18448:4;18465:129;18474:12;:10;:12::i;:::-;18488:7;18497:96;18536:15;18497:96;;;;;;;;;;;;;;;;;:11;:25;18509:12;:10;:12::i;:::-;18497:25;;;;;;;;;;;;;;;:34;18523:7;18497:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;18465:8;:129::i;:::-;18612:4;18605:11;;18355:269;;;;:::o;19775:125::-;5822:12;:10;:12::i;:::-;5811:23;;:7;:5;:7::i;:::-;:23;;;5803:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19879:13:::1;19861:15;;:31;;;;;;;;;;;;;;;;;;19775:125:::0;:::o;17313:167::-;17391:4;17408:42;17418:12;:10;:12::i;:::-;17432:9;17443:6;17408:9;:42::i;:::-;17468:4;17461:11;;17313:167;;;;:::o;25053:108::-;5822:12;:10;:12::i;:::-;5811:23;;:7;:5;:7::i;:::-;:23;;;5803:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25146:7:::1;25130:13;;:23;;;;;;;;;;;;;;;;;;25053:108:::0;:::o;17488:143::-;17569:7;17596:11;:18;17608:5;17596:18;;;;;;;;;;;;;;;:27;17615:7;17596:27;;;;;;;;;;;;;;;;17589:34;;17488:143;;;;:::o;23045:443::-;5822:12;:10;:12::i;:::-;5811:23;;:7;:5;:7::i;:::-;:23;;;5803:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23159:16:::1;;;;;;;;;;;23158:17;23150:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;23311:24;23338;23356:4;23338:9;:24::i;:::-;23311:51;;23373:18;23440:3;23411:28;23394:16;:45;;;;:::i;:::-;:49;;;;:::i;:::-;23373:70;;23454:26;23469:10;23454:14;:26::i;:::-;23129:359;;23045:443:::0;:::o;18764:110::-;5822:12;:10;:12::i;:::-;5811:23;;:7;:5;:7::i;:::-;:23;;;5803:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18861:5:::1;18831:18;:27;18850:7;18831:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;18764:110:::0;:::o;6067:244::-;5822:12;:10;:12::i;:::-;5811:23;;:7;:5;:7::i;:::-;:23;;;5803:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6176:1:::1;6156:22;;:8;:22;;;;6148:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6266:8;6237:38;;6258:6;::::0;::::1;;;;;;;;6237:38;;;;;;;;;;;;6295:8;6286:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;6067:244:::0;:::o;19301:190::-;5822:12;:10;:12::i;:::-;5811:23;;:7;:5;:7::i;:::-;:23;;;5803:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19411:13:::1;19387:21;;:37;;;;;;;;;;;;;;;;;;19440:43;19469:13;19440:43;;;;;;:::i;:::-;;;;;;;;19301:190:::0;:::o;1085:98::-;1143:7;1174:1;1170;:5;;;;:::i;:::-;1163:12;;1085:98;;;;:::o;1195:::-;1253:7;1284:1;1280;:5;;;;:::i;:::-;1273:12;;1195:98;;;;:::o;1774:::-;1827:7;1854:10;1847:17;;1774:98;:::o;20740:266::-;20852:1;20835:19;;:5;:19;;;;:44;;;;;20877:1;20858:21;;:7;:21;;;;20835:44;20827:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;20942:6;20912:11;:18;20924:5;20912:18;;;;;;;;;;;;;;;:27;20931:7;20912:27;;;;;;;;;;;;;;;:36;;;;20980:7;20964:32;;20973:5;20964:32;;;20989:6;20964:32;;;;;;:::i;:::-;;;;;;;;20740:266;;;:::o;21014:1623::-;21153:7;:5;:7::i;:::-;21147:13;;:2;:13;;;;:46;;;;;21183:10;;;;;;;;;;;21177:16;;:2;:16;;;;21147:46;:82;;;;;21224:4;21210:19;;:2;:19;;;;21147:82;:118;;;;;21252:13;;;;;;;;;;;21246:19;;:2;:19;;;;21147:118;:152;;;;;21288:11;;;;;;;;;;;21282:17;;:2;:17;;;;21147:152;:184;;;;;21324:7;:5;:7::i;:::-;21316:15;;:4;:15;;;;21147:184;21143:388;;;21347:18;21368:13;21378:2;21368:9;:13::i;:::-;21347:34;;21429:15;;21418:6;21405:10;:19;;;;:::i;:::-;21404:40;;21396:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;21332:199;21143:388;21567:7;:5;:7::i;:::-;21559:15;;:4;:15;;;;:32;;;;;21584:7;:5;:7::i;:::-;21578:13;;:2;:13;;;;21559:32;21555:144;;;21624:12;;21614:6;:22;;21606:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;21555:144;21761:11;;;;;;;;;;;21750:22;;:7;;;;;;;;;;;:22;;;;:57;;;;;21791:16;;;;;;;;;;;21790:17;21750:57;:95;;;;;21832:13;;;;;;;;;;;21824:21;;:4;:21;;;;21750:95;:133;;;;;21862:21;;;;;;;;;;;21750:133;21733:497;;;21950:1;21940:7;;:11;;;;;;;;;;;;;;;;;;21966:28;21997:24;22015:4;21997:9;:24::i;:::-;21966:55;;22062:12;;22039:20;:35;22036:78;;;22100:12;;22077:35;;22036:78;22154:1;22131:20;:24;22128:91;;;22171:36;22186:20;22171:14;:36::i;:::-;22128:91;21909:321;21733:497;22258:12;22273:4;22258:19;;22302:18;:24;22321:4;22302:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;22330:18;:22;22349:2;22330:22;;;;;;;;;;;;;;;;;;;;;;;;;22302:50;:119;;;;22357:15;;;;;;;;;;;:40;;;;;22384:13;;;;;;;;;;;22376:21;;:4;:21;;;;22357:40;:63;;;;;22407:13;;;;;;;;;;;22401:19;;:2;:19;;;;22357:63;22302:119;22299:272;;;22447:5;22437:15;;22299:272;;;22482:13;;;;;;;;;;;22474:21;;:4;:21;;;22470:101;;;22509:7;;22497:9;:19;;;;22470:101;;;22534:13;;;;;;;;;;;22528:19;;:2;:19;;;22524:47;;;22561:8;;22549:9;:20;;;;22524:47;22470:101;22299:272;22591:38;22606:4;22611:2;22614:6;22621:7;22591:14;:38::i;:::-;21117:1520;21014:1623;;;:::o;1301:206::-;1387:7;1445:1;1440;:6;;1448:12;1432:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1487:1;1483;:5;1476:12;;1301:206;;;;;:::o;873:98::-;931:7;962:1;958;:5;;;;:::i;:::-;951:12;;873:98;;;;:::o;22787:242::-;16087:4;16068:16;;:23;;;;;;;;;;;;;;;;;;22882:38:::1;22899:20;22882:16;:38::i;:::-;22931:19;22953:21;22931:43;;22985:36;22998:10;;;;;;;;;;;23009:11;22985:12;:36::i;:::-;22861:168;16133:5:::0;16114:16;;:24;;;;;;;;;;;;;;;;;;22787:242;:::o;25172:360::-;25303:7;25299:107;;25326:14;:12;:14::i;:::-;25299:107;;;25381:7;;:9;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;25299:107;25420:42;25436:6;25444:9;25455:6;25420:15;:42::i;:::-;25487:7;25483:41;;25509:15;:13;:15::i;:::-;25483:41;25172:360;;;;:::o;23505:474::-;23573:21;23611:1;23597:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23573:40;;23642:4;23624;23629:1;23624:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;23668:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23658:4;23663:1;23658:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;23701:62;23718:4;23733:15;;;;;;;;;;;23751:11;23701:8;:62::i;:::-;23774:15;;;;;;;;;;;:66;;;23855:11;23881:1;23898:4;23925;23945:15;23774:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23560:419;23505:474;:::o;22651:120::-;22736:6;:15;;:23;22752:6;22736:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22651:120;;:::o;20254:300::-;20313:1;20300:9;;:14;:30;;;;;20329:1;20318:7;;:12;20300:30;:47;;;;;20346:1;20334:8;;:13;20300:47;20297:59;;;20349:7;;20297:59;20388:7;;20370:15;:25;;;;20426:8;;20407:16;:27;;;;20466:9;;20446:17;:29;;;;20496:1;20486:7;:11;;;;20519:1;20508:8;:12;;;;20543:1;20531:9;:13;;;;20254:300;:::o;25546:424::-;25643:23;25668:12;25684:19;25695:7;25684:10;:19::i;:::-;25642:61;;;;25732:28;25752:7;25732;:15;25740:6;25732:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;25714:7;:15;25722:6;25714:15;;;;;;;;;;;;;;;:46;;;;25792:39;25815:15;25792:7;:18;25800:9;25792:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;25771:7;:18;25779:9;25771:18;;;;;;;;;;;;;;;:60;;;;25867:32;25894:4;25867:7;:22;25883:4;25867:22;;;;;;;;;;;;;;;;:26;;:32;;;;:::i;:::-;25842:7;:22;25858:4;25842:22;;;;;;;;;;;;;;;:57;;;;25935:9;25918:44;;25927:6;25918:44;;;25946:15;25918:44;;;;;;:::i;:::-;;;;;;;;25631:339;;25546:424;;;:::o;20571:153::-;20629:17;;20617:9;:29;;;;20663:15;;20653:7;:25;;;;20697:16;;20686:8;:27;;;;20571:153::o;25986:227::-;26045:7;26054;26074:12;26107:3;26097:9;;26089:7;:17;;;;:::i;:::-;:21;;;;:::i;:::-;26074:36;;26121:23;26147:17;26159:4;26147:7;:11;;:17;;;;:::i;:::-;26121:43;;26183:15;26200:4;26175:30;;;;;;25986:227;;;:::o;979:98::-;1037:7;1068:1;1064;:5;;;;:::i;:::-;1057:12;;979:98;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:155::-;355:5;393:6;380:20;371:29;;409:41;444:5;409:41;:::i;:::-;301:155;;;;:::o;462:133::-;505:5;543:6;530:20;521:29;;559:30;583:5;559:30;:::i;:::-;462:133;;;;:::o;601:137::-;655:5;686:6;680:13;671:22;;702:30;726:5;702:30;:::i;:::-;601:137;;;;:::o;744:139::-;790:5;828:6;815:20;806:29;;844:33;871:5;844:33;:::i;:::-;744:139;;;;:::o;889:143::-;946:5;977:6;971:13;962:22;;993:33;1020:5;993:33;:::i;:::-;889:143;;;;:::o;1038:135::-;1082:5;1120:6;1107:20;1098:29;;1136:31;1161:5;1136:31;:::i;:::-;1038:135;;;;:::o;1179:329::-;1238:6;1287:2;1275:9;1266:7;1262:23;1258:32;1255:119;;;1293:79;;:::i;:::-;1255:119;1413:1;1438:53;1483:7;1474:6;1463:9;1459:22;1438:53;:::i;:::-;1428:63;;1384:117;1179:329;;;;:::o;1514:351::-;1584:6;1633:2;1621:9;1612:7;1608:23;1604:32;1601:119;;;1639:79;;:::i;:::-;1601:119;1759:1;1784:64;1840:7;1831:6;1820:9;1816:22;1784:64;:::i;:::-;1774:74;;1730:128;1514:351;;;;:::o;1871:345::-;1938:6;1987:2;1975:9;1966:7;1962:23;1958:32;1955:119;;;1993:79;;:::i;:::-;1955:119;2113:1;2138:61;2191:7;2182:6;2171:9;2167:22;2138:61;:::i;:::-;2128:71;;2084:125;1871:345;;;;:::o;2222:474::-;2290:6;2298;2347:2;2335:9;2326:7;2322:23;2318:32;2315:119;;;2353:79;;:::i;:::-;2315:119;2473:1;2498:53;2543:7;2534:6;2523:9;2519:22;2498:53;:::i;:::-;2488:63;;2444:117;2600:2;2626:53;2671:7;2662:6;2651:9;2647:22;2626:53;:::i;:::-;2616:63;;2571:118;2222:474;;;;;:::o;2702:619::-;2779:6;2787;2795;2844:2;2832:9;2823:7;2819:23;2815:32;2812:119;;;2850:79;;:::i;:::-;2812:119;2970:1;2995:53;3040:7;3031:6;3020:9;3016:22;2995:53;:::i;:::-;2985:63;;2941:117;3097:2;3123:53;3168:7;3159:6;3148:9;3144:22;3123:53;:::i;:::-;3113:63;;3068:118;3225:2;3251:53;3296:7;3287:6;3276:9;3272:22;3251:53;:::i;:::-;3241:63;;3196:118;2702:619;;;;;:::o;3327:474::-;3395:6;3403;3452:2;3440:9;3431:7;3427:23;3423:32;3420:119;;;3458:79;;:::i;:::-;3420:119;3578:1;3603:53;3648:7;3639:6;3628:9;3624:22;3603:53;:::i;:::-;3593:63;;3549:117;3705:2;3731:53;3776:7;3767:6;3756:9;3752:22;3731:53;:::i;:::-;3721:63;;3676:118;3327:474;;;;;:::o;3807:323::-;3863:6;3912:2;3900:9;3891:7;3887:23;3883:32;3880:119;;;3918:79;;:::i;:::-;3880:119;4038:1;4063:50;4105:7;4096:6;4085:9;4081:22;4063:50;:::i;:::-;4053:60;;4009:114;3807:323;;;;:::o;4136:345::-;4203:6;4252:2;4240:9;4231:7;4227:23;4223:32;4220:119;;;4258:79;;:::i;:::-;4220:119;4378:1;4403:61;4456:7;4447:6;4436:9;4432:22;4403:61;:::i;:::-;4393:71;;4349:125;4136:345;;;;:::o;4487:329::-;4546:6;4595:2;4583:9;4574:7;4570:23;4566:32;4563:119;;;4601:79;;:::i;:::-;4563:119;4721:1;4746:53;4791:7;4782:6;4771:9;4767:22;4746:53;:::i;:::-;4736:63;;4692:117;4487:329;;;;:::o;4822:351::-;4892:6;4941:2;4929:9;4920:7;4916:23;4912:32;4909:119;;;4947:79;;:::i;:::-;4909:119;5067:1;5092:64;5148:7;5139:6;5128:9;5124:22;5092:64;:::i;:::-;5082:74;;5038:128;4822:351;;;;:::o;5179:474::-;5247:6;5255;5304:2;5292:9;5283:7;5279:23;5275:32;5272:119;;;5310:79;;:::i;:::-;5272:119;5430:1;5455:53;5500:7;5491:6;5480:9;5476:22;5455:53;:::i;:::-;5445:63;;5401:117;5557:2;5583:53;5628:7;5619:6;5608:9;5604:22;5583:53;:::i;:::-;5573:63;;5528:118;5179:474;;;;;:::o;5659:325::-;5716:6;5765:2;5753:9;5744:7;5740:23;5736:32;5733:119;;;5771:79;;:::i;:::-;5733:119;5891:1;5916:51;5959:7;5950:6;5939:9;5935:22;5916:51;:::i;:::-;5906:61;;5862:115;5659:325;;;;:::o;5990:179::-;6059:10;6080:46;6122:3;6114:6;6080:46;:::i;:::-;6158:4;6153:3;6149:14;6135:28;;5990:179;;;;:::o;6175:108::-;6252:24;6270:5;6252:24;:::i;:::-;6247:3;6240:37;6175:108;;:::o;6289:118::-;6376:24;6394:5;6376:24;:::i;:::-;6371:3;6364:37;6289:118;;:::o;6443:732::-;6562:3;6591:54;6639:5;6591:54;:::i;:::-;6661:86;6740:6;6735:3;6661:86;:::i;:::-;6654:93;;6771:56;6821:5;6771:56;:::i;:::-;6850:7;6881:1;6866:284;6891:6;6888:1;6885:13;6866:284;;;6967:6;6961:13;6994:63;7053:3;7038:13;6994:63;:::i;:::-;6987:70;;7080:60;7133:6;7080:60;:::i;:::-;7070:70;;6926:224;6913:1;6910;6906:9;6901:14;;6866:284;;;6870:14;7166:3;7159:10;;6567:608;;;6443:732;;;;:::o;7181:109::-;7262:21;7277:5;7262:21;:::i;:::-;7257:3;7250:34;7181:109;;:::o;7296:185::-;7410:64;7468:5;7410:64;:::i;:::-;7405:3;7398:77;7296:185;;:::o;7487:147::-;7582:45;7621:5;7582:45;:::i;:::-;7577:3;7570:58;7487:147;;:::o;7640:364::-;7728:3;7756:39;7789:5;7756:39;:::i;:::-;7811:71;7875:6;7870:3;7811:71;:::i;:::-;7804:78;;7891:52;7936:6;7931:3;7924:4;7917:5;7913:16;7891:52;:::i;:::-;7968:29;7990:6;7968:29;:::i;:::-;7963:3;7959:39;7952:46;;7732:272;7640:364;;;;:::o;8010:366::-;8152:3;8173:67;8237:2;8232:3;8173:67;:::i;:::-;8166:74;;8249:93;8338:3;8249:93;:::i;:::-;8367:2;8362:3;8358:12;8351:19;;8010:366;;;:::o;8382:::-;8524:3;8545:67;8609:2;8604:3;8545:67;:::i;:::-;8538:74;;8621:93;8710:3;8621:93;:::i;:::-;8739:2;8734:3;8730:12;8723:19;;8382:366;;;:::o;8754:::-;8896:3;8917:67;8981:2;8976:3;8917:67;:::i;:::-;8910:74;;8993:93;9082:3;8993:93;:::i;:::-;9111:2;9106:3;9102:12;9095:19;;8754:366;;;:::o;9126:::-;9268:3;9289:67;9353:2;9348:3;9289:67;:::i;:::-;9282:74;;9365:93;9454:3;9365:93;:::i;:::-;9483:2;9478:3;9474:12;9467:19;;9126:366;;;:::o;9498:::-;9640:3;9661:67;9725:2;9720:3;9661:67;:::i;:::-;9654:74;;9737:93;9826:3;9737:93;:::i;:::-;9855:2;9850:3;9846:12;9839:19;;9498:366;;;:::o;9870:::-;10012:3;10033:67;10097:2;10092:3;10033:67;:::i;:::-;10026:74;;10109:93;10198:3;10109:93;:::i;:::-;10227:2;10222:3;10218:12;10211:19;;9870:366;;;:::o;10242:::-;10384:3;10405:67;10469:2;10464:3;10405:67;:::i;:::-;10398:74;;10481:93;10570:3;10481:93;:::i;:::-;10599:2;10594:3;10590:12;10583:19;;10242:366;;;:::o;10614:::-;10756:3;10777:67;10841:2;10836:3;10777:67;:::i;:::-;10770:74;;10853:93;10942:3;10853:93;:::i;:::-;10971:2;10966:3;10962:12;10955:19;;10614:366;;;:::o;10986:118::-;11073:24;11091:5;11073:24;:::i;:::-;11068:3;11061:37;10986:118;;:::o;11110:112::-;11193:22;11209:5;11193:22;:::i;:::-;11188:3;11181:35;11110:112;;:::o;11228:222::-;11321:4;11359:2;11348:9;11344:18;11336:26;;11372:71;11440:1;11429:9;11425:17;11416:6;11372:71;:::i;:::-;11228:222;;;;:::o;11456:332::-;11577:4;11615:2;11604:9;11600:18;11592:26;;11628:71;11696:1;11685:9;11681:17;11672:6;11628:71;:::i;:::-;11709:72;11777:2;11766:9;11762:18;11753:6;11709:72;:::i;:::-;11456:332;;;;;:::o;11794:::-;11915:4;11953:2;11942:9;11938:18;11930:26;;11966:71;12034:1;12023:9;12019:17;12010:6;11966:71;:::i;:::-;12047:72;12115:2;12104:9;12100:18;12091:6;12047:72;:::i;:::-;11794:332;;;;;:::o;12132:210::-;12219:4;12257:2;12246:9;12242:18;12234:26;;12270:65;12332:1;12321:9;12317:17;12308:6;12270:65;:::i;:::-;12132:210;;;;:::o;12348:276::-;12468:4;12506:2;12495:9;12491:18;12483:26;;12519:98;12614:1;12603:9;12599:17;12590:6;12519:98;:::i;:::-;12348:276;;;;:::o;12630:313::-;12743:4;12781:2;12770:9;12766:18;12758:26;;12830:9;12824:4;12820:20;12816:1;12805:9;12801:17;12794:47;12858:78;12931:4;12922:6;12858:78;:::i;:::-;12850:86;;12630:313;;;;:::o;12949:419::-;13115:4;13153:2;13142:9;13138:18;13130:26;;13202:9;13196:4;13192:20;13188:1;13177:9;13173:17;13166:47;13230:131;13356:4;13230:131;:::i;:::-;13222:139;;12949:419;;;:::o;13374:::-;13540:4;13578:2;13567:9;13563:18;13555:26;;13627:9;13621:4;13617:20;13613:1;13602:9;13598:17;13591:47;13655:131;13781:4;13655:131;:::i;:::-;13647:139;;13374:419;;;:::o;13799:::-;13965:4;14003:2;13992:9;13988:18;13980:26;;14052:9;14046:4;14042:20;14038:1;14027:9;14023:17;14016:47;14080:131;14206:4;14080:131;:::i;:::-;14072:139;;13799:419;;;:::o;14224:::-;14390:4;14428:2;14417:9;14413:18;14405:26;;14477:9;14471:4;14467:20;14463:1;14452:9;14448:17;14441:47;14505:131;14631:4;14505:131;:::i;:::-;14497:139;;14224:419;;;:::o;14649:::-;14815:4;14853:2;14842:9;14838:18;14830:26;;14902:9;14896:4;14892:20;14888:1;14877:9;14873:17;14866:47;14930:131;15056:4;14930:131;:::i;:::-;14922:139;;14649:419;;;:::o;15074:::-;15240:4;15278:2;15267:9;15263:18;15255:26;;15327:9;15321:4;15317:20;15313:1;15302:9;15298:17;15291:47;15355:131;15481:4;15355:131;:::i;:::-;15347:139;;15074:419;;;:::o;15499:::-;15665:4;15703:2;15692:9;15688:18;15680:26;;15752:9;15746:4;15742:20;15738:1;15727:9;15723:17;15716:47;15780:131;15906:4;15780:131;:::i;:::-;15772:139;;15499:419;;;:::o;15924:::-;16090:4;16128:2;16117:9;16113:18;16105:26;;16177:9;16171:4;16167:20;16163:1;16152:9;16148:17;16141:47;16205:131;16331:4;16205:131;:::i;:::-;16197:139;;15924:419;;;:::o;16349:222::-;16442:4;16480:2;16469:9;16465:18;16457:26;;16493:71;16561:1;16550:9;16546:17;16537:6;16493:71;:::i;:::-;16349:222;;;;:::o;16577:831::-;16840:4;16878:3;16867:9;16863:19;16855:27;;16892:71;16960:1;16949:9;16945:17;16936:6;16892:71;:::i;:::-;16973:80;17049:2;17038:9;17034:18;17025:6;16973:80;:::i;:::-;17100:9;17094:4;17090:20;17085:2;17074:9;17070:18;17063:48;17128:108;17231:4;17222:6;17128:108;:::i;:::-;17120:116;;17246:72;17314:2;17303:9;17299:18;17290:6;17246:72;:::i;:::-;17328:73;17396:3;17385:9;17381:19;17372:6;17328:73;:::i;:::-;16577:831;;;;;;;;:::o;17414:214::-;17503:4;17541:2;17530:9;17526:18;17518:26;;17554:67;17618:1;17607:9;17603:17;17594:6;17554:67;:::i;:::-;17414:214;;;;:::o;17715:132::-;17782:4;17805:3;17797:11;;17835:4;17830:3;17826:14;17818:22;;17715:132;;;:::o;17853:114::-;17920:6;17954:5;17948:12;17938:22;;17853:114;;;:::o;17973:99::-;18025:6;18059:5;18053:12;18043:22;;17973:99;;;:::o;18078:113::-;18148:4;18180;18175:3;18171:14;18163:22;;18078:113;;;:::o;18197:184::-;18296:11;18330:6;18325:3;18318:19;18370:4;18365:3;18361:14;18346:29;;18197:184;;;;:::o;18387:169::-;18471:11;18505:6;18500:3;18493:19;18545:4;18540:3;18536:14;18521:29;;18387:169;;;;:::o;18562:305::-;18602:3;18621:20;18639:1;18621:20;:::i;:::-;18616:25;;18655:20;18673:1;18655:20;:::i;:::-;18650:25;;18809:1;18741:66;18737:74;18734:1;18731:81;18728:107;;;18815:18;;:::i;:::-;18728:107;18859:1;18856;18852:9;18845:16;;18562:305;;;;:::o;18873:185::-;18913:1;18930:20;18948:1;18930:20;:::i;:::-;18925:25;;18964:20;18982:1;18964:20;:::i;:::-;18959:25;;19003:1;18993:35;;19008:18;;:::i;:::-;18993:35;19050:1;19047;19043:9;19038:14;;18873:185;;;;:::o;19064:348::-;19104:7;19127:20;19145:1;19127:20;:::i;:::-;19122:25;;19161:20;19179:1;19161:20;:::i;:::-;19156:25;;19349:1;19281:66;19277:74;19274:1;19271:81;19266:1;19259:9;19252:17;19248:105;19245:131;;;19356:18;;:::i;:::-;19245:131;19404:1;19401;19397:9;19386:20;;19064:348;;;;:::o;19418:191::-;19458:4;19478:20;19496:1;19478:20;:::i;:::-;19473:25;;19512:20;19530:1;19512:20;:::i;:::-;19507:25;;19551:1;19548;19545:8;19542:34;;;19556:18;;:::i;:::-;19542:34;19601:1;19598;19594:9;19586:17;;19418:191;;;;:::o;19615:96::-;19652:7;19681:24;19699:5;19681:24;:::i;:::-;19670:35;;19615:96;;;:::o;19717:104::-;19762:7;19791:24;19809:5;19791:24;:::i;:::-;19780:35;;19717:104;;;:::o;19827:90::-;19861:7;19904:5;19897:13;19890:21;19879:32;;19827:90;;;:::o;19923:126::-;19960:7;20000:42;19993:5;19989:54;19978:65;;19923:126;;;:::o;20055:77::-;20092:7;20121:5;20110:16;;20055:77;;;:::o;20138:86::-;20173:7;20213:4;20206:5;20202:16;20191:27;;20138:86;;;:::o;20230:153::-;20307:9;20340:37;20371:5;20340:37;:::i;:::-;20327:50;;20230:153;;;:::o;20389:121::-;20447:9;20480:24;20498:5;20480:24;:::i;:::-;20467:37;;20389:121;;;:::o;20516:126::-;20566:9;20599:37;20630:5;20599:37;:::i;:::-;20586:50;;20516:126;;;:::o;20648:113::-;20698:9;20731:24;20749:5;20731:24;:::i;:::-;20718:37;;20648:113;;;:::o;20767:307::-;20835:1;20845:113;20859:6;20856:1;20853:13;20845:113;;;20944:1;20939:3;20935:11;20929:18;20925:1;20920:3;20916:11;20909:39;20881:2;20878:1;20874:10;20869:15;;20845:113;;;20976:6;20973:1;20970:13;20967:101;;;21056:1;21047:6;21042:3;21038:16;21031:27;20967:101;20816:258;20767:307;;;:::o;21080:320::-;21124:6;21161:1;21155:4;21151:12;21141:22;;21208:1;21202:4;21198:12;21229:18;21219:81;;21285:4;21277:6;21273:17;21263:27;;21219:81;21347:2;21339:6;21336:14;21316:18;21313:38;21310:84;;;21366:18;;:::i;:::-;21310:84;21131:269;21080:320;;;:::o;21406:167::-;21443:3;21466:22;21482:5;21466:22;:::i;:::-;21457:31;;21510:4;21503:5;21500:15;21497:41;;;21518:18;;:::i;:::-;21497:41;21565:1;21558:5;21554:13;21547:20;;21406:167;;;:::o;21579:180::-;21627:77;21624:1;21617:88;21724:4;21721:1;21714:15;21748:4;21745:1;21738:15;21765:180;21813:77;21810:1;21803:88;21910:4;21907:1;21900:15;21934:4;21931:1;21924:15;21951:180;21999:77;21996:1;21989:88;22096:4;22093:1;22086:15;22120:4;22117:1;22110:15;22137:180;22185:77;22182:1;22175:88;22282:4;22279:1;22272:15;22306:4;22303:1;22296:15;22323:180;22371:77;22368:1;22361:88;22468:4;22465:1;22458:15;22492:4;22489:1;22482:15;22632:117;22741:1;22738;22731:12;22755:102;22796:6;22847:2;22843:7;22838:2;22831:5;22827:14;22823:28;22813:38;;22755:102;;;:::o;22863:225::-;23003:34;22999:1;22991:6;22987:14;22980:58;23072:8;23067:2;23059:6;23055:15;23048:33;22863:225;:::o;23094:245::-;23234:34;23230:1;23222:6;23218:14;23211:58;23303:28;23298:2;23290:6;23286:15;23279:53;23094:245;:::o;23345:177::-;23485:29;23481:1;23473:6;23469:14;23462:53;23345:177;:::o;23528:166::-;23668:18;23664:1;23656:6;23652:14;23645:42;23528:166;:::o;23700:182::-;23840:34;23836:1;23828:6;23824:14;23817:58;23700:182;:::o;23888:::-;24028:34;24024:1;24016:6;24012:14;24005:58;23888:182;:::o;24076:305::-;24216:34;24212:1;24204:6;24200:14;24193:58;24285:34;24280:2;24272:6;24268:15;24261:59;24354:19;24349:2;24341:6;24337:15;24330:44;24076:305;:::o;24387:167::-;24527:19;24523:1;24515:6;24511:14;24504:43;24387:167;:::o;24560:122::-;24633:24;24651:5;24633:24;:::i;:::-;24626:5;24623:35;24613:63;;24672:1;24669;24662:12;24613:63;24560:122;:::o;24688:138::-;24769:32;24795:5;24769:32;:::i;:::-;24762:5;24759:43;24749:71;;24816:1;24813;24806:12;24749:71;24688:138;:::o;24832:116::-;24902:21;24917:5;24902:21;:::i;:::-;24895:5;24892:32;24882:60;;24938:1;24935;24928:12;24882:60;24832:116;:::o;24954:122::-;25027:24;25045:5;25027:24;:::i;:::-;25020:5;25017:35;25007:63;;25066:1;25063;25056:12;25007:63;24954:122;:::o;25082:118::-;25153:22;25169:5;25153:22;:::i;:::-;25146:5;25143:33;25133:61;;25190:1;25187;25180:12;25133:61;25082:118;:::o

Swarm Source

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