ETH Price: $3,894.81 (+0.26%)

Token

ERC-20: Banana (BANANA)
 

Overview

Max Total Supply

10,000,000 BANANA

Holders

5,467

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
7.68 BANANA

Value
$0.00
0xa928941a3275710736a28f7e433b8d9c5963edfd
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Banana

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-09-11
*/

/**
    Banana
    Website: bananagun.io
    Twitter: twitter.com/BananaGunBot
    Telegram: https://t.me/Banana_Gun_Portal
    Bot: t.me/BananaGunSniper_bot
**/
// SPDX-License-Identifier: MIT

pragma solidity 0.8.21;
pragma experimental ABIEncoderV2;

abstract contract Ownable {
    address private _owner;

    constructor() {
        _owner = msg.sender;
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _owner = address(0);
    }
}

interface IERC20 {
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external;
}

interface Presale {
    function setTokenAddress(address tokenNew) external;
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external;

    function addLiquidityETH(address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
}

contract Banana is Ownable {
    string private constant _name = unicode"Banana";
    string private constant _symbol = unicode"BANANA";
    uint256 private constant _totalSupply = 10_000_000 * 1e18;

    uint256 public maxTransactionAmount = 100_000 * 1e18;
    uint256 public maxWallet = 100_000 * 1e18;
    uint256 public swapTokensAtAmount = (_totalSupply * 5) / 10000;

    address private revWallet = 0x9ef0F6F745B79949BBdDE900013FCA359bcFd59A;
    address private treasuryWallet = 0x7d35f092baD40CBAEEC9Ea518C2DAa3335076E8f;
    address private teamWallet = 0x37aAb97476bA8dC785476611006fD5dDA4eed66B;
    address private constant presaleAddress = 0xFC932F4a6e3aaf6dc4fEFdAf89d3602c5581f58D;
    address private constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;

    uint8 public buyTotalFees = 40;
    uint8 public sellTotalFees = 40;

    uint8 public revFee = 50;
    uint8 public treasuryFee = 25;
    uint8 public teamFee = 25;

    bool private swapping;
    bool public limitsInEffect = true;
    bool private launched;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    mapping(address => bool) private automatedMarketMakerPairs;

    event SwapAndLiquify(uint256 tokensSwapped, uint256 teamETH, uint256 revETH, uint256 TreasuryETH);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    IUniswapV2Router02 public constant uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address public immutable uniswapV2Pair;

    constructor() {
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), WETH);
        automatedMarketMakerPairs[uniswapV2Pair] = true;

        address airdropWallet = 0x49af319F1243613e575C2DF6CBd9988400675Cd0;

        setExcludedFromFees(owner(), true);
        setExcludedFromFees(address(this), true);
        setExcludedFromFees(address(0xdead), true);
        setExcludedFromFees(teamWallet, true);
        setExcludedFromFees(revWallet, true);
        setExcludedFromFees(treasuryWallet, true);
        setExcludedFromFees(presaleAddress, true);
        setExcludedFromFees(0xC4A0C91Ca415887174b63d76c132284b2E7Ff8B6, true);
        setExcludedFromFees(0xF7A3285664BdfAeA0b52B0EcA30cdC99C86EC98B, true);
        setExcludedFromFees(0x1C0435144EC9E27a0Adbd51732849191Fd898f92, true);
        setExcludedFromFees(0x37AF2967fB932B5291Efe053ba98c78b9B540e60, true);
        setExcludedFromFees(0x30AF1239A4995e8be511176981e66ec39c29E89f, true);
        setExcludedFromFees(0x74B29E90005D29f1Fa9069697fF87Ea8e33F0580, true);
        setExcludedFromFees(0x1aC69aFABB3D4416dA019369980921002E04dEAa, true);
        setExcludedFromFees(0x3846180aC8fc4c86CC0586f3d670D543d1a2cb1F, true);
        setExcludedFromFees(0x2e67Db3906d7765ff6A663Cf0b47eD29326903e1, true);
        setExcludedFromFees(0x64568fb777d17D1fce7bB02e845b087Fb23aa01b, true);

        setExcludedFromMaxTransaction(owner(), true);
        setExcludedFromMaxTransaction(address(uniswapV2Router), true);
        setExcludedFromMaxTransaction(address(this), true);
        setExcludedFromMaxTransaction(address(0xdead), true);
        setExcludedFromMaxTransaction(address(uniswapV2Pair), true);
        setExcludedFromMaxTransaction(airdropWallet, true);
        setExcludedFromMaxTransaction(teamWallet, true);
        setExcludedFromMaxTransaction(revWallet, true);
        setExcludedFromMaxTransaction(treasuryWallet, true);
        setExcludedFromMaxTransaction(0xC4A0C91Ca415887174b63d76c132284b2E7Ff8B6, true);
        setExcludedFromMaxTransaction(0xF7A3285664BdfAeA0b52B0EcA30cdC99C86EC98B, true);
        setExcludedFromMaxTransaction(0x1C0435144EC9E27a0Adbd51732849191Fd898f92, true);
        setExcludedFromMaxTransaction(0x37AF2967fB932B5291Efe053ba98c78b9B540e60, true);
        setExcludedFromMaxTransaction(0x30AF1239A4995e8be511176981e66ec39c29E89f, true);
        setExcludedFromMaxTransaction(0x74B29E90005D29f1Fa9069697fF87Ea8e33F0580, true);
        setExcludedFromMaxTransaction(0x1aC69aFABB3D4416dA019369980921002E04dEAa, true);
        setExcludedFromMaxTransaction(0x3846180aC8fc4c86CC0586f3d670D543d1a2cb1F, true);
        setExcludedFromMaxTransaction(0x2e67Db3906d7765ff6A663Cf0b47eD29326903e1, true);
        setExcludedFromMaxTransaction(0x64568fb777d17D1fce7bB02e845b087Fb23aa01b, true);

        maxTransactionAmount = 100 * 1e18;
        maxWallet = 100 * 1e18;

        _balances[address(this)] = 500_000 * 1e18;
        emit Transfer(address(0), address(this), _balances[address(this)]);
        _balances[airdropWallet] = 120_000 * 1e18;
        emit Transfer(address(0), airdropWallet, _balances[airdropWallet]);
        _balances[treasuryWallet] = 6_380_000 * 1e18;
        emit Transfer(address(0), treasuryWallet, _balances[treasuryWallet]);
        _balances[presaleAddress] = 2_000_000 * 1e18;
        emit Transfer(address(0), presaleAddress, _balances[presaleAddress]);
        _balances[0xC4A0C91Ca415887174b63d76c132284b2E7Ff8B6] = 100_000 * 1e18;
        emit Transfer(address(0), 0xC4A0C91Ca415887174b63d76c132284b2E7Ff8B6, _balances[0xC4A0C91Ca415887174b63d76c132284b2E7Ff8B6]);
        _balances[0xF7A3285664BdfAeA0b52B0EcA30cdC99C86EC98B] = 100_000 * 1e18;
        emit Transfer(address(0), 0xF7A3285664BdfAeA0b52B0EcA30cdC99C86EC98B, _balances[0xF7A3285664BdfAeA0b52B0EcA30cdC99C86EC98B]);
        _balances[0x1C0435144EC9E27a0Adbd51732849191Fd898f92] = 100_000 * 1e18;
        emit Transfer(address(0), 0x1C0435144EC9E27a0Adbd51732849191Fd898f92, _balances[0x1C0435144EC9E27a0Adbd51732849191Fd898f92]);
        _balances[0x37AF2967fB932B5291Efe053ba98c78b9B540e60] = 100_000 * 1e18;
        emit Transfer(address(0), 0x37AF2967fB932B5291Efe053ba98c78b9B540e60, _balances[0x37AF2967fB932B5291Efe053ba98c78b9B540e60]);
        _balances[0x30AF1239A4995e8be511176981e66ec39c29E89f] = 100_000 * 1e18;
        emit Transfer(address(0), 0x30AF1239A4995e8be511176981e66ec39c29E89f, _balances[0x30AF1239A4995e8be511176981e66ec39c29E89f]);
        _balances[0x74B29E90005D29f1Fa9069697fF87Ea8e33F0580] = 100_000 * 1e18;
        emit Transfer(address(0), 0x74B29E90005D29f1Fa9069697fF87Ea8e33F0580, _balances[0x74B29E90005D29f1Fa9069697fF87Ea8e33F0580]);
        _balances[0x1aC69aFABB3D4416dA019369980921002E04dEAa] = 100_000 * 1e18;
        emit Transfer(address(0), 0x1aC69aFABB3D4416dA019369980921002E04dEAa, _balances[0x1aC69aFABB3D4416dA019369980921002E04dEAa]);
        _balances[0x3846180aC8fc4c86CC0586f3d670D543d1a2cb1F] = 100_000 * 1e18;
        emit Transfer(address(0), 0x3846180aC8fc4c86CC0586f3d670D543d1a2cb1F, _balances[0x3846180aC8fc4c86CC0586f3d670D543d1a2cb1F]);
        _balances[0x2e67Db3906d7765ff6A663Cf0b47eD29326903e1] = 100_000 * 1e18;
        emit Transfer(address(0), 0x2e67Db3906d7765ff6A663Cf0b47eD29326903e1, _balances[0x2e67Db3906d7765ff6A663Cf0b47eD29326903e1]);
        _balances[0x64568fb777d17D1fce7bB02e845b087Fb23aa01b] = 100_000 * 1e18;
        emit Transfer(address(0), 0x64568fb777d17D1fce7bB02e845b087Fb23aa01b, _balances[0x64568fb777d17D1fce7bB02e845b087Fb23aa01b]);

