BNB Price: $622.47 (+3.16%)
 

Overview

Max Total Supply

100,000,000,000AD

Holders

4,501 (0.00%)

Market

Price

$0.00 @ 0.000000 BNB

Onchain Market Cap

$304,000.00

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 4 Decimals)

Filtered by Token Holder
Binance: BUSD Stablecoin
Balance
30,000,000 AD

Value
$91.20 ( ~0.14651211415458 BNB) [0.0300%]
0xe9e7cea3dedca5984780bafc599bd69add087d56
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

The Angel Dust launchpad on the marketplace also makes it easier for new users to launch their own NFT and create their own NFT sale.

Market

Volume (24H):$0.20
Market Capitalization:$0.00
Circulating Supply:0.00 AD
Market Data Source: Coinmarketcap


Update? Click here to update the token ICO / general information

Contract Source Code Verified (Exact Match)

Contract Name:
ANGELDUST

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license
/**
 *Submitted for verification at BscScan.com on 2022-09-20
*/

// SPDX-License-Identifier: UNLICENSED

pragma solidity 0.8.15;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

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

abstract contract Auth {
    address internal owner;
    address internal potentialOwner;
    mapping (address => bool) internal authorizations;

    event Authorize_Wallet(address Wallet, bool Status);

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    function authorize(address adr) external onlyOwner {
        authorizations[adr] = true;
        emit Authorize_Wallet(adr,true);
    }

    function unauthorize(address adr) external onlyOwner {
        require(adr != owner, "OWNER cant be unauthorized");
        authorizations[adr] = false;
        emit Authorize_Wallet(adr,false);
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    function transferOwnership(address payable adr) external onlyOwner {
        require(adr != owner, "Already the owner");
        require(adr != address(0), "Can not be zero address.");
        potentialOwner = adr;
        emit OwnershipNominated(adr);
    }

    function acceptOwnership() external {
        require(msg.sender == potentialOwner, "You must be nominated as potential owner before you can accept the role.");
        authorizations[owner] = false;
        authorizations[potentialOwner] = true;

        emit Authorize_Wallet(owner,false);
        emit Authorize_Wallet(potentialOwner,true);
        
        owner = potentialOwner;
        potentialOwner = address(0);
        emit OwnershipTransferred(owner);
    }

    event OwnershipTransferred(address owner);
    event OwnershipNominated(address potentialOwner);
}

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

interface IDEXRouter {
    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 swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract ANGELDUST is BEP20, Auth {
    using SafeMath for uint256;

    address immutable WBNB;
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO = 0x0000000000000000000000000000000000000000;

    string public constant name = "Angel Dust";
    string public constant symbol = "AD";
    uint8 public constant decimals = 4;

    uint256 public constant totalSupply = 100 * 10**9 * 10**decimals;

    uint256 public _maxTxAmount = totalSupply / 100;
    uint256 public _maxWalletToken = totalSupply / 100;

    mapping (address => uint256) public balanceOf;
    mapping (address => mapping (address => uint256)) _allowances;

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

    uint256 public liquidityFee = 0;
    uint256 public marketingFee = 30;
    uint256 public teamFee = 10;
    uint256 public developmentFee = 10;
    uint256 public totalFee = marketingFee + liquidityFee + teamFee + developmentFee;
    uint256 public constant feeDenominator = 1000;

    uint256 sellMultiplier = 100;
    uint256 buyMultiplier = 100;
    uint256 transferMultiplier = 100;

    address public marketingFeeReceiver;
    address public teamFeeReceiver;
    address public developmentFeeReceiver;

    IDEXRouter public router;
    address public immutable pair;

    bool public tradingOpen = false;
    bool public launchMode = true;

    bool public swapEnabled = false;
    uint256 public swapThreshold = totalSupply / 500;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        WBNB = router.WETH();

        pair = IDEXFactory(router.factory()).createPair(WBNB, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        marketingFeeReceiver = msg.sender;
        developmentFeeReceiver = msg.sender;
        teamFeeReceiver = msg.sender;

        isFeeExempt[msg.sender] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[DEAD] = true;
        isTxLimitExempt[ZERO] = true;

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

        balanceOf[msg.sender] = totalSupply;
        emit Transfer(address(0), msg.sender, totalSupply);
    }

    receive() external payable { }

    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 approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

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

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

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

        return _transferFrom(sender, recipient, amount);
    }

    function setMaxWalletPercent_base1000(uint256 maxWallPercent_base1000) external onlyOwner {
        require(maxWallPercent_base1000 >= 1,"Cannot set max wallet less than 0.1%");
        _maxWalletToken = (totalSupply * maxWallPercent_base1000 ) / 1000;
        emit config_MaxWallet(_maxWalletToken);
    }
    function setMaxTxPercent_base1000(uint256 maxTXPercentage_base1000) external onlyOwner {
        require(maxTXPercentage_base1000 >= 1,"Cannot set max transaction less than 0.1%");
        _maxTxAmount = (totalSupply * maxTXPercentage_base1000 ) / 1000;
        emit config_MaxTransaction(_maxTxAmount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!authorizations[sender] && !authorizations[recipient]){
            require(tradingOpen,"Trading not open yet");
        }

        if (!authorizations[sender] && !isWalletLimitExempt[sender] && !isWalletLimitExempt[recipient] && recipient != pair) {
            require((balanceOf[recipient] + amount) <= _maxWalletToken,"max wallet limit reached");
        }
    
        // Checks max transaction limit
        require((amount <= _maxTxAmount) || isTxLimitExempt[sender] || isTxLimitExempt[recipient], "Max TX Limit Exceeded");

        if(shouldSwapBack()){ swapBack(); }

        balanceOf[sender] = balanceOf[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient);

        balanceOf[recipient] = balanceOf[recipient].add(amountReceived);


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

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        if(amount == 0 || totalFee == 0){
            return amount;
        }

        uint256 multiplier = transferMultiplier;

        if(recipient == pair) {
            multiplier = sellMultiplier;
        } else if(sender == pair) {
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);

        if(feeAmount > 0){
            balanceOf[address(this)] = balanceOf[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && balanceOf[address(this)] >= swapThreshold;
    }

    function clearStuckBalance(uint256 amountPercentage) external onlyOwner {
        require(amountPercentage < 101, "Max 100%");
        uint256 amountBNB = address(this).balance;
        uint256 amountToClear = ( amountBNB * amountPercentage ) / 100;
        payable(msg.sender).transfer(amountToClear);
        emit BalanceClear(amountToClear);
    }

    function clearStuckToken(address tokenAddress, uint256 tokens) external onlyOwner returns (bool success) {
        require(tokenAddress != address(this), "tokenAddress can not be the native token");

        if(tokens == 0){
            tokens = BEP20(tokenAddress).balanceOf(address(this));
        }

        emit clearToken(tokenAddress, tokens);

        return BEP20(tokenAddress).transfer(msg.sender, tokens);
    }

    // switch Trading
    function tradingStatus(bool _status) external onlyOwner {
        if(!_status){
            require(launchMode,"Cannot stop trading after launch is done");
        }
        tradingOpen = _status;
        emit config_TradingStatus(tradingOpen);
    }

    function tradingStatus_launchmode(uint256 confirm) external onlyOwner {
        require(confirm == 123123,"Accidental Press");
        require(tradingOpen,"Cant close launch mode when trading is disabled");
        launchMode = false;
        emit config_LaunchMode(launchMode);
    }

    function swapBack() internal swapping {

        uint256 totalBNBFee = totalFee;

        uint256 amountToLiquify = (swapThreshold * liquidityFee)/(totalBNBFee * 2);
        uint256 amountToSwap = swapThreshold - amountToLiquify;

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

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

        uint256 amountBNB = address(this).balance;

         totalBNBFee = totalBNBFee - (liquidityFee / 2);
        
        uint256 amountBNBLiquidity = (amountBNB * liquidityFee) / (totalBNBFee * 2);
        uint256 amountBNBMarketing = (amountBNB * marketingFee) / totalBNBFee;
        uint256 amountBNBteam = (amountBNB * teamFee) / totalBNBFee;
        uint256 amountBNBDevelopment = (amountBNB * developmentFee) / totalBNBFee;

        payable(marketingFeeReceiver).transfer(amountBNBMarketing);
        payable(teamFeeReceiver).transfer(amountBNBteam);
        payable(developmentFeeReceiver).transfer(amountBNBDevelopment);

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

    function manage_FeeExempt(address[] calldata addresses, bool status) external authorized {
        require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
        for (uint256 i=0; i < addresses.length; ++i) {
            isFeeExempt[addresses[i]] = status;
            emit Wallet_feeExempt(addresses[i], status);
        }
    }

    function manage_TxLimitExempt(address[] calldata addresses, bool status) external authorized {
        require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
        for (uint256 i=0; i < addresses.length; ++i) {
            isTxLimitExempt[addresses[i]] = status;
            emit Wallet_txExempt(addresses[i], status);
        }
    }

    function manage_WalletLimitExempt(address[] calldata addresses, bool status) external authorized {
        require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
        for (uint256 i=0; i < addresses.length; ++i) {
            isWalletLimitExempt[addresses[i]] = status;
            emit Wallet_holdingExempt(addresses[i], status);
        }
    }

    function update_fees() internal {
        if(!launchMode){
            require(totalFee.mul(buyMultiplier).div(100) <= 100, "Buy tax cannot be more than 10%");
            require(totalFee.mul(sellMultiplier).div(100) <= 150, "Sell tax cannot be more than 15%");
            require(totalFee.mul(transferMultiplier).div(100) <= 100, "Transfer Tax cannot be more than 10%");    
        }

        emit UpdateFee( uint8(totalFee.mul(buyMultiplier).div(100)),
            uint8(totalFee.mul(sellMultiplier).div(100)),
            uint8(totalFee.mul(transferMultiplier).div(100))
            );
    }

    function setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external authorized {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;

        update_fees();
    }

    function setFees_base1000(uint256 _liquidityFee,  uint256 _marketingFee, uint256 _teamFee, uint256 _developmentFee) external onlyOwner {
        liquidityFee = _liquidityFee;
        marketingFee = _marketingFee;
        teamFee = _teamFee;
        developmentFee = _developmentFee;
        totalFee = _liquidityFee + _marketingFee + _teamFee + _developmentFee;
        
        update_fees();
    }

    function setFeeReceivers(address _marketingFeeReceiver, address _teamFeeReceiver, address _developmentFeeReceiver) external onlyOwner {
        require(_marketingFeeReceiver != address(0),"Marketing fee address cannot be zero address");
        require(_teamFeeReceiver != address(0),"Team fee address cannot be zero address");
        require(_developmentFeeReceiver != address(0),"Development fee address cannot be zero address");

        marketingFeeReceiver = _marketingFeeReceiver;
        teamFeeReceiver = _teamFeeReceiver;
        developmentFeeReceiver = _developmentFeeReceiver;

        emit Set_Wallets(marketingFeeReceiver, teamFeeReceiver, developmentFeeReceiver);
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        require(_amount < (totalSupply/10), "Amount too high");

        swapEnabled = _enabled;
        swapThreshold = _amount;

        emit config_SwapSettings(swapThreshold, swapEnabled);
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return (totalSupply - balanceOf[DEAD] - balanceOf[ZERO]);
    }


function multiTransfer(address from, address[] calldata addresses, uint256[] calldata tokens) external authorized {
    if(msg.sender != from){
        require(launchMode,"Cannot execute this after launch is done");
    }

    require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
    require(addresses.length == tokens.length,"Mismatch between address and token count");

    uint256 SCCC = 0;

    for(uint i=0; i < addresses.length; i++){
        SCCC = SCCC + tokens[i];
    }

    require(balanceOf[from] >= SCCC, "Not enough tokens in wallet");

    for(uint i=0; i < addresses.length; i++){
        _basicTransfer(from,addresses[i],tokens[i]);
    }
}

event AutoLiquify(uint256 amountBNB, uint256 amountTokens);
event UpdateFee(uint8 Buy, uint8 Sell, uint8 Transfer);
event Wallet_feeExempt(address Wallet, bool Status);
event Wallet_txExempt(address Wallet, bool Status);
event Wallet_holdingExempt(address Wallet, bool Status);

event BalanceClear(uint256 amount);
event clearToken(address TokenAddressCleared, uint256 Amount);

event Set_Wallets(address MarketingWallet, address TeamWallet, address DevelopmentWallet);
event Set_Wallets_Dev(address DevWallet);

event config_MaxWallet(uint256 maxWallet);
event config_MaxTransaction(uint256 maxWallet);
event config_TradingStatus(bool Status);
event config_LaunchMode(bool Status);
event config_SwapSettings(uint256 Amount, bool Enabled);

}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"Authorize_Wallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"BalanceClear","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"potentialOwner","type":"address"}],"name":"OwnershipNominated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"MarketingWallet","type":"address"},{"indexed":false,"internalType":"address","name":"TeamWallet","type":"address"},{"indexed":false,"internalType":"address","name":"DevelopmentWallet","type":"address"}],"name":"Set_Wallets","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"DevWallet","type":"address"}],"name":"Set_Wallets_Dev","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"Buy","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Sell","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Transfer","type":"uint8"}],"name":"UpdateFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"Wallet_feeExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"Wallet_holdingExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"Wallet_txExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"clearToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"config_LaunchMode","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"config_MaxTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"config_MaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"Enabled","type":"bool"}],"name":"config_SwapSettings","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"config_TradingStatus","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"developmentFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"developmentFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_FeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_TxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_WalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"multiTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"},{"internalType":"address","name":"_developmentFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_developmentFee","type":"uint256"}],"name":"setFees_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercentage_base1000","type":"uint256"}],"name":"setMaxTxPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base1000","type":"uint256"}],"name":"setMaxWalletPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"confirm","type":"uint256"}],"name":"tradingStatus_launchmode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526064620000146004600a6200056b565b620000259064174876e80062000583565b620000319190620005a5565b6003556064620000446004600a6200056b565b620000559064174876e80062000583565b620000619190620005a5565b6004556000600a55601e600b55600a600c55600a600d55600d54600c54600a54600b54620000909190620005c8565b6200009c9190620005c8565b620000a89190620005c8565b600e556064600f81905560108190556011556015805462ffffff60a01b1916600160a81b1790556101f4620000e06004600a6200056b565b620000f19064174876e80062000583565b620000fd9190620005a5565b6016553480156200010d57600080fd5b5060008054336001600160a01b031991821681178355825260026020908152604092839020805460ff19166001179055601580547310ed43c718714eb63d5aa57b78b54704e256024e93168317905582516315ab88c960e31b81529251919263ad5c464892600480830193928290030181865afa15801562000193573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b99190620005e3565b6001600160a01b039081166080526015546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156200020a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002309190620005e3565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000282573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a89190620005e3565b6001600160a01b0390811660a0523060008181526006602090815260408083206015549095168352938152838220600019905560128054336001600160a01b03199182168117909255601480548216831790556013805490911682179055825260078152838220805460ff1990811660019081179092556008835285842080548216831790557f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd0933429980548216831790557f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c7805482168317905560099092528483208054831682179055928252928120805484168317905561dead90527f960b1051749987b45b5679007fff577a1c2f763ec21c15a6c5eb1930750037858054909216179055620003da6004600a6200056b565b620003eb9064174876e80062000583565b33600081815260056020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200042e6004600a6200056b565b6200043f9064174876e80062000583565b60405190815260200160405180910390a36200060e565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004ad57816000190482111562000491576200049162000456565b808516156200049f57918102915b93841c939080029062000471565b509250929050565b600082620004c65750600162000565565b81620004d55750600062000565565b8160018114620004ee5760028114620004f95762000519565b600191505062000565565b60ff8411156200050d576200050d62000456565b50506001821b62000565565b5060208310610133831016604e8410600b84101617156200053e575081810a62000565565b6200054a83836200046c565b806000190482111562000561576200056162000456565b0290505b92915050565b60006200057c60ff841683620004b5565b9392505050565b6000816000190483118215151615620005a057620005a062000456565b500290565b600082620005c357634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115620005de57620005de62000456565b500190565b600060208284031215620005f657600080fd5b81516001600160a01b03811681146200057c57600080fd5b60805160a05161343c62000650600039600081816107be015281816121f6015281816126f801528181612b090152612b3d01526000612803015261343c6000f3fe6080604052600436106103015760003560e01c806378109e5411610190578063bd9ab537116100dc578063e96fada211610095578063f2fde38b1161006f578063f2fde38b1461098d578063f887ea40146109ad578063fe9fbb80146109cd578063ffb54a99146109ed57600080fd5b8063e96fada21461092d578063efa5e3471461094d578063f0b37c041461096d57600080fd5b8063bd9ab53714610841578063c867d60b14610861578063d7c0103214610891578063d7c94efd146108b1578063dd62ed3e146108c7578063df20fd491461090d57600080fd5b806398118cb411610149578063a8aa1b3111610123578063a8aa1b31146107ac578063a9059cbb146107e0578063b37dd69014610800578063b6a5d7de1461082157600080fd5b806398118cb4146107605780639cd1aef114610776578063a5f3d0031461079657600080fd5b806378109e54146106a357806379ba5097146106b95780637d1db4a5146106ce578063893d20e8146106e45780638b42507f1461070257806395d89b411461073257600080fd5b80632b112e491161024f578063571ac8b0116102085780636ddd1713116101e25780636ddd1713146106155780636ec518b81461063657806370a082311461065657806377b54bad1461068357600080fd5b8063571ac8b0146105bf5780636b67c4df146105df5780636ce46bc3146105f557600080fd5b80632b112e49146104cc5780632f54bf6e146104e1578063313ce567146105105780633f4218e01461053757806340291143146105675780634be9d8691461059f57600080fd5b80630d295980116102bc5780631ca0a28d116102965780631ca0a28d146104565780631da1db5e146104765780631df4ccfc1461049657806323b872dd146104ac57600080fd5b80630d2959801461040b578063180b0d7e1461042b57806318160ddd1461044157600080fd5b80621086831461030d578062bff4461461032f5780630445b6671461034f57806306fdde031461037857806309302dc6146103bb578063095ea7b3146103db57600080fd5b3661030857005b600080fd5b34801561031957600080fd5b5061032d610328366004612dcb565b610a0e565b005b34801561033b57600080fd5b5061032d61034a366004612dcb565b610b31565b34801561035b57600080fd5b5061036560165481565b6040519081526020015b60405180910390f35b34801561038457600080fd5b506103ae6040518060400160405280600a815260200169105b99d95b08111d5cdd60b21b81525081565b60405161036f9190612e22565b3480156103c757600080fd5b5061032d6103d6366004612e77565b610c45565b3480156103e757600080fd5b506103fb6103f6366004612ea5565b610d3b565b604051901515815260200161036f565b34801561041757600080fd5b5061032d610426366004612ed1565b610da8565b34801561043757600080fd5b506103656103e881565b34801561044d57600080fd5b50610365610e96565b34801561046257600080fd5b5061032d610471366004612eee565b610eb4565b34801561048257600080fd5b5061032d610491366004612e77565b6110f1565b3480156104a257600080fd5b50610365600e5481565b3480156104b857600080fd5b506103fb6104c7366004612f71565b6111d9565b3480156104d857600080fd5b5061036561129b565b3480156104ed57600080fd5b506103fb6104fc366004612fb2565b6000546001600160a01b0391821691161490565b34801561051c57600080fd5b50610525600481565b60405160ff909116815260200161036f565b34801561054357600080fd5b506103fb610552366004612fb2565b60076020526000908152604090205460ff1681565b34801561057357600080fd5b50601354610587906001600160a01b031681565b6040516001600160a01b03909116815260200161036f565b3480156105ab57600080fd5b5061032d6105ba366004612dcb565b611323565b3480156105cb57600080fd5b506103fb6105da366004612fb2565b611437565b3480156105eb57600080fd5b50610365600b5481565b34801561060157600080fd5b5061032d610610366004612fcf565b611445565b34801561062157600080fd5b506015546103fb90600160b01b900460ff1681565b34801561064257600080fd5b50601454610587906001600160a01b031681565b34801561066257600080fd5b50610365610671366004612fb2565b60056020526000908152604090205481565b34801561068f57600080fd5b506103fb61069e366004612ea5565b611486565b3480156106af57600080fd5b5061036560045481565b3480156106c557600080fd5b5061032d611640565b3480156106da57600080fd5b5061036560035481565b3480156106f057600080fd5b506000546001600160a01b0316610587565b34801561070e57600080fd5b506103fb61071d366004612fb2565b60086020526000908152604090205460ff1681565b34801561073e57600080fd5b506103ae60405180604001604052806002815260200161105160f21b81525081565b34801561076c57600080fd5b50610365600a5481565b34801561078257600080fd5b5061032d610791366004612e77565b6117c6565b3480156107a257600080fd5b50610365600d5481565b3480156107b857600080fd5b506105877f000000000000000000000000000000000000000000000000000000000000000081565b3480156107ec57600080fd5b506103fb6107fb366004612ea5565b6118f3565b34801561080c57600080fd5b506015546103fb90600160a81b900460ff1681565b34801561082d57600080fd5b5061032d61083c366004612fb2565b611900565b34801561084d57600080fd5b5061032d61085c366004612e77565b611970565b34801561086d57600080fd5b506103fb61087c366004612fb2565b60096020526000908152604090205460ff1681565b34801561089d57600080fd5b5061032d6108ac366004612ffb565b611a65565b3480156108bd57600080fd5b50610365600c5481565b3480156108d357600080fd5b506103656108e236600461303b565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561091957600080fd5b5061032d610928366004613074565b611c49565b34801561093957600080fd5b50601254610587906001600160a01b031681565b34801561095957600080fd5b5061032d610968366004613092565b611d42565b34801561097957600080fd5b5061032d610988366004612fb2565b611dab565b34801561099957600080fd5b5061032d6109a8366004612fb2565b611e71565b3480156109b957600080fd5b50601554610587906001600160a01b031681565b3480156109d957600080fd5b506103fb6109e8366004612fb2565b611f91565b3480156109f957600080fd5b506015546103fb90600160a01b900460ff1681565b610a1733611f91565b610a3c5760405162461bcd60e51b8152600401610a33906130c4565b60405180910390fd5b6101f58210610a5d5760405162461bcd60e51b8152600401610a33906130e9565b60005b82811015610b2b578160096000868685818110610a7f57610a7f61312e565b9050602002016020810190610a949190612fb2565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f566c2270277919680152b0734389ae919d95ff7e9024c03fc3c7c209ec8412c7848483818110610aef57610aef61312e565b9050602002016020810190610b049190612fb2565b83604051610b13929190613144565b60405180910390a1610b2481613175565b9050610a60565b50505050565b610b3a33611f91565b610b565760405162461bcd60e51b8152600401610a33906130c4565b6101f58210610b775760405162461bcd60e51b8152600401610a33906130e9565b60005b82811015610b2b578160076000868685818110610b9957610b9961312e565b9050602002016020810190610bae9190612fb2565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f9fbd25f95d342f2efc070b56d2fadd2341d264ef8c915dc268609b2ca1bb25de848483818110610c0957610c0961312e565b9050602002016020810190610c1e9190612fb2565b83604051610c2d929190613144565b60405180910390a1610c3e81613175565b9050610b7a565b6000546001600160a01b03163314610c6f5760405162461bcd60e51b8152600401610a339061318e565b6001811015610ccc5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015263302e312560e01b6064820152608401610a33565b6103e881610cdc6004600a613292565b610ceb9064174876e8006132a1565b610cf591906132a1565b610cff91906132c0565b60048190556040519081527fa69fa556bf940aa0c695b9c8e1b229fdb1476830e2025e44da1028e0c1458d4a906020015b60405180910390a150565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610d969086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610dd25760405162461bcd60e51b8152600401610a339061318e565b80610e4157601554600160a81b900460ff16610e415760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f742073746f702074726164696e67206166746572206c61756e636860448201526720697320646f6e6560c01b6064820152608401610a33565b6015805460ff60a01b1916600160a01b8315158102919091179182905560405160ff9190920416151581527ff865819dcfd8250cfaa23e1ab7129c1ec65c617bae1e716699dfe07dd7c489ee90602001610d30565b610ea26004600a613292565b610eb19064174876e8006132a1565b81565b610ebd33611f91565b610ed95760405162461bcd60e51b8152600401610a33906130c4565b336001600160a01b03861614610f5357601554600160a81b900460ff16610f535760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f7420657865637574652074686973206166746572206c61756e636860448201526720697320646f6e6560c01b6064820152608401610a33565b6101f58310610f745760405162461bcd60e51b8152600401610a33906130e9565b828114610fd45760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e206164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610a33565b6000805b8481101561101857838382818110610ff257610ff261312e565b905060200201358261100491906132e2565b91508061101081613175565b915050610fd8565b506001600160a01b0386166000908152600560205260409020548111156110815760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610a33565b60005b848110156110e8576110d5878787848181106110a2576110a261312e565b90506020020160208101906110b79190612fb2565b8686858181106110c9576110c961312e565b90506020020135611faf565b50806110e081613175565b915050611084565b50505050505050565b6000546001600160a01b0316331461111b5760405162461bcd60e51b8152600401610a339061318e565b606581106111565760405162461bcd60e51b81526020600482015260086024820152674d6178203130302560c01b6044820152606401610a33565b476000606461116584846132a1565b61116f91906132c0565b604051909150339082156108fc029083906000818181858888f1935050505015801561119f573d6000803e3d6000fd5b506040518181527f377153983e64f72f80af47182763316780b9133be808b7082a16710202b8fbda906020015b60405180910390a1505050565b6001600160a01b038316600090815260066020908152604080832033845290915281205460001914611286576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600682528381203382529091529190912054611261918490612095565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b6112918484846120cf565b90505b9392505050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead60009081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba549091906112fb6004600a613292565b61130a9064174876e8006132a1565b61131491906132fa565b61131e91906132fa565b905090565b61132c33611f91565b6113485760405162461bcd60e51b8152600401610a33906130c4565b6101f582106113695760405162461bcd60e51b8152600401610a33906130e9565b60005b82811015610b2b57816008600086868581811061138b5761138b61312e565b90506020020160208101906113a09190612fb2565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f3c4f06d74861dea6c152189f2ac8853b6f789feb0e1182101b7ad9d1858f70e38484838181106113fb576113fb61312e565b90506020020160208101906114109190612fb2565b8360405161141f929190613144565b60405180910390a161143081613175565b905061136c565b6000610da282600019610d3b565b61144e33611f91565b61146a5760405162461bcd60e51b8152600401610a33906130c4565b600f8290556010839055601181905561148161248c565b505050565b600080546001600160a01b031633146114b15760405162461bcd60e51b8152600401610a339061318e565b306001600160a01b0384160361151a5760405162461bcd60e51b815260206004820152602860248201527f746f6b656e416464726573732063616e206e6f7420626520746865206e6174696044820152673b32903a37b5b2b760c11b6064820152608401610a33565b8160000361158d576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611566573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158a9190613311565b91505b604080516001600160a01b0385168152602081018490527f960427a4fde284dcc8da2c51a43d210cfd7ed6f4328a24ba33eee49910db564b910160405180910390a160405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af115801561161c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611294919061332a565b6001546001600160a01b031633146116d15760405162461bcd60e51b815260206004820152604860248201527f596f75206d757374206265206e6f6d696e6174656420617320706f74656e746960448201527f616c206f776e6572206265666f726520796f752063616e2061636365707420746064820152673432903937b6329760c11b608482015260a401610a33565b600080546001600160a01b03908116825260026020526040808320805460ff1990811690915560018054841685528285208054909216179055825490516000805160206133e78339815191529361172d93929092169190613144565b60405180910390a1600180546040516000805160206133e78339815191529261175f926001600160a01b031691613144565b60405180910390a160018054600080546001600160a01b0383166001600160a01b031991821681179092559091169091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163906020015b60405180910390a1565b6000546001600160a01b031633146117f05760405162461bcd60e51b8152600401610a339061318e565b806201e0f3146118355760405162461bcd60e51b815260206004820152601060248201526f4163636964656e74616c20507265737360801b6044820152606401610a33565b601554600160a01b900460ff166118a65760405162461bcd60e51b815260206004820152602f60248201527f43616e7420636c6f7365206c61756e6368206d6f6465207768656e207472616460448201526e1a5b99c81a5cc8191a5cd8589b1959608a1b6064820152608401610a33565b6015805460ff60a81b1916908190556040517f4b4d10c084e3fa6291b99e9e41e22eadfb3b01ca4bb86ae8d7b9fefe1498f52f91610d3091600160a81b90910460ff161515815260200190565b60006112943384846120cf565b6000546001600160a01b0316331461192a5760405162461bcd60e51b8152600401610a339061318e565b6001600160a01b03811660009081526002602052604090819020805460ff1916600190811790915590516000805160206133e783398151915291610d3091849190613144565b6000546001600160a01b0316331461199a5760405162461bcd60e51b8152600401610a339061318e565b60018110156119fd5760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c657373206044820152687468616e20302e312560b81b6064820152608401610a33565b6103e881611a0d6004600a613292565b611a1c9064174876e8006132a1565b611a2691906132a1565b611a3091906132c0565b60038190556040519081527f365a2bb07537fddd750e9ac8d56970e584f83a144bb5225e77491b83bccd118390602001610d30565b6000546001600160a01b03163314611a8f5760405162461bcd60e51b8152600401610a339061318e565b6001600160a01b038316611afa5760405162461bcd60e51b815260206004820152602c60248201527f4d61726b6574696e672066656520616464726573732063616e6e6f742062652060448201526b7a65726f206164647265737360a01b6064820152608401610a33565b6001600160a01b038216611b605760405162461bcd60e51b815260206004820152602760248201527f5465616d2066656520616464726573732063616e6e6f74206265207a65726f206044820152666164647265737360c81b6064820152608401610a33565b6001600160a01b038116611bcd5760405162461bcd60e51b815260206004820152602e60248201527f446576656c6f706d656e742066656520616464726573732063616e6e6f74206260448201526d65207a65726f206164647265737360901b6064820152608401610a33565b601280546001600160a01b038581166001600160a01b0319928316811790935560138054868316908416811790915560148054928616929093168217909255604080519384526020840192909252908201527fb93b1ef445620c8661ebddddb575085ede7dfe08ccc6a91b933a6520249c3c7c906060016111cc565b6000546001600160a01b03163314611c735760405162461bcd60e51b8152600401610a339061318e565b600a611c80600482613292565b611c8f9064174876e8006132a1565b611c9991906132c0565b8110611cd95760405162461bcd60e51b815260206004820152600f60248201526e082dadeeadce840e8dede40d0d2ced608b1b6044820152606401610a33565b6015805460ff60b01b1916600160b01b8415158102919091179182905560168390556040805184815260ff9290930491909116151560208301527f34c2d4c263b6f41223c6d30ae2e7bcb18629892587e0a4138f57ba2c523953d0910160405180910390a15050565b6000546001600160a01b03163314611d6c5760405162461bcd60e51b8152600401610a339061318e565b600a849055600b839055600c829055600d8190558082611d8c85876132e2565b611d9691906132e2565b611da091906132e2565b600e55610b2b61248c565b6000546001600160a01b03163314611dd55760405162461bcd60e51b8152600401610a339061318e565b6000546001600160a01b0390811690821603611e335760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a65640000000000006044820152606401610a33565b6001600160a01b038116600090815260026020526040808220805460ff19169055516000805160206133e783398151915291610d3091849190613144565b6000546001600160a01b03163314611e9b5760405162461bcd60e51b8152600401610a339061318e565b6000546001600160a01b0390811690821603611eed5760405162461bcd60e51b815260206004820152601160248201527020b63932b0b23c903a34329037bbb732b960791b6044820152606401610a33565b6001600160a01b038116611f435760405162461bcd60e51b815260206004820152601860248201527f43616e206e6f74206265207a65726f20616464726573732e00000000000000006044820152606401610a33565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527fe235b3289f2e990914b334bf6827949c27f6ba58d3e5a1d6f8415037ca1ef22290602001610d30565b6001600160a01b031660009081526002602052604090205460ff1690565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054612000918490612095565b6001600160a01b03808616600090815260056020526040808220939093559085168152205461202f908361268c565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906120839086815260200190565b60405180910390a35060019392505050565b600081848411156120b95760405162461bcd60e51b8152600401610a339190612e22565b5060006120c684866132fa565b95945050505050565b60175460009060ff16156120ef576120e8848484611faf565b9050611294565b6001600160a01b03841660009081526002602052604090205460ff1615801561213157506001600160a01b03831660009081526002602052604090205460ff16155b1561218657601554600160a01b900460ff166121865760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610a33565b6001600160a01b03841660009081526002602052604090205460ff161580156121c857506001600160a01b03841660009081526009602052604090205460ff16155b80156121ed57506001600160a01b03831660009081526009602052604090205460ff16155b801561222b57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b156122a5576004546001600160a01b0384166000908152600560205260409020546122579084906132e2565b11156122a55760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610a33565b600354821115806122ce57506001600160a01b03841660009081526008602052604090205460ff165b806122f157506001600160a01b03831660009081526008602052604090205460ff165b6123355760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b6044820152606401610a33565b61233d6126eb565b1561234a5761234a61275e565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526005909152919091205461239c918490612095565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff16806123e957506001600160a01b03841660009081526007602052604090205460ff165b6123fd576123f8858486612ae1565b6123ff565b825b6001600160a01b038516600090815260056020526040902054909150612425908261268c565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906124799085815260200190565b60405180910390a3506001949350505050565b601554600160a81b900460ff166125f35760646124c160646124bb601054600e54612c3a90919063ffffffff16565b90612cbc565b111561250f5760405162461bcd60e51b815260206004820152601f60248201527f427579207461782063616e6e6f74206265206d6f7265207468616e20313025006044820152606401610a33565b609661252d60646124bb600f54600e54612c3a90919063ffffffff16565b111561257b5760405162461bcd60e51b815260206004820181905260248201527f53656c6c207461782063616e6e6f74206265206d6f7265207468616e203135256044820152606401610a33565b606461259960646124bb601154600e54612c3a90919063ffffffff16565b11156125f35760405162461bcd60e51b8152602060048201526024808201527f5472616e73666572205461782063616e6e6f74206265206d6f7265207468616e6044820152632031302560e01b6064820152608401610a33565b7f375884ed7f92283ee74d8884b39a803f4aee832b15766fe016b74fc791fc2ada61263060646124bb601054600e54612c3a90919063ffffffff16565b61264c60646124bb600f54600e54612c3a90919063ffffffff16565b61266860646124bb601154600e54612c3a90919063ffffffff16565b6040805160ff948516815292841660208401529216918101919091526060016117bc565b60008061269983856132e2565b9050838110156112945760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a33565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590612729575060175460ff16155b801561273e5750601554600160b01b900460ff165b801561131e57505060165430600090815260056020526040902054101590565b6017805460ff19166001179055600e54600061277b8260026132a1565b600a5460165461278b91906132a1565b61279591906132c0565b90506000816016546127a791906132fa565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106127e1576127e161312e565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106128355761283561312e565b6001600160a01b03928316602091820292909201015260155460405163791ac94760e01b815291169063791ac9479061287b908590600090869030904290600401613347565b600060405180830381600087803b15801561289557600080fd5b505af11580156128a9573d6000803e3d6000fd5b5050600a544792506128be91506002906132c0565b6128c890866132fa565b945060006128d78660026132a1565b600a546128e490846132a1565b6128ee91906132c0565b9050600086600b548461290191906132a1565b61290b91906132c0565b9050600087600c548561291e91906132a1565b61292891906132c0565b9050600088600d548661293b91906132a1565b61294591906132c0565b6012546040519192506001600160a01b03169084156108fc029085906000818181858888f19350505050158015612980573d6000803e3d6000fd5b506013546040516001600160a01b039091169083156108fc029084906000818181858888f193505050501580156129bb573d6000803e3d6000fd5b506014546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156129f6573d6000803e3d6000fd5b508715612acc5760155460405163f305d71960e01b81523060048201819052602482018b9052600060448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990869060c40160606040518083038185885af1158015612a6a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612a8f91906133b8565b505060408051868152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506017805460ff1916905550505050505050565b6000821580612af05750600e54155b15612afc575081611294565b6011546001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811690841603612b3b5750600f54612b79565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031603612b7957506010545b6000612baa612b8b6103e860646132a1565b6124bb84612ba4600e548a612c3a90919063ffffffff16565b90612c3a565b90508015612c265730600090815260056020526040902054612bcc908261268c565b30600081815260056020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612c1d9085815260200190565b60405180910390a35b612c308582612cfe565b9695505050505050565b600082600003612c4c57506000610da2565b6000612c5883856132a1565b905082612c6585836132c0565b146112945760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a33565b600061129483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612d40565b600061129483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612095565b60008183612d615760405162461bcd60e51b8152600401610a339190612e22565b5060006120c684866132c0565b60008083601f840112612d8057600080fd5b50813567ffffffffffffffff811115612d9857600080fd5b6020830191508360208260051b8501011115612db357600080fd5b9250929050565b8015158114612dc857600080fd5b50565b600080600060408486031215612de057600080fd5b833567ffffffffffffffff811115612df757600080fd5b612e0386828701612d6e565b9094509250506020840135612e1781612dba565b809150509250925092565b600060208083528351808285015260005b81811015612e4f57858101830151858201604001528201612e33565b81811115612e61576000604083870101525b50601f01601f1916929092016040019392505050565b600060208284031215612e8957600080fd5b5035919050565b6001600160a01b0381168114612dc857600080fd5b60008060408385031215612eb857600080fd5b8235612ec381612e90565b946020939093013593505050565b600060208284031215612ee357600080fd5b813561129481612dba565b600080600080600060608688031215612f0657600080fd5b8535612f1181612e90565b9450602086013567ffffffffffffffff80821115612f2e57600080fd5b612f3a89838a01612d6e565b90965094506040880135915080821115612f5357600080fd5b50612f6088828901612d6e565b969995985093965092949392505050565b600080600060608486031215612f8657600080fd5b8335612f9181612e90565b92506020840135612fa181612e90565b929592945050506040919091013590565b600060208284031215612fc457600080fd5b813561129481612e90565b600080600060608486031215612fe457600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561301057600080fd5b833561301b81612e90565b9250602084013561302b81612e90565b91506040840135612e1781612e90565b6000806040838503121561304e57600080fd5b823561305981612e90565b9150602083013561306981612e90565b809150509250929050565b6000806040838503121561308757600080fd5b8235612ec381612dba565b600080600080608085870312156130a857600080fd5b5050823594602084013594506040840135936060013592509050565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526025908201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604082015264657373657360d81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b039290921682521515602082015260400190565b634e487b7160e01b600052601160045260246000fd5b6000600182016131875761318761315f565b5060010190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600181815b808511156131e95781600019048211156131cf576131cf61315f565b808516156131dc57918102915b93841c93908002906131b3565b509250929050565b60008261320057506001610da2565b8161320d57506000610da2565b8160018114613223576002811461322d57613249565b6001915050610da2565b60ff84111561323e5761323e61315f565b50506001821b610da2565b5060208310610133831016604e8410600b841016171561326c575081810a610da2565b61327683836131ae565b806000190482111561328a5761328a61315f565b029392505050565b600061129460ff8416836131f1565b60008160001904831182151516156132bb576132bb61315f565b500290565b6000826132dd57634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156132f5576132f561315f565b500190565b60008282101561330c5761330c61315f565b500390565b60006020828403121561332357600080fd5b5051919050565b60006020828403121561333c57600080fd5b815161129481612dba565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156133975784516001600160a01b031683529383019391830191600101613372565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156133cd57600080fd5b835192506020840151915060408401519050925092509256feb6a1709218b158ea8591fc9269b88652f1c908dc68a79faa865c745a770b9505a2646970667358221220932578dd532b2033fd2746d31695fc9fa5351ba34a433c79bafa0039612df57664736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106103015760003560e01c806378109e5411610190578063bd9ab537116100dc578063e96fada211610095578063f2fde38b1161006f578063f2fde38b1461098d578063f887ea40146109ad578063fe9fbb80146109cd578063ffb54a99146109ed57600080fd5b8063e96fada21461092d578063efa5e3471461094d578063f0b37c041461096d57600080fd5b8063bd9ab53714610841578063c867d60b14610861578063d7c0103214610891578063d7c94efd146108b1578063dd62ed3e146108c7578063df20fd491461090d57600080fd5b806398118cb411610149578063a8aa1b3111610123578063a8aa1b31146107ac578063a9059cbb146107e0578063b37dd69014610800578063b6a5d7de1461082157600080fd5b806398118cb4146107605780639cd1aef114610776578063a5f3d0031461079657600080fd5b806378109e54146106a357806379ba5097146106b95780637d1db4a5146106ce578063893d20e8146106e45780638b42507f1461070257806395d89b411461073257600080fd5b80632b112e491161024f578063571ac8b0116102085780636ddd1713116101e25780636ddd1713146106155780636ec518b81461063657806370a082311461065657806377b54bad1461068357600080fd5b8063571ac8b0146105bf5780636b67c4df146105df5780636ce46bc3146105f557600080fd5b80632b112e49146104cc5780632f54bf6e146104e1578063313ce567146105105780633f4218e01461053757806340291143146105675780634be9d8691461059f57600080fd5b80630d295980116102bc5780631ca0a28d116102965780631ca0a28d146104565780631da1db5e146104765780631df4ccfc1461049657806323b872dd146104ac57600080fd5b80630d2959801461040b578063180b0d7e1461042b57806318160ddd1461044157600080fd5b80621086831461030d578062bff4461461032f5780630445b6671461034f57806306fdde031461037857806309302dc6146103bb578063095ea7b3146103db57600080fd5b3661030857005b600080fd5b34801561031957600080fd5b5061032d610328366004612dcb565b610a0e565b005b34801561033b57600080fd5b5061032d61034a366004612dcb565b610b31565b34801561035b57600080fd5b5061036560165481565b6040519081526020015b60405180910390f35b34801561038457600080fd5b506103ae6040518060400160405280600a815260200169105b99d95b08111d5cdd60b21b81525081565b60405161036f9190612e22565b3480156103c757600080fd5b5061032d6103d6366004612e77565b610c45565b3480156103e757600080fd5b506103fb6103f6366004612ea5565b610d3b565b604051901515815260200161036f565b34801561041757600080fd5b5061032d610426366004612ed1565b610da8565b34801561043757600080fd5b506103656103e881565b34801561044d57600080fd5b50610365610e96565b34801561046257600080fd5b5061032d610471366004612eee565b610eb4565b34801561048257600080fd5b5061032d610491366004612e77565b6110f1565b3480156104a257600080fd5b50610365600e5481565b3480156104b857600080fd5b506103fb6104c7366004612f71565b6111d9565b3480156104d857600080fd5b5061036561129b565b3480156104ed57600080fd5b506103fb6104fc366004612fb2565b6000546001600160a01b0391821691161490565b34801561051c57600080fd5b50610525600481565b60405160ff909116815260200161036f565b34801561054357600080fd5b506103fb610552366004612fb2565b60076020526000908152604090205460ff1681565b34801561057357600080fd5b50601354610587906001600160a01b031681565b6040516001600160a01b03909116815260200161036f565b3480156105ab57600080fd5b5061032d6105ba366004612dcb565b611323565b3480156105cb57600080fd5b506103fb6105da366004612fb2565b611437565b3480156105eb57600080fd5b50610365600b5481565b34801561060157600080fd5b5061032d610610366004612fcf565b611445565b34801561062157600080fd5b506015546103fb90600160b01b900460ff1681565b34801561064257600080fd5b50601454610587906001600160a01b031681565b34801561066257600080fd5b50610365610671366004612fb2565b60056020526000908152604090205481565b34801561068f57600080fd5b506103fb61069e366004612ea5565b611486565b3480156106af57600080fd5b5061036560045481565b3480156106c557600080fd5b5061032d611640565b3480156106da57600080fd5b5061036560035481565b3480156106f057600080fd5b506000546001600160a01b0316610587565b34801561070e57600080fd5b506103fb61071d366004612fb2565b60086020526000908152604090205460ff1681565b34801561073e57600080fd5b506103ae60405180604001604052806002815260200161105160f21b81525081565b34801561076c57600080fd5b50610365600a5481565b34801561078257600080fd5b5061032d610791366004612e77565b6117c6565b3480156107a257600080fd5b50610365600d5481565b3480156107b857600080fd5b506105877f00000000000000000000000066891e4e9ac69fbd13c5ac996fcde04cb536504481565b3480156107ec57600080fd5b506103fb6107fb366004612ea5565b6118f3565b34801561080c57600080fd5b506015546103fb90600160a81b900460ff1681565b34801561082d57600080fd5b5061032d61083c366004612fb2565b611900565b34801561084d57600080fd5b5061032d61085c366004612e77565b611970565b34801561086d57600080fd5b506103fb61087c366004612fb2565b60096020526000908152604090205460ff1681565b34801561089d57600080fd5b5061032d6108ac366004612ffb565b611a65565b3480156108bd57600080fd5b50610365600c5481565b3480156108d357600080fd5b506103656108e236600461303b565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561091957600080fd5b5061032d610928366004613074565b611c49565b34801561093957600080fd5b50601254610587906001600160a01b031681565b34801561095957600080fd5b5061032d610968366004613092565b611d42565b34801561097957600080fd5b5061032d610988366004612fb2565b611dab565b34801561099957600080fd5b5061032d6109a8366004612fb2565b611e71565b3480156109b957600080fd5b50601554610587906001600160a01b031681565b3480156109d957600080fd5b506103fb6109e8366004612fb2565b611f91565b3480156109f957600080fd5b506015546103fb90600160a01b900460ff1681565b610a1733611f91565b610a3c5760405162461bcd60e51b8152600401610a33906130c4565b60405180910390fd5b6101f58210610a5d5760405162461bcd60e51b8152600401610a33906130e9565b60005b82811015610b2b578160096000868685818110610a7f57610a7f61312e565b9050602002016020810190610a949190612fb2565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f566c2270277919680152b0734389ae919d95ff7e9024c03fc3c7c209ec8412c7848483818110610aef57610aef61312e565b9050602002016020810190610b049190612fb2565b83604051610b13929190613144565b60405180910390a1610b2481613175565b9050610a60565b50505050565b610b3a33611f91565b610b565760405162461bcd60e51b8152600401610a33906130c4565b6101f58210610b775760405162461bcd60e51b8152600401610a33906130e9565b60005b82811015610b2b578160076000868685818110610b9957610b9961312e565b9050602002016020810190610bae9190612fb2565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f9fbd25f95d342f2efc070b56d2fadd2341d264ef8c915dc268609b2ca1bb25de848483818110610c0957610c0961312e565b9050602002016020810190610c1e9190612fb2565b83604051610c2d929190613144565b60405180910390a1610c3e81613175565b9050610b7a565b6000546001600160a01b03163314610c6f5760405162461bcd60e51b8152600401610a339061318e565b6001811015610ccc5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015263302e312560e01b6064820152608401610a33565b6103e881610cdc6004600a613292565b610ceb9064174876e8006132a1565b610cf591906132a1565b610cff91906132c0565b60048190556040519081527fa69fa556bf940aa0c695b9c8e1b229fdb1476830e2025e44da1028e0c1458d4a906020015b60405180910390a150565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610d969086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610dd25760405162461bcd60e51b8152600401610a339061318e565b80610e4157601554600160a81b900460ff16610e415760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f742073746f702074726164696e67206166746572206c61756e636860448201526720697320646f6e6560c01b6064820152608401610a33565b6015805460ff60a01b1916600160a01b8315158102919091179182905560405160ff9190920416151581527ff865819dcfd8250cfaa23e1ab7129c1ec65c617bae1e716699dfe07dd7c489ee90602001610d30565b610ea26004600a613292565b610eb19064174876e8006132a1565b81565b610ebd33611f91565b610ed95760405162461bcd60e51b8152600401610a33906130c4565b336001600160a01b03861614610f5357601554600160a81b900460ff16610f535760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f7420657865637574652074686973206166746572206c61756e636860448201526720697320646f6e6560c01b6064820152608401610a33565b6101f58310610f745760405162461bcd60e51b8152600401610a33906130e9565b828114610fd45760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e206164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610a33565b6000805b8481101561101857838382818110610ff257610ff261312e565b905060200201358261100491906132e2565b91508061101081613175565b915050610fd8565b506001600160a01b0386166000908152600560205260409020548111156110815760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610a33565b60005b848110156110e8576110d5878787848181106110a2576110a261312e565b90506020020160208101906110b79190612fb2565b8686858181106110c9576110c961312e565b90506020020135611faf565b50806110e081613175565b915050611084565b50505050505050565b6000546001600160a01b0316331461111b5760405162461bcd60e51b8152600401610a339061318e565b606581106111565760405162461bcd60e51b81526020600482015260086024820152674d6178203130302560c01b6044820152606401610a33565b476000606461116584846132a1565b61116f91906132c0565b604051909150339082156108fc029083906000818181858888f1935050505015801561119f573d6000803e3d6000fd5b506040518181527f377153983e64f72f80af47182763316780b9133be808b7082a16710202b8fbda906020015b60405180910390a1505050565b6001600160a01b038316600090815260066020908152604080832033845290915281205460001914611286576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600682528381203382529091529190912054611261918490612095565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b6112918484846120cf565b90505b9392505050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead60009081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba549091906112fb6004600a613292565b61130a9064174876e8006132a1565b61131491906132fa565b61131e91906132fa565b905090565b61132c33611f91565b6113485760405162461bcd60e51b8152600401610a33906130c4565b6101f582106113695760405162461bcd60e51b8152600401610a33906130e9565b60005b82811015610b2b57816008600086868581811061138b5761138b61312e565b90506020020160208101906113a09190612fb2565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f3c4f06d74861dea6c152189f2ac8853b6f789feb0e1182101b7ad9d1858f70e38484838181106113fb576113fb61312e565b90506020020160208101906114109190612fb2565b8360405161141f929190613144565b60405180910390a161143081613175565b905061136c565b6000610da282600019610d3b565b61144e33611f91565b61146a5760405162461bcd60e51b8152600401610a33906130c4565b600f8290556010839055601181905561148161248c565b505050565b600080546001600160a01b031633146114b15760405162461bcd60e51b8152600401610a339061318e565b306001600160a01b0384160361151a5760405162461bcd60e51b815260206004820152602860248201527f746f6b656e416464726573732063616e206e6f7420626520746865206e6174696044820152673b32903a37b5b2b760c11b6064820152608401610a33565b8160000361158d576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611566573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158a9190613311565b91505b604080516001600160a01b0385168152602081018490527f960427a4fde284dcc8da2c51a43d210cfd7ed6f4328a24ba33eee49910db564b910160405180910390a160405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af115801561161c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611294919061332a565b6001546001600160a01b031633146116d15760405162461bcd60e51b815260206004820152604860248201527f596f75206d757374206265206e6f6d696e6174656420617320706f74656e746960448201527f616c206f776e6572206265666f726520796f752063616e2061636365707420746064820152673432903937b6329760c11b608482015260a401610a33565b600080546001600160a01b03908116825260026020526040808320805460ff1990811690915560018054841685528285208054909216179055825490516000805160206133e78339815191529361172d93929092169190613144565b60405180910390a1600180546040516000805160206133e78339815191529261175f926001600160a01b031691613144565b60405180910390a160018054600080546001600160a01b0383166001600160a01b031991821681179092559091169091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163906020015b60405180910390a1565b6000546001600160a01b031633146117f05760405162461bcd60e51b8152600401610a339061318e565b806201e0f3146118355760405162461bcd60e51b815260206004820152601060248201526f4163636964656e74616c20507265737360801b6044820152606401610a33565b601554600160a01b900460ff166118a65760405162461bcd60e51b815260206004820152602f60248201527f43616e7420636c6f7365206c61756e6368206d6f6465207768656e207472616460448201526e1a5b99c81a5cc8191a5cd8589b1959608a1b6064820152608401610a33565b6015805460ff60a81b1916908190556040517f4b4d10c084e3fa6291b99e9e41e22eadfb3b01ca4bb86ae8d7b9fefe1498f52f91610d3091600160a81b90910460ff161515815260200190565b60006112943384846120cf565b6000546001600160a01b0316331461192a5760405162461bcd60e51b8152600401610a339061318e565b6001600160a01b03811660009081526002602052604090819020805460ff1916600190811790915590516000805160206133e783398151915291610d3091849190613144565b6000546001600160a01b0316331461199a5760405162461bcd60e51b8152600401610a339061318e565b60018110156119fd5760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c657373206044820152687468616e20302e312560b81b6064820152608401610a33565b6103e881611a0d6004600a613292565b611a1c9064174876e8006132a1565b611a2691906132a1565b611a3091906132c0565b60038190556040519081527f365a2bb07537fddd750e9ac8d56970e584f83a144bb5225e77491b83bccd118390602001610d30565b6000546001600160a01b03163314611a8f5760405162461bcd60e51b8152600401610a339061318e565b6001600160a01b038316611afa5760405162461bcd60e51b815260206004820152602c60248201527f4d61726b6574696e672066656520616464726573732063616e6e6f742062652060448201526b7a65726f206164647265737360a01b6064820152608401610a33565b6001600160a01b038216611b605760405162461bcd60e51b815260206004820152602760248201527f5465616d2066656520616464726573732063616e6e6f74206265207a65726f206044820152666164647265737360c81b6064820152608401610a33565b6001600160a01b038116611bcd5760405162461bcd60e51b815260206004820152602e60248201527f446576656c6f706d656e742066656520616464726573732063616e6e6f74206260448201526d65207a65726f206164647265737360901b6064820152608401610a33565b601280546001600160a01b038581166001600160a01b0319928316811790935560138054868316908416811790915560148054928616929093168217909255604080519384526020840192909252908201527fb93b1ef445620c8661ebddddb575085ede7dfe08ccc6a91b933a6520249c3c7c906060016111cc565b6000546001600160a01b03163314611c735760405162461bcd60e51b8152600401610a339061318e565b600a611c80600482613292565b611c8f9064174876e8006132a1565b611c9991906132c0565b8110611cd95760405162461bcd60e51b815260206004820152600f60248201526e082dadeeadce840e8dede40d0d2ced608b1b6044820152606401610a33565b6015805460ff60b01b1916600160b01b8415158102919091179182905560168390556040805184815260ff9290930491909116151560208301527f34c2d4c263b6f41223c6d30ae2e7bcb18629892587e0a4138f57ba2c523953d0910160405180910390a15050565b6000546001600160a01b03163314611d6c5760405162461bcd60e51b8152600401610a339061318e565b600a849055600b839055600c829055600d8190558082611d8c85876132e2565b611d9691906132e2565b611da091906132e2565b600e55610b2b61248c565b6000546001600160a01b03163314611dd55760405162461bcd60e51b8152600401610a339061318e565b6000546001600160a01b0390811690821603611e335760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a65640000000000006044820152606401610a33565b6001600160a01b038116600090815260026020526040808220805460ff19169055516000805160206133e783398151915291610d3091849190613144565b6000546001600160a01b03163314611e9b5760405162461bcd60e51b8152600401610a339061318e565b6000546001600160a01b0390811690821603611eed5760405162461bcd60e51b815260206004820152601160248201527020b63932b0b23c903a34329037bbb732b960791b6044820152606401610a33565b6001600160a01b038116611f435760405162461bcd60e51b815260206004820152601860248201527f43616e206e6f74206265207a65726f20616464726573732e00000000000000006044820152606401610a33565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527fe235b3289f2e990914b334bf6827949c27f6ba58d3e5a1d6f8415037ca1ef22290602001610d30565b6001600160a01b031660009081526002602052604090205460ff1690565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054612000918490612095565b6001600160a01b03808616600090815260056020526040808220939093559085168152205461202f908361268c565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906120839086815260200190565b60405180910390a35060019392505050565b600081848411156120b95760405162461bcd60e51b8152600401610a339190612e22565b5060006120c684866132fa565b95945050505050565b60175460009060ff16156120ef576120e8848484611faf565b9050611294565b6001600160a01b03841660009081526002602052604090205460ff1615801561213157506001600160a01b03831660009081526002602052604090205460ff16155b1561218657601554600160a01b900460ff166121865760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610a33565b6001600160a01b03841660009081526002602052604090205460ff161580156121c857506001600160a01b03841660009081526009602052604090205460ff16155b80156121ed57506001600160a01b03831660009081526009602052604090205460ff16155b801561222b57507f00000000000000000000000066891e4e9ac69fbd13c5ac996fcde04cb53650446001600160a01b0316836001600160a01b031614155b156122a5576004546001600160a01b0384166000908152600560205260409020546122579084906132e2565b11156122a55760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610a33565b600354821115806122ce57506001600160a01b03841660009081526008602052604090205460ff165b806122f157506001600160a01b03831660009081526008602052604090205460ff165b6123355760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b6044820152606401610a33565b61233d6126eb565b1561234a5761234a61275e565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526005909152919091205461239c918490612095565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff16806123e957506001600160a01b03841660009081526007602052604090205460ff165b6123fd576123f8858486612ae1565b6123ff565b825b6001600160a01b038516600090815260056020526040902054909150612425908261268c565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906124799085815260200190565b60405180910390a3506001949350505050565b601554600160a81b900460ff166125f35760646124c160646124bb601054600e54612c3a90919063ffffffff16565b90612cbc565b111561250f5760405162461bcd60e51b815260206004820152601f60248201527f427579207461782063616e6e6f74206265206d6f7265207468616e20313025006044820152606401610a33565b609661252d60646124bb600f54600e54612c3a90919063ffffffff16565b111561257b5760405162461bcd60e51b815260206004820181905260248201527f53656c6c207461782063616e6e6f74206265206d6f7265207468616e203135256044820152606401610a33565b606461259960646124bb601154600e54612c3a90919063ffffffff16565b11156125f35760405162461bcd60e51b8152602060048201526024808201527f5472616e73666572205461782063616e6e6f74206265206d6f7265207468616e6044820152632031302560e01b6064820152608401610a33565b7f375884ed7f92283ee74d8884b39a803f4aee832b15766fe016b74fc791fc2ada61263060646124bb601054600e54612c3a90919063ffffffff16565b61264c60646124bb600f54600e54612c3a90919063ffffffff16565b61266860646124bb601154600e54612c3a90919063ffffffff16565b6040805160ff948516815292841660208401529216918101919091526060016117bc565b60008061269983856132e2565b9050838110156112945760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a33565b6000336001600160a01b037f00000000000000000000000066891e4e9ac69fbd13c5ac996fcde04cb53650441614801590612729575060175460ff16155b801561273e5750601554600160b01b900460ff165b801561131e57505060165430600090815260056020526040902054101590565b6017805460ff19166001179055600e54600061277b8260026132a1565b600a5460165461278b91906132a1565b61279591906132c0565b90506000816016546127a791906132fa565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106127e1576127e161312e565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c816001815181106128355761283561312e565b6001600160a01b03928316602091820292909201015260155460405163791ac94760e01b815291169063791ac9479061287b908590600090869030904290600401613347565b600060405180830381600087803b15801561289557600080fd5b505af11580156128a9573d6000803e3d6000fd5b5050600a544792506128be91506002906132c0565b6128c890866132fa565b945060006128d78660026132a1565b600a546128e490846132a1565b6128ee91906132c0565b9050600086600b548461290191906132a1565b61290b91906132c0565b9050600087600c548561291e91906132a1565b61292891906132c0565b9050600088600d548661293b91906132a1565b61294591906132c0565b6012546040519192506001600160a01b03169084156108fc029085906000818181858888f19350505050158015612980573d6000803e3d6000fd5b506013546040516001600160a01b039091169083156108fc029084906000818181858888f193505050501580156129bb573d6000803e3d6000fd5b506014546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156129f6573d6000803e3d6000fd5b508715612acc5760155460405163f305d71960e01b81523060048201819052602482018b9052600060448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990869060c40160606040518083038185885af1158015612a6a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612a8f91906133b8565b505060408051868152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506017805460ff1916905550505050505050565b6000821580612af05750600e54155b15612afc575081611294565b6011546001600160a01b037f00000000000000000000000066891e4e9ac69fbd13c5ac996fcde04cb5365044811690841603612b3b5750600f54612b79565b7f00000000000000000000000066891e4e9ac69fbd13c5ac996fcde04cb53650446001600160a01b0316856001600160a01b031603612b7957506010545b6000612baa612b8b6103e860646132a1565b6124bb84612ba4600e548a612c3a90919063ffffffff16565b90612c3a565b90508015612c265730600090815260056020526040902054612bcc908261268c565b30600081815260056020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612c1d9085815260200190565b60405180910390a35b612c308582612cfe565b9695505050505050565b600082600003612c4c57506000610da2565b6000612c5883856132a1565b905082612c6585836132c0565b146112945760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a33565b600061129483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612d40565b600061129483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612095565b60008183612d615760405162461bcd60e51b8152600401610a339190612e22565b5060006120c684866132c0565b60008083601f840112612d8057600080fd5b50813567ffffffffffffffff811115612d9857600080fd5b6020830191508360208260051b8501011115612db357600080fd5b9250929050565b8015158114612dc857600080fd5b50565b600080600060408486031215612de057600080fd5b833567ffffffffffffffff811115612df757600080fd5b612e0386828701612d6e565b9094509250506020840135612e1781612dba565b809150509250925092565b600060208083528351808285015260005b81811015612e4f57858101830151858201604001528201612e33565b81811115612e61576000604083870101525b50601f01601f1916929092016040019392505050565b600060208284031215612e8957600080fd5b5035919050565b6001600160a01b0381168114612dc857600080fd5b60008060408385031215612eb857600080fd5b8235612ec381612e90565b946020939093013593505050565b600060208284031215612ee357600080fd5b813561129481612dba565b600080600080600060608688031215612f0657600080fd5b8535612f1181612e90565b9450602086013567ffffffffffffffff80821115612f2e57600080fd5b612f3a89838a01612d6e565b90965094506040880135915080821115612f5357600080fd5b50612f6088828901612d6e565b969995985093965092949392505050565b600080600060608486031215612f8657600080fd5b8335612f9181612e90565b92506020840135612fa181612e90565b929592945050506040919091013590565b600060208284031215612fc457600080fd5b813561129481612e90565b600080600060608486031215612fe457600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561301057600080fd5b833561301b81612e90565b9250602084013561302b81612e90565b91506040840135612e1781612e90565b6000806040838503121561304e57600080fd5b823561305981612e90565b9150602083013561306981612e90565b809150509250929050565b6000806040838503121561308757600080fd5b8235612ec381612dba565b600080600080608085870312156130a857600080fd5b5050823594602084013594506040840135936060013592509050565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526025908201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604082015264657373657360d81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b039290921682521515602082015260400190565b634e487b7160e01b600052601160045260246000fd5b6000600182016131875761318761315f565b5060010190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600181815b808511156131e95781600019048211156131cf576131cf61315f565b808516156131dc57918102915b93841c93908002906131b3565b509250929050565b60008261320057506001610da2565b8161320d57506000610da2565b8160018114613223576002811461322d57613249565b6001915050610da2565b60ff84111561323e5761323e61315f565b50506001821b610da2565b5060208310610133831016604e8410600b841016171561326c575081810a610da2565b61327683836131ae565b806000190482111561328a5761328a61315f565b029392505050565b600061129460ff8416836131f1565b60008160001904831182151516156132bb576132bb61315f565b500290565b6000826132dd57634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156132f5576132f561315f565b500190565b60008282101561330c5761330c61315f565b500390565b60006020828403121561332357600080fd5b5051919050565b60006020828403121561333c57600080fd5b815161129481612dba565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156133975784516001600160a01b031683529383019391830191600101613372565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156133cd57600080fd5b835192506020840151915060408401519050925092509256feb6a1709218b158ea8591fc9269b88652f1c908dc68a79faa865c745a770b9505a2646970667358221220932578dd532b2033fd2746d31695fc9fa5351ba34a433c79bafa0039612df57664736f6c634300080f0033

