ETH Price: $2,416.40 (+3.35%)

Contract

0xe3374f14Be081EAe24E39E18360422b7AA769859
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer205376452024-08-16 0:36:5929 days ago1723768619IN
0xe3374f14...7AA769859
0 ETH0.000186462.78686624
Approve205376382024-08-16 0:35:3529 days ago1723768535IN
0xe3374f14...7AA769859
0 ETH0.000210574.51890002
Approve205376342024-08-16 0:34:4729 days ago1723768487IN
0xe3374f14...7AA769859
0 ETH0.000209614.49832075
Approve205376282024-08-16 0:33:3529 days ago1723768415IN
0xe3374f14...7AA769859
0 ETH0.000312416.70438377
Approve205376282024-08-16 0:33:3529 days ago1723768415IN
0xe3374f14...7AA769859
0 ETH0.000312416.70438377
Approve204725072024-08-06 22:26:4738 days ago1722983207IN
0xe3374f14...7AA769859
0 ETH0.000289946.22220792
Approve204723722024-08-06 21:59:4738 days ago1722981587IN
0xe3374f14...7AA769859
0 ETH0.00021434.59893088
Approve204723302024-08-06 21:51:2338 days ago1722981083IN
0xe3374f14...7AA769859
0 ETH0.000123582.65201936
Approve204659522024-08-06 0:29:1139 days ago1722904151IN
0xe3374f14...7AA769859
0 ETH0.000217334.66997425
Approve203616032024-07-22 10:53:5953 days ago1721645639IN
0xe3374f14...7AA769859
0 ETH0.000214644.61205458
Approve203223482024-07-16 23:25:3559 days ago1721172335IN
0xe3374f14...7AA769859
0 ETH0.000275735.9632651
Approve203011972024-07-14 0:35:4762 days ago1720917347IN
0xe3374f14...7AA769859
0 ETH0.00027545.91765717
Approve202318972024-07-04 8:16:3571 days ago1720080995IN
0xe3374f14...7AA769859
0 ETH0.000302156.49251232
Approve197738882024-05-01 7:48:23135 days ago1714549703IN
0xe3374f14...7AA769859
0 ETH0.0007479216.07085918
Transfer196813682024-04-18 9:11:47148 days ago1713431507IN
0xe3374f14...7AA769859
0 ETH0.0008119711.32686336
Transfer196269872024-04-10 18:22:23156 days ago1712773343IN
0xe3374f14...7AA769859
0 ETH0.0019659227.42415656
Transfer196269792024-04-10 18:20:47156 days ago1712773247IN
0xe3374f14...7AA769859
0 ETH0.0011016425.71109795
Transfer196269752024-04-10 18:19:59156 days ago1712773199IN
0xe3374f14...7AA769859
0 ETH0.0009423321.99305716
Transfer196269592024-04-10 18:16:47156 days ago1712773007IN
0xe3374f14...7AA769859
0 ETH0.0009138821.32908767
Transfer196269482024-04-10 18:14:35156 days ago1712772875IN
0xe3374f14...7AA769859
0 ETH0.0014393720.07888647
Approve195263782024-03-27 14:55:47170 days ago1711551347IN
0xe3374f14...7AA769859
0 ETH0.0022498648.28129645
Approve195120292024-03-25 14:16:23172 days ago1711376183IN
0xe3374f14...7AA769859
0 ETH0.001731337.15332375
Approve194898032024-03-22 11:15:23175 days ago1711106123IN
0xe3374f14...7AA769859
0 ETH0.0011123723.90195233
Transfer194842382024-03-21 16:32:11176 days ago1711038731IN
0xe3374f14...7AA769859
0 ETH0.0024741334.6887248
Transfer194841502024-03-21 16:13:59176 days ago1711037639IN
0xe3374f14...7AA769859
0 ETH0.0028885232.66679574
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
205376392024-08-16 0:35:4729 days ago1723768547
0xe3374f14...7AA769859
0.00400092 ETH
205376392024-08-16 0:35:4729 days ago1723768547
0xe3374f14...7AA769859
0.01600368 ETH
205376392024-08-16 0:35:4729 days ago1723768547
0xe3374f14...7AA769859
0.0200046 ETH
202319222024-07-04 8:21:3571 days ago1720081295
0xe3374f14...7AA769859
0.00596223 ETH
202319222024-07-04 8:21:3571 days ago1720081295
0xe3374f14...7AA769859
0.02384893 ETH
202319222024-07-04 8:21:3571 days ago1720081295
0xe3374f14...7AA769859
0.02981116 ETH
194898042024-03-22 11:15:35175 days ago1711106135
0xe3374f14...7AA769859
0.00760949 ETH
194898042024-03-22 11:15:35175 days ago1711106135
0xe3374f14...7AA769859
0.03043797 ETH
194898042024-03-22 11:15:35175 days ago1711106135
0xe3374f14...7AA769859
0.03804746 ETH
191169192024-01-30 4:24:59228 days ago1706588699
0xe3374f14...7AA769859
0.00769605 ETH
191169192024-01-30 4:24:59228 days ago1706588699
0xe3374f14...7AA769859
0.03078422 ETH
191169192024-01-30 4:24:59228 days ago1706588699
0xe3374f14...7AA769859
0.03848028 ETH
188823592023-12-28 6:34:47261 days ago1703745287
0xe3374f14...7AA769859
0.00690456 ETH
188823592023-12-28 6:34:47261 days ago1703745287
0xe3374f14...7AA769859
0.02761827 ETH
188823592023-12-28 6:34:47261 days ago1703745287
0xe3374f14...7AA769859
0.03452284 ETH
188326562023-12-21 7:07:47267 days ago1703142467
0xe3374f14...7AA769859
0.00925708 ETH
188326562023-12-21 7:07:47267 days ago1703142467
0xe3374f14...7AA769859
0.03702834 ETH
188326562023-12-21 7:07:47267 days ago1703142467
0xe3374f14...7AA769859
0.04628543 ETH
187977002023-12-16 9:21:23272 days ago1702718483
0xe3374f14...7AA769859
0.01320898 ETH
187977002023-12-16 9:21:23272 days ago1702718483
0xe3374f14...7AA769859
0.05283594 ETH
187977002023-12-16 9:21:23272 days ago1702718483
0xe3374f14...7AA769859
0.06604493 ETH
187579092023-12-10 19:31:23278 days ago1702236683
0xe3374f14...7AA769859
0.01103981 ETH
187579092023-12-10 19:31:23278 days ago1702236683
0xe3374f14...7AA769859
0.04415924 ETH
187579092023-12-10 19:31:23278 days ago1702236683
0xe3374f14...7AA769859
0.05519905 ETH
187473762023-12-09 8:07:23279 days ago1702109243
0xe3374f14...7AA769859
0.01100129 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BOFI

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-07
*/

