Contract Address Details

0x27f7E128df9443c44E001dD295A410E38061E224

Token
LoyalShibesDC (LSDC)
Creator
0x026e51–47eb5e at 0xb0c7e2–377a0d
Balance
0.388972117328325346 Doge
Tokens
Fetching tokens...
Transactions
6 Transactions
Transfers
29 Transfers
Gas Used
302,248
Last Balance Update
29228408
Contract name:
LoyalShibeDC




Optimization enabled
true
Compiler version
v0.8.6+commit.11564f7e




Optimization runs
200
EVM Version
default




Verified at
2022-09-02T13:14:39.843478Z

Contract source code

/**
https://t.me/loyalshibes_DC
*/


// SPDX-License-Identifier: NOLICENSE
pragma solidity ^0.8.6;
 
/**
 * BEP20 standard interface
*/
 
interface IBEP20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
 
abstract contract Ownable {
    address internal owner;
    address private _previousOwner;
    uint256 private _lockTime;
 
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
 
    constructor(address _owner) {
        owner = _owner;
    }
 
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }
 
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }
 
    function getUnlockTime() public view returns (uint256) {
        return _lockTime;
    }
 
    function Ownershiplock(uint256 time) public virtual onlyOwner {
        _previousOwner = owner;
        owner = address(0);
        _lockTime = block.timestamp + time;
        emit OwnershipTransferred(owner, address(0));
    }
 
    function Ownershipunlock() public virtual {
        require(_previousOwner == msg.sender, "You don't have permission to unlock");
        require(block.timestamp > _lockTime , "Contract is locked");
        emit OwnershipTransferred(owner, _previousOwner);
        owner = _previousOwner;
    }
}
 
/**
 * Router Interfaces
 */
 
interface IDEXFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}
 
interface IDEXRouter {
    function factory() external pure returns (address);
    function WWDOGE() 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 addLiquidityWDOGE(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountWDOGEMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountWDOGE, uint liquidity);
 
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
 
    function swapExactWDOGEForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
 
    function swapExactTokensForWDOGESupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}
 
/**
 * Contract Code
 */
 