Deployed Bytecode Sourcemap

4596:14755:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15101:373;;;;;;;;;;-1:-1:-1;15101:373:0;;;;;:::i;:::-;;:::i;:::-;;14372:353;;;;;;;;;;-1:-1:-1;14372:353:0;;;;;:::i;:::-;;:::i;6170:48::-;;;;;;;;;;;;;;;;;;;1226:25:1;;;1214:2;1199:18;6170:48:0;;;;;;;;4849:42;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4849:42:0;;;;;;;;;;;;:::i;8329:310::-;;;;;;;;;;-1:-1:-1;8329:310:0;;;;;:::i;:::-;;:::i;7433:216::-;;;;;;;;;;-1:-1:-1;7433:216:0;;;;;:::i;:::-;;:::i;:::-;;;2670:14:1;;2663:22;2645:41;;2633:2;2618:18;7433:216:0;2505:187:1;12236:256:0;;;;;;;;;;-1:-1:-1;12236:256:0;;;;;:::i;:::-;;:::i;5698:45::-;;;;;;;;;;;;5739:4;5698:45;;4984:64;;;;;;;;;;;;;:::i;17891:696::-;;;;;;;;;;-1:-1:-1;17891:696:0;;;;;:::i;:::-;;:::i;11410:356::-;;;;;;;;;;-1:-1:-1;11410:356:0;;;;;:::i;:::-;;:::i;5611:80::-;;;;;;;;;;;;;;;;7951:370;;;;;;;;;;-1:-1:-1;7951:370:0;;;;;:::i;:::-;;:::i;17748:137::-;;;;;;;;;;;;;:::i;2755:103::-;;;;;;;;;;-1:-1:-1;2755:103:0;;;;;:::i;:::-;2810:4;2845:5;-1:-1:-1;;;;;2834:16:0;;;2845:5;;2834:16;;2755:103;4941:34;;;;;;;;;;;;4974:1;4941:34;;;;;4741:4:1;4729:17;;;4711:36;;4699:2;4684:18;4941:34:0;4569:184:1;5292:44:0;;;;;;;;;;-1:-1:-1;5292:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5904:30;;;;;;;;;;-1:-1:-1;5904:30:0;;;;-1:-1:-1;;;;;5904:30:0;;;;;;-1:-1:-1;;;;;4922:32:1;;;4904:51;;4892:2;4877:18;5904:30:0;4758:203:1;14733:360:0;;;;;;;;;;-1:-1:-1;14733:360:0;;;;;:::i;:::-;;:::i;7657:122::-;;;;;;;;;;-1:-1:-1;7657:122:0;;;;;:::i;:::-;;:::i;5497:32::-;;;;;;;;;;;;;;;;16098:225;;;;;;;;;;-1:-1:-1;16098:225:0;;;;;:::i;:::-;;:::i;6132:31::-;;;;;;;;;;-1:-1:-1;6132:31:0;;;;-1:-1:-1;;;6132:31:0;;;;;;5941:37;;;;;;;;;;-1:-1:-1;5941:37:0;;;;-1:-1:-1;;;;;5941:37:0;;;5170:45;;;;;;;;;;-1:-1:-1;5170:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;11774:431;;;;;;;;;;-1:-1:-1;11774:431:0;;;;;:::i;:::-;;:::i;5111:50::-;;;;;;;;;;;;;;;;3252:480;;;;;;;;;;;;;:::i;5057:47::-;;;;;;;;;;;;;;;;7208:78;;;;;;;;;;-1:-1:-1;7260:7:0;7278:5;-1:-1:-1;;;;;7278:5:0;7208:78;;5343:48;;;;;;;;;;-1:-1:-1;5343:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4898:36;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4898:36:0;;;;;5459:31;;;;;;;;;;;;;;;;12500:289;;;;;;;;;;-1:-1:-1;12500:289:0;;;;;:::i;:::-;;:::i;5570:34::-;;;;;;;;;;;;;;;;6018:29;;;;;;;;;;;;;;;7787:156;;;;;;;;;;-1:-1:-1;7787:156:0;;;;;:::i;:::-;;:::i;6094:29::-;;;;;;;;;;-1:-1:-1;6094:29:0;;;;-1:-1:-1;;;6094:29:0;;;;;;2397:138;;;;;;;;;;-1:-1:-1;2397:138:0;;;;;:::i;:::-;;:::i;8645:313::-;;;;;;;;;;-1:-1:-1;8645:313:0;;;;;:::i;:::-;;:::i;5398:52::-;;;;;;;;;;-1:-1:-1;5398:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16746:695;;;;;;;;;;-1:-1:-1;16746:695:0;;;;;:::i;:::-;;:::i;5536:27::-;;;;;;;;;;;;;;;;7292:133;;;;;;;;;;-1:-1:-1;7292:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;7394:19:0;;;7376:7;7394:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;7292:133;17449:287;;;;;;;;;;-1:-1:-1;17449:287:0;;;;;:::i;:::-;;:::i;5862:35::-;;;;;;;;;;-1:-1:-1;5862:35:0;;;;-1:-1:-1;;;;;5862:35:0;;;16331:407;;;;;;;;;;-1:-1:-1;16331:407:0;;;;;:::i;:::-;;:::i;2543:204::-;;;;;;;;;;-1:-1:-1;2543:204:0;;;;;:::i;:::-;;:::i;2981:263::-;;;;;;;;;;-1:-1:-1;2981:263:0;;;;;:::i;:::-;;:::i;5987:24::-;;;;;;;;;;-1:-1:-1;5987:24:0;;;;-1:-1:-1;;;;;5987:24:0;;;2866:107;;;;;;;;;;-1:-1:-1;2866:107:0;;;;;:::i;:::-;;:::i;6056:31::-;;;;;;;;;;-1:-1:-1;6056:31:0;;;;-1:-1:-1;;;6056:31:0;;;;;;15101:373;2338:24;2351:10;2338:12;:24::i;:::-;2330:48;;;;-1:-1:-1;;;2330:48:0;;;;;;;:::i;:::-;;;;;;;;;15236:3:::1;15217:22:::0;::::1;15209:71;;;;-1:-1:-1::0;;;15209:71:0::1;;;;;;;:::i;:::-;15296:9;15291:176;15309:20:::0;;::::1;15291:176;;;15387:6;15351:19;:33;15371:9;;15381:1;15371:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15351:33:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;15351:33:0;:42;;-1:-1:-1;;15351:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15413::::1;15434:9:::0;;15444:1;15434:12;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;15448:6;15413:42;;;;;;;:::i;:::-;;;;;;;;15331:3;::::0;::::1;:::i;:::-;;;15291:176;;;;15101:373:::0;;;:::o;14372:353::-;2338:24;2351:10;2338:12;:24::i;:::-;2330:48;;;;-1:-1:-1;;;2330:48:0;;;;;;;:::i;:::-;14499:3:::1;14480:22:::0;::::1;14472:71;;;;-1:-1:-1::0;;;14472:71:0::1;;;;;;;:::i;:::-;14559:9;14554:164;14572:20:::0;;::::1;14554:164;;;14642:6;14614:11;:25;14626:9;;14636:1;14626:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14614:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14614:25:0;:34;;-1:-1:-1;;14614:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14668:38:::1;14685:9:::0;;14695:1;14685:12;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;14699:6;14668:38;;;;;;;:::i;:::-;;;;;;;;14594:3;::::0;::::1;:::i;:::-;;;14554:164;;8329:310:::0;2810:4;2845:5;-1:-1:-1;;;;;2845:5:0;2256:10;2834:16;2240:38;;;;-1:-1:-1;;;2240:38:0;;;;;;;:::i;:::-;8465:1:::1;8438:23;:28;;8430:76;;;::::0;-1:-1:-1;;;8430:76:0;;9379:2:1;8430:76:0::1;::::0;::::1;9361:21:1::0;9418:2;9398:18;;;9391:30;9457:34;9437:18;;;9430:62;-1:-1:-1;;;9508:18:1;;;9501:34;9552:19;;8430:76:0::1;9177:400:1::0;8430:76:0::1;8578:4;8550:23:::0;5036:12:::1;4974:1;5036:2;:12;:::i;:::-;5022:26;::::0;:11:::1;:26;:::i;:::-;8536:37;;;;:::i;:::-;8535:47;;;;:::i;:::-;8517:15;:65:::0;;;8598:33:::1;::::0;1226:25:1;;;8598:33:0::1;::::0;1214:2:1;1199:18;8598:33:0::1;;;;;;;;8329:310:::0;:::o;7433:216::-;7537:10;7508:4;7525:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;7525:32:0;;;;;;;;;;:41;;;7582:37;7508:4;;7525:32;;7582:37;;;;7560:6;1226:25:1;;1214:2;1199:18;;1080:177;7582:37:0;;;;;;;;-1:-1:-1;7637:4:0;7433:216;;;;;:::o;12236:256::-;2810:4;2845:5;-1:-1:-1;;;;;2845:5:0;2256:10;2834:16;2240:38;;;;-1:-1:-1;;;2240:38:0;;;;;;;:::i;:::-;12307:7:::1;12303:101;;12338:10;::::0;-1:-1:-1;;;12338:10:0;::::1;;;12330:62;;;::::0;-1:-1:-1;;;12330:62:0;;11562:2:1;12330:62:0::1;::::0;::::1;11544:21:1::0;11601:2;11581:18;;;11574:30;11640:34;11620:18;;;11613:62;-1:-1:-1;;;11691:18:1;;;11684:38;11739:19;;12330:62:0::1;11360:404:1::0;12330:62:0::1;12414:11;:21:::0;;-1:-1:-1;;;;12414:21:0::1;-1:-1:-1::0;;;12414:21:0;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;12451:33:::1;::::0;12414:21:::1;12472:11:::0;;;::::1;;2670:14:1::0;2663:22;2645:41;;12451:33:0::1;::::0;2633:2:1;2618:18;12451:33:0::1;2505:187:1::0;4984:64:0;5036:12;4974:1;5036:2;:12;:::i;:::-;5022:26;;:11;:26;:::i;:::-;4984:64;:::o;17891:696::-;2338:24;2351:10;2338:12;:24::i;:::-;2330:48;;;;-1:-1:-1;;;2330:48:0;;;;;;;:::i;:::-;18015:10:::1;-1:-1:-1::0;;;;;18015:18:0;::::1;;18012:103;;18053:10;::::0;-1:-1:-1;;;18053:10:0;::::1;;;18045:62;;;::::0;-1:-1:-1;;;18045:62:0;;11971:2:1;18045:62:0::1;::::0;::::1;11953:21:1::0;12010:2;11990:18;;;11983:30;12049:34;12029:18;;;12022:62;-1:-1:-1;;;12100:18:1;;;12093:38;12148:19;;18045:62:0::1;11769:404:1::0;18045:62:0::1;18150:3;18131:22:::0;::::1;18123:71;;;;-1:-1:-1::0;;;18123:71:0::1;;;;;;;:::i;:::-;18209:33:::0;;::::1;18201:85;;;::::0;-1:-1:-1;;;18201:85:0;;12380:2:1;18201:85:0::1;::::0;::::1;12362:21:1::0;12419:2;12399:18;;;12392:30;12458:34;12438:18;;;12431:62;-1:-1:-1;;;12509:18:1;;;12502:38;12557:19;;18201:85:0::1;12178:404:1::0;18201:85:0::1;18295:12;18324:6:::0;18320:82:::1;18334:20:::0;;::::1;18320:82;;;18385:6;;18392:1;18385:9;;;;;;;:::i;:::-;;;;;;;18378:4;:16;;;;:::i;:::-;18371:23:::0;-1:-1:-1;18356:3:0;::::1;::::0;::::1;:::i;:::-;;;;18320:82;;;-1:-1:-1::0;;;;;;18418:15:0;::::1;;::::0;;;:9:::1;:15;::::0;;;;;:23;-1:-1:-1;18418:23:0::1;18410:63;;;::::0;-1:-1:-1;;;18410:63:0;;12922:2:1;18410:63:0::1;::::0;::::1;12904:21:1::0;12961:2;12941:18;;;12934:30;13000:29;12980:18;;;12973:57;13047:18;;18410:63:0::1;12720:351:1::0;18410:63:0::1;18486:6;18482:102;18496:20:::0;;::::1;18482:102;;;18533:43;18548:4;18553:9;;18563:1;18553:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;18566:6;;18573:1;18566:9;;;;;;;:::i;:::-;;;;;;;18533:14;:43::i;:::-;-1:-1:-1::0;18518:3:0;::::1;::::0;::::1;:::i;:::-;;;;18482:102;;;;18005:582;17891:696:::0;;;;;:::o;11410:356::-;2810:4;2845:5;-1:-1:-1;;;;;2845:5:0;2256:10;2834:16;2240:38;;;;-1:-1:-1;;;2240:38:0;;;;;;;:::i;:::-;11520:3:::1;11501:16;:22;11493:43;;;::::0;-1:-1:-1;;;11493:43:0;;13278:2:1;11493:43:0::1;::::0;::::1;13260:21:1::0;13317:1;13297:18;;;13290:29;-1:-1:-1;;;13335:18:1;;;13328:38;13383:18;;11493:43:0::1;13076:331:1::0;11493:43:0::1;11567:21;11547:17;11658:3;11625:28;11637:16:::0;11567:21;11625:28:::1;:::i;:::-;11623:38;;;;:::i;:::-;11672:43;::::0;11599:62;;-1:-1:-1;11680:10:0::1;::::0;11672:43;::::1;;;::::0;11599:62;;11672:43:::1;::::0;;;11599:62;11680:10;11672:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;11731:27:0::1;::::0;1226:25:1;;;11731:27:0::1;::::0;1214:2:1;1199:18;11731:27:0::1;;;;;;;;11482:284;;11410:356:::0;:::o;7951:370::-;-1:-1:-1;;;;;8071:19:0;;8051:4;8071:19;;;:11;:19;;;;;;;;8091:10;8071:31;;;;;;;;-1:-1:-1;;8071:52:0;8068:186;;8173:69;;;;;;;;;;;-1:-1:-1;;;8173:69:0;;;;;;;;-1:-1:-1;;;;;8173:19:0;;-1:-1:-1;8173:19:0;;;:11;:19;;;;;8193:10;8173:31;;;;;;;;;;:69;;8209:6;;8173:35;:69::i;:::-;-1:-1:-1;;;;;8139:19:0;;;;;;:11;:19;;;;;;;;8159:10;8139:31;;;;;;;:103;8068:186;8273:40;8287:6;8295:9;8306:6;8273:13;:40::i;:::-;8266:47;;7951:370;;;;;;:::o;17748:137::-;17861:9;:15;;;;4725:42;17801:7;17843:15;;;;;17801:7;;17861:15;5036:12;4974:1;5036:2;:12;:::i;:::-;5022:26;;:11;:26;:::i;:::-;17829:29;;;;:::i;:::-;:47;;;;:::i;:::-;17821:56;;17748:137;:::o;14733:360::-;2338:24;2351:10;2338:12;:24::i;:::-;2330:48;;;;-1:-1:-1;;;2330:48:0;;;;;;;:::i;:::-;14864:3:::1;14845:22:::0;::::1;14837:71;;;;-1:-1:-1::0;;;14837:71:0::1;;;;;;;:::i;:::-;14924:9;14919:167;14937:20:::0;;::::1;14919:167;;;15011:6;14979:15;:29;14995:9;;15005:1;14995:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14979:29:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14979:29:0;:38;;-1:-1:-1;;14979:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15037:37:::1;15053:9:::0;;15063:1;15053:12;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;15067:6;15037:37;;;;;;;:::i;:::-;;;;;;;;14959:3;::::0;::::1;:::i;:::-;;;14919:167;;7657:122:::0;7712:4;7736:35;7744:7;-1:-1:-1;;7736:7:0;:35::i;16098:225::-;2338:24;2351:10;2338:12;:24::i;:::-;2330:48;;;;-1:-1:-1;;;2330:48:0;;;;;;;:::i;:::-;16198:14:::1;:22:::0;;;16231:13:::1;:20:::0;;;16262:18:::1;:27:::0;;;16302:13:::1;:11;:13::i;:::-;16098:225:::0;;;:::o;11774:431::-;11865:12;2845:5;;-1:-1:-1;;;;;2845:5:0;2256:10;2834:16;2240:38;;;;-1:-1:-1;;;2240:38:0;;;;;;;:::i;:::-;11922:4:::1;-1:-1:-1::0;;;;;11898:29:0;::::1;::::0;11890:82:::1;;;::::0;-1:-1:-1;;;11890:82:0;;13744:2:1;11890:82:0::1;::::0;::::1;13726:21:1::0;13783:2;13763:18;;;13756:30;13822:34;13802:18;;;13795:62;-1:-1:-1;;;13873:18:1;;;13866:38;13921:19;;11890:82:0::1;13542:404:1::0;11890:82:0::1;11988:6;11998:1;11988:11:::0;11985:95:::1;;12024:44;::::0;-1:-1:-1;;;12024:44:0;;12062:4:::1;12024:44;::::0;::::1;4904:51:1::0;-1:-1:-1;;;;;12024:29:0;::::1;::::0;::::1;::::0;4877:18:1;;12024:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12015:53;;11985:95;12097:32;::::0;;-1:-1:-1;;;;;14332:32:1;;14314:51;;14396:2;14381:18;;14374:34;;;12097:32:0::1;::::0;14287:18:1;12097:32:0::1;;;;;;;12149:48;::::0;-1:-1:-1;;;12149:48:0;;12178:10:::1;12149:48;::::0;::::1;14314:51:1::0;14381:18;;;14374:34;;;-1:-1:-1;;;;;12149:28:0;::::1;::::0;::::1;::::0;14287:18:1;;12149:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3252:480::-:0;3321:14;;-1:-1:-1;;;;;3321:14:0;3307:10;:28;3299:113;;;;-1:-1:-1;;;3299:113:0;;14871:2:1;3299:113:0;;;14853:21:1;14910:2;14890:18;;;14883:30;14949:34;14929:18;;;14922:62;15020:34;15000:18;;;14993:62;-1:-1:-1;;;15071:19:1;;;15064:39;15120:19;;3299:113:0;14669:476:1;3299:113:0;3447:5;3438;;-1:-1:-1;;;;;3438:5:0;;;3423:21;;:14;:21;;;;;;:29;;-1:-1:-1;;3423:29:0;;;;;;3438:5;3478:14;;;;3463:30;;;;;:37;;;;;;;;3535:5;;3518:29;;-1:-1:-1;;;;;;;;;;;3518:29:0;;;3535:5;;;;;3447;3518:29;:::i;:::-;;;;;;;;3580:14;;;3563:37;;-1:-1:-1;;;;;;;;;;;3563:37:0;;;-1:-1:-1;;;;;3580:14:0;;3563:37;:::i;:::-;;;;;;;;3629:14;;;;3621:22;;-1:-1:-1;;;;;3629:14:0;;-1:-1:-1;;;;;;3621:22:0;;;;;;;;3654:27;;;;;;3697;;4904:51:1;;;3697:27:0;;4892:2:1;4877:18;3697:27:0;;;;;;;;3252:480::o;12500:289::-;2810:4;2845:5;-1:-1:-1;;;;;2845:5:0;2256:10;2834:16;2240:38;;;;-1:-1:-1;;;2240:38:0;;;;;;;:::i;:::-;12589:7:::1;12600:6;12589:17;12581:45;;;::::0;-1:-1:-1;;;12581:45:0;;15352:2:1;12581:45:0::1;::::0;::::1;15334:21:1::0;15391:2;15371:18;;;15364:30;-1:-1:-1;;;15410:18:1;;;15403:46;15466:18;;12581:45:0::1;15150:340:1::0;12581:45:0::1;12645:11;::::0;-1:-1:-1;;;12645:11:0;::::1;;;12637:70;;;::::0;-1:-1:-1;;;12637:70:0;;15697:2:1;12637:70:0::1;::::0;::::1;15679:21:1::0;15736:2;15716:18;;;15709:30;15775:34;15755:18;;;15748:62;-1:-1:-1;;;15826:18:1;;;15819:45;15881:19;;12637:70:0::1;15495:411:1::0;12637:70:0::1;12718:10;:18:::0;;-1:-1:-1;;;;12718:18:0::1;::::0;;;;12752:29:::1;::::0;::::1;::::0;::::1;::::0;-1:-1:-1;;;12770:10:0;;::::1;12718:18;12770:10;2670:14:1::0;2663:22;2645:41;;2633:2;2618:18;;2505:187;7787:156:0;7867:4;7891:44;7905:10;7917:9;7928:6;7891:13;:44::i;2397:138::-;2810:4;2845:5;-1:-1:-1;;;;;2845:5:0;2256:10;2834:16;2240:38;;;;-1:-1:-1;;;2240:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2459:19:0;::::1;;::::0;;;:14:::1;:19;::::0;;;;;;:26;;-1:-1:-1;;2459:26:0::1;2481:4;2459:26:::0;;::::1;::::0;;;2501;;-1:-1:-1;;;;;;;;;;;2501:26:0;::::1;::::0;2474:3;;2481:4;2501:26:::1;:::i;8645:313::-:0;2810:4;2845:5;-1:-1:-1;;;;;2845:5:0;2256:10;2834:16;2240:38;;;;-1:-1:-1;;;2240:38:0;;;;;;;:::i;:::-;8779:1:::1;8751:24;:29;;8743:82;;;::::0;-1:-1:-1;;;8743:82:0;;16113:2:1;8743:82:0::1;::::0;::::1;16095:21:1::0;16152:2;16132:18;;;16125:30;16191:34;16171:18;;;16164:62;-1:-1:-1;;;16242:18:1;;;16235:39;16291:19;;8743:82:0::1;15911:405:1::0;8743:82:0::1;8895:4;8866:24:::0;5036:12:::1;4974:1;5036:2;:12;:::i;:::-;5022:26;::::0;:11:::1;:26;:::i;:::-;8852:38;;;;:::i;:::-;8851:48;;;;:::i;:::-;8836:12;:63:::0;;;8915:35:::1;::::0;1226:25:1;;;8915:35:0::1;::::0;1214:2:1;1199:18;8915:35:0::1;1080:177:1::0;16746:695:0;2810:4;2845:5;-1:-1:-1;;;;;2845:5:0;2256:10;2834:16;2240:38;;;;-1:-1:-1;;;2240:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16899:35:0;::::1;16891:91;;;::::0;-1:-1:-1;;;16891:91:0;;16523:2:1;16891:91:0::1;::::0;::::1;16505:21:1::0;16562:2;16542:18;;;16535:30;16601:34;16581:18;;;16574:62;-1:-1:-1;;;16652:18:1;;;16645:42;16704:19;;16891:91:0::1;16321:408:1::0;16891:91:0::1;-1:-1:-1::0;;;;;17001:30:0;::::1;16993:81;;;::::0;-1:-1:-1;;;16993:81:0;;16936:2:1;16993:81:0::1;::::0;::::1;16918:21:1::0;16975:2;16955:18;;;16948:30;17014:34;16994:18;;;16987:62;-1:-1:-1;;;17065:18:1;;;17058:37;17112:19;;16993:81:0::1;16734:403:1::0;16993:81:0::1;-1:-1:-1::0;;;;;17093:37:0;::::1;17085:95;;;::::0;-1:-1:-1;;;17085:95:0;;17344:2:1;17085:95:0::1;::::0;::::1;17326:21:1::0;17383:2;17363:18;;;17356:30;17422:34;17402:18;;;17395:62;-1:-1:-1;;;17473:18:1;;;17466:44;17527:19;;17085:95:0::1;17142:410:1::0;17085:95:0::1;17193:20;:44:::0;;-1:-1:-1;;;;;17193:44:0;;::::1;-1:-1:-1::0;;;;;;17193:44:0;;::::1;::::0;::::1;::::0;;;17248:15:::1;:34:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;17293:22:::1;:48:::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;17359:74:::1;::::0;;17797:34:1;;;17862:2;17847:18;;17840:43;;;;17899:18;;;17892:43;17359:74:0::1;::::0;17747:2:1;17732:18;17359:74:0::1;17557:384:1::0;17449:287:0;2810:4;2845:5;-1:-1:-1;;;;;2845:5:0;2256:10;2834:16;2240:38;;;;-1:-1:-1;;;2240:38:0;;;;;;;:::i;:::-;17571:2:::1;5036:12;4974:1;17571:2:::0;5036:12:::1;:::i;:::-;5022:26;::::0;:11:::1;:26;:::i;:::-;17559:14;;;;:::i;:::-;17548:7;:26;17540:54;;;::::0;-1:-1:-1;;;17540:54:0;;18148:2:1;17540:54:0::1;::::0;::::1;18130:21:1::0;18187:2;18167:18;;;18160:30;-1:-1:-1;;;18206:18:1;;;18199:45;18261:18;;17540:54:0::1;17946:339:1::0;17540:54:0::1;17607:11;:22:::0;;-1:-1:-1;;;;17607:22:0::1;-1:-1:-1::0;;;17607:22:0;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;:11:::1;17640:23:::0;;;17681:47:::1;::::0;;18458:25:1;;;17607:22:0::1;17716:11:::0;;;::::1;::::0;;;::::1;18526:14:1::0;18519:22;18514:2;18499:18;;18492:50;17681:47:0::1;::::0;18431:18:1;17681:47:0::1;;;;;;;17449:287:::0;;:::o;16331:407::-;2810:4;2845:5;-1:-1:-1;;;;;2845:5:0;2256:10;2834:16;2240:38;;;;-1:-1:-1;;;2240:38:0;;;;;;;:::i;:::-;16477:12:::1;:28:::0;;;16516:12:::1;:28:::0;;;16555:7:::1;:18:::0;;;16584:14:::1;:32:::0;;;16601:15;16565:8;16638:29:::1;16531:13:::0;16492;16638:29:::1;:::i;:::-;:40;;;;:::i;:::-;:58;;;;:::i;:::-;16627:8;:69:::0;16717:13:::1;:11;:13::i;2543:204::-:0;2810:4;2845:5;-1:-1:-1;;;;;2845:5:0;2256:10;2834:16;2240:38;;;;-1:-1:-1;;;2240:38:0;;;;;;;:::i;:::-;2622:5:::1;::::0;-1:-1:-1;;;;;2622:5:0;;::::1;2615:12:::0;;::::1;::::0;2607:51:::1;;;::::0;-1:-1:-1;;;2607:51:0;;18755:2:1;2607:51:0::1;::::0;::::1;18737:21:1::0;18794:2;18774:18;;;18767:30;18833:28;18813:18;;;18806:56;18879:18;;2607:51:0::1;18553:350:1::0;2607:51:0::1;-1:-1:-1::0;;;;;2669:19:0;::::1;2691:5;2669:19:::0;;;:14:::1;:19;::::0;;;;;:27;;-1:-1:-1;;2669:27:0::1;::::0;;2712;-1:-1:-1;;;;;;;;;;;2712:27:0;::::1;::::0;2684:3;;2691:5;2712:27:::1;:::i;2981:263::-:0;2810:4;2845:5;-1:-1:-1;;;;;2845:5:0;2256:10;2834:16;2240:38;;;;-1:-1:-1;;;2240:38:0;;;;;;;:::i;:::-;3074:5:::1;::::0;-1:-1:-1;;;;;3074:5:0;;::::1;3067:12:::0;;::::1;::::0;3059:42:::1;;;::::0;-1:-1:-1;;;3059:42:0;;19110:2:1;3059:42:0::1;::::0;::::1;19092:21:1::0;19149:2;19129:18;;;19122:30;-1:-1:-1;;;19168:18:1;;;19161:47;19225:18;;3059:42:0::1;18908:341:1::0;3059:42:0::1;-1:-1:-1::0;;;;;3120:17:0;::::1;3112:54;;;::::0;-1:-1:-1;;;3112:54:0;;19456:2:1;3112:54:0::1;::::0;::::1;19438:21:1::0;19495:2;19475:18;;;19468:30;19534:26;19514:18;;;19507:54;19578:18;;3112:54:0::1;19254:348:1::0;3112:54:0::1;3177:14;:20:::0;;-1:-1:-1;;;;;;3177:20:0::1;-1:-1:-1::0;;;;;3177:20:0;::::1;::::0;;::::1;::::0;;;3213:23:::1;::::0;4904:51:1;;;3213:23:0::1;::::0;4892:2:1;4877:18;3213:23:0::1;4758:203:1::0;2866:107:0;-1:-1:-1;;;;;2946:19:0;2922:4;2946:19;;;:14;:19;;;;;;;;;2866:107::o;10136:330::-;10266:53;;;;;;;;;;;-1:-1:-1;;;10266:53:0;;;;;;;;-1:-1:-1;;;;;10266:17:0;;10229:4;10266:17;;;:9;:17;;;;;;;:53;;10288:6;;10266:21;:53::i;:::-;-1:-1:-1;;;;;10246:17:0;;;;;;;:9;:17;;;;;;:73;;;;10353:20;;;;;;;:32;;10378:6;10353:24;:32::i;:::-;-1:-1:-1;;;;;10330:20:0;;;;;;;:9;:20;;;;;;;:55;;;;10401:35;;;;;;;;;;10429:6;1226:25:1;;1214:2;1199:18;;1080:177;10401:35:0;;;;;;;;-1:-1:-1;10454:4:0;10136:330;;;;;:::o;422:192::-;508:7;544:12;536:6;;;;528:29;;;;-1:-1:-1;;;528:29:0;;;;;;;;:::i;:::-;-1:-1:-1;568:9:0;580:5;584:1;580;:5;:::i;:::-;568:17;422:192;-1:-1:-1;;;;;422:192:0:o;8966:1158::-;9078:6;;9058:4;;9078:6;;9075:63;;;9094:41;9109:6;9117:9;9128:6;9094:14;:41::i;:::-;9087:48;;;;9075:63;-1:-1:-1;;;;;9154:22:0;;;;;;:14;:22;;;;;;;;9153:23;:53;;;;-1:-1:-1;;;;;;9181:25:0;;;;;;:14;:25;;;;;;;;9180:26;9153:53;9150:127;;;9230:11;;-1:-1:-1;;;9230:11:0;;;;9222:43;;;;-1:-1:-1;;;9222:43:0;;20025:2:1;9222:43:0;;;20007:21:1;20064:2;20044:18;;;20037:30;-1:-1:-1;;;20083:18:1;;;20076:50;20143:18;;9222:43:0;19823:344:1;9222:43:0;-1:-1:-1;;;;;9294:22:0;;;;;;:14;:22;;;;;;;;9293:23;:55;;;;-1:-1:-1;;;;;;9321:27:0;;;;;;:19;:27;;;;;;;;9320:28;9293:55;:90;;;;-1:-1:-1;;;;;;9353:30:0;;;;;;:19;:30;;;;;;;;9352:31;9293:90;:111;;;;;9400:4;-1:-1:-1;;;;;9387:17:0;:9;-1:-1:-1;;;;;9387:17:0;;;9293:111;9289:230;;;9464:15;;-1:-1:-1;;;;;9430:20:0;;;;;;:9;:20;;;;;;:29;;9453:6;;9430:29;:::i;:::-;9429:50;;9421:86;;;;-1:-1:-1;;;9421:86:0;;20374:2:1;9421:86:0;;;20356:21:1;20413:2;20393:18;;;20386:30;20452:26;20432:18;;;20425:54;20496:18;;9421:86:0;20172:348:1;9421:86:0;9595:12;;9585:6;:22;;9584:51;;;-1:-1:-1;;;;;;9612:23:0;;;;;;:15;:23;;;;;;;;9584:51;:81;;;-1:-1:-1;;;;;;9639:26:0;;;;;;:15;:26;;;;;;;;9584:81;9576:115;;;;-1:-1:-1;;;9576:115:0;;20727:2:1;9576:115:0;;;20709:21:1;20766:2;20746:18;;;20739:30;-1:-1:-1;;;20785:18:1;;;20778:51;20846:18;;9576:115:0;20525:345:1;9576:115:0;9707:16;:14;:16::i;:::-;9704:35;;;9726:10;:8;:10::i;:::-;9771:53;;;;;;;;;;;-1:-1:-1;;;9771:53:0;;;;;;;;-1:-1:-1;;;;;9771:17:0;;-1:-1:-1;9771:17:0;;;:9;:17;;;;;;;;:53;;9793:6;;9771:21;:53::i;:::-;-1:-1:-1;;;;;9751:17:0;;;;;;:9;:17;;;;;;;;:73;;;;9863:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;9886:22:0;;;;;;:11;:22;;;;;;;;9863:45;9862:93;;9921:34;9929:6;9937;9945:9;9921:7;:34::i;:::-;9862:93;;;9912:6;9862:93;-1:-1:-1;;;;;9991:20:0;;;;;;:9;:20;;;;;;9837:118;;-1:-1:-1;9991:40:0;;9837:118;9991:24;:40::i;:::-;-1:-1:-1;;;;;9968:20:0;;;;;;;:9;:20;;;;;;;:63;;;;10051:43;;;;;;;;;;10079:14;1226:25:1;;1214:2;1199:18;;1080:177;10051:43:0;;;;;;;;-1:-1:-1;10112:4:0;;8966:1158;-1:-1:-1;;;;8966:1158:0:o;15482:608::-;15529:10;;-1:-1:-1;;;15529:10:0;;;;15525:349;;15603:3;15563:36;15595:3;15563:27;15576:13;;15563:8;;:12;;:27;;;;:::i;:::-;:31;;:36::i;:::-;:43;;15555:87;;;;-1:-1:-1;;;15555:87:0;;21077:2:1;15555:87:0;;;21059:21:1;21116:2;21096:18;;;21089:30;21155:33;21135:18;;;21128:61;21206:18;;15555:87:0;20875:355:1;15555:87:0;15706:3;15665:37;15698:3;15665:28;15678:14;;15665:8;;:12;;:28;;;;:::i;:37::-;:44;;15657:89;;;;-1:-1:-1;;;15657:89:0;;21437:2:1;15657:89:0;;;21419:21:1;;;21456:18;;;21449:30;21515:34;21495:18;;;21488:62;21567:18;;15657:89:0;21235:356:1;15657:89:0;15814:3;15769:41;15806:3;15769:32;15782:18;;15769:8;;:12;;:32;;;;:::i;:41::-;:48;;15761:97;;;;-1:-1:-1;;;15761:97:0;;21798:2:1;15761:97:0;;;21780:21:1;21837:2;21817:18;;;21810:30;21876:34;21856:18;;;21849:62;-1:-1:-1;;;21927:18:1;;;21920:34;21971:19;;15761:97:0;21596:400:1;15761:97:0;15891:191;15908:36;15940:3;15908:27;15921:13;;15908:8;;:12;;:27;;;;:::i;:36::-;15966:37;15999:3;15966:28;15979:14;;15966:8;;:12;;:28;;;;:::i;:37::-;16025:41;16062:3;16025:32;16038:18;;16025:8;;:12;;:32;;;;:::i;:41::-;15891:191;;;22221:4:1;22209:17;;;22191:36;;22263:17;;;22258:2;22243:18;;22236:45;22317:17;;22297:18;;;22290:45;;;;22179:2;22164:18;15891:191:0;22001:340:1;93:181:0;151:7;;183:5;187:1;183;:5;:::i;:::-;171:17;;212:1;207;:6;;199:46;;;;-1:-1:-1;;;199:46:0;;22548:2:1;199:46:0;;;22530:21:1;22587:2;22567:18;;;22560:30;22626:29;22606:18;;;22599:57;22673:18;;199:46:0;22346:351:1;11205:197:0;11254:4;11278:10;-1:-1:-1;;;;;11292:4:0;11278:18;;;;;:38;;-1:-1:-1;11310:6:0;;;;11309:7;11278:38;:62;;;;-1:-1:-1;11329:11:0;;-1:-1:-1;;;11329:11:0;;;;11278:62;:116;;;;-1:-1:-1;;11381:13:0;;11371:4;11353:24;;;;:9;:24;;;;;;:41;;;11205:197::o;12797:1567::-;6265:6;:13;;-1:-1:-1;;6265:13:0;6274:4;6265:13;;;12870:8:::1;::::0;6265:6;12949:15:::1;12870:8:::0;12963:1:::1;12949:15;:::i;:::-;12934:12;;12918:13;;:28;;;;:::i;:::-;12917:48;;;;:::i;:::-;12891:74;;12976:20;13015:15;12999:13;;:31;;;;:::i;:::-;13067:16;::::0;;13081:1:::1;13067:16:::0;;;;;::::1;::::0;;12976:54;;-1:-1:-1;13043:21:0::1;::::0;13067:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13067:16:0::1;13043:40;;13112:4;13094;13099:1;13094:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;13094:23:0::1;;;-1:-1:-1::0;;;;;13094:23:0::1;;;::::0;::::1;13138:4;13128;13133:1;13128:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13128:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;13155:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;13155:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;13227:12;;13155:6:::1;::::0;13270:4;;13297::::1;::::0;13317:15:::1;::::0;13155:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;13440:12:0::1;::::0;13376:21:::1;::::0;-1:-1:-1;13440:16:0::1;::::0;-1:-1:-1;13455:1:0::1;::::0;13440:16:::1;:::i;:::-;13425:32;::::0;:11;:32:::1;:::i;:::-;13411:46:::0;-1:-1:-1;13478:26:0::1;13537:15;13411:46:::0;13551:1:::1;13537:15;:::i;:::-;13520:12;::::0;13508:24:::1;::::0;:9;:24:::1;:::i;:::-;13507:46;;;;:::i;:::-;13478:75;;13564:26;13622:11;13606:12;;13594:9;:24;;;;:::i;:::-;13593:40;;;;:::i;:::-;13564:69;;13644:21;13692:11;13681:7;;13669:9;:19;;;;:::i;:::-;13668:35;;;;:::i;:::-;13644:59;;13714:28;13776:11;13758:14;;13746:9;:26;;;;:::i;:::-;13745:42;;;;:::i;:::-;13808:20;::::0;13800:58:::1;::::0;13714:73;;-1:-1:-1;;;;;;13808:20:0::1;::::0;13800:58;::::1;;;::::0;13839:18;;13808:20:::1;13800:58:::0;13808:20;13800:58;13839:18;13808:20;13800:58;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;13877:15:0::1;::::0;13869:48:::1;::::0;-1:-1:-1;;;;;13877:15:0;;::::1;::::0;13869:48;::::1;;;::::0;13903:13;;13877:15:::1;13869:48:::0;13877:15;13869:48;13903:13;13877:15;13869:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;13936:22:0::1;::::0;13928:62:::1;::::0;-1:-1:-1;;;;;13936:22:0;;::::1;::::0;13928:62;::::1;;;::::0;13969:20;;13936:22:::1;13928:62:::0;13936:22;13928:62;13969:20;13936:22;13928:62;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;14006:19:0;;14003:354:::1;;14041:6;::::0;:236:::1;::::0;-1:-1:-1;;;14041:236:0;;14117:4:::1;14041:236;::::0;::::1;24160:34:1::0;;;24210:18;;;24203:34;;;14041:6:0::1;24253:18:1::0;;;24246:34;;;24296:18;;;24289:34;24339:19;;;24332:44;14247:15:0::1;24392:19:1::0;;;24385:35;-1:-1:-1;;;;;14041:6:0;;::::1;::::0;:22:::1;::::0;14071:18;;24094:19:1;;14041:236:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;14297:48:0::1;::::0;;24916:25:1;;;24972:2;24957:18;;24950:34;;;14297:48:0::1;::::0;-1:-1:-1;24889:18:1;14297:48:0::1;;;;;;;14003:354;-1:-1:-1::0;;6283:6:0;:14;;-1:-1:-1;;6283:14:0;;;-1:-1:-1;;;;;;;12797:1567:0:o;10474:723::-;10560:7;10583:11;;;:28;;-1:-1:-1;10598:8:0;;:13;10583:28;10580:72;;;-1:-1:-1;10634:6:0;10627:13;;10580:72;10685:18;;-1:-1:-1;;;;;10732:4:0;10719:17;;;;;;10716:154;;-1:-1:-1;10766:14:0;;10716:154;;;10811:4;-1:-1:-1;;;;;10801:14:0;:6;-1:-1:-1;;;;;10801:14:0;;10798:72;;-1:-1:-1;10845:13:0;;10798:72;10882:17;10902:62;10943:20;5739:4;10960:3;10943:20;:::i;:::-;10902:36;10927:10;10902:20;10913:8;;10902:6;:10;;:20;;;;:::i;:::-;:24;;:36::i;:62::-;10882:82;-1:-1:-1;10980:13:0;;10977:172;;11054:4;11036:24;;;;:9;:24;;;;;;:39;;11065:9;11036:28;:39::i;:::-;11027:4;11009:24;;;;:9;:24;;;;;;;:66;;;;11095:42;;-1:-1:-1;;;;;11095:42:0;;;;;;;11127:9;1226:25:1;;1214:2;1199:18;;1080:177;11095:42:0;;;;;;;;10977:172;11168:21;:6;11179:9;11168:10;:21::i;:::-;11161:28;10474:723;-1:-1:-1;;;;;;10474:723:0:o;620:250::-;678:7;702:1;707;702:6;698:47;;-1:-1:-1;732:1:0;725:8;;698:47;757:9;769:5;773:1;769;:5;:::i;:::-;757:17;-1:-1:-1;802:1:0;793:5;797:1;757:17;793:5;:::i;:::-;:10;785:56;;;;-1:-1:-1;;;785:56:0;;25197:2:1;785:56:0;;;25179:21:1;25236:2;25216:18;;;25209:30;25275:34;25255:18;;;25248:62;-1:-1:-1;;;25326:18:1;;;25319:31;25367:19;;785:56:0;24995:397:1;876:132:0;934:7;961:39;965:1;968;961:39;;;;;;;;;;;;;;;;;:3;:39::i;280:136::-;338:7;365:43;369:1;372;365:43;;;;;;;;;;;;;;;;;:3;:43::i;1014:189::-;1100:7;1135:12;1128:5;1120:28;;;;-1:-1:-1;;;1120:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1159:9:0;1171:5;1175:1;1171;:5;:::i;14:367:1:-;77:8;87:6;141:3;134:4;126:6;122:17;118:27;108:55;;159:1;156;149:12;108:55;-1:-1:-1;182:20:1;;225:18;214:30;;211:50;;;257:1;254;247:12;211:50;294:4;286:6;282:17;270:29;;354:3;347:4;337:6;334:1;330:14;322:6;318:27;314:38;311:47;308:67;;;371:1;368;361:12;308:67;14:367;;;;;:::o;386:118::-;472:5;465:13;458:21;451:5;448:32;438:60;;494:1;491;484:12;438:60;386:118;:::o;509:566::-;601:6;609;617;670:2;658:9;649:7;645:23;641:32;638:52;;;686:1;683;676:12;638:52;726:9;713:23;759:18;751:6;748:30;745:50;;;791:1;788;781:12;745:50;830:70;892:7;883:6;872:9;868:22;830:70;:::i;:::-;919:8;;-1:-1:-1;804:96:1;-1:-1:-1;;1004:2:1;989:18;;976:32;1017:28;976:32;1017:28;:::i;:::-;1064:5;1054:15;;;509:566;;;;;:::o;1262:597::-;1374:4;1403:2;1432;1421:9;1414:21;1464:6;1458:13;1507:6;1502:2;1491:9;1487:18;1480:34;1532:1;1542:140;1556:6;1553:1;1550:13;1542:140;;;1651:14;;;1647:23;;1641:30;1617:17;;;1636:2;1613:26;1606:66;1571:10;;1542:140;;;1700:6;1697:1;1694:13;1691:91;;;1770:1;1765:2;1756:6;1745:9;1741:22;1737:31;1730:42;1691:91;-1:-1:-1;1843:2:1;1822:15;-1:-1:-1;;1818:29:1;1803:45;;;;1850:2;1799:54;;1262:597;-1:-1:-1;;;1262:597:1:o;1864:180::-;1923:6;1976:2;1964:9;1955:7;1951:23;1947:32;1944:52;;;1992:1;1989;1982:12;1944:52;-1:-1:-1;2015:23:1;;1864:180;-1:-1:-1;1864:180:1:o;2049:131::-;-1:-1:-1;;;;;2124:31:1;;2114:42;;2104:70;;2170:1;2167;2160:12;2185:315;2253:6;2261;2314:2;2302:9;2293:7;2289:23;2285:32;2282:52;;;2330:1;2327;2320:12;2282:52;2369:9;2356:23;2388:31;2413:5;2388:31;:::i;:::-;2438:5;2490:2;2475:18;;;;2462:32;;-1:-1:-1;;;2185:315:1:o;2697:241::-;2753:6;2806:2;2794:9;2785:7;2781:23;2777:32;2774:52;;;2822:1;2819;2812:12;2774:52;2861:9;2848:23;2880:28;2902:5;2880:28;:::i;2943:908::-;3074:6;3082;3090;3098;3106;3159:2;3147:9;3138:7;3134:23;3130:32;3127:52;;;3175:1;3172;3165:12;3127:52;3214:9;3201:23;3233:31;3258:5;3233:31;:::i;:::-;3283:5;-1:-1:-1;3339:2:1;3324:18;;3311:32;3362:18;3392:14;;;3389:34;;;3419:1;3416;3409:12;3389:34;3458:70;3520:7;3511:6;3500:9;3496:22;3458:70;:::i;:::-;3547:8;;-1:-1:-1;3432:96:1;-1:-1:-1;3635:2:1;3620:18;;3607:32;;-1:-1:-1;3651:16:1;;;3648:36;;;3680:1;3677;3670:12;3648:36;;3719:72;3783:7;3772:8;3761:9;3757:24;3719:72;:::i;:::-;2943:908;;;;-1:-1:-1;2943:908:1;;-1:-1:-1;3810:8:1;;3693:98;2943:908;-1:-1:-1;;;2943:908:1:o;3856:456::-;3933:6;3941;3949;4002:2;3990:9;3981:7;3977:23;3973:32;3970:52;;;4018:1;4015;4008:12;3970:52;4057:9;4044:23;4076:31;4101:5;4076:31;:::i;:::-;4126:5;-1:-1:-1;4183:2:1;4168:18;;4155:32;4196:33;4155:32;4196:33;:::i;:::-;3856:456;;4248:7;;-1:-1:-1;;;4302:2:1;4287:18;;;;4274:32;;3856:456::o;4317:247::-;4376:6;4429:2;4417:9;4408:7;4404:23;4400:32;4397:52;;;4445:1;4442;4435:12;4397:52;4484:9;4471:23;4503:31;4528:5;4503:31;:::i;4966:316::-;5043:6;5051;5059;5112:2;5100:9;5091:7;5087:23;5083:32;5080:52;;;5128:1;5125;5118:12;5080:52;-1:-1:-1;;5151:23:1;;;5221:2;5206:18;;5193:32;;-1:-1:-1;5272:2:1;5257:18;;;5244:32;;4966:316;-1:-1:-1;4966:316:1:o;5287:529::-;5364:6;5372;5380;5433:2;5421:9;5412:7;5408:23;5404:32;5401:52;;;5449:1;5446;5439:12;5401:52;5488:9;5475:23;5507:31;5532:5;5507:31;:::i;:::-;5557:5;-1:-1:-1;5614:2:1;5599:18;;5586:32;5627:33;5586:32;5627:33;:::i;:::-;5679:7;-1:-1:-1;5738:2:1;5723:18;;5710:32;5751:33;5710:32;5751:33;:::i;5821:388::-;5889:6;5897;5950:2;5938:9;5929:7;5925:23;5921:32;5918:52;;;5966:1;5963;5956:12;5918:52;6005:9;5992:23;6024:31;6049:5;6024:31;:::i;:::-;6074:5;-1:-1:-1;6131:2:1;6116:18;;6103:32;6144:33;6103:32;6144:33;:::i;:::-;6196:7;6186:17;;;5821:388;;;;;:::o;6214:309::-;6279:6;6287;6340:2;6328:9;6319:7;6315:23;6311:32;6308:52;;;6356:1;6353;6346:12;6308:52;6395:9;6382:23;6414:28;6436:5;6414:28;:::i;6528:385::-;6614:6;6622;6630;6638;6691:3;6679:9;6670:7;6666:23;6662:33;6659:53;;;6708:1;6705;6698:12;6659:53;-1:-1:-1;;6731:23:1;;;6801:2;6786:18;;6773:32;;-1:-1:-1;6852:2:1;6837:18;;6824:32;;6903:2;6888:18;6875:32;;-1:-1:-1;6528:385:1;-1:-1:-1;6528:385:1:o;7404:335::-;7606:2;7588:21;;;7645:2;7625:18;;;7618:30;-1:-1:-1;;;7679:2:1;7664:18;;7657:41;7730:2;7715:18;;7404:335::o;7744:401::-;7946:2;7928:21;;;7985:2;7965:18;;;7958:30;8024:34;8019:2;8004:18;;7997:62;-1:-1:-1;;;8090:2:1;8075:18;;8068:35;8135:3;8120:19;;7744:401::o;8150:127::-;8211:10;8206:3;8202:20;8199:1;8192:31;8242:4;8239:1;8232:15;8266:4;8263:1;8256:15;8282:284;-1:-1:-1;;;;;8468:32:1;;;;8450:51;;8544:14;8537:22;8532:2;8517:18;;8510:50;8438:2;8423:18;;8282:284::o;8571:127::-;8632:10;8627:3;8623:20;8620:1;8613:31;8663:4;8660:1;8653:15;8687:4;8684:1;8677:15;8703:135;8742:3;8763:17;;;8760:43;;8783:18;;:::i;:::-;-1:-1:-1;8830:1:1;8819:13;;8703:135::o;8843:329::-;9045:2;9027:21;;;9084:1;9064:18;;;9057:29;-1:-1:-1;;;9117:2:1;9102:18;;9095:36;9163:2;9148:18;;8843:329::o;9582:422::-;9671:1;9714:5;9671:1;9728:270;9749:7;9739:8;9736:21;9728:270;;;9808:4;9804:1;9800:6;9796:17;9790:4;9787:27;9784:53;;;9817:18;;:::i;:::-;9867:7;9857:8;9853:22;9850:55;;;9887:16;;;;9850:55;9966:22;;;;9926:15;;;;9728:270;;;9732:3;9582:422;;;;;:::o;10009:806::-;10058:5;10088:8;10078:80;;-1:-1:-1;10129:1:1;10143:5;;10078:80;10177:4;10167:76;;-1:-1:-1;10214:1:1;10228:5;;10167:76;10259:4;10277:1;10272:59;;;;10345:1;10340:130;;;;10252:218;;10272:59;10302:1;10293:10;;10316:5;;;10340:130;10377:3;10367:8;10364:17;10361:43;;;10384:18;;:::i;:::-;-1:-1:-1;;10440:1:1;10426:16;;10455:5;;10252:218;;10554:2;10544:8;10541:16;10535:3;10529:4;10526:13;10522:36;10516:2;10506:8;10503:16;10498:2;10492:4;10489:12;10485:35;10482:77;10479:159;;;-1:-1:-1;10591:19:1;;;10623:5;;10479:159;10670:34;10695:8;10689:4;10670:34;:::i;:::-;10740:6;10736:1;10732:6;10728:19;10719:7;10716:32;10713:58;;;10751:18;;:::i;:::-;10789:20;;10009:806;-1:-1:-1;;;10009:806:1:o;10820:140::-;10878:5;10907:47;10948:4;10938:8;10934:19;10928:4;10907:47;:::i;10965:168::-;11005:7;11071:1;11067;11063:6;11059:14;11056:1;11053:21;11048:1;11041:9;11034:17;11030:45;11027:71;;;11078:18;;:::i;:::-;-1:-1:-1;11118:9:1;;10965:168::o;11138:217::-;11178:1;11204;11194:132;;11248:10;11243:3;11239:20;11236:1;11229:31;11283:4;11280:1;11273:15;11311:4;11308:1;11301:15;11194:132;-1:-1:-1;11340:9:1;;11138:217::o;12587:128::-;12627:3;12658:1;12654:6;12651:1;12648:13;12645:39;;;12664:18;;:::i;:::-;-1:-1:-1;12700:9:1;;12587:128::o;13412:125::-;13452:4;13480:1;13477;13474:8;13471:34;;;13485:18;;:::i;:::-;-1:-1:-1;13522:9:1;;13412:125::o;13951:184::-;14021:6;14074:2;14062:9;14053:7;14049:23;14045:32;14042:52;;;14090:1;14087;14080:12;14042:52;-1:-1:-1;14113:16:1;;13951:184;-1:-1:-1;13951:184:1:o;14419:245::-;14486:6;14539:2;14527:9;14518:7;14514:23;14510:32;14507:52;;;14555:1;14552;14545:12;14507:52;14587:9;14581:16;14606:28;14628:5;14606:28;:::i;22834:980::-;23096:4;23144:3;23133:9;23129:19;23175:6;23164:9;23157:25;23201:2;23239:6;23234:2;23223:9;23219:18;23212:34;23282:3;23277:2;23266:9;23262:18;23255:31;23306:6;23341;23335:13;23372:6;23364;23357:22;23410:3;23399:9;23395:19;23388:26;;23449:2;23441:6;23437:15;23423:29;;23470:1;23480:195;23494:6;23491:1;23488:13;23480:195;;;23559:13;;-1:-1:-1;;;;;23555:39:1;23543:52;;23650:15;;;;23615:12;;;;23591:1;23509:9;23480:195;;;-1:-1:-1;;;;;;;23731:32:1;;;;23726:2;23711:18;;23704:60;-1:-1:-1;;;23795:3:1;23780:19;23773:35;23692:3;22834:980;-1:-1:-1;;;22834:980:1:o;24431:306::-;24519:6;24527;24535;24588:2;24576:9;24567:7;24563:23;24559:32;24556:52;;;24604:1;24601;24594:12;24556:52;24633:9;24627:16;24617:26;;24683:2;24672:9;24668:18;24662:25;24652:35;;24727:2;24716:9;24712:18;24706:25;24696:35;;24431:306;;;;;:::o

Swarm Source

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