ETH Price: $3,410.06 (-1.01%)
Gas: 2 Gwei

Token

Dejitaru Ōgama (ŌGAMA)
 

Overview

Max Total Supply

50,000,000 ŌGAMA

Holders

134

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
felicita1-100ethchallange.eth
Balance
900,000 ŌGAMA

Value
$0.00
0xb66841a0e5348f597c009f524639602b2f3d4dcb
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:
OGAMA

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-29
*/

pragma solidity ^0.8.16;

// SPDX-License-Identifier: MIT

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

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

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

    function getOwner() external view returns (address);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    function allowance(address _owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

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

interface DexRouter {
    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;
}

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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

contract Ownable is Context {
    address private _owner;

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

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        authorizations[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }

    mapping(address => bool) internal authorizations;

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

interface INFT {
    function freeMint(address to) external;
}

contract OGAMA is Ownable, IERC20 {
    using SafeMath for uint256;

    address private constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address private constant ZERO = 0x0000000000000000000000000000000000000000;

    address public nftContract;

    address private routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    uint8 private constant _decimals = 18;

    uint256 private _totalSupply = 50000000 * (10**_decimals);
    uint256 public _maxTxAmount = (_totalSupply * 20) / 1000;
    uint256 public _walletMax = (_totalSupply * 20) / 1000;

    uint256 public nftMintCooldown = 5 days;
    uint256 public minBalanceForNFT = (_totalSupply * 2) / 1000;

    string private constant _name = "Dejitaru \u014Cgama";
    string private constant _symbol = "\u014CGAMA";

    bool public restrictWhales = true;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => uint256) public lastSell;
    mapping(address => uint256) public nftMinted;

    mapping(address => bool) public isFeeExempt;
    mapping(address => bool) public isTxLimitExempt;

    uint256 public liquidityFee = 2;
    uint256 public marketingFee = 8;
    uint256 public devFee = 0;
    uint256 public tokenFee = 0;

    uint256 public totalFee = 0;
    uint256 public totalFeeIfSelling = 0;

    bool public takeBuyFee = true;
    bool public takeSellFee = true;
    bool public takeTransferFee = true;

    address private lpWallet;
    address private projectAddress;
    address private devWallet;
    address private nativeWallet;

    DexRouter public router;
    address public pair;
    mapping(address => bool) public isPair;

    uint256 public launchedAt;

    bool public tradingOpen = false;
    bool public blacklistMode = true;
    bool public canUseBlacklist = true;
    bool private inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;

    mapping(address => bool) public isBlacklisted;
    mapping(address => bool) public isEcosystem;

    uint256 public swapThreshold = (_totalSupply * 2) / 2000;

    event AutoLiquify(uint256 amountETH, uint256 amountBOG);

    modifier lockTheSwap() {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor() {
        router = DexRouter(routerAddress);
        pair = DexFactory(router.factory()).createPair(
            router.WETH(),
            address(this)
        );
        isPair[pair] = true;
        _allowances[address(this)][address(router)] = type(uint256).max;
        _allowances[address(this)][address(pair)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        isFeeExempt[DEAD] = true;
        isFeeExempt[nativeWallet] = true;

        isEcosystem[address(this)] = true;
        isEcosystem[msg.sender] = true;
        isEcosystem[address(pair)] = true;
        isEcosystem[address(router)] = true;

        isTxLimitExempt[nativeWallet] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[DEAD] = true;

        lpWallet = msg.sender;
        projectAddress = 0xb223674FA7b277b5A8A09ad8257b870Df481152C;
        devWallet = msg.sender;
        nativeWallet = msg.sender;

        isFeeExempt[projectAddress] = true;
        totalFee = liquidityFee.add(marketingFee).add(tokenFee).add(devFee);
        totalFeeIfSelling = totalFee + 80;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

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

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

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

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

    function getOwner() external view override returns (address) {
        return owner();
    }

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

    function allowance(address holder, address spender)
        external
        view
        override
        returns (uint256)
    {
        return _allowances[holder][spender];
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
    }

    function eligible(address _address) public view returns (bool) {
        if (lastSell[_address] < 1) {
            return false;
        }
        return lastSell[_address] < block.timestamp - nftMintCooldown;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(
            amount <= _maxTxAmount || isTxLimitExempt[sender],
            "TX Limit Exceeded"
        );
    }

    function transfer(address recipient, uint256 amount)
        external
        override
        returns (bool)
    {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender]
                .sub(amount, "Insufficient Allowance");
        }
        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        if (inSwapAndLiquify) {
            return _basicTransfer(sender, recipient, amount);
        }
        if (!authorizations[sender] && !authorizations[recipient]) {
            require(tradingOpen, "");
        }

        require(
            amount <= _maxTxAmount ||
                (isTxLimitExempt[sender] && isTxLimitExempt[recipient]),
            "TX Limit"
        );
        if (
            isPair[recipient] &&
            !inSwapAndLiquify &&
            swapAndLiquifyEnabled &&
            _balances[address(this)] >= swapThreshold
        ) {
            marketingAndLiquidity();
        }
        if (!launched() && isPair[recipient]) {
            require(_balances[sender] > 0, "");
            launch();
        }

        // Blacklist
        if (blacklistMode) {
            require(!isBlacklisted[sender], "Blacklisted");
        }

        //Exchange tokens
        _balances[sender] = _balances[sender].sub(amount, "");

        if (!isTxLimitExempt[recipient] && restrictWhales) {
            require(_balances[recipient].add(amount) <= _walletMax, "");
        }

        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient]
            ? extractFee(sender, recipient, amount)
            : amount;
        _balances[recipient] = _balances[recipient].add(finalAmount);

        handleLastSell(sender, recipient);

        emit Transfer(sender, recipient, finalAmount);
        return true;
    }

    function handleLastSell(address sender, address recipient) internal{
        if (!isPair[sender]) {
            if(balanceOf(sender) < minBalanceForNFT){
                lastSell[sender] = 0;
            }
            else {
                lastSell[sender] = block.timestamp;
            }
        }
        if (lastSell[recipient] < 1 && balanceOf(recipient) > minBalanceForNFT) {
            lastSell[recipient] = block.timestamp;
        }
    }

    function extractFee(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (uint256) {
        uint256 feeApplicable = 0;
        uint256 nativeAmount = 0;
        if (isPair[recipient] && takeSellFee) {
            feeApplicable = totalFeeIfSelling.sub(tokenFee);
        }
        if (isPair[sender] && takeBuyFee) {
            feeApplicable = totalFee.sub(tokenFee);
        }
        if (!isPair[sender] && !isPair[recipient]) {
            if (takeTransferFee) {
                feeApplicable = totalFeeIfSelling.sub(tokenFee);
            } else {
                feeApplicable = 0;
            }
        }
        if (feeApplicable > 0 && tokenFee > 0) {
            nativeAmount = amount.mul(tokenFee).div(100);
            _balances[nativeWallet] = _balances[nativeWallet].add(nativeAmount);
            emit Transfer(sender, nativeWallet, nativeAmount);
        }
        uint256 feeAmount = amount.mul(feeApplicable).div(100);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount).sub(nativeAmount);
    }

    function marketingAndLiquidity() internal lockTheSwap {
        uint256 tokensToLiquify = _balances[address(this)];
        uint256 amountToLiquify = tokensToLiquify
            .mul(liquidityFee)
            .div(totalFee.sub(tokenFee))
            .div(2);
        uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify);

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

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance;

        uint256 totalETHFee = totalFee.sub(tokenFee).sub(liquidityFee.div(2));

        uint256 amountETHLiquidity = amountETH
            .mul(liquidityFee)
            .div(totalETHFee)
            .div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(
            totalETHFee
        );
        uint256 amountETHDev = amountETH.mul(devFee).div(totalETHFee);

        (bool tmpSuccess1, ) = payable(projectAddress).call{
            value: amountETHMarketing,
            gas: 30000
        }("");
        tmpSuccess1 = false;

        (tmpSuccess1, ) = payable(devWallet).call{
            value: amountETHDev,
            gas: 30000
        }("");
        tmpSuccess1 = false;

        if (amountToLiquify > 0) {
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                lpWallet,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function changeisEcosystem(address _address, bool _bool)
        external
        onlyOwner
    {
        isEcosystem[_address] = _bool;
    }

    function setWalletLimit(uint256 newLimit) external onlyOwner {
        require(newLimit >= 5, "Wallet Limit needs to be at least 0.5%");
        _walletMax = (_totalSupply * newLimit) / 1000;
    }

    function setTxLimit(uint256 newLimit) external onlyOwner {
        require(newLimit >= 5, "Wallet Limit needs to be at least 0.5%");
        _maxTxAmount = (_totalSupply * newLimit) / 1000;
    }

    function tradingStatus(bool newStatus) public onlyOwner {
        require(canUseBlacklist, "Can no longer pause trading");
        tradingOpen = newStatus;
    }

    function openTrading() public onlyOwner {
        tradingOpen = true;
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setIsTxLimitExempt(address holder, bool exempt)
        external
        onlyOwner
    {
        isTxLimitExempt[holder] = exempt;
    }

    function addWhitelist(address target) public onlyOwner {
        authorizations[target] = true;
        isFeeExempt[target] = true;
        isTxLimitExempt[target] = true;
        isEcosystem[target] = true;
        isBlacklisted[target] = false;
    }

    function changeFees(
        uint256 newLiqFee,
        uint256 newMarketingFee,
        uint256 newBetFee,
        uint256 newNativeFee,
        uint256 extraSellFee
    ) external onlyOwner {
        liquidityFee = newLiqFee;
        marketingFee = newMarketingFee;
        devFee = newBetFee;
        tokenFee = newNativeFee;

        totalFee = liquidityFee.add(marketingFee).add(devFee).add(tokenFee);
        totalFeeIfSelling = totalFee + extraSellFee;
        require(totalFeeIfSelling + totalFee < 25);
    }

    function enableBlacklist(bool _status) public onlyOwner {
        require(canUseBlacklist, "");
        blacklistMode = _status;
    }

    function changeBlacklist(address[] calldata addresses, bool status)
        public
        onlyOwner
    {
        require(canUseBlacklist, "");
        for (uint256 i; i < addresses.length; ++i) {
            isBlacklisted[addresses[i]] = status;
        }
    }

    function isAuth(address _address, bool status) public onlyOwner {
        authorizations[_address] = status;
    }

    function changePair(address _address, bool status) public onlyOwner {
        isPair[_address] = status;
    }

    function renounceBlacklist() public onlyOwner {
        canUseBlacklist = false;
    }

    function disableBlacklist() public onlyOwner {
        blacklistMode = false;
    }

    function changeTakeBuyfee(bool status) public onlyOwner {
        takeBuyFee = status;
    }

    function changeTakeSellfee(bool status) public onlyOwner {
        takeSellFee = status;
    }

    function changeTakeTransferfee(bool status) public onlyOwner {
        takeTransferFee = status;
    }

    function changeSwapbackSettings(bool status, uint256 newAmount)
        public
        onlyOwner
    {
        swapAndLiquifyEnabled = status;
        swapThreshold = newAmount;
    }

    function changeWallets(
        address newProjectWallet,
        address newDevWallet,
        address newLpWallet,
        address newNativeWallet
    ) public onlyOwner {
        lpWallet = newLpWallet;
        projectAddress = newProjectWallet;
        devWallet = newDevWallet;
        nativeWallet = newNativeWallet;
    }

    function removeERC20(address tokenAddress, uint256 tokens)
        public
        onlyOwner
        returns (bool success)
    {
        require(tokenAddress != address(this), "Cant remove the native token");
        return IERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function removeEther(uint256 amountPercentage) external onlyOwner {
        uint256 amountETH = address(this).balance;
        payable(msg.sender).transfer((amountETH * amountPercentage) / 100);
    }

    function changeNFTContract(address _address) external onlyOwner {
        nftContract = _address;
    }

    function changeMintCooldown(uint256 _seconds) external onlyOwner {
        nftMintCooldown = _seconds;
    }

    function changeMinBalanceForNFT(uint256 _amount) external onlyOwner {
        minBalanceForNFT = (_totalSupply * _amount) / 1000;
    }

    function MintNFT() external {
        require(eligible(msg.sender), "cant mint yet");
        require(balanceOf(msg.sender) >= minBalanceForNFT, "not enough tokens");
        nftMinted[msg.sender] += 1;
        lastSell[msg.sender] = block.timestamp;
        INFT(nftContract).freeMint(msg.sender);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","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":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":"MintNFT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"addWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","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":"blacklistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"canUseBlacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"changeBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"},{"internalType":"uint256","name":"newBetFee","type":"uint256"},{"internalType":"uint256","name":"newNativeFee","type":"uint256"},{"internalType":"uint256","name":"extraSellFee","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"changeMinBalanceForNFT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_seconds","type":"uint256"}],"name":"changeMintCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"changeNFTContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"changePair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"},{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"changeSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"changeTakeBuyfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"changeTakeSellfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"changeTakeTransferfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newProjectWallet","type":"address"},{"internalType":"address","name":"newDevWallet","type":"address"},{"internalType":"address","name":"newLpWallet","type":"address"},{"internalType":"address","name":"newNativeWallet","type":"address"}],"name":"changeWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_bool","type":"bool"}],"name":"changeisEcosystem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"eligible","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"isAuth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isEcosystem","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minBalanceForNFT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"nftContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nftMintCooldown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nftMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"removeERC20","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"removeEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract DexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"takeBuyFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeSellFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeTransferFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"newStatus","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","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"}]

6080604052600380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055620000386012600a620006d2565b62000048906302faf080620006e3565b6004556103e860045460146200005f9190620006e3565b6200006b9190620006fd565b6005556103e86004546014620000829190620006e3565b6200008e9190620006fd565b600655620697806007556103e86004546002620000ac9190620006e3565b620000b89190620006fd565b60089081556009805460ff19166001179055600260108190556011919091556000601281905560138190556014819055601555601680546201010162ffffff19909116179055601e805465ffff00ffffff19166401000101001790556004546107d091620001279190620006e3565b620001339190620006fd565b6021553480156200014357600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600354601a80546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620001fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000221919062000720565b6001600160a01b031663c9c65396601a60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000283573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a9919062000720565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015620002f6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031c919062000720565b601b80546001600160a01b03199081166001600160a01b0393841690811783556000908152601c60209081526040808320805460ff19908116600190811790925530808652600b8552838620601a80548b1688529086528487206000199081905589548b1688528588205533808852600e808852868920805486168717905583895286892080548616871790557ff77e91909e61d18f67b875b2bfcae1f683a8d555e55382e3a6b082e2c59ea57a8054861687179055601980548d168a52878a208054871688179055938952878052868920805486168717905581895286892080548616871790558a548c168952868920805486168717905591548b168852858820805485168617905582548b168852600f8752858820805485168617905580885285882080548516861790559854909916865292852080548216831790557f99629f56119585bf27511b6b7d295dffb54757453fcc3dabcf51d92028301f108054821683179055601680546301000000600160b81b031916630100000089021790556017805473b223674fa7b277b5a8a09ad8257b870df481152c9088168117909155601880548816891790558354909616909617909155929091529283527f5f158545fcf5f140507e6832f8284366388940b28d620943d0c4d58419c4cc95805490921617905560125460135460115460105462000542946200052e9392849291620005a8811b62001c1317901c565b620005a860201b62001c131790919060201c565b60148190556200055490605062000752565b601555600454336000818152600a6020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000768565b6000620005b6828462000752565b90505b92915050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000616578160001904821115620005fa57620005fa620005bf565b808516156200060857918102915b93841c9390800290620005da565b509250929050565b6000826200062f57506001620005b9565b816200063e57506000620005b9565b8160018114620006575760028114620006625762000682565b6001915050620005b9565b60ff841115620006765762000676620005bf565b50506001821b620005b9565b5060208310610133831016604e8410600b8410161715620006a7575081810a620005b9565b620006b38383620005d5565b8060001904821115620006ca57620006ca620005bf565b029392505050565b6000620005b660ff8416836200061e565b8082028115828204841417620005b957620005b9620005bf565b6000826200071b57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200073357600080fd5b81516001600160a01b03811681146200074b57600080fd5b9392505050565b80820180821115620005b957620005b9620005bf565b612d6f80620007786000396000f3fe60806040526004361061042a5760003560e01c80637cc5d7eb11610229578063bb54c40e1161012e578063ea43915e116100b6578063f84ba65d1161007a578063f84ba65d14610cde578063f887ea4014610cfe578063fb32b5c214610d1e578063fe575a8714610d3e578063ffb54a9914610d6e57600080fd5b8063ea43915e14610c4f578063f0ef821f14610c64578063f1d5f51714610c7e578063f2fde38b14610c9e578063f80f5dd514610cbe57600080fd5b8063d56d229d116100fd578063d56d229d14610b76578063d8e5a73414610b96578063da00097d14610bb6578063dd62ed3e14610bd9578063e5e31b1314610c1f57600080fd5b8063bb54c40e14610b15578063bf56b37114610b35578063c9567bf914610b4b578063ca987b0e14610b6057600080fd5b806393c17322116101b15780639e121117116101805780639e12111714610a7f578063a535598914610a9f578063a8aa1b3114610abf578063a9059cbb14610adf578063af3c43ef14610aff57600080fd5b806393c17322146109fa57806394213c8914610a1a57806395d89b4114610a3a57806398118cb414610a6957600080fd5b8063893d20e8116101f8578063893d20e81461093b578063896648c11461096d5780638b42507f1461098c5780638da5cb5b146109bc578063900d9611146109da57600080fd5b80637cc5d7eb146108cf5780637d1db4a5146108ef578063807c2d9c146109055780638637b0691461091b57600080fd5b806344de2e4c1161032f5780636827e764116102b7578063705409331161028657806370540933146108255780637070c8981461084457806370a0823114610864578063715018a61461089a578063787a051b146108af57600080fd5b80636827e764146107b75780636b67c4df146107cd5780636d364392146107e35780636f4ce428146107f857600080fd5b80635c85974f116102fe5780635c85974f146107135780635f1893611461073357806363692440146107485780636476505d14610777578063658d4b7f1461079757600080fd5b806344de2e4c146106a157806345599136146106bb5780634a74bb02146106d1578063571ac8b0146106f357600080fd5b806323b872dd116103b25780632f6f92b3116103815780632f6f92b3146105e857806330e30efd14610615578063313ce56714610635578063399c7976146106515780633f4218e01461067157600080fd5b806323b872dd14610573578063251b8787146105935780632aea52ab146105b35780632b112e49146105d357600080fd5b80630975d294116103f95780630975d294146104f05780630d2959801461051257806318160ddd146105325780631df4ccfc1461054757806321554bac1461055d57600080fd5b80630445b6671461043657806306fdde031461045f5780630713b139146104a0578063095ea7b3146104d057600080fd5b3661043157005b600080fd5b34801561044257600080fd5b5061044c60215481565b6040519081526020015b60405180910390f35b34801561046b57600080fd5b5060408051808201909152600f81526e44656a697461727520c58c67616d6160881b60208201525b604051610456919061284b565b3480156104ac57600080fd5b506104c06104bb3660046128b1565b610d88565b6040519015158152602001610456565b3480156104dc57600080fd5b506104c06104eb3660046128ce565b610de1565b3480156104fc57600080fd5b5061051061050b366004612908565b610e4e565b005b34801561051e57600080fd5b5061051061052d366004612926565b610ea5565b34801561053e57600080fd5b5060045461044c565b34801561055357600080fd5b5061044c60145481565b34801561056957600080fd5b5061044c60075481565b34801561057f57600080fd5b506104c061058e366004612943565b610f3a565b34801561059f57600080fd5b506105106105ae366004612984565b610ffc565b3480156105bf57600080fd5b506105106105ce366004612926565b6110cd565b3480156105df57600080fd5b5061044c611143565b3480156105f457600080fd5b5061044c6106033660046128b1565b600d6020526000908152604090205481565b34801561062157600080fd5b50610510610630366004612a0a565b6111b4565b34801561064157600080fd5b5060405160128152602001610456565b34801561065d57600080fd5b5061051061066c366004612a23565b6111e3565b34801561067d57600080fd5b506104c061068c3660046128b1565b600e6020526000908152604090205460ff1681565b3480156106ad57600080fd5b506009546104c09060ff1681565b3480156106c757600080fd5b5061044c60135481565b3480156106dd57600080fd5b50601e546104c090640100000000900460ff1681565b3480156106ff57600080fd5b506104c061070e3660046128b1565b611238565b34801561071f57600080fd5b5061051061072e366004612a0a565b611246565b34801561073f57600080fd5b506105106112b2565b34801561075457600080fd5b506104c06107633660046128b1565b602080526000908152604090205460ff1681565b34801561078357600080fd5b506105106107923660046128b1565b6112ea565b3480156107a357600080fd5b506105106107b2366004612a23565b611336565b3480156107c357600080fd5b5061044c60125481565b3480156107d957600080fd5b5061044c60115481565b3480156107ef57600080fd5b5061051061138b565b34801561080457600080fd5b5061044c6108133660046128b1565b600c6020526000908152604090205481565b34801561083157600080fd5b506016546104c090610100900460ff1681565b34801561085057600080fd5b5061051061085f366004612926565b6114b6565b34801561087057600080fd5b5061044c61087f3660046128b1565b6001600160a01b03166000908152600a602052604090205490565b3480156108a657600080fd5b506105106114fc565b3480156108bb57600080fd5b506105106108ca366004612a0a565b611570565b3480156108db57600080fd5b506105106108ea366004612a23565b6115e2565b3480156108fb57600080fd5b5061044c60055481565b34801561091157600080fd5b5061044c60065481565b34801561092757600080fd5b506104c06109363660046128ce565b611637565b34801561094757600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610456565b34801561097957600080fd5b50601e546104c090610100900460ff1681565b34801561099857600080fd5b506104c06109a73660046128b1565b600f6020526000908152604090205460ff1681565b3480156109c857600080fd5b506000546001600160a01b0316610955565b3480156109e657600080fd5b506105106109f5366004612926565b61172b565b348015610a0657600080fd5b50610510610a15366004612a5c565b61176f565b348015610a2657600080fd5b50610510610a35366004612a23565b6117f5565b348015610a4657600080fd5b50604080518082019091526006815265c58c47414d4160d01b6020820152610493565b348015610a7557600080fd5b5061044c60105481565b348015610a8b57600080fd5b50610510610a9a366004612ab8565b611849565b348015610aab57600080fd5b506016546104c09062010000900460ff1681565b348015610acb57600080fd5b50601b54610955906001600160a01b031681565b348015610aeb57600080fd5b506104c0610afa3660046128ce565b6118d3565b348015610b0b57600080fd5b5061044c60085481565b348015610b2157600080fd5b50610510610b30366004612926565b6118e0565b348015610b4157600080fd5b5061044c601d5481565b348015610b5757600080fd5b5061051061191d565b348015610b6c57600080fd5b5061044c60155481565b348015610b8257600080fd5b50600254610955906001600160a01b031681565b348015610ba257600080fd5b50610510610bb1366004612a0a565b611956565b348015610bc257600080fd5b50601e546104c09065010000000000900460ff1681565b348015610be557600080fd5b5061044c610bf4366004612af3565b6001600160a01b039182166000908152600b6020908152604080832093909416825291909152205490565b348015610c2b57600080fd5b506104c0610c3a3660046128b1565b601c6020526000908152604090205460ff1681565b348015610c5b57600080fd5b506105106119a1565b348015610c7057600080fd5b506016546104c09060ff1681565b348015610c8a57600080fd5b50610510610c99366004612a0a565b6119d8565b348015610caa57600080fd5b50610510610cb93660046128b1565b611a44565b348015610cca57600080fd5b50610510610cd93660046128b1565b611b2e565b348015610cea57600080fd5b50610510610cf9366004612a23565b611bbe565b348015610d0a57600080fd5b50601a54610955906001600160a01b031681565b348015610d2a57600080fd5b50601e546104c09062010000900460ff1681565b348015610d4a57600080fd5b506104c0610d593660046128b1565b601f6020526000908152604090205460ff1681565b348015610d7a57600080fd5b50601e546104c09060ff1681565b6001600160a01b0381166000908152600c602052604081205460011115610db157506000919050565b600754610dbe9042612b37565b6001600160a01b039092166000908152600c602052604090205491909110919050565b336000818152600b602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610e3c9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610e815760405162461bcd60e51b8152600401610e7890612b4a565b60405180910390fd5b601e80549215156401000000000264ff000000001990931692909217909155602155565b6000546001600160a01b03163314610ecf5760405162461bcd60e51b8152600401610e7890612b4a565b601e5462010000900460ff16610f275760405162461bcd60e51b815260206004820152601b60248201527f43616e206e6f206c6f6e6765722070617573652074726164696e6700000000006044820152606401610e78565b601e805460ff1916911515919091179055565b6001600160a01b0383166000908152600b6020908152604080832033845290915281205460001914610fe7576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600b82528381203382529091529190912054610fc2918490611c1f565b6001600160a01b0385166000908152600b602090815260408083203384529091529020555b610ff2848484611c4b565b90505b9392505050565b6000546001600160a01b031633146110265760405162461bcd60e51b8152600401610e7890612b4a565b601e5462010000900460ff166110585760405162461bcd60e51b81526020600482015260006024820152604401610e78565b60005b828110156110c75781601f600086868581811061107a5761107a612b7f565b905060200201602081019061108f91906128b1565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556110c081612b95565b905061105b565b50505050565b6000546001600160a01b031633146110f75760405162461bcd60e51b8152600401610e7890612b4a565b601e5462010000900460ff166111295760405162461bcd60e51b81526020600482015260006024820152604401610e78565b601e80549115156101000261ff0019909216919091179055565b600a6020527f13da86008ba1c6922daee3e07db95305ef49ebced9f5467a0b8613fcc6b343e35461dead60009081527f20677881080440a9b3c87e826370bb5d9c2f74efd4dede686d52d77a6a09f8bb5460045491926111af9290916111a9919061205e565b9061205e565b905090565b6000546001600160a01b031633146111de5760405162461bcd60e51b8152600401610e7890612b4a565b600755565b6000546001600160a01b0316331461120d5760405162461bcd60e51b8152600401610e7890612b4a565b6001600160a01b03919091166000908152601c60205260409020805460ff1916911515919091179055565b6000610e4882600019610de1565b6000546001600160a01b031633146112705760405162461bcd60e51b8152600401610e7890612b4a565b60058110156112915760405162461bcd60e51b8152600401610e7890612bae565b6103e8816004546112a29190612bf4565b6112ac9190612c0b565b60055550565b6000546001600160a01b031633146112dc5760405162461bcd60e51b8152600401610e7890612b4a565b601e805462ff000019169055565b6000546001600160a01b031633146113145760405162461bcd60e51b8152600401610e7890612b4a565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146113605760405162461bcd60e51b8152600401610e7890612b4a565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b61139433610d88565b6113d05760405162461bcd60e51b815260206004820152600d60248201526c18d85b9d081b5a5b9d081e595d609a1b6044820152606401610e78565b600854336000908152600a602052604090205410156114255760405162461bcd60e51b81526020600482015260116024820152706e6f7420656e6f75676820746f6b656e7360781b6044820152606401610e78565b336000908152600d60205260408120805460019290611445908490612c2d565b9091555050336000818152600c602052604090819020429055600254905163fa07ce1d60e01b815260048101929092526001600160a01b03169063fa07ce1d90602401600060405180830381600087803b1580156114a257600080fd5b505af11580156110c7573d6000803e3d6000fd5b6000546001600160a01b031633146114e05760405162461bcd60e51b8152600401610e7890612b4a565b60168054911515620100000262ff000019909216919091179055565b6000546001600160a01b031633146115265760405162461bcd60e51b8152600401610e7890612b4a565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461159a5760405162461bcd60e51b8152600401610e7890612b4a565b47336108fc60646115ab8585612bf4565b6115b59190612c0b565b6040518115909202916000818181858888f193505050501580156115dd573d6000803e3d6000fd5b505050565b6000546001600160a01b0316331461160c5760405162461bcd60e51b8152600401610e7890612b4a565b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b600080546001600160a01b031633146116625760405162461bcd60e51b8152600401610e7890612b4a565b306001600160a01b038416036116ba5760405162461bcd60e51b815260206004820152601c60248201527f43616e742072656d6f766520746865206e617469766520746f6b656e000000006044820152606401610e78565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015611707573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff59190612c40565b6000546001600160a01b031633146117555760405162461bcd60e51b8152600401610e7890612b4a565b601680549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146117995760405162461bcd60e51b8152600401610e7890612b4a565b601680546301000000600160b81b03191663010000006001600160a01b0394851602179055601780546001600160a01b031990811695841695909517905560188054851693831693909317909255601980549093169116179055565b6000546001600160a01b0316331461181f5760405162461bcd60e51b8152600401610e7890612b4a565b6001600160a01b039190911660009081526020805260409020805460ff1916911515919091179055565b6000546001600160a01b031633146118735760405162461bcd60e51b8152600401610e7890612b4a565b601085905560118490556012839055601382905561189d8261189785818989611c13565b90611c13565b60148190556118ad908290612c2d565b60158190556014546019916118c29190612c2d565b106118cc57600080fd5b5050505050565b6000610ff5338484611c4b565b6000546001600160a01b0316331461190a5760405162461bcd60e51b8152600401610e7890612b4a565b6016805460ff1916911515919091179055565b6000546001600160a01b031633146119475760405162461bcd60e51b8152600401610e7890612b4a565b601e805460ff19166001179055565b6000546001600160a01b031633146119805760405162461bcd60e51b8152600401610e7890612b4a565b6103e8816004546119919190612bf4565b61199b9190612c0b565b60085550565b6000546001600160a01b031633146119cb5760405162461bcd60e51b8152600401610e7890612b4a565b601e805461ff0019169055565b6000546001600160a01b03163314611a025760405162461bcd60e51b8152600401610e7890612b4a565b6005811015611a235760405162461bcd60e51b8152600401610e7890612bae565b6103e881600454611a349190612bf4565b611a3e9190612c0b565b60065550565b6000546001600160a01b03163314611a6e5760405162461bcd60e51b8152600401610e7890612b4a565b6001600160a01b038116611ad35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610e78565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611b585760405162461bcd60e51b8152600401610e7890612b4a565b6001600160a01b03166000908152600160208181526040808420805460ff199081168517909155600e83528185208054821685179055600f8352818520805482168517905582805281852080548216909417909355601f90915290912080549091169055565b6000546001600160a01b03163314611be85760405162461bcd60e51b8152600401610e7890612b4a565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b6000610ff58284612c2d565b60008184841115611c435760405162461bcd60e51b8152600401610e78919061284b565b505050900390565b601e546000906301000000900460ff1615611c7257611c6b84848461206a565b9050610ff5565b6001600160a01b03841660009081526001602052604090205460ff16158015611cb457506001600160a01b03831660009081526001602052604090205460ff16155b15611ce557601e5460ff16611ce55760405162461bcd60e51b81526020600482015260006024820152604401610e78565b60055482111580611d3157506001600160a01b0384166000908152600f602052604090205460ff168015611d3157506001600160a01b0383166000908152600f602052604090205460ff165b611d685760405162461bcd60e51b8152602060048201526008602482015267151608131a5b5a5d60c21b6044820152606401610e78565b6001600160a01b0383166000908152601c602052604090205460ff168015611d9a5750601e546301000000900460ff16155b8015611db05750601e54640100000000900460ff165b8015611dcd5750602154306000908152600a602052604090205410155b15611dda57611dda61213e565b601d54158015611e0257506001600160a01b0383166000908152601c602052604090205460ff165b15611e4f576001600160a01b0384166000908152600a6020526040902054611e465760405162461bcd60e51b81526020600482015260006024820152604401610e78565b611e4f43601d55565b601e54610100900460ff1615611eb6576001600160a01b0384166000908152601f602052604090205460ff1615611eb65760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610e78565b604080516020808201835260008083526001600160a01b0388168152600a9091529190912054611ee7918490611c1f565b6001600160a01b038086166000908152600a60209081526040808320949094559186168152600f909152205460ff16158015611f25575060095460ff165b15611f78576006546001600160a01b0384166000908152600a6020526040902054611f509084611c13565b1115611f785760405162461bcd60e51b81526020600482015260006024820152604401610e78565b6001600160a01b0384166000908152600e602052604081205460ff16158015611fba57506001600160a01b0384166000908152600e602052604090205460ff16155b611fc45782611fcf565b611fcf85858561251e565b6001600160a01b0385166000908152600a6020526040902054909150611ff59082611c13565b6001600160a01b0385166000908152600a60205260409020556120188585612751565b836001600160a01b0316856001600160a01b0316600080516020612d1a8339815191528360405161204b91815260200190565b60405180910390a3506001949350505050565b6000610ff58284612b37565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600a909152918220546120bb918490611c1f565b6001600160a01b038086166000908152600a602052604080822093909355908516815220546120ea9083611c13565b6001600160a01b038085166000818152600a60205260409081902093909355915190861690600080516020612d1a8339815191529061212c9086815260200190565b60405180910390a35060019392505050565b601e805463ff00000019166301000000179055306000908152600a60205260408120546013546014549192916121939160029161218d9161217f919061205e565b60105461218d908790612833565b9061283f565b905060006121a1838361205e565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106121db576121db612b7f565b6001600160a01b03928316602091820292909201810191909152601a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612234573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122589190612c5d565b8160018151811061226b5761226b612b7f565b6001600160a01b039283166020918202929092010152601a5460405163791ac94760e01b815291169063791ac947906122b1908590600090869030904290600401612c7a565b600060405180830381600087803b1580156122cb57600080fd5b505af11580156122df573d6000803e3d6000fd5b505060105447925060009150612309906122fa90600261283f565b6013546014546111a99161205e565b9050600061232b600261218d8461218d6010548861283390919063ffffffff16565b905060006123488361218d6011548761283390919063ffffffff16565b905060006123658461218d6012548861283390919063ffffffff16565b6017546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d80600081146123bc576040519150601f19603f3d011682016040523d82523d6000602084013e6123c1565b606091505b5050601854604051600093506001600160a01b03909116915061753090849084818181858888f193505050503d8060008114612419576040519150601f19603f3d011682016040523d82523d6000602084013e61241e565b606091505b5060009250508915905061250557601a5460165460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b036301000000909204821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af11580156124a3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906124c89190612ceb565b505060408051868152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601e805463ff000000191690555050505050505050565b6001600160a01b0382166000908152601c60205260408120548190819060ff1680156125515750601654610100900460ff165b15612568576013546015546125659161205e565b91505b6001600160a01b0386166000908152601c602052604090205460ff168015612592575060165460ff165b156125a9576013546014546125a69161205e565b91505b6001600160a01b0386166000908152601c602052604090205460ff161580156125eb57506001600160a01b0385166000908152601c602052604090205460ff16155b1561261c5760165462010000900460ff1615612617576013546015546126109161205e565b915061261c565b600091505b60008211801561262e57506000601354115b156126c35761264d606461218d6013548761283390919063ffffffff16565b6019546001600160a01b03166000908152600a60205260409020549091506126759082611c13565b601980546001600160a01b039081166000908152600a602090815260409182902094909455915491518481529181169290891691600080516020612d1a833981519152910160405180910390a35b60006126d4606461218d8786612833565b306000908152600a60205260409020549091506126f19082611c13565b306000818152600a6020526040908190209290925590516001600160a01b03891690600080516020612d1a833981519152906127309085815260200190565b60405180910390a3612746826111a9878461205e565b979650505050505050565b6001600160a01b0382166000908152601c602052604090205460ff166127cd576008546001600160a01b0383166000908152600a602052604090205410156127b1576001600160a01b0382166000908152600c60205260408120556127cd565b6001600160a01b0382166000908152600c602052604090204290555b6001600160a01b0381166000908152600c6020526040902054600111801561280e57506008546001600160a01b0382166000908152600a6020526040902054115b1561282f576001600160a01b0381166000908152600c602052604090204290555b5050565b6000610ff58284612bf4565b6000610ff58284612c0b565b600060208083528351808285015260005b818110156128785785810183015185820160400152820161285c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146128ae57600080fd5b50565b6000602082840312156128c357600080fd5b8135610ff581612899565b600080604083850312156128e157600080fd5b82356128ec81612899565b946020939093013593505050565b80151581146128ae57600080fd5b6000806040838503121561291b57600080fd5b82356128ec816128fa565b60006020828403121561293857600080fd5b8135610ff5816128fa565b60008060006060848603121561295857600080fd5b833561296381612899565b9250602084013561297381612899565b929592945050506040919091013590565b60008060006040848603121561299957600080fd5b833567ffffffffffffffff808211156129b157600080fd5b818601915086601f8301126129c557600080fd5b8135818111156129d457600080fd5b8760208260051b85010111156129e957600080fd5b602092830195509350508401356129ff816128fa565b809150509250925092565b600060208284031215612a1c57600080fd5b5035919050565b60008060408385031215612a3657600080fd5b8235612a4181612899565b91506020830135612a51816128fa565b809150509250929050565b60008060008060808587031215612a7257600080fd5b8435612a7d81612899565b93506020850135612a8d81612899565b92506040850135612a9d81612899565b91506060850135612aad81612899565b939692955090935050565b600080600080600060a08688031215612ad057600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60008060408385031215612b0657600080fd5b8235612b1181612899565b91506020830135612a5181612899565b634e487b7160e01b600052601160045260246000fd5b81810381811115610e4857610e48612b21565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060018201612ba757612ba7612b21565b5060010190565b60208082526026908201527f57616c6c6574204c696d6974206e6565647320746f206265206174206c6561736040820152657420302e352560d01b606082015260800190565b8082028115828204841417610e4857610e48612b21565b600082612c2857634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610e4857610e48612b21565b600060208284031215612c5257600080fd5b8151610ff5816128fa565b600060208284031215612c6f57600080fd5b8151610ff581612899565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612cca5784516001600160a01b031683529383019391830191600101612ca5565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612d0057600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122007b2eda0c565cb15bb7895900c5dcca54dc306b404d2a828231bf9387d18ee5464736f6c63430008110033

Deployed Bytecode

0x60806040526004361061042a5760003560e01c80637cc5d7eb11610229578063bb54c40e1161012e578063ea43915e116100b6578063f84ba65d1161007a578063f84ba65d14610cde578063f887ea4014610cfe578063fb32b5c214610d1e578063fe575a8714610d3e578063ffb54a9914610d6e57600080fd5b8063ea43915e14610c4f578063f0ef821f14610c64578063f1d5f51714610c7e578063f2fde38b14610c9e578063f80f5dd514610cbe57600080fd5b8063d56d229d116100fd578063d56d229d14610b76578063d8e5a73414610b96578063da00097d14610bb6578063dd62ed3e14610bd9578063e5e31b1314610c1f57600080fd5b8063bb54c40e14610b15578063bf56b37114610b35578063c9567bf914610b4b578063ca987b0e14610b6057600080fd5b806393c17322116101b15780639e121117116101805780639e12111714610a7f578063a535598914610a9f578063a8aa1b3114610abf578063a9059cbb14610adf578063af3c43ef14610aff57600080fd5b806393c17322146109fa57806394213c8914610a1a57806395d89b4114610a3a57806398118cb414610a6957600080fd5b8063893d20e8116101f8578063893d20e81461093b578063896648c11461096d5780638b42507f1461098c5780638da5cb5b146109bc578063900d9611146109da57600080fd5b80637cc5d7eb146108cf5780637d1db4a5146108ef578063807c2d9c146109055780638637b0691461091b57600080fd5b806344de2e4c1161032f5780636827e764116102b7578063705409331161028657806370540933146108255780637070c8981461084457806370a0823114610864578063715018a61461089a578063787a051b146108af57600080fd5b80636827e764146107b75780636b67c4df146107cd5780636d364392146107e35780636f4ce428146107f857600080fd5b80635c85974f116102fe5780635c85974f146107135780635f1893611461073357806363692440146107485780636476505d14610777578063658d4b7f1461079757600080fd5b806344de2e4c146106a157806345599136146106bb5780634a74bb02146106d1578063571ac8b0146106f357600080fd5b806323b872dd116103b25780632f6f92b3116103815780632f6f92b3146105e857806330e30efd14610615578063313ce56714610635578063399c7976146106515780633f4218e01461067157600080fd5b806323b872dd14610573578063251b8787146105935780632aea52ab146105b35780632b112e49146105d357600080fd5b80630975d294116103f95780630975d294146104f05780630d2959801461051257806318160ddd146105325780631df4ccfc1461054757806321554bac1461055d57600080fd5b80630445b6671461043657806306fdde031461045f5780630713b139146104a0578063095ea7b3146104d057600080fd5b3661043157005b600080fd5b34801561044257600080fd5b5061044c60215481565b6040519081526020015b60405180910390f35b34801561046b57600080fd5b5060408051808201909152600f81526e44656a697461727520c58c67616d6160881b60208201525b604051610456919061284b565b3480156104ac57600080fd5b506104c06104bb3660046128b1565b610d88565b6040519015158152602001610456565b3480156104dc57600080fd5b506104c06104eb3660046128ce565b610de1565b3480156104fc57600080fd5b5061051061050b366004612908565b610e4e565b005b34801561051e57600080fd5b5061051061052d366004612926565b610ea5565b34801561053e57600080fd5b5060045461044c565b34801561055357600080fd5b5061044c60145481565b34801561056957600080fd5b5061044c60075481565b34801561057f57600080fd5b506104c061058e366004612943565b610f3a565b34801561059f57600080fd5b506105106105ae366004612984565b610ffc565b3480156105bf57600080fd5b506105106105ce366004612926565b6110cd565b3480156105df57600080fd5b5061044c611143565b3480156105f457600080fd5b5061044c6106033660046128b1565b600d6020526000908152604090205481565b34801561062157600080fd5b50610510610630366004612a0a565b6111b4565b34801561064157600080fd5b5060405160128152602001610456565b34801561065d57600080fd5b5061051061066c366004612a23565b6111e3565b34801561067d57600080fd5b506104c061068c3660046128b1565b600e6020526000908152604090205460ff1681565b3480156106ad57600080fd5b506009546104c09060ff1681565b3480156106c757600080fd5b5061044c60135481565b3480156106dd57600080fd5b50601e546104c090640100000000900460ff1681565b3480156106ff57600080fd5b506104c061070e3660046128b1565b611238565b34801561071f57600080fd5b5061051061072e366004612a0a565b611246565b34801561073f57600080fd5b506105106112b2565b34801561075457600080fd5b506104c06107633660046128b1565b602080526000908152604090205460ff1681565b34801561078357600080fd5b506105106107923660046128b1565b6112ea565b3480156107a357600080fd5b506105106107b2366004612a23565b611336565b3480156107c357600080fd5b5061044c60125481565b3480156107d957600080fd5b5061044c60115481565b3480156107ef57600080fd5b5061051061138b565b34801561080457600080fd5b5061044c6108133660046128b1565b600c6020526000908152604090205481565b34801561083157600080fd5b506016546104c090610100900460ff1681565b34801561085057600080fd5b5061051061085f366004612926565b6114b6565b34801561087057600080fd5b5061044c61087f3660046128b1565b6001600160a01b03166000908152600a602052604090205490565b3480156108a657600080fd5b506105106114fc565b3480156108bb57600080fd5b506105106108ca366004612a0a565b611570565b3480156108db57600080fd5b506105106108ea366004612a23565b6115e2565b3480156108fb57600080fd5b5061044c60055481565b34801561091157600080fd5b5061044c60065481565b34801561092757600080fd5b506104c06109363660046128ce565b611637565b34801561094757600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610456565b34801561097957600080fd5b50601e546104c090610100900460ff1681565b34801561099857600080fd5b506104c06109a73660046128b1565b600f6020526000908152604090205460ff1681565b3480156109c857600080fd5b506000546001600160a01b0316610955565b3480156109e657600080fd5b506105106109f5366004612926565b61172b565b348015610a0657600080fd5b50610510610a15366004612a5c565b61176f565b348015610a2657600080fd5b50610510610a35366004612a23565b6117f5565b348015610a4657600080fd5b50604080518082019091526006815265c58c47414d4160d01b6020820152610493565b348015610a7557600080fd5b5061044c60105481565b348015610a8b57600080fd5b50610510610a9a366004612ab8565b611849565b348015610aab57600080fd5b506016546104c09062010000900460ff1681565b348015610acb57600080fd5b50601b54610955906001600160a01b031681565b348015610aeb57600080fd5b506104c0610afa3660046128ce565b6118d3565b348015610b0b57600080fd5b5061044c60085481565b348015610b2157600080fd5b50610510610b30366004612926565b6118e0565b348015610b4157600080fd5b5061044c601d5481565b348015610b5757600080fd5b5061051061191d565b348015610b6c57600080fd5b5061044c60155481565b348015610b8257600080fd5b50600254610955906001600160a01b031681565b348015610ba257600080fd5b50610510610bb1366004612a0a565b611956565b348015610bc257600080fd5b50601e546104c09065010000000000900460ff1681565b348015610be557600080fd5b5061044c610bf4366004612af3565b6001600160a01b039182166000908152600b6020908152604080832093909416825291909152205490565b348015610c2b57600080fd5b506104c0610c3a3660046128b1565b601c6020526000908152604090205460ff1681565b348015610c5b57600080fd5b506105106119a1565b348015610c7057600080fd5b506016546104c09060ff1681565b348015610c8a57600080fd5b50610510610c99366004612a0a565b6119d8565b348015610caa57600080fd5b50610510610cb93660046128b1565b611a44565b348015610cca57600080fd5b50610510610cd93660046128b1565b611b2e565b348015610cea57600080fd5b50610510610cf9366004612a23565b611bbe565b348015610d0a57600080fd5b50601a54610955906001600160a01b031681565b348015610d2a57600080fd5b50601e546104c09062010000900460ff1681565b348015610d4a57600080fd5b506104c0610d593660046128b1565b601f6020526000908152604090205460ff1681565b348015610d7a57600080fd5b50601e546104c09060ff1681565b6001600160a01b0381166000908152600c602052604081205460011115610db157506000919050565b600754610dbe9042612b37565b6001600160a01b039092166000908152600c602052604090205491909110919050565b336000818152600b602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610e3c9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610e815760405162461bcd60e51b8152600401610e7890612b4a565b60405180910390fd5b601e80549215156401000000000264ff000000001990931692909217909155602155565b6000546001600160a01b03163314610ecf5760405162461bcd60e51b8152600401610e7890612b4a565b601e5462010000900460ff16610f275760405162461bcd60e51b815260206004820152601b60248201527f43616e206e6f206c6f6e6765722070617573652074726164696e6700000000006044820152606401610e78565b601e805460ff1916911515919091179055565b6001600160a01b0383166000908152600b6020908152604080832033845290915281205460001914610fe7576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600b82528381203382529091529190912054610fc2918490611c1f565b6001600160a01b0385166000908152600b602090815260408083203384529091529020555b610ff2848484611c4b565b90505b9392505050565b6000546001600160a01b031633146110265760405162461bcd60e51b8152600401610e7890612b4a565b601e5462010000900460ff166110585760405162461bcd60e51b81526020600482015260006024820152604401610e78565b60005b828110156110c75781601f600086868581811061107a5761107a612b7f565b905060200201602081019061108f91906128b1565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556110c081612b95565b905061105b565b50505050565b6000546001600160a01b031633146110f75760405162461bcd60e51b8152600401610e7890612b4a565b601e5462010000900460ff166111295760405162461bcd60e51b81526020600482015260006024820152604401610e78565b601e80549115156101000261ff0019909216919091179055565b600a6020527f13da86008ba1c6922daee3e07db95305ef49ebced9f5467a0b8613fcc6b343e35461dead60009081527f20677881080440a9b3c87e826370bb5d9c2f74efd4dede686d52d77a6a09f8bb5460045491926111af9290916111a9919061205e565b9061205e565b905090565b6000546001600160a01b031633146111de5760405162461bcd60e51b8152600401610e7890612b4a565b600755565b6000546001600160a01b0316331461120d5760405162461bcd60e51b8152600401610e7890612b4a565b6001600160a01b03919091166000908152601c60205260409020805460ff1916911515919091179055565b6000610e4882600019610de1565b6000546001600160a01b031633146112705760405162461bcd60e51b8152600401610e7890612b4a565b60058110156112915760405162461bcd60e51b8152600401610e7890612bae565b6103e8816004546112a29190612bf4565b6112ac9190612c0b565b60055550565b6000546001600160a01b031633146112dc5760405162461bcd60e51b8152600401610e7890612b4a565b601e805462ff000019169055565b6000546001600160a01b031633146113145760405162461bcd60e51b8152600401610e7890612b4a565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146113605760405162461bcd60e51b8152600401610e7890612b4a565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b61139433610d88565b6113d05760405162461bcd60e51b815260206004820152600d60248201526c18d85b9d081b5a5b9d081e595d609a1b6044820152606401610e78565b600854336000908152600a602052604090205410156114255760405162461bcd60e51b81526020600482015260116024820152706e6f7420656e6f75676820746f6b656e7360781b6044820152606401610e78565b336000908152600d60205260408120805460019290611445908490612c2d565b9091555050336000818152600c602052604090819020429055600254905163fa07ce1d60e01b815260048101929092526001600160a01b03169063fa07ce1d90602401600060405180830381600087803b1580156114a257600080fd5b505af11580156110c7573d6000803e3d6000fd5b6000546001600160a01b031633146114e05760405162461bcd60e51b8152600401610e7890612b4a565b60168054911515620100000262ff000019909216919091179055565b6000546001600160a01b031633146115265760405162461bcd60e51b8152600401610e7890612b4a565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461159a5760405162461bcd60e51b8152600401610e7890612b4a565b47336108fc60646115ab8585612bf4565b6115b59190612c0b565b6040518115909202916000818181858888f193505050501580156115dd573d6000803e3d6000fd5b505050565b6000546001600160a01b0316331461160c5760405162461bcd60e51b8152600401610e7890612b4a565b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b600080546001600160a01b031633146116625760405162461bcd60e51b8152600401610e7890612b4a565b306001600160a01b038416036116ba5760405162461bcd60e51b815260206004820152601c60248201527f43616e742072656d6f766520746865206e617469766520746f6b656e000000006044820152606401610e78565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015611707573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff59190612c40565b6000546001600160a01b031633146117555760405162461bcd60e51b8152600401610e7890612b4a565b601680549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146117995760405162461bcd60e51b8152600401610e7890612b4a565b601680546301000000600160b81b03191663010000006001600160a01b0394851602179055601780546001600160a01b031990811695841695909517905560188054851693831693909317909255601980549093169116179055565b6000546001600160a01b0316331461181f5760405162461bcd60e51b8152600401610e7890612b4a565b6001600160a01b039190911660009081526020805260409020805460ff1916911515919091179055565b6000546001600160a01b031633146118735760405162461bcd60e51b8152600401610e7890612b4a565b601085905560118490556012839055601382905561189d8261189785818989611c13565b90611c13565b60148190556118ad908290612c2d565b60158190556014546019916118c29190612c2d565b106118cc57600080fd5b5050505050565b6000610ff5338484611c4b565b6000546001600160a01b0316331461190a5760405162461bcd60e51b8152600401610e7890612b4a565b6016805460ff1916911515919091179055565b6000546001600160a01b031633146119475760405162461bcd60e51b8152600401610e7890612b4a565b601e805460ff19166001179055565b6000546001600160a01b031633146119805760405162461bcd60e51b8152600401610e7890612b4a565b6103e8816004546119919190612bf4565b61199b9190612c0b565b60085550565b6000546001600160a01b031633146119cb5760405162461bcd60e51b8152600401610e7890612b4a565b601e805461ff0019169055565b6000546001600160a01b03163314611a025760405162461bcd60e51b8152600401610e7890612b4a565b6005811015611a235760405162461bcd60e51b8152600401610e7890612bae565b6103e881600454611a349190612bf4565b611a3e9190612c0b565b60065550565b6000546001600160a01b03163314611a6e5760405162461bcd60e51b8152600401610e7890612b4a565b6001600160a01b038116611ad35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610e78565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611b585760405162461bcd60e51b8152600401610e7890612b4a565b6001600160a01b03166000908152600160208181526040808420805460ff199081168517909155600e83528185208054821685179055600f8352818520805482168517905582805281852080548216909417909355601f90915290912080549091169055565b6000546001600160a01b03163314611be85760405162461bcd60e51b8152600401610e7890612b4a565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b6000610ff58284612c2d565b60008184841115611c435760405162461bcd60e51b8152600401610e78919061284b565b505050900390565b601e546000906301000000900460ff1615611c7257611c6b84848461206a565b9050610ff5565b6001600160a01b03841660009081526001602052604090205460ff16158015611cb457506001600160a01b03831660009081526001602052604090205460ff16155b15611ce557601e5460ff16611ce55760405162461bcd60e51b81526020600482015260006024820152604401610e78565b60055482111580611d3157506001600160a01b0384166000908152600f602052604090205460ff168015611d3157506001600160a01b0383166000908152600f602052604090205460ff165b611d685760405162461bcd60e51b8152602060048201526008602482015267151608131a5b5a5d60c21b6044820152606401610e78565b6001600160a01b0383166000908152601c602052604090205460ff168015611d9a5750601e546301000000900460ff16155b8015611db05750601e54640100000000900460ff165b8015611dcd5750602154306000908152600a602052604090205410155b15611dda57611dda61213e565b601d54158015611e0257506001600160a01b0383166000908152601c602052604090205460ff165b15611e4f576001600160a01b0384166000908152600a6020526040902054611e465760405162461bcd60e51b81526020600482015260006024820152604401610e78565b611e4f43601d55565b601e54610100900460ff1615611eb6576001600160a01b0384166000908152601f602052604090205460ff1615611eb65760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610e78565b604080516020808201835260008083526001600160a01b0388168152600a9091529190912054611ee7918490611c1f565b6001600160a01b038086166000908152600a60209081526040808320949094559186168152600f909152205460ff16158015611f25575060095460ff165b15611f78576006546001600160a01b0384166000908152600a6020526040902054611f509084611c13565b1115611f785760405162461bcd60e51b81526020600482015260006024820152604401610e78565b6001600160a01b0384166000908152600e602052604081205460ff16158015611fba57506001600160a01b0384166000908152600e602052604090205460ff16155b611fc45782611fcf565b611fcf85858561251e565b6001600160a01b0385166000908152600a6020526040902054909150611ff59082611c13565b6001600160a01b0385166000908152600a60205260409020556120188585612751565b836001600160a01b0316856001600160a01b0316600080516020612d1a8339815191528360405161204b91815260200190565b60405180910390a3506001949350505050565b6000610ff58284612b37565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600a909152918220546120bb918490611c1f565b6001600160a01b038086166000908152600a602052604080822093909355908516815220546120ea9083611c13565b6001600160a01b038085166000818152600a60205260409081902093909355915190861690600080516020612d1a8339815191529061212c9086815260200190565b60405180910390a35060019392505050565b601e805463ff00000019166301000000179055306000908152600a60205260408120546013546014549192916121939160029161218d9161217f919061205e565b60105461218d908790612833565b9061283f565b905060006121a1838361205e565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106121db576121db612b7f565b6001600160a01b03928316602091820292909201810191909152601a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612234573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122589190612c5d565b8160018151811061226b5761226b612b7f565b6001600160a01b039283166020918202929092010152601a5460405163791ac94760e01b815291169063791ac947906122b1908590600090869030904290600401612c7a565b600060405180830381600087803b1580156122cb57600080fd5b505af11580156122df573d6000803e3d6000fd5b505060105447925060009150612309906122fa90600261283f565b6013546014546111a99161205e565b9050600061232b600261218d8461218d6010548861283390919063ffffffff16565b905060006123488361218d6011548761283390919063ffffffff16565b905060006123658461218d6012548861283390919063ffffffff16565b6017546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d80600081146123bc576040519150601f19603f3d011682016040523d82523d6000602084013e6123c1565b606091505b5050601854604051600093506001600160a01b03909116915061753090849084818181858888f193505050503d8060008114612419576040519150601f19603f3d011682016040523d82523d6000602084013e61241e565b606091505b5060009250508915905061250557601a5460165460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b036301000000909204821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af11580156124a3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906124c89190612ceb565b505060408051868152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601e805463ff000000191690555050505050505050565b6001600160a01b0382166000908152601c60205260408120548190819060ff1680156125515750601654610100900460ff165b15612568576013546015546125659161205e565b91505b6001600160a01b0386166000908152601c602052604090205460ff168015612592575060165460ff165b156125a9576013546014546125a69161205e565b91505b6001600160a01b0386166000908152601c602052604090205460ff161580156125eb57506001600160a01b0385166000908152601c602052604090205460ff16155b1561261c5760165462010000900460ff1615612617576013546015546126109161205e565b915061261c565b600091505b60008211801561262e57506000601354115b156126c35761264d606461218d6013548761283390919063ffffffff16565b6019546001600160a01b03166000908152600a60205260409020549091506126759082611c13565b601980546001600160a01b039081166000908152600a602090815260409182902094909455915491518481529181169290891691600080516020612d1a833981519152910160405180910390a35b60006126d4606461218d8786612833565b306000908152600a60205260409020549091506126f19082611c13565b306000818152600a6020526040908190209290925590516001600160a01b03891690600080516020612d1a833981519152906127309085815260200190565b60405180910390a3612746826111a9878461205e565b979650505050505050565b6001600160a01b0382166000908152601c602052604090205460ff166127cd576008546001600160a01b0383166000908152600a602052604090205410156127b1576001600160a01b0382166000908152600c60205260408120556127cd565b6001600160a01b0382166000908152600c602052604090204290555b6001600160a01b0381166000908152600c6020526040902054600111801561280e57506008546001600160a01b0382166000908152600a6020526040902054115b1561282f576001600160a01b0381166000908152600c602052604090204290555b5050565b6000610ff58284612bf4565b6000610ff58284612c0b565b600060208083528351808285015260005b818110156128785785810183015185820160400152820161285c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146128ae57600080fd5b50565b6000602082840312156128c357600080fd5b8135610ff581612899565b600080604083850312156128e157600080fd5b82356128ec81612899565b946020939093013593505050565b80151581146128ae57600080fd5b6000806040838503121561291b57600080fd5b82356128ec816128fa565b60006020828403121561293857600080fd5b8135610ff5816128fa565b60008060006060848603121561295857600080fd5b833561296381612899565b9250602084013561297381612899565b929592945050506040919091013590565b60008060006040848603121561299957600080fd5b833567ffffffffffffffff808211156129b157600080fd5b818601915086601f8301126129c557600080fd5b8135818111156129d457600080fd5b8760208260051b85010111156129e957600080fd5b602092830195509350508401356129ff816128fa565b809150509250925092565b600060208284031215612a1c57600080fd5b5035919050565b60008060408385031215612a3657600080fd5b8235612a4181612899565b91506020830135612a51816128fa565b809150509250929050565b60008060008060808587031215612a7257600080fd5b8435612a7d81612899565b93506020850135612a8d81612899565b92506040850135612a9d81612899565b91506060850135612aad81612899565b939692955090935050565b600080600080600060a08688031215612ad057600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60008060408385031215612b0657600080fd5b8235612b1181612899565b91506020830135612a5181612899565b634e487b7160e01b600052601160045260246000fd5b81810381811115610e4857610e48612b21565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060018201612ba757612ba7612b21565b5060010190565b60208082526026908201527f57616c6c6574204c696d6974206e6565647320746f206265206174206c6561736040820152657420302e352560d01b606082015260800190565b8082028115828204841417610e4857610e48612b21565b600082612c2857634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610e4857610e48612b21565b600060208284031215612c5257600080fd5b8151610ff5816128fa565b600060208284031215612c6f57600080fd5b8151610ff581612899565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612cca5784516001600160a01b031683529383019391830191600101612ca5565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612d0057600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122007b2eda0c565cb15bb7895900c5dcca54dc306b404d2a828231bf9387d18ee5464736f6c63430008110033

Deployed Bytecode Sourcemap

6832:16798:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9004:56;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;9004:56:0;;;;;;;;10631:94;;;;;;;;;;-1:-1:-1;10712:5:0;;;;;;;;;;;;-1:-1:-1;;;10712:5:0;;;;10631:94;;;;;;;:::i;12189:220::-;;;;;;;;;;-1:-1:-1;12189:220:0;;;;;:::i;:::-;;:::i;:::-;;;1302:14:1;;1295:22;1277:41;;1265:2;1250:18;12189:220:0;1137:187:1;11626:248:0;;;;;;;;;;-1:-1:-1;11626:248:0;;;;;:::i;:::-;;:::i;21892:189::-;;;;;;;;;;-1:-1:-1;21892:189:0;;;;;:::i;:::-;;:::i;:::-;;19369:164;;;;;;;;;;-1:-1:-1;19369:164:0;;;;;:::i;:::-;;:::i;10941:102::-;;;;;;;;;;-1:-1:-1;11023:12:0;;10941:102;;8176:27;;;;;;;;;;;;;;;;7426:39;;;;;;;;;;;;;;;;13233:422;;;;;;;;;;-1:-1:-1;13233:422:0;;;;;:::i;:::-;;:::i;20862:271::-;;;;;;;;;;-1:-1:-1;20862:271:0;;;;;:::i;:::-;;:::i;20717:137::-;;;;;;;;;;-1:-1:-1;20717:137:0;;;;;:::i;:::-;;:::i;11476:142::-;;;;;;;;;;;;;:::i;7873:44::-;;;;;;;;;;-1:-1:-1;7873:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;23054:110;;;;;;;;;;-1:-1:-1;23054:110:0;;;;;:::i;:::-;;:::i;10839:94::-;;;;;;;;;;-1:-1:-1;10839:94:0;;7225:2;3875:36:1;;3863:2;3848:18;10839:94:0;3733:184:1;21265:112:0;;;;;;;;;;-1:-1:-1;21265:112:0;;;;;:::i;:::-;;:::i;7926:43::-;;;;;;;;;;-1:-1:-1;7926:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7655:33;;;;;;;;;;-1:-1:-1;7655:33:0;;;;;;;;8140:27;;;;;;;;;;;;;;;;8799:40;;;;;;;;;;-1:-1:-1;8799:40:0;;;;;;;;;;;11882:122;;;;;;;;;;-1:-1:-1;11882:122:0;;;;;:::i;:::-;;:::i;19163:198::-;;;;;;;;;;-1:-1:-1;19163:198:0;;;;;:::i;:::-;;:::i;21385:88::-;;;;;;;;;;;;;:::i;8952:43::-;;;;;;;;;;-1:-1:-1;8952:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;22941:105;;;;;;;;;;-1:-1:-1;22941:105:0;;;;;:::i;:::-;;:::i;19626:119::-;;;;;;;;;;-1:-1:-1;19626:119:0;;;;;:::i;:::-;;:::i;8108:25::-;;;;;;;;;;;;;;;;8070:31;;;;;;;;;;;;;;;;23317:310;;;;;;;;;;;;;:::i;7823:43::-;;;;;;;;;;-1:-1:-1;7823:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;8291:30;;;;;;;;;;-1:-1:-1;8291:30:0;;;;;;;;;;;21780:104;;;;;;;;;;-1:-1:-1;21780:104:0;;;;;:::i;:::-;;:::i;11153:119::-;;;;;;;;;;-1:-1:-1;11153:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;11246:18:0;11219:7;11246:18;;;:9;:18;;;;;;;11153:119;6320:148;;;;;;;;;;;;;:::i;22730:203::-;;;;;;;;;;-1:-1:-1;22730:203:0;;;;;:::i;:::-;;:::i;21141:116::-;;;;;;;;;;-1:-1:-1;21141:116:0;;;;;:::i;:::-;;:::i;7300:56::-;;;;;;;;;;;;;;;;7363:54;;;;;;;;;;;;;;;;22435:287;;;;;;;;;;-1:-1:-1;22435:287:0;;;;;:::i;:::-;;:::i;11051:94::-;;;;;;;;;;-1:-1:-1;11103:7:0;6171:6;-1:-1:-1;;;;;6171:6:0;11051:94;;;-1:-1:-1;;;;;4473:32:1;;;4455:51;;4443:2;4428:18;11051:94:0;4309:203:1;8683:32:0;;;;;;;;;;-1:-1:-1;8683:32:0;;;;;;;;;;;7976:47;;;;;;;;;;-1:-1:-1;7976:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6106:79;;;;;;;;;;-1:-1:-1;6144:7:0;6171:6;-1:-1:-1;;;;;6171:6:0;6106:79;;21676:96;;;;;;;;;;-1:-1:-1;21676:96:0;;;;;:::i;:::-;;:::i;22089:338::-;;;;;;;;;;-1:-1:-1;22089:338:0;;;;;:::i;:::-;;:::i;18800:147::-;;;;;;;;;;-1:-1:-1;18800:147:0;;;;;:::i;:::-;;:::i;10733:98::-;;;;;;;;;;-1:-1:-1;10816:7:0;;;;;;;;;;;;-1:-1:-1;;;10816:7:0;;;;10733:98;;8032:31;;;;;;;;;;;;;;;;20177:532;;;;;;;;;;-1:-1:-1;20177:532:0;;;;;:::i;:::-;;:::i;8328:34::-;;;;;;;;;;-1:-1:-1;8328:34:0;;;;;;;;;;;8538:19;;;;;;;;;;-1:-1:-1;8538:19:0;;;;-1:-1:-1;;;;;8538:19:0;;;12628:188;;;;;;;;;;-1:-1:-1;12628:188:0;;;;;:::i;:::-;;:::i;7472:59::-;;;;;;;;;;;;;;;;21574:94;;;;;;;;;;-1:-1:-1;21574:94:0;;;;;:::i;:::-;;:::i;8611:25::-;;;;;;;;;;;;;;;;19541:77;;;;;;;;;;;;;:::i;8210:36::-;;;;;;;;;;;;;;;;7072:26;;;;;;;;;;-1:-1:-1;7072:26:0;;;;-1:-1:-1;;;;;7072:26:0;;;23172:137;;;;;;;;;;-1:-1:-1;23172:137:0;;;;;:::i;:::-;;:::i;8846:45::-;;;;;;;;;;-1:-1:-1;8846:45:0;;;;;;;;;;;11280:188;;;;;;;;;;-1:-1:-1;11280:188:0;;;;;:::i;:::-;-1:-1:-1;;;;;11432:19:0;;;11400:7;11432:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;11280:188;8564:38;;;;;;;;;;-1:-1:-1;8564:38:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;21481:85;;;;;;;;;;;;;:::i;8255:29::-;;;;;;;;;;-1:-1:-1;8255:29:0;;;;;;;;18955:200;;;;;;;;;;-1:-1:-1;18955:200:0;;;;;:::i;:::-;;:::i;6476:281::-;;;;;;;;;;-1:-1:-1;6476:281:0;;;;;:::i;:::-;;:::i;19911:258::-;;;;;;;;;;-1:-1:-1;19911:258:0;;;;;:::i;:::-;;:::i;19753:150::-;;;;;;;;;;-1:-1:-1;19753:150:0;;;;;:::i;:::-;;:::i;8508:23::-;;;;;;;;;;-1:-1:-1;8508:23:0;;;;-1:-1:-1;;;;;8508:23:0;;;8722:34;;;;;;;;;;-1:-1:-1;8722:34:0;;;;;;;;;;;8900:45;;;;;;;;;;-1:-1:-1;8900:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8645:31;;;;;;;;;;-1:-1:-1;8645:31:0;;;;;;;;12189:220;-1:-1:-1;;;;;12267:18:0;;12246:4;12267:18;;;:8;:18;;;;;;12288:1;-1:-1:-1;12263:67:0;;;-1:-1:-1;12313:5:0;;12189:220;-1:-1:-1;12189:220:0:o;12263:67::-;12386:15;;12368:33;;:15;:33;:::i;:::-;-1:-1:-1;;;;;12347:18:0;;;;;;;:8;:18;;;;;;:54;;;;;12189:220;-1:-1:-1;12189:220:0:o;11626:248::-;11762:10;11728:4;11750:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;11750:32:0;;;;;;;;;;:41;;;11807:37;11728:4;;11750:32;;11807:37;;;;11785:6;160:25:1;;148:2;133:18;;14:177;11807:37:0;;;;;;;;-1:-1:-1;11862:4:0;11626:248;;;;;:::o;21892:189::-;6233:6;;-1:-1:-1;;;;;6233:6:0;5517:10;6233:22;6225:67;;;;-1:-1:-1;;;6225:67:0;;;;;;;:::i;:::-;;;;;;;;;22007:21:::1;:30:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;22007:30:0;;::::1;::::0;;;::::1;::::0;;;22048:13:::1;:25:::0;21892:189::o;19369:164::-;6233:6;;-1:-1:-1;;;;;6233:6:0;5517:10;6233:22;6225:67;;;;-1:-1:-1;;;6225:67:0;;;;;;;:::i;:::-;19444:15:::1;::::0;;;::::1;;;19436:55;;;::::0;-1:-1:-1;;;19436:55:0;;7098:2:1;19436:55:0::1;::::0;::::1;7080:21:1::0;7137:2;7117:18;;;7110:30;7176:29;7156:18;;;7149:57;7223:18;;19436:55:0::1;6896:351:1::0;19436:55:0::1;19502:11;:23:::0;;-1:-1:-1;;19502:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19369:164::o;13233:422::-;-1:-1:-1;;;;;13388:19:0;;13367:4;13388:19;;;:11;:19;;;;;;;;13408:10;13388:31;;;;;;;;-1:-1:-1;;13388:52:0;13384:206;;13491:87;;;;;;;;;;;-1:-1:-1;;;13491:87:0;;;;;;;;-1:-1:-1;;;;;13491:19:0;;-1:-1:-1;13491:19:0;;;:11;:19;;;;;13511:10;13491:31;;;;;;;;;;:87;;13545:6;;13491:53;:87::i;:::-;-1:-1:-1;;;;;13457:19:0;;;;;;:11;:19;;;;;;;;13477:10;13457:31;;;;;;;:121;13384:206;13607:40;13621:6;13629:9;13640:6;13607:13;:40::i;:::-;13600:47;;13233:422;;;;;;:::o;20862:271::-;6233:6;;-1:-1:-1;;;;;6233:6:0;5517:10;6233:22;6225:67;;;;-1:-1:-1;;;6225:67:0;;;;;;;:::i;:::-;20989:15:::1;::::0;;;::::1;;;20981:28;;;::::0;-1:-1:-1;;;20981:28:0;;7454:2:1;20981:28:0::1;::::0;::::1;7436:21:1::0;-1:-1:-1;7473:18:1;;;7466:29;7512:18;;20981:28:0::1;7252:284:1::0;20981:28:0::1;21025:9;21020:106;21036:20:::0;;::::1;21020:106;;;21108:6;21078:13;:27;21092:9;;21102:1;21092:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21078:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;21078:27:0;:36;;-1:-1:-1;;21078:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21058:3:::1;::::0;::::1;:::i;:::-;;;21020:106;;;;20862:271:::0;;;:::o;20717:137::-;6233:6;;-1:-1:-1;;;;;6233:6:0;5517:10;6233:22;6225:67;;;;-1:-1:-1;;;6225:67:0;;;;;;;:::i;:::-;20792:15:::1;::::0;;;::::1;;;20784:28;;;::::0;-1:-1:-1;;;20784:28:0;;7454:2:1;20784:28:0::1;::::0;::::1;7436:21:1::0;-1:-1:-1;7473:18:1;;;7466:29;7512:18;;20784:28:0::1;7252:284:1::0;20784:28:0::1;20823:13;:23:::0;;;::::1;;;;-1:-1:-1::0;;20823:23:0;;::::1;::::0;;;::::1;::::0;;20717:137::o;11476:142::-;11246:9;:18;;;;6940:42;11529:7;11246:18;;;;;11556:12;;11529:7;;11556:54;;11246:18;;11556:33;;:12;:16;:33::i;:::-;:37;;:54::i;:::-;11549:61;;11476:142;:::o;23054:110::-;6233:6;;-1:-1:-1;;;;;6233:6:0;5517:10;6233:22;6225:67;;;;-1:-1:-1;;;6225:67:0;;;;;;;:::i;:::-;23130:15:::1;:26:::0;23054:110::o;21265:112::-;6233:6;;-1:-1:-1;;;;;6233:6:0;5517:10;6233:22;6225:67;;;;-1:-1:-1;;;6225:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21344:16:0;;;::::1;;::::0;;;:6:::1;:16;::::0;;;;:25;;-1:-1:-1;;21344:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21265:112::o;11882:122::-;11937:4;11961:35;11969:7;-1:-1:-1;;11961:7:0;:35::i;19163:198::-;6233:6;;-1:-1:-1;;;;;6233:6:0;5517:10;6233:22;6225:67;;;;-1:-1:-1;;;6225:67:0;;;;;;;:::i;:::-;19251:1:::1;19239:8;:13;;19231:64;;;;-1:-1:-1::0;;;19231:64:0::1;;;;;;;:::i;:::-;19349:4;19337:8;19322:12;;:23;;;;:::i;:::-;19321:32;;;;:::i;:::-;19306:12;:47:::0;-1:-1:-1;19163:198:0:o;21385:88::-;6233:6;;-1:-1:-1;;;;;6233:6:0;5517:10;6233:22;6225:67;;;;-1:-1:-1;;;6225:67:0;;;;;;;:::i;:::-;21442:15:::1;:23:::0;;-1:-1:-1;;21442:23:0::1;::::0;;21385:88::o;22941:105::-;6233:6;;-1:-1:-1;;;;;6233:6:0;5517:10;6233:22;6225:67;;;;-1:-1:-1;;;6225:67:0;;;;;;;:::i;:::-;23016:11:::1;:22:::0;;-1:-1:-1;;;;;;23016:22:0::1;-1:-1:-1::0;;;;;23016:22:0;;;::::1;::::0;;;::::1;::::0;;22941:105::o;19626:119::-;6233:6;;-1:-1:-1;;;;;6233:6:0;5517:10;6233:22;6225:67;;;;-1:-1:-1;;;6225:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19709:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;19709:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19626:119::o;23317:310::-;23364:20;23373:10;23364:8;:20::i;:::-;23356:46;;;;-1:-1:-1;;;23356:46:0;;8817:2:1;23356:46:0;;;8799:21:1;8856:2;8836:18;;;8829:30;-1:-1:-1;;;8875:18:1;;;8868:43;8928:18;;23356:46:0;8615:337:1;23356:46:0;23446:16;;23431:10;11219:7;11246:18;;;:9;:18;;;;;;23421:41;;23413:71;;;;-1:-1:-1;;;23413:71:0;;9159:2:1;23413:71:0;;;9141:21:1;9198:2;9178:18;;;9171:30;-1:-1:-1;;;9217:18:1;;;9210:47;9274:18;;23413:71:0;8957:341:1;23413:71:0;23505:10;23495:21;;;;:9;:21;;;;;:26;;23520:1;;23495:21;:26;;23520:1;;23495:26;:::i;:::-;;;;-1:-1:-1;;23541:10:0;23532:20;;;;:8;:20;;;;;;;23555:15;23532:38;;23586:11;;23581:38;;-1:-1:-1;;;23581:38:0;;;;;4455:51:1;;;;-1:-1:-1;;;;;23586:11:0;;23581:26;;4428:18:1;;23581:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21780:104;6233:6;;-1:-1:-1;;;;;6233:6:0;5517:10;6233:22;6225:67;;;;-1:-1:-1;;;6225:67:0;;;;;;;:::i;:::-;21852:15:::1;:24:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;21852:24:0;;::::1;::::0;;;::::1;::::0;;21780:104::o;6320:148::-;6233:6;;-1:-1:-1;;;;;6233:6:0;5517:10;6233:22;6225:67;;;;-1:-1:-1;;;6225:67:0;;;;;;;:::i;:::-;6427:1:::1;6411:6:::0;;6390:40:::1;::::0;-1:-1:-1;;;;;6411:6:0;;::::1;::::0;6390:40:::1;::::0;6427:1;;6390:40:::1;6458:1;6441:19:::0;;-1:-1:-1;;;;;;6441:19:0::1;::::0;;6320:148::o;22730:203::-;6233:6;;-1:-1:-1;;;;;6233:6:0;5517:10;6233:22;6225:67;;;;-1:-1:-1;;;6225:67:0;;;;;;;:::i;:::-;22827:21:::1;22867:10;22859:66;22921:3;22889:28;22901:16:::0;22827:21;22889:28:::1;:::i;:::-;22888:36;;;;:::i;:::-;22859:66;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;22796:137;22730:203:::0;:::o;21141:116::-;6233:6;;-1:-1:-1;;;;;6233:6:0;5517:10;6233:22;6225:67;;;;-1:-1:-1;;;6225:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21216:24:0;;;::::1;;::::0;;;:14:::1;:24;::::0;;;;:33;;-1:-1:-1;;21216:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21141:116::o;22435:287::-;22547:12;6233:6;;-1:-1:-1;;;;;6233:6:0;5517:10;6233:22;6225:67;;;;-1:-1:-1;;;6225:67:0;;;;;;;:::i;:::-;22609:4:::1;-1:-1:-1::0;;;;;22585:29:0;::::1;::::0;22577:70:::1;;;::::0;-1:-1:-1;;;22577:70:0;;9635:2:1;22577:70:0::1;::::0;::::1;9617:21:1::0;9674:2;9654:18;;;9647:30;9713;9693:18;;;9686:58;9761:18;;22577:70:0::1;9433:352:1::0;22577:70:0::1;22665:49;::::0;-1:-1:-1;;;22665:49:0;;22695:10:::1;22665:49;::::0;::::1;9964:51:1::0;10031:18;;;10024:34;;;-1:-1:-1;;;;;22665:29:0;::::1;::::0;::::1;::::0;9937:18:1;;22665:49:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;21676:96::-:0;6233:6;;-1:-1:-1;;;;;6233:6:0;5517:10;6233:22;6225:67;;;;-1:-1:-1;;;6225:67:0;;;;;;;:::i;:::-;21744:11:::1;:20:::0;;;::::1;;;;-1:-1:-1::0;;21744:20:0;;::::1;::::0;;;::::1;::::0;;21676:96::o;22089:338::-;6233:6;;-1:-1:-1;;;;;6233:6:0;5517:10;6233:22;6225:67;;;;-1:-1:-1;;;6225:67:0;;;;;;;:::i;:::-;22277:8:::1;:22:::0;;-1:-1:-1;;;;;;22277:22:0::1;::::0;-1:-1:-1;;;;;22277:22:0;;::::1;;;::::0;;22310:14:::1;:33:::0;;-1:-1:-1;;;;;;22310:33:0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;22354:9:::1;:24:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;22389:12:::1;:30:::0;;;;::::1;::::0;::::1;;::::0;;22089:338::o;18800:147::-;6233:6;;-1:-1:-1;;;;;6233:6:0;5517:10;6233:22;6225:67;;;;-1:-1:-1;;;6225:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18910:21:0;;;::::1;;::::0;;;:11:::1;:21:::0;;;;;:29;;-1:-1:-1;;18910:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18800:147::o;20177:532::-;6233:6;;-1:-1:-1;;;;;6233:6:0;5517:10;6233:22;6225:67;;;;-1:-1:-1;;;6225:67:0;;;;;;;:::i;:::-;20386:12:::1;:24:::0;;;20421:12:::1;:30:::0;;;20462:6:::1;:18:::0;;;20491:8:::1;:23:::0;;;20538:56:::1;20502:12:::0;20538:42:::1;20471:9:::0;20538:42;20401:9;20436:15;20538:16:::1;:30::i;:::-;:34:::0;::::1;:42::i;:56::-;20527:8;:67:::0;;;20625:23:::1;::::0;20636:12;;20625:23:::1;:::i;:::-;20605:17;:43:::0;;;20687:8:::1;::::0;20698:2:::1;::::0;20667:28:::1;::::0;20687:8;20667:28:::1;:::i;:::-;:33;20659:42;;;::::0;::::1;;20177:532:::0;;;;;:::o;12628:188::-;12735:4;12764:44;12778:10;12790:9;12801:6;12764:13;:44::i;21574:94::-;6233:6;;-1:-1:-1;;;;;6233:6:0;5517:10;6233:22;6225:67;;;;-1:-1:-1;;;6225:67:0;;;;;;;:::i;:::-;21641:10:::1;:19:::0;;-1:-1:-1;;21641:19:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21574:94::o;19541:77::-;6233:6;;-1:-1:-1;;;;;6233:6:0;5517:10;6233:22;6225:67;;;;-1:-1:-1;;;6225:67:0;;;;;;;:::i;:::-;19592:11:::1;:18:::0;;-1:-1:-1;;19592:18:0::1;19606:4;19592:18;::::0;;19541:77::o;23172:137::-;6233:6;;-1:-1:-1;;;;;6233:6:0;5517:10;6233:22;6225:67;;;;-1:-1:-1;;;6225:67:0;;;;;;;:::i;:::-;23297:4:::1;23286:7;23271:12;;:22;;;;:::i;:::-;23270:31;;;;:::i;:::-;23251:16;:50:::0;-1:-1:-1;23172:137:0:o;21481:85::-;6233:6;;-1:-1:-1;;;;;6233:6:0;5517:10;6233:22;6225:67;;;;-1:-1:-1;;;6225:67:0;;;;;;;:::i;:::-;21537:13:::1;:21:::0;;-1:-1:-1;;21537:21:0::1;::::0;;21481:85::o;18955:200::-;6233:6;;-1:-1:-1;;;;;6233:6:0;5517:10;6233:22;6225:67;;;;-1:-1:-1;;;6225:67:0;;;;;;;:::i;:::-;19047:1:::1;19035:8;:13;;19027:64;;;;-1:-1:-1::0;;;19027:64:0::1;;;;;;;:::i;:::-;19143:4;19131:8;19116:12;;:23;;;;:::i;:::-;19115:32;;;;:::i;:::-;19102:10;:45:::0;-1:-1:-1;18955:200:0:o;6476:281::-;6233:6;;-1:-1:-1;;;;;6233:6:0;5517:10;6233:22;6225:67;;;;-1:-1:-1;;;6225:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6579:22:0;::::1;6557:110;;;::::0;-1:-1:-1;;;6557:110:0;;10521:2:1;6557:110:0::1;::::0;::::1;10503:21:1::0;10560:2;10540:18;;;10533:30;10599:34;10579:18;;;10572:62;-1:-1:-1;;;10650:18:1;;;10643:36;10696:19;;6557:110:0::1;10319:402:1::0;6557:110:0::1;6704:6;::::0;;6683:38:::1;::::0;-1:-1:-1;;;;;6683:38:0;;::::1;::::0;6704:6;::::1;::::0;6683:38:::1;::::0;::::1;6732:6;:17:::0;;-1:-1:-1;;;;;;6732:17:0::1;-1:-1:-1::0;;;;;6732:17:0;;;::::1;::::0;;;::::1;::::0;;6476:281::o;19911:258::-;6233:6;;-1:-1:-1;;;;;6233:6:0;5517:10;6233:22;6225:67;;;;-1:-1:-1;;;6225:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19977:22:0::1;;::::0;;;20002:4:::1;19977:22;::::0;;;;;;;:29;;-1:-1:-1;;19977:29:0;;::::1;::::0;::::1;::::0;;;20017:11:::1;:19:::0;;;;;:26;;;::::1;::::0;::::1;::::0;;20054:15:::1;:23:::0;;;;;:30;;;::::1;::::0;::::1;::::0;;20095:19;;;;;;:26;;;::::1;::::0;;::::1;::::0;;;20132:13:::1;:21:::0;;;;;;:29;;;;::::1;::::0;;19911:258::o;19753:150::-;6233:6;;-1:-1:-1;;;;;6233:6:0;5517:10;6233:22;6225:67;;;;-1:-1:-1;;;6225:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19863:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;19863:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19753:150::o;1363:98::-;1421:7;1448:5;1452:1;1448;:5;:::i;1893:240::-;2013:7;2074:12;2066:6;;;;2058:29;;;;-1:-1:-1;;;2058:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2109:5:0;;;1893:240::o;13663:1627::-;13810:16;;13789:4;;13810:16;;;;;13806:97;;;13850:41;13865:6;13873:9;13884:6;13850:14;:41::i;:::-;13843:48;;;;13806:97;-1:-1:-1;;;;;13918:22:0;;;;;;:14;:22;;;;;;;;13917:23;:53;;;;-1:-1:-1;;;;;;13945:25:0;;;;;;:14;:25;;;;;;;;13944:26;13917:53;13913:110;;;13995:11;;;;13987:24;;;;-1:-1:-1;;;13987:24:0;;7454:2:1;13987:24:0;;;7436:21:1;-1:-1:-1;7473:18:1;;;7466:29;7512:18;;13987:24:0;7252:284:1;13987:24:0;14067:12;;14057:6;:22;;:98;;;-1:-1:-1;;;;;;14101:23:0;;;;;;:15;:23;;;;;;;;:53;;;;-1:-1:-1;;;;;;14128:26:0;;;;;;:15;:26;;;;;;;;14101:53;14035:156;;;;-1:-1:-1;;;14035:156:0;;10928:2:1;14035:156:0;;;10910:21:1;10967:1;10947:18;;;10940:29;-1:-1:-1;;;10985:18:1;;;10978:38;11033:18;;14035:156:0;10726:331:1;14035:156:0;-1:-1:-1;;;;;14220:17:0;;;;;;:6;:17;;;;;;;;:51;;;;-1:-1:-1;14255:16:0;;;;;;;14254:17;14220:51;:89;;;;-1:-1:-1;14288:21:0;;;;;;;14220:89;:147;;;;-1:-1:-1;14354:13:0;;14344:4;14326:24;;;;:9;:24;;;;;;:41;;14220:147;14202:227;;;14394:23;:21;:23::i;:::-;12079:10;;:15;;;14443:32;;-1:-1:-1;;;;;;14458:17:0;;;;;;:6;:17;;;;;;;;14443:32;14439:122;;;-1:-1:-1;;;;;14500:17:0;;14520:1;14500:17;;;:9;:17;;;;;;14492:34;;;;-1:-1:-1;;;14492:34:0;;7454:2:1;14492:34:0;;;7436:21:1;-1:-1:-1;7473:18:1;;;7466:29;7512:18;;14492:34:0;7252:284:1;14492:34:0;14541:8;12161:12;12148:10;:25;12110:71;14541:8;14599:13;;;;;;;14595:92;;;-1:-1:-1;;;;;14638:21:0;;;;;;:13;:21;;;;;;;;14637:22;14629:46;;;;-1:-1:-1;;;14629:46:0;;11264:2:1;14629:46:0;;;11246:21:1;11303:2;11283:18;;;11276:30;-1:-1:-1;;;11322:18:1;;;11315:41;11373:18;;14629:46:0;11062:335:1;14629:46:0;14746:33;;;;;;;;;-1:-1:-1;14746:33:0;;;-1:-1:-1;;;;;14746:17:0;;;;:9;:17;;;;;;;;:33;;14768:6;;14746:21;:33::i;:::-;-1:-1:-1;;;;;14726:17:0;;;;;;;:9;:17;;;;;;;;:53;;;;14797:26;;;;;:15;:26;;;;;;;14796:27;:45;;;;-1:-1:-1;14827:14:0;;;;14796:45;14792:137;;;14902:10;;-1:-1:-1;;;;;14866:20:0;;;;;;:9;:20;;;;;;:32;;14891:6;14866:24;:32::i;:::-;:46;;14858:59;;;;-1:-1:-1;;;14858:59:0;;7454:2:1;14858:59:0;;;7436:21:1;-1:-1:-1;7473:18:1;;;7466:29;7512:18;;14858:59:0;7252:284:1;14858:59:0;-1:-1:-1;;;;;14964:19:0;;14941;14964;;;:11;:19;;;;;;;;14963:20;:47;;;;-1:-1:-1;;;;;;14988:22:0;;;;;;:11;:22;;;;;;;;14987:23;14963:47;:122;;15079:6;14963:122;;;15026:37;15037:6;15045:9;15056:6;15026:10;:37::i;:::-;-1:-1:-1;;;;;15119:20:0;;;;;;:9;:20;;;;;;14941:144;;-1:-1:-1;15119:37:0;;14941:144;15119:24;:37::i;:::-;-1:-1:-1;;;;;15096:20:0;;;;;;:9;:20;;;;;:60;15169:33;15184:6;15106:9;15169:14;:33::i;:::-;15237:9;-1:-1:-1;;;;;15220:40:0;15229:6;-1:-1:-1;;;;;15220:40:0;-1:-1:-1;;;;;;;;;;;15248:11:0;15220:40;;;;160:25:1;;148:2;133:18;;14:177;15220:40:0;;;;;;;;-1:-1:-1;15278:4:0;;13663:1627;-1:-1:-1;;;;13663:1627:0:o;1469:98::-;1527:7;1554:5;1558:1;1554;:5;:::i;12824:401::-;12988:90;;;;;;;;;;;-1:-1:-1;;;12988:90:0;;;;;;;;-1:-1:-1;;;;;12988:17:0;;12951:4;12988:17;;;:9;:17;;;;;;;:90;;13024:6;;12988:21;:90::i;:::-;-1:-1:-1;;;;;12968:17:0;;;;;;;:9;:17;;;;;;:110;;;;13112:20;;;;;;;:32;;13137:6;13112:24;:32::i;:::-;-1:-1:-1;;;;;13089:20:0;;;;;;;:9;:20;;;;;;;:55;;;;13160:35;;;;;;-1:-1:-1;;;;;;;;;;;13160:35:0;;;13188:6;160:25:1;;148:2;133:18;;14:177;13160:35:0;;;;;;;;-1:-1:-1;13213:4:0;12824:401;;;;;:::o;16984:1808::-;9167:16;:23;;-1:-1:-1;;9167:23:0;;;;;17093:4:::1;9167:23:::0;17075:24;;;:9:::1;:24;::::0;;;;;17215:8:::1;::::0;17202::::1;::::0;17075:24;;9167:23;17136:110:::1;::::0;17244:1:::1;::::0;17136:89:::1;::::0;17202:22:::1;::::0;:8;:12:::1;:22::i;:::-;17170:12;::::0;17136:47:::1;::::0;:15;;:33:::1;:47::i;:::-;:65:::0;::::1;:89::i;:110::-;17110:136:::0;-1:-1:-1;17257:20:0::1;17280:36;:15:::0;17110:136;17280:19:::1;:36::i;:::-;17353:16;::::0;;17367:1:::1;17353:16:::0;;;;;::::1;::::0;;17257:59;;-1:-1:-1;17329:21:0::1;::::0;17353:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;17353:16:0::1;17329:40;;17398:4;17380;17385:1;17380:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17380:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;17424:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;17424:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;17380:7;;17424:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17414:4;17419:1;17414:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17414:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;17450:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;17450:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;17522:12;;17450:6:::1;::::0;17565:4;;17592::::1;::::0;17612:15:::1;::::0;17450:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;17754:12:0::1;::::0;17671:21:::1;::::0;-1:-1:-1;17651:17:0::1;::::0;-1:-1:-1;17727:47:0::1;::::0;17754:19:::1;::::0;17771:1:::1;17754:16;:19::i;:::-;17740:8;::::0;17727::::1;::::0;:22:::1;::::0;:12:::1;:22::i;:47::-;17705:69;;17787:26;17816:93;17907:1;17816:72;17876:11;17816:41;17844:12;;17816:9;:27;;:41;;;;:::i;:93::-;17787:122;;17920:26;17949:68;17995:11;17949:27;17963:12;;17949:9;:13;;:27;;;;:::i;:68::-;17920:97;;18028:20;18051:38;18077:11;18051:21;18065:6;;18051:9;:13;;:21;;;;:::i;:38::-;18133:14;::::0;18125:108:::1;::::0;18028:61;;-1:-1:-1;18103:16:0::1;::::0;-1:-1:-1;;;;;18133:14:0;;::::1;::::0;18213:5:::1;::::0;18175:18;;18103:16;18125:108;18103:16;18125:108;18175:18;18133:14;18213:5;18125:108:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;18302:9:0::1;::::0;18294:97:::1;::::0;18258:5:::1;::::0;-1:-1:-1;;;;;;18302:9:0;;::::1;::::0;-1:-1:-1;18371:5:0::1;::::0;18339:12;;18258:5;18294:97;18258:5;18294:97;18339:12;18302:9;18371:5;18294:97:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;18416:5:0::1;::::0;-1:-1:-1;;18438:19:0;;;-1:-1:-1;18434:351:0::1;;18474:6;::::0;18648:8:::1;::::0;18474:231:::1;::::0;-1:-1:-1;;;18474:231:0;;18550:4:::1;18474:231;::::0;::::1;13326:34:1::0;13376:18;;;13369:34;;;-1:-1:-1;13419:18:1;;;13412:34;;;13462:18;;;13455:34;-1:-1:-1;;;;;18648:8:0;;;::::1;::::0;::::1;13505:19:1::0;;;13498:44;18675:15:0::1;13558:19:1::0;;;13551:35;18474:6:0;::::1;::::0;:22:::1;::::0;18504:18;;13260:19:1;;18474:231:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;18725:48:0::1;::::0;;14082:25:1;;;14138:2;14123:18;;14116:34;;;18725:48:0::1;::::0;-1:-1:-1;14055:18:1;18725:48:0::1;;;;;;;18434:351;-1:-1:-1::0;;9213:16:0;:24;;-1:-1:-1;;9213:24:0;;;-1:-1:-1;;;;;;;;16984:1808:0:o;15767:1209::-;-1:-1:-1;;;;;15985:17:0;;15890:7;15985:17;;;:6;:17;;;;;;15890:7;;;;15985:17;;:32;;;;-1:-1:-1;16006:11:0;;;;;;;15985:32;15981:112;;;16072:8;;16050:17;;:31;;:21;:31::i;:::-;16034:47;;15981:112;-1:-1:-1;;;;;16107:14:0;;;;;;:6;:14;;;;;;;;:28;;;;-1:-1:-1;16125:10:0;;;;16107:28;16103:99;;;16181:8;;16168;;:22;;:12;:22::i;:::-;16152:38;;16103:99;-1:-1:-1;;;;;16217:14:0;;;;;;:6;:14;;;;;;;;16216:15;:37;;;;-1:-1:-1;;;;;;16236:17:0;;;;;;:6;:17;;;;;;;;16235:18;16216:37;16212:230;;;16274:15;;;;;;;16270:161;;;16348:8;;16326:17;;:31;;:21;:31::i;:::-;16310:47;;16270:161;;;16414:1;16398:17;;16270:161;16472:1;16456:13;:17;:33;;;;;16488:1;16477:8;;:12;16456:33;16452:256;;;16521:29;16546:3;16521:20;16532:8;;16521:6;:10;;:20;;;;:::i;:29::-;16601:12;;-1:-1:-1;;;;;16601:12:0;16591:23;;;;:9;:23;;;;;;16506:44;;-1:-1:-1;16591:41:0;;16506:44;16591:27;:41::i;:::-;16575:12;;;-1:-1:-1;;;;;16575:12:0;;;16565:23;;;;:9;:23;;;;;;;;;:67;;;;16669:12;;16652:44;;160:25:1;;;16669:12:0;;;;16652:44;;;;-1:-1:-1;;;;;;;;;;;16652:44:0;133:18:1;16652:44:0;;;;;;;16452:256;16718:17;16738:34;16768:3;16738:25;:6;16749:13;16738:10;:25::i;:34::-;16830:4;16812:24;;;;:9;:24;;;;;;16718:54;;-1:-1:-1;16812:39:0;;16718:54;16812:28;:39::i;:::-;16803:4;16785:24;;;;:9;:24;;;;;;;:66;;;;16867:42;;-1:-1:-1;;;;;16867:42:0;;;-1:-1:-1;;;;;;;;;;;16867:42:0;;;16899:9;160:25:1;;148:2;133:18;;14:177;16867:42:0;;;;;;;;16929:39;16955:12;16929:21;:6;16940:9;16929:10;:21::i;:39::-;16922:46;15767:1209;-1:-1:-1;;;;;;;15767:1209:0:o;15298:461::-;-1:-1:-1;;;;;15381:14:0;;;;;;:6;:14;;;;;;;;15376:230;;15435:16;;-1:-1:-1;;;;;11246:18:0;;11219:7;11246:18;;;:9;:18;;;;;;15415:36;15412:183;;;-1:-1:-1;;;;;15471:16:0;;15490:1;15471:16;;;:8;:16;;;;;:20;15412:183;;;-1:-1:-1;;;;;15545:16:0;;;;;;:8;:16;;;;;15564:15;15545:34;;15412:183;-1:-1:-1;;;;;15620:19:0;;;;;;:8;:19;;;;;;15642:1;-1:-1:-1;15620:66:0;;;;-1:-1:-1;15670:16:0;;-1:-1:-1;;;;;11246:18:0;;11219:7;11246:18;;;:9;:18;;;;;;15647:39;15620:66;15616:136;;;-1:-1:-1;;;;;15703:19:0;;;;;;:8;:19;;;;;15725:15;15703:37;;15616:136;15298:461;;:::o;1575:98::-;1633:7;1660:5;1664:1;1660;:5;:::i;1681:98::-;1739:7;1766:5;1770:1;1766;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:247::-;944:6;997:2;985:9;976:7;972:23;968:32;965:52;;;1013:1;1010;1003:12;965:52;1052:9;1039:23;1071:31;1096:5;1071:31;:::i;1329:315::-;1397:6;1405;1458:2;1446:9;1437:7;1433:23;1429:32;1426:52;;;1474:1;1471;1464:12;1426:52;1513:9;1500:23;1532:31;1557:5;1532:31;:::i;:::-;1582:5;1634:2;1619:18;;;;1606:32;;-1:-1:-1;;;1329:315:1:o;1649:118::-;1735:5;1728:13;1721:21;1714:5;1711:32;1701:60;;1757:1;1754;1747:12;1772:309;1837:6;1845;1898:2;1886:9;1877:7;1873:23;1869:32;1866:52;;;1914:1;1911;1904:12;1866:52;1953:9;1940:23;1972:28;1994:5;1972:28;:::i;2086:241::-;2142:6;2195:2;2183:9;2174:7;2170:23;2166:32;2163:52;;;2211:1;2208;2201:12;2163:52;2250:9;2237:23;2269:28;2291:5;2269:28;:::i;2332:456::-;2409:6;2417;2425;2478:2;2466:9;2457:7;2453:23;2449:32;2446:52;;;2494:1;2491;2484:12;2446:52;2533:9;2520:23;2552:31;2577:5;2552:31;:::i;:::-;2602:5;-1:-1:-1;2659:2:1;2644:18;;2631:32;2672:33;2631:32;2672:33;:::i;:::-;2332:456;;2724:7;;-1:-1:-1;;;2778:2:1;2763:18;;;;2750:32;;2332:456::o;2793:750::-;2885:6;2893;2901;2954:2;2942:9;2933:7;2929:23;2925:32;2922:52;;;2970:1;2967;2960:12;2922:52;3010:9;2997:23;3039:18;3080:2;3072:6;3069:14;3066:34;;;3096:1;3093;3086:12;3066:34;3134:6;3123:9;3119:22;3109:32;;3179:7;3172:4;3168:2;3164:13;3160:27;3150:55;;3201:1;3198;3191:12;3150:55;3241:2;3228:16;3267:2;3259:6;3256:14;3253:34;;;3283:1;3280;3273:12;3253:34;3338:7;3331:4;3321:6;3318:1;3314:14;3310:2;3306:23;3302:34;3299:47;3296:67;;;3359:1;3356;3349:12;3296:67;3390:4;3382:13;;;;-1:-1:-1;3414:6:1;-1:-1:-1;;3455:20:1;;3442:34;3485:28;3442:34;3485:28;:::i;:::-;3532:5;3522:15;;;2793:750;;;;;:::o;3548:180::-;3607:6;3660:2;3648:9;3639:7;3635:23;3631:32;3628:52;;;3676:1;3673;3666:12;3628:52;-1:-1:-1;3699:23:1;;3548:180;-1:-1:-1;3548:180:1:o;3922:382::-;3987:6;3995;4048:2;4036:9;4027:7;4023:23;4019:32;4016:52;;;4064:1;4061;4054:12;4016:52;4103:9;4090:23;4122:31;4147:5;4122:31;:::i;:::-;4172:5;-1:-1:-1;4229:2:1;4214:18;;4201:32;4242:30;4201:32;4242:30;:::i;:::-;4291:7;4281:17;;;3922:382;;;;;:::o;4517:671::-;4603:6;4611;4619;4627;4680:3;4668:9;4659:7;4655:23;4651:33;4648:53;;;4697:1;4694;4687:12;4648:53;4736:9;4723:23;4755:31;4780:5;4755:31;:::i;:::-;4805:5;-1:-1:-1;4862:2:1;4847:18;;4834:32;4875:33;4834:32;4875:33;:::i;:::-;4927:7;-1:-1:-1;4986:2:1;4971:18;;4958:32;4999:33;4958:32;4999:33;:::i;:::-;5051:7;-1:-1:-1;5110:2:1;5095:18;;5082:32;5123:33;5082:32;5123:33;:::i;:::-;4517:671;;;;-1:-1:-1;4517:671:1;;-1:-1:-1;;4517:671:1:o;5193:454::-;5288:6;5296;5304;5312;5320;5373:3;5361:9;5352:7;5348:23;5344:33;5341:53;;;5390:1;5387;5380:12;5341:53;-1:-1:-1;;5413:23:1;;;5483:2;5468:18;;5455:32;;-1:-1:-1;5534:2:1;5519:18;;5506:32;;5585:2;5570:18;;5557:32;;-1:-1:-1;5636:3:1;5621:19;5608:33;;-1:-1:-1;5193:454:1;-1:-1:-1;5193:454:1:o;5652:388::-;5720:6;5728;5781:2;5769:9;5760:7;5756:23;5752:32;5749:52;;;5797:1;5794;5787:12;5749:52;5836:9;5823:23;5855:31;5880:5;5855:31;:::i;:::-;5905:5;-1:-1:-1;5962:2:1;5947:18;;5934:32;5975:33;5934:32;5975:33;:::i;6270:127::-;6331:10;6326:3;6322:20;6319:1;6312:31;6362:4;6359:1;6352:15;6386:4;6383:1;6376:15;6402:128;6469:9;;;6490:11;;;6487:37;;;6504:18;;:::i;6535:356::-;6737:2;6719:21;;;6756:18;;;6749:30;6815:34;6810:2;6795:18;;6788:62;6882:2;6867:18;;6535:356::o;7541:127::-;7602:10;7597:3;7593:20;7590:1;7583:31;7633:4;7630:1;7623:15;7657:4;7654:1;7647:15;7673:135;7712:3;7733:17;;;7730:43;;7753:18;;:::i;:::-;-1:-1:-1;7800:1:1;7789:13;;7673:135::o;7813:402::-;8015:2;7997:21;;;8054:2;8034:18;;;8027:30;8093:34;8088:2;8073:18;;8066:62;-1:-1:-1;;;8159:2:1;8144:18;;8137:36;8205:3;8190:19;;7813:402::o;8220:168::-;8293:9;;;8324;;8341:15;;;8335:22;;8321:37;8311:71;;8362:18;;:::i;8393:217::-;8433:1;8459;8449:132;;8503:10;8498:3;8494:20;8491:1;8484:31;8538:4;8535:1;8528:15;8566:4;8563:1;8556:15;8449:132;-1:-1:-1;8595:9:1;;8393:217::o;9303:125::-;9368:9;;;9389:10;;;9386:36;;;9402:18;;:::i;10069:245::-;10136:6;10189:2;10177:9;10168:7;10164:23;10160:32;10157:52;;;10205:1;10202;10195:12;10157:52;10237:9;10231:16;10256:28;10278:5;10256:28;:::i;11534:251::-;11604:6;11657:2;11645:9;11636:7;11632:23;11628:32;11625:52;;;11673:1;11670;11663:12;11625:52;11705:9;11699:16;11724:31;11749:5;11724:31;:::i;11790:980::-;12052:4;12100:3;12089:9;12085:19;12131:6;12120:9;12113:25;12157:2;12195:6;12190:2;12179:9;12175:18;12168:34;12238:3;12233:2;12222:9;12218:18;12211:31;12262:6;12297;12291:13;12328:6;12320;12313:22;12366:3;12355:9;12351:19;12344:26;;12405:2;12397:6;12393:15;12379:29;;12426:1;12436:195;12450:6;12447:1;12444:13;12436:195;;;12515:13;;-1:-1:-1;;;;;12511:39:1;12499:52;;12606:15;;;;12571:12;;;;12547:1;12465:9;12436:195;;;-1:-1:-1;;;;;;;12687:32:1;;;;12682:2;12667:18;;12660:60;-1:-1:-1;;;12751:3:1;12736:19;12729:35;12648:3;11790:980;-1:-1:-1;;;11790:980:1:o;13597:306::-;13685:6;13693;13701;13754:2;13742:9;13733:7;13729:23;13725:32;13722:52;;;13770:1;13767;13760:12;13722:52;13799:9;13793:16;13783:26;;13849:2;13838:9;13834:18;13828:25;13818:35;;13893:2;13882:9;13878:18;13872:25;13862:35;;13597:306;;;;;:::o

Swarm Source

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