        Presale(presaleAddress).setTokenAddress(address(this));
    }

    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 18;
    }

    function totalSupply() public pure returns (uint256) {
        return _totalSupply;
    }

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

    function allowance(address owner, address spender) public view returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) external {
        _approve(msg.sender, spender, amount);
    }

    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);
    }

    function transfer(address recipient, uint256 amount) external {
        _transfer(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient,uint256 amount) external {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][msg.sender];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, msg.sender, currentAllowance - amount);
        }
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        if (limitsInEffect) {
            if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                    require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTx");
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                } else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                    require(amount <= maxTransactionAmount,"Sell transfer amount exceeds the maxTx");
                } else if (!_isExcludedMaxTransactionAmount[to] && (from != presaleAddress)) {
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }
            }
        }

        bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount;

        if (canSwap && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;
            swapBack();
            swapping = false;
        }

        bool takeFee = !swapping;

        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;
        if (takeFee) {
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = (amount * sellTotalFees) / 1000;
            } else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = (amount * buyTotalFees) / 1000;
            }

            if (fees > 0) {
                amount = amount - fees;
                unchecked {
                    _balances[address(this)] += fees;
                }
                emit Transfer(from, address(this), fees);
            }
        }

        uint256 senderBalance = _balances[from];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = senderBalance - amount;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);
    }

    function removeLimits() external onlyOwner {
        limitsInEffect = false;
    }

    function setDistributionFees(uint8 _RevFee, uint8 _TreasuryFee, uint8 _teamFee) external onlyOwner {
        revFee = _RevFee;
        treasuryFee = _TreasuryFee;
        teamFee = _teamFee;
        require((revFee + treasuryFee + teamFee) == 100, "Distribution have to be equal to 100%");
    }

    function setFees(uint8 _buyTotalFees, uint8 _sellTotalFees) external onlyOwner {
        require(_buyTotalFees <= 40, "Buy fees must be less than or equal to 4%");
        require(_sellTotalFees <= 40, "Sell fees must be less than or equal to 4%");
        buyTotalFees = _buyTotalFees;
        sellTotalFees = _sellTotalFees;
    }

    function setExcludedFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
    }

    function setExcludedFromMaxTransaction(address account, bool excluded) public onlyOwner {
        _isExcludedMaxTransactionAmount[account] = excluded;
    }

    function unleashTheBanana() external payable onlyOwner {
        require(!launched, "Already launched");
        _approve(address(this), address(uniswapV2Router), type(uint256).max);
        uniswapV2Router.addLiquidityETH{value: msg.value}(
            address(this),
            _balances[address(this)],
            0,
            0,
            teamWallet,
            block.timestamp
        );
        launched = true;
    }

    function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner {
        require(pair != uniswapV2Pair, "The pair cannot be removed");
        automatedMarketMakerPairs[pair] = value;
    }

    function setSwapAtAmount(uint256 newSwapAmount) external onlyOwner {
        require(newSwapAmount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% of the supply");
        require(newSwapAmount <= (totalSupply() * 5) / 1000, "Swap amount cannot be higher than 0.5% of the supply");
        swapTokensAtAmount = newSwapAmount;
    }

    function setMaxTxnAmount(uint256 newMaxTx) external onlyOwner {
        require(newMaxTx >= ((totalSupply() * 1) / 100000) / 1e18, "Cannot set max transaction lower than 0.001%");
        maxTransactionAmount = newMaxTx * (10**18);
    }

    function setMaxWalletAmount(uint256 newMaxWallet) external onlyOwner {
        require(newMaxWallet >= ((totalSupply() * 1) / 100000) / 1e18, "Cannot set max wallet lower than 0.001%");
        maxWallet = newMaxWallet * (10**18);
    }

    function setMaxTxnAndWallet(uint256 newMax) external onlyOwner {
        require(newMax >= ((totalSupply() * 1) / 100000) / 1e18, "Cannot set max transaction and wallet lower than 0.001%");
        maxTransactionAmount = newMax * (10**18);
        maxWallet = newMax * (10**18);
    }

    function updateRevWallet(address newAddress) external onlyOwner {
        require(newAddress != address(0), "Address cannot be zero");
        revWallet = newAddress;
    }

    function updateTreasuryWallet(address newAddress) external onlyOwner {
        require(newAddress != address(0), "Address cannot be zero");
        treasuryWallet = newAddress;
    }

    function updateTeamWallet(address newAddress) external onlyOwner {
        require(newAddress != address(0), "Address cannot be zero");
        teamWallet = newAddress;
    }

    function excludedFromFee(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function withdrawStuckToken(address token, address to) external onlyOwner {
        uint256 _contractBalance = IERC20(token).balanceOf(address(this));
        IERC20(token).transfer(to, _contractBalance);
    }

    function withdrawStuckETH(address addr) external onlyOwner {
        require(addr != address(0), "Invalid address");

        (bool success, ) = addr.call{value: address(this).balance}("");
        require(success, "Withdrawal failed");
    }

    function swapBack() private {
        uint256 swapThreshold = swapTokensAtAmount;
        bool success;

        if (balanceOf(address(this)) > swapTokensAtAmount * 20) {
            swapThreshold = swapTokensAtAmount * 20;
        }

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(swapThreshold, 0, path, address(this), block.timestamp);

        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            uint256 ethForRev = (ethBalance * revFee) / 100;
            uint256 ethForTeam = (ethBalance * teamFee) / 100;
            uint256 ethForTreasury = (ethBalance * treasuryFee) / 100;

            (success, ) = address(teamWallet).call{value: ethForTeam}("");
            (success, ) = address(treasuryWallet).call{value: ethForTreasury}("");
            (success, ) = address(revWallet).call{value: ethForRev}("");

            emit SwapAndLiquify(swapThreshold, ethForTeam, ethForRev, ethForTreasury);
        }
    }
}

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":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"teamETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"revETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"TreasuryETH","type":"uint256"}],"name":"SwapAndLiquify","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":[{"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":[],"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":"buyTotalFees","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_RevFee","type":"uint8"},{"internalType":"uint8","name":"_TreasuryFee","type":"uint8"},{"internalType":"uint8","name":"_teamFee","type":"uint8"}],"name":"setDistributionFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludedFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_buyTotalFees","type":"uint8"},{"internalType":"uint8","name":"_sellTotalFees","type":"uint8"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxTx","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMax","type":"uint256"}],"name":"setMaxTxnAndWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxWallet","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSwapAmount","type":"uint256"}],"name":"setSwapAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","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":"teamFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[],"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":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasuryFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unleashTheBanana","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateRevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateTeamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateTreasuryWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"withdrawStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a060405269152d02c7e14af68000006001819055600255612710620000326a084595161401484a000000600562000d2e565b6200003e919062000d58565b600355600480546001600160a01b0319908116739ef0f6f745b79949bbdde900013fca359bcfd59a1790915560058054909116737d35f092bad40cbaeec9ea518c2daa3335076e8f179055600680547a0100191932282837aab97476ba8dc785476611006fd5dda4eed66b600161ff0160c81b0319909116179055348015620000c5575f80fd5b505f80546001600160a01b031916331790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9163c45a01559160048083019260209291908290030181865afa15801562000126573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200014c919062000d78565b6040516364e329cb60e11b815230600482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260248201526001600160a01b03919091169063c9c65396906044016020604051808303815f875af1158015620001ac573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001d2919062000d78565b6001600160a01b031660808190525f908152600b60205260409020805460ff191660011790557349af319f1243613e575c2df6cbd9988400675cd06200022b620002235f546001600160a01b031690565b600162000c24565b6200023830600162000c24565b6200024761dead600162000c24565b60065462000260906001600160a01b0316600162000c24565b60045462000279906001600160a01b0316600162000c24565b60055462000292906001600160a01b0316600162000c24565b620002b373fc932f4a6e3aaf6dc4fefdaf89d3602c5581f58d600162000c24565b620002d473c4a0c91ca415887174b63d76c132284b2e7ff8b6600162000c24565b620002f573f7a3285664bdfaea0b52b0eca30cdc99c86ec98b600162000c24565b62000316731c0435144ec9e27a0adbd51732849191fd898f92600162000c24565b620003377337af2967fb932b5291efe053ba98c78b9b540e60600162000c24565b620003587330af1239a4995e8be511176981e66ec39c29e89f600162000c24565b620003797374b29e90005d29f1fa9069697ff87ea8e33f0580600162000c24565b6200039a731ac69afabb3d4416da019369980921002e04deaa600162000c24565b620003bb733846180ac8fc4c86cc0586f3d670d543d1a2cb1f600162000c24565b620003dc732e67db3906d7765ff6a663cf0b47ed29326903e1600162000c24565b620003fd7364568fb777d17d1fce7bb02e845b087fb23aa01b600162000c24565b6200041b620004135f546001600160a01b031690565b600162000cab565b6200043c737a250d5630b4cf539739df2c5dacb4c659f2488d600162000cab565b6200044930600162000cab565b6200045861dead600162000cab565b6080516200046890600162000cab565b6200047581600162000cab565b6006546200048e906001600160a01b0316600162000cab565b600454620004a7906001600160a01b0316600162000cab565b600554620004c0906001600160a01b0316600162000cab565b620004e173c4a0c91ca415887174b63d76c132284b2e7ff8b6600162000cab565b6200050273f7a3285664bdfaea0b52b0eca30cdc99c86ec98b600162000cab565b62000523731c0435144ec9e27a0adbd51732849191fd898f92600162000cab565b620005447337af2967fb932b5291efe053ba98c78b9b540e60600162000cab565b620005657330af1239a4995e8be511176981e66ec39c29e89f600162000cab565b620005867374b29e90005d29f1fa9069697ff87ea8e33f0580600162000cab565b620005a7731ac69afabb3d4416da019369980921002e04deaa600162000cab565b620005c8733846180ac8fc4c86cc0586f3d670d543d1a2cb1f600162000cab565b620005e9732e67db3906d7765ff6a663cf0b47ed29326903e1600162000cab565b6200060a7364568fb777d17d1fce7bb02e845b087fb23aa01b600162000cab565b68056bc75e2d631000006001819055600255305f8181526007602090815260408083206969e10de76676d08000009081905590519081525f80516020620032b9833981519152910160405180910390a36001600160a01b0381165f818152600760209081526040808320691969368974c05b0000009081905590519081525f80516020620032b9833981519152910160405180910390a3600580546001600160a01b039081165f908152600760205260408082206a0547047e36bf483b8000009055925490911680825282822054925190925f80516020620032b983398151915291620006f991815260200190565b60405180910390a373fc932f4a6e3aaf6dc4fefdaf89d3602c5581f58d5f818152600760209081526a01a784379d99db420000007f7866dc19e4ba29bdc6eeb5d2f45680fd02a6d3ad105b9a23eb48c05a7ed4df8e8190556040519081525f80516020620032b9833981519152910160405180910390a373c4a0c91ca415887174b63d76c132284b2e7ff8b65f8181526007602090815269152d02c7e14af68000007f2df4b0564e2437a9c9a229ad85c0cf3e8258b206dccdf48776ef3ca2cd7a5b558190556040519081525f80516020620032b9833981519152910160405180910390a373f7a3285664bdfaea0b52b0eca30cdc99c86ec98b5f8181526007602090815269152d02c7e14af68000007f354b1436fdb6dca74de675aca68dccaa74e102c63bc0ad4ad78a00bf870e6f4c8190556040519081525f80516020620032b9833981519152910160405180910390a3731c0435144ec9e27a0adbd51732849191fd898f925f8181526007602090815269152d02c7e14af68000007f3dae36e32defdbd17bb9fdae4b233bb76c3fa4c2050b89a5eef859acca5f43638190556040519081525f80516020620032b9833981519152910160405180910390a37337af2967fb932b5291efe053ba98c78b9b540e605f8181526007602090815269152d02c7e14af68000007f8da19acecfbcf7707339ac544f0e67e05647910a452b468010416354289543608190556040519081525f80516020620032b9833981519152910160405180910390a37330af1239a4995e8be511176981e66ec39c29e89f5f8181526007602090815269152d02c7e14af68000007f7598995ce1774167ae96f8be8227a115e13a67c266ff28c9a9475f631ef946b48190556040519081525f80516020620032b9833981519152910160405180910390a37374b29e90005d29f1fa9069697ff87ea8e33f05805f8181526007602090815269152d02c7e14af68000007f990f2e8aeb425f414e5f0698f2e8b4db241b18b0ce9dc1ddcf1fdb4d0c3d03528190556040519081525f80516020620032b9833981519152910160405180910390a3731ac69afabb3d4416da019369980921002e04deaa5f8181526007602090815269152d02c7e14af68000007fdfda00466963f11815907f6eac58ec287c3fd1b4ef0de527a556bbd398a92fbe8190556040519081525f80516020620032b9833981519152910160405180910390a3733846180ac8fc4c86cc0586f3d670d543d1a2cb1f5f8181526007602090815269152d02c7e14af68000007f9a612d3c4ce8956d9a115ba9e4c4d8938763bb7d85667e5adb66666c0a42d36c8190556040519081525f80516020620032b9833981519152910160405180910390a3732e67db3906d7765ff6a663cf0b47ed29326903e15f8181526007602090815269152d02c7e14af68000007fea0f225ad57ea5670cd74284d7960c75dde6703d460df157539935009223880c8190556040519081525f80516020620032b9833981519152910160405180910390a37364568fb777d17d1fce7bb02e845b087fb23aa01b5f8181526007602090815269152d02c7e14af68000007f61ad538bd61b4bbef78ae110dde8524f4a615801b52642ebbc83c9bf835fe37f8190556040519081525f80516020620032b9833981519152910160405180910390a3604051631352746960e11b815230600482015273fc932f4a6e3aaf6dc4fefdaf89d3602c5581f58d906326a4e8d2906024015f604051808303815f87803b15801562000c06575f80fd5b505af115801562000c19573d5f803e3d5ffd5b505050505062000da7565b3362000c375f546001600160a01b031690565b6001600160a01b03161462000c815760405162461bcd60e51b815260206004820181905260248201525f805160206200329983398151915260448201526064015b60405180910390fd5b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b3362000cbe5f546001600160a01b031690565b6001600160a01b03161462000d045760405162461bcd60e51b815260206004820181905260248201525f8051602062003299833981519152604482015260640162000c78565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b808202811582820484141762000d5257634e487b7160e01b5f52601160045260245ffd5b92915050565b5f8262000d7357634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000d89575f80fd5b81516001600160a01b038116811462000da0575f80fd5b9392505050565b6080516124d262000dc75f395f81816103b0015261117901526124d25ff3fe60806040526004361061022b575f3560e01c806374010ece11610129578063bc205ad3116100a8578063d7c94efd1161006d578063d7c94efd146106cf578063d85ba063146106ef578063dd62ed3e1461070f578063e2f456051461072e578063f8b45b0514610743575f80fd5b8063bc205ad31461063d578063c144b53e1461065c578063c8c8ebe41461067b578063cc32d17614610690578063d201b01e146106b0575f80fd5b80638da5cb5b116100ee5780638da5cb5b1461059657806395d89b41146105b25780639a7a23d6146105e0578063a9059cbb146105ff578063adfa29e51461061e575f80fd5b806374010ece146104ee578063751039fc1461050d5780637cb332bb14610521578063809d458d1461054057806385ecafd71461055f575f80fd5b806349bd5a5e116101b557806366650dae1161017a57806366650dae1461045f5780636a486a8e1461047e5780636fdb6f391461049e57806370a08231146104a6578063715018a6146104da575f80fd5b806349bd5a5e1461039f5780634a62bb65146103d25780634fcd244614610402578063590ffdce146104215780636402511e14610440575f80fd5b806321d37e39116101fb57806321d37e39146102fd57806323b872dd1461032f57806327a14fc21461034e578063313ce5671461036d5780633c090c4614610380575f80fd5b806306fdde0314610236578063095ea7b3146102765780631694505e1461029757806318160ddd146102d6575f80fd5b3661023257005b5f80fd5b348015610241575f80fd5b5060408051808201909152600681526542616e616e6160d01b60208201525b60405161026d9190612109565b60405180910390f35b348015610281575f80fd5b5061029561029036600461216f565b610758565b005b3480156102a2575f80fd5b506102be737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161026d565b3480156102e1575f80fd5b506a084595161401484a0000005b60405190815260200161026d565b348015610308575f80fd5b5060065461031d90600160b01b900460ff1681565b60405160ff909116815260200161026d565b34801561033a575f80fd5b50610295610349366004612197565b610767565b348015610359575f80fd5b506102956103683660046121d0565b61080e565b348015610378575f80fd5b50601261031d565b34801561038b575f80fd5b5061029561039a3660046121f7565b6108f4565b3480156103aa575f80fd5b506102be7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103dd575f80fd5b506006546103f290600160d01b900460ff1681565b604051901515815260200161026d565b34801561040d575f80fd5b5061029561041c366004612237565b6109fc565b34801561042c575f80fd5b5061029561043b366004612268565b610b35565b34801561044b575f80fd5b5061029561045a3660046121d0565b610b97565b34801561046a575f80fd5b50610295610479366004612268565b610cf4565b348015610489575f80fd5b5060065461031d90600160a81b900460ff1681565b610295610d56565b3480156104b1575f80fd5b506102ef6104c03660046122a1565b6001600160a01b03165f9081526007602052604090205490565b3480156104e5575f80fd5b50610295610ec4565b3480156104f9575f80fd5b506102956105083660046121d0565b610f0d565b348015610518575f80fd5b50610295610ff8565b34801561052c575f80fd5b5061029561053b3660046122a1565b61103f565b34801561054b575f80fd5b5061029561055a3660046122a1565b6110bf565b34801561056a575f80fd5b506103f26105793660046122a1565b6001600160a01b03165f9081526009602052604090205460ff1690565b3480156105a1575f80fd5b505f546001600160a01b03166102be565b3480156105bd575f80fd5b5060408051808201909152600681526542414e414e4160d01b6020820152610260565b3480156105eb575f80fd5b506102956105fa366004612268565b61113f565b34801561060a575f80fd5b5061029561061936600461216f565b611222565b348015610629575f80fd5b506102956106383660046122a1565b61122d565b348015610648575f80fd5b506102956106573660046122c1565b6112ad565b348015610667575f80fd5b506102956106763660046121d0565b6113b3565b348015610686575f80fd5b506102ef60015481565b34801561069b575f80fd5b5060065461031d90600160b81b900460ff1681565b3480156106bb575f80fd5b506102956106ca3660046122a1565b6114be565b3480156106da575f80fd5b5060065461031d90600160c01b900460ff1681565b3480156106fa575f80fd5b5060065461031d90600160a01b900460ff1681565b34801561071a575f80fd5b506102ef6107293660046122c1565b6115d1565b348015610739575f80fd5b506102ef60035481565b34801561074e575f80fd5b506102ef60025481565b6107633383836115fd565b5050565b610772838383611720565b6001600160a01b0383165f908152600860209081526040808320338452909152902054818110156107fb5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61080884338484036115fd565b50505050565b336108205f546001600160a01b031690565b6001600160a01b0316146108465760405162461bcd60e51b81526004016107f2906122e9565b670de0b6b3a7640000620186a06108696a084595161401484a0000006001612332565b6108739190612349565b61087d9190612349565b8110156108dc5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f7420736574206d61782077616c6c6574206c6f776572207468616e60448201526620302e3030312560c81b60648201526084016107f2565b6108ee81670de0b6b3a7640000612332565b60025550565b336109065f546001600160a01b031690565b6001600160a01b03161461092c5760405162461bcd60e51b81526004016107f2906122e9565b6006805461ffff60b01b1916600160b01b60ff868116820260ff60b81b191692909217600160b81b86841681029190911760ff60c01b1916600160c01b86851681029190911794859055840483169361098d93918104821692900416612368565b6109979190612368565b60ff166064146109f75760405162461bcd60e51b815260206004820152602560248201527f446973747269627574696f6e206861766520746f20626520657175616c20746f604482015264203130302560d81b60648201526084016107f2565b505050565b33610a0e5f546001600160a01b031690565b6001600160a01b031614610a345760405162461bcd60e51b81526004016107f2906122e9565b60288260ff161115610a9a5760405162461bcd60e51b815260206004820152602960248201527f4275792066656573206d757374206265206c657373207468616e206f7220657160448201526875616c20746f20342560b81b60648201526084016107f2565b60288160ff161115610b015760405162461bcd60e51b815260206004820152602a60248201527f53656c6c2066656573206d757374206265206c657373207468616e206f7220656044820152697175616c20746f20342560b01b60648201526084016107f2565b6006805461ffff60a01b1916600160a01b60ff9485160260ff60a81b191617600160a81b9290931691909102919091179055565b33610b475f546001600160a01b031690565b6001600160a01b031614610b6d5760405162461bcd60e51b81526004016107f2906122e9565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b33610ba95f546001600160a01b031690565b6001600160a01b031614610bcf5760405162461bcd60e51b81526004016107f2906122e9565b620186a0610be96a084595161401484a0000006001612332565b610bf39190612349565b811015610c605760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527420302e30303125206f662074686520737570706c7960581b60648201526084016107f2565b6103e8610c796a084595161401484a0000006005612332565b610c839190612349565b811115610cef5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f7420626520686967686572207468616044820152736e20302e3525206f662074686520737570706c7960601b60648201526084016107f2565b600355565b33610d065f546001600160a01b031690565b6001600160a01b031614610d2c5760405162461bcd60e51b81526004016107f2906122e9565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b33610d685f546001600160a01b031690565b6001600160a01b031614610d8e5760405162461bcd60e51b81526004016107f2906122e9565b600654600160d81b900460ff1615610ddb5760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b60448201526064016107f2565b610dfb30737a250d5630b4cf539739df2c5dacb4c659f2488d5f196115fd565b305f8181526007602052604080822054600654915163f305d71960e01b8152600481019490945260248401526044830182905260648301919091526001600160a01b031660848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990349060c40160606040518083038185885af1158015610e87573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610eac9190612381565b50506006805460ff60d81b1916600160d81b17905550565b33610ed65f546001600160a01b031690565b6001600160a01b031614610efc5760405162461bcd60e51b81526004016107f2906122e9565b5f80546001600160a01b0319169055565b33610f1f5f546001600160a01b031690565b6001600160a01b031614610f455760405162461bcd60e51b81526004016107f2906122e9565b670de0b6b3a7640000620186a0610f686a084595161401484a0000006001612332565b610f729190612349565b610f7c9190612349565b811015610fe05760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c6f77657260448201526b207468616e20302e3030312560a01b60648201526084016107f2565b610ff281670de0b6b3a7640000612332565b60015550565b3361100a5f546001600160a01b031690565b6001600160a01b0316146110305760405162461bcd60e51b81526004016107f2906122e9565b6006805460ff60d01b19169055565b336110515f546001600160a01b031690565b6001600160a01b0316146110775760405162461bcd60e51b81526004016107f2906122e9565b6001600160a01b03811661109d5760405162461bcd60e51b81526004016107f2906123ac565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b336110d15f546001600160a01b031690565b6001600160a01b0316146110f75760405162461bcd60e51b81526004016107f2906122e9565b6001600160a01b03811661111d5760405162461bcd60e51b81526004016107f2906123ac565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b336111515f546001600160a01b031690565b6001600160a01b0316146111775760405162461bcd60e51b81526004016107f2906122e9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316036111f85760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f76656400000000000060448201526064016107f2565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b610763338383611720565b3361123f5f546001600160a01b031690565b6001600160a01b0316146112655760405162461bcd60e51b81526004016107f2906122e9565b6001600160a01b03811661128b5760405162461bcd60e51b81526004016107f2906123ac565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b336112bf5f546001600160a01b031690565b6001600160a01b0316146112e55760405162461bcd60e51b81526004016107f2906122e9565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015611329573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061134d91906123dc565b60405163a9059cbb60e01b81526001600160a01b038481166004830152602482018390529192509084169063a9059cbb906044015f604051808303815f87803b158015611398575f80fd5b505af11580156113aa573d5f803e3d5ffd5b50505050505050565b336113c55f546001600160a01b031690565b6001600160a01b0316146113eb5760405162461bcd60e51b81526004016107f2906122e9565b670de0b6b3a7640000620186a061140e6a084595161401484a0000006001612332565b6114189190612349565b6114229190612349565b8110156114975760405162461bcd60e51b815260206004820152603760248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e20616e64207760448201527f616c6c6574206c6f776572207468616e20302e3030312500000000000000000060648201526084016107f2565b6114a981670de0b6b3a7640000612332565b6001556108ee81670de0b6b3a7640000612332565b336114d05f546001600160a01b031690565b6001600160a01b0316146114f65760405162461bcd60e51b81526004016107f2906122e9565b6001600160a01b03811661153e5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016107f2565b5f816001600160a01b0316476040515f6040518083038185875af1925050503d805f8114611587576040519150601f19603f3d011682016040523d82523d5f602084013e61158c565b606091505b50509050806107635760405162461bcd60e51b815260206004820152601160248201527015da5d1a191c985dd85b0819985a5b1959607a1b60448201526064016107f2565b6001600160a01b038083165f908152600860209081526040808320938516835292905220545b92915050565b6001600160a01b03831661165f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107f2565b6001600160a01b0382166116c05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107f2565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166117845760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107f2565b6001600160a01b0382166117e65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107f2565b600654600160d01b900460ff1615611ad2575f546001600160a01b0384811691161480159061182257505f546001600160a01b03838116911614155b801561183657506001600160a01b03821615155b801561184d57506001600160a01b03821661dead14155b80156118635750600654600160c81b900460ff16155b15611ad2576001600160a01b0383165f908152600b602052604090205460ff1680156118a757506001600160a01b0382165f908152600a602052604090205460ff16155b1561197a5760015481111561190c5760405162461bcd60e51b815260206004820152602560248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152640dac2f0a8f60db1b60648201526084016107f2565b6002546001600160a01b0383165f9081526007602052604090205461193190836123f3565b11156119755760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107f2565b611ad2565b6001600160a01b0382165f908152600b602052604090205460ff1680156119b957506001600160a01b0383165f908152600a602052604090205460ff16155b15611a1f576001548111156119755760405162461bcd60e51b815260206004820152602660248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015265040dac2f0a8f60d31b60648201526084016107f2565b6001600160a01b0382165f908152600a602052604090205460ff16158015611a6457506001600160a01b03831673fc932f4a6e3aaf6dc4fefdaf89d3602c5581f58d14155b15611ad2576002546001600160a01b0383165f90815260076020526040902054611a8e90836123f3565b1115611ad25760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107f2565b600354305f90815260076020526040902054108015908190611afe5750600654600160c81b900460ff16155b8015611b2257506001600160a01b0384165f908152600b602052604090205460ff16155b8015611b4657506001600160a01b0384165f9081526009602052604090205460ff16155b8015611b6a57506001600160a01b0383165f9081526009602052604090205460ff16155b15611b98576006805460ff60c81b1916600160c81b179055611b8a611e0a565b6006805460ff60c81b191690555b6006546001600160a01b0385165f9081526009602052604090205460ff600160c81b909204821615911680611be457506001600160a01b0384165f9081526009602052604090205460ff165b15611bec57505f5b5f8115611d23576001600160a01b0385165f908152600b602052604090205460ff168015611c255750600654600160a81b900460ff1615155b15611c56576006546103e890611c4590600160a81b900460ff1686612332565b611c4f9190612349565b9050611cb5565b6001600160a01b0386165f908152600b602052604090205460ff168015611c885750600654600160a01b900460ff1615155b15611cb5576006546103e890611ca890600160a01b900460ff1686612332565b611cb29190612349565b90505b8015611d2357611cc58185612406565b305f818152600760205260409081902080548501905551919550906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d1a9085815260200190565b60405180910390a35b6001600160a01b0386165f9081526007602052604090205484811015611d9a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107f2565b6001600160a01b038088165f8181526007602052604080822089860390559289168082529083902080548901905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611df99089815260200190565b60405180910390a350505050505050565b6003545f611e19826014612332565b305f908152600760205260409020541115611e3f57600354611e3c906014612332565b91505b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611e7257611e72612419565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611eba57611eba612419565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac94790611f119086905f9086903090429060040161242d565b5f604051808303815f87803b158015611f28575f80fd5b505af1158015611f3a573d5f803e3d5ffd5b504792505081159050610808576006545f90606490611f6390600160b01b900460ff1684612332565b611f6d9190612349565b6006549091505f90606490611f8c90600160c01b900460ff1685612332565b611f969190612349565b6006549091505f90606490611fb590600160b81b900460ff1686612332565b611fbf9190612349565b6006546040519192506001600160a01b03169083905f81818185875af1925050503d805f811461200a576040519150601f19603f3d011682016040523d82523d5f602084013e61200f565b606091505b50506005546040519197506001600160a01b03169082905f81818185875af1925050503d805f811461205c576040519150601f19603f3d011682016040523d82523d5f602084013e612061565b606091505b50506004546040519197506001600160a01b03169084905f81818185875af1925050503d805f81146120ae576040519150601f19603f3d011682016040523d82523d5f602084013e6120b3565b606091505b50506040805189815260208101859052908101859052606081018390529096507f93efcf28fbf701a930e0ad258987a2e4f08eb3aa99f9c02029e7ba049f69405f9060800160405180910390a150505050505050565b5f6020808352835180828501525f5b8181101561213457858101830151858201604001528201612118565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461216a575f80fd5b919050565b5f8060408385031215612180575f80fd5b61218983612154565b946020939093013593505050565b5f805f606084860312156121a9575f80fd5b6121b284612154565b92506121c060208501612154565b9150604084013590509250925092565b5f602082840312156121e0575f80fd5b5035919050565b803560ff8116811461216a575f80fd5b5f805f60608486031215612209575f80fd5b612212846121e7565b9250612220602085016121e7565b915061222e604085016121e7565b90509250925092565b5f8060408385031215612248575f80fd5b612251836121e7565b915061225f602084016121e7565b90509250929050565b5f8060408385031215612279575f80fd5b61228283612154565b915060208301358015158114612296575f80fd5b809150509250929050565b5f602082840312156122b1575f80fd5b6122ba82612154565b9392505050565b5f80604083850312156122d2575f80fd5b6122db83612154565b915061225f60208401612154565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176115f7576115f761231e565b5f8261236357634e487b7160e01b5f52601260045260245ffd5b500490565b60ff81811683821601908111156115f7576115f761231e565b5f805f60608486031215612393575f80fd5b8351925060208401519150604084015190509250925092565b602080825260169082015275416464726573732063616e6e6f74206265207a65726f60501b604082015260600190565b5f602082840312156123ec575f80fd5b5051919050565b808201808211156115f7576115f761231e565b818103818111156115f7576115f761231e565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561247b5784516001600160a01b031683529383019391830191600101612456565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220c1392e9a413e68f5d9f9c3b3caa1fd993fd6a1fb59fbc7b0ae11549aeb272e4264736f6c634300081500334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x60806040526004361061022b575f3560e01c806374010ece11610129578063bc205ad3116100a8578063d7c94efd1161006d578063d7c94efd146106cf578063d85ba063146106ef578063dd62ed3e1461070f578063e2f456051461072e578063f8b45b0514610743575f80fd5b8063bc205ad31461063d578063c144b53e1461065c578063c8c8ebe41461067b578063cc32d17614610690578063d201b01e146106b0575f80fd5b80638da5cb5b116100ee5780638da5cb5b1461059657806395d89b41146105b25780639a7a23d6146105e0578063a9059cbb146105ff578063adfa29e51461061e575f80fd5b806374010ece146104ee578063751039fc1461050d5780637cb332bb14610521578063809d458d1461054057806385ecafd71461055f575f80fd5b806349bd5a5e116101b557806366650dae1161017a57806366650dae1461045f5780636a486a8e1461047e5780636fdb6f391461049e57806370a08231146104a6578063715018a6146104da575f80fd5b806349bd5a5e1461039f5780634a62bb65146103d25780634fcd244614610402578063590ffdce146104215780636402511e14610440575f80fd5b806321d37e39116101fb57806321d37e39146102fd57806323b872dd1461032f57806327a14fc21461034e578063313ce5671461036d5780633c090c4614610380575f80fd5b806306fdde0314610236578063095ea7b3146102765780631694505e1461029757806318160ddd146102d6575f80fd5b3661023257005b5f80fd5b348015610241575f80fd5b5060408051808201909152600681526542616e616e6160d01b60208201525b60405161026d9190612109565b60405180910390f35b348015610281575f80fd5b5061029561029036600461216f565b610758565b005b3480156102a2575f80fd5b506102be737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161026d565b3480156102e1575f80fd5b506a084595161401484a0000005b60405190815260200161026d565b348015610308575f80fd5b5060065461031d90600160b01b900460ff1681565b60405160ff909116815260200161026d565b34801561033a575f80fd5b50610295610349366004612197565b610767565b348015610359575f80fd5b506102956103683660046121d0565b61080e565b348015610378575f80fd5b50601261031d565b34801561038b575f80fd5b5061029561039a3660046121f7565b6108f4565b3480156103aa575f80fd5b506102be7f0000000000000000000000005ad6c0d8d57c0050fa954e227c45339ab8cb953b81565b3480156103dd575f80fd5b506006546103f290600160d01b900460ff1681565b604051901515815260200161026d565b34801561040d575f80fd5b5061029561041c366004612237565b6109fc565b34801561042c575f80fd5b5061029561043b366004612268565b610b35565b34801561044b575f80fd5b5061029561045a3660046121d0565b610b97565b34801561046a575f80fd5b50610295610479366004612268565b610cf4565b348015610489575f80fd5b5060065461031d90600160a81b900460ff1681565b610295610d56565b3480156104b1575f80fd5b506102ef6104c03660046122a1565b6001600160a01b03165f9081526007602052604090205490565b3480156104e5575f80fd5b50610295610ec4565b3480156104f9575f80fd5b506102956105083660046121d0565b610f0d565b348015610518575f80fd5b50610295610ff8565b34801561052c575f80fd5b5061029561053b3660046122a1565b61103f565b34801561054b575f80fd5b5061029561055a3660046122a1565b6110bf565b34801561056a575f80fd5b506103f26105793660046122a1565b6001600160a01b03165f9081526009602052604090205460ff1690565b3480156105a1575f80fd5b505f546001600160a01b03166102be565b3480156105bd575f80fd5b5060408051808201909152600681526542414e414e4160d01b6020820152610260565b3480156105eb575f80fd5b506102956105fa366004612268565b61113f565b34801561060a575f80fd5b5061029561061936600461216f565b611222565b348015610629575f80fd5b506102956106383660046122a1565b61122d565b348015610648575f80fd5b506102956106573660046122c1565b6112ad565b348015610667575f80fd5b506102956106763660046121d0565b6113b3565b348015610686575f80fd5b506102ef60015481565b34801561069b575f80fd5b5060065461031d90600160b81b900460ff1681565b3480156106bb575f80fd5b506102956106ca3660046122a1565b6114be565b3480156106da575f80fd5b5060065461031d90600160c01b900460ff1681565b3480156106fa575f80fd5b5060065461031d90600160a01b900460ff1681565b34801561071a575f80fd5b506102ef6107293660046122c1565b6115d1565b348015610739575f80fd5b506102ef60035481565b34801561074e575f80fd5b506102ef60025481565b6107633383836115fd565b5050565b610772838383611720565b6001600160a01b0383165f908152600860209081526040808320338452909152902054818110156107fb5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61080884338484036115fd565b50505050565b336108205f546001600160a01b031690565b6001600160a01b0316146108465760405162461bcd60e51b81526004016107f2906122e9565b670de0b6b3a7640000620186a06108696a084595161401484a0000006001612332565b6108739190612349565b61087d9190612349565b8110156108dc5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f7420736574206d61782077616c6c6574206c6f776572207468616e60448201526620302e3030312560c81b60648201526084016107f2565b6108ee81670de0b6b3a7640000612332565b60025550565b336109065f546001600160a01b031690565b6001600160a01b03161461092c5760405162461bcd60e51b81526004016107f2906122e9565b6006805461ffff60b01b1916600160b01b60ff868116820260ff60b81b191692909217600160b81b86841681029190911760ff60c01b1916600160c01b86851681029190911794859055840483169361098d93918104821692900416612368565b6109979190612368565b60ff166064146109f75760405162461bcd60e51b815260206004820152602560248201527f446973747269627574696f6e206861766520746f20626520657175616c20746f604482015264203130302560d81b60648201526084016107f2565b505050565b33610a0e5f546001600160a01b031690565b6001600160a01b031614610a345760405162461bcd60e51b81526004016107f2906122e9565b60288260ff161115610a9a5760405162461bcd60e51b815260206004820152602960248201527f4275792066656573206d757374206265206c657373207468616e206f7220657160448201526875616c20746f20342560b81b60648201526084016107f2565b60288160ff161115610b015760405162461bcd60e51b815260206004820152602a60248201527f53656c6c2066656573206d757374206265206c657373207468616e206f7220656044820152697175616c20746f20342560b01b60648201526084016107f2565b6006805461ffff60a01b1916600160a01b60ff9485160260ff60a81b191617600160a81b9290931691909102919091179055565b33610b475f546001600160a01b031690565b6001600160a01b031614610b6d5760405162461bcd60e51b81526004016107f2906122e9565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b33610ba95f546001600160a01b031690565b6001600160a01b031614610bcf5760405162461bcd60e51b81526004016107f2906122e9565b620186a0610be96a084595161401484a0000006001612332565b610bf39190612349565b811015610c605760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527420302e30303125206f662074686520737570706c7960581b60648201526084016107f2565b6103e8610c796a084595161401484a0000006005612332565b610c839190612349565b811115610cef5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f7420626520686967686572207468616044820152736e20302e3525206f662074686520737570706c7960601b60648201526084016107f2565b600355565b33610d065f546001600160a01b031690565b6001600160a01b031614610d2c5760405162461bcd60e51b81526004016107f2906122e9565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b33610d685f546001600160a01b031690565b6001600160a01b031614610d8e5760405162461bcd60e51b81526004016107f2906122e9565b600654600160d81b900460ff1615610ddb5760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b60448201526064016107f2565b610dfb30737a250d5630b4cf539739df2c5dacb4c659f2488d5f196115fd565b305f8181526007602052604080822054600654915163f305d71960e01b8152600481019490945260248401526044830182905260648301919091526001600160a01b031660848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990349060c40160606040518083038185885af1158015610e87573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610eac9190612381565b50506006805460ff60d81b1916600160d81b17905550565b33610ed65f546001600160a01b031690565b6001600160a01b031614610efc5760405162461bcd60e51b81526004016107f2906122e9565b5f80546001600160a01b0319169055565b33610f1f5f546001600160a01b031690565b6001600160a01b031614610f455760405162461bcd60e51b81526004016107f2906122e9565b670de0b6b3a7640000620186a0610f686a084595161401484a0000006001612332565b610f729190612349565b610f7c9190612349565b811015610fe05760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c6f77657260448201526b207468616e20302e3030312560a01b60648201526084016107f2565b610ff281670de0b6b3a7640000612332565b60015550565b3361100a5f546001600160a01b031690565b6001600160a01b0316146110305760405162461bcd60e51b81526004016107f2906122e9565b6006805460ff60d01b19169055565b336110515f546001600160a01b031690565b6001600160a01b0316146110775760405162461bcd60e51b81526004016107f2906122e9565b6001600160a01b03811661109d5760405162461bcd60e51b81526004016107f2906123ac565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b336110d15f546001600160a01b031690565b6001600160a01b0316146110f75760405162461bcd60e51b81526004016107f2906122e9565b6001600160a01b03811661111d5760405162461bcd60e51b81526004016107f2906123ac565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b336111515f546001600160a01b031690565b6001600160a01b0316146111775760405162461bcd60e51b81526004016107f2906122e9565b7f0000000000000000000000005ad6c0d8d57c0050fa954e227c45339ab8cb953b6001600160a01b0316826001600160a01b0316036111f85760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f76656400000000000060448201526064016107f2565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b610763338383611720565b3361123f5f546001600160a01b031690565b6001600160a01b0316146112655760405162461bcd60e51b81526004016107f2906122e9565b6001600160a01b03811661128b5760405162461bcd60e51b81526004016107f2906123ac565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b336112bf5f546001600160a01b031690565b6001600160a01b0316146112e55760405162461bcd60e51b81526004016107f2906122e9565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015611329573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061134d91906123dc565b60405163a9059cbb60e01b81526001600160a01b038481166004830152602482018390529192509084169063a9059cbb906044015f604051808303815f87803b158015611398575f80fd5b505af11580156113aa573d5f803e3d5ffd5b50505050505050565b336113c55f546001600160a01b031690565b6001600160a01b0316146113eb5760405162461bcd60e51b81526004016107f2906122e9565b670de0b6b3a7640000620186a061140e6a084595161401484a0000006001612332565b6114189190612349565b6114229190612349565b8110156114975760405162461bcd60e51b815260206004820152603760248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e20616e64207760448201527f616c6c6574206c6f776572207468616e20302e3030312500000000000000000060648201526084016107f2565b6114a981670de0b6b3a7640000612332565b6001556108ee81670de0b6b3a7640000612332565b336114d05f546001600160a01b031690565b6001600160a01b0316146114f65760405162461bcd60e51b81526004016107f2906122e9565b6001600160a01b03811661153e5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016107f2565b5f816001600160a01b0316476040515f6040518083038185875af1925050503d805f8114611587576040519150601f19603f3d011682016040523d82523d5f602084013e61158c565b606091505b50509050806107635760405162461bcd60e51b815260206004820152601160248201527015da5d1a191c985dd85b0819985a5b1959607a1b60448201526064016107f2565b6001600160a01b038083165f908152600860209081526040808320938516835292905220545b92915050565b6001600160a01b03831661165f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107f2565b6001600160a01b0382166116c05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107f2565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166117845760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107f2565b6001600160a01b0382166117e65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107f2565b600654600160d01b900460ff1615611ad2575f546001600160a01b0384811691161480159061182257505f546001600160a01b03838116911614155b801561183657506001600160a01b03821615155b801561184d57506001600160a01b03821661dead14155b80156118635750600654600160c81b900460ff16155b15611ad2576001600160a01b0383165f908152600b602052604090205460ff1680156118a757506001600160a01b0382165f908152600a602052604090205460ff16155b1561197a5760015481111561190c5760405162461bcd60e51b815260206004820152602560248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152640dac2f0a8f60db1b60648201526084016107f2565b6002546001600160a01b0383165f9081526007602052604090205461193190836123f3565b11156119755760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107f2565b611ad2565b6001600160a01b0382165f908152600b602052604090205460ff1680156119b957506001600160a01b0383165f908152600a602052604090205460ff16155b15611a1f576001548111156119755760405162461bcd60e51b815260206004820152602660248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015265040dac2f0a8f60d31b60648201526084016107f2565b6001600160a01b0382165f908152600a602052604090205460ff16158015611a6457506001600160a01b03831673fc932f4a6e3aaf6dc4fefdaf89d3602c5581f58d14155b15611ad2576002546001600160a01b0383165f90815260076020526040902054611a8e90836123f3565b1115611ad25760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107f2565b600354305f90815260076020526040902054108015908190611afe5750600654600160c81b900460ff16155b8015611b2257506001600160a01b0384165f908152600b602052604090205460ff16155b8015611b4657506001600160a01b0384165f9081526009602052604090205460ff16155b8015611b6a57506001600160a01b0383165f9081526009602052604090205460ff16155b15611b98576006805460ff60c81b1916600160c81b179055611b8a611e0a565b6006805460ff60c81b191690555b6006546001600160a01b0385165f9081526009602052604090205460ff600160c81b909204821615911680611be457506001600160a01b0384165f9081526009602052604090205460ff165b15611bec57505f5b5f8115611d23576001600160a01b0385165f908152600b602052604090205460ff168015611c255750600654600160a81b900460ff1615155b15611c56576006546103e890611c4590600160a81b900460ff1686612332565b611c4f9190612349565b9050611cb5565b6001600160a01b0386165f908152600b602052604090205460ff168015611c885750600654600160a01b900460ff1615155b15611cb5576006546103e890611ca890600160a01b900460ff1686612332565b611cb29190612349565b90505b8015611d2357611cc58185612406565b305f818152600760205260409081902080548501905551919550906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d1a9085815260200190565b60405180910390a35b6001600160a01b0386165f9081526007602052604090205484811015611d9a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107f2565b6001600160a01b038088165f8181526007602052604080822089860390559289168082529083902080548901905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611df99089815260200190565b60405180910390a350505050505050565b6003545f611e19826014612332565b305f908152600760205260409020541115611e3f57600354611e3c906014612332565b91505b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611e7257611e72612419565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611eba57611eba612419565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac94790611f119086905f9086903090429060040161242d565b5f604051808303815f87803b158015611f28575f80fd5b505af1158015611f3a573d5f803e3d5ffd5b504792505081159050610808576006545f90606490611f6390600160b01b900460ff1684612332565b611f6d9190612349565b6006549091505f90606490611f8c90600160c01b900460ff1685612332565b611f969190612349565b6006549091505f90606490611fb590600160b81b900460ff1686612332565b611fbf9190612349565b6006546040519192506001600160a01b03169083905f81818185875af1925050503d805f811461200a576040519150601f19603f3d011682016040523d82523d5f602084013e61200f565b606091505b50506005546040519197506001600160a01b03169082905f81818185875af1925050503d805f811461205c576040519150601f19603f3d011682016040523d82523d5f602084013e612061565b606091505b50506004546040519197506001600160a01b03169084905f81818185875af1925050503d805f81146120ae576040519150601f19603f3d011682016040523d82523d5f602084013e6120b3565b606091505b50506040805189815260208101859052908101859052606081018390529096507f93efcf28fbf701a930e0ad258987a2e4f08eb3aa99f9c02029e7ba049f69405f9060800160405180910390a150505050505050565b5f6020808352835180828501525f5b8181101561213457858101830151858201604001528201612118565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461216a575f80fd5b919050565b5f8060408385031215612180575f80fd5b61218983612154565b946020939093013593505050565b5f805f606084860312156121a9575f80fd5b6121b284612154565b92506121c060208501612154565b9150604084013590509250925092565b5f602082840312156121e0575f80fd5b5035919050565b803560ff8116811461216a575f80fd5b5f805f60608486031215612209575f80fd5b612212846121e7565b9250612220602085016121e7565b915061222e604085016121e7565b90509250925092565b5f8060408385031215612248575f80fd5b612251836121e7565b915061225f602084016121e7565b90509250929050565b5f8060408385031215612279575f80fd5b61228283612154565b915060208301358015158114612296575f80fd5b809150509250929050565b5f602082840312156122b1575f80fd5b6122ba82612154565b9392505050565b5f80604083850312156122d2575f80fd5b6122db83612154565b915061225f60208401612154565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176115f7576115f761231e565b5f8261236357634e487b7160e01b5f52601260045260245ffd5b500490565b60ff81811683821601908111156115f7576115f761231e565b5f805f60608486031215612393575f80fd5b8351925060208401519150604084015190509250925092565b602080825260169082015275416464726573732063616e6e6f74206265207a65726f60501b604082015260600190565b5f602082840312156123ec575f80fd5b5051919050565b808201808211156115f7576115f761231e565b818103818111156115f7576115f761231e565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561247b5784516001600160a01b031683529383019391830191600101612456565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220c1392e9a413e68f5d9f9c3b3caa1fd993fd6a1fb59fbc7b0ae11549aeb272e4264736f6c63430008150033

