ETH Price: $2,360.11 (+0.84%)

Token

Hamster Race (HamsRace)
 

Overview

Max Total Supply

1,000,000,000 HamsRace

Holders

3

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
499,284,000 HamsRace

Value
$0.00
0x12625b2fc8bd8917f2d430809aceb0f42a550431
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:
HamsterRace

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 500 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0 <0.9.0;

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 IFactoryV2 {
    event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address lpPair);
    function createPair(address tokenA, address tokenB) external returns (address lpPair);
}

interface IV2Pair {
    function factory() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function sync() external;
}

interface IRouter01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function swapExactETHForTokens(
        uint amountOutMin, 
        address[] calldata path, 
        address to, uint deadline
    ) external payable returns (uint[] memory amounts);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IRouter02 is IRouter01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
}

interface Initializer {
    function setLaunch(address _initialLpPair, uint32 _liqAddBlock, uint64 _liqAddStamp, uint8 dec) external;
    function getConfig() external returns (address, address);
    function getInits(uint256 amount) external returns (uint256, uint256);
    function setLpPair(address pair, bool enabled) external;
}

contract HamsterRace is IERC20 {
    mapping (address => uint256) private _tOwned;
    mapping (address => bool) lpPairs;
    uint256 private timeSinceLastPair = 0;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _liquidityHolders;
    mapping (address => bool) private _isExcludedFromProtection;
    mapping (address => bool) private _isExcludedFromFees;
    mapping (address => bool) private presaleAddresses;
    bool private allowedPresaleExclusion = true;
   
    uint256 constant private startingSupply = 1_000_000_000;
    string constant private _name = "Hamster Race";
    string constant private _symbol = "HamsRace";
    uint8 constant private _decimals = 18;
    uint256 constant private _tTotal = startingSupply * 10**_decimals;

    struct Fees {
        uint16 buyFee;
        uint16 sellFee;
        uint16 transferFee;
    }

    Fees public _taxRates = Fees({
        buyFee: 400,
        sellFee: 400,
        transferFee: 0
    });

    uint256 constant public maxBuyTaxes = 1000;
    uint256 constant public maxSellTaxes = 1000;
    uint256 constant public maxTransferTaxes = 1000;
    uint256 constant masterTaxDivisor = 10000;

    bool public taxesAreLocked;
    IRouter02 public dexRouter;
    address public lpPair;
    address constant public DEAD = 0x000000000000000000000000000000000000dEaD;
    address payable public marketingWallet = payable(0x00db23E6137B44e9eF4681E1cD2B5BC0Baa72cFB);
    
    bool inSwap;
    bool public contractSwapEnabled = false;
    uint256 public swapThreshold;
    uint256 public swapAmount;
    bool public piContractSwapsEnabled;
    uint256 public piSwapPercent = 10;
    bool public tradingEnabled = false;
    bool public _hasLiqBeenAdded = false;
    Initializer initializer;
    uint256 public launchStamp;

    event ContractSwapEnabledUpdated(bool enabled);
    event AutoLiquify(uint256 amountCurrency, uint256 amountTokens);

    modifier inSwapFlag {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () payable {
        // Set the owner.
        _owner = msg.sender;
        originalDeployer = msg.sender;

        _tOwned[_owner] = _tTotal;
        emit Transfer(address(0), _owner, _tTotal);

        _isExcludedFromFees[_owner] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[DEAD] = true;
        _liquidityHolders[_owner] = true;
    }

//===============================================================================================================
//===============================================================================================================
//===============================================================================================================
    // Ownable removed as a lib and added here to allow for custom transfers and renouncements.
    // This allows for removal of ownership privileges from the owner once renounced or transferred.

    address private _owner;

    modifier onlyOwner() { require(_owner == msg.sender, "Caller =/= owner."); _; }
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    function transferOwner(address newOwner) external onlyOwner {
        require(newOwner != address(0), "Call renounceOwnership to transfer owner to the zero address.");
        require(newOwner != DEAD, "Call renounceOwnership to transfer owner to the zero address.");
        setExcludedFromFees(_owner, false);
        setExcludedFromFees(newOwner, true);
        
        if (balanceOf(_owner) > 0) {
            finalizeTransfer(_owner, newOwner, balanceOf(_owner), false, false, true);
        }
        
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
        
    }

    function renounceOwnership() external onlyOwner {
        require(tradingEnabled, "Cannot renounce until trading has been enabled.");
        setExcludedFromFees(_owner, false);
        address oldOwner = _owner;
        _owner = address(0);
        emit OwnershipTransferred(oldOwner, address(0));
    }

    address public originalDeployer;
    address public operator;

    // Function to set an operator to allow someone other the deployer to create things such as launchpads.
    // Only callable by original deployer.
    function setOperator(address newOperator) public {
        require(msg.sender == originalDeployer, "Can only be called by original deployer.");
        address oldOperator = operator;
        if (oldOperator != address(0)) {
            _liquidityHolders[oldOperator] = false;
            setExcludedFromFees(oldOperator, false);
        }
        operator = newOperator;
        _liquidityHolders[newOperator] = true;
        setExcludedFromFees(newOperator, true);
    }

    function renounceOriginalDeployer() external {
        require(msg.sender == originalDeployer, "Can only be called by original deployer.");
        setOperator(address(0));
        originalDeployer = address(0);
    }

//===============================================================================================================
//===============================================================================================================
//===============================================================================================================

    
    receive() external payable {}
    function totalSupply() external pure override returns (uint256) { return _tTotal; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return _owner; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[account];
    }

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

    function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function _approve(address sender, address spender, uint256 amount) internal {
        require(sender != address(0), "ERC20: Zero Address");
        require(spender != address(0), "ERC20: Zero Address");

        _allowances[sender][spender] = amount;
        emit Approval(sender, spender, amount);
    }

    function approveContractContingency() external onlyOwner returns (bool) {
        _approve(address(this), address(dexRouter), type(uint256).max);
        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] -= amount;
        }

        return _transfer(sender, recipient, amount);
    }

    function setNewRouter(address newRouter) external onlyOwner {
        require(!_hasLiqBeenAdded, "Cannot change after liquidity.");
        IRouter02 _newRouter = IRouter02(newRouter);
        address get_pair = IFactoryV2(_newRouter.factory()).getPair(address(this), _newRouter.WETH());
        lpPairs[lpPair] = false;
        if (get_pair == address(0)) {
            lpPair = IFactoryV2(_newRouter.factory()).createPair(address(this), _newRouter.WETH());
        }
        else {
            lpPair = get_pair;
        }
        dexRouter = _newRouter;
        lpPairs[lpPair] = true;
        _approve(address(this), address(dexRouter), type(uint256).max);
    }

    function setLpPair(address pair, bool enabled) external onlyOwner {
        if (!enabled) {
            lpPairs[pair] = false;
            initializer.setLpPair(pair, false);
        } else {
            if (timeSinceLastPair != 0) {
                require(block.timestamp - timeSinceLastPair > 3 days, "3 Day cooldown.");
            }
            require(!lpPairs[pair], "Pair already added to list.");
            lpPairs[pair] = true;
            timeSinceLastPair = block.timestamp;
            initializer.setLpPair(pair, true);
        }
    }

    function setInitializer(address init) public onlyOwner {
        require(!tradingEnabled);
        require(init != address(this), "Can't be self.");
        initializer = Initializer(init);
        try initializer.getConfig() returns (address router, address constructorLP) {
            dexRouter = IRouter02(router); lpPair = constructorLP; lpPairs[lpPair] = true; 
            _approve(_owner, address(dexRouter), type(uint256).max);
            _approve(address(this), address(dexRouter), type(uint256).max);
        } catch { revert(); }
    }

    function isExcludedFromFees(address account) external view returns(bool) {
        return _isExcludedFromFees[account];
    }

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

    function isExcludedFromProtection(address account) external view returns (bool) {
        return _isExcludedFromProtection[account];
    }

    function setExcludedFromProtection(address account, bool enabled) external onlyOwner {
        _isExcludedFromProtection[account] = enabled;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return (_tTotal - (balanceOf(DEAD) + balanceOf(address(0))));
    }

    function lockTaxes() external onlyOwner {
        // This will lock taxes at their current value forever, do not call this unless you're sure.
        taxesAreLocked = true;
    }

    function setTaxes(uint16 buyFee, uint16 sellFee, uint16 transferFee) external onlyOwner {
        require(!taxesAreLocked, "Taxes are locked.");
        require(buyFee <= maxBuyTaxes
                && sellFee <= maxSellTaxes
                && transferFee <= maxTransferTaxes,
                "Cannot exceed maximums.");
        _taxRates.buyFee = buyFee;
        _taxRates.sellFee = sellFee;
        _taxRates.transferFee = transferFee;
    }

    function setWallets(address payable marketing) external onlyOwner {
        require(marketing != address(0), "Cannot be zero address.");
        marketingWallet = payable(marketing);
    }

    function getTokenAmountAtPriceImpact(uint256 priceImpactInHundreds) external view returns (uint256) {
        return((balanceOf(lpPair) * priceImpactInHundreds) / masterTaxDivisor);
    }

    function setSwapSettings(uint256 thresholdPercent, uint256 thresholdDivisor, uint256 amountPercent, uint256 amountDivisor) external onlyOwner {
        swapThreshold = (_tTotal * thresholdPercent) / thresholdDivisor;
        swapAmount = (_tTotal * amountPercent) / amountDivisor;
        require(swapThreshold <= swapAmount, "Threshold cannot be above amount.");
        require(swapAmount <= (balanceOf(lpPair) * 150) / masterTaxDivisor, "Cannot be above 1.5% of current PI.");
        require(swapAmount >= _tTotal / 1_000_000, "Cannot be lower than 0.00001% of total supply.");
        require(swapThreshold >= _tTotal / 1_000_000, "Cannot be lower than 0.00001% of total supply.");
    }

    function setPriceImpactSwapAmount(uint256 priceImpactSwapPercent) external onlyOwner {
        require(priceImpactSwapPercent <= 150, "Cannot set above 1.5%.");
        piSwapPercent = priceImpactSwapPercent;
    }

    function setContractSwapEnabled(bool swapEnabled, bool priceImpactSwapEnabled) external onlyOwner {
        contractSwapEnabled = swapEnabled;
        piContractSwapsEnabled = priceImpactSwapEnabled;
        emit ContractSwapEnabledUpdated(swapEnabled);
    }

    function excludePresaleAddresses(address router, address presale) external onlyOwner {
        require(allowedPresaleExclusion);
        require(router != address(this) 
                && presale != address(this) 
                && lpPair != router 
                && lpPair != presale, "Just don't.");
        if (router == presale) {
            _liquidityHolders[presale] = true;
            presaleAddresses[presale] = true;
            setExcludedFromFees(presale, true);
        } else {
            _liquidityHolders[router] = true;
            _liquidityHolders[presale] = true;
            presaleAddresses[router] = true;
            presaleAddresses[presale] = true;
            setExcludedFromFees(router, true);
            setExcludedFromFees(presale, true);
        }
    }

    function _hasLimits(address from, address to) internal view returns (bool) {
        return from != _owner
            && to != _owner
            && tx.origin != _owner
            && !_liquidityHolders[to]
            && !_liquidityHolders[from]
            && to != DEAD
            && to != address(0)
            && from != address(this)
            && from != address(initializer)
            && to != address(initializer);
    }

    function _transfer(address from, address to, uint256 amount) internal returns (bool) {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        bool buy = false;
        bool sell = false;
        bool other = false;
        if (lpPairs[from]) {
            buy = true;
        } else if (lpPairs[to]) {
            sell = true;
        } else {
            other = true;
        }
        if (_hasLimits(from, to)) {
            if(!tradingEnabled) {
                if (!other) {
                    revert("Trading not yet enabled!");
                } else if (!_isExcludedFromProtection[from] && !_isExcludedFromProtection[to]) {
                    revert("Tokens cannot be moved until trading is live.");
                }
            }
        }

        if (sell) {
            if (!inSwap) {
                if (contractSwapEnabled
                   && !presaleAddresses[to]
                   && !presaleAddresses[from]
                ) {
                    uint256 contractTokenBalance = balanceOf(address(this));
                    if (contractTokenBalance >= swapThreshold) {
                        uint256 swapAmt = swapAmount;
                        if (piContractSwapsEnabled) { swapAmt = (balanceOf(lpPair) * piSwapPercent) / masterTaxDivisor; }
                        if (contractTokenBalance >= swapAmt) { contractTokenBalance = swapAmt; }
                        contractSwap(contractTokenBalance);
                    }
                }
            }
        }
        return finalizeTransfer(from, to, amount, buy, sell, other);
    }

    function contractSwap(uint256 contractTokenBalance) internal inSwapFlag {
        if (_allowances[address(this)][address(dexRouter)] != type(uint256).max) {
            _allowances[address(this)][address(dexRouter)] = type(uint256).max;
        }
        
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        try dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            contractTokenBalance,
            0,
            path,
            address(this),
            block.timestamp
        ) {} catch {
            return;
        }

        bool success;
        (success,) = marketingWallet.call{value: address(this).balance, gas: 55000}("");
    }

    function _checkLiquidityAdd(address from, address to) internal {
        require(!_hasLiqBeenAdded, "Liquidity already added and marked.");
        if (!_hasLimits(from, to) && to == lpPair) {
            _liquidityHolders[from] = true;
            _isExcludedFromFees[from] = true;
            _hasLiqBeenAdded = true;
            if (address(initializer) == address(0)){
                initializer = Initializer(address(this));
            }
            contractSwapEnabled = true;
            emit ContractSwapEnabledUpdated(true);
        }
    }

    function enableTrading() public onlyOwner {
        require(!tradingEnabled, "Trading already enabled!");
        require(_hasLiqBeenAdded, "Liquidity must be added.");
        if (address(initializer) == address(0)){
            initializer = Initializer(address(this));
        }
        try initializer.setLaunch(lpPair, uint32(block.number), uint64(block.timestamp), _decimals) {} catch {}
        try initializer.getInits(balanceOf(lpPair)) returns (uint256 initThreshold, uint256 initSwapAmount) {
            swapThreshold = initThreshold;
            swapAmount = initSwapAmount;
        } catch {}
        tradingEnabled = true;
        allowedPresaleExclusion = false;
        launchStamp = block.timestamp;
    }

    function sweepContingency() external onlyOwner {
        require(!_hasLiqBeenAdded, "Cannot call after liquidity.");
        payable(_owner).transfer(address(this).balance);
    }

    function sweepExternalTokens(address token) external onlyOwner {
        if (_hasLiqBeenAdded) {
            require(token != address(this), "Cannot sweep native tokens.");
        }
        IERC20 TOKEN = IERC20(token);
        TOKEN.transfer(_owner, TOKEN.balanceOf(address(this)));
    }

    function multiSendTokens(address[] memory accounts, uint256[] memory amounts) external onlyOwner {
        require(accounts.length == amounts.length, "Lengths do not match.");
        for (uint16 i = 0; i < accounts.length; i++) {
            require(balanceOf(msg.sender) >= amounts[i]*10**_decimals, "Not enough tokens.");
            finalizeTransfer(msg.sender, accounts[i], amounts[i]*10**_decimals, false, false, true);
        }
    }

    function finalizeTransfer(address from, address to, uint256 amount, bool buy, bool sell, bool other) internal returns (bool) {
        bool takeFee = true;
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]){
            takeFee = false;
        }
        _tOwned[from] -= amount;
        uint256 amountReceived = (takeFee) ? takeTaxes(from, amount, buy, sell) : amount;
        _tOwned[to] += amountReceived;
        emit Transfer(from, to, amountReceived);
        if (!_hasLiqBeenAdded) {
            _checkLiquidityAdd(from, to);
            if (!_hasLiqBeenAdded && _hasLimits(from, to) && !_isExcludedFromProtection[from] && !_isExcludedFromProtection[to] && !other) {
                revert("Pre-liquidity transfer protection.");
            }
        }
        return true;
    }

    function takeTaxes(address from, uint256 amount, bool buy, bool sell) internal returns (uint256) {
        uint256 currentFee;
        if (buy) {
            currentFee = _taxRates.buyFee;
        } else if (sell) {
            currentFee = _taxRates.sellFee;
        } else {
            currentFee = _taxRates.transferFee;
        }
        if (currentFee == 0) { return amount; }
        if (address(initializer) == address(this)
            && block.chainid != 97) { currentFee = 4500; }
        uint256 feeAmount = amount * currentFee / masterTaxDivisor;
        if (feeAmount > 0) {
            _tOwned[address(this)] += feeAmount;
            emit Transfer(from, address(this), feeAmount);
        }

        return amount - feeAmount;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","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":"amountCurrency","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"ContractSwapEnabledUpdated","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":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxRates","outputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"stateMutability":"view","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":[],"name":"approveContractContingency","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":"contractSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"},{"internalType":"address","name":"presale","type":"address"}],"name":"excludePresaleAddresses","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":"uint256","name":"priceImpactInHundreds","type":"uint256"}],"name":"getTokenAmountAtPriceImpact","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromProtection","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchStamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransferTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiSendTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"originalDeployer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"piContractSwapsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"piSwapPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOriginalDeployer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"swapEnabled","type":"bool"},{"internalType":"bool","name":"priceImpactSwapEnabled","type":"bool"}],"name":"setContractSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"init","type":"address"}],"name":"setInitializer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setLpPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setNewRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOperator","type":"address"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"priceImpactSwapPercent","type":"uint256"}],"name":"setPriceImpactSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"thresholdPercent","type":"uint256"},{"internalType":"uint256","name":"thresholdDivisor","type":"uint256"},{"internalType":"uint256","name":"amountPercent","type":"uint256"},{"internalType":"uint256","name":"amountDivisor","type":"uint256"}],"name":"setSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"marketing","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sweepContingency","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"sweepExternalTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxesAreLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