/**
https://t.me/SirBofiportal

https://www.sirbofi.com/
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.21;


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 mod(uint256 a, uint256 b) internal pure returns (uint256) {return a % b;}
    
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {uint256 c = a + b; if(c < a) return(false, 0); return(true, c);}}

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if(b > a) return(false, 0); return(true, a - b);}}

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if (a == 0) return(true, 0); uint256 c = a * b;
        if(c / a != b) return(false, 0); return(true, c);}}

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if(b == 0) return(false, 0); return(true, a / b);}}

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if(b == 0) return(false, 0); return(true, 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;}}

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked{require(b > 0, errorMessage); return a % b;}}}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function 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;
    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 payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);}
    event OwnershipTransferred(address owner);
}

interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
        function getPair(address tokenA, address tokenB) external view returns (address pair);
}

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    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 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 BOFI is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = 'Sir Bofi';
    string private constant _symbol = 'BOFI';
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 100000000 * (10 ** _decimals);
    uint256 private _maxTxAmountPercent = 2; // 100;
    uint256 private _maxTransferPercent = 2;
    uint256 private _maxWalletPercent = 2;
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isFeeExempt;
    IRouter router;
    address public pair;
    bool private tradingAllowed = false;
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 30;
    uint256 private developmentFee = 0;
    uint256 private totalFee = 30;
    uint256 private sellFee = 30;
    uint256 private transferFee = 0;
    uint256 private denominator = 100;
    bool private swapEnabled = true;
    uint256 private swapTimes;
    bool private swapping; 
    uint256 public swapThreshold = ( _totalSupply * 200 ) / 100000;
    uint256 private _minTokenAmount = ( _totalSupply * 1 ) / 100000;
    modifier lockTheSwap {swapping = true; _; swapping = false;}

    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal development_receiver = 0x7c000a9551Be0239DDD68F45d89b34b42d5FCf88;
    address internal marketing_receiver = 0x701AC84dd513716C1D40aC0e86Ab36cB7fcDD444;
    address internal liquidity_receiver = 0x7c000a9551Be0239DDD68F45d89b34b42d5FCf88;

    constructor() Ownable(msg.sender) {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router;
        pair = _pair;
        isFeeExempt[address(this)] = true;
        isFeeExempt[liquidity_receiver] = true;
        isFeeExempt[development_receiver] = true;
        isFeeExempt[marketing_receiver] = true;
        isFeeExempt[0x7c000a9551Be0239DDD68F45d89b34b42d5FCf88] = true;
        isFeeExempt[0xe926bCCaf97fac1cF1DfF692A957EEDD90C9317b] = true;
        isFeeExempt[msg.sender] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}
    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 enableTrading() external onlyOwner {tradingAllowed = true;}
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function isCont(address addr) internal view returns (bool) {uint size; assembly { size := extcodesize(addr) } return size > 0; }
    function setisfeeExempt(address _address, bool _enabled) external onlyOwner {isFeeExempt[_address] = _enabled;}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(address(0)));}
    function _maxWalletToken() public view returns (uint256) {return totalSupply() * _maxWalletPercent / denominator;}
    function _maxTxAmount() public view returns (uint256) {return totalSupply() * _maxTxAmountPercent / denominator;}
    function _maxTransferAmount() public view returns (uint256) {return totalSupply() * _maxTransferPercent / denominator;}

    function preTxCheck(address sender, address recipient, uint256 amount) internal view {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > uint256(0), "Transfer amount must be greater than zero");
        require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");
    }

    function _transfer(address sender, address recipient, uint256 amount) private {
        preTxCheck(sender, recipient, amount);
        checkTradingAllowed(sender, recipient);
        checkMaxWallet(sender, recipient, amount); 
        swapbackCounters(sender, recipient);
        checkTxLimit(sender, recipient, amount); 
        swapBack(sender, recipient, amount);
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

    function changeTaxes(uint256 _liquidity, uint256 _marketing, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        liquidityFee = _liquidity;
        marketingFee = _marketing;
        developmentFee = _development;
        totalFee = _total;
        sellFee = _sell;
        transferFee = _trans;
        require(totalFee <= denominator.div(10) && sellFee <= denominator.div(3), "totalFee and sellFee cannot be more than 33%");
    }

    function changeLimits(uint256 _buy, uint256 _trans, uint256 _wallet) external onlyOwner {
        uint256 newTx = (totalSupply() * _buy) / 100;
        uint256 newTransfer = (totalSupply() * _trans) / 100;
        uint256 newWallet = (totalSupply() * _wallet) / 100;
        _maxTxAmountPercent = _buy;
        _maxTransferPercent = _trans;
        _maxWalletPercent = _wallet;
        uint256 limit = totalSupply().mul(5).div(1000);
        require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "Max TXs and Max Wallet cannot be less than .5%");
    }

    function changeTaxReceiverAddresses(address _liquidity_receiver, address _marketing_receiver, address _development_receiver) external onlyOwner {
        liquidity_receiver = _liquidity_receiver;
        marketing_receiver = _marketing_receiver;
        development_receiver = _development_receiver;
    }

    function checkTradingAllowed(address sender, address recipient) internal view {
        if(!isFeeExempt[sender] && !isFeeExempt[recipient]){require(tradingAllowed, "tradingAllowed");}
    }
    
    function checkMaxWallet(address sender, address recipient, uint256 amount) internal view {
        if(!isFeeExempt[sender] && !isFeeExempt[recipient] && recipient != address(pair) && recipient != address(DEAD)){
            require((_balances[recipient].add(amount)) <= _maxWalletToken(), "Exceeds maximum wallet amount.");}
    }

    function swapbackCounters(address sender, address recipient) internal {
        if(recipient == pair && !isFeeExempt[sender]){swapTimes += uint256(1);}
    }

    function checkTxLimit(address sender, address recipient, uint256 amount) internal view {
        if(sender != pair){require(amount <= _maxTransferAmount() || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded");}
        require(amount <= _maxTxAmount() || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded");
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap {
        uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee);
        if(marketingAmt > 0){payable(marketing_receiver).transfer(marketingAmt);}
        uint256 remainingBalance = address(this).balance;
        if(remainingBalance > uint256(0)){payable(development_receiver).transfer(remainingBalance);}
    }

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            liquidity_receiver,
            block.timestamp);
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        _approve(address(this), address(router), tokenAmount);
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp);
    }

    function shouldSwapBack(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= _minTokenAmount;
        bool aboveThreshold = balanceOf(address(this)) >= swapThreshold;
        return !swapping && swapEnabled && tradingAllowed && aboveMin && !isFeeExempt[sender] && recipient == pair && swapTimes >= uint256(1) && aboveThreshold;
    }

    function swapBack(address sender, address recipient, uint256 amount) internal {
        if(shouldSwapBack(sender, recipient, amount)){swapAndLiquify(swapThreshold); swapTimes = uint256(0);}
    }

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return !isFeeExempt[sender] && !isFeeExempt[recipient];
    }

    function getTotalFee(address sender, address recipient) internal view returns (uint256) {
        if(recipient == pair){return sellFee;}
        if(sender == pair){return totalFee;}
        return transferFee;
    }

    function changeswapthresholdfortaxtokens(uint256 _swapThreshold) public onlyOwner {
        require(_swapThreshold <= totalSupply().mul(2).div(100), "Can't set swapthreshold higher than 2% of total supply");
        swapThreshold = _swapThreshold;
    
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(getTotalFee(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);} return amount;
    }

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

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

}

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":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","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":"_maxTransferAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"changeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_liquidity_receiver","type":"address"},{"internalType":"address","name":"_marketing_receiver","type":"address"},{"internalType":"address","name":"_development_receiver","type":"address"}],"name":"changeTaxReceiverAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"changeTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapThreshold","type":"uint256"}],"name":"changeswapthresholdfortaxtokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisfeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a620004c6565b62000022906305f5e100620004dd565b6001818155600280805560038190556004556009805460ff60a01b191690555f600a819055601e600b819055600c829055600d819055600e55600f5560646010556011805460ff19169091179055620186a090620000829060c8620004dd565b6200008e9190620004f7565b601455620186a06001546001620000a69190620004dd565b620000b29190620004f7565b601555601680546001600160a01b0319908116737c000a9551be0239ddd68f45d89b34b42d5fcf8890811790925560178054821673701ac84dd513716c1d40ac0e86ab36cb7fcdd44417905560188054909116909117905534801562000116575f80fd5b505f80546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa1580156200017b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a1919062000517565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ed573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000213919062000517565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156200025e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000284919062000517565b600880546001600160a01b038581166001600160a01b031992831617909255600980548484169216919091179055305f908152600760209081526040808320805460ff199081166001908117909255601854861685528285208054821683179055601654861685528285208054821683179055601754909516845281842080548616821790557f07e888c430ac65575ff9bdfbb5bf953e23dcf0f709aac25b29672ec822f2502e80548616821790557f16a517b5226fc8aa666965cda1cf061eda2ee08bbed391911c3170a61f9ccf4c8054861682179055338085528285208054909616821790955554600583528184208190559051908152939450919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350506200053f565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200040b57815f1904821115620003ef57620003ef620003b7565b80851615620003fd57918102915b93841c9390800290620003d0565b509250929050565b5f826200042357506001620004c0565b816200043157505f620004c0565b81600181146200044a5760028114620004555762000475565b6001915050620004c0565b60ff841115620004695762000469620003b7565b50506001821b620004c0565b5060208310610133831016604e8410600b84101617156200049a575081810a620004c0565b620004a68383620003cb565b805f1904821115620004bc57620004bc620003b7565b0290505b92915050565b5f620004d660ff84168362000413565b9392505050565b8082028115828204841417620004c057620004c0620003b7565b5f826200051257634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000528575f80fd5b81516001600160a01b0381168114620004d6575f80fd5b611aa5806200054d5f395ff3fe60806040526004361061014a575f3560e01c80634d808802116100b357806395d89b411161006d57806395d89b41146103c0578063a8aa1b31146103ec578063a9059cbb1461040b578063d37e91771461042a578063dd62ed3e14610449578063f2fde38b1461048d575f80fd5b80634d8088021461030157806370a082311461032057806378109e54146103545780637d1db4a514610368578063893d20e81461037c5780638a8c523c146103ac575f80fd5b80632e3e3d5e116101045780632e3e3d5e1461022c5780632f54bf6e1461024d578063313ce5671461027a5780633b297fbd146102955780633f4218e0146102b457806341a5ef78146102e2575f80fd5b80630445b6671461015557806306fdde031461017d578063095ea7b3146101b657806318160ddd146101e55780631f976b7e146101f957806323b872dd1461020d575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b5061016a60145481565b6040519081526020015b60405180910390f35b348015610188575f80fd5b5060408051808201909152600881526753697220426f666960c01b60208201525b60405161017491906116db565b3480156101c1575f80fd5b506101d56101d036600461173d565b6104ac565b6040519015158152602001610174565b3480156101f0575f80fd5b5061016a6104c2565b348015610204575f80fd5b5061016a6104fe565b348015610218575f80fd5b506101d5610227366004611767565b610521565b348015610237575f80fd5b5061024b6102463660046117a5565b610589565b005b348015610258575f80fd5b506101d56102673660046117bc565b5f546001600160a01b0391821691161490565b348015610285575f80fd5b5060405160098152602001610174565b3480156102a0575f80fd5b5061024b6102af3660046117d7565b61064c565b3480156102bf575f80fd5b506101d56102ce3660046117bc565b60076020525f908152604090205460ff1681565b3480156102ed575f80fd5b5061024b6102fc36600461181f565b6106b4565b34801561030c575f80fd5b5061024b61031b36600461185e565b610790565b34801561032b575f80fd5b5061016a61033a3660046117bc565b6001600160a01b03165f9081526005602052604090205490565b34801561035f575f80fd5b5061016a6108cc565b348015610373575f80fd5b5061016a6108db565b348015610387575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610174565b3480156103b7575f80fd5b5061024b6108ea565b3480156103cb575f80fd5b50604080518082019091526004815263424f464960e01b60208201526101a9565b3480156103f7575f80fd5b50600954610394906001600160a01b031681565b348015610416575f80fd5b506101d561042536600461173d565b610928565b348015610435575f80fd5b5061024b610444366004611887565b610934565b348015610454575f80fd5b5061016a6104633660046118c2565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205490565b348015610498575f80fd5b5061024b6104a73660046117bc565b610987565b5f6104b8338484610a03565b5060015b92915050565b5f80805260056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc546001546104f991610b26565b905090565b5f60105460035461050d6104c2565b6105179190611902565b6104f99190611919565b5f61052d848484610b31565b61057e843361057985604051806060016040528060288152602001611a48602891396001600160a01b038a165f9081526006602090815260408083203384529091529020549190610c53565b610a03565b5060015b9392505050565b5f546001600160a01b031633146105bb5760405162461bcd60e51b81526004016105b290611938565b60405180910390fd5b6105d960646105d360026105cd6104c2565b90610c7e565b90610c89565b8111156106475760405162461bcd60e51b815260206004820152603660248201527f43616e27742073657420737761707468726573686f6c6420686967686572207460448201527568616e203225206f6620746f74616c20737570706c7960501b60648201526084016105b2565b601455565b5f546001600160a01b031633146106755760405162461bcd60e51b81526004016105b290611938565b601880546001600160a01b039485166001600160a01b031991821617909155601780549385169382169390931790925560168054919093169116179055565b5f546001600160a01b031633146106dd5760405162461bcd60e51b81526004016105b290611938565b600a868155600b869055600c859055600d849055600e839055600f82905560105461070791610c89565b600d54111580156107275750601054610721906003610c89565b600e5411155b6107885760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2033332560a01b60648201526084016105b2565b505050505050565b5f546001600160a01b031633146107b95760405162461bcd60e51b81526004016105b290611938565b5f6064846107c56104c2565b6107cf9190611902565b6107d99190611919565b90505f6064846107e76104c2565b6107f19190611902565b6107fb9190611919565b90505f6064846108096104c2565b6108139190611902565b61081d9190611919565b60028790556003869055600485905590505f6108426103e86105d360056105cd6104c2565b90508084101580156108545750808310155b80156108605750808210155b6108c35760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b60648201526084016105b2565b50505050505050565b5f60105460045461050d6104c2565b5f60105460025461050d6104c2565b5f546001600160a01b031633146109135760405162461bcd60e51b81526004016105b290611938565b6009805460ff60a01b1916600160a01b179055565b5f6104b8338484610b31565b5f546001600160a01b0316331461095d5760405162461bcd60e51b81526004016105b290611938565b6001600160a01b03919091165f908152600760205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146109b05760405162461bcd60e51b81526004016105b290611938565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b038316610a655760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105b2565b6001600160a01b038216610ac65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105b2565b6001600160a01b038381165f8181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6105828284611958565b610b3c838383610c94565b610b468383610e41565b610b51838383610ed4565b610b5b8383610fc2565b610b66838383611017565b610b7183838361114a565b6001600160a01b0383165f90815260056020526040902054610b939082610b26565b6001600160a01b0384165f90815260056020526040812091909155610bb8848461116e565b610bc25781610bcd565b610bcd8484846111b2565b6001600160a01b0384165f90815260056020526040902054909150610bf2908261126d565b6001600160a01b038085165f8181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c459085815260200190565b60405180910390a350505050565b5f8184841115610c765760405162461bcd60e51b81526004016105b291906116db565b505050900390565b5f6105828284611902565b5f6105828284611919565b6001600160a01b038316610cf85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105b2565b6001600160a01b038216610d5a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105b2565b5f8111610dbb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105b2565b6001600160a01b0383165f90815260056020526040902054811115610e3c5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016105b2565b505050565b6001600160a01b0382165f9081526007602052604090205460ff16158015610e8157506001600160a01b0381165f9081526007602052604090205460ff16155b15610ed057600954600160a01b900460ff16610ed05760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b60448201526064016105b2565b5050565b6001600160a01b0383165f9081526007602052604090205460ff16158015610f1457506001600160a01b0382165f9081526007602052604090205460ff16155b8015610f2e57506009546001600160a01b03838116911614155b8015610f4557506001600160a01b03821661dead14155b15610e3c57610f526108cc565b6001600160a01b0383165f90815260056020526040902054610f74908361126d565b1115610e3c5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016105b2565b6009546001600160a01b038281169116148015610ff757506001600160a01b0382165f9081526007602052604090205460ff16155b15610ed057600160125f82825461100e919061196b565b90915550505050565b6009546001600160a01b038481169116146110bb576110346104fe565b8111158061105957506001600160a01b0383165f9081526007602052604090205460ff165b8061107b57506001600160a01b0382165f9081526007602052604090205460ff165b6110bb5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105b2565b6110c36108db565b811115806110e857506001600160a01b0383165f9081526007602052604090205460ff165b8061110a57506001600160a01b0382165f9081526007602052604090205460ff165b610e3c5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105b2565b611155838383611278565b15610e3c57611165601454611328565b5f601255505050565b6001600160a01b0382165f9081526007602052604081205460ff161580156105825750506001600160a01b03165f9081526007602052604090205460ff1615919050565b5f806111be8585611498565b1115611266575f6111e06111d28686611498565b6010546105cd908690610c89565b305f908152600560205260409020549091506111fc908261126d565b305f81815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061124c9085815260200190565b60405180910390a361125e8382610b26565b915050610582565b5092915050565b5f610582828461196b565b601554601454305f9081526005602052604081205460135491938510159211159060ff161580156112ab575060115460ff165b80156112c05750600954600160a01b900460ff165b80156112c95750815b80156112ed57506001600160a01b0386165f9081526007602052604090205460ff16155b801561130657506009546001600160a01b038681169116145b80156113155750600160125410155b801561131e5750805b9695505050505050565b6013805460ff19166001908117909155600c54600b54600a545f93611361936002936105cd93919261135b92839161126d565b9061126d565b90505f61137d826105d3600a5486610c7e90919063ffffffff16565b90505f61138a8483610b26565b905047611396826114e2565b5f6113a14783610b26565b90505f6113c36113bc600a5488610b2690919063ffffffff16565b8390610c89565b90505f6113db600a5483610c7e90919063ffffffff16565b905080156113ed576113ed868261162a565b600b545f90611401906105cd856002610c7e565b90508015611442576017546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611440573d5f803e3d5ffd5b505b478015611482576016546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611480573d5f803e3d5ffd5b505b50506013805460ff191690555050505050505050565b6009545f906001600160a01b03908116908316036114b95750600e546104bc565b6009546001600160a01b03908116908416036114d85750600d546104bc565b50600f5492915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106115155761151561197e565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561156c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115909190611992565b816001815181106115a3576115a361197e565b6001600160a01b0392831660209182029290920101526008546115c99130911684610a03565b60085460405163791ac94760e01b81526001600160a01b039091169063791ac947906116019085905f908690309042906004016119ad565b5f604051808303815f87803b158015611618575f80fd5b505af1158015610788573d5f803e3d5ffd5b6008546116429030906001600160a01b031684610a03565b60085460185460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156116af573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906116d49190611a1c565b5050505050565b5f6020808352835180828501525f5b81811015611706578581018301518582016040015282016116ea565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461173a575f80fd5b50565b5f806040838503121561174e575f80fd5b823561175981611726565b946020939093013593505050565b5f805f60608486031215611779575f80fd5b833561178481611726565b9250602084013561179481611726565b929592945050506040919091013590565b5f602082840312156117b5575f80fd5b5035919050565b5f602082840312156117cc575f80fd5b813561058281611726565b5f805f606084860312156117e9575f80fd5b83356117f481611726565b9250602084013561180481611726565b9150604084013561181481611726565b809150509250925092565b5f805f805f8060c08789031215611834575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f805f60608486031215611870575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215611898575f80fd5b82356118a381611726565b9150602083013580151581146118b7575f80fd5b809150509250929050565b5f80604083850312156118d3575f80fd5b82356118de81611726565b915060208301356118b781611726565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176104bc576104bc6118ee565b5f8261193357634e487b7160e01b5f52601260045260245ffd5b500490565b60208082526006908201526510a7aba722a960d11b604082015260600190565b818103818111156104bc576104bc6118ee565b808201808211156104bc576104bc6118ee565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156119a2575f80fd5b815161058281611726565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119fb5784516001600160a01b0316835293830193918301916001016119d6565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611a2e575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122045203b08a13c62b36cf487944cb118f0adc5859ef929ecf0e330588ccdfa3c6664736f6c63430008150033

Deployed Bytecode

0x60806040526004361061014a575f3560e01c80634d808802116100b357806395d89b411161006d57806395d89b41146103c0578063a8aa1b31146103ec578063a9059cbb1461040b578063d37e91771461042a578063dd62ed3e14610449578063f2fde38b1461048d575f80fd5b80634d8088021461030157806370a082311461032057806378109e54146103545780637d1db4a514610368578063893d20e81461037c5780638a8c523c146103ac575f80fd5b80632e3e3d5e116101045780632e3e3d5e1461022c5780632f54bf6e1461024d578063313ce5671461027a5780633b297fbd146102955780633f4218e0146102b457806341a5ef78146102e2575f80fd5b80630445b6671461015557806306fdde031461017d578063095ea7b3146101b657806318160ddd146101e55780631f976b7e146101f957806323b872dd1461020d575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b5061016a60145481565b6040519081526020015b60405180910390f35b348015610188575f80fd5b5060408051808201909152600881526753697220426f666960c01b60208201525b60405161017491906116db565b3480156101c1575f80fd5b506101d56101d036600461173d565b6104ac565b6040519015158152602001610174565b3480156101f0575f80fd5b5061016a6104c2565b348015610204575f80fd5b5061016a6104fe565b348015610218575f80fd5b506101d5610227366004611767565b610521565b348015610237575f80fd5b5061024b6102463660046117a5565b610589565b005b348015610258575f80fd5b506101d56102673660046117bc565b5f546001600160a01b0391821691161490565b348015610285575f80fd5b5060405160098152602001610174565b3480156102a0575f80fd5b5061024b6102af3660046117d7565b61064c565b3480156102bf575f80fd5b506101d56102ce3660046117bc565b60076020525f908152604090205460ff1681565b3480156102ed575f80fd5b5061024b6102fc36600461181f565b6106b4565b34801561030c575f80fd5b5061024b61031b36600461185e565b610790565b34801561032b575f80fd5b5061016a61033a3660046117bc565b6001600160a01b03165f9081526005602052604090205490565b34801561035f575f80fd5b5061016a6108cc565b348015610373575f80fd5b5061016a6108db565b348015610387575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610174565b3480156103b7575f80fd5b5061024b6108ea565b3480156103cb575f80fd5b50604080518082019091526004815263424f464960e01b60208201526101a9565b3480156103f7575f80fd5b50600954610394906001600160a01b031681565b348015610416575f80fd5b506101d561042536600461173d565b610928565b348015610435575f80fd5b5061024b610444366004611887565b610934565b348015610454575f80fd5b5061016a6104633660046118c2565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205490565b348015610498575f80fd5b5061024b6104a73660046117bc565b610987565b5f6104b8338484610a03565b5060015b92915050565b5f80805260056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc546001546104f991610b26565b905090565b5f60105460035461050d6104c2565b6105179190611902565b6104f99190611919565b5f61052d848484610b31565b61057e843361057985604051806060016040528060288152602001611a48602891396001600160a01b038a165f9081526006602090815260408083203384529091529020549190610c53565b610a03565b5060015b9392505050565b5f546001600160a01b031633146105bb5760405162461bcd60e51b81526004016105b290611938565b60405180910390fd5b6105d960646105d360026105cd6104c2565b90610c7e565b90610c89565b8111156106475760405162461bcd60e51b815260206004820152603660248201527f43616e27742073657420737761707468726573686f6c6420686967686572207460448201527568616e203225206f6620746f74616c20737570706c7960501b60648201526084016105b2565b601455565b5f546001600160a01b031633146106755760405162461bcd60e51b81526004016105b290611938565b601880546001600160a01b039485166001600160a01b031991821617909155601780549385169382169390931790925560168054919093169116179055565b5f546001600160a01b031633146106dd5760405162461bcd60e51b81526004016105b290611938565b600a868155600b869055600c859055600d849055600e839055600f82905560105461070791610c89565b600d54111580156107275750601054610721906003610c89565b600e5411155b6107885760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2033332560a01b60648201526084016105b2565b505050505050565b5f546001600160a01b031633146107b95760405162461bcd60e51b81526004016105b290611938565b5f6064846107c56104c2565b6107cf9190611902565b6107d99190611919565b90505f6064846107e76104c2565b6107f19190611902565b6107fb9190611919565b90505f6064846108096104c2565b6108139190611902565b61081d9190611919565b60028790556003869055600485905590505f6108426103e86105d360056105cd6104c2565b90508084101580156108545750808310155b80156108605750808210155b6108c35760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b60648201526084016105b2565b50505050505050565b5f60105460045461050d6104c2565b5f60105460025461050d6104c2565b5f546001600160a01b031633146109135760405162461bcd60e51b81526004016105b290611938565b6009805460ff60a01b1916600160a01b179055565b5f6104b8338484610b31565b5f546001600160a01b0316331461095d5760405162461bcd60e51b81526004016105b290611938565b6001600160a01b03919091165f908152600760205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146109b05760405162461bcd60e51b81526004016105b290611938565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b038316610a655760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105b2565b6001600160a01b038216610ac65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105b2565b6001600160a01b038381165f8181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6105828284611958565b610b3c838383610c94565b610b468383610e41565b610b51838383610ed4565b610b5b8383610fc2565b610b66838383611017565b610b7183838361114a565b6001600160a01b0383165f90815260056020526040902054610b939082610b26565b6001600160a01b0384165f90815260056020526040812091909155610bb8848461116e565b610bc25781610bcd565b610bcd8484846111b2565b6001600160a01b0384165f90815260056020526040902054909150610bf2908261126d565b6001600160a01b038085165f8181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c459085815260200190565b60405180910390a350505050565b5f8184841115610c765760405162461bcd60e51b81526004016105b291906116db565b505050900390565b5f6105828284611902565b5f6105828284611919565b6001600160a01b038316610cf85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105b2565b6001600160a01b038216610d5a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105b2565b5f8111610dbb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105b2565b6001600160a01b0383165f90815260056020526040902054811115610e3c5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016105b2565b505050565b6001600160a01b0382165f9081526007602052604090205460ff16158015610e8157506001600160a01b0381165f9081526007602052604090205460ff16155b15610ed057600954600160a01b900460ff16610ed05760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b60448201526064016105b2565b5050565b6001600160a01b0383165f9081526007602052604090205460ff16158015610f1457506001600160a01b0382165f9081526007602052604090205460ff16155b8015610f2e57506009546001600160a01b03838116911614155b8015610f4557506001600160a01b03821661dead14155b15610e3c57610f526108cc565b6001600160a01b0383165f90815260056020526040902054610f74908361126d565b1115610e3c5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016105b2565b6009546001600160a01b038281169116148015610ff757506001600160a01b0382165f9081526007602052604090205460ff16155b15610ed057600160125f82825461100e919061196b565b90915550505050565b6009546001600160a01b038481169116146110bb576110346104fe565b8111158061105957506001600160a01b0383165f9081526007602052604090205460ff165b8061107b57506001600160a01b0382165f9081526007602052604090205460ff165b6110bb5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105b2565b6110c36108db565b811115806110e857506001600160a01b0383165f9081526007602052604090205460ff165b8061110a57506001600160a01b0382165f9081526007602052604090205460ff165b610e3c5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105b2565b611155838383611278565b15610e3c57611165601454611328565b5f601255505050565b6001600160a01b0382165f9081526007602052604081205460ff161580156105825750506001600160a01b03165f9081526007602052604090205460ff1615919050565b5f806111be8585611498565b1115611266575f6111e06111d28686611498565b6010546105cd908690610c89565b305f908152600560205260409020549091506111fc908261126d565b305f81815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061124c9085815260200190565b60405180910390a361125e8382610b26565b915050610582565b5092915050565b5f610582828461196b565b601554601454305f9081526005602052604081205460135491938510159211159060ff161580156112ab575060115460ff165b80156112c05750600954600160a01b900460ff165b80156112c95750815b80156112ed57506001600160a01b0386165f9081526007602052604090205460ff16155b801561130657506009546001600160a01b038681169116145b80156113155750600160125410155b801561131e5750805b9695505050505050565b6013805460ff19166001908117909155600c54600b54600a545f93611361936002936105cd93919261135b92839161126d565b9061126d565b90505f61137d826105d3600a5486610c7e90919063ffffffff16565b90505f61138a8483610b26565b905047611396826114e2565b5f6113a14783610b26565b90505f6113c36113bc600a5488610b2690919063ffffffff16565b8390610c89565b90505f6113db600a5483610c7e90919063ffffffff16565b905080156113ed576113ed868261162a565b600b545f90611401906105cd856002610c7e565b90508015611442576017546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611440573d5f803e3d5ffd5b505b478015611482576016546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611480573d5f803e3d5ffd5b505b50506013805460ff191690555050505050505050565b6009545f906001600160a01b03908116908316036114b95750600e546104bc565b6009546001600160a01b03908116908416036114d85750600d546104bc565b50600f5492915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106115155761151561197e565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561156c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115909190611992565b816001815181106115a3576115a361197e565b6001600160a01b0392831660209182029290920101526008546115c99130911684610a03565b60085460405163791ac94760e01b81526001600160a01b039091169063791ac947906116019085905f908690309042906004016119ad565b5f604051808303815f87803b158015611618575f80fd5b505af1158015610788573d5f803e3d5ffd5b6008546116429030906001600160a01b031684610a03565b60085460185460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156116af573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906116d49190611a1c565b5050505050565b5f6020808352835180828501525f5b81811015611706578581018301518582016040015282016116ea565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461173a575f80fd5b50565b5f806040838503121561174e575f80fd5b823561175981611726565b946020939093013593505050565b5f805f60608486031215611779575f80fd5b833561178481611726565b9250602084013561179481611726565b929592945050506040919091013590565b5f602082840312156117b5575f80fd5b5035919050565b5f602082840312156117cc575f80fd5b813561058281611726565b5f805f606084860312156117e9575f80fd5b83356117f481611726565b9250602084013561180481611726565b9150604084013561181481611726565b809150509250925092565b5f805f805f8060c08789031215611834575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f805f60608486031215611870575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215611898575f80fd5b82356118a381611726565b9150602083013580151581146118b7575f80fd5b809150509250929050565b5f80604083850312156118d3575f80fd5b82356118de81611726565b915060208301356118b781611726565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176104bc576104bc6118ee565b5f8261193357634e487b7160e01b5f52601260045260245ffd5b500490565b60208082526006908201526510a7aba722a960d11b604082015260600190565b818103818111156104bc576104bc6118ee565b808201808211156104bc576104bc6118ee565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156119a2575f80fd5b815161058281611726565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119fb5784516001600160a01b0316835293830193918301916001016119d6565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611a2e575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122045203b08a13c62b36cf487944cb118f0adc5859ef929ecf0e330588ccdfa3c6664736f6c63430008150033

Deployed Bytecode Sourcemap

4677:11894:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5729:62;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;5729:62:0;;;;;;;;7083:67;;;;;;;;;;-1:-1:-1;7143:5:0;;;;;;;;;;;;-1:-1:-1;;;7143:5:0;;;;7083:67;;;;;;;:::i;8102:133::-;;;;;;;;;;-1:-1:-1;8102:133:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;8102:133:0;1205:187:1;8241:111:0;;;;;;;;;;;;;:::i;8597:119::-;;;;;;;;;;;;;:::i;15914:309::-;;;;;;;;;;-1:-1:-1;15914:309:0;;;;;:::i;:::-;;:::i;15204:262::-;;;;;;;;;;-1:-1:-1;15204:262:0;;;;;:::i;:::-;;:::i;:::-;;3057:87;;;;;;;;;;-1:-1:-1;3057:87:0;;;;;:::i;:::-;3112:4;3137:5;-1:-1:-1;;;;;3126:16:0;;;3137:5;;3126:16;;3057:87;7233:67;;;;;;;;;;-1:-1:-1;7233:67:0;;4881:1;2437:36:1;;2425:2;2410:18;7233:67:0;2295:184:1;10944:309:0;;;;;;;;;;-1:-1:-1;10944:309:0;;;;;:::i;:::-;;:::i;5221:44::-;;;;;;;;;;-1:-1:-1;5221:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9865:486;;;;;;;;;;-1:-1:-1;9865:486:0;;;;;:::i;:::-;;:::i;10359:577::-;;;;;;;;;;-1:-1:-1;10359:577:0;;;;;:::i;:::-;;:::i;7464:103::-;;;;;;;;;;-1:-1:-1;7464:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;7547:18:0;7530:7;7547:18;;;:9;:18;;;;;;;7464:103;8358:114;;;;;;;;;;;;;:::i;8478:113::-;;;;;;;;;;;;;:::i;7380:78::-;;;;;;;;;;-1:-1:-1;7432:7:0;7450:5;-1:-1:-1;;;;;7450:5:0;7380:78;;;-1:-1:-1;;;;;4031:32:1;;;4013:51;;4001:2;3986:18;7380:78:0;3867:203:1;7306:68:0;;;;;;;;;;;;;:::i;7156:71::-;;;;;;;;;;-1:-1:-1;7218:7:0;;;;;;;;;;;;-1:-1:-1;;;7218:7:0;;;;7156:71;;5293:19;;;;;;;;;;-1:-1:-1;5293:19:0;;;;-1:-1:-1;;;;;5293:19:0;;;7573:139;;;;;;;;;;-1:-1:-1;7573:139:0;;;;;:::i;:::-;;:::i;7985:111::-;;;;;;;;;;-1:-1:-1;7985:111:0;;;;;:::i;:::-;;:::i;7718:127::-;;;;;;;;;;-1:-1:-1;7718:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;7816:18:0;;;7799:7;7816:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7718:127;3150:111;;;;;;;;;;-1:-1:-1;3150:111:0;;;;;:::i;:::-;;:::i;8102:133::-;8177:4;8184:37;8193:10;8205:7;8214:6;8184:8;:37::i;:::-;-1:-1:-1;8229:4:0;8102:133;;;;;:::o;8241:111::-;8294:7;7547:18;;;:9;:18;;;;8311:12;;:39;;:16;:39::i;:::-;8304:46;;8241:111;:::o;8597:119::-;8648:7;8703:11;;8681:19;;8665:13;:11;:13::i;:::-;:35;;;;:::i;:::-;:49;;;;:::i;15914:309::-;16012:4;16029:36;16039:6;16047:9;16058:6;16029:9;:36::i;:::-;16076:117;16085:6;16093:10;16105:87;16141:6;16105:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16105:19:0;;;;;;:11;:19;;;;;;;;16125:10;16105:31;;;;;;;;;:87;:35;:87::i;:::-;16076:8;:117::i;:::-;-1:-1:-1;16211:4:0;15914:309;;;;;;:::o;15204:262::-;3112:4;3137:5;-1:-1:-1;;;;;3137:5:0;3024:10;3126:16;3008:38;;;;-1:-1:-1;;;3008:38:0;;;;;;;:::i;:::-;;;;;;;;;15323:29:::1;15348:3;15323:20;15341:1;15323:13;:11;:13::i;:::-;:17:::0;::::1;:20::i;:::-;:24:::0;::::1;:29::i;:::-;15305:14;:47;;15297:114;;;::::0;-1:-1:-1;;;15297:114:0;;6212:2:1;15297:114:0::1;::::0;::::1;6194:21:1::0;6251:2;6231:18;;;6224:30;6290:34;6270:18;;;6263:62;-1:-1:-1;;;6341:18:1;;;6334:52;6403:19;;15297:114:0::1;6010:418:1::0;15297:114:0::1;15422:13;:30:::0;15204:262::o;10944:309::-;3112:4;3137:5;-1:-1:-1;;;;;3137:5:0;3024:10;3126:16;3008:38;;;;-1:-1:-1;;;3008:38:0;;;;;;;:::i;:::-;11099:18:::1;:40:::0;;-1:-1:-1;;;;;11099:40:0;;::::1;-1:-1:-1::0;;;;;;11099:40:0;;::::1;;::::0;;;11150:18:::1;:40:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;11201:20:::1;:44:::0;;;;;::::1;::::0;::::1;;::::0;;10944:309::o;9865:486::-;3112:4;3137:5;-1:-1:-1;;;;;3137:5:0;3024:10;3126:16;3008:38;;;;-1:-1:-1;;;3008:38:0;;;;;;;:::i;:::-;10025:12:::1;:25:::0;;;10061:12:::1;:25:::0;;;10097:14:::1;:29:::0;;;10137:8:::1;:17:::0;;;10165:7:::1;:15:::0;;;10191:11:::1;:20:::0;;;10242:11:::1;::::0;:19:::1;::::0;:15:::1;:19::i;:::-;10230:8;;:31;;:64;;;;-1:-1:-1::0;10276:11:0::1;::::0;:18:::1;::::0;10292:1:::1;10276:15;:18::i;:::-;10265:7;;:29;;10230:64;10222:121;;;::::0;-1:-1:-1;;;10222:121:0;;6635:2:1;10222:121:0::1;::::0;::::1;6617:21:1::0;6674:2;6654:18;;;6647:30;6713:34;6693:18;;;6686:62;-1:-1:-1;;;6764:18:1;;;6757:42;6816:19;;10222:121:0::1;6433:408:1::0;10222:121:0::1;9865:486:::0;;;;;;:::o;10359:577::-;3112:4;3137:5;-1:-1:-1;;;;;3137:5:0;3024:10;3126:16;3008:38;;;;-1:-1:-1;;;3008:38:0;;;;;;;:::i;:::-;10458:13:::1;10499:3;10491:4;10475:13;:11;:13::i;:::-;:20;;;;:::i;:::-;10474:28;;;;:::i;:::-;10458:44;;10513:19;10562:3;10552:6;10536:13;:11;:13::i;:::-;:22;;;;:::i;:::-;10535:30;;;;:::i;:::-;10513:52;;10576:17;10624:3;10613:7;10597:13;:11;:13::i;:::-;:23;;;;:::i;:::-;10596:31;;;;:::i;:::-;10638:19;:26:::0;;;10675:19:::1;:28:::0;;;10714:17:::1;:27:::0;;;10576:51;-1:-1:-1;;10768:30:0::1;10793:4;10768:20;10786:1;10768:13;:11;:13::i;:30::-;10752:46;;10826:5;10817;:14;;:38;;;;;10850:5;10835:11;:20;;10817:38;:60;;;;;10872:5;10859:9;:18;;10817:60;10809:119;;;::::0;-1:-1:-1;;;10809:119:0;;7048:2:1;10809:119:0::1;::::0;::::1;7030:21:1::0;7087:2;7067:18;;;7060:30;7126:34;7106:18;;;7099:62;-1:-1:-1;;;7177:18:1;;;7170:44;7231:19;;10809:119:0::1;6846:410:1::0;10809:119:0::1;10447:489;;;;10359:577:::0;;;:::o;8358:114::-;8406:7;8459:11;;8439:17;;8423:13;:11;:13::i;8478:113::-;8523:7;8578:11;;8556:19;;8540:13;:11;:13::i;7306:68::-;3112:4;3137:5;-1:-1:-1;;;;;3137:5:0;3024:10;3126:16;3008:38;;;;-1:-1:-1;;;3008:38:0;;;;;;;:::i;:::-;7351:14:::1;:21:::0;;-1:-1:-1;;;;7351:21:0::1;-1:-1:-1::0;;;7351:21:0::1;::::0;;7306:68::o;7573:139::-;7651:4;7658:40;7668:10;7680:9;7691:6;7658:9;:40::i;7985:111::-;3112:4;3137:5;-1:-1:-1;;;;;3137:5:0;3024:10;3126:16;3008:38;;;;-1:-1:-1;;;3008:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8062:21:0;;;::::1;;::::0;;;:11:::1;:21;::::0;;;;:32;;-1:-1:-1;;8062:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7985:111::o;3150:::-;3112:4;3137:5;-1:-1:-1;;;;;3137:5:0;3024:10;3126:16;3008:38;;;;-1:-1:-1;;;3008:38:0;;;;;;;:::i;:::-;3216:5:::1;:11:::0;;-1:-1:-1;;;;;;3216:11:0::1;-1:-1:-1::0;;;;;3216:11:0;::::1;::::0;;::::1;::::0;;;3234:25:::1;::::0;4013:51:1;;;3234:25:0::1;::::0;4001:2:1;3986:18;3234:25:0::1;;;;;;;3150:111:::0;:::o;16231:335::-;-1:-1:-1;;;;;16324:19:0;;16316:68;;;;-1:-1:-1;;;16316:68:0;;7679:2:1;16316:68:0;;;7661:21:1;7718:2;7698:18;;;7691:30;7757:34;7737:18;;;7730:62;-1:-1:-1;;;7808:18:1;;;7801:34;7852:19;;16316:68:0;7477:400:1;16316:68:0;-1:-1:-1;;;;;16403:21:0;;16395:68;;;;-1:-1:-1;;;16395:68:0;;8084:2:1;16395:68:0;;;8066:21:1;8123:2;8103:18;;;8096:30;8162:34;8142:18;;;8135:62;-1:-1:-1;;;8213:18:1;;;8206:32;8255:19;;16395:68:0;7882:398:1;16395:68:0;-1:-1:-1;;;;;16474:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16526:32;;160:25:1;;;16526:32:0;;133:18:1;16526:32:0;;;;;;;16231:335;;;:::o;243:82::-;301:7;318:5;322:1;318;:5;:::i;9171:686::-;9260:37;9271:6;9279:9;9290:6;9260:10;:37::i;:::-;9308:38;9328:6;9336:9;9308:19;:38::i;:::-;9357:41;9372:6;9380:9;9391:6;9357:14;:41::i;:::-;9410:35;9427:6;9435:9;9410:16;:35::i;:::-;9456:39;9469:6;9477:9;9488:6;9456:12;:39::i;:::-;9507:35;9516:6;9524:9;9535:6;9507:8;:35::i;:::-;-1:-1:-1;;;;;9573:17:0;;;;;;:9;:17;;;;;;:29;;9595:6;9573:21;:29::i;:::-;-1:-1:-1;;;;;9553:17:0;;;;;;:9;:17;;;;;:49;;;;9638:32;9563:6;9660:9;9638:13;:32::i;:::-;:78;;9710:6;9638:78;;;9673:34;9681:6;9689:9;9700:6;9673:7;:34::i;:::-;-1:-1:-1;;;;;9750:20:0;;;;;;:9;:20;;;;;;9613:103;;-1:-1:-1;9750:40:0;;9613:103;9750:24;:40::i;:::-;-1:-1:-1;;;;;9727:20:0;;;;;;;:9;:20;;;;;;;:63;;;;9806:43;;;;;;;;;;9834:14;160:25:1;;148:2;133:18;;14:177;9806:43:0;;;;;;;;9249:608;9171:686;;;:::o;1456:162::-;1542:7;1588:12;1580:6;;;;1572:29;;;;-1:-1:-1;;;1572:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1610:5:0;;;1456:162::o;331:82::-;389:7;406:5;410:1;406;:5;:::i;419:82::-;477:7;494:5;498:1;494;:5;:::i;8724:439::-;-1:-1:-1;;;;;8828:20:0;;8820:70;;;;-1:-1:-1;;;8820:70:0;;8620:2:1;8820:70:0;;;8602:21:1;8659:2;8639:18;;;8632:30;8698:34;8678:18;;;8671:62;-1:-1:-1;;;8749:18:1;;;8742:35;8794:19;;8820:70:0;8418:401:1;8820:70:0;-1:-1:-1;;;;;8909:23:0;;8901:71;;;;-1:-1:-1;;;8901:71:0;;9026:2:1;8901:71:0;;;9008:21:1;9065:2;9045:18;;;9038:30;9104:34;9084:18;;;9077:62;-1:-1:-1;;;9155:18:1;;;9148:33;9198:19;;8901:71:0;8824:399:1;8901:71:0;9008:1;8991:6;:19;8983:73;;;;-1:-1:-1;;;8983:73:0;;9430:2:1;8983:73:0;;;9412:21:1;9469:2;9449:18;;;9442:30;9508:34;9488:18;;;9481:62;-1:-1:-1;;;9559:18:1;;;9552:39;9608:19;;8983:73:0;9228:405:1;8983:73:0;-1:-1:-1;;;;;7547:18:0;;7530:7;7547:18;;;:9;:18;;;;;;9075:6;:27;;9067:88;;;;-1:-1:-1;;;9067:88:0;;9840:2:1;9067:88:0;;;9822:21:1;9879:2;9859:18;;;9852:30;9918:34;9898:18;;;9891:62;-1:-1:-1;;;9969:18:1;;;9962:47;10026:19;;9067:88:0;9638:413:1;9067:88:0;8724:439;;;:::o;11261:191::-;-1:-1:-1;;;;;11354:19:0;;;;;;:11;:19;;;;;;;;11353:20;:47;;;;-1:-1:-1;;;;;;11378:22:0;;;;;;:11;:22;;;;;;;;11377:23;11353:47;11350:95;;;11410:14;;-1:-1:-1;;;11410:14:0;;;;11402:41;;;;-1:-1:-1;;;11402:41:0;;10258:2:1;11402:41:0;;;10240:21:1;10297:2;10277:18;;;10270:30;-1:-1:-1;;;10316:18:1;;;10309:44;10370:18;;11402:41:0;10056:338:1;11402:41:0;11261:191;;:::o;11464:333::-;-1:-1:-1;;;;;11568:19:0;;;;;;:11;:19;;;;;;;;11567:20;:47;;;;-1:-1:-1;;;;;;11592:22:0;;;;;;:11;:22;;;;;;;;11591:23;11567:47;:77;;;;-1:-1:-1;11639:4:0;;-1:-1:-1;;;;;11618:26:0;;;11639:4;;11618:26;;11567:77;:107;;;;-1:-1:-1;;;;;;11648:26:0;;5969:42;11648:26;;11567:107;11564:226;;;11736:17;:15;:17::i;:::-;-1:-1:-1;;;;;11699:20:0;;;;;;:9;:20;;;;;;:32;;11724:6;11699:24;:32::i;:::-;11698:55;;11690:98;;;;-1:-1:-1;;;11690:98:0;;10601:2:1;11690:98:0;;;10583:21:1;10640:2;10620:18;;;10613:30;10679:32;10659:18;;;10652:60;10729:18;;11690:98:0;10399:354:1;11805:159:0;11902:4;;-1:-1:-1;;;;;11889:17:0;;;11902:4;;11889:17;:41;;;;-1:-1:-1;;;;;;11911:19:0;;;;;;:11;:19;;;;;;;;11910:20;11889:41;11886:71;;;11953:1;11932:9;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;11805:159:0;;:::o;11972:349::-;12083:4;;-1:-1:-1;;;;;12073:14:0;;;12083:4;;12073:14;12070:130;;12107:20;:18;:20::i;:::-;12097:6;:30;;:53;;;-1:-1:-1;;;;;;12131:19:0;;;;;;:11;:19;;;;;;;;12097:53;:79;;;-1:-1:-1;;;;;;12154:22:0;;;;;;:11;:22;;;;;;;;12097:79;12089:109;;;;-1:-1:-1;;;12089:109:0;;11090:2:1;12089:109:0;;;11072:21:1;11129:2;11109:18;;;11102:30;-1:-1:-1;;;11148:18:1;;;11141:47;11205:18;;12089:109:0;10888:341:1;12089:109:0;12228:14;:12;:14::i;:::-;12218:6;:24;;:47;;;-1:-1:-1;;;;;;12246:19:0;;;;;;:11;:19;;;;;;;;12218:47;:73;;;-1:-1:-1;;;;;;12269:22:0;;;;;;:11;:22;;;;;;;;12218:73;12210:103;;;;-1:-1:-1;;;12210:103:0;;11090:2:1;12210:103:0;;;11072:21:1;11129:2;11109:18;;;11102:30;-1:-1:-1;;;11148:18:1;;;11141:47;11205:18;;12210:103:0;10888:341:1;14604:197:0;14696:41;14711:6;14719:9;14730:6;14696:14;:41::i;:::-;14693:101;;;14739:29;14754:13;;14739:14;:29::i;:::-;14790:1;14770:9;:22;14604:197;;;:::o;14809:160::-;-1:-1:-1;;;;;14915:19:0;;14890:4;14915:19;;;:11;:19;;;;;;;;14914:20;:47;;;;-1:-1:-1;;;;;;;14939:22:0;;;;;:11;:22;;;;;;;;14938:23;;14809:160;-1:-1:-1;14809:160:0:o;15474:432::-;15560:7;15616:1;15583:30;15595:6;15603:9;15583:11;:30::i;:::-;:34;15580:304;;;15629:17;15649:59;15677:30;15689:6;15697:9;15677:11;:30::i;:::-;15660:11;;15649:23;;:6;;:10;:23::i;:59::-;15764:4;15746:24;;;;:9;:24;;;;;;15629:79;;-1:-1:-1;15746:39:0;;15629:79;15746:28;:39::i;:::-;15737:4;15719:24;;;;:9;:24;;;;;;;:66;;;;15801:42;;-1:-1:-1;;;;;15801:42:0;;;;;;;15833:9;160:25:1;;148:2;133:18;;14:177;15801:42:0;;;;;;;;15861:21;:6;15872:9;15861:10;:21::i;:::-;15854:28;;;;;15580:304;-1:-1:-1;15892:6:0;15474:432;-1:-1:-1;;15474:432:0:o;155:82::-;213:7;230:5;234:1;230;:5;:::i;14196:400::-;14337:15;;14413:13;;14403:4;14294;7547:18;;;:9;:18;;;;;;14445:8;;14294:4;;14327:25;;;;-1:-1:-1;14385:41:0;;14445:8;;14444:9;:24;;;;-1:-1:-1;14457:11:0;;;;14444:24;:42;;;;-1:-1:-1;14472:14:0;;-1:-1:-1;;;14472:14:0;;;;14444:42;:54;;;;;14490:8;14444:54;:78;;;;-1:-1:-1;;;;;;14503:19:0;;;;;;:11;:19;;;;;;;;14502:20;14444:78;:99;;;;-1:-1:-1;14539:4:0;;-1:-1:-1;;;;;14526:17:0;;;14539:4;;14526:17;14444:99;:126;;;;;14568:1;14547:9;;:23;;14444:126;:144;;;;;14574:14;14444:144;14437:151;14196:400;-1:-1:-1;;;;;;14196:400:0:o;12329:1066::-;5890:8;:15;;-1:-1:-1;;5890:15:0;5901:4;5890:15;;;;;;12466:14:::1;::::0;12448:12:::1;::::0;12424::::1;::::0;5890:8;;12423:66:::1;::::0;12487:1:::1;::::0;12424:57:::1;::::0;12466:14;;12424:37:::1;::::0;;;:16:::1;:19::i;:::-;:23:::0;::::1;:37::i;12423:66::-;12400:89;;12500:32;12535:42;12564:12;12535:24;12546:12;;12535:6;:10;;:24;;;;:::i;:42::-;12500:77:::0;-1:-1:-1;12588:14:0::1;12605:36;:6:::0;12500:77;12605:10:::1;:36::i;:::-;12588:53:::0;-1:-1:-1;12677:21:0::1;12709:24;12588:53:::0;12709:16:::1;:24::i;:::-;12744:20;12767:41;:21;12793:14:::0;12767:25:::1;:41::i;:::-;12744:64;;12819:19;12840:48;12857:30;12874:12;;12857;:16;;:30;;;;:::i;:::-;12840:12:::0;;:16:::1;:48::i;:::-;12819:69;;12899:29;12931;12947:12;;12931:11;:15;;:29;;;;:::i;:::-;12899:61:::0;-1:-1:-1;12974:34:0;;12971:103:::1;;13010:61;13023:24;13049:21;13010:12;:61::i;:::-;13130:12;::::0;13084:20:::1;::::0;13107:36:::1;::::0;:18:::1;:11:::0;13123:1:::1;13107:15;:18::i;:36::-;13084:59:::0;-1:-1:-1;13157:16:0;;13154:73:::1;;13183:18;::::0;13175:50:::1;::::0;-1:-1:-1;;;;;13183:18:0;;::::1;::::0;13175:50;::::1;;;::::0;13212:12;;13183:18:::1;13175:50:::0;13183:18;13175:50;13212:12;13183:18;13175:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13154:73;13264:21;13299:29:::0;;13296:92:::1;;13338:20;::::0;13330:56:::1;::::0;-1:-1:-1;;;;;13338:20:0;;::::1;::::0;13330:56;::::1;;;::::0;13369:16;;13338:20:::1;13330:56:::0;13338:20;13330:56;13369:16;13338:20;13330:56;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13296:92;-1:-1:-1::0;;5910:8:0;:16;;-1:-1:-1;;5910:16:0;;;-1:-1:-1;;;;;;;;12329:1066:0:o;14977:219::-;15092:4;;15056:7;;-1:-1:-1;;;;;15092:4:0;;;15079:17;;;;15076:38;;-1:-1:-1;15105:7:0;;15098:14;;15076:38;15137:4;;-1:-1:-1;;;;;15137:4:0;;;15127:14;;;;15124:36;;-1:-1:-1;15150:8:0;;15143:15;;15124:36;-1:-1:-1;15177:11:0;;14977:219;;;;:::o;13754:434::-;13844:16;;;13858:1;13844:16;;;;;;;;13820:21;;13844:16;;;;;;;;;;-1:-1:-1;13844:16:0;13820:40;;13889:4;13871;13876:1;13871:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13871:23:0;;;:7;;;;;;;;;;:23;;;;13915:6;;:13;;;-1:-1:-1;;;13915:13:0;;;;:6;;;;;:11;;:13;;;;;13871:7;;13915:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13905:4;13910:1;13905:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13905:23:0;;;:7;;;;;;;;;:23;13971:6;;13939:53;;13956:4;;13971:6;13980:11;13939:8;:53::i;:::-;14003:6;;:177;;-1:-1:-1;;;14003:177:0;;-1:-1:-1;;;;;14003:6:0;;;;:57;;:177;;14075:11;;14003:6;;14117:4;;14144;;14164:15;;14003:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13403:343;13516:6;;13484:53;;13501:4;;-1:-1:-1;;;;;13516:6:0;13525:11;13484:8;:53::i;:::-;13548:6;;13689:18;;13548:190;;-1:-1:-1;;;13548:190:0;;13611:4;13548:190;;;13080:34:1;13130:18;;;13123:34;;;13548:6:0;13173:18:1;;;13166:34;;;13216:18;;;13209:34;-1:-1:-1;;;;;13689:18:0;;;13259:19:1;;;13252:44;13722:15:0;13312:19:1;;;13305:35;13548:6:0;;;:22;;13578:9;;13014:19:1;;13548:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13403:343;;:::o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:180::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;-1:-1:-1;2009:23:1;;1858:180;-1:-1:-1;1858:180:1:o;2043:247::-;2102:6;2155:2;2143:9;2134:7;2130:23;2126:32;2123:52;;;2171:1;2168;2161:12;2123:52;2210:9;2197:23;2229:31;2254:5;2229:31;:::i;2484:529::-;2561:6;2569;2577;2630:2;2618:9;2609:7;2605:23;2601:32;2598:52;;;2646:1;2643;2636:12;2598:52;2685:9;2672:23;2704:31;2729:5;2704:31;:::i;:::-;2754:5;-1:-1:-1;2811:2:1;2796:18;;2783:32;2824:33;2783:32;2824:33;:::i;:::-;2876:7;-1:-1:-1;2935:2:1;2920:18;;2907:32;2948:33;2907:32;2948:33;:::i;:::-;3000:7;2990:17;;;2484:529;;;;;:::o;3018:523::-;3122:6;3130;3138;3146;3154;3162;3215:3;3203:9;3194:7;3190:23;3186:33;3183:53;;;3232:1;3229;3222:12;3183:53;-1:-1:-1;;3255:23:1;;;3325:2;3310:18;;3297:32;;-1:-1:-1;3376:2:1;3361:18;;3348:32;;3427:2;3412:18;;3399:32;;-1:-1:-1;3478:3:1;3463:19;;3450:33;;-1:-1:-1;3530:3:1;3515:19;3502:33;;-1:-1:-1;3018:523:1;-1:-1:-1;3018:523:1:o;3546:316::-;3623:6;3631;3639;3692:2;3680:9;3671:7;3667:23;3663:32;3660:52;;;3708:1;3705;3698:12;3660:52;-1:-1:-1;;3731:23:1;;;3801:2;3786:18;;3773:32;;-1:-1:-1;3852:2:1;3837:18;;;3824:32;;3546:316;-1:-1:-1;3546:316:1:o;4075:416::-;4140:6;4148;4201:2;4189:9;4180:7;4176:23;4172:32;4169:52;;;4217:1;4214;4207:12;4169:52;4256:9;4243:23;4275:31;4300:5;4275:31;:::i;:::-;4325:5;-1:-1:-1;4382:2:1;4367:18;;4354:32;4424:15;;4417:23;4405:36;;4395:64;;4455:1;4452;4445:12;4395:64;4478:7;4468:17;;;4075:416;;;;;:::o;4496:388::-;4564:6;4572;4625:2;4613:9;4604:7;4600:23;4596:32;4593:52;;;4641:1;4638;4631:12;4593:52;4680:9;4667:23;4699:31;4724:5;4699:31;:::i;:::-;4749:5;-1:-1:-1;4806:2:1;4791:18;;4778:32;4819:33;4778:32;4819:33;:::i;5149:127::-;5210:10;5205:3;5201:20;5198:1;5191:31;5241:4;5238:1;5231:15;5265:4;5262:1;5255:15;5281:168;5354:9;;;5385;;5402:15;;;5396:22;;5382:37;5372:71;;5423:18;;:::i;5454:217::-;5494:1;5520;5510:132;;5564:10;5559:3;5555:20;5552:1;5545:31;5599:4;5596:1;5589:15;5627:4;5624:1;5617:15;5510:132;-1:-1:-1;5656:9:1;;5454:217::o;5676:329::-;5878:2;5860:21;;;5917:1;5897:18;;;5890:29;-1:-1:-1;;;5950:2:1;5935:18;;5928:36;5996:2;5981:18;;5676:329::o;8285:128::-;8352:9;;;8373:11;;;8370:37;;;8387:18;;:::i;10758:125::-;10823:9;;;10844:10;;;10841:36;;;10857:18;;:::i;11366:127::-;11427:10;11422:3;11418:20;11415:1;11408:31;11458:4;11455:1;11448:15;11482:4;11479:1;11472:15;11498:251;11568:6;11621:2;11609:9;11600:7;11596:23;11592:32;11589:52;;;11637:1;11634;11627:12;11589:52;11669:9;11663:16;11688:31;11713:5;11688:31;:::i;11754:980::-;12016:4;12064:3;12053:9;12049:19;12095:6;12084:9;12077:25;12121:2;12159:6;12154:2;12143:9;12139:18;12132:34;12202:3;12197:2;12186:9;12182:18;12175:31;12226:6;12261;12255:13;12292:6;12284;12277:22;12330:3;12319:9;12315:19;12308:26;;12369:2;12361:6;12357:15;12343:29;;12390:1;12400:195;12414:6;12411:1;12408:13;12400:195;;;12479:13;;-1:-1:-1;;;;;12475:39:1;12463:52;;12570:15;;;;12535:12;;;;12511:1;12429:9;12400:195;;;-1:-1:-1;;;;;;;12651:32:1;;;;12646:2;12631:18;;12624:60;-1:-1:-1;;;12715:3:1;12700:19;12693:35;12612:3;11754:980;-1:-1:-1;;;11754:980:1:o;13351:306::-;13439:6;13447;13455;13508:2;13496:9;13487:7;13483:23;13479:32;13476:52;;;13524:1;13521;13514:12;13476:52;13553:9;13547:16;13537:26;;13603:2;13592:9;13588:18;13582:25;13572:35;;13647:2;13636:9;13632:18;13626:25;13616:35;;13351:306;;;;;:::o

Swarm Source

ipfs://45203b08a13c62b36cf487944cb118f0adc5859ef929ecf0e330588ccdfa3c66

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.