ETH Price: $3,480.28 (+1.67%)
Gas: 13 Gwei

Token

Lily ($LILY)
 

Overview

Max Total Supply

5,105,000,000,000 $LILY

Holders

196

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
19,900,000 $LILY

Value
$0.00
0x84f20108a19943cc8de0fd7ed49381a08e89c40d
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:
LILY

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

//SPDX-License-Identifier: MIT

// File: contracts/interfaces/IERC20.sol

pragma solidity ^0.8.19;

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

    function isFeeExempt(address addr) external view returns (bool);

    function getTradingInfo(address trader) external view returns (uint256, uint256, uint256);

    function getTotalTradingInfo() external view returns (uint256, uint256, uint256);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}
// File: contracts/interfaces/IERC20Metadata.sol

pragma solidity ^0.8.19;


interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}
// File: contracts/libraries/SafeMath.sol

pragma solidity ^0.8.19;

library SafeMath {
    function tryAdd(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

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

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

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

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

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

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

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}
// File: contracts/libraries/Context.sol

pragma solidity ^0.8.19;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}
// File: contracts/libraries/Ownable.sol

pragma solidity ^0.8.19;


abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _transferOwnership(_msgSender());
    }

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

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

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(
        address tokenA,
        address tokenB
    ) external view returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

    function createPair(
        address tokenA,
        address tokenB
    ) external returns (address pair);

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

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

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity);

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

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

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}
// File: contracts/LILY.sol

pragma solidity ^0.8.19;