contract LoyalShibeDC is IBEP20, Ownable {
 
    address WDOGE = 0xB7ddC6414bf4F5515b52D8BdD69973Ae205ff101;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;
 
    string constant _name = "LoyalShibesDC";  
    string constant _symbol = "LSDC";  
    uint8 constant _decimals = 3;
    uint256 _totalSupply = 200 * 10**6 * 10**_decimals;
 
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isTxLimitExempt;
 
    // Detailed Fees
    uint256 public liquidityFee;
    uint256 public devFee;
    uint256 public marketingFee;
    uint256 public buybackFee;
    uint256 public totalFee;
 
    uint256 public BuyliquidityFee    = 2;
    uint256 public BuydevFee   = 0;
    uint256 public BuymarketingFee    = 6;
    uint256 public BuybuybackFee      = 0;
    uint256 public BuytotalFee        = BuyliquidityFee + BuydevFee + BuymarketingFee + BuybuybackFee;
 
    uint256 public SellliquidityFee    = 2;
    uint256 public SelldevFee   = 2;
    uint256 public SellmarketingFee    = 6;
    uint256 public SellbuybackFee      = 0;
    uint256 public SelltotalFee        = SellliquidityFee + SelldevFee + SellmarketingFee + SellbuybackFee;
 
    // Max wallet & Transaction
    uint256 public _maxBuyTxAmount = _totalSupply / (100) * (100); 
    uint256 public _maxSellTxAmount = _totalSupply / (100) * (100); 
    uint256 public _maxWalletToken = _totalSupply / (100) * (100); 
 
    // Fees receivers
    address public autoLiquidityReceiver = 0x026E5147d3C39c3A6264E6e1a659db36de47eB5E;
    address public marketingFeeReceiver = 0x026E5147d3C39c3A6264E6e1a659db36de47eB5E;
    address public devFeeReceiver = 0x026E5147d3C39c3A6264E6e1a659db36de47eB5E;
    address public buybackFeeReceiver = 0x026E5147d3C39c3A6264E6e1a659db36de47eB5E;
 
    IDEXRouter public router;
    address public pair;
 
    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 100 * 1; // 0.1%
    uint256 public maxSwapSize = _totalSupply / 100 * 1; //1%
    uint256 public tokensToSell;
 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
 
    constructor () Ownable(msg.sender) {
        router = IDEXRouter(0xa4EE06Ce40cb7e8c04E127c1F7D3dFB7F7039C81);
        pair = IDEXFactory(router.factory()).createPair(WDOGE, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;
 
        isFeeExempt[msg.sender] = true;
        isTxLimitExempt[msg.sender] = true;
 
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }
 
    receive() external payable { }
 
    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }
 
    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }
 
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }
 
    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }
 
        return _transferFrom(sender, recipient, amount);
    }
 
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
 
        if(sender == pair){
            buyFees();
        }
 
        if(recipient == pair){
            sellFees();
        }
 
        if (sender != owner && recipient != address(this) && recipient != address(DEAD) && recipient != pair || isTxLimitExempt[recipient]){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}
 
        // Checks max transaction limit
        if(sender == pair){
            require(amount <= _maxBuyTxAmount || isTxLimitExempt[recipient], "TX Limit Exceeded");
        }
 
        if(recipient == pair){
            require(amount <= _maxSellTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
        }
        //Exchange tokens
        if(shouldSwapBack()){ swapBack(); }
 
        _balances[sender] = _balances[sender] - amount;
 
        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(recipient, amount) : amount;
        _balances[recipient] = _balances[recipient] + amountReceived;
 
        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
 
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender] - amount;
        _balances[recipient] = _balances[recipient] + (amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }
 
    // Internal Functions
    function buyFees() internal{
        liquidityFee    = BuyliquidityFee;
        devFee   = BuydevFee;
        marketingFee    = BuymarketingFee;
        buybackFee      = BuybuybackFee;
        totalFee        = BuytotalFee;
    }
 
    function sellFees() internal{
        liquidityFee    = SellliquidityFee;
        devFee   = SelldevFee;
        marketingFee    = SellmarketingFee;
        buybackFee      = SellbuybackFee;
        totalFee        = SelltotalFee;
    }
 
    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }
 
    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount / 100 * (totalFee);
 
        _balances[address(this)] = _balances[address(this)] + (feeAmount);
        emit Transfer(sender, address(this), feeAmount);
 
        return amount - (feeAmount);
    }
 
    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }
 
    function swapBack() internal swapping {
        uint256 contractTokenBalance = balanceOf(address(this));
        if(contractTokenBalance >= maxSwapSize){
            tokensToSell = maxSwapSize;            
        }
        else{
            tokensToSell = contractTokenBalance;
        }
 
        uint256 amountToLiquify = tokensToSell / (totalFee) * (liquidityFee) / (2);
        uint256 amountToSwap = tokensToSell - (amountToLiquify);
 
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WDOGE;
 
        uint256 balanceBefore = address(this).balance;
 
        router.swapExactTokensForWDOGESupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
 
        uint256 amountDOGE = address(this).balance - (balanceBefore);
 
        uint256 totalDOGEFee = totalFee - (liquidityFee / (2));
 
        uint256 amountDOGELiquidity = amountDOGE * (liquidityFee) / (totalDOGEFee) / (2);
        uint256 amountDOGEbuyback = amountDOGE * (buybackFee) / (totalDOGEFee);
        uint256 amountDOGEMarketing = amountDOGE * (marketingFee) / (totalDOGEFee);
        uint256 amountDOGEDev = amountDOGE - amountDOGELiquidity - amountDOGEbuyback - amountDOGEMarketing;
 
        (bool MarketingSuccess,) = payable(marketingFeeReceiver).call{value: amountDOGEMarketing, gas: 30000}("");
        require(MarketingSuccess, "receiver rejected WDOGE transfer");
        (bool buybackSuccess,) = payable(buybackFeeReceiver).call{value: amountDOGEbuyback, gas: 30000}("");
        require(buybackSuccess, "receiver rejected WDOGE transfer");
        (bool devSuccess,) = payable(devFeeReceiver).call{value: amountDOGEDev, gas: 30000}("");
        require(devSuccess, "receiver rejected WDOGE transfer");
 
        addLiquidity(amountToLiquify, amountDOGELiquidity);
    }
 
    function addLiquidity(uint256 tokenAmount, uint256 DOGEAmount) private {
    if(tokenAmount > 0){
            router.addLiquidityWDOGE{value: DOGEAmount}(
                address(this),
                tokenAmount,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(DOGEAmount, tokenAmount);
        }
    }
 
    // External Functions
    function checkSwapThreshold() external view returns (uint256) {
        return swapThreshold;
    }
 
    function checkMaxWalletToken() external view returns (uint256) {
        return _maxWalletToken;
    }
 
    function checkMaxBuyTxAmount() external view returns (uint256) {
        return _maxBuyTxAmount;
    }
 
    function checkMaxSellTxAmount() external view returns (uint256) {
        return _maxSellTxAmount;
    }
 
    function isNotInSwap() external view returns (bool) {
        return !inSwap;
    }
 
    // Only Owner allowed
    function setBuyFees(uint256 _liquidityFee, uint256 _buybackFee, uint256 _marketingFee, uint256 _devFee) external onlyOwner {
        BuyliquidityFee = _liquidityFee;
        BuybuybackFee = _buybackFee;
        BuymarketingFee = _marketingFee;
        BuydevFee = _devFee;
        BuytotalFee = _liquidityFee + (_buybackFee) + (_marketingFee) + (_devFee);
    }
 
    function setSellFees(uint256 _liquidityFee, uint256 _buybackFee, uint256 _marketingFee, uint256 _devFee) external onlyOwner {
        SellliquidityFee = _liquidityFee;
        SellbuybackFee = _buybackFee;
        SellmarketingFee = _marketingFee;
        SelldevFee = _devFee;
        SelltotalFee = _liquidityFee + (_buybackFee) + (_marketingFee) + (_devFee);
    }
 
    function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _buybackFeeReceiver, address _devFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        buybackFeeReceiver = _buybackFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
    }
 
    function setSwapBackSettings(bool _enabled, uint256 _percentage_min_base10000, uint256 _percentage_max_base10000) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _totalSupply / (10000) * (_percentage_min_base10000);
        maxSwapSize = _totalSupply / (10000) * (_percentage_max_base10000);
    }
 
    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }
 
    function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
    }
 
    function setMaxWalletPercent_base1000(uint256 maxWallPercent_base1000) external onlyOwner {
        _maxWalletToken = _totalSupply / (1000) * (maxWallPercent_base1000);
    }
 
    function setMaxBuyTxPercent_base1000(uint256 maxBuyTXPercentage_base1000) external onlyOwner {
        _maxBuyTxAmount = _totalSupply / (1000) * (maxBuyTXPercentage_base1000);
    }
 
    function setMaxSellTxPercent_base1000(uint256 maxSellTXPercentage_base1000) external onlyOwner {
        _maxSellTxAmount = _totalSupply / (1000) * (maxSellTXPercentage_base1000);
    }
 
    // Stuck Balances Functions
    function rescueToken(address tokenAddress, uint256 tokens) public onlyOwner returns (bool success) {
        return IBEP20(tokenAddress).transfer(msg.sender, tokens);
    }
 
    function clearStuckBalance(uint256 amountPercentage) external onlyOwner {
        uint256 amountDOGE = address(this).balance;
        payable(msg.sender).transfer(amountDOGE * amountPercentage / 100);
    }
 
event AutoLiquify(uint256 amountDOGE, uint256 amountTokens);
 
}
        

Contract ABI