600060028190556008805460ff1916600117905560e0604052610190608081905260a05260c0526009805465ffffffffffff19166301900190179055600c8054600161ff0160a01b03191672db23e6137b44e9ef4681e1cd2b5bc0baa72cfb179055600a60108190556011805461ffff19169055601380546001600160a01b031990811633908117909255601480549091169091179055620000a490601290620002c0565b620000b490633b9aca00620002d8565b601380546001600160a01b03908116600090815260208190526040812093909355905416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001086012600a620002c0565b6200011890633b9aca00620002d8565b60405190815260200160405180910390a3601380546001600160a01b0390811660009081526006602090815260408083208054600160ff19918216811790925530855282852080548216831790557f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e22805482168317905595549094168352600490915290208054909216179055620002f2565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000202578160001904821115620001e657620001e6620001ab565b80851615620001f457918102915b93841c9390800290620001c6565b509250929050565b6000826200021b57506001620002ba565b816200022a57506000620002ba565b81600181146200024357600281146200024e576200026e565b6001915050620002ba565b60ff841115620002625762000262620001ab565b50506001821b620002ba565b5060208310610133831016604e8410600b841016171562000293575081810a620002ba565b6200029f8383620001c1565b8060001904821115620002b657620002b6620001ab565b0290505b92915050565b6000620002d160ff8416836200020a565b9392505050565b8082028115828204841417620002ba57620002ba620001ab565b613b7780620003026000396000f3fe6080604052600436106103595760003560e01c8063590ffdce116101bb578063a9059cbb116100f7578063dd62ed3e11610095578063ee5d9c2d1161006f578063ee5d9c2d146109d8578063fb78680d146109ed578063fdb78c0e14610a0d578063feadde9c14610a2e57600080fd5b8063dd62ed3e14610952578063eafb5a3c14610998578063eb50e70e146109b857600080fd5b8063b3ab15fb116100d1578063b3ab15fb146108f8578063b3d514fb1461059a578063b7df8b3614610918578063bfc2fc351461093257600080fd5b8063a9059cbb146108b8578063ab558e4d146108d8578063b1b08f711461059a57600080fd5b806378648edf11610164578063893d20e81161013e578063893d20e81461083f5780638a63bd9b1461085d5780638a8c523c1461087257806395d89b411461088757600080fd5b806378648edf146107ea57806380c581d1146107ff57806381cf58a91461081f57600080fd5b806370a082311161019557806370a082311461077f578063715018a6146107b557806375f0a874146107ca57600080fd5b8063590ffdce146107295780635a6f0918146107495780635c24b0741461075f57600080fd5b80632b112e49116102955780634ada218b116102335780634fb2e45d1161020d5780634fb2e45d146106915780634fbee193146106b157806350a8e016146106ea578063570ca7351461070957600080fd5b80634ada218b146106375780634bbb93eb146106515780634e718e481461067157600080fd5b8063313ce5671161026f578063313ce567146105c657806332cde664146105e257806339a0590214610602578063452ed4f11461061757600080fd5b80632b112e49146105855780632b28fc7a1461059a5780632e8fa821146105b057600080fd5b8063095ea7b31161030257806318160ddd116102dc57806318160ddd1461051a57806323b872dd1461052f5780632610eaca1461054f578063285777511461056f57600080fd5b8063095ea7b31461049f5780630dcbcf1c146104bf57806313b4a7f4146104f857600080fd5b806306fdde031161033357806306fdde03146104125780630758d9241461045057806307dd79e01461047557600080fd5b806303fd2a45146103655780630445b66714610398578063069d955f146103bc57600080fd5b3661036057005b600080fd5b34801561037157600080fd5b5061037b61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103a457600080fd5b506103ae600d5481565b60405190815260200161038f565b3480156103c857600080fd5b506009546103ed9061ffff808216916201000081048216916401000000009091041683565b6040805161ffff9485168152928416602084015292169181019190915260600161038f565b34801561041e57600080fd5b5060408051808201909152600c81526b48616d73746572205261636560a01b60208201525b60405161038f91906134ae565b34801561045c57600080fd5b50600a5461037b9061010090046001600160a01b031681565b34801561048157600080fd5b50600a5461048f9060ff1681565b604051901515815260200161038f565b3480156104ab57600080fd5b5061048f6104ba366004613511565b610a4e565b3480156104cb57600080fd5b5061048f6104da36600461353d565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561050457600080fd5b5061051861051336600461355a565b610a65565b005b34801561052657600080fd5b506103ae610c28565b34801561053b57600080fd5b5061048f61054a366004613593565b610c49565b34801561055b57600080fd5b5061051861056a3660046136aa565b610cc1565b34801561057b57600080fd5b506103ae60105481565b34801561059157600080fd5b506103ae610e76565b3480156105a657600080fd5b506103ae6103e881565b3480156105bc57600080fd5b506103ae600e5481565b3480156105d257600080fd5b506040516012815260200161038f565b3480156105ee57600080fd5b506105186105fd366004613783565b610ef4565b34801561060e57600080fd5b50610518611048565b34801561062357600080fd5b50600b5461037b906001600160a01b031681565b34801561064357600080fd5b5060115461048f9060ff1681565b34801561065d57600080fd5b506103ae61066c3660046137c6565b6110cf565b34801561067d57600080fd5b5061051861068c3660046137c6565b611103565b34801561069d57600080fd5b506105186106ac36600461353d565b6111a1565b3480156106bd57600080fd5b5061048f6106cc36600461353d565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156106f657600080fd5b5060115461048f90610100900460ff1681565b34801561071557600080fd5b5060155461037b906001600160a01b031681565b34801561073557600080fd5b506105186107443660046137ed565b6113a3565b34801561075557600080fd5b506103ae60125481565b34801561076b57600080fd5b5061051861077a36600461353d565b611416565b34801561078b57600080fd5b506103ae61079a36600461353d565b6001600160a01b031660009081526020819052604090205490565b3480156107c157600080fd5b506105186115f4565b3480156107d657600080fd5b50600c5461037b906001600160a01b031681565b3480156107f657600080fd5b50610518611719565b34801561080b57600080fd5b5061051861081a3660046137ed565b611770565b34801561082b57600080fd5b5060145461037b906001600160a01b031681565b34801561084b57600080fd5b506013546001600160a01b031661037b565b34801561086957600080fd5b5061048f61198b565b34801561087e57600080fd5b506105186119fb565b34801561089357600080fd5b5060408051808201909152600881526748616d735261636560c01b6020820152610443565b3480156108c457600080fd5b5061048f6108d3366004613511565b611c51565b3480156108e457600080fd5b506105186108f336600461353d565b611c68565b34801561090457600080fd5b5061051861091336600461353d565b611e02565b34801561092457600080fd5b50600f5461048f9060ff1681565b34801561093e57600080fd5b5061051861094d36600461381b565b611eef565b34801561095e57600080fd5b506103ae61096d36600461355a565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156109a457600080fd5b506105186109b336600461353d565b611f9a565b3480156109c457600080fd5b506105186109d336600461353d565b61239b565b3480156109e457600080fd5b5061051861245b565b3480156109f957600080fd5b50610518610a08366004613839565b612534565b348015610a1957600080fd5b50600c5461048f90600160a81b900460ff1681565b348015610a3a57600080fd5b50610518610a493660046137ed565b6127f6565b6000610a5b338484612869565b5060015b92915050565b6013546001600160a01b03163314610ab25760405162461bcd60e51b81526020600482015260116024820152600080516020613b2283398151915260448201526064015b60405180910390fd5b60085460ff16610ac157600080fd5b6001600160a01b0382163014801590610ae357506001600160a01b0381163014155b8015610afd5750600b546001600160a01b03838116911614155b8015610b175750600b546001600160a01b03828116911614155b610b515760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba103237b713ba1760a91b6044820152606401610aa9565b806001600160a01b0316826001600160a01b031603610bb3576001600160a01b03811660009081526004602090815260408083208054600160ff19918216811790925560079093529220805490911682179055610baf9082906113a3565b5050565b6001600160a01b0382811660008181526004602090815260408083208054600160ff19918216811790925595871680855282852080548816831790559484526007909252808320805486168317905592825291902080549092168117909155610c1d9083906113a3565b610baf8160016113a3565b6000610c366012600a613965565b610c4490633b9aca00613974565b905090565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610cae576001600160a01b038416600090815260036020908152604080832033845290915281208054849290610ca890849061398b565b90915550505b610cb9848484612962565b949350505050565b6013546001600160a01b03163314610d095760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b8051825114610d5a5760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610aa9565b60005b82518161ffff161015610e7157610d766012600a613965565b828261ffff1681518110610d8c57610d8c61399e565b6020026020010151610d9e9190613974565b336000908152602081905260409020541015610dfc5760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e00000000000000000000000000006044820152606401610aa9565b610e5e33848361ffff1681518110610e1657610e1661399e565b60200260200101516012600a610e2c9190613965565b858561ffff1681518110610e4257610e4261399e565b6020026020010151610e549190613974565b6000806001612cf6565b5080610e69816139b4565b915050610d5d565b505050565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf8354610ed091906139d5565b610edc6012600a613965565b610eea90633b9aca00613974565b610c44919061398b565b6013546001600160a01b03163314610f3c5760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b600a5460ff1615610f8f5760405162461bcd60e51b815260206004820152601160248201527f546178657320617265206c6f636b65642e0000000000000000000000000000006044820152606401610aa9565b6103e88361ffff1611158015610fab57506103e88261ffff1611155b8015610fbd57506103e88161ffff1611155b6110095760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610aa9565b6009805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b6014546001600160a01b031633146110b35760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792062652063616c6c6564206279206f726967696e616c206460448201526732b83637bcb2b91760c11b6064820152608401610aa9565b6110bd6000611e02565b601480546001600160a01b0319169055565b600b546001600160a01b0316600090815260208190526040812054612710906110f9908490613974565b610a5f91906139e8565b6013546001600160a01b0316331461114b5760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b609681111561119c5760405162461bcd60e51b815260206004820152601660248201527f43616e6e6f74207365742061626f766520312e35252e000000000000000000006044820152606401610aa9565b601055565b6013546001600160a01b031633146111e95760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b6001600160a01b0381166112655760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610aa9565b61deac196001600160a01b038216016112e65760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610aa9565b6013546112fd906001600160a01b031660006113a3565b6113088160016113a3565b6013546001600160a01b031660009081526020819052604090205415611351576013546001600160a01b031660008181526020819052604090205461134f91908390610e54565b505b601380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6013546001600160a01b031633146113eb5760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6013546001600160a01b0316331461145e5760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b60115460ff161561146e57600080fd5b306001600160a01b038216036114c65760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e0000000000000000000000000000000000006044820152606401610aa9565b6011805462010000600160b01b031916620100006001600160a01b0384811682029290921792839055604080516330fe427560e21b81528151929094049092169263c3f909d492600480830193919282900301816000875af192505050801561154c575060408051601f3d908101601f1916820190925261154991810190613a0a565b60015b61155557600080fd5b600a805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600b80546001600160a01b0319168584169081179091556000908152600160208190526040909120805460ff1916909117905560135492546115d29383169291900416600019612869565b600a54610e7190309061010090046001600160a01b0316600019612869565b50565b6013546001600160a01b0316331461163c5760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b60115460ff166116b45760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f742072656e6f756e636520756e74696c2074726164696e6720686160448201527f73206265656e20656e61626c65642e00000000000000000000000000000000006064820152608401610aa9565b6013546116cb906001600160a01b031660006113a3565b601380546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6013546001600160a01b031633146117615760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b600a805460ff19166001179055565b6013546001600160a01b031633146117b85760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b80611847576001600160a01b03828116600081815260016020526040808220805460ff1916905560115490516380c581d160e01b815260048101939093526024830191909152620100009004909116906380c581d190604401600060405180830381600087803b15801561182b57600080fd5b505af115801561183f573d6000803e3d6000fd5b505050505050565b600254156118ae576203f48060025442611861919061398b565b116118ae5760405162461bcd60e51b815260206004820152600f60248201527f332044617920636f6f6c646f776e2e00000000000000000000000000000000006044820152606401610aa9565b6001600160a01b03821660009081526001602052604090205460ff16156119175760405162461bcd60e51b815260206004820152601b60248201527f5061697220616c726561647920616464656420746f206c6973742e00000000006044820152606401610aa9565b6001600160a01b03828116600081815260016020819052604091829020805460ff1916821790554260025560115491516380c581d160e01b815260048101939093526024830152620100009004909116906380c581d190604401600060405180830381600087803b15801561182b57600080fd5b6013546000906001600160a01b031633146119d65760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b600a546119f590309061010090046001600160a01b0316600019612869565b50600190565b6013546001600160a01b03163314611a435760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b60115460ff1615611a965760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610aa9565b601154610100900460ff16611aed5760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610aa9565b6011546201000090046001600160a01b0316611b1d576011805462010000600160b01b0319163062010000021790555b601154600b54604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260126064820152620100009092041690636c115c3490608401600060405180830381600087803b158015611b8f57600080fd5b505af1925050508015611ba0575060015b50601154600b546001600160a01b03908116600090815260208190526040908190205490516312d38e5760e11b815260048101919091526201000090920416906325a71cae9060240160408051808303816000875af1925050508015611c23575060408051601f3d908101601f19168201909252611c2091810190613a39565b60015b15611c3257600d91909155600e555b6011805460ff1990811660011790915560088054909116905542601255565b6000611c5e338484612962565b5060019392505050565b6013546001600160a01b03163314611cb05760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b601154610100900460ff1615611d1857306001600160a01b03821603611d185760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207377656570206e617469766520746f6b656e732e00000000006044820152606401610aa9565b6013546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa158015611d6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d939190613a5d565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611dde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e719190613a76565b6014546001600160a01b03163314611e6d5760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792062652063616c6c6564206279206f726967696e616c206460448201526732b83637bcb2b91760c11b6064820152608401610aa9565b6015546001600160a01b03168015611eaa576001600160a01b0381166000908152600460205260408120805460ff19169055611eaa9082906113a3565b601580546001600160a01b0319166001600160a01b0384169081179091556000908152600460205260409020805460ff19166001908117909155610baf9083906113a3565b6013546001600160a01b03163314611f375760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b600c805460ff60a81b1916600160a81b84151590810291909117909155600f805460ff19168315151790556040519081527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906020015b60405180910390a15050565b6013546001600160a01b03163314611fe25760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b601154610100900460ff161561203a5760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74206368616e6765206166746572206c69717569646974792e00006044820152606401610aa9565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561207f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a39190613a93565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121149190613a93565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561215f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121839190613a93565b600b546001600160a01b039081166000908152600160205260409020805460ff19169055909150811661231957816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122129190613a93565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561225f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122839190613a93565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156122d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f49190613a93565b600b80546001600160a01b0319166001600160a01b0392909216919091179055612335565b600b80546001600160a01b0319166001600160a01b0383161790555b600a805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600b5482166000908152600160208190526040909120805460ff191690911790559154610e71923092910416600019612869565b6013546001600160a01b031633146123e35760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b6001600160a01b0381166124395760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74206265207a65726f20616464726573732e0000000000000000006044820152606401610aa9565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6013546001600160a01b031633146124a35760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b601154610100900460ff16156124fb5760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e000000006044820152606401610aa9565b6013546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156115f1573d6000803e3d6000fd5b6013546001600160a01b0316331461257c5760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b828461258a6012600a613965565b61259890633b9aca00613974565b6125a29190613974565b6125ac91906139e8565b600d5580826125bd6012600a613965565b6125cb90633b9aca00613974565b6125d59190613974565b6125df91906139e8565b600e819055600d54111561263f5760405162461bcd60e51b815260206004820152602160248201527f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e746044820152601760f91b6064820152608401610aa9565b600b546001600160a01b031660009081526020819052604090205461271090612669906096613974565b61267391906139e8565b600e5411156126d05760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742062652061626f766520312e3525206f662063757272656e742060448201526228249760e91b6064820152608401610aa9565b620f42406126e06012600a613965565b6126ee90633b9aca00613974565b6126f891906139e8565b600e5410156127605760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610aa9565b620f42406127706012600a613965565b61277e90633b9aca00613974565b61278891906139e8565b600d5410156127f05760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610aa9565b50505050565b6013546001600160a01b0316331461283e5760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b0383166128b55760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610aa9565b6001600160a01b0382166129015760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610aa9565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166129c85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610aa9565b6001600160a01b038316612a2a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610aa9565b60008211612a8c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610aa9565b6001600160a01b0384166000908152600160205260408120548190819060ff1615612aba5760019250612ae8565b6001600160a01b03861660009081526001602052604090205460ff1615612ae45760019150612ae8565b5060015b612af28787612f03565b15612bf35760115460ff16612bf35780612b4e5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610aa9565b6001600160a01b03871660009081526005602052604090205460ff16158015612b9057506001600160a01b03861660009081526005602052604090205460ff16155b15612bf35760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b6064820152608401610aa9565b8115612cdd57600c54600160a01b900460ff16612cdd57600c54600160a81b900460ff168015612c3c57506001600160a01b03861660009081526007602052604090205460ff16155b8015612c6157506001600160a01b03871660009081526007602052604090205460ff16155b15612cdd5730600090815260208190526040902054600d548110612cdb57600e54600f5460ff1615612cc557601054600b546001600160a01b031660009081526020819052604090205461271091612cb891613974565b612cc291906139e8565b90505b808210612cd0578091505b612cd98261301a565b505b505b612ceb878787868686612cf6565b979650505050505050565b6001600160a01b03861660009081526006602052604081205460019060ff1680612d3857506001600160a01b03871660009081526006602052604090205460ff165b15612d41575060005b6001600160a01b03881660009081526020819052604081208054889290612d6990849061398b565b909155506000905081612d7c5786612d88565b612d888988888861325e565b9050806000808a6001600160a01b03166001600160a01b031681526020019081526020016000206000828254612dbe91906139d5565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e0a91815260200190565b60405180910390a3601154610100900460ff16612ef457612e2b898961336a565b601154610100900460ff16158015612e485750612e488989612f03565b8015612e6d57506001600160a01b03891660009081526005602052604090205460ff16155b8015612e9257506001600160a01b03881660009081526005602052604090205460ff16155b8015612e9c575083155b15612ef45760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b6064820152608401610aa9565b50600198975050505050505050565b6013546000906001600160a01b03848116911614801590612f3257506013546001600160a01b03838116911614155b8015612f4957506013546001600160a01b03163214155b8015612f6e57506001600160a01b03821660009081526004602052604090205460ff16155b8015612f9357506001600160a01b03831660009081526004602052604090205460ff16155b8015612faa57506001600160a01b03821661dead14155b8015612fbe57506001600160a01b03821615155b8015612fd357506001600160a01b0383163014155b8015612ff357506011546001600160a01b03848116620100009092041614155b801561301357506011546001600160a01b03838116620100009092041614155b9392505050565b600c805460ff60a01b1916600160a01b179055306000908152600360209081526040808320600a5461010090046001600160a01b031684529091529020546000191461309057306000908152600360209081526040808320600a5461010090046001600160a01b03168452909152902060001990555b60408051600280825260608201835260009260208301908036833701905050905030816000815181106130c5576130c561399e565b60200260200101906001600160a01b031690816001600160a01b031681525050600a60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613138573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061315c9190613a93565b8160018151811061316f5761316f61399e565b6001600160a01b039283166020918202929092010152600a5460405163791ac94760e01b81526101009091049091169063791ac947906131bc908590600090869030904290600401613ab0565b600060405180830381600087803b1580156131d657600080fd5b505af19250505080156131e7575060015b6131f1575061324e565b600c546040516000916001600160a01b03169061d6d890479084818181858888f193505050503d8060008114613243576040519150601f19603f3d011682016040523d82523d6000602084013e613248565b606091505b50505050505b50600c805460ff60a01b19169055565b6000808315613274575060095461ffff1661329e565b821561328d575060095462010000900461ffff1661329e565b50600954640100000000900461ffff165b806000036132af5784915050610cb9565b6011546201000090046001600160a01b0316301480156132d0575046606114155b156132da57506111945b60006127106132e98388613974565b6132f391906139e8565b9050801561336057306000908152602081905260408120805483929061331a9084906139d5565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b612ceb818761398b565b601154610100900460ff16156133ce5760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610aa9565b6133d88282612f03565b1580156133f25750600b546001600160a01b038281169116145b15610baf576001600160a01b038083166000908152600460209081526040808320805460ff19908116600190811790925560069093529220805490911690911790556011805461ff00191661010017908190556201000090041661346a576011805462010000600160b01b0319163062010000021790555b600c805460ff60a81b1916600160a81b179055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f914105325790602001611f8e565b600060208083528351808285015260005b818110156134db578581018301518582016040015282016134bf565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115f157600080fd5b6000806040838503121561352457600080fd5b823561352f816134fc565b946020939093013593505050565b60006020828403121561354f57600080fd5b8135613013816134fc565b6000806040838503121561356d57600080fd5b8235613578816134fc565b91506020830135613588816134fc565b809150509250929050565b6000806000606084860312156135a857600080fd5b83356135b3816134fc565b925060208401356135c3816134fc565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613613576136136135d4565b604052919050565b600067ffffffffffffffff821115613635576136356135d4565b5060051b60200190565b600082601f83011261365057600080fd5b813560206136656136608361361b565b6135ea565b82815260059290921b8401810191818101908684111561368457600080fd5b8286015b8481101561369f5780358352918301918301613688565b509695505050505050565b600080604083850312156136bd57600080fd5b823567ffffffffffffffff808211156136d557600080fd5b818501915085601f8301126136e957600080fd5b813560206136f96136608361361b565b82815260059290921b8401810191818101908984111561371857600080fd5b948201945b8386101561373f578535613730816134fc565b8252948201949082019061371d565b9650508601359250508082111561375557600080fd5b506137628582860161363f565b9150509250929050565b803561ffff8116811461377e57600080fd5b919050565b60008060006060848603121561379857600080fd5b6137a18461376c565b92506137af6020850161376c565b91506137bd6040850161376c565b90509250925092565b6000602082840312156137d857600080fd5b5035919050565b80151581146115f157600080fd5b6000806040838503121561380057600080fd5b823561380b816134fc565b91506020830135613588816137df565b6000806040838503121561382e57600080fd5b823561380b816137df565b6000806000806080858703121561384f57600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156138bc5781600019048211156138a2576138a261386b565b808516156138af57918102915b93841c9390800290613886565b509250929050565b6000826138d357506001610a5f565b816138e057506000610a5f565b81600181146138f657600281146139005761391c565b6001915050610a5f565b60ff8411156139115761391161386b565b50506001821b610a5f565b5060208310610133831016604e8410600b841016171561393f575081810a610a5f565b6139498383613881565b806000190482111561395d5761395d61386b565b029392505050565b600061301360ff8416836138c4565b8082028115828204841417610a5f57610a5f61386b565b81810381811115610a5f57610a5f61386b565b634e487b7160e01b600052603260045260246000fd5b600061ffff8083168181036139cb576139cb61386b565b6001019392505050565b80820180821115610a5f57610a5f61386b565b600082613a0557634e487b7160e01b600052601260045260246000fd5b500490565b60008060408385031215613a1d57600080fd5b8251613a28816134fc565b6020840151909250613588816134fc565b60008060408385031215613a4c57600080fd5b505080516020909101519092909150565b600060208284031215613a6f57600080fd5b5051919050565b600060208284031215613a8857600080fd5b8151613013816137df565b600060208284031215613aa557600080fd5b8151613013816134fc565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015613b005784516001600160a01b031683529383019391830191600101613adb565b50506001600160a01b0396909616606085015250505060800152939250505056fe43616c6c6572203d2f3d206f776e65722e000000000000000000000000000000a2646970667358221220f54c6da7ba1b7ec58ac9a219264530961d778ffe4d722b3705ddc749099eea9b64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106103595760003560e01c8063590ffdce116101bb578063a9059cbb116100f7578063dd62ed3e11610095578063ee5d9c2d1161006f578063ee5d9c2d146109d8578063fb78680d146109ed578063fdb78c0e14610a0d578063feadde9c14610a2e57600080fd5b8063dd62ed3e14610952578063eafb5a3c14610998578063eb50e70e146109b857600080fd5b8063b3ab15fb116100d1578063b3ab15fb146108f8578063b3d514fb1461059a578063b7df8b3614610918578063bfc2fc351461093257600080fd5b8063a9059cbb146108b8578063ab558e4d146108d8578063b1b08f711461059a57600080fd5b806378648edf11610164578063893d20e81161013e578063893d20e81461083f5780638a63bd9b1461085d5780638a8c523c1461087257806395d89b411461088757600080fd5b806378648edf146107ea57806380c581d1146107ff57806381cf58a91461081f57600080fd5b806370a082311161019557806370a082311461077f578063715018a6146107b557806375f0a874146107ca57600080fd5b8063590ffdce146107295780635a6f0918146107495780635c24b0741461075f57600080fd5b80632b112e49116102955780634ada218b116102335780634fb2e45d1161020d5780634fb2e45d146106915780634fbee193146106b157806350a8e016146106ea578063570ca7351461070957600080fd5b80634ada218b146106375780634bbb93eb146106515780634e718e481461067157600080fd5b8063313ce5671161026f578063313ce567146105c657806332cde664146105e257806339a0590214610602578063452ed4f11461061757600080fd5b80632b112e49146105855780632b28fc7a1461059a5780632e8fa821146105b057600080fd5b8063095ea7b31161030257806318160ddd116102dc57806318160ddd1461051a57806323b872dd1461052f5780632610eaca1461054f578063285777511461056f57600080fd5b8063095ea7b31461049f5780630dcbcf1c146104bf57806313b4a7f4146104f857600080fd5b806306fdde031161033357806306fdde03146104125780630758d9241461045057806307dd79e01461047557600080fd5b806303fd2a45146103655780630445b66714610398578063069d955f146103bc57600080fd5b3661036057005b600080fd5b34801561037157600080fd5b5061037b61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103a457600080fd5b506103ae600d5481565b60405190815260200161038f565b3480156103c857600080fd5b506009546103ed9061ffff808216916201000081048216916401000000009091041683565b6040805161ffff9485168152928416602084015292169181019190915260600161038f565b34801561041e57600080fd5b5060408051808201909152600c81526b48616d73746572205261636560a01b60208201525b60405161038f91906134ae565b34801561045c57600080fd5b50600a5461037b9061010090046001600160a01b031681565b34801561048157600080fd5b50600a5461048f9060ff1681565b604051901515815260200161038f565b3480156104ab57600080fd5b5061048f6104ba366004613511565b610a4e565b3480156104cb57600080fd5b5061048f6104da36600461353d565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561050457600080fd5b5061051861051336600461355a565b610a65565b005b34801561052657600080fd5b506103ae610c28565b34801561053b57600080fd5b5061048f61054a366004613593565b610c49565b34801561055b57600080fd5b5061051861056a3660046136aa565b610cc1565b34801561057b57600080fd5b506103ae60105481565b34801561059157600080fd5b506103ae610e76565b3480156105a657600080fd5b506103ae6103e881565b3480156105bc57600080fd5b506103ae600e5481565b3480156105d257600080fd5b506040516012815260200161038f565b3480156105ee57600080fd5b506105186105fd366004613783565b610ef4565b34801561060e57600080fd5b50610518611048565b34801561062357600080fd5b50600b5461037b906001600160a01b031681565b34801561064357600080fd5b5060115461048f9060ff1681565b34801561065d57600080fd5b506103ae61066c3660046137c6565b6110cf565b34801561067d57600080fd5b5061051861068c3660046137c6565b611103565b34801561069d57600080fd5b506105186106ac36600461353d565b6111a1565b3480156106bd57600080fd5b5061048f6106cc36600461353d565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156106f657600080fd5b5060115461048f90610100900460ff1681565b34801561071557600080fd5b5060155461037b906001600160a01b031681565b34801561073557600080fd5b506105186107443660046137ed565b6113a3565b34801561075557600080fd5b506103ae60125481565b34801561076b57600080fd5b5061051861077a36600461353d565b611416565b34801561078b57600080fd5b506103ae61079a36600461353d565b6001600160a01b031660009081526020819052604090205490565b3480156107c157600080fd5b506105186115f4565b3480156107d657600080fd5b50600c5461037b906001600160a01b031681565b3480156107f657600080fd5b50610518611719565b34801561080b57600080fd5b5061051861081a3660046137ed565b611770565b34801561082b57600080fd5b5060145461037b906001600160a01b031681565b34801561084b57600080fd5b506013546001600160a01b031661037b565b34801561086957600080fd5b5061048f61198b565b34801561087e57600080fd5b506105186119fb565b34801561089357600080fd5b5060408051808201909152600881526748616d735261636560c01b6020820152610443565b3480156108c457600080fd5b5061048f6108d3366004613511565b611c51565b3480156108e457600080fd5b506105186108f336600461353d565b611c68565b34801561090457600080fd5b5061051861091336600461353d565b611e02565b34801561092457600080fd5b50600f5461048f9060ff1681565b34801561093e57600080fd5b5061051861094d36600461381b565b611eef565b34801561095e57600080fd5b506103ae61096d36600461355a565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156109a457600080fd5b506105186109b336600461353d565b611f9a565b3480156109c457600080fd5b506105186109d336600461353d565b61239b565b3480156109e457600080fd5b5061051861245b565b3480156109f957600080fd5b50610518610a08366004613839565b612534565b348015610a1957600080fd5b50600c5461048f90600160a81b900460ff1681565b348015610a3a57600080fd5b50610518610a493660046137ed565b6127f6565b6000610a5b338484612869565b5060015b92915050565b6013546001600160a01b03163314610ab25760405162461bcd60e51b81526020600482015260116024820152600080516020613b2283398151915260448201526064015b60405180910390fd5b60085460ff16610ac157600080fd5b6001600160a01b0382163014801590610ae357506001600160a01b0381163014155b8015610afd5750600b546001600160a01b03838116911614155b8015610b175750600b546001600160a01b03828116911614155b610b515760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba103237b713ba1760a91b6044820152606401610aa9565b806001600160a01b0316826001600160a01b031603610bb3576001600160a01b03811660009081526004602090815260408083208054600160ff19918216811790925560079093529220805490911682179055610baf9082906113a3565b5050565b6001600160a01b0382811660008181526004602090815260408083208054600160ff19918216811790925595871680855282852080548816831790559484526007909252808320805486168317905592825291902080549092168117909155610c1d9083906113a3565b610baf8160016113a3565b6000610c366012600a613965565b610c4490633b9aca00613974565b905090565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610cae576001600160a01b038416600090815260036020908152604080832033845290915281208054849290610ca890849061398b565b90915550505b610cb9848484612962565b949350505050565b6013546001600160a01b03163314610d095760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b8051825114610d5a5760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610aa9565b60005b82518161ffff161015610e7157610d766012600a613965565b828261ffff1681518110610d8c57610d8c61399e565b6020026020010151610d9e9190613974565b336000908152602081905260409020541015610dfc5760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e00000000000000000000000000006044820152606401610aa9565b610e5e33848361ffff1681518110610e1657610e1661399e565b60200260200101516012600a610e2c9190613965565b858561ffff1681518110610e4257610e4261399e565b6020026020010151610e549190613974565b6000806001612cf6565b5080610e69816139b4565b915050610d5d565b505050565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf8354610ed091906139d5565b610edc6012600a613965565b610eea90633b9aca00613974565b610c44919061398b565b6013546001600160a01b03163314610f3c5760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b600a5460ff1615610f8f5760405162461bcd60e51b815260206004820152601160248201527f546178657320617265206c6f636b65642e0000000000000000000000000000006044820152606401610aa9565b6103e88361ffff1611158015610fab57506103e88261ffff1611155b8015610fbd57506103e88161ffff1611155b6110095760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610aa9565b6009805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b6014546001600160a01b031633146110b35760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792062652063616c6c6564206279206f726967696e616c206460448201526732b83637bcb2b91760c11b6064820152608401610aa9565b6110bd6000611e02565b601480546001600160a01b0319169055565b600b546001600160a01b0316600090815260208190526040812054612710906110f9908490613974565b610a5f91906139e8565b6013546001600160a01b0316331461114b5760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b609681111561119c5760405162461bcd60e51b815260206004820152601660248201527f43616e6e6f74207365742061626f766520312e35252e000000000000000000006044820152606401610aa9565b601055565b6013546001600160a01b031633146111e95760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b6001600160a01b0381166112655760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610aa9565b61deac196001600160a01b038216016112e65760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610aa9565b6013546112fd906001600160a01b031660006113a3565b6113088160016113a3565b6013546001600160a01b031660009081526020819052604090205415611351576013546001600160a01b031660008181526020819052604090205461134f91908390610e54565b505b601380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6013546001600160a01b031633146113eb5760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6013546001600160a01b0316331461145e5760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b60115460ff161561146e57600080fd5b306001600160a01b038216036114c65760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e0000000000000000000000000000000000006044820152606401610aa9565b6011805462010000600160b01b031916620100006001600160a01b0384811682029290921792839055604080516330fe427560e21b81528151929094049092169263c3f909d492600480830193919282900301816000875af192505050801561154c575060408051601f3d908101601f1916820190925261154991810190613a0a565b60015b61155557600080fd5b600a805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600b80546001600160a01b0319168584169081179091556000908152600160208190526040909120805460ff1916909117905560135492546115d29383169291900416600019612869565b600a54610e7190309061010090046001600160a01b0316600019612869565b50565b6013546001600160a01b0316331461163c5760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b60115460ff166116b45760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f742072656e6f756e636520756e74696c2074726164696e6720686160448201527f73206265656e20656e61626c65642e00000000000000000000000000000000006064820152608401610aa9565b6013546116cb906001600160a01b031660006113a3565b601380546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6013546001600160a01b031633146117615760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b600a805460ff19166001179055565b6013546001600160a01b031633146117b85760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b80611847576001600160a01b03828116600081815260016020526040808220805460ff1916905560115490516380c581d160e01b815260048101939093526024830191909152620100009004909116906380c581d190604401600060405180830381600087803b15801561182b57600080fd5b505af115801561183f573d6000803e3d6000fd5b505050505050565b600254156118ae576203f48060025442611861919061398b565b116118ae5760405162461bcd60e51b815260206004820152600f60248201527f332044617920636f6f6c646f776e2e00000000000000000000000000000000006044820152606401610aa9565b6001600160a01b03821660009081526001602052604090205460ff16156119175760405162461bcd60e51b815260206004820152601b60248201527f5061697220616c726561647920616464656420746f206c6973742e00000000006044820152606401610aa9565b6001600160a01b03828116600081815260016020819052604091829020805460ff1916821790554260025560115491516380c581d160e01b815260048101939093526024830152620100009004909116906380c581d190604401600060405180830381600087803b15801561182b57600080fd5b6013546000906001600160a01b031633146119d65760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b600a546119f590309061010090046001600160a01b0316600019612869565b50600190565b6013546001600160a01b03163314611a435760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b60115460ff1615611a965760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610aa9565b601154610100900460ff16611aed5760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610aa9565b6011546201000090046001600160a01b0316611b1d576011805462010000600160b01b0319163062010000021790555b601154600b54604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260126064820152620100009092041690636c115c3490608401600060405180830381600087803b158015611b8f57600080fd5b505af1925050508015611ba0575060015b50601154600b546001600160a01b03908116600090815260208190526040908190205490516312d38e5760e11b815260048101919091526201000090920416906325a71cae9060240160408051808303816000875af1925050508015611c23575060408051601f3d908101601f19168201909252611c2091810190613a39565b60015b15611c3257600d91909155600e555b6011805460ff1990811660011790915560088054909116905542601255565b6000611c5e338484612962565b5060019392505050565b6013546001600160a01b03163314611cb05760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b601154610100900460ff1615611d1857306001600160a01b03821603611d185760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207377656570206e617469766520746f6b656e732e00000000006044820152606401610aa9565b6013546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa158015611d6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d939190613a5d565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611dde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e719190613a76565b6014546001600160a01b03163314611e6d5760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792062652063616c6c6564206279206f726967696e616c206460448201526732b83637bcb2b91760c11b6064820152608401610aa9565b6015546001600160a01b03168015611eaa576001600160a01b0381166000908152600460205260408120805460ff19169055611eaa9082906113a3565b601580546001600160a01b0319166001600160a01b0384169081179091556000908152600460205260409020805460ff19166001908117909155610baf9083906113a3565b6013546001600160a01b03163314611f375760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b600c805460ff60a81b1916600160a81b84151590810291909117909155600f805460ff19168315151790556040519081527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906020015b60405180910390a15050565b6013546001600160a01b03163314611fe25760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b601154610100900460ff161561203a5760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74206368616e6765206166746572206c69717569646974792e00006044820152606401610aa9565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561207f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a39190613a93565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121149190613a93565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561215f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121839190613a93565b600b546001600160a01b039081166000908152600160205260409020805460ff19169055909150811661231957816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122129190613a93565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561225f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122839190613a93565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156122d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f49190613a93565b600b80546001600160a01b0319166001600160a01b0392909216919091179055612335565b600b80546001600160a01b0319166001600160a01b0383161790555b600a805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600b5482166000908152600160208190526040909120805460ff191690911790559154610e71923092910416600019612869565b6013546001600160a01b031633146123e35760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b6001600160a01b0381166124395760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74206265207a65726f20616464726573732e0000000000000000006044820152606401610aa9565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6013546001600160a01b031633146124a35760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b601154610100900460ff16156124fb5760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e000000006044820152606401610aa9565b6013546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156115f1573d6000803e3d6000fd5b6013546001600160a01b0316331461257c5760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b828461258a6012600a613965565b61259890633b9aca00613974565b6125a29190613974565b6125ac91906139e8565b600d5580826125bd6012600a613965565b6125cb90633b9aca00613974565b6125d59190613974565b6125df91906139e8565b600e819055600d54111561263f5760405162461bcd60e51b815260206004820152602160248201527f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e746044820152601760f91b6064820152608401610aa9565b600b546001600160a01b031660009081526020819052604090205461271090612669906096613974565b61267391906139e8565b600e5411156126d05760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742062652061626f766520312e3525206f662063757272656e742060448201526228249760e91b6064820152608401610aa9565b620f42406126e06012600a613965565b6126ee90633b9aca00613974565b6126f891906139e8565b600e5410156127605760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610aa9565b620f42406127706012600a613965565b61277e90633b9aca00613974565b61278891906139e8565b600d5410156127f05760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610aa9565b50505050565b6013546001600160a01b0316331461283e5760405162461bcd60e51b81526020600482015260116024820152600080516020613b228339815191526044820152606401610aa9565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b0383166128b55760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610aa9565b6001600160a01b0382166129015760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610aa9565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166129c85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610aa9565b6001600160a01b038316612a2a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610aa9565b60008211612a8c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610aa9565b6001600160a01b0384166000908152600160205260408120548190819060ff1615612aba5760019250612ae8565b6001600160a01b03861660009081526001602052604090205460ff1615612ae45760019150612ae8565b5060015b612af28787612f03565b15612bf35760115460ff16612bf35780612b4e5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610aa9565b6001600160a01b03871660009081526005602052604090205460ff16158015612b9057506001600160a01b03861660009081526005602052604090205460ff16155b15612bf35760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b6064820152608401610aa9565b8115612cdd57600c54600160a01b900460ff16612cdd57600c54600160a81b900460ff168015612c3c57506001600160a01b03861660009081526007602052604090205460ff16155b8015612c6157506001600160a01b03871660009081526007602052604090205460ff16155b15612cdd5730600090815260208190526040902054600d548110612cdb57600e54600f5460ff1615612cc557601054600b546001600160a01b031660009081526020819052604090205461271091612cb891613974565b612cc291906139e8565b90505b808210612cd0578091505b612cd98261301a565b505b505b612ceb878787868686612cf6565b979650505050505050565b6001600160a01b03861660009081526006602052604081205460019060ff1680612d3857506001600160a01b03871660009081526006602052604090205460ff165b15612d41575060005b6001600160a01b03881660009081526020819052604081208054889290612d6990849061398b565b909155506000905081612d7c5786612d88565b612d888988888861325e565b9050806000808a6001600160a01b03166001600160a01b031681526020019081526020016000206000828254612dbe91906139d5565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e0a91815260200190565b60405180910390a3601154610100900460ff16612ef457612e2b898961336a565b601154610100900460ff16158015612e485750612e488989612f03565b8015612e6d57506001600160a01b03891660009081526005602052604090205460ff16155b8015612e9257506001600160a01b03881660009081526005602052604090205460ff16155b8015612e9c575083155b15612ef45760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b6064820152608401610aa9565b50600198975050505050505050565b6013546000906001600160a01b03848116911614801590612f3257506013546001600160a01b03838116911614155b8015612f4957506013546001600160a01b03163214155b8015612f6e57506001600160a01b03821660009081526004602052604090205460ff16155b8015612f9357506001600160a01b03831660009081526004602052604090205460ff16155b8015612faa57506001600160a01b03821661dead14155b8015612fbe57506001600160a01b03821615155b8015612fd357506001600160a01b0383163014155b8015612ff357506011546001600160a01b03848116620100009092041614155b801561301357506011546001600160a01b03838116620100009092041614155b9392505050565b600c805460ff60a01b1916600160a01b179055306000908152600360209081526040808320600a5461010090046001600160a01b031684529091529020546000191461309057306000908152600360209081526040808320600a5461010090046001600160a01b03168452909152902060001990555b60408051600280825260608201835260009260208301908036833701905050905030816000815181106130c5576130c561399e565b60200260200101906001600160a01b031690816001600160a01b031681525050600a60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613138573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061315c9190613a93565b8160018151811061316f5761316f61399e565b6001600160a01b039283166020918202929092010152600a5460405163791ac94760e01b81526101009091049091169063791ac947906131bc908590600090869030904290600401613ab0565b600060405180830381600087803b1580156131d657600080fd5b505af19250505080156131e7575060015b6131f1575061324e565b600c546040516000916001600160a01b03169061d6d890479084818181858888f193505050503d8060008114613243576040519150601f19603f3d011682016040523d82523d6000602084013e613248565b606091505b50505050505b50600c805460ff60a01b19169055565b6000808315613274575060095461ffff1661329e565b821561328d575060095462010000900461ffff1661329e565b50600954640100000000900461ffff165b806000036132af5784915050610cb9565b6011546201000090046001600160a01b0316301480156132d0575046606114155b156132da57506111945b60006127106132e98388613974565b6132f391906139e8565b9050801561336057306000908152602081905260408120805483929061331a9084906139d5565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b612ceb818761398b565b601154610100900460ff16156133ce5760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610aa9565b6133d88282612f03565b1580156133f25750600b546001600160a01b038281169116145b15610baf576001600160a01b038083166000908152600460209081526040808320805460ff19908116600190811790925560069093529220805490911690911790556011805461ff00191661010017908190556201000090041661346a576011805462010000600160b01b0319163062010000021790555b600c805460ff60a81b1916600160a81b179055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f914105325790602001611f8e565b600060208083528351808285015260005b818110156134db578581018301518582016040015282016134bf565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115f157600080fd5b6000806040838503121561352457600080fd5b823561352f816134fc565b946020939093013593505050565b60006020828403121561354f57600080fd5b8135613013816134fc565b6000806040838503121561356d57600080fd5b8235613578816134fc565b91506020830135613588816134fc565b809150509250929050565b6000806000606084860312156135a857600080fd5b83356135b3816134fc565b925060208401356135c3816134fc565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613613576136136135d4565b604052919050565b600067ffffffffffffffff821115613635576136356135d4565b5060051b60200190565b600082601f83011261365057600080fd5b813560206136656136608361361b565b6135ea565b82815260059290921b8401810191818101908684111561368457600080fd5b8286015b8481101561369f5780358352918301918301613688565b509695505050505050565b600080604083850312156136bd57600080fd5b823567ffffffffffffffff808211156136d557600080fd5b818501915085601f8301126136e957600080fd5b813560206136f96136608361361b565b82815260059290921b8401810191818101908984111561371857600080fd5b948201945b8386101561373f578535613730816134fc565b8252948201949082019061371d565b9650508601359250508082111561375557600080fd5b506137628582860161363f565b9150509250929050565b803561ffff8116811461377e57600080fd5b919050565b60008060006060848603121561379857600080fd5b6137a18461376c565b92506137af6020850161376c565b91506137bd6040850161376c565b90509250925092565b6000602082840312156137d857600080fd5b5035919050565b80151581146115f157600080fd5b6000806040838503121561380057600080fd5b823561380b816134fc565b91506020830135613588816137df565b6000806040838503121561382e57600080fd5b823561380b816137df565b6000806000806080858703121561384f57600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156138bc5781600019048211156138a2576138a261386b565b808516156138af57918102915b93841c9390800290613886565b509250929050565b6000826138d357506001610a5f565b816138e057506000610a5f565b81600181146138f657600281146139005761391c565b6001915050610a5f565b60ff8411156139115761391161386b565b50506001821b610a5f565b5060208310610133831016604e8410600b841016171561393f575081810a610a5f565b6139498383613881565b806000190482111561395d5761395d61386b565b029392505050565b600061301360ff8416836138c4565b8082028115828204841417610a5f57610a5f61386b565b81810381811115610a5f57610a5f61386b565b634e487b7160e01b600052603260045260246000fd5b600061ffff8083168181036139cb576139cb61386b565b6001019392505050565b80820180821115610a5f57610a5f61386b565b600082613a0557634e487b7160e01b600052601260045260246000fd5b500490565b60008060408385031215613a1d57600080fd5b8251613a28816134fc565b6020840151909250613588816134fc565b60008060408385031215613a4c57600080fd5b505080516020909101519092909150565b600060208284031215613a6f57600080fd5b5051919050565b600060208284031215613a8857600080fd5b8151613013816137df565b600060208284031215613aa557600080fd5b8151613013816134fc565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015613b005784516001600160a01b031683529383019391830191600101613adb565b50506001600160a01b0396909616606085015250505060800152939250505056fe43616c6c6572203d2f3d206f776e65722e000000000000000000000000000000a2646970667358221220f54c6da7ba1b7ec58ac9a219264530961d778ffe4d722b3705ddc749099eea9b64736f6c63430008130033

