ETH Price: $2,275.81 (-2.80%)

Contract

0xbd7860b49b4DE3e133B72dD0a6a8237d37011eE0
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve188532502023-12-24 4:27:11431 days ago1703392031IN
0xbd7860b4...d37011eE0
0 ETH0.0011700125.13846886
Approve182320422023-09-28 5:04:59518 days ago1695877499IN
0xbd7860b4...d37011eE0
0 ETH0.0006524414
Approve177227082023-07-18 21:12:59590 days ago1689714779IN
0xbd7860b4...d37011eE0
0 ETH0.0013781729.80292516
Approve176193812023-07-04 8:29:59604 days ago1688459399IN
0xbd7860b4...d37011eE0
0 ETH0.0009010519.33479355
Approve176193552023-07-04 8:24:47604 days ago1688459087IN
0xbd7860b4...d37011eE0
0 ETH0.0009320620
Approve175988602023-07-01 11:18:11607 days ago1688210291IN
0xbd7860b4...d37011eE0
0 ETH0.0009744920.91047072
Approve175823322023-06-29 3:38:11609 days ago1688009891IN
0xbd7860b4...d37011eE0
0 ETH0.0007938417.0342202
Approve175810432023-06-28 23:17:47610 days ago1687994267IN
0xbd7860b4...d37011eE0
0 ETH0.0007701616.54744797
Approve175810222023-06-28 23:13:35610 days ago1687994015IN
0xbd7860b4...d37011eE0
0 ETH0.0008380418.00581843
Approve175808872023-06-28 22:46:35610 days ago1687992395IN
0xbd7860b4...d37011eE0
0 ETH0.0010109721.72120994
Approve175806482023-06-28 21:58:47610 days ago1687989527IN
0xbd7860b4...d37011eE0
0 ETH0.0007438215.96097514
Approve175806422023-06-28 21:57:35610 days ago1687989455IN
0xbd7860b4...d37011eE0
0 ETH0.0008076517.33047942
Approve175793322023-06-28 17:33:35610 days ago1687973615IN
0xbd7860b4...d37011eE0
0 ETH0.0009324820.03488106
Approve175791892023-06-28 17:04:47610 days ago1687971887IN
0xbd7860b4...d37011eE0
0 ETH0.0011232124.10171442
Approve175789562023-06-28 16:17:59610 days ago1687969079IN
0xbd7860b4...d37011eE0
0 ETH0.0011956525.68927406
Approve175781162023-06-28 13:28:35610 days ago1687958915IN
0xbd7860b4...d37011eE0
0 ETH0.0007912317
Approve175780612023-06-28 13:17:35610 days ago1687958255IN
0xbd7860b4...d37011eE0
0 ETH0.0007774216.70327727
Approve175779522023-06-28 12:55:23610 days ago1687956923IN
0xbd7860b4...d37011eE0
0 ETH0.0008100317.49415116
Approve175779032023-06-28 12:45:35610 days ago1687956335IN
0xbd7860b4...d37011eE0
0 ETH0.0007348715.78907333
Approve175777922023-06-28 12:23:23610 days ago1687955003IN
0xbd7860b4...d37011eE0
0 ETH0.0004635315.9056928
Approve175777022023-06-28 12:05:11610 days ago1687953911IN
0xbd7860b4...d37011eE0
0 ETH0.0011174823.97880256
Approve175776842023-06-28 12:01:35610 days ago1687953695IN
0xbd7860b4...d37011eE0
0 ETH0.001203125.81611868
Approve175776792023-06-28 12:00:35610 days ago1687953635IN
0xbd7860b4...d37011eE0
0 ETH0.001240626.62067716
Approve175776772023-06-28 12:00:11610 days ago1687953611IN
0xbd7860b4...d37011eE0
0 ETH0.0010959323.51630996
Approve175776072023-06-28 11:45:59610 days ago1687952759IN
0xbd7860b4...d37011eE0
0 ETH0.0007499716.23502867
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
175766412023-06-28 8:30:59610 days ago1687941059
0xbd7860b4...d37011eE0
0.0155633 ETH
175766412023-06-28 8:30:59610 days ago1687941059
0xbd7860b4...d37011eE0
0.0155633 ETH
175766392023-06-28 8:30:35610 days ago1687941035
0xbd7860b4...d37011eE0
0.0165674 ETH
175766392023-06-28 8:30:35610 days ago1687941035
0xbd7860b4...d37011eE0
0.0165674 ETH
175766132023-06-28 8:25:11610 days ago1687940711
0xbd7860b4...d37011eE0
0.01624105 ETH
175766132023-06-28 8:25:11610 days ago1687940711
0xbd7860b4...d37011eE0
0.01624105 ETH
175765942023-06-28 8:21:23610 days ago1687940483
0xbd7860b4...d37011eE0
0.01819932 ETH
175765942023-06-28 8:21:23610 days ago1687940483
0xbd7860b4...d37011eE0
0.01819932 ETH
175765762023-06-28 8:17:47610 days ago1687940267
0xbd7860b4...d37011eE0
0.01932921 ETH
175765762023-06-28 8:17:47610 days ago1687940267
0xbd7860b4...d37011eE0
0.01932921 ETH
175765742023-06-28 8:17:23610 days ago1687940243
0xbd7860b4...d37011eE0
0.0203161 ETH
175765742023-06-28 8:17:23610 days ago1687940243
0xbd7860b4...d37011eE0
0.0203161 ETH
175765072023-06-28 8:03:23610 days ago1687939403
0xbd7860b4...d37011eE0
0.02094956 ETH
175765072023-06-28 8:03:23610 days ago1687939403
0xbd7860b4...d37011eE0
0.02094956 ETH
175764962023-06-28 8:01:11610 days ago1687939271
0xbd7860b4...d37011eE0
0.02125521 ETH
175764962023-06-28 8:01:11610 days ago1687939271
0xbd7860b4...d37011eE0
0.02125521 ETH
175764942023-06-28 8:00:47610 days ago1687939247
0xbd7860b4...d37011eE0
0.02288328 ETH
175764942023-06-28 8:00:47610 days ago1687939247
0xbd7860b4...d37011eE0
0.02288328 ETH
175764902023-06-28 7:59:59610 days ago1687939199
0xbd7860b4...d37011eE0
0.02467627 ETH
175764902023-06-28 7:59:59610 days ago1687939199
0xbd7860b4...d37011eE0
0.02467627 ETH
175764662023-06-28 7:55:11610 days ago1687938911
0xbd7860b4...d37011eE0
0.02140939 ETH
175764662023-06-28 7:55:11610 days ago1687938911
0xbd7860b4...d37011eE0
0.02140939 ETH
175764612023-06-28 7:54:11610 days ago1687938851
0xbd7860b4...d37011eE0
0.02116475 ETH
175764612023-06-28 7:54:11610 days ago1687938851
0xbd7860b4...d37011eE0
0.02116475 ETH
175764602023-06-28 7:53:59610 days ago1687938839
0xbd7860b4...d37011eE0
0.02261414 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GOODIDEAAI

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-06-28
*/