contract LILY is Context, IERC20Metadata, Ownable {
    using SafeMath for uint256;

    struct TradingInfo {
        uint256 boughtAmount;
        uint256 soldAmount;
        uint256 transferredAmount;
    }

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;
    string private constant _name = "Lily";
    string private constant _symbol = "$LILY";
    uint8 private constant _decimals = 18;
    uint256 private constant _hardCap = 420_000_000_000 * (10 ** _decimals);

    address payable _liquidityWallet;
    address payable _rewardWallet;
    address payable _companyWallet;

    uint256 _buyTax = 15;
    uint256 _sellTax = 20;
    uint256 _normalTax = 5;

    uint256 _liquidityWalletTaxAllocation = 45;
    uint256 _rewardWalletTaxAllocation = 40;
    uint256 _companyWalletTaxAllocation = 15;

    uint256 _initialMintRatio = 25;
    uint256 _maxHalvings = 120;
    uint256 _halvingReduction = 25;
    uint256 _mintRate = 3000;
    uint256 _mintDenom = 100000;
    uint256 _halvingCount = 1;
    uint256 _maxHoldingAmount = _hardCap.div(400);
    uint256 _maxTxAmount = _hardCap.div(800);

    uint256 _totalBoughtAmount = 0;
    uint256 _totalSoldAmount = 0;
    uint256 _totalTransferredAmount = 0;

    IUniswapV2Router02 _uniswapRouter;
    address _uniswapPair;
    bool _tradingOpen = false;
    bool _limited = true;

    mapping(address => TradingInfo) _tradingInfo;
    mapping(address => bool) _isFeeExempt;
    mapping(address => bool) _automatedMarketMakerPairs;

    event OpenTrading(bool flag, uint256 timeStamp);
    event HalvingMint(address to, uint256 amount, uint256 halvingCount);
    event SetAutomatedMarketMakerPairs(address ammPair, bool flag);
    event SetLimitation(bool limit, uint256 maxTxAmount, uint256 maxHoldingAmount);
    event SetFeeExempt(address indexed addr, bool value);
    event SetTax(uint256 buyTax, uint256 sellTax, uint256 normalTax);
    event SetTaxWallet(address liquidityWallet, address rewardWallet, address companyWallet);
    event SetTaxAllocation(uint256 liquidityWalletTaxAllocation, uint256 rewardWalletTaxAllocation, uint256 companyWalletTaxAllocation);
    event SetMaxHalving(uint256 maxHalving);
    event SetHalvingReduction(uint256 halvingReduction);

    constructor() {
        _uniswapRouter = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _uniswapPair = IUniswapV2Factory(_uniswapRouter.factory())
            .createPair(address(this), _uniswapRouter.WETH());
        _mint(msg.sender, _hardCap.mul(_initialMintRatio).div(100));
        _automatedMarketMakerPairs[_uniswapPair] = true;
        _isFeeExempt[msg.sender] = true;
        _isFeeExempt[address(this)] = true;
    }

    function name() public pure override returns (string memory) {
        return _name;
    }

    function symbol() public pure override returns (string memory) {
        return _symbol;
    }

    function decimals() public pure override returns (uint8) {
        return _decimals;
    }

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

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address from, address to) public view override returns (uint256) {
        return _allowances[from][to];
    }

    function approve(address to, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), to, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);

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

        return true;
    }

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

        _allowances[from][to] = amount;
        emit Approval(from, to, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(amount > 0, "ERC20: transfer amount zero");
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        
        bool excludedAccount = _isFeeExempt[from] || _isFeeExempt[to];
        require(_tradingOpen || excludedAccount, "LILYLOG:: Trading is not allowed");

        if (!_automatedMarketMakerPairs[to] && !excludedAccount && _limited) {
            require(amount <= _maxTxAmount, "LILYLOG:: Insufficient tx amount");
            require(_balances[to] + amount <= _maxHoldingAmount, "LILYLOG:: Insufficient trading amount");
        }

        uint256 taxAmount = 0;
        uint256 sendAmount;

        if (shouldTakeFee(from, to)) {
            taxAmount = calculateTax(from, to, amount);
        }

        sendAmount = amount.sub(taxAmount);
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(sendAmount);
        emit Transfer(from, to, sendAmount);

        if (taxAmount > 0) {
            _balances[_liquidityWallet] = _balances[_liquidityWallet].add(taxAmount.mul(_liquidityWalletTaxAllocation).div(100));
            _balances[_rewardWallet] = _balances[_rewardWallet].add(taxAmount.mul(_rewardWalletTaxAllocation).div(100));
            _balances[_companyWallet] = _balances[_companyWallet].add(taxAmount.mul(_companyWalletTaxAllocation).div(100));
            emit Transfer(from, _liquidityWallet, taxAmount.mul(_liquidityWalletTaxAllocation).div(100));
            emit Transfer(from, _rewardWallet, taxAmount.mul(_rewardWalletTaxAllocation).div(100));
            emit Transfer(from, _companyWallet, taxAmount.mul(_companyWalletTaxAllocation).div(100));
        }

        if (_automatedMarketMakerPairs[from] && !_automatedMarketMakerPairs[to]) {
            _tradingInfo[to].boughtAmount += amount;
            _totalBoughtAmount += amount;
        } else if (!_automatedMarketMakerPairs[from] && _automatedMarketMakerPairs[to]) {
            _tradingInfo[from].soldAmount += amount;
            _totalSoldAmount += amount;
        } else {
            _tradingInfo[from].transferredAmount += amount;
            _totalTransferredAmount += amount;
        }
    }

    function _mint(address account, uint256 amount) private {
        require(account != address(0), "LILYLOG:: Mint to the zero address");
        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    function mint(address account, uint256 amount) external onlyOwner {
        _mint(account, amount);
    }

    function halvingMint() external onlyOwner() {
        uint256 mintAmount = _hardCap.mul(_mintRate).div(_mintDenom);
        if (_mintRate < 1)
            return;
        _mint(_liquidityWallet, mintAmount.mul(_liquidityWalletTaxAllocation).div(100));
        _mint(_rewardWallet, mintAmount.mul(_rewardWalletTaxAllocation).div(100));
        _mint(_companyWallet, mintAmount.mul(_companyWalletTaxAllocation).div(100));
        if (_halvingCount < _maxHalvings) {
            _mintRate = _mintRate.sub(_halvingReduction.mul(_halvingCount));
            _halvingCount++;
        }        
    }

    function shouldTakeFee(address from, address to) private view returns (bool) {
        if (_isFeeExempt[from] || _isFeeExempt[to]) {
            return false;
        } else {
            return true;
        }
    }

    function calculateTax(address from, address to, uint amount) private view returns (uint256) {
        uint256 taxAmount = 0;
        if (_automatedMarketMakerPairs[from]) {
            taxAmount = amount.mul(_buyTax).div(1000);
        } else if (_automatedMarketMakerPairs[to]) {
            taxAmount = amount.mul(_sellTax).div(1000);
        } else if (!_automatedMarketMakerPairs[from] && !_automatedMarketMakerPairs[to]) {
            taxAmount = amount.mul(_normalTax).div(1000);
        }
        return taxAmount;
    }

    function setFeeExempt(address[] calldata addressLists, bool value) external onlyOwner {
        uint256 length = addressLists.length;
        for (uint256 i = 0; i < length; i ++) {
            _isFeeExempt[addressLists[i]] = value;
            emit SetFeeExempt(addressLists[i], value);
        }
    }

    function openTrading() external onlyOwner {
        _tradingOpen = true;
        emit OpenTrading(_tradingOpen, block.timestamp);
    }

    function setAutomatedMarketMakerPairs(address ammPair, bool flag) external onlyOwner {
        _automatedMarketMakerPairs[ammPair] = flag;
        emit SetAutomatedMarketMakerPairs(ammPair, flag);
    }

    function setLimitation(bool limited, uint256 maxTxAmount, uint256 maxHoldingAmount) external onlyOwner {
        _limited = limited;
        _maxTxAmount = maxTxAmount;
        _maxHoldingAmount = maxHoldingAmount;
        emit SetLimitation(limited, maxTxAmount, maxHoldingAmount);
    }

    function setTax(uint256 buyTax, uint256 sellTax, uint256 normalTax) external onlyOwner {
        require(buyTax > 0, "LILYLOG:: Buy tax must be higher than zero");
        require(sellTax > 0, "LILYLOG:: Sell tax must be higher than zero");
        require(normalTax > 0, "LILYLOG:: Normal tax must be higher than zero");
        _buyTax = buyTax;
        _sellTax = sellTax;
        _normalTax = normalTax;
        emit SetTax(buyTax, sellTax, normalTax);
    }

    function setTaxAllocation(uint256 liquidityWalletTaxAllocation, uint256 rewardWalletTaxAllocation, uint256 companyWalletTaxAllocation) external onlyOwner {
        require(liquidityWalletTaxAllocation + rewardWalletTaxAllocation + companyWalletTaxAllocation == 100, "LILYLOG:: Tax allocation is not correct");
        _liquidityWalletTaxAllocation = liquidityWalletTaxAllocation;
        _rewardWalletTaxAllocation = rewardWalletTaxAllocation;
        _companyWalletTaxAllocation = companyWalletTaxAllocation;
        emit SetTaxAllocation(liquidityWalletTaxAllocation, rewardWalletTaxAllocation, companyWalletTaxAllocation);
    }

    function setTaxWallet(address liquidityWallet, address rewardWallet, address companyWallet) external onlyOwner {
        _liquidityWallet = payable(liquidityWallet);
        _rewardWallet = payable(rewardWallet);
        _companyWallet = payable(companyWallet);
        _isFeeExempt[_liquidityWallet] = true;
        _isFeeExempt[_rewardWallet] = true;
        _isFeeExempt[_companyWallet] = true;
        emit SetTaxWallet(liquidityWallet, rewardWallet, companyWallet);
    }

    function setMaxHalving(uint256 maxHalvings) external onlyOwner {
        require(maxHalvings > _maxHalvings, "LILYLOG:: Max halving must be higher than the prior value");
        _maxHalvings = maxHalvings;
        emit SetMaxHalving(maxHalvings);
    }

    function setHalvingReduction(uint256 halvingReduction) external onlyOwner {
        require(halvingReduction > 0, "LILYLOG:: Halving reduction must be higher than zero");
        require(halvingReduction < 100, "LILYLOG:: Halving reduction must be lower than 100");
        _halvingReduction = halvingReduction;
        emit SetHalvingReduction(halvingReduction);
    }

    function isFeeExempt(address addr) external view returns (bool) {
        return _isFeeExempt[addr];
    }

    function getTradingInfo(address trader) external view returns (uint256, uint256, uint256) {
        return (_tradingInfo[trader].boughtAmount, _tradingInfo[trader].soldAmount, _tradingInfo[trader].transferredAmount);
    }

    function getTotalTradingInfo() external view returns (uint256, uint256, uint256) {
        return (_totalBoughtAmount, _totalSoldAmount, _totalTransferredAmount);
    }

    receive() payable external {}
    
    fallback() payable external {}
}

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":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"halvingCount","type":"uint256"}],"name":"HalvingMint","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"flag","type":"bool"},{"indexed":false,"internalType":"uint256","name":"timeStamp","type":"uint256"}],"name":"OpenTrading","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":"address","name":"ammPair","type":"address"},{"indexed":false,"internalType":"bool","name":"flag","type":"bool"}],"name":"SetAutomatedMarketMakerPairs","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"bool","name":"value","type":"bool"}],"name":"SetFeeExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"halvingReduction","type":"uint256"}],"name":"SetHalvingReduction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"limit","type":"bool"},{"indexed":false,"internalType":"uint256","name":"maxTxAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxHoldingAmount","type":"uint256"}],"name":"SetLimitation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxHalving","type":"uint256"}],"name":"SetMaxHalving","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buyTax","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellTax","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"normalTax","type":"uint256"}],"name":"SetTax","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"liquidityWalletTaxAllocation","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"rewardWalletTaxAllocation","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"companyWalletTaxAllocation","type":"uint256"}],"name":"SetTaxAllocation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"liquidityWallet","type":"address"},{"indexed":false,"internalType":"address","name":"rewardWallet","type":"address"},{"indexed":false,"internalType":"address","name":"companyWallet","type":"address"}],"name":"SetTaxWallet","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"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getTotalTradingInfo","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"trader","type":"address"}],"name":"getTradingInfo","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"halvingMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"ammPair","type":"address"},{"internalType":"bool","name":"flag","type":"bool"}],"name":"setAutomatedMarketMakerPairs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addressLists","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"halvingReduction","type":"uint256"}],"name":"setHalvingReduction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"limited","type":"bool"},{"internalType":"uint256","name":"maxTxAmount","type":"uint256"},{"internalType":"uint256","name":"maxHoldingAmount","type":"uint256"}],"name":"setLimitation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxHalvings","type":"uint256"}],"name":"setMaxHalving","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyTax","type":"uint256"},{"internalType":"uint256","name":"sellTax","type":"uint256"},{"internalType":"uint256","name":"normalTax","type":"uint256"}],"name":"setTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityWalletTaxAllocation","type":"uint256"},{"internalType":"uint256","name":"rewardWalletTaxAllocation","type":"uint256"},{"internalType":"uint256","name":"companyWalletTaxAllocation","type":"uint256"}],"name":"setTaxAllocation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"liquidityWallet","type":"address"},{"internalType":"address","name":"rewardWallet","type":"address"},{"internalType":"address","name":"companyWallet","type":"address"}],"name":"setTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600f60075560146008556005600955602d600a556028600b55600f600c556019600d556078600e556019600f55610bb8601055620186a06011556001601255620000726101906012600a6200005a919062000586565b6200006b906461c9f3680062000597565b906200030b565b6013556200008a6103206200005a6012600a62000586565b6014556000601581905560168190556017556019805461ffff60a01b1916600160a81b179055348015620000bd57600080fd5b50620000c93362000322565b601880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200012e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001549190620005b1565b6001600160a01b031663c9c6539630601860009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001dd9190620005b1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200022b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002519190620005b1565b601960006101000a8154816001600160a01b0302191690836001600160a01b03160217905550620002b733620002b160646200006b600d546012600a62000299919062000586565b620002aa906461c9f3680062000597565b9062000372565b62000380565b6019546001600160a01b03166000908152601c602090815260408083208054600160ff199182168117909255338552601b90935281842080548416821790553084529220805490911690911790556200061c565b6000620003198284620005e3565b90505b92915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600062000319828462000597565b6001600160a01b038216620003e65760405162461bcd60e51b815260206004820152602260248201527f4c494c594c4f473a3a204d696e7420746f20746865207a65726f206164647265604482015261737360f01b606482015260840160405180910390fd5b8060036000828254620003fa919062000606565b90915550506001600160a01b038216600090815260016020526040812080548392906200042990849062000606565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004ca578160001904821115620004ae57620004ae62000473565b80851615620004bc57918102915b93841c93908002906200048e565b509250929050565b600082620004e3575060016200031c565b81620004f2575060006200031c565b81600181146200050b5760028114620005165762000536565b60019150506200031c565b60ff8411156200052a576200052a62000473565b50506001821b6200031c565b5060208310610133831016604e8410600b84101617156200055b575081810a6200031c565b62000567838362000489565b80600019048211156200057e576200057e62000473565b029392505050565b60006200031960ff841683620004d2565b80820281158282048414176200031c576200031c62000473565b600060208284031215620005c457600080fd5b81516001600160a01b0381168114620005dc57600080fd5b9392505050565b6000826200060157634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156200031c576200031c62000473565b612016806200062c6000396000f3fe6080604052600436106101735760003560e01c806370a08231116100c8578063a983e4c811610084578063dd62ed3e11610061578063dd62ed3e146104c8578063dd705ff61461050e578063f2fde38b1461052e578063f3bc9ab01461054e57005b8063a983e4c814610473578063b5e1024614610493578063c9567bf9146104b357005b806370a0823114610392578063715018a6146103c8578063731987e3146103dd5780638da5cb5b146103fd57806395d89b4114610425578063a9059cbb1461045357005b8063313ce5671161012f5780633be00bc71161010c5780633be00bc7146103045780633f4218e01461031957806340c10f191461035257806345167f261461037257005b8063313ce567146102a85780633185f281146102c457806336dacd1f146102e457005b806306fdde031461017c578063095ea7b3146101bb5780630e947bd8146101eb57806318160ddd146102495780631c21f4571461026857806323b872dd1461028857005b3661017a57005b005b34801561018857600080fd5b506040805180820190915260048152634c696c7960e01b60208201525b6040516101b29190611b66565b60405180910390f35b3480156101c757600080fd5b506101db6101d6366004611bd0565b610569565b60405190151581526020016101b2565b3480156101f757600080fd5b5061022e610206366004611bfa565b6001600160a01b03166000908152601a60205260409020805460018201546002909201549092565b604080519384526020840192909252908201526060016101b2565b34801561025557600080fd5b506003545b6040519081526020016101b2565b34801561027457600080fd5b5061017a610283366004611c15565b610580565b34801561029457600080fd5b506101db6102a3366004611c58565b610675565b3480156102b457600080fd5b50604051601281526020016101b2565b3480156102d057600080fd5b5061017a6102df366004611ca4565b61071f565b3480156102f057600080fd5b5061017a6102ff366004611d1f565b61082d565b34801561031057600080fd5b5061017a61090a565b34801561032557600080fd5b506101db610334366004611bfa565b6001600160a01b03166000908152601b602052604090205460ff1690565b34801561035e57600080fd5b5061017a61036d366004611bd0565b610a3e565b34801561037e57600080fd5b5061017a61038d366004611d38565b610a76565b34801561039e57600080fd5b5061025a6103ad366004611bfa565b6001600160a01b031660009081526001602052604090205490565b3480156103d457600080fd5b5061017a610b03565b3480156103e957600080fd5b5061017a6103f8366004611d1f565b610b37565b34801561040957600080fd5b506000546040516001600160a01b0390911681526020016101b2565b34801561043157600080fd5b50604080518082019091526005815264244c494c5960d81b60208201526101a5565b34801561045f57600080fd5b506101db61046e366004611bd0565b610c6e565b34801561047f57600080fd5b5061017a61048e366004611d6b565b610c7b565b34801561049f57600080fd5b5061017a6104ae366004611d6b565b610e1f565b3480156104bf57600080fd5b5061017a610f0a565b3480156104d457600080fd5b5061025a6104e3366004611d97565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561051a57600080fd5b5061017a610529366004611dc1565b610f96565b34801561053a57600080fd5b5061017a610549366004611bfa565b611024565b34801561055a57600080fd5b5060155460165460175461022e565b60006105763384846110bc565b5060015b92915050565b6000546001600160a01b031633146105b35760405162461bcd60e51b81526004016105aa90611df4565b60405180910390fd5b600480546001600160a01b038581166001600160a01b031992831681179093556005805486831690841681178255600680548785169516851781556000868152601b60209081526040808320805460ff1990811660019081179092559654881684528184208054881682179055935490961682529085902080549094169091179092558251948552908401528201527fde145ec6f1793d5ad81aded80dcfddf13a1c1cdd652f2f2f10012b43b309b20b906060015b60405180910390a1505050565b60006106828484846111e0565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156107075760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016105aa565b61071485338584036110bc565b506001949350505050565b6000546001600160a01b031633146107495760405162461bcd60e51b81526004016105aa90611df4565b8160005b818110156108265782601b600087878581811061076c5761076c611e29565b90506020020160208101906107819190611bfa565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558484828181106107bb576107bb611e29565b90506020020160208101906107d09190611bfa565b6001600160a01b03167f2f640a0ab7e2a6d9ec57f3932923908568f2984073dcebac1b9a3db32debe91d8460405161080c911515815260200190565b60405180910390a28061081e81611e55565b91505061074d565b5050505050565b6000546001600160a01b031633146108575760405162461bcd60e51b81526004016105aa90611df4565b600e5481116108ce5760405162461bcd60e51b815260206004820152603960248201527f4c494c594c4f473a3a204d61782068616c76696e67206d75737420626520686960448201527f67686572207468616e20746865207072696f722076616c75650000000000000060648201526084016105aa565b600e8190556040518181527fa4697db1f1b076a8a902307d14f5d9a2afbe9c58933f3f80c747bd3d02b25e01906020015b60405180910390a150565b6000546001600160a01b031633146109345760405162461bcd60e51b81526004016105aa90611df4565b600061096b6011546109656010546012600a6109509190611f52565b61095f906461c9f36800611f61565b906118c5565b906118d8565b90506001601054101561097b5750565b600454600a546109a6916001600160a01b0316906109a1906064906109659086906118c5565b6118e4565b600554600b546109cc916001600160a01b0316906109a1906064906109659086906118c5565b600654600c546109f2916001600160a01b0316906109a1906064906109659086906118c5565b600e546012541015610a3a57610a21610a18601254600f546118c590919063ffffffff16565b601054906119bc565b60105560128054906000610a3483611e55565b91905055505b505b565b6000546001600160a01b03163314610a685760405162461bcd60e51b81526004016105aa90611df4565b610a7282826118e4565b5050565b6000546001600160a01b03163314610aa05760405162461bcd60e51b81526004016105aa90611df4565b6001600160a01b0382166000818152601c6020908152604091829020805460ff19168515159081179091558251938452908301527f1e71719b96ca7e93812afcce6915bf5fce856b2ef956f7b83f07b1265423bc50910160405180910390a15050565b6000546001600160a01b03163314610b2d5760405162461bcd60e51b81526004016105aa90611df4565b610a3c60006119c8565b6000546001600160a01b03163314610b615760405162461bcd60e51b81526004016105aa90611df4565b60008111610bce5760405162461bcd60e51b815260206004820152603460248201527f4c494c594c4f473a3a2048616c76696e6720726564756374696f6e206d75737460448201527320626520686967686572207468616e207a65726f60601b60648201526084016105aa565b60648110610c395760405162461bcd60e51b815260206004820152603260248201527f4c494c594c4f473a3a2048616c76696e6720726564756374696f6e206d7573746044820152710206265206c6f776572207468616e203130360741b60648201526084016105aa565b600f8190556040518181527f45f469c6dd586dc503baf365bbc7024d5d556d9ece7ddf65f27c8ce3787d3bc9906020016108ff565b60006105763384846111e0565b6000546001600160a01b03163314610ca55760405162461bcd60e51b81526004016105aa90611df4565b60008311610d085760405162461bcd60e51b815260206004820152602a60248201527f4c494c594c4f473a3a2042757920746178206d75737420626520686967686572604482015269207468616e207a65726f60b01b60648201526084016105aa565b60008211610d6c5760405162461bcd60e51b815260206004820152602b60248201527f4c494c594c4f473a3a2053656c6c20746178206d75737420626520686967686560448201526a72207468616e207a65726f60a81b60648201526084016105aa565b60008111610dd25760405162461bcd60e51b815260206004820152602d60248201527f4c494c594c4f473a3a204e6f726d616c20746178206d7573742062652068696760448201526c686572207468616e207a65726f60981b60648201526084016105aa565b60078390556008829055600981905560408051848152602081018490529081018290527f4edbdf12092392c7d7e3c32a25cce7dc147e18e10eea069f23ec6f9a83a58b0f90606001610668565b6000546001600160a01b03163314610e495760405162461bcd60e51b81526004016105aa90611df4565b80610e548385611f78565b610e5e9190611f78565b606414610ebd5760405162461bcd60e51b815260206004820152602760248201527f4c494c594c4f473a3a2054617820616c6c6f636174696f6e206973206e6f742060448201526618dbdc9c9958dd60ca1b60648201526084016105aa565b600a839055600b829055600c81905560408051848152602081018490529081018290527f1c445907ee3fa546b1efa310d7f2600e4fc56ca7ed8c3e0af9e1161c5903688e90606001610668565b6000546001600160a01b03163314610f345760405162461bcd60e51b81526004016105aa90611df4565b6019805460ff60a01b1916600160a01b908117918290556040517f76f69943a2756d687cf7ae40efea861deaafb28c2f7a68532134f90057ec69f392610f8c92900460ff169042909115158252602082015260400190565b60405180910390a1565b6000546001600160a01b03163314610fc05760405162461bcd60e51b81526004016105aa90611df4565b6019805460ff60a81b1916600160a81b8515159081029190911790915560148390556013829055604080519182526020820184905281018290527f5615b91c861299662bed50a58c3a8bc7f4dc9f7b7e318d95317f62930016be8d90606001610668565b6000546001600160a01b0316331461104e5760405162461bcd60e51b81526004016105aa90611df4565b6001600160a01b0381166110b35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105aa565b610a3a816119c8565b6001600160a01b03831661111e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105aa565b6001600160a01b03821661117f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105aa565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116112305760405162461bcd60e51b815260206004820152601b60248201527f45524332303a207472616e7366657220616d6f756e74207a65726f000000000060448201526064016105aa565b6001600160a01b0383166112945760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105aa565b6001600160a01b0382166112f65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105aa565b6001600160a01b0383166000908152601b602052604081205460ff168061133557506001600160a01b0383166000908152601b602052604090205460ff165b601954909150600160a01b900460ff168061134d5750805b6113995760405162461bcd60e51b815260206004820181905260248201527f4c494c594c4f473a3a2054726164696e67206973206e6f7420616c6c6f77656460448201526064016105aa565b6001600160a01b0383166000908152601c602052604090205460ff161580156113c0575080155b80156113d55750601954600160a81b900460ff165b156114af5760145482111561142c5760405162461bcd60e51b815260206004820181905260248201527f4c494c594c4f473a3a20496e73756666696369656e7420747820616d6f756e7460448201526064016105aa565b6013546001600160a01b038416600090815260016020526040902054611453908490611f78565b11156114af5760405162461bcd60e51b815260206004820152602560248201527f4c494c594c4f473a3a20496e73756666696369656e742074726164696e6720616044820152641b5bdd5b9d60da1b60648201526084016105aa565b6000806114bc8686611a18565b156114cf576114cc868686611a6c565b91505b6114d984836119bc565b6001600160a01b0387166000908152600160205260409020549091506114ff90856119bc565b6001600160a01b03808816600090815260016020526040808220939093559087168152205461152e9082611b5a565b6001600160a01b038087166000818152600160205260409081902093909355915190881690600080516020611fc1833981519152906115709085815260200190565b60405180910390a38115611757576115bc61159b6064610965600a54866118c590919063ffffffff16565b6004546001600160a01b031660009081526001602052604090205490611b5a565b6004546001600160a01b0316600090815260016020526040902055600b54611611906115f0906064906109659086906118c5565b6005546001600160a01b031660009081526001602052604090205490611b5a565b6005546001600160a01b0316600090815260016020526040902055600c5461166690611645906064906109659086906118c5565b6006546001600160a01b031660009081526001602052604090205490611b5a565b6006546001600160a01b03908116600090815260016020526040902091909155600454600a5490821691881690600080516020611fc1833981519152906116b5906064906109659088906118c5565b60405190815260200160405180910390a3600554600b546001600160a01b0391821691881690600080516020611fc1833981519152906116fd906064906109659088906118c5565b60405190815260200160405180910390a3600654600c546001600160a01b0391821691881690600080516020611fc183398151915290611745906064906109659088906118c5565b60405190815260200160405180910390a35b6001600160a01b0386166000908152601c602052604090205460ff16801561179857506001600160a01b0385166000908152601c602052604090205460ff16155b156117e9576001600160a01b0385166000908152601a6020526040812080548692906117c5908490611f78565b9250508190555083601560008282546117de9190611f78565b909155506118bd9050565b6001600160a01b0386166000908152601c602052604090205460ff1615801561182a57506001600160a01b0385166000908152601c602052604090205460ff165b15611873576001600160a01b0386166000908152601a60205260408120600101805486929061185a908490611f78565b9250508190555083601660008282546117de9190611f78565b6001600160a01b0386166000908152601a60205260408120600201805486929061189e908490611f78565b9250508190555083601760008282546118b79190611f78565b90915550505b505050505050565b60006118d18284611f61565b9392505050565b60006118d18284611f8b565b6001600160a01b0382166119455760405162461bcd60e51b815260206004820152602260248201527f4c494c594c4f473a3a204d696e7420746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105aa565b80600360008282546119579190611f78565b90915550506001600160a01b03821660009081526001602052604081208054839290611984908490611f78565b90915550506040518181526001600160a01b03831690600090600080516020611fc18339815191529060200160405180910390a35050565b60006118d18284611fad565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0382166000908152601b602052604081205460ff1680611a5757506001600160a01b0382166000908152601b602052604090205460ff165b15611a645750600061057a565b50600161057a565b6001600160a01b0383166000908152601c6020526040812054819060ff1615611ab157611aaa6103e8610965600754866118c590919063ffffffff16565b9050611b52565b6001600160a01b0384166000908152601c602052604090205460ff1615611aed57611aaa6103e8610965600854866118c590919063ffffffff16565b6001600160a01b0385166000908152601c602052604090205460ff16158015611b2f57506001600160a01b0384166000908152601c602052604090205460ff16155b15611b5257611b4f6103e8610965600954866118c590919063ffffffff16565b90505b949350505050565b60006118d18284611f78565b600060208083528351808285015260005b81811015611b9357858101830151858201604001528201611b77565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611bcb57600080fd5b919050565b60008060408385031215611be357600080fd5b611bec83611bb4565b946020939093013593505050565b600060208284031215611c0c57600080fd5b6118d182611bb4565b600080600060608486031215611c2a57600080fd5b611c3384611bb4565b9250611c4160208501611bb4565b9150611c4f60408501611bb4565b90509250925092565b600080600060608486031215611c6d57600080fd5b611c7684611bb4565b9250611c8460208501611bb4565b9150604084013590509250925092565b80358015158114611bcb57600080fd5b600080600060408486031215611cb957600080fd5b833567ffffffffffffffff80821115611cd157600080fd5b818601915086601f830112611ce557600080fd5b813581811115611cf457600080fd5b8760208260051b8501011115611d0957600080fd5b602092830195509350611c4f9186019050611c94565b600060208284031215611d3157600080fd5b5035919050565b60008060408385031215611d4b57600080fd5b611d5483611bb4565b9150611d6260208401611c94565b90509250929050565b600080600060608486031215611d8057600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611daa57600080fd5b611db383611bb4565b9150611d6260208401611bb4565b600080600060608486031215611dd657600080fd5b611ddf84611c94565b95602085013595506040909401359392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611e6757611e67611e3f565b5060010190565b600181815b80851115611ea9578160001904821115611e8f57611e8f611e3f565b80851615611e9c57918102915b93841c9390800290611e73565b509250929050565b600082611ec05750600161057a565b81611ecd5750600061057a565b8160018114611ee35760028114611eed57611f09565b600191505061057a565b60ff841115611efe57611efe611e3f565b50506001821b61057a565b5060208310610133831016604e8410600b8410161715611f2c575081810a61057a565b611f368383611e6e565b8060001904821115611f4a57611f4a611e3f565b029392505050565b60006118d160ff841683611eb1565b808202811582820484141761057a5761057a611e3f565b8082018082111561057a5761057a611e3f565b600082611fa857634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561057a5761057a611e3f56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220dcf349fbb5b2124ca8cde13d58661142505ccec8c0e3ef9e2266f06c75608cbe64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101735760003560e01c806370a08231116100c8578063a983e4c811610084578063dd62ed3e11610061578063dd62ed3e146104c8578063dd705ff61461050e578063f2fde38b1461052e578063f3bc9ab01461054e57005b8063a983e4c814610473578063b5e1024614610493578063c9567bf9146104b357005b806370a0823114610392578063715018a6146103c8578063731987e3146103dd5780638da5cb5b146103fd57806395d89b4114610425578063a9059cbb1461045357005b8063313ce5671161012f5780633be00bc71161010c5780633be00bc7146103045780633f4218e01461031957806340c10f191461035257806345167f261461037257005b8063313ce567146102a85780633185f281146102c457806336dacd1f146102e457005b806306fdde031461017c578063095ea7b3146101bb5780630e947bd8146101eb57806318160ddd146102495780631c21f4571461026857806323b872dd1461028857005b3661017a57005b005b34801561018857600080fd5b506040805180820190915260048152634c696c7960e01b60208201525b6040516101b29190611b66565b60405180910390f35b3480156101c757600080fd5b506101db6101d6366004611bd0565b610569565b60405190151581526020016101b2565b3480156101f757600080fd5b5061022e610206366004611bfa565b6001600160a01b03166000908152601a60205260409020805460018201546002909201549092565b604080519384526020840192909252908201526060016101b2565b34801561025557600080fd5b506003545b6040519081526020016101b2565b34801561027457600080fd5b5061017a610283366004611c15565b610580565b34801561029457600080fd5b506101db6102a3366004611c58565b610675565b3480156102b457600080fd5b50604051601281526020016101b2565b3480156102d057600080fd5b5061017a6102df366004611ca4565b61071f565b3480156102f057600080fd5b5061017a6102ff366004611d1f565b61082d565b34801561031057600080fd5b5061017a61090a565b34801561032557600080fd5b506101db610334366004611bfa565b6001600160a01b03166000908152601b602052604090205460ff1690565b34801561035e57600080fd5b5061017a61036d366004611bd0565b610a3e565b34801561037e57600080fd5b5061017a61038d366004611d38565b610a76565b34801561039e57600080fd5b5061025a6103ad366004611bfa565b6001600160a01b031660009081526001602052604090205490565b3480156103d457600080fd5b5061017a610b03565b3480156103e957600080fd5b5061017a6103f8366004611d1f565b610b37565b34801561040957600080fd5b506000546040516001600160a01b0390911681526020016101b2565b34801561043157600080fd5b50604080518082019091526005815264244c494c5960d81b60208201526101a5565b34801561045f57600080fd5b506101db61046e366004611bd0565b610c6e565b34801561047f57600080fd5b5061017a61048e366004611d6b565b610c7b565b34801561049f57600080fd5b5061017a6104ae366004611d6b565b610e1f565b3480156104bf57600080fd5b5061017a610f0a565b3480156104d457600080fd5b5061025a6104e3366004611d97565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561051a57600080fd5b5061017a610529366004611dc1565b610f96565b34801561053a57600080fd5b5061017a610549366004611bfa565b611024565b34801561055a57600080fd5b5060155460165460175461022e565b60006105763384846110bc565b5060015b92915050565b6000546001600160a01b031633146105b35760405162461bcd60e51b81526004016105aa90611df4565b60405180910390fd5b600480546001600160a01b038581166001600160a01b031992831681179093556005805486831690841681178255600680548785169516851781556000868152601b60209081526040808320805460ff1990811660019081179092559654881684528184208054881682179055935490961682529085902080549094169091179092558251948552908401528201527fde145ec6f1793d5ad81aded80dcfddf13a1c1cdd652f2f2f10012b43b309b20b906060015b60405180910390a1505050565b60006106828484846111e0565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156107075760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016105aa565b61071485338584036110bc565b506001949350505050565b6000546001600160a01b031633146107495760405162461bcd60e51b81526004016105aa90611df4565b8160005b818110156108265782601b600087878581811061076c5761076c611e29565b90506020020160208101906107819190611bfa565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558484828181106107bb576107bb611e29565b90506020020160208101906107d09190611bfa565b6001600160a01b03167f2f640a0ab7e2a6d9ec57f3932923908568f2984073dcebac1b9a3db32debe91d8460405161080c911515815260200190565b60405180910390a28061081e81611e55565b91505061074d565b5050505050565b6000546001600160a01b031633146108575760405162461bcd60e51b81526004016105aa90611df4565b600e5481116108ce5760405162461bcd60e51b815260206004820152603960248201527f4c494c594c4f473a3a204d61782068616c76696e67206d75737420626520686960448201527f67686572207468616e20746865207072696f722076616c75650000000000000060648201526084016105aa565b600e8190556040518181527fa4697db1f1b076a8a902307d14f5d9a2afbe9c58933f3f80c747bd3d02b25e01906020015b60405180910390a150565b6000546001600160a01b031633146109345760405162461bcd60e51b81526004016105aa90611df4565b600061096b6011546109656010546012600a6109509190611f52565b61095f906461c9f36800611f61565b906118c5565b906118d8565b90506001601054101561097b5750565b600454600a546109a6916001600160a01b0316906109a1906064906109659086906118c5565b6118e4565b600554600b546109cc916001600160a01b0316906109a1906064906109659086906118c5565b600654600c546109f2916001600160a01b0316906109a1906064906109659086906118c5565b600e546012541015610a3a57610a21610a18601254600f546118c590919063ffffffff16565b601054906119bc565b60105560128054906000610a3483611e55565b91905055505b505b565b6000546001600160a01b03163314610a685760405162461bcd60e51b81526004016105aa90611df4565b610a7282826118e4565b5050565b6000546001600160a01b03163314610aa05760405162461bcd60e51b81526004016105aa90611df4565b6001600160a01b0382166000818152601c6020908152604091829020805460ff19168515159081179091558251938452908301527f1e71719b96ca7e93812afcce6915bf5fce856b2ef956f7b83f07b1265423bc50910160405180910390a15050565b6000546001600160a01b03163314610b2d5760405162461bcd60e51b81526004016105aa90611df4565b610a3c60006119c8565b6000546001600160a01b03163314610b615760405162461bcd60e51b81526004016105aa90611df4565b60008111610bce5760405162461bcd60e51b815260206004820152603460248201527f4c494c594c4f473a3a2048616c76696e6720726564756374696f6e206d75737460448201527320626520686967686572207468616e207a65726f60601b60648201526084016105aa565b60648110610c395760405162461bcd60e51b815260206004820152603260248201527f4c494c594c4f473a3a2048616c76696e6720726564756374696f6e206d7573746044820152710206265206c6f776572207468616e203130360741b60648201526084016105aa565b600f8190556040518181527f45f469c6dd586dc503baf365bbc7024d5d556d9ece7ddf65f27c8ce3787d3bc9906020016108ff565b60006105763384846111e0565b6000546001600160a01b03163314610ca55760405162461bcd60e51b81526004016105aa90611df4565b60008311610d085760405162461bcd60e51b815260206004820152602a60248201527f4c494c594c4f473a3a2042757920746178206d75737420626520686967686572604482015269207468616e207a65726f60b01b60648201526084016105aa565b60008211610d6c5760405162461bcd60e51b815260206004820152602b60248201527f4c494c594c4f473a3a2053656c6c20746178206d75737420626520686967686560448201526a72207468616e207a65726f60a81b60648201526084016105aa565b60008111610dd25760405162461bcd60e51b815260206004820152602d60248201527f4c494c594c4f473a3a204e6f726d616c20746178206d7573742062652068696760448201526c686572207468616e207a65726f60981b60648201526084016105aa565b60078390556008829055600981905560408051848152602081018490529081018290527f4edbdf12092392c7d7e3c32a25cce7dc147e18e10eea069f23ec6f9a83a58b0f90606001610668565b6000546001600160a01b03163314610e495760405162461bcd60e51b81526004016105aa90611df4565b80610e548385611f78565b610e5e9190611f78565b606414610ebd5760405162461bcd60e51b815260206004820152602760248201527f4c494c594c4f473a3a2054617820616c6c6f636174696f6e206973206e6f742060448201526618dbdc9c9958dd60ca1b60648201526084016105aa565b600a839055600b829055600c81905560408051848152602081018490529081018290527f1c445907ee3fa546b1efa310d7f2600e4fc56ca7ed8c3e0af9e1161c5903688e90606001610668565b6000546001600160a01b03163314610f345760405162461bcd60e51b81526004016105aa90611df4565b6019805460ff60a01b1916600160a01b908117918290556040517f76f69943a2756d687cf7ae40efea861deaafb28c2f7a68532134f90057ec69f392610f8c92900460ff169042909115158252602082015260400190565b60405180910390a1565b6000546001600160a01b03163314610fc05760405162461bcd60e51b81526004016105aa90611df4565b6019805460ff60a81b1916600160a81b8515159081029190911790915560148390556013829055604080519182526020820184905281018290527f5615b91c861299662bed50a58c3a8bc7f4dc9f7b7e318d95317f62930016be8d90606001610668565b6000546001600160a01b0316331461104e5760405162461bcd60e51b81526004016105aa90611df4565b6001600160a01b0381166110b35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105aa565b610a3a816119c8565b6001600160a01b03831661111e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105aa565b6001600160a01b03821661117f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105aa565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116112305760405162461bcd60e51b815260206004820152601b60248201527f45524332303a207472616e7366657220616d6f756e74207a65726f000000000060448201526064016105aa565b6001600160a01b0383166112945760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105aa565b6001600160a01b0382166112f65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105aa565b6001600160a01b0383166000908152601b602052604081205460ff168061133557506001600160a01b0383166000908152601b602052604090205460ff165b601954909150600160a01b900460ff168061134d5750805b6113995760405162461bcd60e51b815260206004820181905260248201527f4c494c594c4f473a3a2054726164696e67206973206e6f7420616c6c6f77656460448201526064016105aa565b6001600160a01b0383166000908152601c602052604090205460ff161580156113c0575080155b80156113d55750601954600160a81b900460ff165b156114af5760145482111561142c5760405162461bcd60e51b815260206004820181905260248201527f4c494c594c4f473a3a20496e73756666696369656e7420747820616d6f756e7460448201526064016105aa565b6013546001600160a01b038416600090815260016020526040902054611453908490611f78565b11156114af5760405162461bcd60e51b815260206004820152602560248201527f4c494c594c4f473a3a20496e73756666696369656e742074726164696e6720616044820152641b5bdd5b9d60da1b60648201526084016105aa565b6000806114bc8686611a18565b156114cf576114cc868686611a6c565b91505b6114d984836119bc565b6001600160a01b0387166000908152600160205260409020549091506114ff90856119bc565b6001600160a01b03808816600090815260016020526040808220939093559087168152205461152e9082611b5a565b6001600160a01b038087166000818152600160205260409081902093909355915190881690600080516020611fc1833981519152906115709085815260200190565b60405180910390a38115611757576115bc61159b6064610965600a54866118c590919063ffffffff16565b6004546001600160a01b031660009081526001602052604090205490611b5a565b6004546001600160a01b0316600090815260016020526040902055600b54611611906115f0906064906109659086906118c5565b6005546001600160a01b031660009081526001602052604090205490611b5a565b6005546001600160a01b0316600090815260016020526040902055600c5461166690611645906064906109659086906118c5565b6006546001600160a01b031660009081526001602052604090205490611b5a565b6006546001600160a01b03908116600090815260016020526040902091909155600454600a5490821691881690600080516020611fc1833981519152906116b5906064906109659088906118c5565b60405190815260200160405180910390a3600554600b546001600160a01b0391821691881690600080516020611fc1833981519152906116fd906064906109659088906118c5565b60405190815260200160405180910390a3600654600c546001600160a01b0391821691881690600080516020611fc183398151915290611745906064906109659088906118c5565b60405190815260200160405180910390a35b6001600160a01b0386166000908152601c602052604090205460ff16801561179857506001600160a01b0385166000908152601c602052604090205460ff16155b156117e9576001600160a01b0385166000908152601a6020526040812080548692906117c5908490611f78565b9250508190555083601560008282546117de9190611f78565b909155506118bd9050565b6001600160a01b0386166000908152601c602052604090205460ff1615801561182a57506001600160a01b0385166000908152601c602052604090205460ff165b15611873576001600160a01b0386166000908152601a60205260408120600101805486929061185a908490611f78565b9250508190555083601660008282546117de9190611f78565b6001600160a01b0386166000908152601a60205260408120600201805486929061189e908490611f78565b9250508190555083601760008282546118b79190611f78565b90915550505b505050505050565b60006118d18284611f61565b9392505050565b60006118d18284611f8b565b6001600160a01b0382166119455760405162461bcd60e51b815260206004820152602260248201527f4c494c594c4f473a3a204d696e7420746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105aa565b80600360008282546119579190611f78565b90915550506001600160a01b03821660009081526001602052604081208054839290611984908490611f78565b90915550506040518181526001600160a01b03831690600090600080516020611fc18339815191529060200160405180910390a35050565b60006118d18284611fad565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0382166000908152601b602052604081205460ff1680611a5757506001600160a01b0382166000908152601b602052604090205460ff165b15611a645750600061057a565b50600161057a565b6001600160a01b0383166000908152601c6020526040812054819060ff1615611ab157611aaa6103e8610965600754866118c590919063ffffffff16565b9050611b52565b6001600160a01b0384166000908152601c602052604090205460ff1615611aed57611aaa6103e8610965600854866118c590919063ffffffff16565b6001600160a01b0385166000908152601c602052604090205460ff16158015611b2f57506001600160a01b0384166000908152601c602052604090205460ff16155b15611b5257611b4f6103e8610965600954866118c590919063ffffffff16565b90505b949350505050565b60006118d18284611f78565b600060208083528351808285015260005b81811015611b9357858101830151858201604001528201611b77565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611bcb57600080fd5b919050565b60008060408385031215611be357600080fd5b611bec83611bb4565b946020939093013593505050565b600060208284031215611c0c57600080fd5b6118d182611bb4565b600080600060608486031215611c2a57600080fd5b611c3384611bb4565b9250611c4160208501611bb4565b9150611c4f60408501611bb4565b90509250925092565b600080600060608486031215611c6d57600080fd5b611c7684611bb4565b9250611c8460208501611bb4565b9150604084013590509250925092565b80358015158114611bcb57600080fd5b600080600060408486031215611cb957600080fd5b833567ffffffffffffffff80821115611cd157600080fd5b818601915086601f830112611ce557600080fd5b813581811115611cf457600080fd5b8760208260051b8501011115611d0957600080fd5b602092830195509350611c4f9186019050611c94565b600060208284031215611d3157600080fd5b5035919050565b60008060408385031215611d4b57600080fd5b611d5483611bb4565b9150611d6260208401611c94565b90509250929050565b600080600060608486031215611d8057600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611daa57600080fd5b611db383611bb4565b9150611d6260208401611bb4565b600080600060608486031215611dd657600080fd5b611ddf84611c94565b95602085013595506040909401359392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611e6757611e67611e3f565b5060010190565b600181815b80851115611ea9578160001904821115611e8f57611e8f611e3f565b80851615611e9c57918102915b93841c9390800290611e73565b509250929050565b600082611ec05750600161057a565b81611ecd5750600061057a565b8160018114611ee35760028114611eed57611f09565b600191505061057a565b60ff841115611efe57611efe611e3f565b50506001821b61057a565b5060208310610133831016604e8410600b8410161715611f2c575081810a61057a565b611f368383611e6e565b8060001904821115611f4a57611f4a611e3f565b029392505050565b60006118d160ff841683611eb1565b808202811582820484141761057a5761057a611e3f565b8082018082111561057a5761057a611e3f565b600082611fa857634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561057a5761057a611e3f56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220dcf349fbb5b2124ca8cde13d58661142505ccec8c0e3ef9e2266f06c75608cbe64736f6c63430008130033