Deployed Bytecode Sourcemap

3889:19945:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5237:73;;;;;;;;;;;;5268:42;5237:73;;;;;-1:-1:-1;;;;;178:55:1;;;160:74;;148:2;133:18;5237:73:0;;;;;;;;5486:28;;;;;;;;;;;;;;;;;;;391:25:1;;;379:2;364:18;5486:28:0;245:177:1;4824:107:0;;;;;;;;;;-1:-1:-1;4824:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;633:6:1;666:15;;;648:34;;718:15;;;713:2;698:18;;691:43;770:15;;750:18;;;743:43;;;;611:2;596:18;4824:107:0;427:365:1;9746:80:0;;;;;;;;;;-1:-1:-1;9818:5:0;;;;;;;;;;;;-1:-1:-1;;;9818:5:0;;;;9746:80;;;;;;;:::i;5176:26::-;;;;;;;;;;-1:-1:-1;5176:26:0;;;;;;;-1:-1:-1;;;;;5176:26:0;;;5143;;;;;;;;;;-1:-1:-1;5143:26:0;;;;;;;;;;;1763:14:1;;1756:22;1738:41;;1726:2;1711:18;5143:26:0;1598:187:1;10354:161:0;;;;;;;;;;-1:-1:-1;10354:161:0;;;;;:::i;:::-;;:::i;13440:140::-;;;;;;;;;;-1:-1:-1;13440:140:0;;;;;:::i;:::-;-1:-1:-1;;;;;13538:34:0;13514:4;13538:34;;;:25;:34;;;;;;;;;13440:140;16143:809;;;;;;;;;;-1:-1:-1;16143:809:0;;;;;:::i;:::-;;:::i;:::-;;9481:83;;;;;;;;;;;;;:::i;11024:306::-;;;;;;;;;;-1:-1:-1;11024:306:0;;;;;:::i;:::-;;:::i;21784:447::-;;;;;;;;;;-1:-1:-1;21784:447:0;;;;;:::i;:::-;;:::i;5594:33::-;;;;;;;;;;;;;;;;13744:141;;;;;;;;;;;;;:::i;4940:42::-;;;;;;;;;;;;4978:4;4940:42;;5521:25;;;;;;;;;;;;;;;;9570:80;;;;;;;;;;-1:-1:-1;9570:80:0;;4635:2;6004:36:1;;5992:2;5977:18;9570:80:0;5862:184:1;14083:453:0;;;;;;;;;;-1:-1:-1;14083:453:0;;;;;:::i;:::-;;:::i;8864:221::-;;;;;;;;;;;;;:::i;5209:21::-;;;;;;;;;;-1:-1:-1;5209:21:0;;;;-1:-1:-1;;;;;5209:21:0;;;5634:34;;;;;;;;;;-1:-1:-1;5634:34:0;;;;;;;;14743:189;;;;;;;;;;-1:-1:-1;14743:189:0;;;;;:::i;:::-;;:::i;15647:217::-;;;;;;;;;;-1:-1:-1;15647:217:0;;;;;:::i;:::-;;:::i;7171:654::-;;;;;;;;;;-1:-1:-1;7171:654:0;;;;;:::i;:::-;;:::i;13163:127::-;;;;;;;;;;-1:-1:-1;13163:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;13254:28:0;13230:4;13254:28;;;:19;:28;;;;;;;;;13163:127;5675:36;;;;;;;;;;-1:-1:-1;5675:36:0;;;;;;;;;;;8189:23;;;;;;;;;;-1:-1:-1;8189:23:0;;;;-1:-1:-1;;;;;8189:23:0;;;13298:134;;;;;;;;;;-1:-1:-1;13298:134:0;;;;;:::i;:::-;;:::i;5748:26::-;;;;;;;;;;;;;;;;12598:557;;;;;;;;;;-1:-1:-1;12598:557:0;;;;;:::i;:::-;;:::i;10056:117::-;;;;;;;;;;-1:-1:-1;10056:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;10149:16:0;10122:7;10149:16;;;;;;;;;;;;10056:117;7833:310;;;;;;;;;;;;;:::i;5317:92::-;;;;;;;;;;-1:-1:-1;5317:92:0;;;;-1:-1:-1;;;;;5317:92:0;;;13893:182;;;;;;;;;;;;;:::i;12026:564::-;;;;;;;;;;-1:-1:-1;12026:564:0;;;;;:::i;:::-;;:::i;8151:31::-;;;;;;;;;;-1:-1:-1;8151:31:0;;;;-1:-1:-1;;;;;8151:31:0;;;9832:79;;;;;;;;;;-1:-1:-1;9902:6:0;;-1:-1:-1;;;;;9902:6:0;9832:79;;10841:175;;;;;;;;;;;;;:::i;20545:737::-;;;;;;;;;;;;;:::i;9656:84::-;;;;;;;;;;-1:-1:-1;9730:7:0;;;;;;;;;;;;-1:-1:-1;;;9730:7:0;;;;9656:84;;10181:165;;;;;;;;;;-1:-1:-1;10181:165:0;;;;;:::i;:::-;;:::i;21480:296::-;;;;;;;;;;-1:-1:-1;21480:296:0;;;;;:::i;:::-;;:::i;8374:482::-;;;;;;;;;;-1:-1:-1;8374:482:0;;;;;:::i;:::-;;:::i;5553:34::-;;;;;;;;;;-1:-1:-1;5553:34:0;;;;;;;;15872:263;;;;;;;;;;-1:-1:-1;15872:263:0;;;;;:::i;:::-;;:::i;9917:133::-;;;;;;;;;;-1:-1:-1;9917:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;10019:19:0;;;10001:7;10019:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9917:133;11338:680;;;;;;;;;;-1:-1:-1;11338:680:0;;;;;:::i;:::-;;:::i;14544:191::-;;;;;;;;;;-1:-1:-1;14544:191:0;;;;;:::i;:::-;;:::i;21290:182::-;;;;;;;;;;;;;:::i;14940:699::-;;;;;;;;;;-1:-1:-1;14940:699:0;;;;;:::i;:::-;;:::i;5440:39::-;;;;;;;;;;-1:-1:-1;5440:39:0;;;;-1:-1:-1;;;5440:39:0;;;;;;13588:148;;;;;;;;;;-1:-1:-1;13588:148:0;;;;;:::i;:::-;;:::i;10354:161::-;10431:4;10448:37;10457:10;10469:7;10478:6;10448:8;:37::i;:::-;-1:-1:-1;10503:4:0;10354:161;;;;;:::o;16143:809::-;7025:6;;-1:-1:-1;;;;;7025:6:0;7035:10;7025:20;7017:50;;;;-1:-1:-1;;;7017:50:0;;8723:2:1;7017:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7017:50:0;;;;;;;;;16247:23:::1;::::0;::::1;;16239:32;;;::::0;::::1;;-1:-1:-1::0;;;;;16290:23:0;::::1;16308:4;16290:23;::::0;::::1;::::0;:69:::1;;-1:-1:-1::0;;;;;;16335:24:0;::::1;16354:4;16335:24;;16290:69;:107;;;;-1:-1:-1::0;16381:6:0::1;::::0;-1:-1:-1;;;;;16381:16:0;;::::1;:6:::0;::::1;:16;;16290:107;:146;;;;-1:-1:-1::0;16419:6:0::1;::::0;-1:-1:-1;;;;;16419:17:0;;::::1;:6:::0;::::1;:17;;16290:146;16282:170;;;::::0;-1:-1:-1;;;16282:170:0;;9069:2:1;16282:170:0::1;::::0;::::1;9051:21:1::0;9108:2;9088:18;;;9081:30;-1:-1:-1;;;9127:18:1;;;9120:41;9178:18;;16282:170:0::1;8867:335:1::0;16282:170:0::1;16477:7;-1:-1:-1::0;;;;;16467:17:0::1;:6;-1:-1:-1::0;;;;;16467:17:0::1;::::0;16463:482:::1;;-1:-1:-1::0;;;;;16501:26:0;::::1;;::::0;;;:17:::1;:26;::::0;;;;;;;:33;;16530:4:::1;-1:-1:-1::0;;16501:33:0;;::::1;::::0;::::1;::::0;;;16549:16:::1;:25:::0;;;;;:32;;;;::::1;::::0;::::1;::::0;;16596:34:::1;::::0;16501:26;;16596:19:::1;:34::i;:::-;16143:809:::0;;:::o;16463:482::-:1;-1:-1:-1::0;;;;;16663:25:0;;::::1;;::::0;;;:17:::1;:25;::::0;;;;;;;:32;;16691:4:::1;-1:-1:-1::0;;16663:32:0;;::::1;::::0;::::1;::::0;;;16710:26;;::::1;::::0;;;;;;:33;;;::::1;::::0;::::1;::::0;;16758:24;;;:16:::1;:24:::0;;;;;;:31;;;::::1;::::0;::::1;::::0;;16804:25;;;;;;:32;;;;::::1;::::0;::::1;::::0;;;16851:33:::1;::::0;16663:25;;16851:19:::1;:33::i;:::-;16899:34;16919:7;16928:4;16899:19;:34::i;9481:83::-:0;9536:7;4696:13;4635:2;4696;:13;:::i;:::-;4679:30;;4476:13;4679:30;:::i;:::-;9547:14;;9481:83;:::o;11024:306::-;-1:-1:-1;;;;;11145:19:0;;11124:4;11145:19;;;:11;:19;;;;;;;;11165:10;11145:31;;;;;;;;-1:-1:-1;;11145:52:0;11141:126;;-1:-1:-1;;;;;11214:19:0;;;;;;:11;:19;;;;;;;;11234:10;11214:31;;;;;;;:41;;11249:6;;11214:19;:41;;11249:6;;11214:41;:::i;:::-;;;;-1:-1:-1;;11141:126:0;11286:36;11296:6;11304:9;11315:6;11286:9;:36::i;:::-;11279:43;11024:306;-1:-1:-1;;;;11024:306:0:o;21784:447::-;7025:6;;-1:-1:-1;;;;;7025:6:0;7035:10;7025:20;7017:50;;;;-1:-1:-1;;;7017:50:0;;8723:2:1;7017:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7017:50:0;8521:341:1;7017:50:0;21919:7:::1;:14;21900:8;:15;:33;21892:67;;;::::0;-1:-1:-1;;;21892:67:0;;11230:2:1;21892:67:0::1;::::0;::::1;11212:21:1::0;11269:2;11249:18;;;11242:30;11308:23;11288:18;;;11281:51;11349:18;;21892:67:0::1;11028:345:1::0;21892:67:0::1;21975:8;21970:254;21993:8;:15;21989:1;:19;;;21970:254;;;22074:13;4635:2;22074;:13;:::i;:::-;22063:7;22071:1;22063:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;22048:10;10122:7:::0;10149:16;;;;;;;;;;;22038:49:::1;;22030:80;;;::::0;-1:-1:-1;;;22030:80:0;;11712:2:1;22030:80:0::1;::::0;::::1;11694:21:1::0;11751:2;11731:18;;;11724:30;11790:20;11770:18;;;11763:48;11828:18;;22030:80:0::1;11510:342:1::0;22030:80:0::1;22125:87;22142:10;22154:8;22163:1;22154:11;;;;;;;;;;:::i;:::-;;;;;;;4635:2;22178;:13;;;;:::i;:::-;22167:7;22175:1;22167:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;22193:5;22200::::0;22207:4:::1;22125:16;:87::i;:::-;-1:-1:-1::0;22010:3:0;::::1;::::0;::::1;:::i;:::-;;;;21970:254;;;;21784:447:::0;;:::o;13744:141::-;13797:7;10149:16;;;;;;5268:42;10149:16;;;;13836:39;;10149:16;13836:39;:::i;:::-;4696:13;4635:2;4696;:13;:::i;:::-;4679:30;;4476:13;4679:30;:::i;:::-;13825:51;;;;:::i;14083:453::-;7025:6;;-1:-1:-1;;;;;7025:6:0;7035:10;7025:20;7017:50;;;;-1:-1:-1;;;7017:50:0;;8723:2:1;7017:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7017:50:0;8521:341:1;7017:50:0;14191:14:::1;::::0;::::1;;14190:15;14182:45;;;::::0;-1:-1:-1;;;14182:45:0;;12391:2:1;14182:45:0::1;::::0;::::1;12373:21:1::0;12430:2;12410:18;;;12403:30;12469:19;12449:18;;;12442:47;12506:18;;14182:45:0::1;12189:341:1::0;14182:45:0::1;4978:4;14246:6;:21;;;;:65;;;;;5028:4;14288:7;:23;;;;14246:65;:117;;;;;5082:4;14332:11;:31;;;;14246:117;14238:170;;;::::0;-1:-1:-1;;;14238:170:0;;12737:2:1;14238:170:0::1;::::0;::::1;12719:21:1::0;12776:2;12756:18;;;12749:30;12815:25;12795:18;;;12788:53;12858:18;;14238:170:0::1;12535:347:1::0;14238:170:0::1;14419:9;:25:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;14455:27:0;;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;-1:-1:-1::0;;14493:35:0::1;::::0;;;;::::1;;::::0;;;::::1;::::0;;14083:453::o;8864:221::-;8942:16;;-1:-1:-1;;;;;8942:16:0;8928:10;:30;8920:83;;;;-1:-1:-1;;;8920:83:0;;13089:2:1;8920:83:0;;;13071:21:1;13128:2;13108:18;;;13101:30;13167:34;13147:18;;;13140:62;-1:-1:-1;;;13218:18:1;;;13211:38;13266:19;;8920:83:0;12887:404:1;8920:83:0;9014:23;9034:1;9014:11;:23::i;:::-;9048:16;:29;;-1:-1:-1;;;;;;9048:29:0;;;8864:221::o;14743:189::-;14872:6;;-1:-1:-1;;;;;14872:6:0;14834:7;10149:16;;;;;;;;;;;5129:5;;14862:41;;14882:21;;14862:41;:::i;:::-;14861:62;;;;:::i;15647:217::-;7025:6;;-1:-1:-1;;;;;7025:6:0;7035:10;7025:20;7017:50;;;;-1:-1:-1;;;7017:50:0;;8723:2:1;7017:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7017:50:0;8521:341:1;7017:50:0;15777:3:::1;15751:22;:29;;15743:64;;;::::0;-1:-1:-1;;;15743:64:0;;13720:2:1;15743:64:0::1;::::0;::::1;13702:21:1::0;13759:2;13739:18;;;13732:30;13798:24;13778:18;;;13771:52;13840:18;;15743:64:0::1;13518:346:1::0;15743:64:0::1;15818:13;:38:::0;15647:217::o;7171:654::-;7025:6;;-1:-1:-1;;;;;7025:6:0;7035:10;7025:20;7017:50;;;;-1:-1:-1;;;7017:50:0;;8723:2:1;7017:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7017:50:0;8521:341:1;7017:50:0;-1:-1:-1;;;;;7250:22:0;::::1;7242:96;;;::::0;-1:-1:-1;;;7242:96:0;;14071:2:1;7242:96:0::1;::::0;::::1;14053:21:1::0;14110:2;14090:18;;;14083:30;14149:34;14129:18;;;14122:62;14220:31;14200:18;;;14193:59;14269:19;;7242:96:0::1;13869:425:1::0;7242:96:0::1;-1:-1:-1::0;;;;;;;7357:16:0;::::1;::::0;7349:90:::1;;;::::0;-1:-1:-1;;;7349:90:0;;14071:2:1;7349:90:0::1;::::0;::::1;14053:21:1::0;14110:2;14090:18;;;14083:30;14149:34;14129:18;;;14122:62;14220:31;14200:18;;;14193:59;14269:19;;7349:90:0::1;13869:425:1::0;7349:90:0::1;7470:6;::::0;7450:34:::1;::::0;-1:-1:-1;;;;;7470:6:0::1;;7450:19;:34::i;:::-;7495:35;7515:8;7525:4;7495:19;:35::i;:::-;7565:6;::::0;-1:-1:-1;;;;;7565:6:0::1;7575:1;10149:16:::0;;;;;;;;;;;7555:21;7551:127:::1;;7610:6;::::0;-1:-1:-1;;;;;7610:6:0::1;10122:7:::0;10149:16;;;;;;;;;;;7593:73:::1;::::0;7610:6;7618:8;;7628:17:::1;10056:117:::0;7593:73:::1;;7551:127;7717:6;::::0;;-1:-1:-1;;;;;7734:17:0;;::::1;-1:-1:-1::0;;;;;;7734:17:0;::::1;::::0;::::1;::::0;;;7767:40:::1;::::0;7717:6;::::1;::::0;7734:17;7717:6;;7767:40:::1;::::0;7698:16:::1;::::0;7767:40:::1;7231:594;7171:654:::0;:::o;13298:134::-;7025:6;;-1:-1:-1;;;;;7025:6:0;7035:10;7025:20;7017:50;;;;-1:-1:-1;;;7017:50:0;;8723:2:1;7017:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7017:50:0;8521:341:1;7017:50:0;-1:-1:-1;;;;;13386:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:38;;-1:-1:-1;;13386:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13298:134::o;12598:557::-;7025:6;;-1:-1:-1;;;;;7025:6:0;7035:10;7025:20;7017:50;;;;-1:-1:-1;;;7017:50:0;;8723:2:1;7017:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7017:50:0;8521:341:1;7017:50:0;12673:14:::1;::::0;::::1;;12672:15;12664:24;;;::::0;::::1;;12723:4;-1:-1:-1::0;;;;;12707:21:0;::::1;::::0;12699:48:::1;;;::::0;-1:-1:-1;;;12699:48:0;;14501:2:1;12699:48:0::1;::::0;::::1;14483:21:1::0;14540:2;14520:18;;;14513:30;14579:16;14559:18;;;14552:44;14613:18;;12699:48:0::1;14299:338:1::0;12699:48:0::1;12758:11;:31:::0;;-1:-1:-1;;;;;;12758:31:0::1;::::0;-1:-1:-1;;;;;12758:31:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;12804:23:::1;::::0;;-1:-1:-1;;;12804:23:0;;;;:11;;;::::1;::::0;;::::1;::::0;:21:::1;::::0;:23:::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;12804:11:0;:23:::1;;;;;;;;;;-1:-1:-1::0;12804:23:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;12804:23:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;12800:348;;13137:8;::::0;::::1;12800:348;12891:9;:29:::0;;-1:-1:-1;;12891:29:0::1;;-1:-1:-1::0;;;;;12891:29:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;12922:6:::1;:22:::0;;-1:-1:-1;;;;;;12922:22:0::1;::::0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;12946:15:0;;;-1:-1:-1;12946:15:0::1;::::0;;;;;;;:22;;-1:-1:-1;;12946:22:0::1;::::0;;::::1;::::0;;12993:6:::1;::::0;13009:9;;12984:55:::1;::::0;12993:6;::::1;::::0;13009:9;;::::1;;-1:-1:-1::0;;12984:8:0::1;:55::i;:::-;13086:9;::::0;13054:62:::1;::::0;13071:4:::1;::::0;13086:9:::1;::::0;::::1;-1:-1:-1::0;;;;;13086:9:0::1;-1:-1:-1::0;;13054:8:0::1;:62::i;12800:348::-;12598:557:::0;:::o;7833:310::-;7025:6;;-1:-1:-1;;;;;7025:6:0;7035:10;7025:20;7017:50;;;;-1:-1:-1;;;7017:50:0;;8723:2:1;7017:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7017:50:0;8521:341:1;7017:50:0;7900:14:::1;::::0;::::1;;7892:74;;;::::0;-1:-1:-1;;;7892:74:0;;15234:2:1;7892:74:0::1;::::0;::::1;15216:21:1::0;15273:2;15253:18;;;15246:30;15312:34;15292:18;;;15285:62;15383:17;15363:18;;;15356:45;15418:19;;7892:74:0::1;15032:411:1::0;7892:74:0::1;7997:6;::::0;7977:34:::1;::::0;-1:-1:-1;;;;;7997:6:0::1;;7977:19;:34::i;:::-;8041:6;::::0;;-1:-1:-1;;;;;;8058:19:0;::::1;::::0;;;8093:42:::1;::::0;-1:-1:-1;;;;;8041:6:0;;::::1;::::0;8022:16:::1;::::0;8041:6;;8093:42:::1;::::0;8022:16;;8093:42:::1;7881:262;7833:310::o:0;13893:182::-;7025:6;;-1:-1:-1;;;;;7025:6:0;7035:10;7025:20;7017:50;;;;-1:-1:-1;;;7017:50:0;;8723:2:1;7017:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7017:50:0;8521:341:1;7017:50:0;14046:14:::1;:21:::0;;-1:-1:-1;;14046:21:0::1;14063:4;14046:21;::::0;;13893:182::o;12026:564::-;7025:6;;-1:-1:-1;;;;;7025:6:0;7035:10;7025:20;7017:50;;;;-1:-1:-1;;;7017:50:0;;8723:2:1;7017:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7017:50:0;8521:341:1;7017:50:0;12108:7:::1;12103:480;;-1:-1:-1::0;;;;;12132:13:0;;::::1;12148:5;12132:13:::0;;;:7:::1;:13;::::0;;;;;:21;;-1:-1:-1;;12132:21:0::1;::::0;;12168:11:::1;::::0;:34;;-1:-1:-1;;;12168:34:0;;::::1;::::0;::::1;15616:74:1::0;;;;15706:18;;;15699:50;;;;12168:11:0;;::::1;::::0;;::::1;::::0;:21:::1;::::0;15589:18:1;;12168:34:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16143:809:::0;;:::o;12103:480::-:1;12239:17;::::0;:22;12235:135:::1;;12328:6;12308:17;;12290:15;:35;;;;:::i;:::-;:44;12282:72;;;::::0;-1:-1:-1;;;12282:72:0;;15962:2:1;12282:72:0::1;::::0;::::1;15944:21:1::0;16001:2;15981:18;;;15974:30;16040:17;16020:18;;;16013:45;16075:18;;12282:72:0::1;15760:339:1::0;12282:72:0::1;-1:-1:-1::0;;;;;12393:13:0;::::1;;::::0;;;:7:::1;:13;::::0;;;;;::::1;;12392:14;12384:54;;;::::0;-1:-1:-1;;;12384:54:0;;16306:2:1;12384:54:0::1;::::0;::::1;16288:21:1::0;16345:2;16325:18;;;16318:30;16384:29;16364:18;;;16357:57;16431:18;;12384:54:0::1;16104:351:1::0;12384:54:0::1;-1:-1:-1::0;;;;;12453:13:0;;::::1;;::::0;;;12469:4:::1;12453:13;::::0;;;;;;;;:20;;-1:-1:-1;;12453:20:0::1;::::0;::::1;::::0;;12508:15:::1;12488:17;:35:::0;12538:11:::1;::::0;:33;;-1:-1:-1;;;12538:33:0;;::::1;::::0;::::1;15616:74:1::0;;;;15706:18;;;15699:50;12538:11:0;;::::1;::::0;;::::1;::::0;:21:::1;::::0;15589:18:1;;12538:33:0::1;;;;;;;;;;;;;;;;;::::0;::::1;10841:175:::0;7025:6;;10907:4;;-1:-1:-1;;;;;7025:6:0;7035:10;7025:20;7017:50;;;;-1:-1:-1;;;7017:50:0;;8723:2:1;7017:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7017:50:0;8521:341:1;7017:50:0;10956:9:::1;::::0;10924:62:::1;::::0;10941:4:::1;::::0;10956:9:::1;::::0;::::1;-1:-1:-1::0;;;;;10956:9:0::1;-1:-1:-1::0;;10924:8:0::1;:62::i;:::-;-1:-1:-1::0;11004:4:0::1;10841:175:::0;:::o;20545:737::-;7025:6;;-1:-1:-1;;;;;7025:6:0;7035:10;7025:20;7017:50;;;;-1:-1:-1;;;7017:50:0;;8723:2:1;7017:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7017:50:0;8521:341:1;7017:50:0;20607:14:::1;::::0;::::1;;20606:15;20598:52;;;::::0;-1:-1:-1;;;20598:52:0;;16662:2:1;20598:52:0::1;::::0;::::1;16644:21:1::0;16701:2;16681:18;;;16674:30;16740:26;16720:18;;;16713:54;16784:18;;20598:52:0::1;16460:348:1::0;20598:52:0::1;20669:16;::::0;::::1;::::0;::::1;;;20661:53;;;::::0;-1:-1:-1;;;20661:53:0;;17015:2:1;20661:53:0::1;::::0;::::1;16997:21:1::0;17054:2;17034:18;;;17027:30;17093:26;17073:18;;;17066:54;17137:18;;20661:53:0::1;16813:348:1::0;20661:53:0::1;20737:11;::::0;;;::::1;-1:-1:-1::0;;;;;20737:11:0::1;20725:106;;20779:11;:40:::0;;-1:-1:-1;;;;;;20779:40:0::1;20813:4;20779:40:::0;::::1;;::::0;;20725:106:::1;20845:11;::::0;20867:6:::1;::::0;20845:87:::1;::::0;-1:-1:-1;;;20845:87:0;;-1:-1:-1;;;;;20867:6:0;;::::1;20845:87;::::0;::::1;17389:74:1::0;17511:10;20882:12:0::1;17499:23:1::0;17479:18;;;17472:51;17571:18;20904:15:0::1;17559:31:1::0;17539:18;;;17532:59;4635:2:0::1;17607:18:1::0;;;17600:45;20845:11:0;;;::::1;;::::0;:21:::1;::::0;17361:19:1;;20845:87:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;-1:-1:-1::0;20958:11:0::1;::::0;20989:6:::1;::::0;-1:-1:-1;;;;;20989:6:0;;::::1;10122:7:::0;10149:16;;;;;;;;;;;;;20958:39;;-1:-1:-1;;;20958:39:0;;::::1;::::0;::::1;391:25:1::0;;;;20958:11:0;;;::::1;;::::0;:20:::1;::::0;364:18:1;;20958:39:0::1;::::0;::::1;;;;;;;;;;;;;;;;;-1:-1:-1::0;20958:39:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;20958:39:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;20954:207:::0;::::1;;21069:13;:29:::0;;;;21113:10:::1;:27:::0;20954:207:::1;21171:14;:21:::0;;-1:-1:-1;;21171:21:0;;::::1;21188:4;21171:21;::::0;;;21203:23:::1;:31:::0;;;;::::1;::::0;;21259:15:::1;21245:11;:29:::0;20545:737::o;10181:165::-;10259:4;10276:40;10286:10;10298:9;10309:6;10276:9;:40::i;:::-;-1:-1:-1;10334:4:0;;10181:165;-1:-1:-1;;;10181:165:0:o;21480:296::-;7025:6;;-1:-1:-1;;;;;7025:6:0;7035:10;7025:20;7017:50;;;;-1:-1:-1;;;7017:50:0;;8723:2:1;7017:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7017:50:0;8521:341:1;7017:50:0;21558:16:::1;::::0;::::1;::::0;::::1;;;21554:111;;;21616:4;-1:-1:-1::0;;;;;21599:22:0;::::1;::::0;21591:62:::1;;;::::0;-1:-1:-1;;;21591:62:0;;18108:2:1;21591:62:0::1;::::0;::::1;18090:21:1::0;18147:2;18127:18;;;18120:30;18186:29;18166:18;;;18159:57;18233:18;;21591:62:0::1;17906:351:1::0;21591:62:0::1;21729:6;::::0;21737:30:::1;::::0;-1:-1:-1;;;21737:30:0;;21761:4:::1;21737:30;::::0;::::1;160:74:1::0;21697:5:0;;-1:-1:-1;;;;;21714:14:0;;::::1;::::0;::::1;::::0;21729:6;;;::::1;::::0;21714:14;;21737:15:::1;::::0;133:18:1;;21737:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21714:54;::::0;-1:-1:-1;;;;;;21714:54:0::1;::::0;;;;;;-1:-1:-1;;;;;18643:55:1;;;21714:54:0::1;::::0;::::1;18625:74:1::0;18715:18;;;18708:34;18598:18;;21714:54:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;8374:482::-:0;8456:16;;-1:-1:-1;;;;;8456:16:0;8442:10;:30;8434:83;;;;-1:-1:-1;;;8434:83:0;;13089:2:1;8434:83:0;;;13071:21:1;13128:2;13108:18;;;13101:30;13167:34;13147:18;;;13140:62;-1:-1:-1;;;13218:18:1;;;13211:38;13266:19;;8434:83:0;12887:404:1;8434:83:0;8550:8;;-1:-1:-1;;;;;8550:8:0;8573:25;;8569:150;;-1:-1:-1;;;;;8615:30:0;;8648:5;8615:30;;;:17;:30;;;;;:38;;-1:-1:-1;;8615:38:0;;;8668:39;;8633:11;;8668:19;:39::i;:::-;8729:8;:22;;-1:-1:-1;;;;;;8729:22:0;-1:-1:-1;;;;;8729:22:0;;;;;;;;-1:-1:-1;8762:30:0;;;:17;:30;;;;;:37;;-1:-1:-1;;8762:37:0;-1:-1:-1;8762:37:0;;;;;;8810:38;;8729:22;;8810:19;:38::i;15872:263::-;7025:6;;-1:-1:-1;;;;;7025:6:0;7035:10;7025:20;7017:50;;;;-1:-1:-1;;;7017:50:0;;8723:2:1;7017:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7017:50:0;8521:341:1;7017:50:0;15981:19:::1;:33:::0;;-1:-1:-1;;;;15981:33:0::1;-1:-1:-1::0;;;15981:33:0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;16025:22:::1;:47:::0;;-1:-1:-1;;16025:47:0::1;::::0;::::1;;;::::0;;16088:39:::1;::::0;1738:41:1;;;16088:39:0::1;::::0;1726:2:1;1711:18;16088:39:0::1;;;;;;;;15872:263:::0;;:::o;11338:680::-;7025:6;;-1:-1:-1;;;;;7025:6:0;7035:10;7025:20;7017:50;;;;-1:-1:-1;;;7017:50:0;;8723:2:1;7017:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7017:50:0;8521:341:1;7017:50:0;11418:16:::1;::::0;::::1;::::0;::::1;;;11417:17;11409:60;;;::::0;-1:-1:-1;;;11409:60:0;;19205:2:1;11409:60:0::1;::::0;::::1;19187:21:1::0;19244:2;19224:18;;;19217:30;19283:32;19263:18;;;19256:60;19333:18;;11409:60:0::1;19003:354:1::0;11409:60:0::1;11480:20;11513:9;11480:43;;11534:16;11564:10;-1:-1:-1::0;;;;;11564:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11553:40:0::1;;11602:4;11609:10;-1:-1:-1::0;;;;;11609:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11553:74;::::0;-1:-1:-1;;;;;;11553:74:0::1;::::0;;;;;;-1:-1:-1;;;;;19871:15:1;;;11553:74:0::1;::::0;::::1;19853:34:1::0;19923:15;;19903:18;;;19896:43;19765:18;;11553:74:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11646:6;::::0;-1:-1:-1;;;;;11646:6:0;;::::1;11656:5;11638:15:::0;;;:7:::1;:15;::::0;;;;:23;;-1:-1:-1;;11638:23:0::1;::::0;;11534:93;;-1:-1:-1;11676:22:0;::::1;11672:200;;11735:10;-1:-1:-1::0;;;;;11735:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11724:43:0::1;;11776:4;11783:10;-1:-1:-1::0;;;;;11783:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11724:77;::::0;-1:-1:-1;;;;;;11724:77:0::1;::::0;;;;;;-1:-1:-1;;;;;19871:15:1;;;11724:77:0::1;::::0;::::1;19853:34:1::0;19923:15;;19903:18;;;19896:43;19765:18;;11724:77:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11715:6;:86:::0;;-1:-1:-1;;;;;;11715:86:0::1;-1:-1:-1::0;;;;;11715:86:0;;;::::1;::::0;;;::::1;::::0;;11672:200:::1;;;11843:6;:17:::0;;-1:-1:-1;;;;;;11843:17:0::1;-1:-1:-1::0;;;;;11843:17:0;::::1;;::::0;;11672:200:::1;11882:9;:22:::0;;-1:-1:-1;;11882:22:0::1;;-1:-1:-1::0;;;;;11882:22:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;11923:6:::1;::::0;;::::1;-1:-1:-1::0;11915:15:0;;;-1:-1:-1;11915:15:0::1;::::0;;;;;;;:22;;-1:-1:-1;;11915:22:0::1;::::0;;::::1;::::0;;11980:9;;11948:62:::1;::::0;11965:4:::1;::::0;11980:9;::::1;;-1:-1:-1::0;;11948:8:0::1;:62::i;14544:191::-:0;7025:6;;-1:-1:-1;;;;;7025:6:0;7035:10;7025:20;7017:50;;;;-1:-1:-1;;;7017:50:0;;8723:2:1;7017:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7017:50:0;8521:341:1;7017:50:0;-1:-1:-1;;;;;14629:23:0;::::1;14621:59;;;::::0;-1:-1:-1;;;14621:59:0;;20152:2:1;14621:59:0::1;::::0;::::1;20134:21:1::0;20191:2;20171:18;;;20164:30;20230:25;20210:18;;;20203:53;20273:18;;14621:59:0::1;19950:347:1::0;14621:59:0::1;14691:15;:36:::0;;-1:-1:-1;;;;;;14691:36:0::1;-1:-1:-1::0;;;;;14691:36:0;;;::::1;::::0;;;::::1;::::0;;14544:191::o;21290:182::-;7025:6;;-1:-1:-1;;;;;7025:6:0;7035:10;7025:20;7017:50;;;;-1:-1:-1;;;7017:50:0;;8723:2:1;7017:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7017:50:0;8521:341:1;7017:50:0;21357:16:::1;::::0;::::1;::::0;::::1;;;21356:17;21348:58;;;::::0;-1:-1:-1;;;21348:58:0;;20504:2:1;21348:58:0::1;::::0;::::1;20486:21:1::0;20543:2;20523:18;;;20516:30;20582;20562:18;;;20555:58;20630:18;;21348:58:0::1;20302:352:1::0;21348:58:0::1;21425:6;::::0;21417:47:::1;::::0;-1:-1:-1;;;;;21425:6:0;;::::1;::::0;21442:21:::1;21417:47:::0;::::1;;;::::0;21425:6:::1;21417:47:::0;21425:6;21417:47;21442:21;21425:6;21417:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;14940:699:::0;7025:6;;-1:-1:-1;;;;;7025:6:0;7035:10;7025:20;7017:50;;;;-1:-1:-1;;;7017:50:0;;8723:2:1;7017:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7017:50:0;8521:341:1;7017:50:0;15140:16;15120;4696:13:::1;4635:2;4696;:13;:::i;:::-;4679:30;::::0;4476:13:::1;4679:30;:::i;:::-;15110:26;;;;:::i;:::-;15109:47;;;;:::i;:::-;15093:13;:63:::0;15208:13;15191;4696::::1;4635:2;4696;:13;:::i;:::-;4679:30;::::0;4476:13:::1;4679:30;:::i;:::-;15181:23;;;;:::i;:::-;15180:41;;;;:::i;:::-;15167:10;:54:::0;;;15240:13:::1;::::0;:27:::1;;15232:73;;;::::0;-1:-1:-1;;;15232:73:0;;20861:2:1;15232:73:0::1;::::0;::::1;20843:21:1::0;20900:2;20880:18;;;20873:30;20939:34;20919:18;;;20912:62;-1:-1:-1;;;20990:18:1;;;20983:31;21031:19;;15232:73:0::1;20659:397:1::0;15232:73:0::1;15349:6;::::0;-1:-1:-1;;;;;15349:6:0::1;10122:7:::0;10149:16;;;;;;;;;;;5129:5:::1;::::0;15339:23:::1;::::0;15359:3:::1;15339:23;:::i;:::-;15338:44;;;;:::i;:::-;15324:10;;:58;;15316:106;;;::::0;-1:-1:-1;;;15316:106:0;;21263:2:1;15316:106:0::1;::::0;::::1;21245:21:1::0;21302:2;21282:18;;;21275:30;21341:34;21321:18;;;21314:62;-1:-1:-1;;;21392:18:1;;;21385:33;21435:19;;15316:106:0::1;21061:399:1::0;15316:106:0::1;15465:9;4696:13;4635:2;4696;:13;:::i;:::-;4679:30;::::0;4476:13:::1;4679:30;:::i;:::-;15455:19;;;;:::i;:::-;15441:10;;:33;;15433:92;;;::::0;-1:-1:-1;;;15433:92:0;;21667:2:1;15433:92:0::1;::::0;::::1;21649:21:1::0;21706:2;21686:18;;;21679:30;21745:34;21725:18;;;21718:62;-1:-1:-1;;;21796:18:1;;;21789:44;21850:19;;15433:92:0::1;21465:410:1::0;15433:92:0::1;15571:9;4696:13;4635:2;4696;:13;:::i;:::-;4679:30;::::0;4476:13:::1;4679:30;:::i;:::-;15561:19;;;;:::i;:::-;15544:13;;:36;;15536:95;;;::::0;-1:-1:-1;;;15536:95:0;;21667:2:1;15536:95:0::1;::::0;::::1;21649:21:1::0;21706:2;21686:18;;;21679:30;21745:34;21725:18;;;21718:62;-1:-1:-1;;;21796:18:1;;;21789:44;21850:19;;15536:95:0::1;21465:410:1::0;15536:95:0::1;14940:699:::0;;;;:::o;13588:148::-;7025:6;;-1:-1:-1;;;;;7025:6:0;7035:10;7025:20;7017:50;;;;-1:-1:-1;;;7017:50:0;;8723:2:1;7017:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7017:50:0;8521:341:1;7017:50:0;-1:-1:-1;;;;;13684:34:0;;;::::1;;::::0;;;:25:::1;:34;::::0;;;;:44;;-1:-1:-1;;13684:44:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13588:148::o;10523:310::-;-1:-1:-1;;;;;10618:20:0;;10610:52;;;;-1:-1:-1;;;10610:52:0;;22082:2:1;10610:52:0;;;22064:21:1;22121:2;22101:18;;;22094:30;-1:-1:-1;;;22140:18:1;;;22133:49;22199:18;;10610:52:0;21880:343:1;10610:52:0;-1:-1:-1;;;;;10681:21:0;;10673:53;;;;-1:-1:-1;;;10673:53:0;;22082:2:1;10673:53:0;;;22064:21:1;22121:2;22101:18;;;22094:30;-1:-1:-1;;;22140:18:1;;;22133:49;22199:18;;10673:53:0;21880:343:1;10673:53:0;-1:-1:-1;;;;;10739:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;10792:33;;391:25:1;;;10792:33:0;;364:18:1;10792:33:0;;;;;;;10523:310;;;:::o;17414:1783::-;17493:4;-1:-1:-1;;;;;17518:18:0;;17510:68;;;;-1:-1:-1;;;17510:68:0;;22430:2:1;17510:68:0;;;22412:21:1;22469:2;22449:18;;;22442:30;22508:34;22488:18;;;22481:62;-1:-1:-1;;;22559:18:1;;;22552:35;22604:19;;17510:68:0;22228:401:1;17510:68:0;-1:-1:-1;;;;;17597:16:0;;17589:64;;;;-1:-1:-1;;;17589:64:0;;22836:2:1;17589:64:0;;;22818:21:1;22875:2;22855:18;;;22848:30;22914:34;22894:18;;;22887:62;-1:-1:-1;;;22965:18:1;;;22958:33;23008:19;;17589:64:0;22634:399:1;17589:64:0;17681:1;17672:6;:10;17664:64;;;;-1:-1:-1;;;17664:64:0;;23240:2:1;17664:64:0;;;23222:21:1;23279:2;23259:18;;;23252:30;23318:34;23298:18;;;23291:62;-1:-1:-1;;;23369:18:1;;;23362:39;23418:19;;17664:64:0;23038:405:1;17664:64:0;-1:-1:-1;;;;;17827:13:0;;17739:8;17827:13;;;:7;:13;;;;;;17739:8;;;;17827:13;;17823:162;;;17863:4;17857:10;;17823:162;;;-1:-1:-1;;;;;17889:11:0;;;;;;:7;:11;;;;;;;;17885:100;;;17924:4;17917:11;;17885:100;;;-1:-1:-1;17969:4:0;17885:100;17999:20;18010:4;18016:2;17999:10;:20::i;:::-;17995:371;;;18040:14;;;;18036:319;;18080:5;18075:265;;18110:34;;-1:-1:-1;;;18110:34:0;;23650:2:1;18110:34:0;;;23632:21:1;23689:2;23669:18;;;23662:30;23728:26;23708:18;;;23701:54;23772:18;;18110:34:0;23448:348:1;18075:265:0;-1:-1:-1;;;;;18175:31:0;;;;;;:25;:31;;;;;;;;18174:32;:66;;;;-1:-1:-1;;;;;;18211:29:0;;;;;;:25;:29;;;;;;;;18210:30;18174:66;18170:170;;;18265:55;;-1:-1:-1;;;18265:55:0;;24003:2:1;18265:55:0;;;23985:21:1;24042:2;24022:18;;;24015:30;24081:34;24061:18;;;24054:62;-1:-1:-1;;;24132:18:1;;;24125:43;24185:19;;18265:55:0;23801:409:1;18170:170:0;18382:4;18378:742;;;18408:6;;-1:-1:-1;;;18408:6:0;;;;18403:706;;18439:19;;-1:-1:-1;;;18439:19:0;;;;:64;;;;-1:-1:-1;;;;;;18483:20:0;;;;;;:16;:20;;;;;;;;18482:21;18439:64;:111;;;;-1:-1:-1;;;;;;18528:22:0;;;;;;:16;:22;;;;;;;;18527:23;18439:111;18435:659;;;18642:4;18593:28;10149:16;;;;;;;;;;;18699:13;;18675:37;;18671:404;;18759:10;;18800:22;;;;18796:97;;;18857:13;;18847:6;;-1:-1:-1;;;;;18847:6:0;10122:7;10149:16;;;;;;;;;;;5129:5;;18837:33;;;:::i;:::-;18836:54;;;;:::i;:::-;18826:64;;18796:97;18947:7;18923:20;:31;18919:72;;18981:7;18958:30;;18919:72;19017:34;19030:20;19017:12;:34::i;:::-;18714:361;18671:404;18570:524;18435:659;19137:52;19154:4;19160:2;19164:6;19172:3;19177:4;19183:5;19137:16;:52::i;:::-;19130:59;17414:1783;-1:-1:-1;;;;;;;17414:1783:0:o;22239:817::-;-1:-1:-1;;;;;22409:25:0;;22358:4;22409:25;;;:19;:25;;;;;;22390:4;;22409:25;;;:52;;-1:-1:-1;;;;;;22438:23:0;;;;;;:19;:23;;;;;;;;22409:52;22405:99;;;-1:-1:-1;22487:5:0;22405:99;-1:-1:-1;;;;;22514:13:0;;:7;:13;;;;;;;;;;:23;;22531:6;;22514:7;:23;;22531:6;;22514:23;:::i;:::-;;;;-1:-1:-1;22548:22:0;;-1:-1:-1;22574:7:0;22573:55;;22622:6;22573:55;;;22585:34;22595:4;22601:6;22609:3;22614:4;22585:9;:34::i;:::-;22548:80;;22654:14;22639:7;:11;22647:2;-1:-1:-1;;;;;22639:11:0;-1:-1:-1;;;;;22639:11:0;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;22699:2;-1:-1:-1;;;;;22684:34:0;22693:4;-1:-1:-1;;;;;22684:34:0;;22703:14;22684:34;;;;391:25:1;;379:2;364:18;;245:177;22684:34:0;;;;;;;;22734:16;;;;;;;22729:298;;22767:28;22786:4;22792:2;22767:18;:28::i;:::-;22815:16;;;;;;;22814:17;:41;;;;;22835:20;22846:4;22852:2;22835:10;:20::i;:::-;22814:77;;;;-1:-1:-1;;;;;;22860:31:0;;;;;;:25;:31;;;;;;;;22859:32;22814:77;:111;;;;-1:-1:-1;;;;;;22896:29:0;;;;;;:25;:29;;;;;;;;22895:30;22814:111;:121;;;;;22930:5;22929:6;22814:121;22810:206;;;22956:44;;-1:-1:-1;;;22956:44:0;;24417:2:1;22956:44:0;;;24399:21:1;24456:2;24436:18;;;24429:30;24495:34;24475:18;;;24468:62;-1:-1:-1;;;24546:18:1;;;24539:32;24588:19;;22956:44:0;24215:398:1;22810:206:0;-1:-1:-1;23044:4:0;;22239:817;-1:-1:-1;;;;;;;;22239:817:0:o;16960:446::-;17061:6;;17029:4;;-1:-1:-1;;;;;17053:14:0;;;17061:6;;17053:14;;;;:43;;-1:-1:-1;17090:6:0;;-1:-1:-1;;;;;17084:12:0;;;17090:6;;17084:12;;17053:43;:79;;;;-1:-1:-1;17126:6:0;;-1:-1:-1;;;;;17126:6:0;17113:9;:19;;17053:79;:118;;;;-1:-1:-1;;;;;;17150:21:0;;;;;;:17;:21;;;;;;;;17149:22;17053:118;:159;;;;-1:-1:-1;;;;;;17189:23:0;;;;;;:17;:23;;;;;;;;17188:24;17053:159;:186;;;;-1:-1:-1;;;;;;17229:10:0;;5268:42;17229:10;;17053:186;:219;;;;-1:-1:-1;;;;;;17256:16:0;;;;17053:219;:257;;;;-1:-1:-1;;;;;;17289:21:0;;17305:4;17289:21;;17053:257;:302;;;;-1:-1:-1;17343:11:0;;-1:-1:-1;;;;;17327:28:0;;;17343:11;;;;;17327:28;;17053:302;:345;;;;-1:-1:-1;17386:11:0;;-1:-1:-1;;;;;17372:26:0;;;17386:11;;;;;17372:26;;17053:345;17046:352;16960:446;-1:-1:-1;;;16960:446:0:o;19205:761::-;5939:6;:13;;-1:-1:-1;;;;5939:13:0;-1:-1:-1;;;5939:13:0;;;19312:4:::1;5939:13:::0;19292:26;;;:11:::1;:26;::::0;;;;;;;19327:9:::1;::::0;5939:13;19327:9;::::1;-1:-1:-1::0;;;;;19327:9:0::1;19292:46:::0;;;;;;;;-1:-1:-1;;19292:67:0::1;19288:166;;19396:4;19376:26;::::0;;;:11:::1;:26;::::0;;;;;;;19411:9:::1;::::0;::::1;::::0;::::1;-1:-1:-1::0;;;;;19411:9:0::1;19376:46:::0;;;;;;;-1:-1:-1;;19376:66:0;;19288:166:::1;19498:16;::::0;;19512:1:::1;19498:16:::0;;;;;::::1;::::0;;19474:21:::1;::::0;19498:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;19498:16:0::1;19474:40;;19543:4;19525;19530:1;19525:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;19525:23:0::1;;;-1:-1:-1::0;;;;;19525:23:0::1;;;::::0;::::1;19569:9;;;;;;;;;-1:-1:-1::0;;;;;19569:9:0::1;-1:-1:-1::0;;;;;19569:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19559:4;19564:1;19559:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19559:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;19602:9:::1;::::0;:199:::1;::::0;-1:-1:-1;;;19602:199:0;;:9:::1;::::0;;::::1;::::0;;::::1;::::0;:60:::1;::::0;:199:::1;::::0;19677:20;;19712:1:::1;::::0;19728:4;;19755::::1;::::0;19775:15:::1;::::0;19602:199:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;19598:246;;19826:7;;;19598:246;19892:15;::::0;:66:::1;::::0;19856:12:::1;::::0;-1:-1:-1;;;;;19892:15:0::1;::::0;19948:5:::1;::::0;19920:21:::1;::::0;19856:12;19892:66;19856:12;19892:66;19920:21;19892:15;19948:5;19892:66:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;5963:1:0::1;-1:-1:-1::0;5975:6:0;:14;;-1:-1:-1;;;;5975:14:0;;;19205:761::o;23064:767::-;23152:7;23172:18;23205:3;23201:205;;;-1:-1:-1;23238:9:0;:16;;;23201:205;;;23276:4;23272:134;;;-1:-1:-1;23310:9:0;:17;;;;;;23272:134;;;-1:-1:-1;23373:9:0;:21;;;;;;23272:134;23420:10;23434:1;23420:15;23416:39;;23446:6;23439:13;;;;;23416:39;23477:11;;;;;-1:-1:-1;;;;;23477:11:0;23501:4;23469:37;:73;;;;;23523:13;23540:2;23523:19;;23469:73;23465:101;;;-1:-1:-1;23559:4:0;23465:101;23576:17;5129:5;23596:19;23605:10;23596:6;:19;:::i;:::-;:38;;;;:::i;:::-;23576:58;-1:-1:-1;23649:13:0;;23645:141;;23695:4;23679:7;:22;;;;;;;;;;:35;;23705:9;;23679:7;:35;;23705:9;;23679:35;:::i;:::-;;;;-1:-1:-1;;23734:40:0;;391:25:1;;;23757:4:0;;-1:-1:-1;;;;;23734:40:0;;;;;379:2:1;364:18;23734:40:0;;;;;;;23645:141;23805:18;23814:9;23805:6;:18;:::i;19974:563::-;20057:16;;;;;;;20056:17;20048:65;;;;-1:-1:-1;;;20048:65:0;;26061:2:1;20048:65:0;;;26043:21:1;26100:2;26080:18;;;26073:30;26139:34;26119:18;;;26112:62;-1:-1:-1;;;26190:18:1;;;26183:33;26233:19;;20048:65:0;25859:399:1;20048:65:0;20129:20;20140:4;20146:2;20129:10;:20::i;:::-;20128:21;:37;;;;-1:-1:-1;20159:6:0;;-1:-1:-1;;;;;20153:12:0;;;20159:6;;20153:12;20128:37;20124:406;;;-1:-1:-1;;;;;20182:23:0;;;;;;;:17;:23;;;;;;;;:30;;-1:-1:-1;;20182:30:0;;;20208:4;20182:30;;;;;;20227:19;:25;;;;;:32;;;;;;;;;;20274:16;:23;;-1:-1:-1;;20274:23:0;20182:30;20274:23;;;;;20324:11;;;;20312:114;;20370:11;:40;;-1:-1:-1;;;;;;20370:40:0;20404:4;20370:40;;;;;20312:114;20440:19;:26;;-1:-1:-1;;;;20440:26:0;-1:-1:-1;;;20440:26:0;;;20486:32;;-1:-1:-1;1738:41:1;;20486:32:0;;1726:2:1;1711:18;20486:32:0;1598:187:1;797:548;909:4;938:2;967;956:9;949:21;999:6;993:13;1042:6;1037:2;1026:9;1022:18;1015:34;1067:1;1077:140;1091:6;1088:1;1085:13;1077:140;;;1186:14;;;1182:23;;1176:30;1152:17;;;1171:2;1148:26;1141:66;1106:10;;1077:140;;;1081:3;1266:1;1261:2;1252:6;1241:9;1237:22;1233:31;1226:42;1336:2;1329;1325:7;1320:2;1312:6;1308:15;1304:29;1293:9;1289:45;1285:54;1277:62;;;;797:548;;;;:::o;1790:154::-;-1:-1:-1;;;;;1869:5:1;1865:54;1858:5;1855:65;1845:93;;1934:1;1931;1924:12;1949:315;2017:6;2025;2078:2;2066:9;2057:7;2053:23;2049:32;2046:52;;;2094:1;2091;2084:12;2046:52;2133:9;2120:23;2152:31;2177:5;2152:31;:::i;:::-;2202:5;2254:2;2239:18;;;;2226:32;;-1:-1:-1;;;1949:315:1:o;2269:247::-;2328:6;2381:2;2369:9;2360:7;2356:23;2352:32;2349:52;;;2397:1;2394;2387:12;2349:52;2436:9;2423:23;2455:31;2480:5;2455:31;:::i;2521:388::-;2589:6;2597;2650:2;2638:9;2629:7;2625:23;2621:32;2618:52;;;2666:1;2663;2656:12;2618:52;2705:9;2692:23;2724:31;2749:5;2724:31;:::i;:::-;2774:5;-1:-1:-1;2831:2:1;2816:18;;2803:32;2844:33;2803:32;2844:33;:::i;:::-;2896:7;2886:17;;;2521:388;;;;;:::o;2914:456::-;2991:6;2999;3007;3060:2;3048:9;3039:7;3035:23;3031:32;3028:52;;;3076:1;3073;3066:12;3028:52;3115:9;3102:23;3134:31;3159:5;3134:31;:::i;:::-;3184:5;-1:-1:-1;3241:2:1;3226:18;;3213:32;3254:33;3213:32;3254:33;:::i;:::-;2914:456;;3306:7;;-1:-1:-1;;;3360:2:1;3345:18;;;;3332:32;;2914:456::o;3375:127::-;3436:10;3431:3;3427:20;3424:1;3417:31;3467:4;3464:1;3457:15;3491:4;3488:1;3481:15;3507:275;3578:2;3572:9;3643:2;3624:13;;-1:-1:-1;;3620:27:1;3608:40;;3678:18;3663:34;;3699:22;;;3660:62;3657:88;;;3725:18;;:::i;:::-;3761:2;3754:22;3507:275;;-1:-1:-1;3507:275:1:o;3787:183::-;3847:4;3880:18;3872:6;3869:30;3866:56;;;3902:18;;:::i;:::-;-1:-1:-1;3947:1:1;3943:14;3959:4;3939:25;;3787:183::o;3975:662::-;4029:5;4082:3;4075:4;4067:6;4063:17;4059:27;4049:55;;4100:1;4097;4090:12;4049:55;4136:6;4123:20;4162:4;4186:60;4202:43;4242:2;4202:43;:::i;:::-;4186:60;:::i;:::-;4280:15;;;4366:1;4362:10;;;;4350:23;;4346:32;;;4311:12;;;;4390:15;;;4387:35;;;4418:1;4415;4408:12;4387:35;4454:2;4446:6;4442:15;4466:142;4482:6;4477:3;4474:15;4466:142;;;4548:17;;4536:30;;4586:12;;;;4499;;4466:142;;;-1:-1:-1;4626:5:1;3975:662;-1:-1:-1;;;;;;3975:662:1:o;4642:1215::-;4760:6;4768;4821:2;4809:9;4800:7;4796:23;4792:32;4789:52;;;4837:1;4834;4827:12;4789:52;4877:9;4864:23;4906:18;4947:2;4939:6;4936:14;4933:34;;;4963:1;4960;4953:12;4933:34;5001:6;4990:9;4986:22;4976:32;;5046:7;5039:4;5035:2;5031:13;5027:27;5017:55;;5068:1;5065;5058:12;5017:55;5104:2;5091:16;5126:4;5150:60;5166:43;5206:2;5166:43;:::i;5150:60::-;5244:15;;;5326:1;5322:10;;;;5314:19;;5310:28;;;5275:12;;;;5350:19;;;5347:39;;;5382:1;5379;5372:12;5347:39;5406:11;;;;5426:217;5442:6;5437:3;5434:15;5426:217;;;5522:3;5509:17;5539:31;5564:5;5539:31;:::i;:::-;5583:18;;5459:12;;;;5621;;;;5426:217;;;5662:5;-1:-1:-1;;5705:18:1;;5692:32;;-1:-1:-1;;5736:16:1;;;5733:36;;;5765:1;5762;5755:12;5733:36;;5788:63;5843:7;5832:8;5821:9;5817:24;5788:63;:::i;:::-;5778:73;;;4642:1215;;;;;:::o;6051:159::-;6118:20;;6178:6;6167:18;;6157:29;;6147:57;;6200:1;6197;6190:12;6147:57;6051:159;;;:::o;6215:328::-;6289:6;6297;6305;6358:2;6346:9;6337:7;6333:23;6329:32;6326:52;;;6374:1;6371;6364:12;6326:52;6397:28;6415:9;6397:28;:::i;:::-;6387:38;;6444:37;6477:2;6466:9;6462:18;6444:37;:::i;:::-;6434:47;;6500:37;6533:2;6522:9;6518:18;6500:37;:::i;:::-;6490:47;;6215:328;;;;;:::o;6548:180::-;6607:6;6660:2;6648:9;6639:7;6635:23;6631:32;6628:52;;;6676:1;6673;6666:12;6628:52;-1:-1:-1;6699:23:1;;6548:180;-1:-1:-1;6548:180:1:o;6733:118::-;6819:5;6812:13;6805:21;6798:5;6795:32;6785:60;;6841:1;6838;6831:12;6856:382;6921:6;6929;6982:2;6970:9;6961:7;6957:23;6953:32;6950:52;;;6998:1;6995;6988:12;6950:52;7037:9;7024:23;7056:31;7081:5;7056:31;:::i;:::-;7106:5;-1:-1:-1;7163:2:1;7148:18;;7135:32;7176:30;7135:32;7176:30;:::i;7490:376::-;7552:6;7560;7613:2;7601:9;7592:7;7588:23;7584:32;7581:52;;;7629:1;7626;7619:12;7581:52;7668:9;7655:23;7687:28;7709:5;7687:28;:::i;8131:385::-;8217:6;8225;8233;8241;8294:3;8282:9;8273:7;8269:23;8265:33;8262:53;;;8311:1;8308;8301:12;8262:53;-1:-1:-1;;8334:23:1;;;8404:2;8389:18;;8376:32;;-1:-1:-1;8455:2:1;8440:18;;8427:32;;8506:2;8491:18;8478:32;;-1:-1:-1;8131:385:1;-1:-1:-1;8131:385:1:o;9207:127::-;9268:10;9263:3;9259:20;9256:1;9249:31;9299:4;9296:1;9289:15;9323:4;9320:1;9313:15;9339:422;9428:1;9471:5;9428:1;9485:270;9506:7;9496:8;9493:21;9485:270;;;9565:4;9561:1;9557:6;9553:17;9547:4;9544:27;9541:53;;;9574:18;;:::i;:::-;9624:7;9614:8;9610:22;9607:55;;;9644:16;;;;9607:55;9723:22;;;;9683:15;;;;9485:270;;;9489:3;9339:422;;;;;:::o;9766:806::-;9815:5;9845:8;9835:80;;-1:-1:-1;9886:1:1;9900:5;;9835:80;9934:4;9924:76;;-1:-1:-1;9971:1:1;9985:5;;9924:76;10016:4;10034:1;10029:59;;;;10102:1;10097:130;;;;10009:218;;10029:59;10059:1;10050:10;;10073:5;;;10097:130;10134:3;10124:8;10121:17;10118:43;;;10141:18;;:::i;:::-;-1:-1:-1;;10197:1:1;10183:16;;10212:5;;10009:218;;10311:2;10301:8;10298:16;10292:3;10286:4;10283:13;10279:36;10273:2;10263:8;10260:16;10255:2;10249:4;10246:12;10242:35;10239:77;10236:159;;;-1:-1:-1;10348:19:1;;;10380:5;;10236:159;10427:34;10452:8;10446:4;10427:34;:::i;:::-;10497:6;10493:1;10489:6;10485:19;10476:7;10473:32;10470:58;;;10508:18;;:::i;:::-;10546:20;;9766:806;-1:-1:-1;;;9766:806:1:o;10577:140::-;10635:5;10664:47;10705:4;10695:8;10691:19;10685:4;10664:47;:::i;10722:168::-;10795:9;;;10826;;10843:15;;;10837:22;;10823:37;10813:71;;10864:18;;:::i;10895:128::-;10962:9;;;10983:11;;;10980:37;;;10997:18;;:::i;11378:127::-;11439:10;11434:3;11430:20;11427:1;11420:31;11470:4;11467:1;11460:15;11494:4;11491:1;11484:15;11857:197;11895:3;11923:6;11964:2;11957:5;11953:14;11991:2;11982:7;11979:15;11976:41;;11997:18;;:::i;:::-;12046:1;12033:15;;11857:197;-1:-1:-1;;;11857:197:1:o;12059:125::-;12124:9;;;12145:10;;;12142:36;;;12158:18;;:::i;13296:217::-;13336:1;13362;13352:132;;13406:10;13401:3;13397:20;13394:1;13387:31;13441:4;13438:1;13431:15;13469:4;13466:1;13459:15;13352:132;-1:-1:-1;13498:9:1;;13296:217::o;14642:385::-;14721:6;14729;14782:2;14770:9;14761:7;14757:23;14753:32;14750:52;;;14798:1;14795;14788:12;14750:52;14830:9;14824:16;14849:31;14874:5;14849:31;:::i;:::-;14949:2;14934:18;;14928:25;14899:5;;-1:-1:-1;14962:33:1;14928:25;14962:33;:::i;17656:245::-;17735:6;17743;17796:2;17784:9;17775:7;17771:23;17767:32;17764:52;;;17812:1;17809;17802:12;17764:52;-1:-1:-1;;17835:16:1;;17891:2;17876:18;;;17870:25;17835:16;;17870:25;;-1:-1:-1;17656:245:1:o;18262:184::-;18332:6;18385:2;18373:9;18364:7;18360:23;18356:32;18353:52;;;18401:1;18398;18391:12;18353:52;-1:-1:-1;18424:16:1;;18262:184;-1:-1:-1;18262:184:1:o;18753:245::-;18820:6;18873:2;18861:9;18852:7;18848:23;18844:32;18841:52;;;18889:1;18886;18879:12;18841:52;18921:9;18915:16;18940:28;18962:5;18940:28;:::i;19362:251::-;19432:6;19485:2;19473:9;19464:7;19460:23;19456:32;19453:52;;;19501:1;19498;19491:12;19453:52;19533:9;19527:16;19552:31;19577:5;19552:31;:::i;24618:1026::-;24880:4;24928:3;24917:9;24913:19;24959:6;24948:9;24941:25;24985:2;25023:6;25018:2;25007:9;25003:18;24996:34;25066:3;25061:2;25050:9;25046:18;25039:31;25090:6;25125;25119:13;25156:6;25148;25141:22;25194:3;25183:9;25179:19;25172:26;;25233:2;25225:6;25221:15;25207:29;;25254:1;25264:218;25278:6;25275:1;25272:13;25264:218;;;25343:13;;-1:-1:-1;;;;;25339:62:1;25327:75;;25457:15;;;;25422:12;;;;25300:1;25293:9;25264:218;;;-1:-1:-1;;;;;;;25538:55:1;;;;25533:2;25518:18;;25511:83;-1:-1:-1;;;25625:3:1;25610:19;25603:35;25499:3;24618:1026;-1:-1:-1;;;24618:1026:1:o

Swarm Source

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