ETH Price: $3,008.46 (+4.43%)
Gas: 2 Gwei

Token

Burger King (BK)
 

Overview

Max Total Supply

1,000,000,000 BK

Holders

148

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,454,413.293907486 BK

Value
$0.00
0xeff77c6c11eb30a3e8881fbb8d018aea6e6b1a79
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:
BurgerKing

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// https://t.me/Burgerkingcommunity - There is only 1 king, and he ain't from england. 
// SPDX-License-Identifier: MIT
pragma solidity =0.8.19;
 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
 
interface IERC20 {
    function totalSupply() external view returns (uint256);
 
    function balanceOf(address account) external view returns (uint256);
 
    function transfer(address recipient, uint256 amount) external returns (bool);
 
    function allowance(address owner, address spender) external view returns (uint256);
 
    function approve(address spender, uint256 amount) external returns (bool);
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
 
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}
 
contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
 
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
 
    function owner() public view returns (address) {
        return _owner;
    }
 
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
 
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
 
}
 
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
 
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
 
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
 
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
 
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
 
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}
 
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
 
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
 
    function factory() external pure returns (address);
 
    function WETH() external pure returns (address);
 
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}
 
contract BurgerKing is Context, IERC20, Ownable {
    using SafeMath for uint256;

    string constant private _name = "Burger King";
    string constant private _symbol = "BK";   
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1_000_000_000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;  
    uint256 private _taxFeeOnBuy = 5;  
    uint256 private _redisFeeOnSell = 0;  
    uint256 private _taxFeeOnSell = 15;
 
    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
 
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
 
    mapping(address => bool) public bots; 
    mapping(uint256 => uint256) swapBlock;
    address payable private _developmentAddress = payable(_msgSender()); 
    address payable private _marketingAddress;
 
    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
 
    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = false;
 
    uint256 public _maxTxAmount = 25 * _tTotal / 1e3; 
    uint256 public _maxWalletSize = 25 * _tTotal / 1e3;
    uint256 _swapTokensAtAmount = 1 * _tTotal / 1e3;
    uint256 constant _maxSwapTokenAmount = 1 * _tTotal / 1e2;
 
    event MaxTxAmountUpdated(uint256 _maxTxAmount);

    event MaxWalletAmountUpdated(uint256 _maxWalletAmount);

    event SwapTokensAtAmountUpdated(uint256 _swapTokensAtAmount);

    event SwapEnabledUpdated(bool _swapEnabled);

    event MarketingWalletUpdated(address _marketingAddress);

    event DevelopmentWalletUpdated(address _developmentAddress);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor() {
 
        _rOwned[_msgSender()] = _rTotal;
 
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
 
        _isExcludedFromFee[address(this)] = true;

        bots[0x00003c85bF903e179f1224bc8aB2EA4Ed8000001] = true;
        bots[0x7E41300B7c78a805F225447823446A1A29bBF1e2] = true;
        bots[0xFAdEd000Cc97f8707E3A5598e5E1F7DA5DBD8186] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }
    
    receive() external payable {}
 
    function name() public pure returns (string memory) {
        return _name;
    }
 
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
 
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
 
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
 
    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }
 
    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
 
    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }
 
    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }
 
    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "TOKEN: Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }
 
    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
 
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
 
        _redisFee = 0;
        _taxFee = 0;
    }
 
    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }
 
    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 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");
        require(amount > 0, "ERC20: transfer amount must be greater than zero"); 

        if (from != _developmentAddress && to != _developmentAddress) {
            require(!bots[from] && !bots[to], "TOKEN: No bots allowed");
            require(tradingOpen, "TOKEN: Cannot send tokens until trading is enabled");
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");

            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
    
            uint256 contractTokenBalance = balanceOf(address(this));

            if(contractTokenBalance >= _maxSwapTokenAmount)
            {
                contractTokenBalance = _maxSwapTokenAmount;
            }

            if (from != uniswapV2Pair && canSwap(contractTokenBalance, amount) &&  !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        bool takeFee = true;
 
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } 
        else {
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }           
        } 
        _tokenTransfer(from, to, amount, takeFee);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
        swapBlock[block.number]++;
    }

    function canSwap(uint256 contractTokenBalance, uint256 amount) internal view returns (bool) {
        return contractTokenBalance >= _swapTokensAtAmount && !inSwap && swapEnabled && 
            swapBlock[block.number] < 2 && amount >= _swapTokensAtAmount / 2;
    }
 
    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }
 
    function openTrading() public onlyOwner {
        require(!tradingOpen, "TOKEN: trading already open");
        tradingOpen = true;
    }
 
    function manualSwapback(uint256 percentToSwap) external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress, "TOKEN: Team restricted");
        uint256 tokensToSwap = percentToSwap * balanceOf(address(this)) / 100;
        swapTokensForEth(tokensToSwap);
    }
 
    function manualSend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress, "TOKEN: Team restricted");
        require(address(this).balance > 0, "TOKEN: No eth to transfer");
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
 
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }
 
    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }
 
    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }
 
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }
 
    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }
 
    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }
 
    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }
 
    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }
 
    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
 
    function setFees(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    function setBots(address[] calldata _bots, bool areBots) external onlyOwner {
        for(uint256 i = 0;i<_bots.length;i++){
            bots[_bots[i]] = areBots;
        }
    }
 
    //Set minimum tokens required to swap.
    function setSwapThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        require(swapTokensAtAmount <= _maxSwapTokenAmount && swapTokensAtAmount >= _tTotal / 1e3, "TOKEN: swapTokensAtAmount must be higher or equal to 0.1% totalSupply");
        _swapTokensAtAmount = swapTokensAtAmount;
        emit SwapTokensAtAmountUpdated(swapTokensAtAmount);
    }
 
    function toggleSwaps(bool _swapEnabled) public onlyOwner {
        require(swapEnabled != _swapEnabled, "TOKEN: swapEnabled assigned old value");
        swapEnabled = _swapEnabled;
        emit SwapEnabledUpdated(_swapEnabled);
    }

    function setMarketingWallet(address payable marketingAddress) external onlyOwner {
        require(marketingAddress != address(0), "TOKEN: cannot assign zero address as marketingAddress");
        _marketingAddress = marketingAddress;
        _isExcludedFromFee[_marketingAddress] = true;
        toggleSwaps(true);
        emit MarketingWalletUpdated(marketingAddress);
    }

    function setDevelopmentWallet(address payable developmentAddress) external onlyOwner {
        require(developmentAddress != address(0), "TOKEN: cannot assign zero address as developmentAddress");
        _developmentAddress = developmentAddress;
        _isExcludedFromFee[developmentAddress] = true;
        emit DevelopmentWalletUpdated(developmentAddress);
    }

    function removeLimits() external onlyOwner {
        setMaxTxnAmount(totalSupply());
        setMaxWalletSize(totalSupply());
    }
 
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        require(maxTxAmount >= ((totalSupply() * 1) / 100),"TOKEN: Cannot set maxTransactionAmount lower than 1%");
        _maxTxAmount = maxTxAmount;
        emit MaxTxAmountUpdated(maxTxAmount);
    }
 
    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        require(maxWalletSize >= ((totalSupply() * 1) / 100),"TOKEN: Cannot set maxWalletAmount lower than 1%");
        _maxWalletSize = maxWalletSize;
        emit MaxWalletAmountUpdated(maxWalletSize);
    }
 
    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_developmentAddress","type":"address"}],"name":"DevelopmentWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_marketingAddress","type":"address"}],"name":"MarketingWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxWalletAmount","type":"uint256"}],"name":"MaxWalletAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"SwapEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_swapTokensAtAmount","type":"uint256"}],"name":"SwapTokensAtAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentToSwap","type":"uint256"}],"name":"manualSwapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address[]","name":"_bots","type":"address[]"},{"internalType":"bool","name":"areBots","type":"bool"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"developmentAddress","type":"address"}],"name":"setDevelopmentWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"marketingAddress","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwaps","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526200001a670de0b6b3a76400006000196200041a565b620000289060001962000447565b600655600060085560056009556000600a55600f600b55600a54600c55600b54600d55600c54600e55600d54600f55620000676200040060201b60201c565b601280546001600160a01b0319166001600160a01b03929092169190911790556013805462ffffff60a01b191690556103e8620000ae670de0b6b3a7640000601962000463565b620000ba91906200047d565b6014556103e8620000d5670de0b6b3a7640000601962000463565b620000e191906200047d565b6015556103e8620000fc670de0b6b3a7640000600162000463565b6200010891906200047d565b6016553480156200011857600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255737a250d5630b4cf539739df2c5dacb4c659f2488d6080819052815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015620001c7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ed919062000494565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200023b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000261919062000494565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002af573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d5919062000494565b6001600160a01b031660a05230600090815260056020908152604082208054600160ff19918216811790925560109092527fe682bb41182a617d8269ff1cf310171d0a216a13a5a74db76826e36f60a1f02780548316821790557f37795f376b0ef2169ce9149e128ab722e13f21363cd346144356a3a5db5cd8e7805483168217905573faded000cc97f8707e3a5598e5e1f7da5dbd81869092527fe14e614a5f57c21470239cd0d35da2ae299942eae31a22f31a0c1ab642262b1080549091169091179055620003a33390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620003f191815260200190565b60405180910390a350620004c6565b3390565b634e487b7160e01b600052601260045260246000fd5b6000826200042c576200042c62000404565b500690565b634e487b7160e01b600052601160045260246000fd5b818103818111156200045d576200045d62000431565b92915050565b80820281158282048414176200045d576200045d62000431565b6000826200048f576200048f62000404565b500490565b600060208284031215620004a757600080fd5b81516001600160a01b0381168114620004bf57600080fd5b9392505050565b60805160a0516125876200053960003960008181610312015281816115e9015281816116e6015281816117e10152818161181e0152818161186201526118e70152600081816102650152818161189e0152818161192301528181611adf01528181611b980152611bd401526125876000f3fe6080604052600436106101d15760003560e01c80637d1db4a5116100f7578063bfd7928411610095578063ea1644d511610064578063ea1644d5146105a0578063f2fde38b146105c0578063f4293890146105e0578063f8d982b2146105f557600080fd5b8063bfd79284146104f5578063c492f04614610525578063c9567bf914610545578063dd62ed3e1461055a57600080fd5b806395d89b41116100d157806395d89b411461046a5780639c0db5f3146104955780639d0014b1146104b5578063a9059cbb146104d557600080fd5b80637d1db4a5146104205780638da5cb5b146104365780638f9a55c01461045457600080fd5b806353855f321161016f578063715018a61161013e578063715018a6146103b657806372ac2486146103cb57806374010ece146103eb578063751039fc1461040b57600080fd5b806353855f32146103345780635d098b38146103565780636fcba3771461037657806370a082311461039657600080fd5b806318160ddd116101ab57806318160ddd1461029f57806323b872dd146102c4578063313ce567146102e457806349bd5a5e1461030057600080fd5b806306fdde03146101dd578063095ea7b3146102235780631694505e1461025357600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b5060408051808201909152600b81526a427572676572204b696e6760a81b60208201525b60405161021a919061219d565b60405180910390f35b34801561022f57600080fd5b5061024361023e366004612200565b610615565b604051901515815260200161021a565b34801561025f57600080fd5b506102877f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161021a565b3480156102ab57600080fd5b50670de0b6b3a76400005b60405190815260200161021a565b3480156102d057600080fd5b506102436102df36600461222c565b61062c565b3480156102f057600080fd5b506040516009815260200161021a565b34801561030c57600080fd5b506102877f000000000000000000000000000000000000000000000000000000000000000081565b34801561034057600080fd5b5061035461034f366004612282565b610695565b005b34801561036257600080fd5b5061035461037136600461229d565b610790565b34801561038257600080fd5b506103546103913660046122ba565b6108aa565b3480156103a257600080fd5b506102b66103b136600461229d565b6108e8565b3480156103c257600080fd5b5061035461090a565b3480156103d757600080fd5b506103546103e636600461229d565b61097e565b3480156103f757600080fd5b506103546104063660046122ec565b610a8c565b34801561041757600080fd5b50610354610b76565b34801561042c57600080fd5b506102b660145481565b34801561044257600080fd5b506000546001600160a01b0316610287565b34801561046057600080fd5b506102b660155481565b34801561047657600080fd5b50604080518082019091526002815261424b60f01b602082015261020d565b3480156104a157600080fd5b506103546104b0366004612305565b610bc4565b3480156104c157600080fd5b506103546104d03660046122ec565b610c65565b3480156104e157600080fd5b506102436104f0366004612200565b610d85565b34801561050157600080fd5b5061024361051036600461229d565b60106020526000908152604090205460ff1681565b34801561053157600080fd5b50610354610540366004612305565b610d92565b34801561055157600080fd5b50610354610e2d565b34801561056657600080fd5b506102b6610575366004612389565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105ac57600080fd5b506103546105bb3660046122ec565b610ec6565b3480156105cc57600080fd5b506103546105db36600461229d565b610fab565b3480156105ec57600080fd5b50610354611095565b34801561060157600080fd5b506103546106103660046122ec565b61116c565b6000610622338484611216565b5060015b92915050565b600061063984848461133a565b61068b84336106868560405180606001604052806028815260200161252a602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611976565b611216565b5060019392505050565b6000546001600160a01b031633146106c85760405162461bcd60e51b81526004016106bf906123c2565b60405180910390fd5b801515601360169054906101000a900460ff161515036107385760405162461bcd60e51b815260206004820152602560248201527f544f4b454e3a2073776170456e61626c65642061737369676e6564206f6c642060448201526476616c756560d81b60648201526084016106bf565b60138054821515600160b01b0260ff60b01b199091161790556040517f436b6cf978c7b6998fcce43dfe4d37e3a0dc2bb780144a2eb55d7138201e8a129061078590831515815260200190565b60405180910390a150565b6000546001600160a01b031633146107ba5760405162461bcd60e51b81526004016106bf906123c2565b6001600160a01b03811661082e5760405162461bcd60e51b815260206004820152603560248201527f544f4b454e3a2063616e6e6f742061737369676e207a65726f2061646472657360448201527473206173206d61726b6574696e674164647265737360581b60648201526084016106bf565b601380546001600160a01b0319166001600160a01b0383169081179091556000908152600560205260409020805460ff1916600190811790915561087190610695565b6040516001600160a01b03821681527fbf86feedee5b30c30a8243bd21deebb704d141478d39b1be04fe5ee739f214e790602001610785565b6000546001600160a01b031633146108d45760405162461bcd60e51b81526004016106bf906123c2565b600893909355600a91909155600955600b55565b6001600160a01b038116600090815260026020526040812054610626906119b0565b6000546001600160a01b031633146109345760405162461bcd60e51b81526004016106bf906123c2565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109a85760405162461bcd60e51b81526004016106bf906123c2565b6001600160a01b038116610a245760405162461bcd60e51b815260206004820152603760248201527f544f4b454e3a2063616e6e6f742061737369676e207a65726f2061646472657360448201527f7320617320646576656c6f706d656e744164647265737300000000000000000060648201526084016106bf565b601280546001600160a01b0319166001600160a01b038316908117909155600081815260056020908152604091829020805460ff1916600117905590519182527f59fd076cdcd0c12d650e7d16898047308777be9d03b00a2907a56cb113412be59101610785565b6000546001600160a01b03163314610ab65760405162461bcd60e51b81526004016106bf906123c2565b6064610acb670de0b6b3a7640000600161240d565b610ad59190612424565b811015610b415760405162461bcd60e51b815260206004820152603460248201527f544f4b454e3a2043616e6e6f7420736574206d61785472616e73616374696f6e604482015273416d6f756e74206c6f776572207468616e20312560601b60648201526084016106bf565b60148190556040518181527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf90602001610785565b6000546001600160a01b03163314610ba05760405162461bcd60e51b81526004016106bf906123c2565b610bb1670de0b6b3a7640000610a8c565b610bc2670de0b6b3a7640000610ec6565b565b6000546001600160a01b03163314610bee5760405162461bcd60e51b81526004016106bf906123c2565b60005b82811015610c5f578160106000868685818110610c1057610c10612446565b9050602002016020810190610c25919061229d565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610c578161245c565b915050610bf1565b50505050565b6000546001600160a01b03163314610c8f5760405162461bcd60e51b81526004016106bf906123c2565b6064610ca4670de0b6b3a7640000600161240d565b610cae9190612424565b8111158015610cd05750610ccc6103e8670de0b6b3a7640000612424565b8110155b610d505760405162461bcd60e51b815260206004820152604560248201527f544f4b454e3a2073776170546f6b656e734174416d6f756e74206d757374206260448201527f6520686967686572206f7220657175616c20746f20302e312520746f74616c536064820152647570706c7960d81b608482015260a4016106bf565b60168190556040518181527f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b14590602001610785565b600061062233848461133a565b6000546001600160a01b03163314610dbc5760405162461bcd60e51b81526004016106bf906123c2565b60005b82811015610c5f578160056000868685818110610dde57610dde612446565b9050602002016020810190610df3919061229d565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610e258161245c565b915050610dbf565b6000546001600160a01b03163314610e575760405162461bcd60e51b81526004016106bf906123c2565b601354600160a01b900460ff1615610eb15760405162461bcd60e51b815260206004820152601b60248201527f544f4b454e3a2074726164696e6720616c7265616479206f70656e000000000060448201526064016106bf565b6013805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610ef05760405162461bcd60e51b81526004016106bf906123c2565b6064610f05670de0b6b3a7640000600161240d565b610f0f9190612424565b811015610f765760405162461bcd60e51b815260206004820152602f60248201527f544f4b454e3a2043616e6e6f7420736574206d617857616c6c6574416d6f756e60448201526e74206c6f776572207468616e20312560881b60648201526084016106bf565b60158190556040518181527f4b39c36d20c57d220f61fd25c4349d4435cc03ef6c2a680942f15333c3c3e00190602001610785565b6000546001600160a01b03163314610fd55760405162461bcd60e51b81526004016106bf906123c2565b6001600160a01b03811661103a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106bf565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6012546001600160a01b0316336001600160a01b031614806110ca57506013546001600160a01b0316336001600160a01b0316145b61110f5760405162461bcd60e51b81526020600482015260166024820152751513d2d1538e881519585b481c995cdd1c9a58dd195960521b60448201526064016106bf565b6000471161115f5760405162461bcd60e51b815260206004820152601960248201527f544f4b454e3a204e6f2065746820746f207472616e736665720000000000000060448201526064016106bf565b4761116981611a3b565b50565b6012546001600160a01b0316336001600160a01b031614806111a157506013546001600160a01b0316336001600160a01b0316145b6111e65760405162461bcd60e51b81526020600482015260166024820152751513d2d1538e881519585b481c995cdd1c9a58dd195960521b60448201526064016106bf565b600060646111f3306108e8565b6111fd908461240d565b6112079190612424565b905061121281611a75565b5050565b6001600160a01b0383166112785760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106bf565b6001600160a01b0382166112d95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106bf565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661139e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106bf565b6001600160a01b0382166114005760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106bf565b600081116114695760405162461bcd60e51b815260206004820152603060248201527f45524332303a207472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b60648201526084016106bf565b6012546001600160a01b0384811691161480159061149557506012546001600160a01b03838116911614155b15611797576001600160a01b03831660009081526010602052604090205460ff161580156114dc57506001600160a01b03821660009081526010602052604090205460ff16155b6115215760405162461bcd60e51b81526020600482015260166024820152751513d2d1538e88139bc8189bdd1cc8185b1b1bddd95960521b60448201526064016106bf565b601354600160a01b900460ff166115955760405162461bcd60e51b815260206004820152603260248201527f544f4b454e3a2043616e6e6f742073656e6420746f6b656e7320756e74696c206044820152711d1c98591a5b99c81a5cc8195b98589b195960721b60648201526084016106bf565b6014548111156115e75760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106bf565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614611690576015548161162d846108e8565b6116379190612475565b106116905760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106bf565b600061169b306108e8565b905060646116b2670de0b6b3a7640000600161240d565b6116bc9190612424565b81106116e45760646116d7670de0b6b3a7640000600161240d565b6116e19190612424565b90505b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b03161415801561172b575061172b8183611c76565b801561175057506001600160a01b03841660009081526005602052604090205460ff16155b801561177557506001600160a01b03831660009081526005602052604090205460ff16155b156117955761178381611a75565b4780156117935761179347611a3b565b505b505b6001600160a01b03831660009081526005602052604090205460019060ff16806117d957506001600160a01b03831660009081526005602052604090205460ff165b8061185357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b03161415801561185357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b156118605750600061196a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b03161480156118d357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b156118e557600854600c55600954600d555b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614801561195857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031614155b1561196a57600a54600c55600b54600d555b610c5f84848484611ce4565b6000818484111561199a5760405162461bcd60e51b81526004016106bf919061219d565b5060006119a78486612488565b95945050505050565b6000600654821115611a1e5760405162461bcd60e51b815260206004820152603160248201527f544f4b454e3a20416d6f756e74206d757374206265206c657373207468616e20604482015270746f74616c207265666c656374696f6e7360781b60648201526084016106bf565b6000611a28611d12565b9050611a348382611d35565b9392505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611212573d6000803e3d6000fd5b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611abd57611abd612446565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5f919061249b565b81600181518110611b7257611b72612446565b60200260200101906001600160a01b031690816001600160a01b031681525050611bbd307f000000000000000000000000000000000000000000000000000000000000000084611216565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790611c129085906000908690309042906004016124b8565b600060405180830381600087803b158015611c2c57600080fd5b505af1158015611c40573d6000803e3d6000fd5b5050436000908152601160205260408120805493509150611c608361245c565b90915550506013805460ff60a81b191690555050565b60006016548310158015611c945750601354600160a81b900460ff16155b8015611ca95750601354600160b01b900460ff165b8015611cc45750436000908152601160205260409020546002115b8015611a3457506002601654611cda9190612424565b8210159392505050565b80611cf157611cf1611d77565b611cfc848484611da5565b80610c5f57610c5f600e54600c55600f54600d55565b6000806000611d1f611e9c565b9092509050611d2e8282611d35565b9250505090565b6000611a3483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611edc565b600c54158015611d875750600d54155b15611d8e57565b600c8054600e55600d8054600f5560009182905555565b600080600080600080611db787611f0a565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611de99087611f67565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611e189086611fa9565b6001600160a01b038916600090815260026020526040902055611e3a81612008565b611e448483612052565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611e8991815260200190565b60405180910390a3505050505050505050565b6006546000908190670de0b6b3a7640000611eb78282611d35565b821015611ed357505060065492670de0b6b3a764000092509050565b90939092509050565b60008183611efd5760405162461bcd60e51b81526004016106bf919061219d565b5060006119a78486612424565b6000806000806000806000806000611f278a600c54600d54612076565b9250925092506000611f37611d12565b90506000806000611f4a8e8787876120cb565b919e509c509a509598509396509194505050505091939550919395565b6000611a3483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611976565b600080611fb68385612475565b905083811015611a345760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106bf565b6000612012611d12565b90506000612020838361211b565b3060009081526002602052604090205490915061203d9082611fa9565b30600090815260026020526040902055505050565b60065461205f9083611f67565b60065560075461206f9082611fa9565b6007555050565b6000808080612090606461208a898961211b565b90611d35565b905060006120a3606461208a8a8961211b565b905060006120bb826120b58b86611f67565b90611f67565b9992985090965090945050505050565b60008080806120da888661211b565b905060006120e8888761211b565b905060006120f6888861211b565b90506000612108826120b58686611f67565b939b939a50919850919650505050505050565b60008260000361212d57506000610626565b6000612139838561240d565b9050826121468583612424565b14611a345760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106bf565b600060208083528351808285015260005b818110156121ca578581018301518582016040015282016121ae565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461116957600080fd5b6000806040838503121561221357600080fd5b823561221e816121eb565b946020939093013593505050565b60008060006060848603121561224157600080fd5b833561224c816121eb565b9250602084013561225c816121eb565b929592945050506040919091013590565b8035801515811461227d57600080fd5b919050565b60006020828403121561229457600080fd5b611a348261226d565b6000602082840312156122af57600080fd5b8135611a34816121eb565b600080600080608085870312156122d057600080fd5b5050823594602084013594506040840135936060013592509050565b6000602082840312156122fe57600080fd5b5035919050565b60008060006040848603121561231a57600080fd5b833567ffffffffffffffff8082111561233257600080fd5b818601915086601f83011261234657600080fd5b81358181111561235557600080fd5b8760208260051b850101111561236a57600080fd5b602092830195509350612380918601905061226d565b90509250925092565b6000806040838503121561239c57600080fd5b82356123a7816121eb565b915060208301356123b7816121eb565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610626576106266123f7565b60008261244157634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006001820161246e5761246e6123f7565b5060010190565b80820180821115610626576106266123f7565b81810381811115610626576106266123f7565b6000602082840312156124ad57600080fd5b8151611a34816121eb565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125085784516001600160a01b0316835293830193918301916001016124e3565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c7dd2e6ec0e8a83b0fade670ea246874e654a247bf8294bd9e89e361358a2f8d64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101d15760003560e01c80637d1db4a5116100f7578063bfd7928411610095578063ea1644d511610064578063ea1644d5146105a0578063f2fde38b146105c0578063f4293890146105e0578063f8d982b2146105f557600080fd5b8063bfd79284146104f5578063c492f04614610525578063c9567bf914610545578063dd62ed3e1461055a57600080fd5b806395d89b41116100d157806395d89b411461046a5780639c0db5f3146104955780639d0014b1146104b5578063a9059cbb146104d557600080fd5b80637d1db4a5146104205780638da5cb5b146104365780638f9a55c01461045457600080fd5b806353855f321161016f578063715018a61161013e578063715018a6146103b657806372ac2486146103cb57806374010ece146103eb578063751039fc1461040b57600080fd5b806353855f32146103345780635d098b38146103565780636fcba3771461037657806370a082311461039657600080fd5b806318160ddd116101ab57806318160ddd1461029f57806323b872dd146102c4578063313ce567146102e457806349bd5a5e1461030057600080fd5b806306fdde03146101dd578063095ea7b3146102235780631694505e1461025357600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b5060408051808201909152600b81526a427572676572204b696e6760a81b60208201525b60405161021a919061219d565b60405180910390f35b34801561022f57600080fd5b5061024361023e366004612200565b610615565b604051901515815260200161021a565b34801561025f57600080fd5b506102877f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161021a565b3480156102ab57600080fd5b50670de0b6b3a76400005b60405190815260200161021a565b3480156102d057600080fd5b506102436102df36600461222c565b61062c565b3480156102f057600080fd5b506040516009815260200161021a565b34801561030c57600080fd5b506102877f00000000000000000000000051136d6d596740de588fa0b52b029fc6ac68586781565b34801561034057600080fd5b5061035461034f366004612282565b610695565b005b34801561036257600080fd5b5061035461037136600461229d565b610790565b34801561038257600080fd5b506103546103913660046122ba565b6108aa565b3480156103a257600080fd5b506102b66103b136600461229d565b6108e8565b3480156103c257600080fd5b5061035461090a565b3480156103d757600080fd5b506103546103e636600461229d565b61097e565b3480156103f757600080fd5b506103546104063660046122ec565b610a8c565b34801561041757600080fd5b50610354610b76565b34801561042c57600080fd5b506102b660145481565b34801561044257600080fd5b506000546001600160a01b0316610287565b34801561046057600080fd5b506102b660155481565b34801561047657600080fd5b50604080518082019091526002815261424b60f01b602082015261020d565b3480156104a157600080fd5b506103546104b0366004612305565b610bc4565b3480156104c157600080fd5b506103546104d03660046122ec565b610c65565b3480156104e157600080fd5b506102436104f0366004612200565b610d85565b34801561050157600080fd5b5061024361051036600461229d565b60106020526000908152604090205460ff1681565b34801561053157600080fd5b50610354610540366004612305565b610d92565b34801561055157600080fd5b50610354610e2d565b34801561056657600080fd5b506102b6610575366004612389565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105ac57600080fd5b506103546105bb3660046122ec565b610ec6565b3480156105cc57600080fd5b506103546105db36600461229d565b610fab565b3480156105ec57600080fd5b50610354611095565b34801561060157600080fd5b506103546106103660046122ec565b61116c565b6000610622338484611216565b5060015b92915050565b600061063984848461133a565b61068b84336106868560405180606001604052806028815260200161252a602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611976565b611216565b5060019392505050565b6000546001600160a01b031633146106c85760405162461bcd60e51b81526004016106bf906123c2565b60405180910390fd5b801515601360169054906101000a900460ff161515036107385760405162461bcd60e51b815260206004820152602560248201527f544f4b454e3a2073776170456e61626c65642061737369676e6564206f6c642060448201526476616c756560d81b60648201526084016106bf565b60138054821515600160b01b0260ff60b01b199091161790556040517f436b6cf978c7b6998fcce43dfe4d37e3a0dc2bb780144a2eb55d7138201e8a129061078590831515815260200190565b60405180910390a150565b6000546001600160a01b031633146107ba5760405162461bcd60e51b81526004016106bf906123c2565b6001600160a01b03811661082e5760405162461bcd60e51b815260206004820152603560248201527f544f4b454e3a2063616e6e6f742061737369676e207a65726f2061646472657360448201527473206173206d61726b6574696e674164647265737360581b60648201526084016106bf565b601380546001600160a01b0319166001600160a01b0383169081179091556000908152600560205260409020805460ff1916600190811790915561087190610695565b6040516001600160a01b03821681527fbf86feedee5b30c30a8243bd21deebb704d141478d39b1be04fe5ee739f214e790602001610785565b6000546001600160a01b031633146108d45760405162461bcd60e51b81526004016106bf906123c2565b600893909355600a91909155600955600b55565b6001600160a01b038116600090815260026020526040812054610626906119b0565b6000546001600160a01b031633146109345760405162461bcd60e51b81526004016106bf906123c2565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109a85760405162461bcd60e51b81526004016106bf906123c2565b6001600160a01b038116610a245760405162461bcd60e51b815260206004820152603760248201527f544f4b454e3a2063616e6e6f742061737369676e207a65726f2061646472657360448201527f7320617320646576656c6f706d656e744164647265737300000000000000000060648201526084016106bf565b601280546001600160a01b0319166001600160a01b038316908117909155600081815260056020908152604091829020805460ff1916600117905590519182527f59fd076cdcd0c12d650e7d16898047308777be9d03b00a2907a56cb113412be59101610785565b6000546001600160a01b03163314610ab65760405162461bcd60e51b81526004016106bf906123c2565b6064610acb670de0b6b3a7640000600161240d565b610ad59190612424565b811015610b415760405162461bcd60e51b815260206004820152603460248201527f544f4b454e3a2043616e6e6f7420736574206d61785472616e73616374696f6e604482015273416d6f756e74206c6f776572207468616e20312560601b60648201526084016106bf565b60148190556040518181527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf90602001610785565b6000546001600160a01b03163314610ba05760405162461bcd60e51b81526004016106bf906123c2565b610bb1670de0b6b3a7640000610a8c565b610bc2670de0b6b3a7640000610ec6565b565b6000546001600160a01b03163314610bee5760405162461bcd60e51b81526004016106bf906123c2565b60005b82811015610c5f578160106000868685818110610c1057610c10612446565b9050602002016020810190610c25919061229d565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610c578161245c565b915050610bf1565b50505050565b6000546001600160a01b03163314610c8f5760405162461bcd60e51b81526004016106bf906123c2565b6064610ca4670de0b6b3a7640000600161240d565b610cae9190612424565b8111158015610cd05750610ccc6103e8670de0b6b3a7640000612424565b8110155b610d505760405162461bcd60e51b815260206004820152604560248201527f544f4b454e3a2073776170546f6b656e734174416d6f756e74206d757374206260448201527f6520686967686572206f7220657175616c20746f20302e312520746f74616c536064820152647570706c7960d81b608482015260a4016106bf565b60168190556040518181527f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b14590602001610785565b600061062233848461133a565b6000546001600160a01b03163314610dbc5760405162461bcd60e51b81526004016106bf906123c2565b60005b82811015610c5f578160056000868685818110610dde57610dde612446565b9050602002016020810190610df3919061229d565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610e258161245c565b915050610dbf565b6000546001600160a01b03163314610e575760405162461bcd60e51b81526004016106bf906123c2565b601354600160a01b900460ff1615610eb15760405162461bcd60e51b815260206004820152601b60248201527f544f4b454e3a2074726164696e6720616c7265616479206f70656e000000000060448201526064016106bf565b6013805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610ef05760405162461bcd60e51b81526004016106bf906123c2565b6064610f05670de0b6b3a7640000600161240d565b610f0f9190612424565b811015610f765760405162461bcd60e51b815260206004820152602f60248201527f544f4b454e3a2043616e6e6f7420736574206d617857616c6c6574416d6f756e60448201526e74206c6f776572207468616e20312560881b60648201526084016106bf565b60158190556040518181527f4b39c36d20c57d220f61fd25c4349d4435cc03ef6c2a680942f15333c3c3e00190602001610785565b6000546001600160a01b03163314610fd55760405162461bcd60e51b81526004016106bf906123c2565b6001600160a01b03811661103a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106bf565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6012546001600160a01b0316336001600160a01b031614806110ca57506013546001600160a01b0316336001600160a01b0316145b61110f5760405162461bcd60e51b81526020600482015260166024820152751513d2d1538e881519585b481c995cdd1c9a58dd195960521b60448201526064016106bf565b6000471161115f5760405162461bcd60e51b815260206004820152601960248201527f544f4b454e3a204e6f2065746820746f207472616e736665720000000000000060448201526064016106bf565b4761116981611a3b565b50565b6012546001600160a01b0316336001600160a01b031614806111a157506013546001600160a01b0316336001600160a01b0316145b6111e65760405162461bcd60e51b81526020600482015260166024820152751513d2d1538e881519585b481c995cdd1c9a58dd195960521b60448201526064016106bf565b600060646111f3306108e8565b6111fd908461240d565b6112079190612424565b905061121281611a75565b5050565b6001600160a01b0383166112785760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106bf565b6001600160a01b0382166112d95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106bf565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661139e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106bf565b6001600160a01b0382166114005760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106bf565b600081116114695760405162461bcd60e51b815260206004820152603060248201527f45524332303a207472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b60648201526084016106bf565b6012546001600160a01b0384811691161480159061149557506012546001600160a01b03838116911614155b15611797576001600160a01b03831660009081526010602052604090205460ff161580156114dc57506001600160a01b03821660009081526010602052604090205460ff16155b6115215760405162461bcd60e51b81526020600482015260166024820152751513d2d1538e88139bc8189bdd1cc8185b1b1bddd95960521b60448201526064016106bf565b601354600160a01b900460ff166115955760405162461bcd60e51b815260206004820152603260248201527f544f4b454e3a2043616e6e6f742073656e6420746f6b656e7320756e74696c206044820152711d1c98591a5b99c81a5cc8195b98589b195960721b60648201526084016106bf565b6014548111156115e75760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106bf565b7f00000000000000000000000051136d6d596740de588fa0b52b029fc6ac6858676001600160a01b0316826001600160a01b031614611690576015548161162d846108e8565b6116379190612475565b106116905760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106bf565b600061169b306108e8565b905060646116b2670de0b6b3a7640000600161240d565b6116bc9190612424565b81106116e45760646116d7670de0b6b3a7640000600161240d565b6116e19190612424565b90505b7f00000000000000000000000051136d6d596740de588fa0b52b029fc6ac6858676001600160a01b0316846001600160a01b03161415801561172b575061172b8183611c76565b801561175057506001600160a01b03841660009081526005602052604090205460ff16155b801561177557506001600160a01b03831660009081526005602052604090205460ff16155b156117955761178381611a75565b4780156117935761179347611a3b565b505b505b6001600160a01b03831660009081526005602052604090205460019060ff16806117d957506001600160a01b03831660009081526005602052604090205460ff165b8061185357507f00000000000000000000000051136d6d596740de588fa0b52b029fc6ac6858676001600160a01b0316846001600160a01b03161415801561185357507f00000000000000000000000051136d6d596740de588fa0b52b029fc6ac6858676001600160a01b0316836001600160a01b031614155b156118605750600061196a565b7f00000000000000000000000051136d6d596740de588fa0b52b029fc6ac6858676001600160a01b0316846001600160a01b03161480156118d357507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0316836001600160a01b031614155b156118e557600854600c55600954600d555b7f00000000000000000000000051136d6d596740de588fa0b52b029fc6ac6858676001600160a01b0316836001600160a01b031614801561195857507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0316846001600160a01b031614155b1561196a57600a54600c55600b54600d555b610c5f84848484611ce4565b6000818484111561199a5760405162461bcd60e51b81526004016106bf919061219d565b5060006119a78486612488565b95945050505050565b6000600654821115611a1e5760405162461bcd60e51b815260206004820152603160248201527f544f4b454e3a20416d6f756e74206d757374206265206c657373207468616e20604482015270746f74616c207265666c656374696f6e7360781b60648201526084016106bf565b6000611a28611d12565b9050611a348382611d35565b9392505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611212573d6000803e3d6000fd5b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611abd57611abd612446565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5f919061249b565b81600181518110611b7257611b72612446565b60200260200101906001600160a01b031690816001600160a01b031681525050611bbd307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611216565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790611c129085906000908690309042906004016124b8565b600060405180830381600087803b158015611c2c57600080fd5b505af1158015611c40573d6000803e3d6000fd5b5050436000908152601160205260408120805493509150611c608361245c565b90915550506013805460ff60a81b191690555050565b60006016548310158015611c945750601354600160a81b900460ff16155b8015611ca95750601354600160b01b900460ff165b8015611cc45750436000908152601160205260409020546002115b8015611a3457506002601654611cda9190612424565b8210159392505050565b80611cf157611cf1611d77565b611cfc848484611da5565b80610c5f57610c5f600e54600c55600f54600d55565b6000806000611d1f611e9c565b9092509050611d2e8282611d35565b9250505090565b6000611a3483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611edc565b600c54158015611d875750600d54155b15611d8e57565b600c8054600e55600d8054600f5560009182905555565b600080600080600080611db787611f0a565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611de99087611f67565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611e189086611fa9565b6001600160a01b038916600090815260026020526040902055611e3a81612008565b611e448483612052565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611e8991815260200190565b60405180910390a3505050505050505050565b6006546000908190670de0b6b3a7640000611eb78282611d35565b821015611ed357505060065492670de0b6b3a764000092509050565b90939092509050565b60008183611efd5760405162461bcd60e51b81526004016106bf919061219d565b5060006119a78486612424565b6000806000806000806000806000611f278a600c54600d54612076565b9250925092506000611f37611d12565b90506000806000611f4a8e8787876120cb565b919e509c509a509598509396509194505050505091939550919395565b6000611a3483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611976565b600080611fb68385612475565b905083811015611a345760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106bf565b6000612012611d12565b90506000612020838361211b565b3060009081526002602052604090205490915061203d9082611fa9565b30600090815260026020526040902055505050565b60065461205f9083611f67565b60065560075461206f9082611fa9565b6007555050565b6000808080612090606461208a898961211b565b90611d35565b905060006120a3606461208a8a8961211b565b905060006120bb826120b58b86611f67565b90611f67565b9992985090965090945050505050565b60008080806120da888661211b565b905060006120e8888761211b565b905060006120f6888861211b565b90506000612108826120b58686611f67565b939b939a50919850919650505050505050565b60008260000361212d57506000610626565b6000612139838561240d565b9050826121468583612424565b14611a345760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106bf565b600060208083528351808285015260005b818110156121ca578581018301518582016040015282016121ae565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461116957600080fd5b6000806040838503121561221357600080fd5b823561221e816121eb565b946020939093013593505050565b60008060006060848603121561224157600080fd5b833561224c816121eb565b9250602084013561225c816121eb565b929592945050506040919091013590565b8035801515811461227d57600080fd5b919050565b60006020828403121561229457600080fd5b611a348261226d565b6000602082840312156122af57600080fd5b8135611a34816121eb565b600080600080608085870312156122d057600080fd5b5050823594602084013594506040840135936060013592509050565b6000602082840312156122fe57600080fd5b5035919050565b60008060006040848603121561231a57600080fd5b833567ffffffffffffffff8082111561233257600080fd5b818601915086601f83011261234657600080fd5b81358181111561235557600080fd5b8760208260051b850101111561236a57600080fd5b602092830195509350612380918601905061226d565b90509250925092565b6000806040838503121561239c57600080fd5b82356123a7816121eb565b915060208301356123b7816121eb565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610626576106266123f7565b60008261244157634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006001820161246e5761246e6123f7565b5060010190565b80820180821115610626576106266123f7565b81810381811115610626576106266123f7565b6000602082840312156124ad57600080fd5b8151611a34816121eb565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125085784516001600160a01b0316835293830193918301916001016124e3565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c7dd2e6ec0e8a83b0fade670ea246874e654a247bf8294bd9e89e361358a2f8d64736f6c63430008130033