Deployed Bytecode Sourcemap

7652:12707:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10545:92;;;;;;;;;;-1:-1:-1;10624:5:0;;;;;;;;;;;;-1:-1:-1;;;10624:5:0;;;;10545:92;;;;;;;:::i;:::-;;;;;;;;11398:151;;;;;;;;;;-1:-1:-1;11398:151:0;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;11398:151:0;1004:187:1;19875:224:0;;;;;;;;;;-1:-1:-1;19875:224:0;;;;;:::i;:::-;-1:-1:-1;;;;;19984:20:0;19938:7;19984:20;;;:12;:20;;;;;:33;;20019:31;;;;20052:38;;;;;19984:33;;19875:224;;;;;1589:25:1;;;1645:2;1630:18;;1623:34;;;;1673:18;;;1666:34;1577:2;1562:18;19875:224:0;1387:319:1;10849:100:0;;;;;;;;;;-1:-1:-1;10929:12:0;;10849:100;;;1857:25:1;;;1845:2;1830:18;10849:100:0;1711:177:1;18620:484:0;;;;;;;;;;-1:-1:-1;18620:484:0;;;;;:::i;:::-;;:::i;11557:487::-;;;;;;;;;;-1:-1:-1;11557:487:0;;;;;:::i;:::-;;:::i;10749:92::-;;;;;;;;;;-1:-1:-1;10749:92:0;;8166:2;2707:36:1;;2695:2;2680:18;10749:92:0;2565:184:1;16520:309:0;;;;;;;;;;-1:-1:-1;16520:309:0;;;;;:::i;:::-;;:::i;19112:257::-;;;;;;;;;;-1:-1:-1;19112:257:0;;;;;:::i;:::-;;:::i;15133:604::-;;;;;;;;;;;;;:::i;19759:108::-;;;;;;;;;;-1:-1:-1;19759:108:0;;;;;:::i;:::-;-1:-1:-1;;;;;19841:18:0;19817:4;19841:18;;;:12;:18;;;;;;;;;19759:108;15018:107;;;;;;;;;;-1:-1:-1;15018:107:0;;;;;:::i;:::-;;:::i;16983:205::-;;;;;;;;;;-1:-1:-1;16983:205:0;;;;;:::i;:::-;;:::i;10957:119::-;;;;;;;;;;-1:-1:-1;10957:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;11050:18:0;11023:7;11050:18;;;:9;:18;;;;;;;10957:119;4854:103;;;;;;;;;;;;;:::i;19377:374::-;;;;;;;;;;-1:-1:-1;19377:374:0;;;;;:::i;:::-;;:::i;4631:87::-;;;;;;;;;;-1:-1:-1;4677:7:0;4704:6;4631:87;;-1:-1:-1;;;;;4704:6:0;;;4203:51:1;;4191:2;4176:18;4631:87:0;4057:203:1;10645:96:0;;;;;;;;;;-1:-1:-1;10726:7:0;;;;;;;;;;;;-1:-1:-1;;;10726:7:0;;;;10645:96;;11084:167;;;;;;;;;;-1:-1:-1;11084:167:0;;;;;:::i;:::-;;:::i;17497:470::-;;;;;;;;;;-1:-1:-1;17497:470:0;;;;;:::i;:::-;;:::i;17975:637::-;;;;;;;;;;-1:-1:-1;17975:637:0;;;;;:::i;:::-;;:::i;16837:138::-;;;;;;;;;;;;;:::i;11259:131::-;;;;;;;;;;-1:-1:-1;11259:131:0;;;;;:::i;:::-;-1:-1:-1;;;;;11361:17:0;;;11334:7;11361:17;;;:11;:17;;;;;;;;:21;;;;;;;;;;;;;11259:131;17196:293;;;;;;;;;;-1:-1:-1;17196:293:0;;;;;:::i;:::-;;:::i;4965:201::-;;;;;;;;;;-1:-1:-1;4965:201:0;;;;;:::i;:::-;;:::i;20107:170::-;;;;;;;;;;-1:-1:-1;20207:18:0;;20227:16;;20245:23;;20107:170;;11398:151;11468:4;11485:34;4185:10;11508:2;11512:6;11485:8;:34::i;:::-;-1:-1:-1;11537:4:0;11398:151;;;;;:::o;18620:484::-;4677:7;4704:6;-1:-1:-1;;;;;4704:6:0;4185:10;4766:23;4758:68;;;;-1:-1:-1;;;4758:68:0;;;;;;;:::i;:::-;;;;;;;;;18742:16:::1;:43:::0;;-1:-1:-1;;;;;18742:43:0;;::::1;-1:-1:-1::0;;;;;;18742:43:0;;::::1;::::0;::::1;::::0;;;18796:13:::1;:37:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;18844:14:::1;:39:::0;;;;::::1;::::0;::::1;::::0;::::1;::::0;;-1:-1:-1;18894:30:0;;;:12:::1;:30;::::0;;;;;;;:37;;-1:-1:-1;;18894:37:0;;::::1;-1:-1:-1::0;18894:37:0;;::::1;::::0;;;18955:13;;;::::1;18942:27:::0;;;;;:34;;;::::1;::::0;::::1;::::0;;19000:14;;;;::::1;18987:28:::0;;;;;;:35;;;;::::1;::::0;;::::1;::::0;;;19038:58;;5773:34:1;;;5823:18;;;5816:43;5875:18;;5868:43;19038:58:0::1;::::0;5723:2:1;5708:18;19038:58:0::1;;;;;;;;18620:484:::0;;;:::o;11557:487::-;11655:4;11672:36;11682:6;11690:9;11701:6;11672:9;:36::i;:::-;-1:-1:-1;;;;;11748:19:0;;11721:24;11748:19;;;:11;:19;;;;;;;;4185:10;11748:33;;;;;;;;11814:26;;;;11792:116;;;;-1:-1:-1;;;11792:116:0;;6124:2:1;11792:116:0;;;6106:21:1;6163:2;6143:18;;;6136:30;6202:34;6182:18;;;6175:62;-1:-1:-1;;;6253:18:1;;;6246:38;6301:19;;11792:116:0;5922:404:1;11792:116:0;11944:57;11953:6;4185:10;11994:6;11975:16;:25;11944:8;:57::i;:::-;-1:-1:-1;12032:4:0;;11557:487;-1:-1:-1;;;;11557:487:0:o;16520:309::-;4677:7;4704:6;-1:-1:-1;;;;;4704:6:0;4185:10;4766:23;4758:68;;;;-1:-1:-1;;;4758:68:0;;;;;;;:::i;:::-;16634:12;16617:14:::1;16664:158;16688:6;16684:1;:10;16664:158;;;16749:5;16717:12;:29;16730:12;;16743:1;16730:15;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16717:29:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;16717:29:0;:37;;-1:-1:-1;;16717:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16787:12;;16800:1;16787:15;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16774:36:0::1;;16804:5;16774:36;;;;1169:14:1::0;1162:22;1144:41;;1132:2;1117:18;;1004:187;16774:36:0::1;;;;;;;;16696:4:::0;::::1;::::0;::::1;:::i;:::-;;;;16664:158;;;;16606:223;16520:309:::0;;;:::o;19112:257::-;4677:7;4704:6;-1:-1:-1;;;;;4704:6:0;4185:10;4766:23;4758:68;;;;-1:-1:-1;;;4758:68:0;;;;;;;:::i;:::-;19208:12:::1;;19194:11;:26;19186:96;;;::::0;-1:-1:-1;;;19186:96:0;;6937:2:1;19186:96:0::1;::::0;::::1;6919:21:1::0;6976:2;6956:18;;;6949:30;7015:34;6995:18;;;6988:62;7086:27;7066:18;;;7059:55;7131:19;;19186:96:0::1;6735:421:1::0;19186:96:0::1;19293:12;:26:::0;;;19335::::1;::::0;1857:25:1;;;19335:26:0::1;::::0;1845:2:1;1830:18;19335:26:0::1;;;;;;;;19112:257:::0;:::o;15133:604::-;4677:7;4704:6;-1:-1:-1;;;;;4704:6:0;4185:10;4766:23;4758:68;;;;-1:-1:-1;;;4758:68:0;;;;;;;:::i;:::-;15188:18:::1;15209:39;15237:10;;15209:23;15222:9;;8166:2;8230;:15;;;;:::i;:::-;8211:35;::::0;:15:::1;:35;:::i;:::-;15209:12:::0;::::1;:23::i;:::-;:27:::0;::::1;:39::i;:::-;15188:60;;15275:1;15263:9;;:13;15259:39;;;15291:7;15133:604::o:0;15259:39::-:1;15314:16;::::0;15347:29:::1;::::0;15308:79:::1;::::0;-1:-1:-1;;;;;15314:16:0::1;::::0;15332:54:::1;::::0;15382:3:::1;::::0;15332:45:::1;::::0;:10;;:14:::1;:45::i;:54::-;15308:5;:79::i;:::-;15404:13;::::0;15434:26:::1;::::0;15398:73:::1;::::0;-1:-1:-1;;;;;15404:13:0::1;::::0;15419:51:::1;::::0;15466:3:::1;::::0;15419:42:::1;::::0;:10;;:14:::1;:42::i;15398:73::-;15488:14;::::0;15519:27:::1;::::0;15482:75:::1;::::0;-1:-1:-1;;;;;15488:14:0::1;::::0;15504:52:::1;::::0;15552:3:::1;::::0;15504:43:::1;::::0;:10;;:14:::1;:43::i;15482:75::-;15588:12;;15572:13;;:28;15568:154;;;15629:51;15643:36;15665:13;;15643:17;;:21;;:36;;;;:::i;:::-;15629:9;::::0;;:13:::1;:51::i;:::-;15617:9;:63:::0;15695:13:::1;:15:::0;;;:13:::1;:15;::::0;::::1;:::i;:::-;;;;;;15568:154;15177:560;4837:1;15133:604::o:0;15018:107::-;4677:7;4704:6;-1:-1:-1;;;;;4704:6:0;4185:10;4766:23;4758:68;;;;-1:-1:-1;;;4758:68:0;;;;;;;:::i;:::-;15095:22:::1;15101:7;15110:6;15095:5;:22::i;:::-;15018:107:::0;;:::o;16983:205::-;4677:7;4704:6;-1:-1:-1;;;;;4704:6:0;4185:10;4766:23;4758:68;;;;-1:-1:-1;;;4758:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17079:35:0;::::1;;::::0;;;:26:::1;:35;::::0;;;;;;;;:42;;-1:-1:-1;;17079:42:0::1;::::0;::::1;;::::0;;::::1;::::0;;;17137:43;;8885:51:1;;;8952:18;;;8945:50;17137:43:0::1;::::0;8858:18:1;17137:43:0::1;;;;;;;16983:205:::0;;:::o;4854:103::-;4677:7;4704:6;-1:-1:-1;;;;;4704:6:0;4185:10;4766:23;4758:68;;;;-1:-1:-1;;;4758:68:0;;;;;;;:::i;:::-;4919:30:::1;4946:1;4919:18;:30::i;19377:374::-:0;4677:7;4704:6;-1:-1:-1;;;;;4704:6:0;4185:10;4766:23;4758:68;;;;-1:-1:-1;;;4758:68:0;;;;;;;:::i;:::-;19489:1:::1;19470:16;:20;19462:85;;;::::0;-1:-1:-1;;;19462:85:0;;9208:2:1;19462:85:0::1;::::0;::::1;9190:21:1::0;9247:2;9227:18;;;9220:30;9286:34;9266:18;;;9259:62;-1:-1:-1;;;9337:18:1;;;9330:50;9397:19;;19462:85:0::1;9006:416:1::0;19462:85:0::1;19585:3;19566:16;:22;19558:85;;;::::0;-1:-1:-1;;;19558:85:0;;9629:2:1;19558:85:0::1;::::0;::::1;9611:21:1::0;9668:2;9648:18;;;9641:30;9707:34;9687:18;;;9680:62;-1:-1:-1;;;9758:18:1;;;9751:48;9816:19;;19558:85:0::1;9427:414:1::0;19558:85:0::1;19654:17;:36:::0;;;19706:37:::1;::::0;1857:25:1;;;19706:37:0::1;::::0;1845:2:1;1830:18;19706:37:0::1;1711:177:1::0;11084:167:0;11162:4;11179:42;4185:10;11203:9;11214:6;11179:9;:42::i;17497:470::-;4677:7;4704:6;-1:-1:-1;;;;;4704:6:0;4185:10;4766:23;4758:68;;;;-1:-1:-1;;;4758:68:0;;;;;;;:::i;:::-;17612:1:::1;17603:6;:10;17595:65;;;::::0;-1:-1:-1;;;17595:65:0;;10048:2:1;17595:65:0::1;::::0;::::1;10030:21:1::0;10087:2;10067:18;;;10060:30;10126:34;10106:18;;;10099:62;-1:-1:-1;;;10177:18:1;;;10170:40;10227:19;;17595:65:0::1;9846:406:1::0;17595:65:0::1;17689:1;17679:7;:11;17671:67;;;::::0;-1:-1:-1;;;17671:67:0;;10459:2:1;17671:67:0::1;::::0;::::1;10441:21:1::0;10498:2;10478:18;;;10471:30;10537:34;10517:18;;;10510:62;-1:-1:-1;;;10588:18:1;;;10581:41;10639:19;;17671:67:0::1;10257:407:1::0;17671:67:0::1;17769:1;17757:9;:13;17749:71;;;::::0;-1:-1:-1;;;17749:71:0;;10871:2:1;17749:71:0::1;::::0;::::1;10853:21:1::0;10910:2;10890:18;;;10883:30;10949:34;10929:18;;;10922:62;-1:-1:-1;;;11000:18:1;;;10993:43;11053:19;;17749:71:0::1;10669:409:1::0;17749:71:0::1;17831:7;:16:::0;;;17858:8:::1;:18:::0;;;17887:10:::1;:22:::0;;;17925:34:::1;::::0;;1589:25:1;;;1645:2;1630:18;;1623:34;;;1673:18;;;1666:34;;;17925::0::1;::::0;1577:2:1;1562:18;17925:34:0::1;1387:319:1::0;17975:637:0;4677:7;4704:6;-1:-1:-1;;;;;4704:6:0;4185:10;4766:23;4758:68;;;;-1:-1:-1;;;4758:68:0;;;;;;;:::i;:::-;18207:26;18148:56:::1;18179:25:::0;18148:28;:56:::1;:::i;:::-;:85;;;;:::i;:::-;18237:3;18148:92;18140:144;;;::::0;-1:-1:-1;;;18140:144:0;;11415:2:1;18140:144:0::1;::::0;::::1;11397:21:1::0;11454:2;11434:18;;;11427:30;11493:34;11473:18;;;11466:62;-1:-1:-1;;;11544:18:1;;;11537:37;11591:19;;18140:144:0::1;11213:403:1::0;18140:144:0::1;18295:29;:60:::0;;;18366:26:::1;:54:::0;;;18431:27:::1;:56:::0;;;18503:101:::1;::::0;;1589:25:1;;;1645:2;1630:18;;1623:34;;;1673:18;;;1666:34;;;18503:101:0::1;::::0;1577:2:1;1562:18;18503:101:0::1;1387:319:1::0;16837:138:0;4677:7;4704:6;-1:-1:-1;;;;;4704:6:0;4185:10;4766:23;4758:68;;;;-1:-1:-1;;;4758:68:0;;;;;;;:::i;:::-;16890:12:::1;:19:::0;;-1:-1:-1;;;;16890:19:0::1;-1:-1:-1::0;;;16890:19:0;;::::1;::::0;;;;16925:42:::1;::::0;::::1;::::0;::::1;::::0;16937:12;::::1;16890:19;16937:12;::::0;16951:15:::1;::::0;11814:14:1;;11807:22;11789:41;;11861:2;11846:18;;11839:34;11777:2;11762:18;;11621:258;16925:42:0::1;;;;;;;;16837:138::o:0;17196:293::-;4677:7;4704:6;-1:-1:-1;;;;;4704:6:0;4185:10;4766:23;4758:68;;;;-1:-1:-1;;;4758:68:0;;;;;;;:::i;:::-;17310:8:::1;:18:::0;;-1:-1:-1;;;;17310:18:0::1;-1:-1:-1::0;;;17310:18:0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;17339:12:::1;:26:::0;;;17376:17:::1;:36:::0;;;17428:53:::1;::::0;;12080:41:1;;;12152:2;12137:18;;12130:34;;;12180:18;;12173:34;;;17428:53:0::1;::::0;12068:2:1;12053:18;17428:53:0::1;11884:329:1::0;4965:201:0;4677:7;4704:6;-1:-1:-1;;;;;4704:6:0;4185:10;4766:23;4758:68;;;;-1:-1:-1;;;4758:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5054:22:0;::::1;5046:73;;;::::0;-1:-1:-1;;;5046:73:0;;12420:2:1;5046:73:0::1;::::0;::::1;12402:21:1::0;12459:2;12439:18;;;12432:30;12498:34;12478:18;;;12471:62;-1:-1:-1;;;12549:18:1;;;12542:36;12595:19;;5046:73:0::1;12218:402:1::0;5046:73:0::1;5130:28;5149:8;5130:18;:28::i;12052:313::-:0;-1:-1:-1;;;;;12139:18:0;;12131:67;;;;-1:-1:-1;;;12131:67:0;;12827:2:1;12131:67:0;;;12809:21:1;12866:2;12846:18;;;12839:30;12905:34;12885:18;;;12878:62;-1:-1:-1;;;12956:18:1;;;12949:34;13000:19;;12131:67:0;12625:400:1;12131:67:0;-1:-1:-1;;;;;12217:16:0;;12209:63;;;;-1:-1:-1;;;12209:63:0;;13232:2:1;12209:63:0;;;13214:21:1;13271:2;13251:18;;;13244:30;13310:34;13290:18;;;13283:62;-1:-1:-1;;;13361:18:1;;;13354:32;13403:19;;12209:63:0;13030:398:1;12209:63:0;-1:-1:-1;;;;;12285:17:0;;;;;;;:11;:17;;;;;;;;:21;;;;;;;;;;;;;:30;;;12331:26;;1857:25:1;;;12331:26:0;;1830:18:1;12331:26:0;;;;;;;12052:313;;;:::o;12373:2361::-;12470:1;12461:6;:10;12453:50;;;;-1:-1:-1;;;12453:50:0;;13635:2:1;12453:50:0;;;13617:21:1;13674:2;13654:18;;;13647:30;13713:29;13693:18;;;13686:57;13760:18;;12453:50:0;13433:351:1;12453:50:0;-1:-1:-1;;;;;12522:18:0;;12514:68;;;;-1:-1:-1;;;12514:68:0;;13991:2:1;12514:68:0;;;13973:21:1;14030:2;14010:18;;;14003:30;14069:34;14049:18;;;14042:62;-1:-1:-1;;;14120:18:1;;;14113:35;14165:19;;12514:68:0;13789:401:1;12514:68:0;-1:-1:-1;;;;;12601:16:0;;12593:64;;;;-1:-1:-1;;;12593:64:0;;14397:2:1;12593:64:0;;;14379:21:1;14436:2;14416:18;;;14409:30;14475:34;14455:18;;;14448:62;-1:-1:-1;;;14526:18:1;;;14519:33;14569:19;;12593:64:0;14195:399:1;12593:64:0;-1:-1:-1;;;;;12701:18:0;;12678:20;12701:18;;;:12;:18;;;;;;;;;:38;;-1:-1:-1;;;;;;12723:16:0;;;;;;:12;:16;;;;;;;;12701:38;12758:12;;12678:61;;-1:-1:-1;;;;12758:12:0;;;;;:31;;;12774:15;12758:31;12750:76;;;;-1:-1:-1;;;12750:76:0;;14801:2:1;12750:76:0;;;14783:21:1;;;14820:18;;;14813:30;14879:34;14859:18;;;14852:62;14931:18;;12750:76:0;14599:356:1;12750:76:0;-1:-1:-1;;;;;12844:30:0;;;;;;:26;:30;;;;;;;;12843:31;:51;;;;;12879:15;12878:16;12843:51;:63;;;;-1:-1:-1;12898:8:0;;-1:-1:-1;;;12898:8:0;;;;12843:63;12839:271;;;12941:12;;12931:6;:22;;12923:67;;;;-1:-1:-1;;;12923:67:0;;15162:2:1;12923:67:0;;;15144:21:1;;;15181:18;;;15174:30;15240:34;15220:18;;;15213:62;15292:18;;12923:67:0;14960:356:1;12923:67:0;13039:17;;-1:-1:-1;;;;;13013:13:0;;;;;;:9;:13;;;;;;:22;;13029:6;;13013:22;:::i;:::-;:43;;13005:93;;;;-1:-1:-1;;;13005:93:0;;15523:2:1;13005:93:0;;;15505:21:1;15562:2;15542:18;;;15535:30;15601:34;15581:18;;;15574:62;-1:-1:-1;;;15652:18:1;;;15645:35;15697:19;;13005:93:0;15321:401:1;13005:93:0;13122:17;13154:18;13189:23;13203:4;13209:2;13189:13;:23::i;:::-;13185:98;;;13241:30;13254:4;13260:2;13264:6;13241:12;:30::i;:::-;13229:42;;13185:98;13308:21;:6;13319:9;13308:10;:21::i;:::-;-1:-1:-1;;;;;13358:15:0;;;;;;:9;:15;;;;;;13295:34;;-1:-1:-1;13358:27:0;;13378:6;13358:19;:27::i;:::-;-1:-1:-1;;;;;13340:15:0;;;;;;;:9;:15;;;;;;:45;;;;13412:13;;;;;;;:29;;13430:10;13412:17;:29::i;:::-;-1:-1:-1;;;;;13396:13:0;;;;;;;:9;:13;;;;;;;:45;;;;13457:30;;;;;;-1:-1:-1;;;;;;;;;;;13457:30:0;;;13476:10;1857:25:1;;1845:2;1830:18;;1711:177;13457:30:0;;;;;;;;13504:13;;13500:720;;13564:86;13596:53;13645:3;13596:44;13610:29;;13596:9;:13;;:44;;;;:::i;:53::-;13574:16;;-1:-1:-1;;;;;13574:16:0;13564:27;;;;:9;:27;;;;;;;:31;:86::i;:::-;13544:16;;-1:-1:-1;;;;;13544:16:0;13534:27;;;;:9;:27;;;;;:116;13735:26;;13692:80;;13721:50;;13767:3;;13721:41;;:9;;:13;:41::i;:50::-;13702:13;;-1:-1:-1;;;;;13702:13:0;13692:24;;;;:9;:24;;;;;;;:28;:80::i;:::-;13675:13;;-1:-1:-1;;;;;13675:13:0;13665:24;;;;:9;:24;;;;;:107;13859:27;;13815:82;;13845:51;;13892:3;;13845:42;;:9;;:13;:42::i;:51::-;13825:14;;-1:-1:-1;;;;;13825:14:0;13815:25;;;;:9;:25;;;;;;;:29;:82::i;:::-;13797:14;;-1:-1:-1;;;;;13797:14:0;;;13787:25;;;;:9;:25;;;;;:110;;;;13932:16;;13964:29;;13932:16;;;;13917:87;;;-1:-1:-1;;;;;;;;;;;13917:87:0;13950:53;;13999:3;;13950:44;;:9;;:13;:44::i;:53::-;13917:87;;1857:25:1;;;1845:2;1830:18;13917:87:0;;;;;;;14039:13;;14068:26;;-1:-1:-1;;;;;14039:13:0;;;;14024:81;;;-1:-1:-1;;;;;;;;;;;14024:81:0;14054:50;;14100:3;;14054:41;;:9;;:13;:41::i;:50::-;14024:81;;1857:25:1;;;1845:2;1830:18;14024:81:0;;;;;;;14140:14;;14170:27;;-1:-1:-1;;;;;14140:14:0;;;;14125:83;;;-1:-1:-1;;;;;;;;;;;14125:83:0;14156:51;;14203:3;;14156:42;;:9;;:13;:42::i;:51::-;14125:83;;1857:25:1;;;1845:2;1830:18;14125:83:0;;;;;;;13500:720;-1:-1:-1;;;;;14236:32:0;;;;;;:26;:32;;;;;;;;:67;;;;-1:-1:-1;;;;;;14273:30:0;;;;;;:26;:30;;;;;;;;14272:31;14236:67;14232:495;;;-1:-1:-1;;;;;14320:16:0;;;;;;:12;:16;;;;;:39;;14353:6;;14320:16;:39;;14353:6;;14320:39;:::i;:::-;;;;;;;;14396:6;14374:18;;:28;;;;;;;:::i;:::-;;;;-1:-1:-1;14232:495:0;;-1:-1:-1;14232:495:0;;-1:-1:-1;;;;;14425:32:0;;;;;;:26;:32;;;;;;;;14424:33;:67;;;;-1:-1:-1;;;;;;14461:30:0;;;;;;:26;:30;;;;;;;;14424:67;14420:307;;;-1:-1:-1;;;;;14508:18:0;;;;;;:12;:18;;;;;:29;;:39;;14541:6;;14508:18;:39;;14541:6;;14508:39;:::i;:::-;;;;;;;;14582:6;14562:16;;:26;;;;;;;:::i;14420:307::-;-1:-1:-1;;;;;14621:18:0;;;;;;:12;:18;;;;;:36;;:46;;14661:6;;14621:18;:46;;14661:6;;14621:46;:::i;:::-;;;;;;;;14709:6;14682:23;;:33;;;;;;;:::i;:::-;;;;-1:-1:-1;;14420:307:0;12442:2292;;;12373:2361;;;:::o;2943:98::-;3001:7;3028:5;3032:1;3028;:5;:::i;:::-;3021:12;2943:98;-1:-1:-1;;;2943:98:0:o;3049:::-;3107:7;3134:5;3138:1;3134;:5;:::i;14742:268::-;-1:-1:-1;;;;;14817:21:0;;14809:68;;;;-1:-1:-1;;;14809:68:0;;16151:2:1;14809:68:0;;;16133:21:1;16190:2;16170:18;;;16163:30;16229:34;16209:18;;;16202:62;-1:-1:-1;;;16280:18:1;;;16273:32;16322:19;;14809:68:0;15949:398:1;14809:68:0;14904:6;14888:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;14921:18:0;;;;;;:9;:18;;;;;:28;;14943:6;;14921:18;:28;;14943:6;;14921:28;:::i;:::-;;;;-1:-1:-1;;14965:37:0;;1857:25:1;;;-1:-1:-1;;;;;14965:37:0;;;14982:1;;-1:-1:-1;;;;;;;;;;;14965:37:0;1845:2:1;1830:18;14965:37:0;;;;;;;14742:268;;:::o;2837:98::-;2895:7;2922:5;2926:1;2922;:5;:::i;5174:191::-;5248:16;5267:6;;-1:-1:-1;;;;;5284:17:0;;;-1:-1:-1;;;;;;5284:17:0;;;;;;5317:40;;5267:6;;;;;;;5317:40;;5248:16;5317:40;5237:128;5174:191;:::o;15745:222::-;-1:-1:-1;;;;;15837:18:0;;15816:4;15837:18;;;:12;:18;;;;;;;;;:38;;-1:-1:-1;;;;;;15859:16:0;;;;;;:12;:16;;;;;;;;15837:38;15833:127;;;-1:-1:-1;15899:5:0;15892:12;;15833:127;-1:-1:-1;15944:4:0;15937:11;;15975:537;-1:-1:-1;;;;;16114:32:0;;16058:7;16114:32;;;:26;:32;;;;;;16058:7;;16114:32;;16110:368;;;16175:29;16199:4;16175:19;16186:7;;16175:6;:10;;:19;;;;:::i;:29::-;16163:41;;16110:368;;;-1:-1:-1;;;;;16226:30:0;;;;;;:26;:30;;;;;;;;16222:256;;;16285:30;16310:4;16285:20;16296:8;;16285:6;:10;;:20;;;;:::i;16222:256::-;-1:-1:-1;;;;;16338:32:0;;;;;;:26;:32;;;;;;;;16337:33;:68;;;;-1:-1:-1;;;;;;16375:30:0;;;;;;:26;:30;;;;;;;;16374:31;16337:68;16333:145;;;16434:32;16461:4;16434:22;16445:10;;16434:6;:10;;:22;;;;:::i;:32::-;16422:44;;16333:145;16495:9;15975:537;-1:-1:-1;;;;15975:537:0:o;2731:98::-;2789:7;2816:5;2820:1;2816;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1196:186::-;1255:6;1308:2;1296:9;1287:7;1283:23;1279:32;1276:52;;;1324:1;1321;1314:12;1276:52;1347:29;1366:9;1347:29;:::i;1893:334::-;1970:6;1978;1986;2039:2;2027:9;2018:7;2014:23;2010:32;2007:52;;;2055:1;2052;2045:12;2007:52;2078:29;2097:9;2078:29;:::i;:::-;2068:39;;2126:38;2160:2;2149:9;2145:18;2126:38;:::i;:::-;2116:48;;2183:38;2217:2;2206:9;2202:18;2183:38;:::i;:::-;2173:48;;1893:334;;;;;:::o;2232:328::-;2309:6;2317;2325;2378:2;2366:9;2357:7;2353:23;2349:32;2346:52;;;2394:1;2391;2384:12;2346:52;2417:29;2436:9;2417:29;:::i;:::-;2407:39;;2465:38;2499:2;2488:9;2484:18;2465:38;:::i;:::-;2455:48;;2550:2;2539:9;2535:18;2522:32;2512:42;;2232:328;;;;;:::o;2754:160::-;2819:20;;2875:13;;2868:21;2858:32;;2848:60;;2904:1;2901;2894:12;2919:689;3011:6;3019;3027;3080:2;3068:9;3059:7;3055:23;3051:32;3048:52;;;3096:1;3093;3086:12;3048:52;3136:9;3123:23;3165:18;3206:2;3198:6;3195:14;3192:34;;;3222:1;3219;3212:12;3192:34;3260:6;3249:9;3245:22;3235:32;;3305:7;3298:4;3294:2;3290:13;3286:27;3276:55;;3327:1;3324;3317:12;3276:55;3367:2;3354:16;3393:2;3385:6;3382:14;3379:34;;;3409:1;3406;3399:12;3379:34;3464:7;3457:4;3447:6;3444:1;3440:14;3436:2;3432:23;3428:34;3425:47;3422:67;;;3485:1;3482;3475:12;3422:67;3516:4;3508:13;;;;-1:-1:-1;3540:6:1;-1:-1:-1;3565:37:1;;3581:20;;;-1:-1:-1;3565:37:1;:::i;3613:180::-;3672:6;3725:2;3713:9;3704:7;3700:23;3696:32;3693:52;;;3741:1;3738;3731:12;3693:52;-1:-1:-1;3764:23:1;;3613:180;-1:-1:-1;3613:180:1:o;3798:254::-;3863:6;3871;3924:2;3912:9;3903:7;3899:23;3895:32;3892:52;;;3940:1;3937;3930:12;3892:52;3963:29;3982:9;3963:29;:::i;:::-;3953:39;;4011:35;4042:2;4031:9;4027:18;4011:35;:::i;:::-;4001:45;;3798:254;;;;;:::o;4265:316::-;4342:6;4350;4358;4411:2;4399:9;4390:7;4386:23;4382:32;4379:52;;;4427:1;4424;4417:12;4379:52;-1:-1:-1;;4450:23:1;;;4520:2;4505:18;;4492:32;;-1:-1:-1;4571:2:1;4556:18;;;4543:32;;4265:316;-1:-1:-1;4265:316:1:o;4586:260::-;4654:6;4662;4715:2;4703:9;4694:7;4690:23;4686:32;4683:52;;;4731:1;4728;4721:12;4683:52;4754:29;4773:9;4754:29;:::i;:::-;4744:39;;4802:38;4836:2;4825:9;4821:18;4802:38;:::i;4851:316::-;4925:6;4933;4941;4994:2;4982:9;4973:7;4969:23;4965:32;4962:52;;;5010:1;5007;5000:12;4962:52;5033:26;5049:9;5033:26;:::i;:::-;5023:36;5106:2;5091:18;;5078:32;;-1:-1:-1;5157:2:1;5142:18;;;5129:32;;4851:316;-1:-1:-1;;;4851:316:1:o;5172:356::-;5374:2;5356:21;;;5393:18;;;5386:30;5452:34;5447:2;5432:18;;5425:62;5519:2;5504:18;;5172:356::o;6331:127::-;6392:10;6387:3;6383:20;6380:1;6373:31;6423:4;6420:1;6413:15;6447:4;6444:1;6437:15;6463:127;6524:10;6519:3;6515:20;6512:1;6505:31;6555:4;6552:1;6545:15;6579:4;6576:1;6569:15;6595:135;6634:3;6655:17;;;6652:43;;6675:18;;:::i;:::-;-1:-1:-1;6722:1:1;6711:13;;6595:135::o;7161:422::-;7250:1;7293:5;7250:1;7307:270;7328:7;7318:8;7315:21;7307:270;;;7387:4;7383:1;7379:6;7375:17;7369:4;7366:27;7363:53;;;7396:18;;:::i;:::-;7446:7;7436:8;7432:22;7429:55;;;7466:16;;;;7429:55;7545:22;;;;7505:15;;;;7307:270;;;7311:3;7161:422;;;;;:::o;7588:806::-;7637:5;7667:8;7657:80;;-1:-1:-1;7708:1:1;7722:5;;7657:80;7756:4;7746:76;;-1:-1:-1;7793:1:1;7807:5;;7746:76;7838:4;7856:1;7851:59;;;;7924:1;7919:130;;;;7831:218;;7851:59;7881:1;7872:10;;7895:5;;;7919:130;7956:3;7946:8;7943:17;7940:43;;;7963:18;;:::i;:::-;-1:-1:-1;;8019:1:1;8005:16;;8034:5;;7831:218;;8133:2;8123:8;8120:16;8114:3;8108:4;8105:13;8101:36;8095:2;8085:8;8082:16;8077:2;8071:4;8068:12;8064:35;8061:77;8058:159;;;-1:-1:-1;8170:19:1;;;8202:5;;8058:159;8249:34;8274:8;8268:4;8249:34;:::i;:::-;8319:6;8315:1;8311:6;8307:19;8298:7;8295:32;8292:58;;;8330:18;;:::i;:::-;8368:20;;7588:806;-1:-1:-1;;;7588:806:1:o;8399:140::-;8457:5;8486:47;8527:4;8517:8;8513:19;8507:4;8486:47;:::i;8544:168::-;8617:9;;;8648;;8665:15;;;8659:22;;8645:37;8635:71;;8686:18;;:::i;11083:125::-;11148:9;;;11169:10;;;11166:36;;;11182:18;;:::i;15727:217::-;15767:1;15793;15783:132;;15837:10;15832:3;15828:20;15825:1;15818:31;15872:4;15869:1;15862:15;15900:4;15897:1;15890:15;15783:132;-1:-1:-1;15929:9:1;;15727:217::o;16352:128::-;16419:9;;;16440:11;;;16437:37;;;16454:18;;:::i

Swarm Source

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