[{"type":"constructor","stateMutability":"nonpayable","inputs":[]},{"type":"event","name":"Approval","inputs":[{"type":"address","name":"owner","internalType":"address","indexed":true},{"type":"address","name":"spender","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"AutoLiquify","inputs":[{"type":"uint256","name":"amountDOGE","internalType":"uint256","indexed":false},{"type":"uint256","name":"amountTokens","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"type":"address","name":"previousOwner","internalType":"address","indexed":true},{"type":"address","name":"newOwner","internalType":"address","indexed":true}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"type":"address","name":"from","internalType":"address","indexed":true},{"type":"address","name":"to","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"BuybuybackFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"BuydevFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"BuyliquidityFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"BuymarketingFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"BuytotalFee","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"Ownershiplock","inputs":[{"type":"uint256","name":"time","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"Ownershipunlock","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"SellbuybackFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"SelldevFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"SellliquidityFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"SellmarketingFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"SelltotalFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_maxBuyTxAmount","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_maxSellTxAmount","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_maxWalletToken","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"allowance","inputs":[{"type":"address","name":"holder","internalType":"address"},{"type":"address","name":"spender","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"approve","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"approveMax","inputs":[{"type":"address","name":"spender","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"autoLiquidityReceiver","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"balanceOf","inputs":[{"type":"address","name":"account","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"buybackFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"buybackFeeReceiver","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"checkMaxBuyTxAmount","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"checkMaxSellTxAmount","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"checkMaxWalletToken","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"checkSwapThreshold","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"clearStuckBalance","inputs":[{"type":"uint256","name":"amountPercentage","internalType":"uint256"}]},{"type":"function","stateMutability":"pure","outputs":[{"type":"uint8","name":"","internalType":"uint8"}],"name":"decimals","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"devFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"devFeeReceiver","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"getOwner","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"getUnlockTime","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"isFeeExempt","inputs":[{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"isNotInSwap","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"isOwner","inputs":[{"type":"address","name":"account","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"isTxLimitExempt","inputs":[{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"liquidityFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"marketingFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"marketingFeeReceiver","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"maxSwapSize","inputs":[]},{"type":"function","stateMutability":"pure","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"name","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"pair","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"success","internalType":"bool"}],"name":"rescueToken","inputs":[{"type":"address","name":"tokenAddress","internalType":"address"},{"type":"uint256","name":"tokens","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"contract IDEXRouter"}],"name":"router","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setBuyFees","inputs":[{"type":"uint256","name":"_liquidityFee","internalType":"uint256"},{"type":"uint256","name":"_buybackFee","internalType":"uint256"},{"type":"uint256","name":"_marketingFee","internalType":"uint256"},{"type":"uint256","name":"_devFee","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setFeeReceivers","inputs":[{"type":"address","name":"_autoLiquidityReceiver","internalType":"address"},{"type":"address","name":"_marketingFeeReceiver","internalType":"address"},{"type":"address","name":"_buybackFeeReceiver","internalType":"address"},{"type":"address","name":"_devFeeReceiver","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setIsFeeExempt","inputs":[{"type":"address","name":"holder","internalType":"address"},{"type":"bool","name":"exempt","internalType":"bool"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setIsTxLimitExempt","inputs":[{"type":"address","name":"holder","internalType":"address"},{"type":"bool","name":"exempt","internalType":"bool"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setMaxBuyTxPercent_base1000","inputs":[{"type":"uint256","name":"maxBuyTXPercentage_base1000","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setMaxSellTxPercent_base1000","inputs":[{"type":"uint256","name":"maxSellTXPercentage_base1000","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setMaxWalletPercent_base1000","inputs":[{"type":"uint256","name":"maxWallPercent_base1000","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setSellFees","inputs":[{"type":"uint256","name":"_liquidityFee","internalType":"uint256"},{"type":"uint256","name":"_buybackFee","internalType":"uint256"},{"type":"uint256","name":"_marketingFee","internalType":"uint256"},{"type":"uint256","name":"_devFee","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setSwapBackSettings","inputs":[{"type":"bool","name":"_enabled","internalType":"bool"},{"type":"uint256","name":"_percentage_min_base10000","internalType":"uint256"},{"type":"uint256","name":"_percentage_max_base10000","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"swapEnabled","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"swapThreshold","inputs":[]},{"type":"function","stateMutability":"pure","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"symbol","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"tokensToSell","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalSupply","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transfer","inputs":[{"type":"address","name":"recipient","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transferFrom","inputs":[{"type":"address","name":"sender","internalType":"address"},{"type":"address","name":"recipient","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"transferOwnership","inputs":[{"type":"address","name":"newOwner","internalType":"address"}]},{"type":"receive","stateMutability":"payable"}]
            

Contract Creation Code

0x6080604052600380546001600160a01b031990811673b7ddc6414bf4f5515b52d8bdd69973ae205ff10117825560048054821661dead1790556005805490911690556200004e90600a62000498565b6200005e90630bebc20062000559565b60065560026010556000601155600660125560006013556013546012546011546010546200008d919062000411565b62000099919062000411565b620000a5919062000411565b6014556002601555600260165560066017556000601855601854601754601654601554620000d4919062000411565b620000e0919062000411565b620000ec919062000411565b60195560646006546200010091906200042c565b6200010d90606462000559565b601a5560646006546200012191906200042c565b6200012e90606462000559565b601b5560646006546200014291906200042c565b6200014f90606462000559565b601c55601d80546001600160a01b031990811673026e5147d3c39c3a6264e6e1a659db36de47eb5e908117909255601e8054821683179055601f80548216831790556020805490911690911790556022805460ff60a01b1916600160a01b179055600654620001c1906064906200042c565b620001ce90600162000559565b6023556064600654620001e291906200042c565b620001ef90600162000559565b602455348015620001ff57600080fd5b5060008054336001600160a01b0319918216179091556021805473a4ee06ce40cb7e8c04e127c1f7d3dfb7f7039c819216821790556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b1580156200026b57600080fd5b505afa15801562000280573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a69190620003df565b6003546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c6539690604401602060405180830381600087803b158015620002f357600080fd5b505af115801562000308573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032e9190620003df565b602280546001600160a01b0319166001600160a01b03928316179055306000908152600860209081526040808320602154909416835292815282822060001990553380835260098252838320805460ff199081166001908117909255600a845285852080549091169091179055600654600783528484208190559351938452927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000591565b600060208284031215620003f257600080fd5b81516001600160a01b03811681146200040a57600080fd5b9392505050565b600082198211156200042757620004276200057b565b500190565b6000826200044a57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115620004905781600019048211156200047457620004746200057b565b808516156200048257918102915b93841c939080029062000454565b509250929050565b60006200040a60ff841683600082620004b45750600162000553565b81620004c35750600062000553565b8160018114620004dc5760028114620004e75762000507565b600191505062000553565b60ff841115620004fb57620004fb6200057b565b50506001821b62000553565b5060208310610133831016604e8410600b84101617156200052c575081810a62000553565b6200053883836200044f565b80600019048211156200054f576200054f6200057b565b0290505b92915050565b60008160001904831182151516156200057657620005766200057b565b500290565b634e487b7160e01b600052601160045260246000fd5b61217280620005a16000396000f3fe6080604052600436106103b15760003560e01c80636ddd1713116101e7578063ab00d68d1161010d578063e96fada2116100a0578063f7baf3c51161006f578063f7baf3c514610abb578063f84ba65d14610ad0578063f887ea4014610af0578063fc44ed4814610b1057600080fd5b8063e96fada214610a4f578063e99090c114610a6f578063ea19e4a814610a85578063f2fde38b14610a9b57600080fd5b8063d0889358116100dc578063d0889358146109b3578063dab84ee7146109d3578063dd62ed3e146109f3578063e9563dfd14610a3957600080fd5b8063ab00d68d14610952578063b43b783514610968578063ca33e64c1461097d578063cf4be3941461099d57600080fd5b8063893d20e81161018557806398118cb41161015457806398118cb4146108dc578063a4e13071146108f2578063a8aa1b3114610912578063a9059cbb1461093257600080fd5b8063893d20e8146108415780638b42507f1461085f57806395d89b411461088f57806396c99f5b146108bc57600080fd5b806378109e54116101c157806378109e54146107c45780637fbcedff146107da57806383b4ac68146107f057806384b1d1ef1461080957600080fd5b80636ddd17131461075757806370a08231146107785780637724555f146107ae57600080fd5b8063391e73a3116102d7578063602bc62b1161026a5780636b67c4df116102395780636b67c4df146106f65780636c5b28551461070c5780636d351d1a1461072c5780636d796e881461074157600080fd5b8063602bc62b146106955780636533e393146106aa578063658d4b7f146106c05780636827e764146106e057600080fd5b80633f4218e0116102a65780633f4218e01461061a5780634f28cac21461064a578063541b4de714610660578063571ac8b01461067557600080fd5b8063391e73a3146105b85780633b2d081c146105ce5780633c8e556d146105e45780633d9566911461060457600080fd5b80631898cab21161034f5780632f54bf6e1161031e5780632f54bf6e14610537578063313ce56714610566578063334773271461058257806333f3d6281461059857600080fd5b80631898cab2146104cc5780631da1db5e146104e15780631df4ccfc1461050157806323b872dd1461051757600080fd5b8063095ea7b31161038b578063095ea7b314610447578063154d4abb14610477578063178d9b8e1461049757806318160ddd146104b757600080fd5b80630445b667146103bd57806306fdde03146103e657806309302dc61461042557600080fd5b366103b857005b600080fd5b3480156103c957600080fd5b506103d360235481565b6040519081526020015b60405180910390f35b3480156103f257600080fd5b5060408051808201909152600d81526c4c6f79616c536869626573444360981b60208201525b6040516103dd9190611f74565b34801561043157600080fd5b50610445610440366004611efb565b610b26565b005b34801561045357600080fd5b50610467610462366004611e7f565b610b7a565b60405190151581526020016103dd565b34801561048357600080fd5b50610445610492366004611efb565b610be6565b3480156104a357600080fd5b506104456104b2366004611f42565b610c31565b3480156104c357600080fd5b506006546103d3565b3480156104d857600080fd5b50601a546103d3565b3480156104ed57600080fd5b506104456104fc366004611efb565b610c98565b34801561050d57600080fd5b506103d3600f5481565b34801561052357600080fd5b50610467610532366004611e0c565b610d0a565b34801561054357600080fd5b50610467610552366004611d6a565b6000546001600160a01b0391821691161490565b34801561057257600080fd5b50604051600381526020016103dd565b34801561058e57600080fd5b506103d3601a5481565b3480156105a457600080fd5b506104676105b3366004611e7f565b610d9f565b3480156105c457600080fd5b506103d360145481565b3480156105da57600080fd5b506103d3600e5481565b3480156105f057600080fd5b506104456105ff366004611db8565b610e4a565b34801561061057600080fd5b506103d360255481565b34801561062657600080fd5b50610467610635366004611d6a565b60096020526000908152604090205460ff1681565b34801561065657600080fd5b506103d360245481565b34801561066c57600080fd5b50601b546103d3565b34801561068157600080fd5b50610467610690366004611d6a565b610ec4565b3480156106a157600080fd5b506002546103d3565b3480156106b657600080fd5b506103d360115481565b3480156106cc57600080fd5b506104456106db366004611e48565b610ed8565b3480156106ec57600080fd5b506103d3600c5481565b34801561070257600080fd5b506103d3600d5481565b34801561071857600080fd5b50610445610727366004611f42565b610f2d565b34801561073857600080fd5b506023546103d3565b34801561074d57600080fd5b506103d360175481565b34801561076357600080fd5b5060225461046790600160a01b900460ff1681565b34801561078457600080fd5b506103d3610793366004611d6a565b6001600160a01b031660009081526007602052604090205490565b3480156107ba57600080fd5b506103d360195481565b3480156107d057600080fd5b506103d3601c5481565b3480156107e657600080fd5b506103d360125481565b3480156107fc57600080fd5b5060265460ff1615610467565b34801561081557600080fd5b50602054610829906001600160a01b031681565b6040516001600160a01b0390911681526020016103dd565b34801561084d57600080fd5b506000546001600160a01b0316610829565b34801561086b57600080fd5b5061046761087a366004611d6a565b600a6020526000908152604090205460ff1681565b34801561089b57600080fd5b506040805180820190915260048152634c53444360e01b6020820152610418565b3480156108c857600080fd5b506104456108d7366004611efb565b610f94565b3480156108e857600080fd5b506103d3600b5481565b3480156108fe57600080fd5b5061044561090d366004611efb565b610fdf565b34801561091e57600080fd5b50602254610829906001600160a01b031681565b34801561093e57600080fd5b5061046761094d366004611e7f565b611076565b34801561095e57600080fd5b506103d360165481565b34801561097457600080fd5b50601c546103d3565b34801561098957600080fd5b50601d54610829906001600160a01b031681565b3480156109a957600080fd5b506103d3601b5481565b3480156109bf57600080fd5b506104456109ce366004611ec6565b611083565b3480156109df57600080fd5b50601f54610829906001600160a01b031681565b3480156109ff57600080fd5b506103d3610a0e366004611d85565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b348015610a4557600080fd5b506103d360135481565b348015610a5b57600080fd5b50601e54610829906001600160a01b031681565b348015610a7b57600080fd5b506103d360155481565b348015610a9157600080fd5b506103d360105481565b348015610aa757600080fd5b50610445610ab6366004611d6a565b611107565b348015610ac757600080fd5b506104456111f1565b348015610adc57600080fd5b50610445610aeb366004611e48565b6112fe565b348015610afc57600080fd5b50602154610829906001600160a01b031681565b348015610b1c57600080fd5b506103d360185481565b6000546001600160a01b03163314610b595760405162461bcd60e51b8152600401610b5090611ffe565b60405180910390fd5b806103e8600654610b6a91906120a7565b610b7491906120c9565b601c5550565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610bd59086815260200190565b60405180910390a350600192915050565b6000546001600160a01b03163314610c105760405162461bcd60e51b8152600401610b5090611ffe565b806103e8600654610c2191906120a7565b610c2b91906120c9565b601a5550565b6000546001600160a01b03163314610c5b5760405162461bcd60e51b8152600401610b5090611ffe565b60108490556013839055601282905560118190558082610c7b858761208f565b610c85919061208f565b610c8f919061208f565b60145550505050565b6000546001600160a01b03163314610cc25760405162461bcd60e51b8152600401610b5090611ffe565b47336108fc6064610cd385856120c9565b610cdd91906120a7565b6040518115909202916000818181858888f19350505050158015610d05573d6000803e3d6000fd5b505050565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610d8a576001600160a01b0384166000908152600860209081526040808320338452909152902054610d659083906120e8565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610d95848484611353565b90505b9392505050565b600080546001600160a01b03163314610dca5760405162461bcd60e51b8152600401610b5090611ffe565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb90604401602060405180830381600087803b158015610e1257600080fd5b505af1158015610e26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d989190611ea9565b6000546001600160a01b03163314610e745760405162461bcd60e51b8152600401610b5090611ffe565b601d80546001600160a01b039586166001600160a01b031991821617909155601e8054948616948216949094179093556020805492851692841692909217909155601f8054919093169116179055565b6000610ed282600019610b7a565b92915050565b6000546001600160a01b03163314610f025760405162461bcd60e51b8152600401610b5090611ffe565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610f575760405162461bcd60e51b8152600401610b5090611ffe565b60158490556018839055601782905560168190558082610f77858761208f565b610f81919061208f565b610f8b919061208f565b60195550505050565b6000546001600160a01b03163314610fbe5760405162461bcd60e51b8152600401610b5090611ffe565b806103e8600654610fcf91906120a7565b610fd991906120c9565b601b5550565b6000546001600160a01b031633146110095760405162461bcd60e51b8152600401610b5090611ffe565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055611038814261208f565b600255600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6000610d98338484611353565b6000546001600160a01b031633146110ad5760405162461bcd60e51b8152600401610b5090611ffe565b6022805460ff60a01b1916600160a01b8515150217905560065482906110d690612710906120a7565b6110e091906120c9565b60235560065481906110f590612710906120a7565b6110ff91906120c9565b602455505050565b6000546001600160a01b031633146111315760405162461bcd60e51b8152600401610b5090611ffe565b6001600160a01b0381166111965760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b50565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031633146112575760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b6064820152608401610b50565b600254421161129d5760405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81b1bd8dad95960721b6044820152606401610b50565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000546001600160a01b031633146113285760405162461bcd60e51b8152600401610b5090611ffe565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b60265460009060ff16156113735761136c848484611708565b9050610d98565b6022546001600160a01b03858116911614156113ac576113ac601054600b55601154600c55601254600d55601354600e55601454600f55565b6022546001600160a01b03848116911614156113e5576113e5601554600b55601654600c55601754600d55601854600e55601954600f55565b6000546001600160a01b0385811691161480159061140c57506001600160a01b0383163014155b801561142657506004546001600160a01b03848116911614155b801561144057506022546001600160a01b03848116911614155b8061146357506001600160a01b0383166000908152600a602052604090205460ff165b15611504576001600160a01b038316600090815260076020526040902054601c5461148e848361208f565b11156115025760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610b50565b505b6022546001600160a01b038581169116141561158357601a548211158061154357506001600160a01b0383166000908152600a602052604090205460ff165b6115835760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610b50565b6022546001600160a01b038481169116141561160257601b54821115806115c257506001600160a01b0384166000908152600a602052604090205460ff165b6116025760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610b50565b61160a6117c2565b156116175761161761181a565b6001600160a01b03841660009081526007602052604090205461163b9083906120e8565b6001600160a01b038516600090815260076020908152604080832093909355600990529081205460ff1615611670578261167a565b61167a8484611bbd565b6001600160a01b0385166000908152600760205260409020549091506116a190829061208f565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116f59085815260200190565b60405180910390a3506001949350505050565b6001600160a01b03831660009081526007602052604081205461172c9083906120e8565b6001600160a01b03808616600090815260076020526040808220939093559085168152205461175c90839061208f565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117b09086815260200190565b60405180910390a35060019392505050565b6022546000906001600160a01b031633148015906117e3575060265460ff16155b80156117f85750602254600160a01b900460ff165b801561181557506023543060009081526007602052604090205410155b905090565b6026805460ff19166001179055306000908152600760205260408120549050602454811061184d57602454602555611853565b60258190555b60006002600b54600f5460255461186a91906120a7565b61187491906120c9565b61187e91906120a7565b905060008160255461189091906120e8565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106118ca576118ca612115565b6001600160a01b0392831660209182029290920101526003548251911690829060019081106118fb576118fb612115565b6001600160a01b03928316602091820292909201015260215460405163b43d9bbb60e01b81524792919091169063b43d9bbb9061194590869060009087903090429060040161201e565b600060405180830381600087803b15801561195f57600080fd5b505af1158015611973573d6000803e3d6000fd5b505050506000814761198591906120e8565b905060006002600b5461199891906120a7565b600f546119a591906120e8565b90506000600282600b54856119ba91906120c9565b6119c491906120a7565b6119ce91906120a7565b9050600082600e54856119e191906120c9565b6119eb91906120a7565b9050600083600d54866119fe91906120c9565b611a0891906120a7565b905060008183611a1886896120e8565b611a2291906120e8565b611a2c91906120e8565b601e546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d8060008114611a83576040519150601f19603f3d011682016040523d82523d6000602084013e611a88565b606091505b5050905080611aa95760405162461bcd60e51b8152600401610b5090611fc9565b6020546040516000916001600160a01b03169061753090879084818181858888f193505050503d8060008114611afb576040519150601f19603f3d011682016040523d82523d6000602084013e611b00565b606091505b5050905080611b215760405162461bcd60e51b8152600401610b5090611fc9565b601f546040516000916001600160a01b03169061753090869084818181858888f193505050503d8060008114611b73576040519150601f19603f3d011682016040523d82523d6000602084013e611b78565b606091505b5050905080611b995760405162461bcd60e51b8152600401610b5090611fc9565b611ba38d88611c63565b50506026805460ff19169055505050505050505050505050565b600080600f54606484611bd091906120a7565b611bda91906120c9565b30600090815260076020526040902054909150611bf890829061208f565b30600081815260076020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c499085815260200190565b60405180910390a3611c5b81846120e8565b949350505050565b8115611d4a57602154601d54604051633994a6ad60e21b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063e6529ab490839060c4016060604051808303818588803b158015611cd457600080fd5b505af1158015611ce8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d0d9190611f14565b505060408051838152602081018590527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050565b80356001600160a01b0381168114611d6557600080fd5b919050565b600060208284031215611d7c57600080fd5b610d9882611d4e565b60008060408385031215611d9857600080fd5b611da183611d4e565b9150611daf60208401611d4e565b90509250929050565b60008060008060808587031215611dce57600080fd5b611dd785611d4e565b9350611de560208601611d4e565b9250611df360408601611d4e565b9150611e0160608601611d4e565b905092959194509250565b600080600060608486031215611e2157600080fd5b611e2a84611d4e565b9250611e3860208501611d4e565b9150604084013590509250925092565b60008060408385031215611e5b57600080fd5b611e6483611d4e565b91506020830135611e748161212b565b809150509250929050565b60008060408385031215611e9257600080fd5b611e9b83611d4e565b946020939093013593505050565b600060208284031215611ebb57600080fd5b8151610d988161212b565b600080600060608486031215611edb57600080fd5b8335611ee68161212b565b95602085013595506040909401359392505050565b600060208284031215611f0d57600080fd5b5035919050565b600080600060608486031215611f2957600080fd5b8351925060208401519150604084015190509250925092565b60008060008060808587031215611f5857600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b81811015611fa157858101830151858201604001528201611f85565b81811115611fb3576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f72656365697665722072656a65637465642057444f4745207472616e73666572604082015260600190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561206e5784516001600160a01b031683529383019391830191600101612049565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156120a2576120a26120ff565b500190565b6000826120c457634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156120e3576120e36120ff565b500290565b6000828210156120fa576120fa6120ff565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b801515811461213957600080fd5b5056fea26469706673582212205b62f2394c2996461399817dd427b0ee1a03e95e5fd9539fbdc7c636a6a8d24264736f6c63430008060033

Deployed ByteCode

0x6080604052600436106103b15760003560e01c80636ddd1713116101e7578063ab00d68d1161010d578063e96fada2116100a0578063f7baf3c51161006f578063f7baf3c514610abb578063f84ba65d14610ad0578063f887ea4014610af0578063fc44ed4814610b1057600080fd5b8063e96fada214610a4f578063e99090c114610a6f578063ea19e4a814610a85578063f2fde38b14610a9b57600080fd5b8063d0889358116100dc578063d0889358146109b3578063dab84ee7146109d3578063dd62ed3e146109f3578063e9563dfd14610a3957600080fd5b8063ab00d68d14610952578063b43b783514610968578063ca33e64c1461097d578063cf4be3941461099d57600080fd5b8063893d20e81161018557806398118cb41161015457806398118cb4146108dc578063a4e13071146108f2578063a8aa1b3114610912578063a9059cbb1461093257600080fd5b8063893d20e8146108415780638b42507f1461085f57806395d89b411461088f57806396c99f5b146108bc57600080fd5b806378109e54116101c157806378109e54146107c45780637fbcedff146107da57806383b4ac68146107f057806384b1d1ef1461080957600080fd5b80636ddd17131461075757806370a08231146107785780637724555f146107ae57600080fd5b8063391e73a3116102d7578063602bc62b1161026a5780636b67c4df116102395780636b67c4df146106f65780636c5b28551461070c5780636d351d1a1461072c5780636d796e881461074157600080fd5b8063602bc62b146106955780636533e393146106aa578063658d4b7f146106c05780636827e764146106e057600080fd5b80633f4218e0116102a65780633f4218e01461061a5780634f28cac21461064a578063541b4de714610660578063571ac8b01461067557600080fd5b8063391e73a3146105b85780633b2d081c146105ce5780633c8e556d146105e45780633d9566911461060457600080fd5b80631898cab21161034f5780632f54bf6e1161031e5780632f54bf6e14610537578063313ce56714610566578063334773271461058257806333f3d6281461059857600080fd5b80631898cab2146104cc5780631da1db5e146104e15780631df4ccfc1461050157806323b872dd1461051757600080fd5b8063095ea7b31161038b578063095ea7b314610447578063154d4abb14610477578063178d9b8e1461049757806318160ddd146104b757600080fd5b80630445b667146103bd57806306fdde03146103e657806309302dc61461042557600080fd5b366103b857005b600080fd5b3480156103c957600080fd5b506103d360235481565b6040519081526020015b60405180910390f35b3480156103f257600080fd5b5060408051808201909152600d81526c4c6f79616c536869626573444360981b60208201525b6040516103dd9190611f74565b34801561043157600080fd5b50610445610440366004611efb565b610b26565b005b34801561045357600080fd5b50610467610462366004611e7f565b610b7a565b60405190151581526020016103dd565b34801561048357600080fd5b50610445610492366004611efb565b610be6565b3480156104a357600080fd5b506104456104b2366004611f42565b610c31565b3480156104c357600080fd5b506006546103d3565b3480156104d857600080fd5b50601a546103d3565b3480156104ed57600080fd5b506104456104fc366004611efb565b610c98565b34801561050d57600080fd5b506103d3600f5481565b34801561052357600080fd5b50610467610532366004611e0c565b610d0a565b34801561054357600080fd5b50610467610552366004611d6a565b6000546001600160a01b0391821691161490565b34801561057257600080fd5b50604051600381526020016103dd565b34801561058e57600080fd5b506103d3601a5481565b3480156105a457600080fd5b506104676105b3366004611e7f565b610d9f565b3480156105c457600080fd5b506103d360145481565b3480156105da57600080fd5b506103d3600e5481565b3480156105f057600080fd5b506104456105ff366004611db8565b610e4a565b34801561061057600080fd5b506103d360255481565b34801561062657600080fd5b50610467610635366004611d6a565b60096020526000908152604090205460ff1681565b34801561065657600080fd5b506103d360245481565b34801561066c57600080fd5b50601b546103d3565b34801561068157600080fd5b50610467610690366004611d6a565b610ec4565b3480156106a157600080fd5b506002546103d3565b3480156106b657600080fd5b506103d360115481565b3480156106cc57600080fd5b506104456106db366004611e48565b610ed8565b3480156106ec57600080fd5b506103d3600c5481565b34801561070257600080fd5b506103d3600d5481565b34801561071857600080fd5b50610445610727366004611f42565b610f2d565b34801561073857600080fd5b506023546103d3565b34801561074d57600080fd5b506103d360175481565b34801561076357600080fd5b5060225461046790600160a01b900460ff1681565b34801561078457600080fd5b506103d3610793366004611d6a565b6001600160a01b031660009081526007602052604090205490565b3480156107ba57600080fd5b506103d360195481565b3480156107d057600080fd5b506103d3601c5481565b3480156107e657600080fd5b506103d360125481565b3480156107fc57600080fd5b5060265460ff1615610467565b34801561081557600080fd5b50602054610829906001600160a01b031681565b6040516001600160a01b0390911681526020016103dd565b34801561084d57600080fd5b506000546001600160a01b0316610829565b34801561086b57600080fd5b5061046761087a366004611d6a565b600a6020526000908152604090205460ff1681565b34801561089b57600080fd5b506040805180820190915260048152634c53444360e01b6020820152610418565b3480156108c857600080fd5b506104456108d7366004611efb565b610f94565b3480156108e857600080fd5b506103d3600b5481565b3480156108fe57600080fd5b5061044561090d366004611efb565b610fdf565b34801561091e57600080fd5b50602254610829906001600160a01b031681565b34801561093e57600080fd5b5061046761094d366004611e7f565b611076565b34801561095e57600080fd5b506103d360165481565b34801561097457600080fd5b50601c546103d3565b34801561098957600080fd5b50601d54610829906001600160a01b031681565b3480156109a957600080fd5b506103d3601b5481565b3480156109bf57600080fd5b506104456109ce366004611ec6565b611083565b3480156109df57600080fd5b50601f54610829906001600160a01b031681565b3480156109ff57600080fd5b506103d3610a0e366004611d85565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b348015610a4557600080fd5b506103d360135481565b348015610a5b57600080fd5b50601e54610829906001600160a01b031681565b348015610a7b57600080fd5b506103d360155481565b348015610a9157600080fd5b506103d360105481565b348015610aa757600080fd5b50610445610ab6366004611d6a565b611107565b348015610ac757600080fd5b506104456111f1565b348015610adc57600080fd5b50610445610aeb366004611e48565b6112fe565b348015610afc57600080fd5b50602154610829906001600160a01b031681565b348015610b1c57600080fd5b506103d360185481565b6000546001600160a01b03163314610b595760405162461bcd60e51b8152600401610b5090611ffe565b60405180910390fd5b806103e8600654610b6a91906120a7565b610b7491906120c9565b601c5550565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610bd59086815260200190565b60405180910390a350600192915050565b6000546001600160a01b03163314610c105760405162461bcd60e51b8152600401610b5090611ffe565b806103e8600654610c2191906120a7565b610c2b91906120c9565b601a5550565b6000546001600160a01b03163314610c5b5760405162461bcd60e51b8152600401610b5090611ffe565b60108490556013839055601282905560118190558082610c7b858761208f565b610c85919061208f565b610c8f919061208f565b60145550505050565b6000546001600160a01b03163314610cc25760405162461bcd60e51b8152600401610b5090611ffe565b47336108fc6064610cd385856120c9565b610cdd91906120a7565b6040518115909202916000818181858888f19350505050158015610d05573d6000803e3d6000fd5b505050565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610d8a576001600160a01b0384166000908152600860209081526040808320338452909152902054610d659083906120e8565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610d95848484611353565b90505b9392505050565b600080546001600160a01b03163314610dca5760405162461bcd60e51b8152600401610b5090611ffe565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb90604401602060405180830381600087803b158015610e1257600080fd5b505af1158015610e26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d989190611ea9565b6000546001600160a01b03163314610e745760405162461bcd60e51b8152600401610b5090611ffe565b601d80546001600160a01b039586166001600160a01b031991821617909155601e8054948616948216949094179093556020805492851692841692909217909155601f8054919093169116179055565b6000610ed282600019610b7a565b92915050565b6000546001600160a01b03163314610f025760405162461bcd60e51b8152600401610b5090611ffe565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610f575760405162461bcd60e51b8152600401610b5090611ffe565b60158490556018839055601782905560168190558082610f77858761208f565b610f81919061208f565b610f8b919061208f565b60195550505050565b6000546001600160a01b03163314610fbe5760405162461bcd60e51b8152600401610b5090611ffe565b806103e8600654610fcf91906120a7565b610fd991906120c9565b601b5550565b6000546001600160a01b031633146110095760405162461bcd60e51b8152600401610b5090611ffe565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055611038814261208f565b600255600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6000610d98338484611353565b6000546001600160a01b031633146110ad5760405162461bcd60e51b8152600401610b5090611ffe565b6022805460ff60a01b1916600160a01b8515150217905560065482906110d690612710906120a7565b6110e091906120c9565b60235560065481906110f590612710906120a7565b6110ff91906120c9565b602455505050565b6000546001600160a01b031633146111315760405162461bcd60e51b8152600401610b5090611ffe565b6001600160a01b0381166111965760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b50565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031633146112575760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b6064820152608401610b50565b600254421161129d5760405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81b1bd8dad95960721b6044820152606401610b50565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000546001600160a01b031633146113285760405162461bcd60e51b8152600401610b5090611ffe565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b60265460009060ff16156113735761136c848484611708565b9050610d98565b6022546001600160a01b03858116911614156113ac576113ac601054600b55601154600c55601254600d55601354600e55601454600f55565b6022546001600160a01b03848116911614156113e5576113e5601554600b55601654600c55601754600d55601854600e55601954600f55565b6000546001600160a01b0385811691161480159061140c57506001600160a01b0383163014155b801561142657506004546001600160a01b03848116911614155b801561144057506022546001600160a01b03848116911614155b8061146357506001600160a01b0383166000908152600a602052604090205460ff165b15611504576001600160a01b038316600090815260076020526040902054601c5461148e848361208f565b11156115025760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610b50565b505b6022546001600160a01b038581169116141561158357601a548211158061154357506001600160a01b0383166000908152600a602052604090205460ff165b6115835760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610b50565b6022546001600160a01b038481169116141561160257601b54821115806115c257506001600160a01b0384166000908152600a602052604090205460ff165b6116025760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610b50565b61160a6117c2565b156116175761161761181a565b6001600160a01b03841660009081526007602052604090205461163b9083906120e8565b6001600160a01b038516600090815260076020908152604080832093909355600990529081205460ff1615611670578261167a565b61167a8484611bbd565b6001600160a01b0385166000908152600760205260409020549091506116a190829061208f565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116f59085815260200190565b60405180910390a3506001949350505050565b6001600160a01b03831660009081526007602052604081205461172c9083906120e8565b6001600160a01b03808616600090815260076020526040808220939093559085168152205461175c90839061208f565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117b09086815260200190565b60405180910390a35060019392505050565b6022546000906001600160a01b031633148015906117e3575060265460ff16155b80156117f85750602254600160a01b900460ff165b801561181557506023543060009081526007602052604090205410155b905090565b6026805460ff19166001179055306000908152600760205260408120549050602454811061184d57602454602555611853565b60258190555b60006002600b54600f5460255461186a91906120a7565b61187491906120c9565b61187e91906120a7565b905060008160255461189091906120e8565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106118ca576118ca612115565b6001600160a01b0392831660209182029290920101526003548251911690829060019081106118fb576118fb612115565b6001600160a01b03928316602091820292909201015260215460405163b43d9bbb60e01b81524792919091169063b43d9bbb9061194590869060009087903090429060040161201e565b600060405180830381600087803b15801561195f57600080fd5b505af1158015611973573d6000803e3d6000fd5b505050506000814761198591906120e8565b905060006002600b5461199891906120a7565b600f546119a591906120e8565b90506000600282600b54856119ba91906120c9565b6119c491906120a7565b6119ce91906120a7565b9050600082600e54856119e191906120c9565b6119eb91906120a7565b9050600083600d54866119fe91906120c9565b611a0891906120a7565b905060008183611a1886896120e8565b611a2291906120e8565b611a2c91906120e8565b601e546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d8060008114611a83576040519150601f19603f3d011682016040523d82523d6000602084013e611a88565b606091505b5050905080611aa95760405162461bcd60e51b8152600401610b5090611fc9565b6020546040516000916001600160a01b03169061753090879084818181858888f193505050503d8060008114611afb576040519150601f19603f3d011682016040523d82523d6000602084013e611b00565b606091505b5050905080611b215760405162461bcd60e51b8152600401610b5090611fc9565b601f546040516000916001600160a01b03169061753090869084818181858888f193505050503d8060008114611b73576040519150601f19603f3d011682016040523d82523d6000602084013e611b78565b606091505b5050905080611b995760405162461bcd60e51b8152600401610b5090611fc9565b611ba38d88611c63565b50506026805460ff19169055505050505050505050505050565b600080600f54606484611bd091906120a7565b611bda91906120c9565b30600090815260076020526040902054909150611bf890829061208f565b30600081815260076020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c499085815260200190565b60405180910390a3611c5b81846120e8565b949350505050565b8115611d4a57602154601d54604051633994a6ad60e21b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063e6529ab490839060c4016060604051808303818588803b158015611cd457600080fd5b505af1158015611ce8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d0d9190611f14565b505060408051838152602081018590527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050565b80356001600160a01b0381168114611d6557600080fd5b919050565b600060208284031215611d7c57600080fd5b610d9882611d4e565b60008060408385031215611d9857600080fd5b611da183611d4e565b9150611daf60208401611d4e565b90509250929050565b60008060008060808587031215611dce57600080fd5b611dd785611d4e565b9350611de560208601611d4e565b9250611df360408601611d4e565b9150611e0160608601611d4e565b905092959194509250565b600080600060608486031215611e2157600080fd5b611e2a84611d4e565b9250611e3860208501611d4e565b9150604084013590509250925092565b60008060408385031215611e5b57600080fd5b611e6483611d4e565b91506020830135611e748161212b565b809150509250929050565b60008060408385031215611e9257600080fd5b611e9b83611d4e565b946020939093013593505050565b600060208284031215611ebb57600080fd5b8151610d988161212b565b600080600060608486031215611edb57600080fd5b8335611ee68161212b565b95602085013595506040909401359392505050565b600060208284031215611f0d57600080fd5b5035919050565b600080600060608486031215611f2957600080fd5b8351925060208401519150604084015190509250925092565b60008060008060808587031215611f5857600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b81811015611fa157858101830151858201604001528201611f85565b81811115611fb3576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f72656365697665722072656a65637465642057444f4745207472616e73666572604082015260600190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561206e5784516001600160a01b031683529383019391830191600101612049565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156120a2576120a26120ff565b500190565b6000826120c457634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156120e3576120e36120ff565b500290565b6000828210156120fa576120fa6120ff565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b801515811461213957600080fd5b5056fea26469706673582212205b62f2394c2996461399817dd427b0ee1a03e95e5fd9539fbdc7c636a6a8d24264736f6c63430008060033