Deployed Bytecode Sourcemap

4178:15746:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7108:83;;;;;;;;;;-1:-1:-1;7178:5:0;;;;;;;;;;;;-1:-1:-1;;;7178:5:0;;;;7108:83;;;;;;;:::i;:::-;;;;;;;;8040:193;;;;;;;;;;-1:-1:-1;8040:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;8040:193:0;1023:187:1;5454:51:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;5454:51:0;1215:229:1;7388:95:0;;;;;;;;;;-1:-1:-1;4729:21:0;7388:95;;;1595:25:1;;;1583:2;1568:18;7388:95:0;1449:177:1;8242:446:0;;;;;;;;;;-1:-1:-1;8242:446:0;;;;;:::i;:::-;;:::i;7296:83::-;;;;;;;;;;-1:-1:-1;7296:83:0;;4403:1;2234:36:1;;2222:2;2207:18;7296:83:0;2092:184:1;5512:38:0;;;;;;;;;;;;;;;17957:238;;;;;;;;;;-1:-1:-1;17957:238:0;;;;;:::i;:::-;;:::i;:::-;;18203:382;;;;;;;;;;-1:-1:-1;18203:382:0;;;;;:::i;:::-;;:::i;17049:292::-;;;;;;;;;;-1:-1:-1;17049:292:0;;;;;:::i;:::-;;:::i;7492:138::-;;;;;;;;;;-1:-1:-1;7492:138:0;;;;;:::i;:::-;;:::i;1651:148::-;;;;;;;;;;;;;:::i;18593:371::-;;;;;;;;;;-1:-1:-1;18593:371:0;;;;;:::i;:::-;;:::i;19115:272::-;;;;;;;;;;-1:-1:-1;19115:272:0;;;;;:::i;:::-;;:::i;18972:134::-;;;;;;;;;;;;;:::i;5675:48::-;;;;;;;;;;;;;;;;1435:79;;;;;;;;;;-1:-1:-1;1473:7:0;1500:6;-1:-1:-1;;;;;1500:6:0;1435:79;;5731:50;;;;;;;;;;;;;;;;7200:87;;;;;;;;;;-1:-1:-1;7272:7:0;;;;;;;;;;;;-1:-1:-1;;;7272:7:0;;;;7200:87;;17349:182;;;;;;;;;;-1:-1:-1;17349:182:0;;;;;:::i;:::-;;:::i;17584:364::-;;;;;;;;;;-1:-1:-1;17584:364:0;;;;;:::i;:::-;;:::i;7639:199::-;;;;;;;;;;-1:-1:-1;7639:199:0;;;;;:::i;:::-;;:::i;5240:36::-;;;;;;;;;;-1:-1:-1;5240:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19687:234;;;;;;;;;;-1:-1:-1;19687:234:0;;;;;:::i;:::-;;:::i;12874:140::-;;;;;;;;;;;;;:::i;7847:184::-;;;;;;;;;;-1:-1:-1;7847:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7996:18:0;;;7964:7;7996:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7847:184;19396:282;;;;;;;;;;-1:-1:-1;19396:282:0;;;;;:::i;:::-;;:::i;1808:244::-;;;;;;;;;;-1:-1:-1;1808:244:0;;;;;:::i;:::-;;:::i;13335:335::-;;;;;;;;;;;;;:::i;13023:303::-;;;;;;;;;;-1:-1:-1;13023:303:0;;;;;:::i;:::-;;:::i;8040:193::-;8142:4;8164:39;264:10;8187:7;8196:6;8164:8;:39::i;:::-;-1:-1:-1;8221:4:0;8040:193;;;;;:::o;8242:446::-;8374:4;8391:36;8401:6;8409:9;8420:6;8391:9;:36::i;:::-;8438:220;8461:6;264:10;8509:138;8565:6;8509:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8509:19:0;;;;;;:11;:19;;;;;;;;264:10;8509:33;;;;;;;;;;:37;:138::i;:::-;8438:8;:220::i;:::-;-1:-1:-1;8676:4:0;8242:446;;;;;:::o;17957:238::-;1563:6;;-1:-1:-1;;;;;1563:6:0;264:10;1563:22;1555:67;;;;-1:-1:-1;;;1555:67:0;;;;;;;:::i;:::-;;;;;;;;;18048:12:::1;18033:27;;:11;;;;;;;;;;;:27;;::::0;18025:77:::1;;;::::0;-1:-1:-1;;;18025:77:0;;5576:2:1;18025:77:0::1;::::0;::::1;5558:21:1::0;5615:2;5595:18;;;5588:30;5654:34;5634:18;;;5627:62;-1:-1:-1;;;5705:18:1;;;5698:35;5750:19;;18025:77:0::1;5374:401:1::0;18025:77:0::1;18113:11;:26:::0;;;::::1;;-1:-1:-1::0;;;18113:26:0::1;-1:-1:-1::0;;;;18113:26:0;;::::1;;::::0;;18155:32:::1;::::0;::::1;::::0;::::1;::::0;18127:12;1188:14:1;1181:22;1163:41;;1151:2;1136:18;;1023:187;18155:32:0::1;;;;;;;;17957:238:::0;:::o;18203:382::-;1563:6;;-1:-1:-1;;;;;1563:6:0;264:10;1563:22;1555:67;;;;-1:-1:-1;;;1555:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18303:30:0;::::1;18295:96;;;::::0;-1:-1:-1;;;18295:96:0;;5982:2:1;18295:96:0::1;::::0;::::1;5964:21:1::0;6021:2;6001:18;;;5994:30;6060:34;6040:18;;;6033:62;-1:-1:-1;;;6111:18:1;;;6104:51;6172:19;;18295:96:0::1;5780:417:1::0;18295:96:0::1;18402:17;:36:::0;;-1:-1:-1;;;;;;18402:36:0::1;-1:-1:-1::0;;;;;18402:36:0;::::1;::::0;;::::1;::::0;;;-1:-1:-1;18449:37:0;;;:18:::1;:37;::::0;;;;:44;;-1:-1:-1;;18449:44:0::1;-1:-1:-1::0;18449:44:0;;::::1;::::0;;;18504:17:::1;::::0;:11:::1;:17::i;:::-;18537:40;::::0;-1:-1:-1;;;;;1405:32:1;;1387:51;;18537:40:0::1;::::0;1375:2:1;1360:18;18537:40:0::1;1215:229:1::0;17049:292:0;1563:6;;-1:-1:-1;;;;;1563:6:0;264:10;1563:22;1555:67;;;;-1:-1:-1;;;1555:67:0;;;;;;;:::i;:::-;17184:14:::1;:30:::0;;;;17225:15:::1;:32:::0;;;;17268:12:::1;:26:::0;17305:13:::1;:28:::0;17049:292::o;7492:138::-;-1:-1:-1;;;;;7605:16:0;;7558:7;7605:16;;;:7;:16;;;;;;7585:37;;:19;:37::i;1651:148::-;1563:6;;-1:-1:-1;;;;;1563:6:0;264:10;1563:22;1555:67;;;;-1:-1:-1;;;1555:67:0;;;;;;;:::i;:::-;1758:1:::1;1742:6:::0;;1721:40:::1;::::0;-1:-1:-1;;;;;1742:6:0;;::::1;::::0;1721:40:::1;::::0;1758:1;;1721:40:::1;1789:1;1772:19:::0;;-1:-1:-1;;;;;;1772:19:0::1;::::0;;1651:148::o;18593:371::-;1563:6;;-1:-1:-1;;;;;1563:6:0;264:10;1563:22;1555:67;;;;-1:-1:-1;;;1555:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18697:32:0;::::1;18689:100;;;::::0;-1:-1:-1;;;18689:100:0;;6620:2:1;18689:100:0::1;::::0;::::1;6602:21:1::0;6659:2;6639:18;;;6632:30;6698:34;6678:18;;;6671:62;6769:25;6749:18;;;6742:53;6812:19;;18689:100:0::1;6418:419:1::0;18689:100:0::1;18800:19;:40:::0;;-1:-1:-1;;;;;;18800:40:0::1;-1:-1:-1::0;;;;;18800:40:0;::::1;::::0;;::::1;::::0;;;-1:-1:-1;18851:38:0;;;:18:::1;:38;::::0;;;;;;;;:45;;-1:-1:-1;;18851:45:0::1;-1:-1:-1::0;18851:45:0::1;::::0;;18912:44;;1387:51:1;;;18912:44:0::1;::::0;1360:18:1;18912:44:0::1;1215:229:1::0;19115:272:0;1563:6;;-1:-1:-1;;;;;1563:6:0;264:10;1563:22;1555:67;;;;-1:-1:-1;;;1555:67:0;;;;;;;:::i;:::-;19235:3:::1;19214:17;4729:21:::0;19230:1:::1;19214:17;:::i;:::-;19213:25;;;;:::i;:::-;19197:11;:42;;19189:106;;;::::0;-1:-1:-1;;;19189:106:0;;7571:2:1;19189:106:0::1;::::0;::::1;7553:21:1::0;7610:2;7590:18;;;7583:30;7649:34;7629:18;;;7622:62;-1:-1:-1;;;7700:18:1;;;7693:50;7760:19;;19189:106:0::1;7369:416:1::0;19189:106:0::1;19306:12;:26:::0;;;19348:31:::1;::::0;1595:25:1;;;19348:31:0::1;::::0;1583:2:1;1568:18;19348:31:0::1;1449:177:1::0;18972:134:0;1563:6;;-1:-1:-1;;;;;1563:6:0;264:10;1563:22;1555:67;;;;-1:-1:-1;;;1555:67:0;;;;;;;:::i;:::-;19026:30:::1;4729:21:::0;19115:272;:::i;19026:30::-:1;19067:31;4729:21:::0;19396:282;:::i;19067:31::-:1;18972:134::o:0;17349:182::-;1563:6;;-1:-1:-1;;;;;1563:6:0;264:10;1563:22;1555:67;;;;-1:-1:-1;;;1555:67:0;;;;;;;:::i;:::-;17440:9:::1;17436:88;17454:14:::0;;::::1;17436:88;;;17505:7;17488:4;:14;17493:5;;17499:1;17493:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17488:14:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17488:14:0;:24;;-1:-1:-1;;17488:24:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17469:3;::::1;::::0;::::1;:::i;:::-;;;;17436:88;;;;17349:182:::0;;;:::o;17584:364::-;1563:6;;-1:-1:-1;;;;;1563:6:0;264:10;1563:22;1555:67;;;;-1:-1:-1;;;1555:67:0;;;;;;;:::i;:::-;5895:3:::1;5881:11;4729:21;5881:1;:11;:::i;:::-;:17;;;;:::i;:::-;17674:18;:41;;:80;;;;-1:-1:-1::0;17741:13:0::1;17751:3;4729:21;17741:13;:::i;:::-;17719:18;:35;;17674:80;17666:162;;;::::0;-1:-1:-1;;;17666:162:0;;8264:2:1;17666:162:0::1;::::0;::::1;8246:21:1::0;8303:2;8283:18;;;8276:30;8342:34;8322:18;;;8315:62;8413:34;8393:18;;;8386:62;-1:-1:-1;;;8464:19:1;;;8457:36;8510:19;;17666:162:0::1;8062:473:1::0;17666:162:0::1;17839:19;:40:::0;;;17895:45:::1;::::0;1595:25:1;;;17895:45:0::1;::::0;1583:2:1;1568:18;17895:45:0::1;1449:177:1::0;7639:199:0;7744:4;7766:42;264:10;7790:9;7801:6;7766:9;:42::i;19687:234::-;1563:6;;-1:-1:-1;;;;;1563:6:0;264:10;1563:22;1555:67;;;;-1:-1:-1;;;1555:67:0;;;;;;;:::i;:::-;19804:9:::1;19800:114;19819:19:::0;;::::1;19800:114;;;19894:8;19860:18;:31;19879:8;;19888:1;19879:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19860:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;19860:31:0;:42;;-1:-1:-1;;19860:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19840:3;::::1;::::0;::::1;:::i;:::-;;;;19800:114;;12874:140:::0;1563:6;;-1:-1:-1;;;;;1563:6:0;264:10;1563:22;1555:67;;;;-1:-1:-1;;;1555:67:0;;;;;;;:::i;:::-;12934:11:::1;::::0;-1:-1:-1;;;12934:11:0;::::1;;;12933:12;12925:52;;;::::0;-1:-1:-1;;;12925:52:0;;8742:2:1;12925:52:0::1;::::0;::::1;8724:21:1::0;8781:2;8761:18;;;8754:30;8820:29;8800:18;;;8793:57;8867:18;;12925:52:0::1;8540:351:1::0;12925:52:0::1;12988:11;:18:::0;;-1:-1:-1;;;;12988:18:0::1;-1:-1:-1::0;;;12988:18:0::1;::::0;;12874:140::o;19396:282::-;1563:6;;-1:-1:-1;;;;;1563:6:0;264:10;1563:22;1555:67;;;;-1:-1:-1;;;1555:67:0;;;;;;;:::i;:::-;19521:3:::1;19500:17;4729:21:::0;19516:1:::1;19500:17;:::i;:::-;19499:25;;;;:::i;:::-;19481:13;:44;;19473:103;;;::::0;-1:-1:-1;;;19473:103:0;;9098:2:1;19473:103:0::1;::::0;::::1;9080:21:1::0;9137:2;9117:18;;;9110:30;9176:34;9156:18;;;9149:62;-1:-1:-1;;;9227:18:1;;;9220:45;9282:19;;19473:103:0::1;8896:411:1::0;19473:103:0::1;19587:14;:30:::0;;;19633:37:::1;::::0;1595:25:1;;;19633:37:0::1;::::0;1583:2:1;1568:18;19633:37:0::1;1449:177:1::0;1808:244:0;1563:6;;-1:-1:-1;;;;;1563:6:0;264:10;1563:22;1555:67;;;;-1:-1:-1;;;1555:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1897:22:0;::::1;1889:73;;;::::0;-1:-1:-1;;;1889:73:0;;9514:2:1;1889:73:0::1;::::0;::::1;9496:21:1::0;9553:2;9533:18;;;9526:30;9592:34;9572:18;;;9565:62;-1:-1:-1;;;9643:18:1;;;9636:36;9689:19;;1889:73:0::1;9312:402:1::0;1889:73:0::1;1999:6;::::0;;1978:38:::1;::::0;-1:-1:-1;;;;;1978:38:0;;::::1;::::0;1999:6;::::1;::::0;1978:38:::1;::::0;::::1;2027:6;:17:::0;;-1:-1:-1;;;;;;2027:17:0::1;-1:-1:-1::0;;;;;2027:17:0;;;::::1;::::0;;;::::1;::::0;;1808:244::o;13335:335::-;13401:19;;-1:-1:-1;;;;;13401:19:0;264:10;-1:-1:-1;;;;;13385:35:0;;:72;;;-1:-1:-1;13440:17:0;;-1:-1:-1;;;;;13440:17:0;264:10;-1:-1:-1;;;;;13424:33:0;;13385:72;13377:107;;;;-1:-1:-1;;;13377:107:0;;9921:2:1;13377:107:0;;;9903:21:1;9960:2;9940:18;;;9933:30;-1:-1:-1;;;9979:18:1;;;9972:52;10041:18;;13377:107:0;9719:346:1;13377:107:0;13527:1;13503:21;:25;13495:63;;;;-1:-1:-1;;;13495:63:0;;10272:2:1;13495:63:0;;;10254:21:1;10311:2;10291:18;;;10284:30;10350:27;10330:18;;;10323:55;10395:18;;13495:63:0;10070:349:1;13495:63:0;13598:21;13630:32;13598:21;13630:12;:32::i;:::-;13366:304;13335:335::o;13023:303::-;13114:19;;-1:-1:-1;;;;;13114:19:0;264:10;-1:-1:-1;;;;;13098:35:0;;:72;;;-1:-1:-1;13153:17:0;;-1:-1:-1;;;;;13153:17:0;264:10;-1:-1:-1;;;;;13137:33:0;;13098:72;13090:107;;;;-1:-1:-1;;;13090:107:0;;9921:2:1;13090:107:0;;;9903:21:1;9960:2;9940:18;;;9933:30;-1:-1:-1;;;9979:18:1;;;9972:52;10041:18;;13090:107:0;9719:346:1;13090:107:0;13208:20;13274:3;13247:24;13265:4;13247:9;:24::i;:::-;13231:40;;:13;:40;:::i;:::-;:46;;;;:::i;:::-;13208:69;;13288:30;13305:12;13288:16;:30::i;:::-;13079:247;13023:303;:::o;9392:369::-;-1:-1:-1;;;;;9519:19:0;;9511:68;;;;-1:-1:-1;;;9511:68:0;;10626:2:1;9511:68:0;;;10608:21:1;10665:2;10645:18;;;10638:30;10704:34;10684:18;;;10677:62;-1:-1:-1;;;10755:18:1;;;10748:34;10799:19;;9511:68:0;10424:400:1;9511:68:0;-1:-1:-1;;;;;9598:21:0;;9590:68;;;;-1:-1:-1;;;9590:68:0;;11031:2:1;9590:68:0;;;11013:21:1;11070:2;11050:18;;;11043:30;11109:34;11089:18;;;11082:62;-1:-1:-1;;;11160:18:1;;;11153:32;11202:19;;9590:68:0;10829:398:1;9590:68:0;-1:-1:-1;;;;;9669:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9721:32;;1595:25:1;;;9721:32:0;;1568:18:1;9721:32:0;;;;;;;9392:369;;;:::o;9770:2183::-;-1:-1:-1;;;;;9892:18:0;;9884:68;;;;-1:-1:-1;;;9884:68:0;;11434:2:1;9884:68:0;;;11416:21:1;11473:2;11453:18;;;11446:30;11512:34;11492:18;;;11485:62;-1:-1:-1;;;11563:18:1;;;11556:35;11608:19;;9884:68:0;11232:401:1;9884:68:0;-1:-1:-1;;;;;9971:16:0;;9963:64;;;;-1:-1:-1;;;9963:64:0;;11840:2:1;9963:64:0;;;11822:21:1;11879:2;11859:18;;;11852:30;11918:34;11898:18;;;11891:62;-1:-1:-1;;;11969:18:1;;;11962:33;12012:19;;9963:64:0;11638:399:1;9963:64:0;10055:1;10046:6;:10;10038:71;;;;-1:-1:-1;;;10038:71:0;;12244:2:1;10038:71:0;;;12226:21:1;12283:2;12263:18;;;12256:30;12322:34;12302:18;;;12295:62;-1:-1:-1;;;12373:18:1;;;12366:46;12429:19;;10038:71:0;12042:412:1;10038:71:0;10135:19;;-1:-1:-1;;;;;10127:27:0;;;10135:19;;10127:27;;;;:56;;-1:-1:-1;10164:19:0;;-1:-1:-1;;;;;10158:25:0;;;10164:19;;10158:25;;10127:56;10123:1114;;;-1:-1:-1;;;;;10209:10:0;;;;;;:4;:10;;;;;;;;10208:11;:24;;;;-1:-1:-1;;;;;;10224:8:0;;;;;;:4;:8;;;;;;;;10223:9;10208:24;10200:59;;;;-1:-1:-1;;;10200:59:0;;12661:2:1;10200:59:0;;;12643:21:1;12700:2;12680:18;;;12673:30;-1:-1:-1;;;12719:18:1;;;12712:52;12781:18;;10200:59:0;12459:346:1;10200:59:0;10282:11;;-1:-1:-1;;;10282:11:0;;;;10274:74;;;;-1:-1:-1;;;10274:74:0;;13012:2:1;10274:74:0;;;12994:21:1;13051:2;13031:18;;;13024:30;13090:34;13070:18;;;13063:62;-1:-1:-1;;;13141:18:1;;;13134:48;13199:19;;10274:74:0;12810:414:1;10274:74:0;10381:12;;10371:6;:22;;10363:63;;;;-1:-1:-1;;;10363:63:0;;13431:2:1;10363:63:0;;;13413:21:1;13470:2;13450:18;;;13443:30;13509;13489:18;;;13482:58;13557:18;;10363:63:0;13229:352:1;10363:63:0;10452:13;-1:-1:-1;;;;;10446:19:0;:2;-1:-1:-1;;;;;10446:19:0;;10443:146;;10519:14;;10510:6;10494:13;10504:2;10494:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10486:87;;;;-1:-1:-1;;;10486:87:0;;13918:2:1;10486:87:0;;;13900:21:1;13957:2;13937:18;;;13930:30;13996:34;13976:18;;;13969:62;-1:-1:-1;;;14047:18:1;;;14040:33;14090:19;;10486:87:0;13716:399:1;10486:87:0;10609:28;10640:24;10658:4;10640:9;:24::i;:::-;10609:55;-1:-1:-1;5895:3:0;5881:11;4729:21;5881:1;:11;:::i;:::-;:17;;;;:::i;:::-;10684:20;:43;10681:138;;5895:3;5881:11;4729:21;5881:1;:11;:::i;:::-;:17;;;;:::i;:::-;10761:42;;10681:138;10847:13;-1:-1:-1;;;;;10839:21:0;:4;-1:-1:-1;;;;;10839:21:0;;;:62;;;;;10864:37;10872:20;10894:6;10864:7;:37::i;:::-;10839:92;;;;-1:-1:-1;;;;;;10907:24:0;;;;;;:18;:24;;;;;;;;10906:25;10839:92;:119;;;;-1:-1:-1;;;;;;10936:22:0;;;;;;:18;:22;;;;;;;;10935:23;10839:119;10835:391;;;10979:38;10996:20;10979:16;:38::i;:::-;11065:21;11109:22;;11105:106;;11156:35;11169:21;11156:12;:35::i;:::-;10960:266;10835:391;10185:1052;10123:1114;-1:-1:-1;;;;;11287:24:0;;11249:12;11287:24;;;:18;:24;;;;;;11264:4;;11287:24;;;:50;;-1:-1:-1;;;;;;11315:22:0;;;;;;:18;:22;;;;;;;;11287:50;11286:102;;;;11351:13;-1:-1:-1;;;;;11343:21:0;:4;-1:-1:-1;;;;;11343:21:0;;;:44;;;;;11374:13;-1:-1:-1;;;;;11368:19:0;:2;-1:-1:-1;;;;;11368:19:0;;;11343:44;11282:611;;;-1:-1:-1;11415:5:0;11282:611;;;11506:13;-1:-1:-1;;;;;11498:21:0;:4;-1:-1:-1;;;;;11498:21:0;;:55;;;;;11537:15;-1:-1:-1;;;;;11523:30:0;:2;-1:-1:-1;;;;;11523:30:0;;;11498:55;11495:162;;;11586:14;;11574:9;:26;11629:12;;11619:7;:22;11495:162;11716:13;-1:-1:-1;;;;;11710:19:0;:2;-1:-1:-1;;;;;11710:19:0;;:55;;;;;11749:15;-1:-1:-1;;;;;11733:32:0;:4;-1:-1:-1;;;;;11733:32:0;;;11710:55;11706:165;;;11798:15;;11786:9;:27;11842:13;;11832:7;:23;11706:165;11904:41;11919:4;11925:2;11929:6;11937:7;11904:14;:41::i;2420:224::-;2540:7;2576:12;2568:6;;;;2560:29;;;;-1:-1:-1;;;2560:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2600:9:0;2612:5;2616:1;2612;:5;:::i;:::-;2600:17;2420:224;-1:-1:-1;;;;;2420:224:0:o;8697:330::-;8792:7;8850;;8839;:18;;8817:117;;;;-1:-1:-1;;;8817:117:0;;14455:2:1;8817:117:0;;;14437:21:1;14494:2;14474:18;;;14467:30;14533:34;14513:18;;;14506:62;-1:-1:-1;;;14584:18:1;;;14577:47;14641:19;;8817:117:0;14253:413:1;8817:117:0;8945:19;8967:10;:8;:10::i;:::-;8945:32;-1:-1:-1;8995:24:0;:7;8945:32;8995:11;:24::i;:::-;8988:31;8697:330;-1:-1:-1;;;8697:330:0:o;12766:99::-;12823:17;;:34;;-1:-1:-1;;;;;12823:17:0;;;;:34;;;;;12850:6;;12823:17;:34;:17;:34;12850:6;12823:17;:34;;;;;;;;;;;;;;;;;;;11961:519;6311:6;:13;;-1:-1:-1;;;;6311:13:0;-1:-1:-1;;;6311:13:0;;;12063:16:::1;::::0;;12077:1:::1;12063:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12063:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12063:16:0::1;12039:40;;12108:4;12090;12095:1;12090:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;12090:23:0::1;;;-1:-1:-1::0;;;;;12090:23:0::1;;;::::0;::::1;12134:15;-1:-1:-1::0;;;;;12134:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12124:4;12129:1;12124:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1::0;;;;;12124:32:0::1;;;-1:-1:-1::0;;;;;12124:32:0::1;;;::::0;::::1;12167:62;12184:4;12199:15;12217:11;12167:8;:62::i;:::-;12240:196;::::0;-1:-1:-1;;;12240:196:0;;-1:-1:-1;;;;;12240:15:0::1;:66;::::0;::::1;::::0;:196:::1;::::0;12321:11;;12347:1:::1;::::0;12363:4;;12390::::1;::::0;12410:15:::1;::::0;12240:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;12457:12:0::1;12447:23;::::0;;;:9:::1;:23;::::0;;;;:25;;;-1:-1:-1;12447:23:0;-1:-1:-1;12447:25:0::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;6347:6:0;:14;;-1:-1:-1;;;;6347:14:0;;;-1:-1:-1;;11961:519:0:o;12488:269::-;12574:4;12622:19;;12598:20;:43;;:54;;;;-1:-1:-1;12646:6:0;;-1:-1:-1;;;12646:6:0;;;;12645:7;12598:54;:69;;;;-1:-1:-1;12656:11:0;;-1:-1:-1;;;12656:11:0;;;;12598:69;:114;;;;-1:-1:-1;12695:12:0;12685:23;;;;:9;:23;;;;;;12711:1;-1:-1:-1;12598:114:0;:151;;;;;12748:1;12726:19;;:23;;;;:::i;:::-;12716:6;:33;;12591:158;12488:269;-1:-1:-1;;;12488:269:0:o;13679:282::-;13835:7;13830:28;;13844:14;:12;:14::i;:::-;13869:44;13887:6;13895:9;13906:6;13869:17;:44::i;:::-;13929:7;13924:29;;13938:15;9322:17;;9310:9;:29;9360:15;;9350:7;:25;9266:117;16610:164;16652:7;16673:15;16690;16709:19;:17;:19::i;:::-;16672:56;;-1:-1:-1;16672:56:0;-1:-1:-1;16746:20:0;16672:56;;16746:11;:20::i;:::-;16739:27;;;;16610:164;:::o;2908:132::-;2966:7;2993:39;2997:1;3000;2993:39;;;;;;;;;;;;;;;;;:3;:39::i;9036:221::-;9083:9;;:14;:30;;;;-1:-1:-1;9101:7:0;;:12;9083:30;9079:43;;;9036:221::o;9079:43::-;9155:9;;;9135:17;:29;9193:7;;;9175:15;:25;-1:-1:-1;9214:13:0;;;;9238:11;9036:221::o;13970:610::-;14117:15;14147:23;14185:12;14212:23;14250:12;14277:13;14304:19;14315:7;14304:10;:19::i;:::-;-1:-1:-1;;;;;14352:15:0;;;;;;:7;:15;;;;;;14102:221;;-1:-1:-1;14102:221:0;;-1:-1:-1;14102:221:0;;-1:-1:-1;14102:221:0;-1:-1:-1;14102:221:0;-1:-1:-1;14102:221:0;-1:-1:-1;14352:28:0;;14102:221;14352:19;:28::i;:::-;-1:-1:-1;;;;;14334:15:0;;;;;;;:7;:15;;;;;;:46;;;;14412:18;;;;;;;:39;;14435:15;14412:22;:39::i;:::-;-1:-1:-1;;;;;14391:18:0;;;;;;:7;:18;;;;;:60;14462:16;14472:5;14462:9;:16::i;:::-;14489:23;14501:4;14507;14489:11;:23::i;:::-;14545:9;-1:-1:-1;;;;;14528:44:0;14537:6;-1:-1:-1;;;;;14528:44:0;;14556:15;14528:44;;;;1595:25:1;;1583:2;1568:18;;1449:177;14528:44:0;;;;;;;;14091:489;;;;;;13970:610;;;:::o;16783:257::-;16881:7;;16834;;;;4729:21;16949:20;16881:7;4729:21;16949:11;:20::i;:::-;16939:7;:30;16935:61;;;-1:-1:-1;;16979:7:0;;;4729:21;;-1:-1:-1;16783:257:0;-1:-1:-1;16783:257:0:o;16935:61::-;17015:7;;17024;;-1:-1:-1;16783:257:0;-1:-1:-1;16783:257:0:o;3049:223::-;3169:7;3204:12;3197:5;3189:28;;;;-1:-1:-1;;;3189:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3228:9:0;3240:5;3244:1;3240;:5;:::i;14965:615::-;15065:7;15087;15109;15131;15153;15175;15211:23;15236:12;15250:13;15280:40;15292:7;15301:9;;15312:7;;15280:11;:40::i;:::-;15210:110;;;;;;15331:19;15353:10;:8;:10::i;:::-;15331:32;;15375:15;15392:23;15417:12;15446:46;15458:7;15467:4;15473:5;15480:11;15446;:46::i;:::-;15374:118;;-1:-1:-1;15374:118:0;-1:-1:-1;15374:118:0;-1:-1:-1;15543:15:0;;-1:-1:-1;15560:4:0;;-1:-1:-1;15566:5:0;;-1:-1:-1;;;;;14965:615:0;;;;;;;:::o;2275:136::-;2333:7;2360:43;2364:1;2367;2360:43;;;;;;;;;;;;;;;;;:3;:43::i;2087:179::-;2145:7;;2177:5;2181:1;2177;:5;:::i;:::-;2165:17;;2206:1;2201;:6;;2193:46;;;;-1:-1:-1;;;2193:46:0;;16246:2:1;2193:46:0;;;16228:21:1;16285:2;16265:18;;;16258:30;16324:29;16304:18;;;16297:57;16371:18;;2193:46:0;16044:351:1;14589:211:0;14642:19;14664:10;:8;:10::i;:::-;14642:32;-1:-1:-1;14685:13:0;14701:22;:5;14642:32;14701:9;:22::i;:::-;14775:4;14759:22;;;;:7;:22;;;;;;14685:38;;-1:-1:-1;14759:33:0;;14685:38;14759:26;:33::i;:::-;14750:4;14734:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14589:211:0:o;14809:147::-;14887:7;;:17;;14899:4;14887:11;:17::i;:::-;14877:7;:27;14928:10;;:20;;14943:4;14928:14;:20::i;:::-;14915:10;:33;-1:-1:-1;;14809:147:0:o;15589:469::-;15758:7;;;;15852:30;15878:3;15852:21;:7;15864:8;15852:11;:21::i;:::-;:25;;:30::i;:::-;15837:45;-1:-1:-1;15893:13:0;15909:28;15933:3;15909:19;:7;15921:6;15909:11;:19::i;:28::-;15893:44;-1:-1:-1;15948:23:0;15974:28;15893:44;15974:17;:7;15986:4;15974:11;:17::i;:::-;:21;;:28::i;:::-;15948:54;16038:4;;-1:-1:-1;16044:5:0;;-1:-1:-1;15589:469:0;;-1:-1:-1;;;;;15589:469:0:o;16067:534::-;16261:7;;;;16358:24;:7;16370:11;16358;:24::i;:::-;16340:42;-1:-1:-1;16393:12:0;16408:21;:4;16417:11;16408:8;:21::i;:::-;16393:36;-1:-1:-1;16440:13:0;16456:22;:5;16466:11;16456:9;:22::i;:::-;16440:38;-1:-1:-1;16489:23:0;16515:28;16440:38;16515:17;:7;16527:4;16515:11;:17::i;:28::-;16562:7;;;;-1:-1:-1;16588:4:0;;-1:-1:-1;16067:534:0;;-1:-1:-1;;;;;;;16067:534:0:o;2653:246::-;2711:7;2735:1;2740;2735:6;2731:47;;-1:-1:-1;2765:1:0;2758:8;;2731:47;2788:9;2800:5;2804:1;2800;:5;:::i;:::-;2788:17;-1:-1:-1;2833:1:0;2824:5;2828:1;2788:17;2824:5;:::i;:::-;:10;2816:56;;;;-1:-1:-1;;;2816:56:0;;16602:2:1;2816:56:0;;;16584:21:1;16641:2;16621:18;;;16614:30;16680:34;16660:18;;;16653:62;-1:-1:-1;;;16731:18:1;;;16724:31;16772:19;;2816:56:0;16400:397:1;14:548;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:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:160::-;2554:20;;2610:13;;2603:21;2593:32;;2583:60;;2639:1;2636;2629:12;2583:60;2489:160;;;:::o;2654:180::-;2710:6;2763:2;2751:9;2742:7;2738:23;2734:32;2731:52;;;2779:1;2776;2769:12;2731:52;2802:26;2818:9;2802:26;:::i;2839:255::-;2906:6;2959:2;2947:9;2938:7;2934:23;2930:32;2927:52;;;2975:1;2972;2965:12;2927:52;3014:9;3001:23;3033:31;3058:5;3033:31;:::i;3099:385::-;3185:6;3193;3201;3209;3262:3;3250:9;3241:7;3237:23;3233:33;3230:53;;;3279:1;3276;3269:12;3230:53;-1:-1:-1;;3302:23:1;;;3372:2;3357:18;;3344:32;;-1:-1:-1;3423:2:1;3408:18;;3395:32;;3474:2;3459:18;3446:32;;-1:-1:-1;3099:385:1;-1:-1:-1;3099:385:1:o;3741:180::-;3800:6;3853:2;3841:9;3832:7;3828:23;3824:32;3821:52;;;3869:1;3866;3859:12;3821:52;-1:-1:-1;3892:23:1;;3741:180;-1:-1:-1;3741:180:1:o;3926:689::-;4018:6;4026;4034;4087:2;4075:9;4066:7;4062:23;4058:32;4055:52;;;4103:1;4100;4093:12;4055:52;4143:9;4130:23;4172:18;4213:2;4205:6;4202:14;4199:34;;;4229:1;4226;4219:12;4199:34;4267:6;4256:9;4252:22;4242:32;;4312:7;4305:4;4301:2;4297:13;4293:27;4283:55;;4334:1;4331;4324:12;4283:55;4374:2;4361:16;4400:2;4392:6;4389:14;4386:34;;;4416:1;4413;4406:12;4386:34;4471:7;4464:4;4454:6;4451:1;4447:14;4443:2;4439:23;4435:34;4432:47;4429:67;;;4492:1;4489;4482:12;4429:67;4523:4;4515:13;;;;-1:-1:-1;4547:6:1;-1:-1:-1;4572:37:1;;4588:20;;;-1:-1:-1;4572:37:1;:::i;:::-;4562:47;;3926:689;;;;;:::o;4620:388::-;4688:6;4696;4749:2;4737:9;4728:7;4724:23;4720:32;4717:52;;;4765:1;4762;4755:12;4717:52;4804:9;4791:23;4823:31;4848:5;4823:31;:::i;:::-;4873:5;-1:-1:-1;4930:2:1;4915:18;;4902:32;4943:33;4902:32;4943:33;:::i;:::-;4995:7;4985:17;;;4620:388;;;;;:::o;5013:356::-;5215:2;5197:21;;;5234:18;;;5227:30;5293:34;5288:2;5273:18;;5266:62;5360:2;5345:18;;5013:356::o;6842:127::-;6903:10;6898:3;6894:20;6891:1;6884:31;6934:4;6931:1;6924:15;6958:4;6955:1;6948:15;6974:168;7047:9;;;7078;;7095:15;;;7089:22;;7075:37;7065:71;;7116:18;;:::i;7147:217::-;7187:1;7213;7203:132;;7257:10;7252:3;7248:20;7245:1;7238:31;7292:4;7289:1;7282:15;7320:4;7317:1;7310:15;7203:132;-1:-1:-1;7349:9:1;;7147:217::o;7790:127::-;7851:10;7846:3;7842:20;7839:1;7832:31;7882:4;7879:1;7872:15;7906:4;7903:1;7896:15;7922:135;7961:3;7982:17;;;7979:43;;8002:18;;:::i;:::-;-1:-1:-1;8049:1:1;8038:13;;7922:135::o;13586:125::-;13651:9;;;13672:10;;;13669:36;;;13685:18;;:::i;14120:128::-;14187:9;;;14208:11;;;14205:37;;;14222:18;;:::i;14803:251::-;14873:6;14926:2;14914:9;14905:7;14901:23;14897:32;14894:52;;;14942:1;14939;14932:12;14894:52;14974:9;14968:16;14993:31;15018:5;14993:31;:::i;15059:980::-;15321:4;15369:3;15358:9;15354:19;15400:6;15389:9;15382:25;15426:2;15464:6;15459:2;15448:9;15444:18;15437:34;15507:3;15502:2;15491:9;15487:18;15480:31;15531:6;15566;15560:13;15597:6;15589;15582:22;15635:3;15624:9;15620:19;15613:26;;15674:2;15666:6;15662:15;15648:29;;15695:1;15705:195;15719:6;15716:1;15713:13;15705:195;;;15784:13;;-1:-1:-1;;;;;15780:39:1;15768:52;;15875:15;;;;15840:12;;;;15816:1;15734:9;15705:195;;;-1:-1:-1;;;;;;;15956:32:1;;;;15951:2;15936:18;;15929:60;-1:-1:-1;;;16020:3:1;16005:19;15998:35;15917:3;15059:980;-1:-1:-1;;;15059:980:1:o

Swarm Source

ipfs://c7dd2e6ec0e8a83b0fade670ea246874e654a247bf8294bd9e89e361358a2f8d
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.