Deployed Bytecode Sourcemap

1646:16847:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9233:83;;;;;;;;;;-1:-1:-1;9303:5:0;;;;;;;;;;;;-1:-1:-1;;;9303:5:0;;;;9233:83;;;;;;;:::i;:::-;;;;;;;;9862:115;;;;;;;;;;-1:-1:-1;9862:115:0;;;;;:::i;:::-;;:::i;:::-;;3312;;;;;;;;;;;;3384:42;3312:115;;;;;-1:-1:-1;;;;;1194:32:1;;;1176:51;;1164:2;1149:18;3312:115:0;1004:229:1;9503:91:0;;;;;;;;;;-1:-1:-1;1830:17:0;9503:91;;;1384:25:1;;;1372:2;1357:18;9503:91:0;1238:177:1;2522:24:0;;;;;;;;;;-1:-1:-1;2522:24:0;;;;-1:-1:-1;;;2522:24:0;;;;;;;;;1592:4:1;1580:17;;;1562:36;;1550:2;1535:18;2522:24:0;1420:184:1;10460:399:0;;;;;;;;;;-1:-1:-1;10460:399:0;;;;;:::i;:::-;;:::i;15665:239::-;;;;;;;;;;-1:-1:-1;15665:239:0;;;;;:::i;:::-;;:::i;9419:76::-;;;;;;;;;;-1:-1:-1;9485:2:0;9419:76;;13418:300;;;;;;;;;;-1:-1:-1;13418:300:0;;;;;:::i;:::-;;:::i;3434:38::-;;;;;;;;;;;;;;;2651:33;;;;;;;;;;-1:-1:-1;2651:33:0;;;;-1:-1:-1;;;2651:33:0;;;;;;;;;2988:14:1;;2981:22;2963:41;;2951:2;2936:18;2651:33:0;2823:187:1;13726:337:0;;;;;;;;;;-1:-1:-1;13726:337:0;;;;;:::i;:::-;;:::i;14071:136::-;;;;;;;;;;-1:-1:-1;14071:136:0;;;;;:::i;:::-;;:::i;15048:361::-;;;;;;;;;;-1:-1:-1;15048:361:0;;;;;:::i;:::-;;:::i;14215:158::-;;;;;;;;;;-1:-1:-1;14215:158:0;;;;;:::i;:::-;;:::i;2482:31::-;;;;;;;;;;-1:-1:-1;2482:31:0;;;;-1:-1:-1;;;2482:31:0;;;;;;14381:442;;;:::i;9602:110::-;;;;;;;;;;-1:-1:-1;9602:110:0;;;;;:::i;:::-;-1:-1:-1;;;;;9686:18:0;9659:7;9686:18;;;:9;:18;;;;;;;9602:110;611:92;;;;;;;;;;;;;:::i;15417:240::-;;;;;;;;;;-1:-1:-1;15417:240:0;;;;;:::i;:::-;;:::i;13326:84::-;;;;;;;;;;;;;:::i;16584:177::-;;;;;;;;;;-1:-1:-1;16584:177:0;;;;;:::i;:::-;;:::i;16391:185::-;;;;;;;;;;-1:-1:-1;16391:185:0;;;;;:::i;:::-;;:::i;16769:123::-;;;;;;;;;;-1:-1:-1;16769:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;16856:28:0;16832:4;16856:28;;;:19;:28;;;;;;;;;16769:123;390:87;;;;;;;;;;-1:-1:-1;436:7:0;463:6;-1:-1:-1;;;;;463:6:0;390:87;;9324;;;;;;;;;;-1:-1:-1;9396:7:0;;;;;;;;;;;;-1:-1:-1;;;9396:7:0;;;;9324:87;;14831:209;;;;;;;;;;-1:-1:-1;14831:209:0;;;;;:::i;:::-;;:::i;10331:121::-;;;;;;;;;;-1:-1:-1;10331:121:0;;;;;:::i;:::-;;:::i;16208:175::-;;;;;;;;;;-1:-1:-1;16208:175:0;;;;;:::i;:::-;;:::i;16900:213::-;;;;;;;;;;-1:-1:-1;16900:213:0;;;;;:::i;:::-;;:::i;15912:288::-;;;;;;;;;;-1:-1:-1;15912:288:0;;;;;:::i;:::-;;:::i;1856:52::-;;;;;;;;;;;;;;;;2553:29;;;;;;;;;;-1:-1:-1;2553:29:0;;;;-1:-1:-1;;;2553:29:0;;;;;;17121:247;;;;;;;;;;-1:-1:-1;17121:247:0;;;;;:::i;:::-;;:::i;2589:25::-;;;;;;;;;;-1:-1:-1;2589:25:0;;;;-1:-1:-1;;;2589:25:0;;;;;;2445:30;;;;;;;;;;-1:-1:-1;2445:30:0;;;;-1:-1:-1;;;2445:30:0;;;;;;9720:134;;;;;;;;;;-1:-1:-1;9720:134:0;;;;;:::i;:::-;;:::i;1963:62::-;;;;;;;;;;;;;;;;1915:41;;;;;;;;;;;;;;;;9862:115;9932:37;9941:10;9953:7;9962:6;9932:8;:37::i;:::-;9862:115;;:::o;10460:399::-;10552:36;10562:6;10570:9;10581:6;10552:9;:36::i;:::-;-1:-1:-1;;;;;10628:19:0;;10601:24;10628:19;;;:11;:19;;;;;;;;10648:10;10628:31;;;;;;;;10678:26;;;;10670:79;;;;-1:-1:-1;;;10670:79:0;;4282:2:1;10670:79:0;;;4264:21:1;4321:2;4301:18;;;4294:30;4360:34;4340:18;;;4333:62;-1:-1:-1;;;4411:18:1;;;4404:38;4459:19;;10670:79:0;;;;;;;;;10785:55;10794:6;10802:10;10833:6;10814:16;:25;10785:8;:55::i;:::-;10541:318;10460:399;;;:::o;15665:239::-;536:10;525:7;436;463:6;-1:-1:-1;;;;;463:6:0;;390:87;525:7;-1:-1:-1;;;;;525:21:0;;517:66;;;;-1:-1:-1;;;517:66:0;;;;;;;:::i;:::-;15802:4:::1;15792:6;15771:17;1830::::0;15787:1:::1;15771:17;:::i;:::-;15770:28;;;;:::i;:::-;15769:37;;;;:::i;:::-;15753:12;:53;;15745:105;;;::::0;-1:-1:-1;;;15745:105:0;;5579:2:1;15745:105:0::1;::::0;::::1;5561:21:1::0;5618:2;5598:18;;;5591:30;5657:34;5637:18;;;5630:62;-1:-1:-1;;;5708:18:1;;;5701:37;5755:19;;15745:105:0::1;5377:403:1::0;15745:105:0::1;15873:23;:12:::0;15889:6:::1;15873:23;:::i;:::-;15861:9;:35:::0;-1:-1:-1;15665:239:0:o;13418:300::-;536:10;525:7;436;463:6;-1:-1:-1;;;;;463:6:0;;390:87;525:7;-1:-1:-1;;;;;525:21:0;;517:66;;;;-1:-1:-1;;;517:66:0;;;;;;;:::i;:::-;13528:6:::1;:16:::0;;-1:-1:-1;;;;13555:26:0;-1:-1:-1;;;13528:16:0::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;;;13555:26:0;;;;;-1:-1:-1;;;13555:26:0;;::::1;::::0;::::1;::::0;;;::::1;-1:-1:-1::0;;;;13592:18:0::1;-1:-1:-1::0;;;13592:18:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;13653:7;::::1;::::0;::::1;::::0;13630:20:::1;::::0;13639:11;;::::1;::::0;::::1;::::0;13630:6;::::1;;:20;:::i;:::-;:30;;;;:::i;:::-;13629:39;;13665:3;13629:39;13621:89;;;::::0;-1:-1:-1;;;13621:89:0;;6140:2:1;13621:89:0::1;::::0;::::1;6122:21:1::0;6179:2;6159:18;;;6152:30;6218:34;6198:18;;;6191:62;-1:-1:-1;;;6269:18:1;;;6262:35;6314:19;;13621:89:0::1;5938:401:1::0;13621:89:0::1;13418:300:::0;;;:::o;13726:337::-;536:10;525:7;436;463:6;-1:-1:-1;;;;;463:6:0;;390:87;525:7;-1:-1:-1;;;;;525:21:0;;517:66;;;;-1:-1:-1;;;517:66:0;;;;;;;:::i;:::-;13841:2:::1;13824:13;:19;;;;13816:73;;;::::0;-1:-1:-1;;;13816:73:0;;6546:2:1;13816:73:0::1;::::0;::::1;6528:21:1::0;6585:2;6565:18;;;6558:30;6624:34;6604:18;;;6597:62;-1:-1:-1;;;6675:18:1;;;6668:39;6724:19;;13816:73:0::1;6344:405:1::0;13816:73:0::1;13926:2;13908:14;:20;;;;13900:75;;;::::0;-1:-1:-1;;;13900:75:0;;6956:2:1;13900:75:0::1;::::0;::::1;6938:21:1::0;6995:2;6975:18;;;6968:30;7034:34;7014:18;;;7007:62;-1:-1:-1;;;7085:18:1;;;7078:40;7135:19;;13900:75:0::1;6754:406:1::0;13900:75:0::1;13986:12;:28:::0;;-1:-1:-1;;;;14025:30:0;-1:-1:-1;;;13986:28:0::1;::::0;;::::1;;-1:-1:-1::0;;;;14025:30:0;;-1:-1:-1;;;14025:30:0;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;13726:337::o;14071:136::-;536:10;525:7;436;463:6;-1:-1:-1;;;;;463:6:0;;390:87;525:7;-1:-1:-1;;;;;525:21:0;;517:66;;;;-1:-1:-1;;;517:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14160:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:39;;-1:-1:-1;;14160:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14071:136::o;15048:361::-;536:10;525:7;436;463:6;-1:-1:-1;;;;;463:6:0;;390:87;525:7;-1:-1:-1;;;;;525:21:0;;517:66;;;;-1:-1:-1;;;517:66:0;;;;;;;:::i;:::-;15173:6:::1;15152:17;1830::::0;15168:1:::1;15152:17;:::i;:::-;15151:28;;;;:::i;:::-;15134:13;:45;;15126:111;;;::::0;-1:-1:-1;;;15126:111:0;;7367:2:1;15126:111:0::1;::::0;::::1;7349:21:1::0;7406:2;7386:18;;;7379:30;7445:34;7425:18;;;7418:62;-1:-1:-1;;;7496:18:1;;;7489:51;7557:19;;15126:111:0::1;7165:417:1::0;15126:111:0::1;15295:4;15274:17;1830::::0;15290:1:::1;15274:17;:::i;:::-;15273:26;;;;:::i;:::-;15256:13;:43;;15248:108;;;::::0;-1:-1:-1;;;15248:108:0;;7789:2:1;15248:108:0::1;::::0;::::1;7771:21:1::0;7828:2;7808:18;;;7801:30;7867:34;7847:18;;;7840:62;-1:-1:-1;;;7918:18:1;;;7911:50;7978:19;;15248:108:0::1;7587:416:1::0;15248:108:0::1;15367:18;:34:::0;15048:361::o;14215:158::-;536:10;525:7;436;463:6;-1:-1:-1;;;;;463:6:0;;390:87;525:7;-1:-1:-1;;;;;525:21:0;;517:66;;;;-1:-1:-1;;;517:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14314:40:0;;;::::1;;::::0;;;:31:::1;:40;::::0;;;;:51;;-1:-1:-1;;14314:51:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14215:158::o;14381:442::-;536:10;525:7;436;463:6;-1:-1:-1;;;;;463:6:0;;390:87;525:7;-1:-1:-1;;;;;525:21:0;;517:66;;;;-1:-1:-1;;;517:66:0;;;;;;;:::i;:::-;14456:8:::1;::::0;-1:-1:-1;;;14456:8:0;::::1;;;14455:9;14447:38;;;::::0;-1:-1:-1;;;14447:38:0;;8210:2:1;14447:38:0::1;::::0;::::1;8192:21:1::0;8249:2;8229:18;;;8222:30;-1:-1:-1;;;8268:18:1;;;8261:46;8324:18;;14447:38:0::1;8008:340:1::0;14447:38:0::1;14496:68;14513:4;3384:42;-1:-1:-1::0;;14496:8:0::1;:68::i;:::-;14647:4;14667:24;::::0;;;:9:::1;:24;::::0;;;;;;14738:10:::1;::::0;14575:214;;-1:-1:-1;;;14575:214:0;;::::1;::::0;::::1;8694:34:1::0;;;;8744:18;;;8737:34;8787:18;;;8780:34;;;8830:18;;;8823:34;;;;-1:-1:-1;;;;;14738:10:0::1;8873:19:1::0;;;8866:44;14763:15:0::1;8926:19:1::0;;;8919:35;3384:42:0::1;::::0;14575:31:::1;::::0;14614:9:::1;::::0;8628:19:1;;14575:214:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;14800:8:0::1;:15:::0;;-1:-1:-1;;;;14800:15:0::1;-1:-1:-1::0;;;14800:15:0::1;::::0;;-1:-1:-1;14381:442:0:o;611:92::-;536:10;525:7;436;463:6;-1:-1:-1;;;;;463:6:0;;390:87;525:7;-1:-1:-1;;;;;525:21:0;;517:66;;;;-1:-1:-1;;;517:66:0;;;;;;;:::i;:::-;693:1:::1;676:19:::0;;-1:-1:-1;;;;;;676:19:0::1;::::0;;611:92::o;15417:240::-;536:10;525:7;436;463:6;-1:-1:-1;;;;;463:6:0;;390:87;525:7;-1:-1:-1;;;;;525:21:0;;517:66;;;;-1:-1:-1;;;517:66:0;;;;;;;:::i;:::-;15543:4:::1;15533:6;15512:17;1830::::0;15528:1:::1;15512:17;:::i;:::-;15511:28;;;;:::i;:::-;15510:37;;;;:::i;:::-;15498:8;:49;;15490:106;;;::::0;-1:-1:-1;;;15490:106:0;;9478:2:1;15490:106:0::1;::::0;::::1;9460:21:1::0;9517:2;9497:18;;;9490:30;9556:34;9536:18;;;9529:62;-1:-1:-1;;;9607:18:1;;;9600:42;9659:19;;15490:106:0::1;9276:408:1::0;15490:106:0::1;15630:19;:8:::0;15642:6:::1;15630:19;:::i;:::-;15607:20;:42:::0;-1:-1:-1;15417:240:0:o;13326:84::-;536:10;525:7;436;463:6;-1:-1:-1;;;;;463:6:0;;390:87;525:7;-1:-1:-1;;;;;525:21:0;;517:66;;;;-1:-1:-1;;;517:66:0;;;;;;;:::i;:::-;13380:14:::1;:22:::0;;-1:-1:-1;;;;13380:22:0::1;::::0;;13326:84::o;16584:177::-;536:10;525:7;436;463:6;-1:-1:-1;;;;;463:6:0;;390:87;525:7;-1:-1:-1;;;;;525:21:0;;517:66;;;;-1:-1:-1;;;517:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16668:24:0;::::1;16660:59;;;;-1:-1:-1::0;;;16660:59:0::1;;;;;;;:::i;:::-;16730:10;:23:::0;;-1:-1:-1;;;;;;16730:23:0::1;-1:-1:-1::0;;;;;16730:23:0;;;::::1;::::0;;;::::1;::::0;;16584:177::o;16391:185::-;536:10;525:7;436;463:6;-1:-1:-1;;;;;463:6:0;;390:87;525:7;-1:-1:-1;;;;;525:21:0;;517:66;;;;-1:-1:-1;;;517:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16479:24:0;::::1;16471:59;;;;-1:-1:-1::0;;;16471:59:0::1;;;;;;;:::i;:::-;16541:14;:27:::0;;-1:-1:-1;;;;;;16541:27:0::1;-1:-1:-1::0;;;;;16541:27:0;;;::::1;::::0;;;::::1;::::0;;16391:185::o;14831:209::-;536:10;525:7;436;463:6;-1:-1:-1;;;;;463:6:0;;390:87;525:7;-1:-1:-1;;;;;525:21:0;;517:66;;;;-1:-1:-1;;;517:66:0;;;;;;;:::i;:::-;14938:13:::1;-1:-1:-1::0;;;;;14930:21:0::1;:4;-1:-1:-1::0;;;;;14930:21:0::1;::::0;14922:60:::1;;;::::0;-1:-1:-1;;;14922:60:0;;10242:2:1;14922:60:0::1;::::0;::::1;10224:21:1::0;10281:2;10261:18;;;10254:30;10320:28;10300:18;;;10293:56;10366:18;;14922:60:0::1;10040:350:1::0;14922:60:0::1;-1:-1:-1::0;;;;;14993:31:0;;;::::1;;::::0;;;:25:::1;:31;::::0;;;;:39;;-1:-1:-1;;14993:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14831:209::o;10331:121::-;10404:40;10414:10;10426:9;10437:6;10404:9;:40::i;16208:175::-;536:10;525:7;436;463:6;-1:-1:-1;;;;;463:6:0;;390:87;525:7;-1:-1:-1;;;;;525:21:0;;517:66;;;;-1:-1:-1;;;517:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16291:24:0;::::1;16283:59;;;;-1:-1:-1::0;;;16283:59:0::1;;;;;;;:::i;:::-;16353:9;:22:::0;;-1:-1:-1;;;;;;16353:22:0::1;-1:-1:-1::0;;;;;16353:22:0;;;::::1;::::0;;;::::1;::::0;;16208:175::o;16900:213::-;536:10;525:7;436;463:6;-1:-1:-1;;;;;463:6:0;;390:87;525:7;-1:-1:-1;;;;;525:21:0;;517:66;;;;-1:-1:-1;;;517:66:0;;;;;;;:::i;:::-;17012:38:::1;::::0;-1:-1:-1;;;17012:38:0;;17044:4:::1;17012:38;::::0;::::1;1176:51:1::0;16985:24:0::1;::::0;-1:-1:-1;;;;;17012:23:0;::::1;::::0;::::1;::::0;1149:18:1;;17012:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17061:44;::::0;-1:-1:-1;;;17061:44:0;;-1:-1:-1;;;;;10776:32:1;;;17061:44:0::1;::::0;::::1;10758:51:1::0;10825:18;;;10818:34;;;16985:65:0;;-1:-1:-1;17061:22:0;;::::1;::::0;::::1;::::0;10731:18:1;;17061:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16974:139;16900:213:::0;;:::o;15912:288::-;536:10;525:7;436;463:6;-1:-1:-1;;;;;463:6:0;;390:87;525:7;-1:-1:-1;;;;;525:21:0;;517:66;;;;-1:-1:-1;;;517:66:0;;;;;;;:::i;:::-;16037:4:::1;16027:6;16006:17;1830::::0;16022:1:::1;16006:17;:::i;:::-;16005:28;;;;:::i;:::-;16004:37;;;;:::i;:::-;15994:6;:47;;15986:115;;;::::0;-1:-1:-1;;;15986:115:0;;11065:2:1;15986:115:0::1;::::0;::::1;11047:21:1::0;11104:2;11084:18;;;11077:30;11143:34;11123:18;;;11116:62;11214:25;11194:18;;;11187:53;11257:19;;15986:115:0::1;10863:419:1::0;15986:115:0::1;16135:17;:6:::0;16145::::1;16135:17;:::i;:::-;16112:20;:40:::0;16175:17:::1;:6:::0;16185::::1;16175:17;:::i;17121:247::-:0;536:10;525:7;436;463:6;-1:-1:-1;;;;;463:6:0;;390:87;525:7;-1:-1:-1;;;;;525:21:0;;517:66;;;;-1:-1:-1;;;517:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17199:18:0;::::1;17191:46;;;::::0;-1:-1:-1;;;17191:46:0;;11489:2:1;17191:46:0::1;::::0;::::1;11471:21:1::0;11528:2;11508:18;;;11501:30;-1:-1:-1;;;11547:18:1;;;11540:45;11602:18;;17191:46:0::1;11287:339:1::0;17191:46:0::1;17251:12;17269:4;-1:-1:-1::0;;;;;17269:9:0::1;17286:21;17269:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17250:62;;;17331:7;17323:37;;;::::0;-1:-1:-1;;;17323:37:0;;12043:2:1;17323:37:0::1;::::0;::::1;12025:21:1::0;12082:2;12062:18;;;12055:30;-1:-1:-1;;;12101:18:1;;;12094:47;12158:18;;17323:37:0::1;11841:341:1::0;9720:134:0;-1:-1:-1;;;;;9819:18:0;;;9792:7;9819:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;9720:134;;;;;:::o;9985:338::-;-1:-1:-1;;;;;10079:19:0;;10071:68;;;;-1:-1:-1;;;10071:68:0;;12389:2:1;10071:68:0;;;12371:21:1;12428:2;12408:18;;;12401:30;12467:34;12447:18;;;12440:62;-1:-1:-1;;;12518:18:1;;;12511:34;12562:19;;10071:68:0;12187:400:1;10071:68:0;-1:-1:-1;;;;;10158:21:0;;10150:68;;;;-1:-1:-1;;;10150:68:0;;12794:2:1;10150:68:0;;;12776:21:1;12833:2;12813:18;;;12806:30;12872:34;12852:18;;;12845:62;-1:-1:-1;;;12923:18:1;;;12916:32;12965:19;;10150:68:0;12592:398:1;10150:68:0;-1:-1:-1;;;;;10231:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10283:32;;1384:25:1;;;10283:32:0;;1357:18:1;10283:32:0;;;;;;;9985:338;;;:::o;10867:2451::-;-1:-1:-1;;;;;10955:18:0;;10947:68;;;;-1:-1:-1;;;10947:68:0;;13197:2:1;10947:68:0;;;13179:21:1;13236:2;13216:18;;;13209:30;13275:34;13255:18;;;13248:62;-1:-1:-1;;;13326:18:1;;;13319:35;13371:19;;10947:68:0;12995:401:1;10947:68:0;-1:-1:-1;;;;;11034:16:0;;11026:64;;;;-1:-1:-1;;;11026:64:0;;13603:2:1;11026:64:0;;;13585:21:1;13642:2;13622:18;;;13615:30;13681:34;13661:18;;;13654:62;-1:-1:-1;;;13732:18:1;;;13725:33;13775:19;;11026:64:0;13401:399:1;11026:64:0;11107:14;;-1:-1:-1;;;11107:14:0;;;;11103:858;;;436:7;463:6;-1:-1:-1;;;;;11142:15:0;;;463:6;;11142:15;;;;:32;;-1:-1:-1;436:7:0;463:6;-1:-1:-1;;;;;11161:13:0;;;463:6;;11161:13;;11142:32;:52;;;;-1:-1:-1;;;;;;11178:16:0;;;;11142:52;:77;;;;-1:-1:-1;;;;;;11198:21:0;;11212:6;11198:21;;11142:77;:90;;;;-1:-1:-1;11224:8:0;;-1:-1:-1;;;11224:8:0;;;;11223:9;11142:90;11138:812;;;-1:-1:-1;;;;;11257:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;11293:35:0;;;;;;:31;:35;;;;;;;;11292:36;11257:71;11253:682;;;11371:20;;11361:6;:30;;11353:80;;;;-1:-1:-1;;;11353:80:0;;14007:2:1;11353:80:0;;;13989:21:1;14046:2;14026:18;;;14019:30;14085:34;14065:18;;;14058:62;-1:-1:-1;;;14136:18:1;;;14129:35;14181:19;;11353:80:0;13805:401:1;11353:80:0;11490:9;;-1:-1:-1;;;;;9686:18:0;;9659:7;9686:18;;;:9;:18;;;;;;11464:22;;:6;:22;:::i;:::-;:35;;11456:67;;;;-1:-1:-1;;;11456:67:0;;14543:2:1;11456:67:0;;;14525:21:1;14582:2;14562:18;;;14555:30;-1:-1:-1;;;14601:18:1;;;14594:49;14660:18;;11456:67:0;14341:343:1;11456:67:0;11253:682;;;-1:-1:-1;;;;;11553:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;11587:37:0;;;;;;:31;:37;;;;;;;;11586:38;11553:71;11549:386;;;11667:20;;11657:6;:30;;11649:80;;;;-1:-1:-1;;;11649:80:0;;14891:2:1;11649:80:0;;;14873:21:1;14930:2;14910:18;;;14903:30;14969:34;14949:18;;;14942:62;-1:-1:-1;;;15020:18:1;;;15013:36;15066:19;;11649:80:0;14689:402:1;11549:386:0;-1:-1:-1;;;;;11760:35:0;;;;;;:31;:35;;;;;;;;11759:36;:64;;;;-1:-1:-1;;;;;;11800:22:0;;2313:42;11800:22;;11759:64;11755:180;;;11882:9;;-1:-1:-1;;;;;9686:18:0;;9659:7;9686:18;;;:9;:18;;;;;;11856:22;;:6;:22;:::i;:::-;:35;;11848:67;;;;-1:-1:-1;;;11848:67:0;;14543:2:1;11848:67:0;;;14525:21:1;14582:2;14562:18;;;14555:30;-1:-1:-1;;;14601:18:1;;;14594:49;14660:18;;11848:67:0;14341:343:1;11848:67:0;12016:18;;12006:4;11973:12;9686:18;;;:9;:18;;;;;;-1:-1:-1;11988:46:0;;;;;12051:20;;-1:-1:-1;12063:8:0;;-1:-1:-1;;;12063:8:0;;;;12062:9;12051:20;:56;;;;-1:-1:-1;;;;;;12076:31:0;;;;;;:25;:31;;;;;;;;12075:32;12051:56;:86;;;;-1:-1:-1;;;;;;12112:25:0;;;;;;:19;:25;;;;;;;;12111:26;12051:86;:114;;;;-1:-1:-1;;;;;;12142:23:0;;;;;;:19;:23;;;;;;;;12141:24;12051:114;12047:218;;;12182:8;:15;;-1:-1:-1;;;;12182:15:0;-1:-1:-1;;;12182:15:0;;;12212:10;:8;:10::i;:::-;12237:8;:16;;-1:-1:-1;;;;12237:16:0;;;12047:218;12293:8;;-1:-1:-1;;;;;12318:25:0;;12277:12;12318:25;;;:19;:25;;;;;;12293:8;-1:-1:-1;;;12293:8:0;;;;;12292:9;;12318:25;;:52;;-1:-1:-1;;;;;;12347:23:0;;;;;;:19;:23;;;;;;;;12318:52;12314:100;;;-1:-1:-1;12397:5:0;12314:100;12426:12;12457:7;12453:552;;;-1:-1:-1;;;;;12485:29:0;;;;;;:25;:29;;;;;;;;:50;;;;-1:-1:-1;12518:13:0;;-1:-1:-1;;;12518:13:0;;;;:17;;12485:50;12481:264;;;12573:13;;12590:4;;12564:22;;-1:-1:-1;;;12573:13:0;;;;12564:6;:22;:::i;:::-;12563:31;;;;:::i;:::-;12556:38;;12481:264;;;-1:-1:-1;;;;;12620:31:0;;;;;;:25;:31;;;;;;;;:51;;;;-1:-1:-1;12655:12:0;;-1:-1:-1;;;12655:12:0;;;;:16;;12620:51;12616:129;;;12709:12;;12725:4;;12700:21;;-1:-1:-1;;;12709:12:0;;;;12700:6;:21;:::i;:::-;12699:30;;;;:::i;:::-;12692:37;;12616:129;12765:8;;12761:233;;12803:13;12812:4;12803:6;:13;:::i;:::-;12886:4;12868:24;;;;:9;:24;;;;;;;:32;;;;;;12943:35;12794:22;;-1:-1:-1;12886:4:0;-1:-1:-1;;;;;12943:35:0;;;;;;;12896:4;1384:25:1;;1372:2;1357:18;;1238:177;12943:35:0;;;;;;;;12761:233;-1:-1:-1;;;;;13041:15:0;;13017:21;13041:15;;;:9;:15;;;;;;13075:23;;;;13067:74;;;;-1:-1:-1;;;13067:74:0;;15431:2:1;13067:74:0;;;15413:21:1;15470:2;15450:18;;;15443:30;15509:34;15489:18;;;15482:62;-1:-1:-1;;;15560:18:1;;;15553:36;15606:19;;13067:74:0;15229:402:1;13067:74:0;-1:-1:-1;;;;;13177:15:0;;;;;;;:9;:15;;;;;;13195:22;;;13177:40;;13232:13;;;;;;;;;;:23;;;;;;13284:26;;;;;;13211:6;1384:25:1;;1372:2;1357:18;;1238:177;13284:26:0;;;;;;;;10936:2382;;;;10867:2451;;;:::o;17376:1114::-;17439:18;;17415:21;17524:23;17439:18;17545:2;17524:23;:::i;:::-;17515:4;9659:7;9686:18;;;:9;:18;;;;;;17497:50;17493:122;;;17580:18;;:23;;17601:2;17580:23;:::i;:::-;17564:39;;17493:122;17651:16;;;17665:1;17651:16;;;;;;;;17627:21;;17651:16;;;;;;;;;;-1:-1:-1;17651:16:0;17627:40;;17696:4;17678;17683:1;17678:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;17678:23:0;;;-1:-1:-1;;;;;17678:23:0;;;;;2394:42;17712:4;17717:1;17712:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17712:14:0;;;:7;;;;;;;;;;;:14;17739:122;;-1:-1:-1;;;17739:122:0;;3384:42;;17739:66;;:122;;17806:13;;17821:1;;17824:4;;17838;;17845:15;;17739:122;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17895:21:0;;-1:-1:-1;;17931:14:0;;;-1:-1:-1;17927:556:0;;17996:6;;17962:17;;18006:3;;17983:19;;-1:-1:-1;;;17996:6:0;;;;17983:10;:19;:::i;:::-;17982:27;;;;:::i;:::-;18059:7;;17962:47;;-1:-1:-1;18024:18:0;;18070:3;;18046:20;;-1:-1:-1;;;18059:7:0;;;;18046:10;:20;:::i;:::-;18045:28;;;;:::i;:::-;18127:11;;18024:49;;-1:-1:-1;18088:22:0;;18142:3;;18114:24;;-1:-1:-1;;;18127:11:0;;;;18114:10;:24;:::i;:::-;18113:32;;;;:::i;:::-;18184:10;;18176:47;;18088:57;;-1:-1:-1;;;;;;18184:10:0;;18208;;18176:47;;;;18208:10;18184;18176:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18260:14:0;;18252:55;;18162:61;;-1:-1:-1;;;;;;18260:14:0;;18288;;18252:55;;;;18288:14;18260;18252:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18344:9:0;;18336:45;;18238:69;;-1:-1:-1;;;;;;18344:9:0;;18367;;18336:45;;;;18367:9;18344;18336:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18403:68:0;;;17116:25:1;;;17172:2;17157:18;;17150:34;;;17200:18;;;17193:34;;;17258:2;17243:18;;17236:34;;;18322:59:0;;-1:-1:-1;18403:68:0;;17103:3:1;17088:19;18403:68:0;;;;;;;17947:536;;;17404:1086;;;;17376:1114::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1609:328::-;1686:6;1694;1702;1755:2;1743:9;1734:7;1730:23;1726:32;1723:52;;;1771:1;1768;1761:12;1723:52;1794:29;1813:9;1794:29;:::i;:::-;1784:39;;1842:38;1876:2;1865:9;1861:18;1842:38;:::i;:::-;1832:48;;1927:2;1916:9;1912:18;1899:32;1889:42;;1609:328;;;;;:::o;1942:180::-;2001:6;2054:2;2042:9;2033:7;2029:23;2025:32;2022:52;;;2070:1;2067;2060:12;2022:52;-1:-1:-1;2093:23:1;;1942:180;-1:-1:-1;1942:180:1:o;2127:156::-;2193:20;;2253:4;2242:16;;2232:27;;2222:55;;2273:1;2270;2263:12;2288:322;2359:6;2367;2375;2428:2;2416:9;2407:7;2403:23;2399:32;2396:52;;;2444:1;2441;2434:12;2396:52;2467:27;2484:9;2467:27;:::i;:::-;2457:37;;2513:36;2545:2;2534:9;2530:18;2513:36;:::i;:::-;2503:46;;2568:36;2600:2;2589:9;2585:18;2568:36;:::i;:::-;2558:46;;2288:322;;;;;:::o;3015:252::-;3079:6;3087;3140:2;3128:9;3119:7;3115:23;3111:32;3108:52;;;3156:1;3153;3146:12;3108:52;3179:27;3196:9;3179:27;:::i;:::-;3169:37;;3225:36;3257:2;3246:9;3242:18;3225:36;:::i;:::-;3215:46;;3015:252;;;;;:::o;3272:347::-;3337:6;3345;3398:2;3386:9;3377:7;3373:23;3369:32;3366:52;;;3414:1;3411;3404:12;3366:52;3437:29;3456:9;3437:29;:::i;:::-;3427:39;;3516:2;3505:9;3501:18;3488:32;3563:5;3556:13;3549:21;3542:5;3539:32;3529:60;;3585:1;3582;3575:12;3529:60;3608:5;3598:15;;;3272:347;;;;;:::o;3624:186::-;3683:6;3736:2;3724:9;3715:7;3711:23;3707:32;3704:52;;;3752:1;3749;3742:12;3704:52;3775:29;3794:9;3775:29;:::i;:::-;3765:39;3624:186;-1:-1:-1;;;3624:186:1:o;3815:260::-;3883:6;3891;3944:2;3932:9;3923:7;3919:23;3915:32;3912:52;;;3960:1;3957;3950:12;3912:52;3983:29;4002:9;3983:29;:::i;:::-;3973:39;;4031:38;4065:2;4054:9;4050:18;4031:38;:::i;4489:356::-;4691:2;4673:21;;;4710:18;;;4703:30;4769:34;4764:2;4749:18;;4742:62;4836:2;4821:18;;4489:356::o;4850:127::-;4911:10;4906:3;4902:20;4899:1;4892:31;4942:4;4939:1;4932:15;4966:4;4963:1;4956:15;4982:168;5055:9;;;5086;;5103:15;;;5097:22;;5083:37;5073:71;;5124:18;;:::i;5155:217::-;5195:1;5221;5211:132;;5265:10;5260:3;5256:20;5253:1;5246:31;5300:4;5297:1;5290:15;5328:4;5325:1;5318:15;5211:132;-1:-1:-1;5357:9:1;;5155:217::o;5785:148::-;5873:4;5852:12;;;5866;;;5848:31;;5891:13;;5888:39;;;5907:18;;:::i;8965:306::-;9053:6;9061;9069;9122:2;9110:9;9101:7;9097:23;9093:32;9090:52;;;9138:1;9135;9128:12;9090:52;9167:9;9161:16;9151:26;;9217:2;9206:9;9202:18;9196:25;9186:35;;9261:2;9250:9;9246:18;9240:25;9230:35;;8965:306;;;;;:::o;9689:346::-;9891:2;9873:21;;;9930:2;9910:18;;;9903:30;-1:-1:-1;;;9964:2:1;9949:18;;9942:52;10026:2;10011:18;;9689:346::o;10395:184::-;10465:6;10518:2;10506:9;10497:7;10493:23;10489:32;10486:52;;;10534:1;10531;10524:12;10486:52;-1:-1:-1;10557:16:1;;10395:184;-1:-1:-1;10395:184:1:o;14211:125::-;14276:9;;;14297:10;;;14294:36;;;14310:18;;:::i;15096:128::-;15163:9;;;15184:11;;;15181:37;;;15198:18;;:::i;15768:127::-;15829:10;15824:3;15820:20;15817:1;15810:31;15860:4;15857:1;15850:15;15884:4;15881:1;15874:15;15900:980;16162:4;16210:3;16199:9;16195:19;16241:6;16230:9;16223:25;16267:2;16305:6;16300:2;16289:9;16285:18;16278:34;16348:3;16343:2;16332:9;16328:18;16321:31;16372:6;16407;16401:13;16438:6;16430;16423:22;16476:3;16465:9;16461:19;16454:26;;16515:2;16507:6;16503:15;16489:29;;16536:1;16546:195;16560:6;16557:1;16554:13;16546:195;;;16625:13;;-1:-1:-1;;;;;16621:39:1;16609:52;;16716:15;;;;16681:12;;;;16657:1;16575:9;16546:195;;;-1:-1:-1;;;;;;;16797:32:1;;;;16792:2;16777:18;;16770:60;-1:-1:-1;;;16861:3:1;16846:19;16839:35;16758:3;15900:980;-1:-1:-1;;;15900:980:1:o

Swarm Source

ipfs://c1392e9a413e68f5d9f9c3b3caa1fd993fd6a1fb59fbc7b0ae11549aeb272e42
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.