/**

/ Good Idea Ai
// Finally, Artificial Intelligence can be put to $GOOD use.

/ Ticker: $GOOD

/ https://goodideai.org/

// https://twitter.com/goodideaaierc

/ https://t.me/goodideaai

*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.16;


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 GOODIDEAAI is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = 'GOOD IDEA AI';
    string private constant _symbol = 'GOOD';
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 600000000 * (10 ** _decimals);
    uint256 private _maxTxAmountPercent = 200; // 10000;
    uint256 private _maxTransferPercent = 200;
    uint256 private _maxWalletPercent = 300;
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) private isBot;
    IRouter router;
    address public pair;
    bool private tradingAllowed = false;
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 0;
    uint256 private developmentFee = 1000;
    uint256 private burnFee = 0;
    uint256 private totalFee = 3000;
    uint256 private sellFee = 7000;
    uint256 private transferFee = 9000;
    uint256 private denominator = 10000;
    bool private swapEnabled = true;
    uint256 private swapTimes;
    bool private swapping;
    uint256 swapAmount = 4;
    uint256 private swapThreshold = ( _totalSupply * 1000 ) / 100000;
    uint256 private minTokenAmount = ( _totalSupply * 10 ) / 100000;
    modifier lockTheSwap {swapping = true; _; swapping = false;}

    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal constant development_receiver = 0x95966A62ce8556d1f97508136c49cCd1b97A5098; 
    address internal constant marketing_receiver = 0x95966A62ce8556d1f97508136c49cCd1b97A5098;
    address internal constant liquidity_receiver = 0x95966A62ce8556d1f97508136c49cCd1b97A5098;

    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[marketing_receiver] = 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 startTrading() 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 setisBot(address _address, bool _enabled) external onlyOwner {isBot[_address] = _enabled;}
    function setisExempt(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(DEAD)).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 setStructure(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        liquidityFee = _liquidity;
        marketingFee = _marketing;
        burnFee = _burn;
        developmentFee = _development;
        totalFee = _total;
        sellFee = _sell;
        transferFee = _trans;
        require(totalFee <= denominator.div(1) && sellFee <= denominator.div(1), "totalFee and sellFee cannot be more than 20%");
    }

    function setParameters(uint256 _buy, uint256 _trans, uint256 _wallet) external onlyOwner {
        uint256 newTx = (totalSupply() * _buy) / 10000;
        uint256 newTransfer = (totalSupply() * _trans) / 10000;
        uint256 newWallet = (totalSupply() * _wallet) / 10000;
        _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 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 >= swapAmount && aboveThreshold;
    }

    function setSwapbackSettings(uint256 _swapAmount, uint256 _swapThreshold, uint256 _minTokenAmount) external onlyOwner {
        swapAmount = _swapAmount; swapThreshold = _totalSupply.mul(_swapThreshold).div(uint256(100000)); 
        minTokenAmount = _totalSupply.mul(_minTokenAmount).div(uint256(100000));
    }

    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(isBot[sender] || isBot[recipient]){return denominator.sub(uint256(100));}
        if(recipient == pair){return sellFee;}
        if(sender == pair){return totalFee;}
        return transferFee;
    }

    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);
        if(burnFee > uint256(0)){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));}
        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

API
[{"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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_burn","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":"setStructure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapAmount","type":"uint256"},{"internalType":"uint256","name":"_swapThreshold","type":"uint256"},{"internalType":"uint256","name":"_minTokenAmount","type":"uint256"}],"name":"setSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","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"}]

6080604052620000126009600a62000437565b62000022906323c346006200044f565b600181815560c8600281905560035561012c6004908155600a805460ff60a01b191690556000600b819055600c8190556103e8600d819055600e91909155610bb8600f55611b586010556123286011556127106012556013805460ff1916909317909255601655620186a09162000099916200044f565b620000a5919062000471565b601755620186a0600154600a620000bd91906200044f565b620000c9919062000471565b601855348015620000d957600080fd5b50600080546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa15801562000141573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000167919062000494565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001db919062000494565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000229573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024f919062000494565b600980546001600160a01b038581166001600160a01b031992831617909255600a805492841692909116919091179055306000908152600760209081526040808320805460ff1990811660019081179092557f23ef1c7b25d4aa868c5f372ec90ac53bbdddee30f8943ee819175b87bd41fec28054821683179055338086528386208054909216831790915590546005845282852081905591519182529394507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050620004bf565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003795781600019048211156200035d576200035d62000322565b808516156200036b57918102915b93841c93908002906200033d565b509250929050565b600082620003925750600162000431565b81620003a15750600062000431565b8160018114620003ba5760028114620003c557620003e5565b600191505062000431565b60ff841115620003d957620003d962000322565b50506001821b62000431565b5060208310610133831016604e8410600b84101617156200040a575081810a62000431565b62000416838362000338565b80600019048211156200042d576200042d62000322565b0290505b92915050565b60006200044860ff84168362000381565b9392505050565b60008160001904831182151516156200046c576200046c62000322565b500290565b6000826200048f57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620004a757600080fd5b81516001600160a01b03811681146200044857600080fd5b611b5b80620004cf6000396000f3fe6080604052600436106101445760003560e01c806348ff2b8b116100b657806395d89b411161006f57806395d89b41146103c3578063a8aa1b31146103f0578063a9059cbb14610410578063dd62ed3e14610430578063e94dd17c14610476578063f2fde38b1461049657600080fd5b806348ff2b8b146102f157806370a082311461031157806378109e54146103475780637d1db4a51461035c578063893d20e8146103715780638c41180e146103a357600080fd5b806323b872dd1161010857806323b872dd14610221578063293230b8146102415780632f54bf6e14610256578063313ce5671461028557806334c5d2ce146102a15780633f4218e0146102c157600080fd5b8063044019301461015057806306fdde0314610172578063095ea7b3146101b957806318160ddd146101e95780631f976b7e1461020c57600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5061017061016b3660046117ba565b6104b6565b005b34801561017e57600080fd5b5060408051808201909152600c81526b474f4f44204944454120414960a01b60208201525b6040516101b09190611806565b60405180910390f35b3480156101c557600080fd5b506101d96101d436600461186c565b6105a4565b60405190151581526020016101b0565b3480156101f557600080fd5b506101fe6105bb565b6040519081526020016101b0565b34801561021857600080fd5b506101fe61062c565b34801561022d57600080fd5b506101d961023c366004611898565b610650565b34801561024d57600080fd5b506101706106ba565b34801561026257600080fd5b506101d96102713660046118d9565b6000546001600160a01b0391821691161490565b34801561029157600080fd5b50604051600981526020016101b0565b3480156102ad57600080fd5b506101706102bc3660046118f6565b6106f9565b3480156102cd57600080fd5b506101d96102dc3660046118d9565b60076020526000908152604090205460ff1681565b3480156102fd57600080fd5b5061017061030c366004611922565b610840565b34801561031d57600080fd5b506101fe61032c3660046118d9565b6001600160a01b031660009081526005602052604090205490565b34801561035357600080fd5b506101fe610895565b34801561036857600080fd5b506101fe6108a5565b34801561037d57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101b0565b3480156103af57600080fd5b506101706103be366004611922565b6108b5565b3480156103cf57600080fd5b5060408051808201909152600481526311d3d3d160e21b60208201526101a3565b3480156103fc57600080fd5b50600a5461038b906001600160a01b031681565b34801561041c57600080fd5b506101d961042b36600461186c565b61090a565b34801561043c57600080fd5b506101fe61044b366004611960565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561048257600080fd5b506101706104913660046118f6565b610917565b3480156104a257600080fd5b506101706104b13660046118d9565b61097d565b6000546001600160a01b031633146104e95760405162461bcd60e51b81526004016104e09061198e565b60405180910390fd5b600b879055600c869055600e859055600d849055600f8390556010829055601181905560125461051a9060016109fb565b600f541115801561053a57506012546105349060016109fb565b60105411155b61059b5760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b60648201526084016104e0565b50505050505050565b60006105b1338484610a07565b5060015b92915050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead60009081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba5460015491926106279290916106219190610b2b565b90610b2b565b905090565b600060125460035461063c6105bb565b61064691906119c4565b61062791906119e3565b600061065d848484610b37565b6106af84336106aa85604051806060016040528060288152602001611afe602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190610c5d565b610a07565b5060015b9392505050565b6000546001600160a01b031633146106e45760405162461bcd60e51b81526004016104e09061198e565b600a805460ff60a01b1916600160a01b179055565b6000546001600160a01b031633146107235760405162461bcd60e51b81526004016104e09061198e565b6000612710846107316105bb565b61073b91906119c4565b61074591906119e3565b90506000612710846107556105bb565b61075f91906119c4565b61076991906119e3565b90506000612710846107796105bb565b61078391906119c4565b61078d91906119e3565b600287905560038690556004859055905060006107bf6103e86107b960056107b36105bb565b90610c89565b906109fb565b90508084101580156107d15750808310155b80156107dd5750808210155b61059b5760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b60648201526084016104e0565b6000546001600160a01b0316331461086a5760405162461bcd60e51b81526004016104e09061198e565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b600060125460045461063c6105bb565b600060125460025461063c6105bb565b6000546001600160a01b031633146108df5760405162461bcd60e51b81526004016104e09061198e565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b60006105b1338484610b37565b6000546001600160a01b031633146109415760405162461bcd60e51b81526004016104e09061198e565b601683905560015461095c90620186a0906107b99085610c89565b60175560015461097590620186a0906107b99084610c89565b601855505050565b6000546001600160a01b031633146109a75760405162461bcd60e51b81526004016104e09061198e565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b60006106b382846119e3565b6001600160a01b038316610a695760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104e0565b6001600160a01b038216610aca5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104e0565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006106b38284611a05565b610b42838383610c95565b610b4c8383610e44565b610b57838383610ed9565b610b618383610fca565b610b6c838383611021565b610b77838383611158565b6001600160a01b038316600090815260056020526040902054610b9a9082610b2b565b6001600160a01b038416600090815260056020526040812091909155610bc0848461117d565b610bca5781610bd5565b610bd58484846111c3565b6001600160a01b038416600090815260056020526040902054909150610bfb90826112b1565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c4f9085815260200190565b60405180910390a350505050565b60008184841115610c815760405162461bcd60e51b81526004016104e09190611806565b505050900390565b60006106b382846119c4565b6001600160a01b038316610cf95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104e0565b6001600160a01b038216610d5b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104e0565b60008111610dbd5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104e0565b6001600160a01b038316600090815260056020526040902054811115610e3f5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016104e0565b505050565b6001600160a01b03821660009081526007602052604090205460ff16158015610e8657506001600160a01b03811660009081526007602052604090205460ff16155b15610ed557600a54600160a01b900460ff16610ed55760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b60448201526064016104e0565b5050565b6001600160a01b03831660009081526007602052604090205460ff16158015610f1b57506001600160a01b03821660009081526007602052604090205460ff16155b8015610f355750600a546001600160a01b03838116911614155b8015610f4c57506001600160a01b03821661dead14155b15610e3f57610f59610895565b6001600160a01b038316600090815260056020526040902054610f7c90836112b1565b1115610e3f5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016104e0565b600a546001600160a01b03828116911614801561100057506001600160a01b03821660009081526007602052604090205460ff16155b15610ed5576001601460008282546110189190611a18565b90915550505050565b600a546001600160a01b038481169116146110c75761103e61062c565b8111158061106457506001600160a01b03831660009081526007602052604090205460ff165b8061108757506001600160a01b03821660009081526007602052604090205460ff165b6110c75760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016104e0565b6110cf6108a5565b811115806110f557506001600160a01b03831660009081526007602052604090205460ff165b8061111857506001600160a01b03821660009081526007602052604090205460ff165b610e3f5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016104e0565b6111638383836112bd565b15610e3f57611173601754611370565b6000601455505050565b6001600160a01b03821660009081526007602052604081205460ff161580156106b35750506001600160a01b031660009081526007602052604090205460ff1615919050565b6000806111d085856114fb565b11156112aa5760006111f36111e586866114fb565b6012546107b39086906109fb565b3060009081526005602052604090205490915061121090826112b1565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112619085815260200190565b60405180910390a3600e5415611298576112983061dead611293600e546107b3601254896109fb90919063ffffffff16565b610b37565b6112a28382610b2b565b9150506106b3565b5092915050565b60006106b38284611a18565b6018546017543060009081526005602052604081205460155491938510159211159060ff161580156112f1575060135460ff165b80156113065750600a54600160a01b900460ff165b801561130f5750815b801561133457506001600160a01b03861660009081526007602052604090205460ff16155b801561134d5750600a546001600160a01b038681169116145b801561135d575060165460145410155b80156113665750805b9695505050505050565b6015805460ff19166001908117909155600d54600c54600b546000936113aa936002936107b39391926113a49283916112b1565b906112b1565b905060006113c7826107b9600b5486610c8990919063ffffffff16565b905060006113d58483610b2b565b9050476113e18261159c565b60006113ed4783610b2b565b90506000611410611409600b5488610b2b90919063ffffffff16565b83906109fb565b90506000611429600b5483610c8990919063ffffffff16565b9050801561143b5761143b86826116f6565b600c54600090611450906107b3856002610c89565b9050801561149b576040517395966a62ce8556d1f97508136c49ccd1b97a50989082156108fc029083906000818181858888f19350505050158015611499573d6000803e3d6000fd5b505b4780156114e5576040517395966a62ce8556d1f97508136c49ccd1b97a50989082156108fc029083906000818181858888f193505050501580156114e3573d6000803e3d6000fd5b505b50506015805460ff191690555050505050505050565b6001600160a01b03821660009081526008602052604081205460ff168061153a57506001600160a01b03821660009081526008602052604090205460ff165b156115545760125461154d906064610b2b565b90506105b5565b600a546001600160a01b039081169083160361157357506010546105b5565b600a546001600160a01b03908116908416036115925750600f546105b5565b5060115492915050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106115d1576115d1611a2b565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561162a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164e9190611a41565b8160018151811061166157611661611a2b565b6001600160a01b0392831660209182029290920101526009546116879130911684610a07565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac947906116c0908590600090869030904290600401611a5e565b600060405180830381600087803b1580156116da57600080fd5b505af11580156116ee573d6000803e3d6000fd5b505050505050565b60095461170e9030906001600160a01b031684610a07565b60095460405163f305d71960e01b81523060048201526024810184905260006044820181905260648201527395966a62ce8556d1f97508136c49ccd1b97a509860848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af115801561178e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117b39190611acf565b5050505050565b600080600080600080600060e0888a0312156117d557600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b600060208083528351808285015260005b8181101561183357858101830151858201604001528201611817565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461186957600080fd5b50565b6000806040838503121561187f57600080fd5b823561188a81611854565b946020939093013593505050565b6000806000606084860312156118ad57600080fd5b83356118b881611854565b925060208401356118c881611854565b929592945050506040919091013590565b6000602082840312156118eb57600080fd5b81356106b381611854565b60008060006060848603121561190b57600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561193557600080fd5b823561194081611854565b91506020830135801515811461195557600080fd5b809150509250929050565b6000806040838503121561197357600080fd5b823561197e81611854565b9150602083013561195581611854565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156119de576119de6119ae565b500290565b600082611a0057634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156105b5576105b56119ae565b808201808211156105b5576105b56119ae565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a5357600080fd5b81516106b381611854565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611aae5784516001600160a01b031683529383019391830191600101611a89565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611ae457600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fc2c08b38f8617d561d6e8156e37c4517285efbdf15d60056eadb910f6de081f64736f6c63430008100033

Deployed Bytecode

0x6080604052600436106101445760003560e01c806348ff2b8b116100b657806395d89b411161006f57806395d89b41146103c3578063a8aa1b31146103f0578063a9059cbb14610410578063dd62ed3e14610430578063e94dd17c14610476578063f2fde38b1461049657600080fd5b806348ff2b8b146102f157806370a082311461031157806378109e54146103475780637d1db4a51461035c578063893d20e8146103715780638c41180e146103a357600080fd5b806323b872dd1161010857806323b872dd14610221578063293230b8146102415780632f54bf6e14610256578063313ce5671461028557806334c5d2ce146102a15780633f4218e0146102c157600080fd5b8063044019301461015057806306fdde0314610172578063095ea7b3146101b957806318160ddd146101e95780631f976b7e1461020c57600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5061017061016b3660046117ba565b6104b6565b005b34801561017e57600080fd5b5060408051808201909152600c81526b474f4f44204944454120414960a01b60208201525b6040516101b09190611806565b60405180910390f35b3480156101c557600080fd5b506101d96101d436600461186c565b6105a4565b60405190151581526020016101b0565b3480156101f557600080fd5b506101fe6105bb565b6040519081526020016101b0565b34801561021857600080fd5b506101fe61062c565b34801561022d57600080fd5b506101d961023c366004611898565b610650565b34801561024d57600080fd5b506101706106ba565b34801561026257600080fd5b506101d96102713660046118d9565b6000546001600160a01b0391821691161490565b34801561029157600080fd5b50604051600981526020016101b0565b3480156102ad57600080fd5b506101706102bc3660046118f6565b6106f9565b3480156102cd57600080fd5b506101d96102dc3660046118d9565b60076020526000908152604090205460ff1681565b3480156102fd57600080fd5b5061017061030c366004611922565b610840565b34801561031d57600080fd5b506101fe61032c3660046118d9565b6001600160a01b031660009081526005602052604090205490565b34801561035357600080fd5b506101fe610895565b34801561036857600080fd5b506101fe6108a5565b34801561037d57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101b0565b3480156103af57600080fd5b506101706103be366004611922565b6108b5565b3480156103cf57600080fd5b5060408051808201909152600481526311d3d3d160e21b60208201526101a3565b3480156103fc57600080fd5b50600a5461038b906001600160a01b031681565b34801561041c57600080fd5b506101d961042b36600461186c565b61090a565b34801561043c57600080fd5b506101fe61044b366004611960565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561048257600080fd5b506101706104913660046118f6565b610917565b3480156104a257600080fd5b506101706104b13660046118d9565b61097d565b6000546001600160a01b031633146104e95760405162461bcd60e51b81526004016104e09061198e565b60405180910390fd5b600b879055600c869055600e859055600d849055600f8390556010829055601181905560125461051a9060016109fb565b600f541115801561053a57506012546105349060016109fb565b60105411155b61059b5760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b60648201526084016104e0565b50505050505050565b60006105b1338484610a07565b5060015b92915050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead60009081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba5460015491926106279290916106219190610b2b565b90610b2b565b905090565b600060125460035461063c6105bb565b61064691906119c4565b61062791906119e3565b600061065d848484610b37565b6106af84336106aa85604051806060016040528060288152602001611afe602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190610c5d565b610a07565b5060015b9392505050565b6000546001600160a01b031633146106e45760405162461bcd60e51b81526004016104e09061198e565b600a805460ff60a01b1916600160a01b179055565b6000546001600160a01b031633146107235760405162461bcd60e51b81526004016104e09061198e565b6000612710846107316105bb565b61073b91906119c4565b61074591906119e3565b90506000612710846107556105bb565b61075f91906119c4565b61076991906119e3565b90506000612710846107796105bb565b61078391906119c4565b61078d91906119e3565b600287905560038690556004859055905060006107bf6103e86107b960056107b36105bb565b90610c89565b906109fb565b90508084101580156107d15750808310155b80156107dd5750808210155b61059b5760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b60648201526084016104e0565b6000546001600160a01b0316331461086a5760405162461bcd60e51b81526004016104e09061198e565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b600060125460045461063c6105bb565b600060125460025461063c6105bb565b6000546001600160a01b031633146108df5760405162461bcd60e51b81526004016104e09061198e565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b60006105b1338484610b37565b6000546001600160a01b031633146109415760405162461bcd60e51b81526004016104e09061198e565b601683905560015461095c90620186a0906107b99085610c89565b60175560015461097590620186a0906107b99084610c89565b601855505050565b6000546001600160a01b031633146109a75760405162461bcd60e51b81526004016104e09061198e565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b60006106b382846119e3565b6001600160a01b038316610a695760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104e0565b6001600160a01b038216610aca5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104e0565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006106b38284611a05565b610b42838383610c95565b610b4c8383610e44565b610b57838383610ed9565b610b618383610fca565b610b6c838383611021565b610b77838383611158565b6001600160a01b038316600090815260056020526040902054610b9a9082610b2b565b6001600160a01b038416600090815260056020526040812091909155610bc0848461117d565b610bca5781610bd5565b610bd58484846111c3565b6001600160a01b038416600090815260056020526040902054909150610bfb90826112b1565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c4f9085815260200190565b60405180910390a350505050565b60008184841115610c815760405162461bcd60e51b81526004016104e09190611806565b505050900390565b60006106b382846119c4565b6001600160a01b038316610cf95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104e0565b6001600160a01b038216610d5b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104e0565b60008111610dbd5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104e0565b6001600160a01b038316600090815260056020526040902054811115610e3f5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016104e0565b505050565b6001600160a01b03821660009081526007602052604090205460ff16158015610e8657506001600160a01b03811660009081526007602052604090205460ff16155b15610ed557600a54600160a01b900460ff16610ed55760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b60448201526064016104e0565b5050565b6001600160a01b03831660009081526007602052604090205460ff16158015610f1b57506001600160a01b03821660009081526007602052604090205460ff16155b8015610f355750600a546001600160a01b03838116911614155b8015610f4c57506001600160a01b03821661dead14155b15610e3f57610f59610895565b6001600160a01b038316600090815260056020526040902054610f7c90836112b1565b1115610e3f5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016104e0565b600a546001600160a01b03828116911614801561100057506001600160a01b03821660009081526007602052604090205460ff16155b15610ed5576001601460008282546110189190611a18565b90915550505050565b600a546001600160a01b038481169116146110c75761103e61062c565b8111158061106457506001600160a01b03831660009081526007602052604090205460ff165b8061108757506001600160a01b03821660009081526007602052604090205460ff165b6110c75760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016104e0565b6110cf6108a5565b811115806110f557506001600160a01b03831660009081526007602052604090205460ff165b8061111857506001600160a01b03821660009081526007602052604090205460ff165b610e3f5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016104e0565b6111638383836112bd565b15610e3f57611173601754611370565b6000601455505050565b6001600160a01b03821660009081526007602052604081205460ff161580156106b35750506001600160a01b031660009081526007602052604090205460ff1615919050565b6000806111d085856114fb565b11156112aa5760006111f36111e586866114fb565b6012546107b39086906109fb565b3060009081526005602052604090205490915061121090826112b1565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112619085815260200190565b60405180910390a3600e5415611298576112983061dead611293600e546107b3601254896109fb90919063ffffffff16565b610b37565b6112a28382610b2b565b9150506106b3565b5092915050565b60006106b38284611a18565b6018546017543060009081526005602052604081205460155491938510159211159060ff161580156112f1575060135460ff165b80156113065750600a54600160a01b900460ff165b801561130f5750815b801561133457506001600160a01b03861660009081526007602052604090205460ff16155b801561134d5750600a546001600160a01b038681169116145b801561135d575060165460145410155b80156113665750805b9695505050505050565b6015805460ff19166001908117909155600d54600c54600b546000936113aa936002936107b39391926113a49283916112b1565b906112b1565b905060006113c7826107b9600b5486610c8990919063ffffffff16565b905060006113d58483610b2b565b9050476113e18261159c565b60006113ed4783610b2b565b90506000611410611409600b5488610b2b90919063ffffffff16565b83906109fb565b90506000611429600b5483610c8990919063ffffffff16565b9050801561143b5761143b86826116f6565b600c54600090611450906107b3856002610c89565b9050801561149b576040517395966a62ce8556d1f97508136c49ccd1b97a50989082156108fc029083906000818181858888f19350505050158015611499573d6000803e3d6000fd5b505b4780156114e5576040517395966a62ce8556d1f97508136c49ccd1b97a50989082156108fc029083906000818181858888f193505050501580156114e3573d6000803e3d6000fd5b505b50506015805460ff191690555050505050505050565b6001600160a01b03821660009081526008602052604081205460ff168061153a57506001600160a01b03821660009081526008602052604090205460ff165b156115545760125461154d906064610b2b565b90506105b5565b600a546001600160a01b039081169083160361157357506010546105b5565b600a546001600160a01b03908116908416036115925750600f546105b5565b5060115492915050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106115d1576115d1611a2b565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561162a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164e9190611a41565b8160018151811061166157611661611a2b565b6001600160a01b0392831660209182029290920101526009546116879130911684610a07565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac947906116c0908590600090869030904290600401611a5e565b600060405180830381600087803b1580156116da57600080fd5b505af11580156116ee573d6000803e3d6000fd5b505050505050565b60095461170e9030906001600160a01b031684610a07565b60095460405163f305d71960e01b81523060048201526024810184905260006044820181905260648201527395966a62ce8556d1f97508136c49ccd1b97a509860848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af115801561178e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117b39190611acf565b5050505050565b600080600080600080600060e0888a0312156117d557600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b600060208083528351808285015260005b8181101561183357858101830151858201604001528201611817565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461186957600080fd5b50565b6000806040838503121561187f57600080fd5b823561188a81611854565b946020939093013593505050565b6000806000606084860312156118ad57600080fd5b83356118b881611854565b925060208401356118c881611854565b929592945050506040919091013590565b6000602082840312156118eb57600080fd5b81356106b381611854565b60008060006060848603121561190b57600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561193557600080fd5b823561194081611854565b91506020830135801515811461195557600080fd5b809150509250929050565b6000806040838503121561197357600080fd5b823561197e81611854565b9150602083013561195581611854565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156119de576119de6119ae565b500290565b600082611a0057634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156105b5576105b56119ae565b808201808211156105b5576105b56119ae565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a5357600080fd5b81516106b381611854565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611aae5784516001600160a01b031683529383019391830191600101611a89565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611ae457600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fc2c08b38f8617d561d6e8156e37c4517285efbdf15d60056eadb910f6de081f64736f6c63430008100033

Deployed Bytecode Sourcemap

4819:11969:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10099:527;;;;;;;;;;-1:-1:-1;10099:527:0;;;;;:::i;:::-;;:::i;:::-;;7195:67;;;;;;;;;;-1:-1:-1;7255:5:0;;;;;;;;;;;;-1:-1:-1;;;7255:5:0;;;;7195:67;;;;;;;:::i;:::-;;;;;;;;8315:133;;;;;;;;;;-1:-1:-1;8315:133:0;;;;;:::i;:::-;;:::i;:::-;;;1785:14:1;;1778:22;1760:41;;1748:2;1733:18;8315:133:0;1620:187:1;8454:132:0;;;;;;;;;;;;;:::i;:::-;;;1958:25:1;;;1946:2;1931:18;8454:132:0;1812:177:1;8831:119:0;;;;;;;;;;;;;:::i;16131:309::-;;;;;;;;;;-1:-1:-1;16131:309:0;;;;;:::i;:::-;;:::i;7418:67::-;;;;;;;;;;;;;:::i;3199:87::-;;;;;;;;;;-1:-1:-1;3199:87:0;;;;;:::i;:::-;3254:4;3279:5;-1:-1:-1;;;;;3268:16:0;;;3279:5;;3268:16;;3199:87;7345:67;;;;;;;;;;-1:-1:-1;7345:67:0;;5033:1;2849:36:1;;2837:2;2822:18;7345:67:0;2707:184:1;10634:584:0;;;;;;;;;;-1:-1:-1;10634:584:0;;;;;:::i;:::-;;:::i;5381:44::-;;;;;;;;;;-1:-1:-1;5381:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8201:108;;;;;;;;;;-1:-1:-1;8201:108:0;;;;;:::i;:::-;;:::i;7575:103::-;;;;;;;;;;-1:-1:-1;7575:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;7658:18:0;7641:7;7658:18;;;:9;:18;;;;;;;7575:103;8592:114;;;;;;;;;;;;;:::i;8712:113::-;;;;;;;;;;;;;:::i;7491:78::-;;;;;;;;;;-1:-1:-1;7543:7:0;7561:5;-1:-1:-1;;;;;7561:5:0;7491:78;;;-1:-1:-1;;;;;3802:32:1;;;3784:51;;3772:2;3757:18;7491:78:0;3638:203:1;8096:99:0;;;;;;;;;;-1:-1:-1;8096:99:0;;;;;:::i;:::-;;:::i;7268:71::-;;;;;;;;;;-1:-1:-1;7330:7:0;;;;;;;;;;;;-1:-1:-1;;;7330:7:0;;;;7268:71;;5499:19;;;;;;;;;;-1:-1:-1;5499:19:0;;;;-1:-1:-1;;;;;5499:19:0;;;7684:139;;;;;;;;;;-1:-1:-1;7684:139:0;;;;;:::i;:::-;;:::i;7829:127::-;;;;;;;;;;-1:-1:-1;7829:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;7927:18:0;;;7910:7;7927:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7829:127;14568:315;;;;;;;;;;-1:-1:-1;14568:315:0;;;;;:::i;:::-;;:::i;3292:111::-;;;;;;;;;;-1:-1:-1;3292:111:0;;;;;:::i;:::-;;:::i;10099:527::-;3254:4;3279:5;-1:-1:-1;;;;;3279:5:0;3166:10;3268:16;3150:38;;;;-1:-1:-1;;;3150:38:0;;;;;;;:::i;:::-;;;;;;;;;10275:12:::1;:25:::0;;;10311:12:::1;:25:::0;;;10347:7:::1;:15:::0;;;10373:14:::1;:29:::0;;;10413:8:::1;:17:::0;;;10441:7:::1;:15:::0;;;10467:11:::1;:20:::0;;;10518:11:::1;::::0;:18:::1;::::0;-1:-1:-1;10518:15:0::1;:18::i;:::-;10506:8;;:30;;:63;;;;-1:-1:-1::0;10551:11:0::1;::::0;:18:::1;::::0;10567:1:::1;10551:15;:18::i;:::-;10540:7;;:29;;10506:63;10498:120;;;::::0;-1:-1:-1;;;10498:120:0;;5035:2:1;10498:120:0::1;::::0;::::1;5017:21:1::0;5074:2;5054:18;;;5047:30;5113:34;5093:18;;;5086:62;-1:-1:-1;;;5164:18:1;;;5157:42;5216:19;;10498:120:0::1;4833:408:1::0;10498:120:0::1;10099:527:::0;;;;;;;:::o;8315:133::-;8390:4;8397:37;8406:10;8418:7;8427:6;8397:8;:37::i;:::-;-1:-1:-1;8442:4:0;8315:133;;;;;:::o;8454:132::-;7658:9;:18;;;;6250:42;8507:7;7658:18;;;;;8524:12;;8507:7;;8524:60;;7658:18;;8524:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;8517:67;;8454:132;:::o;8831:119::-;8882:7;8937:11;;8915:19;;8899:13;:11;:13::i;:::-;:35;;;;:::i;:::-;:49;;;;:::i;16131:309::-;16229:4;16246:36;16256:6;16264:9;16275:6;16246:9;:36::i;:::-;16293:117;16302:6;16310:10;16322:87;16358:6;16322:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16322:19:0;;;;;;:11;:19;;;;;;;;16342:10;16322:31;;;;;;;;;:87;:35;:87::i;:::-;16293:8;:117::i;:::-;-1:-1:-1;16428:4:0;16131:309;;;;;;:::o;7418:67::-;3254:4;3279:5;-1:-1:-1;;;;;3279:5:0;3166:10;3268:16;3150:38;;;;-1:-1:-1;;;3150:38:0;;;;;;;:::i;:::-;7462:14:::1;:21:::0;;-1:-1:-1;;;;7462:21:0::1;-1:-1:-1::0;;;7462:21:0::1;::::0;;7418:67::o;10634:584::-;3254:4;3279:5;-1:-1:-1;;;;;3279:5:0;3166:10;3268:16;3150:38;;;;-1:-1:-1;;;3150:38:0;;;;;;;:::i;:::-;10734:13:::1;10775:5;10767:4;10751:13;:11;:13::i;:::-;:20;;;;:::i;:::-;10750:30;;;;:::i;:::-;10734:46;;10791:19;10840:5;10830:6;10814:13;:11;:13::i;:::-;:22;;;;:::i;:::-;10813:32;;;;:::i;:::-;10791:54;;10856:17;10904:5;10893:7;10877:13;:11;:13::i;:::-;:23;;;;:::i;:::-;10876:33;;;;:::i;:::-;10920:19;:26:::0;;;10957:19:::1;:28:::0;;;10996:17:::1;:27:::0;;;10856:53;-1:-1:-1;;11050:30:0::1;11075:4;11050:20;11068:1;11050:13;:11;:13::i;:::-;:17:::0;::::1;:20::i;:::-;:24:::0;::::1;:30::i;:::-;11034:46;;11108:5;11099;:14;;:38;;;;;11132:5;11117:11;:20;;11099:38;:60;;;;;11154:5;11141:9;:18;;11099:60;11091:119;;;::::0;-1:-1:-1;;;11091:119:0;;5975:2:1;11091:119:0::1;::::0;::::1;5957:21:1::0;6014:2;5994:18;;;5987:30;6053:34;6033:18;;;6026:62;-1:-1:-1;;;6104:18:1;;;6097:44;6158:19;;11091:119:0::1;5773:410:1::0;8201:108:0;3254:4;3279:5;-1:-1:-1;;;;;3279:5:0;3166:10;3268:16;3150:38;;;;-1:-1:-1;;;3150:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8275:21:0;;;::::1;;::::0;;;:11:::1;:21;::::0;;;;:32;;-1:-1:-1;;8275:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8201:108::o;8592:114::-;8640:7;8693:11;;8673:17;;8657:13;:11;:13::i;8712:113::-;8757:7;8812:11;;8790:19;;8774:13;:11;:13::i;8096:99::-;3254:4;3279:5;-1:-1:-1;;;;;3279:5:0;3166:10;3268:16;3150:38;;;;-1:-1:-1;;;3150:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8167:15:0;;;::::1;;::::0;;;:5:::1;:15;::::0;;;;:26;;-1:-1:-1;;8167:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8096:99::o;7684:139::-;7762:4;7769:40;7779:10;7791:9;7802:6;7769:9;:40::i;14568:315::-;3254:4;3279:5;-1:-1:-1;;;;;3279:5:0;3166:10;3268:16;3150:38;;;;-1:-1:-1;;;3150:38:0;;;;;;;:::i;:::-;14697:10:::1;:24:::0;;;14739:12:::1;::::0;:53:::1;::::0;14784:6:::1;::::0;14739:32:::1;::::0;14756:14;14739:16:::1;:32::i;:53::-;14723:13;:69:::0;14821:12:::1;::::0;:54:::1;::::0;14867:6:::1;::::0;14821:33:::1;::::0;14838:15;14821:16:::1;:33::i;:54::-;14804:14;:71:::0;-1:-1:-1;;;14568:315:0:o;3292:111::-;3254:4;3279:5;-1:-1:-1;;;;;3279:5:0;3166:10;3268:16;3150:38;;;;-1:-1:-1;;;3150:38:0;;;;;;;:::i;:::-;3358:5:::1;:11:::0;;-1:-1:-1;;;;;;3358:11:0::1;-1:-1:-1::0;;;;;3358:11:0;::::1;::::0;;::::1;::::0;;;3376:25:::1;::::0;3784:51:1;;;3376:25:0::1;::::0;3772:2:1;3757:18;3376:25:0::1;;;;;;;3292:111:::0;:::o;561:82::-;619:7;636:5;640:1;636;:5;:::i;16448:335::-;-1:-1:-1;;;;;16541:19:0;;16533:68;;;;-1:-1:-1;;;16533:68:0;;6606:2:1;16533:68:0;;;6588:21:1;6645:2;6625:18;;;6618:30;6684:34;6664:18;;;6657:62;-1:-1:-1;;;6735:18:1;;;6728:34;6779:19;;16533:68:0;6404:400:1;16533:68:0;-1:-1:-1;;;;;16620:21:0;;16612:68;;;;-1:-1:-1;;;16612:68:0;;7011:2:1;16612:68:0;;;6993:21:1;7050:2;7030:18;;;7023:30;7089:34;7069:18;;;7062:62;-1:-1:-1;;;7140:18:1;;;7133:32;7182:19;;16612:68:0;6809:398:1;16612:68:0;-1:-1:-1;;;;;16691:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16743:32;;1958:25:1;;;16743:32:0;;1931:18:1;16743:32:0;;;;;;;16448:335;;;:::o;385:82::-;443:7;460:5;464:1;460;:5;:::i;9405:686::-;9494:37;9505:6;9513:9;9524:6;9494:10;:37::i;:::-;9542:38;9562:6;9570:9;9542:19;:38::i;:::-;9591:41;9606:6;9614:9;9625:6;9591:14;:41::i;:::-;9644:35;9661:6;9669:9;9644:16;:35::i;:::-;9690:39;9703:6;9711:9;9722:6;9690:12;:39::i;:::-;9741:35;9750:6;9758:9;9769:6;9741:8;:35::i;:::-;-1:-1:-1;;;;;9807:17:0;;;;;;:9;:17;;;;;;:29;;9829:6;9807:21;:29::i;:::-;-1:-1:-1;;;;;9787:17:0;;;;;;:9;:17;;;;;:49;;;;9872:32;9797:6;9894:9;9872:13;:32::i;:::-;:78;;9944:6;9872:78;;;9907:34;9915:6;9923:9;9934:6;9907:7;:34::i;:::-;-1:-1:-1;;;;;9984:20:0;;;;;;:9;:20;;;;;;9847:103;;-1:-1:-1;9984:40:0;;9847:103;9984:24;:40::i;:::-;-1:-1:-1;;;;;9961:20:0;;;;;;;:9;:20;;;;;;;:63;;;;10040:43;;;;;;;;;;10068:14;1958:25:1;;1946:2;1931:18;;1812:177;10040:43:0;;;;;;;;9483:608;9405:686;;;:::o;1598:162::-;1684:7;1730:12;1722:6;;;;1714:29;;;;-1:-1:-1;;;1714:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1752:5:0;;;1598:162::o;473:82::-;531:7;548:5;552:1;548;:5;:::i;8958:439::-;-1:-1:-1;;;;;9062:20:0;;9054:70;;;;-1:-1:-1;;;9054:70:0;;7547:2:1;9054:70:0;;;7529:21:1;7586:2;7566:18;;;7559:30;7625:34;7605:18;;;7598:62;-1:-1:-1;;;7676:18:1;;;7669:35;7721:19;;9054:70:0;7345:401:1;9054:70:0;-1:-1:-1;;;;;9143:23:0;;9135:71;;;;-1:-1:-1;;;9135:71:0;;7953:2:1;9135:71:0;;;7935:21:1;7992:2;7972:18;;;7965:30;8031:34;8011:18;;;8004:62;-1:-1:-1;;;8082:18:1;;;8075:33;8125:19;;9135:71:0;7751:399:1;9135:71:0;9242:1;9225:6;:19;9217:73;;;;-1:-1:-1;;;9217:73:0;;8357:2:1;9217:73:0;;;8339:21:1;8396:2;8376:18;;;8369:30;8435:34;8415:18;;;8408:62;-1:-1:-1;;;8486:18:1;;;8479:39;8535:19;;9217:73:0;8155:405:1;9217:73:0;-1:-1:-1;;;;;7658:18:0;;7641:7;7658:18;;;:9;:18;;;;;;9309:6;:27;;9301:88;;;;-1:-1:-1;;;9301:88:0;;8767:2:1;9301:88:0;;;8749:21:1;8806:2;8786:18;;;8779:30;8845:34;8825:18;;;8818:62;-1:-1:-1;;;8896:18:1;;;8889:47;8953:19;;9301:88:0;8565:413:1;9301:88:0;8958:439;;;:::o;11226:191::-;-1:-1:-1;;;;;11319:19:0;;;;;;:11;:19;;;;;;;;11318:20;:47;;;;-1:-1:-1;;;;;;11343:22:0;;;;;;:11;:22;;;;;;;;11342:23;11318:47;11315:95;;;11375:14;;-1:-1:-1;;;11375:14:0;;;;11367:41;;;;-1:-1:-1;;;11367:41:0;;9185:2:1;11367:41:0;;;9167:21:1;9224:2;9204:18;;;9197:30;-1:-1:-1;;;9243:18:1;;;9236:44;9297:18;;11367:41:0;8983:338:1;11367:41:0;11226:191;;:::o;11429:333::-;-1:-1:-1;;;;;11533:19:0;;;;;;:11;:19;;;;;;;;11532:20;:47;;;;-1:-1:-1;;;;;;11557:22:0;;;;;;:11;:22;;;;;;;;11556:23;11532:47;:77;;;;-1:-1:-1;11604:4:0;;-1:-1:-1;;;;;11583:26:0;;;11604:4;;11583:26;;11532:77;:107;;;;-1:-1:-1;;;;;;11613:26:0;;6250:42;11613:26;;11532:107;11529:226;;;11701:17;:15;:17::i;:::-;-1:-1:-1;;;;;11664:20:0;;;;;;:9;:20;;;;;;:32;;11689:6;11664:24;:32::i;:::-;11663:55;;11655:98;;;;-1:-1:-1;;;11655:98:0;;9528:2:1;11655:98:0;;;9510:21:1;9567:2;9547:18;;;9540:30;9606:32;9586:18;;;9579:60;9656:18;;11655:98:0;9326:354:1;11770:159:0;11867:4;;-1:-1:-1;;;;;11854:17:0;;;11867:4;;11854:17;:41;;;;-1:-1:-1;;;;;;11876:19:0;;;;;;:11;:19;;;;;;;;11875:20;11854:41;11851:71;;;11918:1;11897:9;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;11770:159:0;;:::o;11937:349::-;12048:4;;-1:-1:-1;;;;;12038:14:0;;;12048:4;;12038:14;12035:130;;12072:20;:18;:20::i;:::-;12062:6;:30;;:53;;;-1:-1:-1;;;;;;12096:19:0;;;;;;:11;:19;;;;;;;;12062:53;:79;;;-1:-1:-1;;;;;;12119:22:0;;;;;;:11;:22;;;;;;;;12062:79;12054:109;;;;-1:-1:-1;;;12054:109:0;;10017:2:1;12054:109:0;;;9999:21:1;10056:2;10036:18;;;10029:30;-1:-1:-1;;;10075:18:1;;;10068:47;10132:18;;12054:109:0;9815:341:1;12054:109:0;12193:14;:12;:14::i;:::-;12183:6;:24;;:47;;;-1:-1:-1;;;;;;12211:19:0;;;;;;:11;:19;;;;;;;;12183:47;:73;;;-1:-1:-1;;;;;;12234:22:0;;;;;;:11;:22;;;;;;;;12183:73;12175:103;;;;-1:-1:-1;;;12175:103:0;;10017:2:1;12175:103:0;;;9999:21:1;10056:2;10036:18;;;10029:30;-1:-1:-1;;;10075:18:1;;;10068:47;10132:18;;12175:103:0;9815:341:1;14891:197:0;14983:41;14998:6;15006:9;15017:6;14983:14;:41::i;:::-;14980:101;;;15026:29;15041:13;;15026:14;:29::i;:::-;15077:1;15057:9;:22;14891:197;;;:::o;15096:160::-;-1:-1:-1;;;;;15202:19:0;;15177:4;15202:19;;;:11;:19;;;;;;;;15201:20;:47;;;;-1:-1:-1;;;;;;;15226:22:0;;;;;:11;:22;;;;;;;;15225:23;;15096:160;-1:-1:-1;15096:160:0:o;15577:546::-;15663:7;15719:1;15686:30;15698:6;15706:9;15686:11;:30::i;:::-;:34;15683:418;;;15732:17;15752:59;15780:30;15792:6;15800:9;15780:11;:30::i;:::-;15763:11;;15752:23;;:6;;:10;:23::i;:59::-;15867:4;15849:24;;;;:9;:24;;;;;;15732:79;;-1:-1:-1;15849:39:0;;15732:79;15849:28;:39::i;:::-;15840:4;15822:24;;;;:9;:24;;;;;;;:66;;;;15904:42;;-1:-1:-1;;;;;15904:42:0;;;;;;;15936:9;1958:25:1;;1946:2;1931:18;;1812:177;15904:42:0;;;;;;;;15960:7;;:20;15957:104;;15982:77;16000:4;6250:42;16022:36;16050:7;;16022:23;16033:11;;16022:6;:10;;:23;;;;:::i;:36::-;15982:9;:77::i;:::-;16078:21;:6;16089:9;16078:10;:21::i;:::-;16071:28;;;;;15683:418;-1:-1:-1;16109:6:0;15577:546;-1:-1:-1;;15577:546:0:o;297:82::-;355:7;372:5;376:1;372;:5;:::i;14161:399::-;14302:14;;14377:13;;14367:4;14259;7658:18;;;:9;:18;;;;;;14409:8;;14259:4;;14292:24;;;;-1:-1:-1;14349:41:0;;14409:8;;14408:9;:24;;;;-1:-1:-1;14421:11:0;;;;14408:24;:42;;;;-1:-1:-1;14436:14:0;;-1:-1:-1;;;14436:14:0;;;;14408:42;:54;;;;;14454:8;14408:54;:78;;;;-1:-1:-1;;;;;;14467:19:0;;;;;;:11;:19;;;;;;;;14466:20;14408:78;:99;;;;-1:-1:-1;14503:4:0;;-1:-1:-1;;;;;14490:17:0;;;14503:4;;14490:17;14408:99;:126;;;;;14524:10;;14511:9;;:23;;14408:126;:144;;;;;14538:14;14408:144;14401:151;14161:399;-1:-1:-1;;;;;;14161:399:0:o;12294:1066::-;6171:8;:15;;-1:-1:-1;;6171:15:0;6182:4;6171:15;;;;;;12431:14:::1;::::0;12413:12:::1;::::0;12389::::1;::::0;6171:8;;12388:66:::1;::::0;12452:1:::1;::::0;12389:57:::1;::::0;12431:14;;12389:37:::1;::::0;;;:16:::1;:19::i;:::-;:23:::0;::::1;:37::i;12388:66::-;12365:89;;12465:32;12500:42;12529:12;12500:24;12511:12;;12500:6;:10;;:24;;;;:::i;:42::-;12465:77:::0;-1:-1:-1;12553:14:0::1;12570:36;:6:::0;12465:77;12570:10:::1;:36::i;:::-;12553:53:::0;-1:-1:-1;12642:21:0::1;12674:24;12553:53:::0;12674:16:::1;:24::i;:::-;12709:20;12732:41;:21;12758:14:::0;12732:25:::1;:41::i;:::-;12709:64;;12784:19;12805:48;12822:30;12839:12;;12822;:16;;:30;;;;:::i;:::-;12805:12:::0;;:16:::1;:48::i;:::-;12784:69;;12864:29;12896;12912:12;;12896:11;:15;;:29;;;;:::i;:::-;12864:61:::0;-1:-1:-1;12939:34:0;;12936:103:::1;;12975:61;12988:24;13014:21;12975:12;:61::i;:::-;13095:12;::::0;13049:20:::1;::::0;13072:36:::1;::::0;:18:::1;:11:::0;13088:1:::1;13072:15;:18::i;:36::-;13049:59:::0;-1:-1:-1;13122:16:0;;13119:73:::1;;13140:50;::::0;6445:42:::1;::::0;13140:50;::::1;;;::::0;13177:12;;13140:50:::1;::::0;;;13177:12;6445:42;13140:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13119:73;13229:21;13264:29:::0;;13261:92:::1;;13295:56;::::0;6348:42:::1;::::0;13295:56;::::1;;;::::0;13334:16;;13295:56:::1;::::0;;;13334:16;6348:42;13295:56;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13261:92;-1:-1:-1::0;;6191:8:0;:16;;-1:-1:-1;;6191:16:0;;;-1:-1:-1;;;;;;;;12294:1066:0:o;15264:305::-;-1:-1:-1;;;;;15366:13:0;;15343:7;15366:13;;;:5;:13;;;;;;;;;:33;;-1:-1:-1;;;;;;15383:16:0;;;;;;:5;:16;;;;;;;;15366:33;15363:76;;;15408:11;;:29;;15432:3;15408:15;:29::i;:::-;15401:36;;;;15363:76;15465:4;;-1:-1:-1;;;;;15465:4:0;;;15452:17;;;;15449:38;;-1:-1:-1;15478:7:0;;15471:14;;15449:38;15510:4;;-1:-1:-1;;;;;15510:4:0;;;15500:14;;;;15497:36;;-1:-1:-1;15523:8:0;;15516:15;;15497:36;-1:-1:-1;15550:11:0;;15264:305;;;;:::o;13719:434::-;13809:16;;;13823:1;13809:16;;;;;;;;13785:21;;13809:16;;;;;;;;;;-1:-1:-1;13809:16:0;13785:40;;13854:4;13836;13841:1;13836:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13836:23:0;;;:7;;;;;;;;;;:23;;;;13880:6;;:13;;;-1:-1:-1;;;13880:13:0;;;;:6;;;;;:11;;:13;;;;;13836:7;;13880:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13870:4;13875:1;13870:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13870:23:0;;;:7;;;;;;;;;:23;13936:6;;13904:53;;13921:4;;13936:6;13945:11;13904:8;:53::i;:::-;13968:6;;:177;;-1:-1:-1;;;13968:177:0;;-1:-1:-1;;;;;13968:6:0;;;;:57;;:177;;14040:11;;13968:6;;14082:4;;14109;;14129:15;;13968:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13774:379;13719:434;:::o;13368:343::-;13481:6;;13449:53;;13466:4;;-1:-1:-1;;;;;13481:6:0;13490:11;13449:8;:53::i;:::-;13513:6;;:190;;-1:-1:-1;;;13513:190:0;;13576:4;13513:190;;;12007:34:1;12057:18;;;12050:34;;;13513:6:0;12100:18:1;;;12093:34;;;12143:18;;;12136:34;6541:42:0;12186:19:1;;;12179:44;13687:15:0;12239:19:1;;;12232:35;-1:-1:-1;;;;;13513:6:0;;;;:22;;13543:9;;11941:19:1;;13513:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13368:343;;:::o;14:592:1:-;127:6;135;143;151;159;167;175;228:3;216:9;207:7;203:23;199:33;196:53;;;245:1;242;235:12;196:53;-1:-1:-1;;268:23:1;;;338:2;323:18;;310:32;;-1:-1:-1;389:2:1;374:18;;361:32;;440:2;425:18;;412:32;;-1:-1:-1;491:3:1;476:19;;463:33;;-1:-1:-1;543:3:1;528:19;;515:33;;-1:-1:-1;595:3:1;580:19;567:33;;-1:-1:-1;14:592:1;-1:-1:-1;14:592:1:o;611:548::-;723:4;752:2;781;770:9;763:21;813:6;807:13;856:6;851:2;840:9;836:18;829:34;881:1;891:140;905:6;902:1;899:13;891:140;;;1000:14;;;996:23;;990:30;966:17;;;985:2;962:26;955:66;920:10;;891:140;;;895:3;1080:1;1075:2;1066:6;1055:9;1051:22;1047:31;1040:42;1150:2;1143;1139:7;1134:2;1126:6;1122:15;1118:29;1107:9;1103:45;1099:54;1091:62;;;;611:548;;;;:::o;1164:131::-;-1:-1:-1;;;;;1239:31:1;;1229:42;;1219:70;;1285:1;1282;1275:12;1219:70;1164:131;:::o;1300:315::-;1368:6;1376;1429:2;1417:9;1408:7;1404:23;1400:32;1397:52;;;1445:1;1442;1435:12;1397:52;1484:9;1471:23;1503:31;1528:5;1503:31;:::i;:::-;1553:5;1605:2;1590:18;;;;1577:32;;-1:-1:-1;;;1300:315:1:o;1994:456::-;2071:6;2079;2087;2140:2;2128:9;2119:7;2115:23;2111:32;2108:52;;;2156:1;2153;2146:12;2108:52;2195:9;2182:23;2214:31;2239:5;2214:31;:::i;:::-;2264:5;-1:-1:-1;2321:2:1;2306:18;;2293:32;2334:33;2293:32;2334:33;:::i;:::-;1994:456;;2386:7;;-1:-1:-1;;;2440:2:1;2425:18;;;;2412:32;;1994:456::o;2455:247::-;2514:6;2567:2;2555:9;2546:7;2542:23;2538:32;2535:52;;;2583:1;2580;2573:12;2535:52;2622:9;2609:23;2641:31;2666:5;2641:31;:::i;2896:316::-;2973:6;2981;2989;3042:2;3030:9;3021:7;3017:23;3013:32;3010:52;;;3058:1;3055;3048:12;3010:52;-1:-1:-1;;3081:23:1;;;3151:2;3136:18;;3123:32;;-1:-1:-1;3202:2:1;3187:18;;;3174:32;;2896:316;-1:-1:-1;2896:316:1:o;3217:416::-;3282:6;3290;3343:2;3331:9;3322:7;3318:23;3314:32;3311:52;;;3359:1;3356;3349:12;3311:52;3398:9;3385:23;3417:31;3442:5;3417:31;:::i;:::-;3467:5;-1:-1:-1;3524:2:1;3509:18;;3496:32;3566:15;;3559:23;3547:36;;3537:64;;3597:1;3594;3587:12;3537:64;3620:7;3610:17;;;3217:416;;;;;:::o;3846:388::-;3914:6;3922;3975:2;3963:9;3954:7;3950:23;3946:32;3943:52;;;3991:1;3988;3981:12;3943:52;4030:9;4017:23;4049:31;4074:5;4049:31;:::i;:::-;4099:5;-1:-1:-1;4156:2:1;4141:18;;4128:32;4169:33;4128:32;4169:33;:::i;4499:329::-;4701:2;4683:21;;;4740:1;4720:18;;;4713:29;-1:-1:-1;;;4773:2:1;4758:18;;4751:36;4819:2;4804:18;;4499:329::o;5246:127::-;5307:10;5302:3;5298:20;5295:1;5288:31;5338:4;5335:1;5328:15;5362:4;5359:1;5352:15;5378:168;5418:7;5484:1;5480;5476:6;5472:14;5469:1;5466:21;5461:1;5454:9;5447:17;5443:45;5440:71;;;5491:18;;:::i;:::-;-1:-1:-1;5531:9:1;;5378:168::o;5551:217::-;5591:1;5617;5607:132;;5661:10;5656:3;5652:20;5649:1;5642:31;5696:4;5693:1;5686:15;5724:4;5721:1;5714:15;5607:132;-1:-1:-1;5753:9:1;;5551:217::o;7212:128::-;7279:9;;;7300:11;;;7297:37;;;7314:18;;:::i;9685:125::-;9750:9;;;9771:10;;;9768:36;;;9784:18;;:::i;10293:127::-;10354:10;10349:3;10345:20;10342:1;10335:31;10385:4;10382:1;10375:15;10409:4;10406:1;10399:15;10425:251;10495:6;10548:2;10536:9;10527:7;10523:23;10519:32;10516:52;;;10564:1;10561;10554:12;10516:52;10596:9;10590:16;10615:31;10640:5;10615:31;:::i;10681:980::-;10943:4;10991:3;10980:9;10976:19;11022:6;11011:9;11004:25;11048:2;11086:6;11081:2;11070:9;11066:18;11059:34;11129:3;11124:2;11113:9;11109:18;11102:31;11153:6;11188;11182:13;11219:6;11211;11204:22;11257:3;11246:9;11242:19;11235:26;;11296:2;11288:6;11284:15;11270:29;;11317:1;11327:195;11341:6;11338:1;11335:13;11327:195;;;11406:13;;-1:-1:-1;;;;;11402:39:1;11390:52;;11497:15;;;;11462:12;;;;11438:1;11356:9;11327:195;;;-1:-1:-1;;;;;;;11578:32:1;;;;11573:2;11558:18;;11551:60;-1:-1:-1;;;11642:3:1;11627:19;11620:35;11539:3;10681:980;-1:-1:-1;;;10681:980:1:o;12278:306::-;12366:6;12374;12382;12435:2;12423:9;12414:7;12410:23;12406:32;12403:52;;;12451:1;12448;12441:12;12403:52;12480:9;12474:16;12464:26;;12530:2;12519:9;12515:18;12509:25;12499:35;;12574:2;12563:9;12559:18;12553:25;12543:35;;12278:306;;;;;:::o

Swarm Source

ipfs://fc2c08b38f8617d561d6e8156e37c4517285efbdf15d60056eadb910f6de081f

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.