ETH Price: $3,517.33 (+2.46%)
Gas: 6 Gwei

Token

DOGMA (DOGMA)
 

Overview

Max Total Supply

1,000,000 DOGMA

Holders

151

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
741.895215672 DOGMA

Value
$0.00
0x90253e548d29d93c521ee56aca9aa7b3f906c085
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
DOGMA

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-11-06
*/

/*
$DOGMA 

https://t.me/DogmaETH
*/

// SPDX-License-Identifier: UNLICENSED

pragma solidity =0.8.17;

interface IERC20 {
  function totalSupply() external view returns (uint256);
  function decimals() external view returns (uint8);
  function symbol() external view returns (string memory);
  function name() external view returns (string memory);
  function getOwner() external view returns (address);
  function balanceOf(address account) external view returns (uint256);
  function transfer(address recipient, uint256 amount) external returns (bool);
  function allowance(address _owner, address spender) external view returns (uint256);
  function approve(address spender, uint256 amount) external returns (bool);
  function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IDexPair {
    event Sync(uint112 reserve0, uint112 reserve1);
    function sync() external;
}

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

interface IdexRouter {
    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;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

}

abstract contract Ownable {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(owner() == msg.sender, "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}
contract DOGMA is IERC20, Ownable
{
    //mapping
    mapping (address => uint) private _balances;
    mapping (address => mapping (address => uint)) private _allowances;
    mapping(address => bool) private excludedFromLimits;
    mapping(address => bool) public excludedFromFees;
    mapping(address=>bool) public isPair;
    //strings
    string private constant _name = 'DOGMA';
    string private constant _symbol = 'DOGMA';
    //uints
    uint public constant InitialSupply= 1000000 * 10**_decimals;
    uint public buyTax = 60;
    uint public sellTax = 60;
    uint public transferTax = 80;
    uint public liquidityTax=0;
    uint public projectTax=1000;
    uint constant TAX_DENOMINATOR=1000;
    uint constant MAXTAXDENOMINATOR=10;
    uint public swapTreshold=6;
    uint public overLiquifyTreshold=600;
    uint private LaunchTimestamp = 0;
    uint8 private constant _decimals = 9;

    uint256 public maxTransactionAmount;
    uint256 public maxWalletBalance;
    uint256 public percentForLPBurn = 100; // 25 = .25%
    uint256 public lpBurnFrequency = 2400 seconds;
    uint256 public lastLpBurnTime;
    uint256 public manualBurnFrequency = 20 minutes;
    uint256 public lastManualLpBurnTime;

    IdexRouter private  _dexRouter;
    
    //addresses
    address private dexRouter=0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; 
    address private _dexPairAddress;
    address constant deadWallet=address(0xdead);
    address private projectWallet=0x51FCFDbBDfB42A2599f88db2e75EfB77b2E4cd2e;
    address private lpReceiver;
    //modifiers

    modifier lockTheSwap {
        _isSwappingContractModifier = true;
        _;
        _isSwappingContractModifier = false;
    }

    //bools
    bool private _isSwappingContractModifier;
    bool public blacklistMode = true;
    bool public lpBurnEnabled = true;
    bool public manualSwap;

    
    constructor () {
        uint deployerBalance= InitialSupply;
        _balances[owner()] = deployerBalance;
        emit Transfer(address(0), owner(), deployerBalance);
        
        lpReceiver=msg.sender;

        _dexRouter = IdexRouter(dexRouter);
        _dexPairAddress = IdexFactory(_dexRouter.factory()).createPair(address(this), _dexRouter.WETH());
        isPair[_dexPairAddress]=true;

        excludedFromFees[owner()]=true;
        excludedFromFees[dexRouter]=true;
        excludedFromFees[address(this)]=true;

        excludedFromLimits[owner()] = true;
        excludedFromLimits[deadWallet] = true;
        excludedFromLimits[address(this)] = true;
    }
    function _transfer(address sender, address recipient, uint amount) private{
        require(sender != address(0), "Transfer from zero");
        require(recipient != address(0), "Transfer to zero");
        if(excludedFromFees[sender] || excludedFromFees[recipient])
            _feelessTransfer(sender, recipient, amount);
        
        else{
            require(LaunchTimestamp>0,"trading not yet enabled");
            _taxedTransfer(sender,recipient,amount);
        }              
    }
    function _taxedTransfer(address sender, address recipient, uint amount) private{
        uint senderBalance = _balances[sender];
        require(senderBalance >= amount, "Transfer exceeds balance");
        bool excludedAccount = excludedFromLimits[sender] || excludedFromLimits[recipient];
        if (
            isPair[sender] &&
            !excludedAccount
        ) {
            require(
                amount <= maxTransactionAmount,
                "Transfer amount exceeds the maxTxAmount."
            );
            uint256 contractBalanceRecepient = balanceOf(recipient);
            require(
                contractBalanceRecepient + amount <= maxWalletBalance,
                "Exceeds maximum wallet token amount."
            );
        } else if (
            isPair[recipient] &&
            !excludedAccount
        ) {
            require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxSellTransactionAmount.");
        }

        bool isBuy=isPair[sender];
        bool isSell=isPair[recipient];
        uint tax;
        if(isSell){  
            uint SellTaxDuration=5 minutes;
            if(block.timestamp<LaunchTimestamp+SellTaxDuration){
                tax=200;
                }else tax=sellTax;
            }
        else if(isBuy){
            uint BuyTaxDuration=1 minutes;
            if(block.timestamp<LaunchTimestamp+BuyTaxDuration){
                tax=60;
            }else tax=buyTax;
        } else{
            uint256 contractBalanceRecepient = balanceOf(recipient);
            require(
                contractBalanceRecepient + amount <= maxWalletBalance,
                "Exceeds maximum wallet token amount."
            ); 
            tax=transferTax;
        }

        if((sender!=_dexPairAddress)&&(!manualSwap)&&(!_isSwappingContractModifier))
            _swapContractToken(false);

        if(!_isSwappingContractModifier && isPair[recipient] && lpBurnEnabled && block.timestamp >= lastLpBurnTime + lpBurnFrequency){
            autoBurnLPTokens();
        }
        
        uint contractToken=_calculateFee(amount, tax, projectTax+liquidityTax);
        uint taxedAmount=amount-contractToken;

        _balances[sender]-=amount;
        _balances[address(this)] += contractToken;
        _balances[recipient]+=taxedAmount;
        
        emit Transfer(sender,recipient,taxedAmount);
    }
    function _calculateFee(uint amount, uint tax, uint taxPercent) private pure returns (uint) {
        return (amount*tax*taxPercent) / (TAX_DENOMINATOR*TAX_DENOMINATOR);
    }
    function _feelessTransfer(address sender, address recipient, uint amount) private{
        uint senderBalance = _balances[sender];
        require(senderBalance >= amount, "Transfer exceeds balance");
        _balances[sender]-=amount;
        _balances[recipient]+=amount;      
        emit Transfer(sender,recipient,amount);
    }
    function setSwapTreshold(uint newSwapTresholdPermille) external onlyOwner{
        require(newSwapTresholdPermille<=10);//MaxTreshold= 1%
        swapTreshold=newSwapTresholdPermille;
        emit SwapThresholdChange(newSwapTresholdPermille);
    }
    function SetOverLiquifiedTreshold(uint newOverLiquifyTresholdPermille) external onlyOwner{
        require(newOverLiquifyTresholdPermille<=1000);
        overLiquifyTreshold=newOverLiquifyTresholdPermille;
        emit OverLiquifiedThresholdChange(newOverLiquifyTresholdPermille);
    }
    function SetTaxes(uint buy, uint sell, uint transfer_, uint project,uint liquidity) external onlyOwner{
        uint maxTax=150;
        require(buy<=maxTax&&sell<=maxTax&&transfer_<=maxTax,"Tax exceeds maxTax");
        require(project+liquidity==TAX_DENOMINATOR,"Taxes don't add up to denominator");
        buyTax=buy;
        sellTax=sell;
        transferTax=transfer_;
        projectTax=project;
        liquidityTax=liquidity;
        emit OnSetTaxes(buy, sell, transfer_, project,liquidity);
    }
    
    function isOverLiquified() public view returns(bool){
        return _balances[_dexPairAddress]>getCirculatingSupply()*overLiquifyTreshold/1000;
    }
    function _swapContractToken(bool ignoreLimits) private lockTheSwap{
        uint contractBalance=_balances[address(this)];
        uint totalTax=liquidityTax+projectTax;
        uint tokenToSwap=_balances[_dexPairAddress]*swapTreshold/1000;
        if(totalTax==0)return;
        if(ignoreLimits)
            tokenToSwap=_balances[address(this)];
        else if(contractBalance<tokenToSwap)
            return;
        uint tokenForLiquidity=isOverLiquified()?0:(tokenToSwap*liquidityTax)/totalTax;

        uint tokenForProject= tokenToSwap-tokenForLiquidity;

        uint LiqHalf=tokenForLiquidity/2;
        uint swapToken=LiqHalf+tokenForProject;
        uint initialETHBalance = address(this).balance;
        _swapTokenForETH(swapToken);
        uint newETH=(address(this).balance - initialETHBalance);
        if(tokenForLiquidity>0){
            uint liqETH = (newETH*LiqHalf)/swapToken;
            _addLiquidity(LiqHalf, liqETH);
        }
        (bool sent,)=projectWallet.call{value:address(this).balance}("");
        sent=true;
    }
    function _swapTokenForETH(uint amount) private {
        _approve(address(this), address(_dexRouter), amount);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _dexRouter.WETH();

        try _dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amount,
            0,
            path,
            address(this),
            block.timestamp
        ){}
        catch{}
    }
    function _addLiquidity(uint tokenamount, uint ETHamount) private {
        _approve(address(this), address(_dexRouter), tokenamount);
        _dexRouter.addLiquidityETH{value: ETHamount}(
            address(this),
            tokenamount,
            0,
            0,
            lpReceiver,
            block.timestamp
        );
    }
    function getBurnedTokens() public view returns(uint){
        return _balances[address(0xdead)];
    }
    function getCirculatingSupply() public view returns(uint){
        return InitialSupply-_balances[address(0xdead)];
    }
    function SetPair(address Pair, bool Add) external onlyOwner{
        require(Pair!=_dexPairAddress,"can't change uniswap pair");
        require(Pair != address(0),"Address should not be 0");
        isPair[Pair]=Add;
        emit NewPairSet(Pair,Add);
    }
    function SwitchManualSwap(bool manual) external onlyOwner{
        manualSwap=manual;
        emit ManualSwapChange(manual);
    }
    function SwapContractToken() external onlyOwner{
        _swapContractToken(false);
        emit OwnerSwap();
    }

    function SetNewRouter(address _newdex) external onlyOwner{
        require(_newdex != address(0),"Address should not be 0");
        require(_newdex != dexRouter,"Address is same");
        dexRouter = _newdex;
        emit NewRouterSet(_newdex);
    }

    function SetProjectWallet(address _address) external onlyOwner{
        require(_address != address(0),"Address should not be 0");
        require(_address != projectWallet,"Address is same");
        projectWallet = _address;
        emit NewProjectWalletSet(_address);
    }

    function SetLPreceiver(address _address) external onlyOwner{
        require(_address != projectWallet,"Address is same");
        lpReceiver = _address;
    }

    function SetMaxWalletBalancePercent(uint256 percent) external onlyOwner {
        require(percent >= 10, "min 1%");
        require(percent <= 1000, "max 100%");
        maxWalletBalance = InitialSupply * percent / 1000;
        emit MaxWalletBalanceUpdated(percent);
    }
    
    function SetMaxTransactionAmount(uint256 percent) external onlyOwner {
        require(percent >= 25, "min 0.25%");
        require(percent <= 10000, "max 100%");
        maxTransactionAmount = InitialSupply * percent / 10000;
        emit MaxTransactionAmountUpdated(percent);
    }
    
    function ExcludeAccountFromFees(address account, bool exclude) external onlyOwner{
        require(account!=address(this),"can't Include the contract");
        require(account != address(0),"Address should not be 0");
        excludedFromFees[account]=exclude;
        emit ExcludeAccount(account,exclude);
    }
    
    function SetExcludedAccountFromLimits(address account, bool exclude) external onlyOwner{
        require(account != address(0),"Address should not be 0");
        excludedFromLimits[account]=exclude;
        emit ExcludeFromLimits(account,exclude);
    }
    function setAutoLPBurnSettings(uint256 _frequencyInSeconds, uint256 _percent, bool _Enabled) external onlyOwner {
        require(_frequencyInSeconds >= 600, "cannot set buyback more often than every 10 minutes");
        require(_percent <= 1000 && _percent >= 0, "Must set auto LP burn percent between 0% and 10%");
        lpBurnFrequency = _frequencyInSeconds;
        percentForLPBurn = _percent;
        lpBurnEnabled = _Enabled;
    }
    function autoBurnLPTokens() internal returns (bool){
        lastLpBurnTime = block.timestamp;
        uint256 liquidityPairBalance = this.balanceOf(_dexPairAddress);
        uint256 amountToBurn = liquidityPairBalance * percentForLPBurn/10000;
        if (amountToBurn > 0){
            _balances[_dexPairAddress]-=amountToBurn;
            _balances[deadWallet]+=amountToBurn;
            emit Transfer(_dexPairAddress,deadWallet,amountToBurn);
        }
        IDexPair pair = IDexPair(_dexPairAddress);
        pair.sync();
        emit AutoNukeLP();
        return true;
    }

    function manualBurnLPTokens(uint256 percent) external onlyOwner returns (bool){
        require(block.timestamp > lastManualLpBurnTime + manualBurnFrequency , "Must wait for cooldown to finish");
        require(percent <= 1000, "May not nuke more than 10% of tokens in LP");
        lastManualLpBurnTime = block.timestamp;
        uint256 liquidityPairBalance = this.balanceOf(_dexPairAddress);
        uint256 amountToBurn = liquidityPairBalance * percent/10000;
        if (amountToBurn > 0){
            _balances[_dexPairAddress]-=amountToBurn;
            _balances[deadWallet]+=amountToBurn;
            emit Transfer(_dexPairAddress,deadWallet,amountToBurn);
        }
        IDexPair pair = IDexPair(_dexPairAddress);
        pair.sync();
        emit ManualNukeLP();
        return true;
    }
    
    function SetupEnableTrading() external onlyOwner{
        require(LaunchTimestamp==0,"AlreadyLaunched");
        LaunchTimestamp=block.timestamp;
        maxWalletBalance = InitialSupply * 20 / 1000;
        maxTransactionAmount = InitialSupply * 200 / 10000;
        emit OnEnableTrading();
    }
    receive() external payable {}

    function getOwner() external view override returns (address) {return owner();}
    function name() external pure override returns (string memory) {return _name;}
    function symbol() external pure override returns (string memory) {return _symbol;}
    function decimals() external pure override returns (uint8) {return _decimals;}
    function totalSupply() external pure override returns (uint) {return InitialSupply;}
    function balanceOf(address account) public view override returns (uint) {return _balances[account];}
    function isExcludedFromLimits(address account) public view returns(bool) {return excludedFromLimits[account];}
    function transfer(address recipient, uint amount) external override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }
    function allowance(address _owner, address spender) external view override returns (uint) {
        return _allowances[_owner][spender];
    }
    function approve(address spender, uint amount) external override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }
    function _approve(address owner, address spender, uint amount) private {
        require(owner != address(0), "Approve from zero");
        require(spender != address(0), "Approve to zero");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function transferFrom(address sender, address recipient, uint amount) external override returns (bool) {
        _transfer(sender, recipient, amount);
        uint currentAllowance = _allowances[sender][msg.sender];
        require(currentAllowance >= amount, "Transfer > allowance");
        _approve(sender, msg.sender, currentAllowance - amount);
        return true;
    }
    function increaseAllowance(address spender, uint addedValue) external returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender] + addedValue);
        return true;
    }
    function decreaseAllowance(address spender, uint subtractedValue) external returns (bool) {
        uint currentAllowance = _allowances[msg.sender][spender];
        require(currentAllowance >= subtractedValue, "<0 allowance");
        _approve(msg.sender, spender, currentAllowance - subtractedValue);
        return true;
    }
    function emergencyETHrecovery(uint256 amountPercentage) external onlyOwner {
        uint256 amountETH = address(this).balance;
        payable(msg.sender).transfer(amountETH * amountPercentage / 100);
        emit RecoverETH();
    }
    function emergencyTokenrecovery(address tokenAddress, uint256 amountPercentage) external onlyOwner {
        require(tokenAddress!=address(0)&&tokenAddress!=address(_dexPairAddress)&&tokenAddress!=address(this));
        IERC20 token = IERC20(tokenAddress);
        uint256 tokenAmount = token.balanceOf(address(this));
        token.transfer(msg.sender, tokenAmount * amountPercentage / 100);
        emit RecoverTokens(tokenAmount);
    }
    //events
    event ManualNukeLP();
    event AutoNukeLP();
    event BlacklistStatusChange(bool status);
    event SwapThresholdChange(uint threshold);
    event OverLiquifiedThresholdChange(uint threshold);
    event OnSetTaxes(uint buy, uint sell, uint transfer_, uint project,uint liquidity);
    event ManualSwapChange(bool status);
    event MaxWalletBalanceUpdated(uint256 percent);
    event MaxTransactionAmountUpdated(uint256 percent);
    event ExcludeAccount(address account, bool exclude);
    event ExcludeFromLimits(address account, bool exclude);
    event OwnerSwap();
    event OnEnableTrading();
    event RecoverETH();
    event BlacklistUpdated();
    event NewPairSet(address Pair, bool Add);
    event NewRouterSet(address _newdex);
    event NewProjectWalletSet(address _address);
    event RecoverTokens(uint256 amount);

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"AutoNukeLP","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"BlacklistStatusChange","type":"event"},{"anonymous":false,"inputs":[],"name":"BlacklistUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"exclude","type":"bool"}],"name":"ExcludeAccount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"exclude","type":"bool"}],"name":"ExcludeFromLimits","type":"event"},{"anonymous":false,"inputs":[],"name":"ManualNukeLP","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"ManualSwapChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"percent","type":"uint256"}],"name":"MaxTransactionAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"percent","type":"uint256"}],"name":"MaxWalletBalanceUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Pair","type":"address"},{"indexed":false,"internalType":"bool","name":"Add","type":"bool"}],"name":"NewPairSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"}],"name":"NewProjectWalletSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_newdex","type":"address"}],"name":"NewRouterSet","type":"event"},{"anonymous":false,"inputs":[],"name":"OnEnableTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sell","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"transfer_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"project","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"OnSetTaxes","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"threshold","type":"uint256"}],"name":"OverLiquifiedThresholdChange","type":"event"},{"anonymous":false,"inputs":[],"name":"OwnerSwap","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"RecoverETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RecoverTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"threshold","type":"uint256"}],"name":"SwapThresholdChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"ExcludeAccountFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"InitialSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"SetExcludedAccountFromLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"SetLPreceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"SetMaxTransactionAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"SetMaxWalletBalancePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newdex","type":"address"}],"name":"SetNewRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newOverLiquifyTresholdPermille","type":"uint256"}],"name":"SetOverLiquifiedTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"Pair","type":"address"},{"internalType":"bool","name":"Add","type":"bool"}],"name":"SetPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"SetProjectWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"},{"internalType":"uint256","name":"transfer_","type":"uint256"},{"internalType":"uint256","name":"project","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"SetTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"SetupEnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"SwapContractToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"manual","type":"bool"}],"name":"SwitchManualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blacklistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"emergencyETHrecovery","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"emergencyTokenrecovery","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBurnedTokens","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":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastLpBurnTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastManualLpBurnTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualBurnFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualBurnLPTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"overLiquifyTreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentForLPBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"projectTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_frequencyInSeconds","type":"uint256"},{"internalType":"uint256","name":"_percent","type":"uint256"},{"internalType":"bool","name":"_Enabled","type":"bool"}],"name":"setAutoLPBurnSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSwapTresholdPermille","type":"uint256"}],"name":"setSwapTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052603c60068181556007919091556050600855600060098190556103e8600a55600b91909155610258600c55600d5560646010556109606011556104b0601355601680546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d17909155601880549091167351fcfdbbdfb42a2599f88db2e75efb77b2e4cd2e1790556019805461010160a81b61ffff60a81b19909116179055348015620000af57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000620001016009600a6200057d565b6200011090620f424062000595565b905080600160006200012a6000546001600160a01b031690565b6001600160a01b03168152602081019190915260400160002055620001576000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200019d91815260200190565b60405180910390a360198054336001600160a01b031991821617909155601654601580546001600160a01b039092169190921681179091556040805163c45a015560e01b8152905163c45a0155916004818101926020929091908290030181865afa15801562000211573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002379190620005af565b6001600160a01b031663c9c6539630601560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200029a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c09190620005af565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200030e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003349190620005af565b601780546001600160a01b0319166001600160a01b039290921691821790556000908152600560205260408120805460ff1916600190811790915590600490620003866000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790556016549091168152600490925280822080548416600190811790915530835290822080549093168117909255600390620003f66000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff1995861617905560039092527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c8054841660019081179091553083529120805490921617905550620005da565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004bf578160001904821115620004a357620004a362000468565b80851615620004b157918102915b93841c939080029062000483565b509250929050565b600082620004d85750600162000577565b81620004e75750600062000577565b81600181146200050057600281146200050b576200052b565b600191505062000577565b60ff8411156200051f576200051f62000468565b50506001821b62000577565b5060208310610133831016604e8410600b841016171562000550575081810a62000577565b6200055c83836200047e565b806000190482111562000573576200057362000468565b0290505b92915050565b60006200058e60ff841683620004c7565b9392505050565b808202811582820484141762000577576200057762000468565b600060208284031215620005c257600080fd5b81516001600160a01b03811681146200058e57600080fd5b6133d880620005ea6000396000f3fe60806040526004361061037a5760003560e01c80638da5cb5b116101d1578063c1c2eb6311610102578063dd62ed3e116100a0578063e5e31b131161006f578063e5e31b13146109eb578063f2fde38b14610a1b578063f40a563a14610a3b578063f7fcac2e14610a5b57600080fd5b8063dd62ed3e1461094f578063e0d2f9eb14610995578063e3928c8a146109b5578063e52fb9ec146109d557600080fd5b8063cc1776d3116100dc578063cc1776d3146108d3578063cfd1940e146108e9578063d24cd3ec14610909578063dbe66ca01461091f57600080fd5b8063c1c2eb6314610870578063c3f4f54f14610890578063c8c8ebe4146108bd57600080fd5b8063a457c2d71161016f578063baa88ea911610149578063baa88ea914610804578063bbde77c114610824578063bc43d8491461083a578063be617fa01461085a57600080fd5b8063a457c2d7146107ae578063a4c82a00146107ce578063a9059cbb146107e457600080fd5b806397ab21c0116101ab57806397ab21c01461073857806397e78f351461075857806398d7e721146107785780639ec22c0e1461079857600080fd5b80638da5cb5b146106fa57806395899ecf1461071857806395d89b41146103a857600080fd5b806341aec357116102ab578063730c18881161024957806384168dda1161022357806384168dda14610667578063868b014114610687578063893d20e8146106a7578063896648c1146106d957600080fd5b8063730c18881461061c5780637b9e987a1461063c5780638124f7ac1461065157600080fd5b806351bc3c851161028557806351bc3c85146105775780635cce86cd1461059857806370a08231146105d1578063715018a61461060757600080fd5b806341aec3571461053757806346e35f031461054c5780634f7041a51461056157600080fd5b80631eb25d13116103185780632c3e486c116102f25780632c3e486c146104c45780632e82f1a0146104da578063313ce567146104fb578063395093511461051757600080fd5b80631eb25d131461047a57806323b872dd1461048f5780632b112e49146104af57600080fd5b80630eff4c64116103545780630eff4c641461041557806318160ddd14610439578063184c16c51461044e578063199ffc721461046457600080fd5b8063065f4b411461038657806306fdde03146103a8578063095ea7b3146103e557600080fd5b3661038157005b600080fd5b34801561039257600080fd5b506103a66103a1366004612e03565b610a7b565b005b3480156103b457600080fd5b506040805180820182526005815264444f474d4160d81b602082015290516103dc9190612e1c565b60405180910390f35b3480156103f157600080fd5b50610405610400366004612e82565b610b2e565b60405190151581526020016103dc565b34801561042157600080fd5b5061042b600c5481565b6040519081526020016103dc565b34801561044557600080fd5b5061042b610b45565b34801561045a57600080fd5b5061042b60135481565b34801561047057600080fd5b5061042b60105481565b34801561048657600080fd5b5061042b610b65565b34801561049b57600080fd5b506104056104aa366004612eae565b610b81565b3480156104bb57600080fd5b5061042b610c18565b3480156104d057600080fd5b5061042b60115481565b3480156104e657600080fd5b5060195461040590600160b01b900460ff1681565b34801561050757600080fd5b50604051600981526020016103dc565b34801561052357600080fd5b50610405610532366004612e82565b610c58565b34801561054357600080fd5b506103a6610c8f565b34801561055857600080fd5b50610405610cfd565b34801561056d57600080fd5b5061042b60065481565b34801561058357600080fd5b5060195461040590600160b81b900460ff1681565b3480156105a457600080fd5b506104056105b3366004612eef565b6001600160a01b031660009081526003602052604090205460ff1690565b3480156105dd57600080fd5b5061042b6105ec366004612eef565b6001600160a01b031660009081526001602052604090205490565b34801561061357600080fd5b506103a6610d42565b34801561062857600080fd5b506103a6610637366004612f21565b610dc5565b34801561064857600080fd5b506103a6610f08565b34801561065d57600080fd5b5061042b60085481565b34801561067357600080fd5b506103a6610682366004612e82565b61101a565b34801561069357600080fd5b506103a66106a2366004612f5a565b6111d5565b3480156106b357600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016103dc565b3480156106e557600080fd5b5060195461040590600160a81b900460ff1681565b34801561070657600080fd5b506000546001600160a01b03166106c1565b34801561072457600080fd5b506103a6610733366004612f77565b611266565b34801561074457600080fd5b506103a6610753366004612e03565b611329565b34801561076457600080fd5b506103a6610773366004612eef565b611440565b34801561078457600080fd5b50610405610793366004612e03565b61151b565b3480156107a457600080fd5b5061042b60145481565b3480156107ba57600080fd5b506104056107c9366004612e82565b6117d8565b3480156107da57600080fd5b5061042b60125481565b3480156107f057600080fd5b506104056107ff366004612e82565b611854565b34801561081057600080fd5b506103a661081f366004612fb0565b611861565b34801561083057600080fd5b5061042b600f5481565b34801561084657600080fd5b506103a6610855366004612e03565b6119cd565b34801561086657600080fd5b5061042b60095481565b34801561087c57600080fd5b506103a661088b366004612e03565b611a4a565b34801561089c57600080fd5b5061dead60005260016020526000805160206133638339815191525461042b565b3480156108c957600080fd5b5061042b600e5481565b3480156108df57600080fd5b5061042b60075481565b3480156108f557600080fd5b506103a6610904366004612e03565b611b5e565b34801561091557600080fd5b5061042b600a5481565b34801561092b57600080fd5b5061040561093a366004612eef565b60046020526000908152604090205460ff1681565b34801561095b57600080fd5b5061042b61096a366004612feb565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156109a157600080fd5b506103a66109b0366004612f77565b611bda565b3480156109c157600080fd5b506103a66109d0366004612eef565b611ced565b3480156109e157600080fd5b5061042b600b5481565b3480156109f757600080fd5b50610405610a06366004612eef565b60056020526000908152604090205460ff1681565b348015610a2757600080fd5b506103a6610a36366004612eef565b611dc8565b348015610a4757600080fd5b506103a6610a56366004612f77565b611ec1565b348015610a6757600080fd5b506103a6610a76366004612eef565b611fda565b33610a8e6000546001600160a01b031690565b6001600160a01b031614610abd5760405162461bcd60e51b8152600401610ab490613019565b60405180910390fd5b47336108fc6064610ace8585613064565b610ad8919061307b565b6040518115909202916000818181858888f19350505050158015610b00573d6000803e3d6000fd5b506040517fbfeaf8c13ada34fe89b506c8975a67daaf69c220fef97229c731f6cf3b3e741e90600090a15050565b6000610b3b338484612063565b5060015b92915050565b6000610b536009600a613181565b610b6090620f4240613064565b905090565b610b716009600a613181565b610b7e90620f4240613064565b81565b6000610b8e848484612156565b6001600160a01b038416600090815260026020908152604080832033845290915290205482811015610bf95760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b6044820152606401610ab4565b610c0d8533610c088685613190565b612063565b506001949350505050565b61dead6000908152600160205260008051602061336383398151915254610c416009600a613181565b610c4e90620f4240613064565b610b609190613190565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610b3b918590610c089086906131a3565b33610ca26000546001600160a01b031690565b6001600160a01b031614610cc85760405162461bcd60e51b8152600401610ab490613019565b610cd2600061229b565b6040517f703db25eb5fd328335fc797436bbbbd25d5575588bd991102facd962c4d41b9290600090a1565b60006103e8600c54610d0d610c18565b610d179190613064565b610d21919061307b565b6017546001600160a01b031660009081526001602052604090205411919050565b33610d556000546001600160a01b031690565b6001600160a01b031614610d7b5760405162461bcd60e51b8152600401610ab490613019565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b33610dd86000546001600160a01b031690565b6001600160a01b031614610dfe5760405162461bcd60e51b8152600401610ab490613019565b610258831015610e6c5760405162461bcd60e51b815260206004820152603360248201527f63616e6e6f7420736574206275796261636b206d6f7265206f6674656e207468604482015272616e206576657279203130206d696e7574657360681b6064820152608401610ab4565b6103e88211158015610e7c575060015b610ee15760405162461bcd60e51b815260206004820152603060248201527f4d75737420736574206175746f204c50206275726e2070657263656e7420626560448201526f747765656e20302520616e642031302560801b6064820152608401610ab4565b60119290925560105560198054911515600160b01b0260ff60b01b19909216919091179055565b33610f1b6000546001600160a01b031690565b6001600160a01b031614610f415760405162461bcd60e51b8152600401610ab490613019565b600d5415610f835760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e53185d5b98da1959608a1b6044820152606401610ab4565b42600d556103e8610f966009600a613181565b610fa390620f4240613064565b610fae906014613064565b610fb8919061307b565b600f55612710610fca6009600a613181565b610fd790620f4240613064565b610fe29060c8613064565b610fec919061307b565b600e556040517f2cb945e0498987ef06dbd68025b0bc276116c63345296379c28a8e8f09b47dc190600090a1565b3361102d6000546001600160a01b031690565b6001600160a01b0316146110535760405162461bcd60e51b8152600401610ab490613019565b6001600160a01b0382161580159061107957506017546001600160a01b03838116911614155b801561108e57506001600160a01b0382163014155b61109757600080fd5b6040516370a0823160e01b815230600482015282906000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156110e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110491906131b6565b90506001600160a01b03821663a9059cbb3360646111228786613064565b61112c919061307b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611177573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119b91906131cf565b506040518181527f567295618043fa7c5a9781a71d338407d59e2f8f20079734425da602e2ce9c229060200160405180910390a150505050565b336111e86000546001600160a01b031690565b6001600160a01b03161461120e5760405162461bcd60e51b8152600401610ab490613019565b60198054821515600160b81b0260ff60b81b199091161790556040517f3db17fb4d29ca5a33dc4750f7205263855fb8b82cc89d6c418a04b60f58b429d9061125b90831515815260200190565b60405180910390a150565b336112796000546001600160a01b031690565b6001600160a01b03161461129f5760405162461bcd60e51b8152600401610ab490613019565b6001600160a01b0382166112c55760405162461bcd60e51b8152600401610ab4906131ec565b6001600160a01b038216600081815260036020908152604091829020805460ff19168515159081179091558251938452908301527f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc9291015b60405180910390a15050565b3361133c6000546001600160a01b031690565b6001600160a01b0316146113625760405162461bcd60e51b8152600401610ab490613019565b601981101561139f5760405162461bcd60e51b81526020600482015260096024820152686d696e20302e32352560b81b6044820152606401610ab4565b6127108111156113dc5760405162461bcd60e51b81526020600482015260086024820152676d6178203130302560c01b6044820152606401610ab4565b612710816113ec6009600a613181565b6113f990620f4240613064565b6114039190613064565b61140d919061307b565b600e556040518181527f7c1cb3702d8e1fa6d24b12dd90670ab69c6d66d58233103d37da8b07d6b850ac9060200161125b565b336114536000546001600160a01b031690565b6001600160a01b0316146114795760405162461bcd60e51b8152600401610ab490613019565b6001600160a01b03811661149f5760405162461bcd60e51b8152600401610ab4906131ec565b6016546001600160a01b03908116908216036114cd5760405162461bcd60e51b8152600401610ab490613223565b601680546001600160a01b0319166001600160a01b0383169081179091556040519081527f117661539ed67d391940fa7b78853c234b4e9a40d616d75923ae8db26672833a9060200161125b565b6000336115306000546001600160a01b031690565b6001600160a01b0316146115565760405162461bcd60e51b8152600401610ab490613019565b60135460145461156691906131a3565b42116115b45760405162461bcd60e51b815260206004820181905260248201527f4d757374207761697420666f7220636f6f6c646f776e20746f2066696e6973686044820152606401610ab4565b6103e88211156116195760405162461bcd60e51b815260206004820152602a60248201527f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60448201526906b656e7320696e204c560b41b6064820152608401610ab4565b426014556017546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a0823190602401602060405180830381865afa158015611668573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168c91906131b6565b9050600061271061169d8584613064565b6116a7919061307b565b90508015611742576017546001600160a01b0316600090815260016020526040812080548392906116d9908490613190565b909155505061dead60009081526001602052600080516020613363833981519152805483929061170a9084906131a3565b909155505060175460405182815261dead916001600160a01b0316906000805160206133838339815191529060200160405180910390a35b6017546040805160016209351760e01b0319815290516001600160a01b0390921691829163fff6cae991600480830192600092919082900301818387803b15801561178c57600080fd5b505af11580156117a0573d6000803e3d6000fd5b50506040517f8462566617872a3fbab94534675218431ff9e204063ee3f4f43d965626a39abb925060009150a1506001949350505050565b3360009081526002602090815260408083206001600160a01b03861684529091528120548281101561183b5760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b6044820152606401610ab4565b61184a3385610c088685613190565b5060019392505050565b6000610b3b338484612156565b336118746000546001600160a01b031690565b6001600160a01b03161461189a5760405162461bcd60e51b8152600401610ab490613019565b60968086118015906118ac5750808511155b80156118b85750808411155b6118f95760405162461bcd60e51b81526020600482015260126024820152710a8c2f040caf0c6cacac8e640dac2f0a8c2f60731b6044820152606401610ab4565b6103e861190683856131a3565b1461195d5760405162461bcd60e51b815260206004820152602160248201527f546178657320646f6e27742061646420757020746f2064656e6f6d696e61746f6044820152603960f91b6064820152608401610ab4565b600686905560078590556008849055600a8390556009829055604080518781526020810187905290810185905260608101849052608081018390527f07d167ef63e413076f3e7e19f733b66f7ab5fd83fd7b437428f115315687ef6e9060a00160405180910390a1505050505050565b336119e06000546001600160a01b031690565b6001600160a01b031614611a065760405162461bcd60e51b8152600401610ab490613019565b6103e8811115611a1557600080fd5b600c8190556040518181527fa072eee57b8e01913ba01eab29d8a81117cf780e6c8984a3494477ce9cee846d9060200161125b565b33611a5d6000546001600160a01b031690565b6001600160a01b031614611a835760405162461bcd60e51b8152600401610ab490613019565b600a811015611abd5760405162461bcd60e51b81526020600482015260066024820152656d696e20312560d01b6044820152606401610ab4565b6103e8811115611afa5760405162461bcd60e51b81526020600482015260086024820152676d6178203130302560c01b6044820152606401610ab4565b6103e881611b0a6009600a613181565b611b1790620f4240613064565b611b219190613064565b611b2b919061307b565b600f556040518181527f9cbd2e55e2abf49d29273c1b9fb343c2828844b2aec156cfe2aec98ae1b72a999060200161125b565b33611b716000546001600160a01b031690565b6001600160a01b031614611b975760405162461bcd60e51b8152600401610ab490613019565b600a811115611ba557600080fd5b600b8190556040518181527fc075380b8410207b8cc14f0d254ab8c8a6766469631275e4500db835a1ba02cc9060200161125b565b33611bed6000546001600160a01b031690565b6001600160a01b031614611c135760405162461bcd60e51b8152600401610ab490613019565b306001600160a01b03831603611c6b5760405162461bcd60e51b815260206004820152601a60248201527f63616e277420496e636c7564652074686520636f6e74726163740000000000006044820152606401610ab4565b6001600160a01b038216611c915760405162461bcd60e51b8152600401610ab4906131ec565b6001600160a01b038216600081815260046020908152604091829020805460ff19168515159081179091558251938452908301527fa22b25479919d4ac678f064a05daa1ee9c0adc3b8198942ea45255e364e04ed4910161131d565b33611d006000546001600160a01b031690565b6001600160a01b031614611d265760405162461bcd60e51b8152600401610ab490613019565b6001600160a01b038116611d4c5760405162461bcd60e51b8152600401610ab4906131ec565b6018546001600160a01b0390811690821603611d7a5760405162461bcd60e51b8152600401610ab490613223565b601880546001600160a01b0319166001600160a01b0383169081179091556040519081527f73eacebfa23699e5f8d165f5e2b8c7547f7959d78579f18dbcd10af8b75ce9d89060200161125b565b33611ddb6000546001600160a01b031690565b6001600160a01b031614611e015760405162461bcd60e51b8152600401610ab490613019565b6001600160a01b038116611e665760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ab4565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b33611ed46000546001600160a01b031690565b6001600160a01b031614611efa5760405162461bcd60e51b8152600401610ab490613019565b6017546001600160a01b0390811690831603611f585760405162461bcd60e51b815260206004820152601960248201527f63616e2774206368616e676520756e69737761702070616972000000000000006044820152606401610ab4565b6001600160a01b038216611f7e5760405162461bcd60e51b8152600401610ab4906131ec565b6001600160a01b038216600081815260056020908152604091829020805460ff19168515159081179091558251938452908301527f6765bb5e5ecad4581ce8f9322a9c218e75a54a7c4af6217752833adb834511ac910161131d565b33611fed6000546001600160a01b031690565b6001600160a01b0316146120135760405162461bcd60e51b8152600401610ab490613019565b6018546001600160a01b03908116908216036120415760405162461bcd60e51b8152600401610ab490613223565b601980546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166120ad5760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b6044820152606401610ab4565b6001600160a01b0382166120f55760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b6044820152606401610ab4565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166121a15760405162461bcd60e51b81526020600482015260126024820152715472616e736665722066726f6d207a65726f60701b6044820152606401610ab4565b6001600160a01b0382166121ea5760405162461bcd60e51b815260206004820152601060248201526f5472616e7366657220746f207a65726f60801b6044820152606401610ab4565b6001600160a01b03831660009081526004602052604090205460ff168061222957506001600160a01b03821660009081526004602052604090205460ff165b1561223e57612239838383612457565b505050565b6000600d54116122905760405162461bcd60e51b815260206004820152601760248201527f74726164696e67206e6f742079657420656e61626c65640000000000000000006044820152606401610ab4565b612239838383612558565b6019805460ff60a01b1916600160a01b17905530600090815260016020526040812054600a546009549192916122d191906131a3565b600b546017546001600160a01b0316600090815260016020526040812054929350916103e89161230091613064565b61230a919061307b565b90508160000361231c57505050612447565b8315612338575030600090815260016020526040902054612348565b8083101561234857505050612447565b6000612352610cfd565b6123745782600954836123659190613064565b61236f919061307b565b612377565b60005b905060006123858284613190565b9050600061239460028461307b565b905060006123a283836131a3565b9050476123ae82612a07565b60006123ba8247613190565b905085156123e7576000836123cf8684613064565b6123d9919061307b565b90506123e58582612b56565b505b6018546040516000916001600160a01b03169047908381818185875af1925050503d8060008114612434576040519150601f19603f3d011682016040523d82523d6000602084013e612439565b606091505b505050505050505050505050505b506019805460ff60a01b19169055565b6001600160a01b038316600090815260016020526040902054818110156124bb5760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610ab4565b6001600160a01b038416600090815260016020526040812080548492906124e3908490613190565b90915550506001600160a01b038316600090815260016020526040812080548492906125109084906131a3565b92505081905550826001600160a01b0316846001600160a01b03166000805160206133838339815191528460405161254a91815260200190565b60405180910390a350505050565b6001600160a01b038316600090815260016020526040902054818110156125bc5760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610ab4565b6001600160a01b03841660009081526003602052604081205460ff16806125fb57506001600160a01b03841660009081526003602052604090205460ff165b6001600160a01b03861660009081526005602052604090205490915060ff168015612624575080155b156126d657600e5483111561268c5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610ab4565b6001600160a01b038416600090815260016020526040902054600f546126b285836131a3565b11156126d05760405162461bcd60e51b8152600401610ab49061324c565b50612779565b6001600160a01b03841660009081526005602052604090205460ff1680156126fc575080155b1561277957600e548311156127795760405162461bcd60e51b815260206004820152603a60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201527f206d617853656c6c5472616e73616374696f6e416d6f756e742e0000000000006064820152608401610ab4565b6001600160a01b0380861660009081526005602052604080822054928716825281205460ff92831692169081156127d857600d5461012c906127bc9082906131a3565b4210156127cc5760c891506127d2565b60075491505b50612853565b821561280957600d54603c906127ef9082906131a3565b4210156127ff57603c91506127d2565b5050600654612853565b6001600160a01b038716600090815260016020526040902054600f5461282f88836131a3565b111561284d5760405162461bcd60e51b8152600401610ab49061324c565b50506008545b6017546001600160a01b0389811691161480159061287b5750601954600160b81b900460ff16155b80156128915750601954600160a01b900460ff16155b156128a0576128a0600061229b565b601954600160a01b900460ff161580156128d257506001600160a01b03871660009081526005602052604090205460ff165b80156128e75750601954600160b01b900460ff165b801561290257506011546012546128fe91906131a3565b4210155b156129115761290f612c0a565b505b600061292d8783600954600a5461292891906131a3565b612dce565b9050600061293b8289613190565b6001600160a01b038b16600090815260016020526040812080549293508a92909190612968908490613190565b9091555050306000908152600160205260408120805484929061298c9084906131a3565b90915550506001600160a01b038916600090815260016020526040812080548392906129b99084906131a3565b92505081905550886001600160a01b03168a6001600160a01b0316600080516020613383833981519152836040516129f391815260200190565b60405180910390a350505050505050505050565b601554612a1f9030906001600160a01b031683612063565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612a5457612a54613290565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612aad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ad191906132a6565b81600181518110612ae457612ae4613290565b6001600160a01b03928316602091820292909201015260155460405163791ac94760e01b815291169063791ac94790612b2a9085906000908690309042906004016132c3565b600060405180830381600087803b158015612b4457600080fd5b505af192505050801561223957505050565b601554612b6e9030906001600160a01b031684612063565b60155460195460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015612bde573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612c039190613334565b5050505050565b426012556017546040516370a0823160e01b81526001600160a01b039091166004820152600090819030906370a0823190602401602060405180830381865afa158015612c5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c7f91906131b6565b9050600061271060105483612c949190613064565b612c9e919061307b565b90508015612d39576017546001600160a01b031660009081526001602052604081208054839290612cd0908490613190565b909155505061dead600090815260016020526000805160206133638339815191528054839290612d019084906131a3565b909155505060175460405182815261dead916001600160a01b0316906000805160206133838339815191529060200160405180910390a35b6017546040805160016209351760e01b0319815290516001600160a01b0390921691829163fff6cae991600480830192600092919082900301818387803b158015612d8357600080fd5b505af1158015612d97573d6000803e3d6000fd5b50506040517f454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d925060009150a16001935050505090565b6000612ddc6103e880613064565b82612de78587613064565b612df19190613064565b612dfb919061307b565b949350505050565b600060208284031215612e1557600080fd5b5035919050565b600060208083528351808285015260005b81811015612e4957858101830151858201604001528201612e2d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114612e7f57600080fd5b50565b60008060408385031215612e9557600080fd5b8235612ea081612e6a565b946020939093013593505050565b600080600060608486031215612ec357600080fd5b8335612ece81612e6a565b92506020840135612ede81612e6a565b929592945050506040919091013590565b600060208284031215612f0157600080fd5b8135612f0c81612e6a565b9392505050565b8015158114612e7f57600080fd5b600080600060608486031215612f3657600080fd5b83359250602084013591506040840135612f4f81612f13565b809150509250925092565b600060208284031215612f6c57600080fd5b8135612f0c81612f13565b60008060408385031215612f8a57600080fd5b8235612f9581612e6a565b91506020830135612fa581612f13565b809150509250929050565b600080600080600060a08688031215612fc857600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60008060408385031215612ffe57600080fd5b823561300981612e6a565b91506020830135612fa581612e6a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610b3f57610b3f61304e565b60008261309857634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156130d85781600019048211156130be576130be61304e565b808516156130cb57918102915b93841c93908002906130a2565b509250929050565b6000826130ef57506001610b3f565b816130fc57506000610b3f565b8160018114613112576002811461311c57613138565b6001915050610b3f565b60ff84111561312d5761312d61304e565b50506001821b610b3f565b5060208310610133831016604e8410600b841016171561315b575081810a610b3f565b613165838361309d565b80600019048211156131795761317961304e565b029392505050565b6000612f0c60ff8416836130e0565b81810381811115610b3f57610b3f61304e565b80820180821115610b3f57610b3f61304e565b6000602082840312156131c857600080fd5b5051919050565b6000602082840312156131e157600080fd5b8151612f0c81612f13565b60208082526017908201527f416464726573732073686f756c64206e6f742062652030000000000000000000604082015260600190565b6020808252600f908201526e416464726573732069732073616d6560881b604082015260600190565b60208082526024908201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6040820152633ab73a1760e11b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156132b857600080fd5b8151612f0c81612e6a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156133135784516001600160a01b0316835293830193918301916001016132ee565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561334957600080fd5b835192506020840151915060408401519050925092509256feb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164dddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122036025e5b4c119a9baf5fe2b79924b0e6238e2007d0f45f5fe2e4a1007fc3e57e64736f6c63430008110033

Deployed Bytecode

0x60806040526004361061037a5760003560e01c80638da5cb5b116101d1578063c1c2eb6311610102578063dd62ed3e116100a0578063e5e31b131161006f578063e5e31b13146109eb578063f2fde38b14610a1b578063f40a563a14610a3b578063f7fcac2e14610a5b57600080fd5b8063dd62ed3e1461094f578063e0d2f9eb14610995578063e3928c8a146109b5578063e52fb9ec146109d557600080fd5b8063cc1776d3116100dc578063cc1776d3146108d3578063cfd1940e146108e9578063d24cd3ec14610909578063dbe66ca01461091f57600080fd5b8063c1c2eb6314610870578063c3f4f54f14610890578063c8c8ebe4146108bd57600080fd5b8063a457c2d71161016f578063baa88ea911610149578063baa88ea914610804578063bbde77c114610824578063bc43d8491461083a578063be617fa01461085a57600080fd5b8063a457c2d7146107ae578063a4c82a00146107ce578063a9059cbb146107e457600080fd5b806397ab21c0116101ab57806397ab21c01461073857806397e78f351461075857806398d7e721146107785780639ec22c0e1461079857600080fd5b80638da5cb5b146106fa57806395899ecf1461071857806395d89b41146103a857600080fd5b806341aec357116102ab578063730c18881161024957806384168dda1161022357806384168dda14610667578063868b014114610687578063893d20e8146106a7578063896648c1146106d957600080fd5b8063730c18881461061c5780637b9e987a1461063c5780638124f7ac1461065157600080fd5b806351bc3c851161028557806351bc3c85146105775780635cce86cd1461059857806370a08231146105d1578063715018a61461060757600080fd5b806341aec3571461053757806346e35f031461054c5780634f7041a51461056157600080fd5b80631eb25d13116103185780632c3e486c116102f25780632c3e486c146104c45780632e82f1a0146104da578063313ce567146104fb578063395093511461051757600080fd5b80631eb25d131461047a57806323b872dd1461048f5780632b112e49146104af57600080fd5b80630eff4c64116103545780630eff4c641461041557806318160ddd14610439578063184c16c51461044e578063199ffc721461046457600080fd5b8063065f4b411461038657806306fdde03146103a8578063095ea7b3146103e557600080fd5b3661038157005b600080fd5b34801561039257600080fd5b506103a66103a1366004612e03565b610a7b565b005b3480156103b457600080fd5b506040805180820182526005815264444f474d4160d81b602082015290516103dc9190612e1c565b60405180910390f35b3480156103f157600080fd5b50610405610400366004612e82565b610b2e565b60405190151581526020016103dc565b34801561042157600080fd5b5061042b600c5481565b6040519081526020016103dc565b34801561044557600080fd5b5061042b610b45565b34801561045a57600080fd5b5061042b60135481565b34801561047057600080fd5b5061042b60105481565b34801561048657600080fd5b5061042b610b65565b34801561049b57600080fd5b506104056104aa366004612eae565b610b81565b3480156104bb57600080fd5b5061042b610c18565b3480156104d057600080fd5b5061042b60115481565b3480156104e657600080fd5b5060195461040590600160b01b900460ff1681565b34801561050757600080fd5b50604051600981526020016103dc565b34801561052357600080fd5b50610405610532366004612e82565b610c58565b34801561054357600080fd5b506103a6610c8f565b34801561055857600080fd5b50610405610cfd565b34801561056d57600080fd5b5061042b60065481565b34801561058357600080fd5b5060195461040590600160b81b900460ff1681565b3480156105a457600080fd5b506104056105b3366004612eef565b6001600160a01b031660009081526003602052604090205460ff1690565b3480156105dd57600080fd5b5061042b6105ec366004612eef565b6001600160a01b031660009081526001602052604090205490565b34801561061357600080fd5b506103a6610d42565b34801561062857600080fd5b506103a6610637366004612f21565b610dc5565b34801561064857600080fd5b506103a6610f08565b34801561065d57600080fd5b5061042b60085481565b34801561067357600080fd5b506103a6610682366004612e82565b61101a565b34801561069357600080fd5b506103a66106a2366004612f5a565b6111d5565b3480156106b357600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016103dc565b3480156106e557600080fd5b5060195461040590600160a81b900460ff1681565b34801561070657600080fd5b506000546001600160a01b03166106c1565b34801561072457600080fd5b506103a6610733366004612f77565b611266565b34801561074457600080fd5b506103a6610753366004612e03565b611329565b34801561076457600080fd5b506103a6610773366004612eef565b611440565b34801561078457600080fd5b50610405610793366004612e03565b61151b565b3480156107a457600080fd5b5061042b60145481565b3480156107ba57600080fd5b506104056107c9366004612e82565b6117d8565b3480156107da57600080fd5b5061042b60125481565b3480156107f057600080fd5b506104056107ff366004612e82565b611854565b34801561081057600080fd5b506103a661081f366004612fb0565b611861565b34801561083057600080fd5b5061042b600f5481565b34801561084657600080fd5b506103a6610855366004612e03565b6119cd565b34801561086657600080fd5b5061042b60095481565b34801561087c57600080fd5b506103a661088b366004612e03565b611a4a565b34801561089c57600080fd5b5061dead60005260016020526000805160206133638339815191525461042b565b3480156108c957600080fd5b5061042b600e5481565b3480156108df57600080fd5b5061042b60075481565b3480156108f557600080fd5b506103a6610904366004612e03565b611b5e565b34801561091557600080fd5b5061042b600a5481565b34801561092b57600080fd5b5061040561093a366004612eef565b60046020526000908152604090205460ff1681565b34801561095b57600080fd5b5061042b61096a366004612feb565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156109a157600080fd5b506103a66109b0366004612f77565b611bda565b3480156109c157600080fd5b506103a66109d0366004612eef565b611ced565b3480156109e157600080fd5b5061042b600b5481565b3480156109f757600080fd5b50610405610a06366004612eef565b60056020526000908152604090205460ff1681565b348015610a2757600080fd5b506103a6610a36366004612eef565b611dc8565b348015610a4757600080fd5b506103a6610a56366004612f77565b611ec1565b348015610a6757600080fd5b506103a6610a76366004612eef565b611fda565b33610a8e6000546001600160a01b031690565b6001600160a01b031614610abd5760405162461bcd60e51b8152600401610ab490613019565b60405180910390fd5b47336108fc6064610ace8585613064565b610ad8919061307b565b6040518115909202916000818181858888f19350505050158015610b00573d6000803e3d6000fd5b506040517fbfeaf8c13ada34fe89b506c8975a67daaf69c220fef97229c731f6cf3b3e741e90600090a15050565b6000610b3b338484612063565b5060015b92915050565b6000610b536009600a613181565b610b6090620f4240613064565b905090565b610b716009600a613181565b610b7e90620f4240613064565b81565b6000610b8e848484612156565b6001600160a01b038416600090815260026020908152604080832033845290915290205482811015610bf95760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b6044820152606401610ab4565b610c0d8533610c088685613190565b612063565b506001949350505050565b61dead6000908152600160205260008051602061336383398151915254610c416009600a613181565b610c4e90620f4240613064565b610b609190613190565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610b3b918590610c089086906131a3565b33610ca26000546001600160a01b031690565b6001600160a01b031614610cc85760405162461bcd60e51b8152600401610ab490613019565b610cd2600061229b565b6040517f703db25eb5fd328335fc797436bbbbd25d5575588bd991102facd962c4d41b9290600090a1565b60006103e8600c54610d0d610c18565b610d179190613064565b610d21919061307b565b6017546001600160a01b031660009081526001602052604090205411919050565b33610d556000546001600160a01b031690565b6001600160a01b031614610d7b5760405162461bcd60e51b8152600401610ab490613019565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b33610dd86000546001600160a01b031690565b6001600160a01b031614610dfe5760405162461bcd60e51b8152600401610ab490613019565b610258831015610e6c5760405162461bcd60e51b815260206004820152603360248201527f63616e6e6f7420736574206275796261636b206d6f7265206f6674656e207468604482015272616e206576657279203130206d696e7574657360681b6064820152608401610ab4565b6103e88211158015610e7c575060015b610ee15760405162461bcd60e51b815260206004820152603060248201527f4d75737420736574206175746f204c50206275726e2070657263656e7420626560448201526f747765656e20302520616e642031302560801b6064820152608401610ab4565b60119290925560105560198054911515600160b01b0260ff60b01b19909216919091179055565b33610f1b6000546001600160a01b031690565b6001600160a01b031614610f415760405162461bcd60e51b8152600401610ab490613019565b600d5415610f835760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e53185d5b98da1959608a1b6044820152606401610ab4565b42600d556103e8610f966009600a613181565b610fa390620f4240613064565b610fae906014613064565b610fb8919061307b565b600f55612710610fca6009600a613181565b610fd790620f4240613064565b610fe29060c8613064565b610fec919061307b565b600e556040517f2cb945e0498987ef06dbd68025b0bc276116c63345296379c28a8e8f09b47dc190600090a1565b3361102d6000546001600160a01b031690565b6001600160a01b0316146110535760405162461bcd60e51b8152600401610ab490613019565b6001600160a01b0382161580159061107957506017546001600160a01b03838116911614155b801561108e57506001600160a01b0382163014155b61109757600080fd5b6040516370a0823160e01b815230600482015282906000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156110e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110491906131b6565b90506001600160a01b03821663a9059cbb3360646111228786613064565b61112c919061307b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611177573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119b91906131cf565b506040518181527f567295618043fa7c5a9781a71d338407d59e2f8f20079734425da602e2ce9c229060200160405180910390a150505050565b336111e86000546001600160a01b031690565b6001600160a01b03161461120e5760405162461bcd60e51b8152600401610ab490613019565b60198054821515600160b81b0260ff60b81b199091161790556040517f3db17fb4d29ca5a33dc4750f7205263855fb8b82cc89d6c418a04b60f58b429d9061125b90831515815260200190565b60405180910390a150565b336112796000546001600160a01b031690565b6001600160a01b03161461129f5760405162461bcd60e51b8152600401610ab490613019565b6001600160a01b0382166112c55760405162461bcd60e51b8152600401610ab4906131ec565b6001600160a01b038216600081815260036020908152604091829020805460ff19168515159081179091558251938452908301527f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc9291015b60405180910390a15050565b3361133c6000546001600160a01b031690565b6001600160a01b0316146113625760405162461bcd60e51b8152600401610ab490613019565b601981101561139f5760405162461bcd60e51b81526020600482015260096024820152686d696e20302e32352560b81b6044820152606401610ab4565b6127108111156113dc5760405162461bcd60e51b81526020600482015260086024820152676d6178203130302560c01b6044820152606401610ab4565b612710816113ec6009600a613181565b6113f990620f4240613064565b6114039190613064565b61140d919061307b565b600e556040518181527f7c1cb3702d8e1fa6d24b12dd90670ab69c6d66d58233103d37da8b07d6b850ac9060200161125b565b336114536000546001600160a01b031690565b6001600160a01b0316146114795760405162461bcd60e51b8152600401610ab490613019565b6001600160a01b03811661149f5760405162461bcd60e51b8152600401610ab4906131ec565b6016546001600160a01b03908116908216036114cd5760405162461bcd60e51b8152600401610ab490613223565b601680546001600160a01b0319166001600160a01b0383169081179091556040519081527f117661539ed67d391940fa7b78853c234b4e9a40d616d75923ae8db26672833a9060200161125b565b6000336115306000546001600160a01b031690565b6001600160a01b0316146115565760405162461bcd60e51b8152600401610ab490613019565b60135460145461156691906131a3565b42116115b45760405162461bcd60e51b815260206004820181905260248201527f4d757374207761697420666f7220636f6f6c646f776e20746f2066696e6973686044820152606401610ab4565b6103e88211156116195760405162461bcd60e51b815260206004820152602a60248201527f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60448201526906b656e7320696e204c560b41b6064820152608401610ab4565b426014556017546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a0823190602401602060405180830381865afa158015611668573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168c91906131b6565b9050600061271061169d8584613064565b6116a7919061307b565b90508015611742576017546001600160a01b0316600090815260016020526040812080548392906116d9908490613190565b909155505061dead60009081526001602052600080516020613363833981519152805483929061170a9084906131a3565b909155505060175460405182815261dead916001600160a01b0316906000805160206133838339815191529060200160405180910390a35b6017546040805160016209351760e01b0319815290516001600160a01b0390921691829163fff6cae991600480830192600092919082900301818387803b15801561178c57600080fd5b505af11580156117a0573d6000803e3d6000fd5b50506040517f8462566617872a3fbab94534675218431ff9e204063ee3f4f43d965626a39abb925060009150a1506001949350505050565b3360009081526002602090815260408083206001600160a01b03861684529091528120548281101561183b5760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b6044820152606401610ab4565b61184a3385610c088685613190565b5060019392505050565b6000610b3b338484612156565b336118746000546001600160a01b031690565b6001600160a01b03161461189a5760405162461bcd60e51b8152600401610ab490613019565b60968086118015906118ac5750808511155b80156118b85750808411155b6118f95760405162461bcd60e51b81526020600482015260126024820152710a8c2f040caf0c6cacac8e640dac2f0a8c2f60731b6044820152606401610ab4565b6103e861190683856131a3565b1461195d5760405162461bcd60e51b815260206004820152602160248201527f546178657320646f6e27742061646420757020746f2064656e6f6d696e61746f6044820152603960f91b6064820152608401610ab4565b600686905560078590556008849055600a8390556009829055604080518781526020810187905290810185905260608101849052608081018390527f07d167ef63e413076f3e7e19f733b66f7ab5fd83fd7b437428f115315687ef6e9060a00160405180910390a1505050505050565b336119e06000546001600160a01b031690565b6001600160a01b031614611a065760405162461bcd60e51b8152600401610ab490613019565b6103e8811115611a1557600080fd5b600c8190556040518181527fa072eee57b8e01913ba01eab29d8a81117cf780e6c8984a3494477ce9cee846d9060200161125b565b33611a5d6000546001600160a01b031690565b6001600160a01b031614611a835760405162461bcd60e51b8152600401610ab490613019565b600a811015611abd5760405162461bcd60e51b81526020600482015260066024820152656d696e20312560d01b6044820152606401610ab4565b6103e8811115611afa5760405162461bcd60e51b81526020600482015260086024820152676d6178203130302560c01b6044820152606401610ab4565b6103e881611b0a6009600a613181565b611b1790620f4240613064565b611b219190613064565b611b2b919061307b565b600f556040518181527f9cbd2e55e2abf49d29273c1b9fb343c2828844b2aec156cfe2aec98ae1b72a999060200161125b565b33611b716000546001600160a01b031690565b6001600160a01b031614611b975760405162461bcd60e51b8152600401610ab490613019565b600a811115611ba557600080fd5b600b8190556040518181527fc075380b8410207b8cc14f0d254ab8c8a6766469631275e4500db835a1ba02cc9060200161125b565b33611bed6000546001600160a01b031690565b6001600160a01b031614611c135760405162461bcd60e51b8152600401610ab490613019565b306001600160a01b03831603611c6b5760405162461bcd60e51b815260206004820152601a60248201527f63616e277420496e636c7564652074686520636f6e74726163740000000000006044820152606401610ab4565b6001600160a01b038216611c915760405162461bcd60e51b8152600401610ab4906131ec565b6001600160a01b038216600081815260046020908152604091829020805460ff19168515159081179091558251938452908301527fa22b25479919d4ac678f064a05daa1ee9c0adc3b8198942ea45255e364e04ed4910161131d565b33611d006000546001600160a01b031690565b6001600160a01b031614611d265760405162461bcd60e51b8152600401610ab490613019565b6001600160a01b038116611d4c5760405162461bcd60e51b8152600401610ab4906131ec565b6018546001600160a01b0390811690821603611d7a5760405162461bcd60e51b8152600401610ab490613223565b601880546001600160a01b0319166001600160a01b0383169081179091556040519081527f73eacebfa23699e5f8d165f5e2b8c7547f7959d78579f18dbcd10af8b75ce9d89060200161125b565b33611ddb6000546001600160a01b031690565b6001600160a01b031614611e015760405162461bcd60e51b8152600401610ab490613019565b6001600160a01b038116611e665760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ab4565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b33611ed46000546001600160a01b031690565b6001600160a01b031614611efa5760405162461bcd60e51b8152600401610ab490613019565b6017546001600160a01b0390811690831603611f585760405162461bcd60e51b815260206004820152601960248201527f63616e2774206368616e676520756e69737761702070616972000000000000006044820152606401610ab4565b6001600160a01b038216611f7e5760405162461bcd60e51b8152600401610ab4906131ec565b6001600160a01b038216600081815260056020908152604091829020805460ff19168515159081179091558251938452908301527f6765bb5e5ecad4581ce8f9322a9c218e75a54a7c4af6217752833adb834511ac910161131d565b33611fed6000546001600160a01b031690565b6001600160a01b0316146120135760405162461bcd60e51b8152600401610ab490613019565b6018546001600160a01b03908116908216036120415760405162461bcd60e51b8152600401610ab490613223565b601980546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166120ad5760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b6044820152606401610ab4565b6001600160a01b0382166120f55760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b6044820152606401610ab4565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166121a15760405162461bcd60e51b81526020600482015260126024820152715472616e736665722066726f6d207a65726f60701b6044820152606401610ab4565b6001600160a01b0382166121ea5760405162461bcd60e51b815260206004820152601060248201526f5472616e7366657220746f207a65726f60801b6044820152606401610ab4565b6001600160a01b03831660009081526004602052604090205460ff168061222957506001600160a01b03821660009081526004602052604090205460ff165b1561223e57612239838383612457565b505050565b6000600d54116122905760405162461bcd60e51b815260206004820152601760248201527f74726164696e67206e6f742079657420656e61626c65640000000000000000006044820152606401610ab4565b612239838383612558565b6019805460ff60a01b1916600160a01b17905530600090815260016020526040812054600a546009549192916122d191906131a3565b600b546017546001600160a01b0316600090815260016020526040812054929350916103e89161230091613064565b61230a919061307b565b90508160000361231c57505050612447565b8315612338575030600090815260016020526040902054612348565b8083101561234857505050612447565b6000612352610cfd565b6123745782600954836123659190613064565b61236f919061307b565b612377565b60005b905060006123858284613190565b9050600061239460028461307b565b905060006123a283836131a3565b9050476123ae82612a07565b60006123ba8247613190565b905085156123e7576000836123cf8684613064565b6123d9919061307b565b90506123e58582612b56565b505b6018546040516000916001600160a01b03169047908381818185875af1925050503d8060008114612434576040519150601f19603f3d011682016040523d82523d6000602084013e612439565b606091505b505050505050505050505050505b506019805460ff60a01b19169055565b6001600160a01b038316600090815260016020526040902054818110156124bb5760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610ab4565b6001600160a01b038416600090815260016020526040812080548492906124e3908490613190565b90915550506001600160a01b038316600090815260016020526040812080548492906125109084906131a3565b92505081905550826001600160a01b0316846001600160a01b03166000805160206133838339815191528460405161254a91815260200190565b60405180910390a350505050565b6001600160a01b038316600090815260016020526040902054818110156125bc5760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610ab4565b6001600160a01b03841660009081526003602052604081205460ff16806125fb57506001600160a01b03841660009081526003602052604090205460ff165b6001600160a01b03861660009081526005602052604090205490915060ff168015612624575080155b156126d657600e5483111561268c5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610ab4565b6001600160a01b038416600090815260016020526040902054600f546126b285836131a3565b11156126d05760405162461bcd60e51b8152600401610ab49061324c565b50612779565b6001600160a01b03841660009081526005602052604090205460ff1680156126fc575080155b1561277957600e548311156127795760405162461bcd60e51b815260206004820152603a60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201527f206d617853656c6c5472616e73616374696f6e416d6f756e742e0000000000006064820152608401610ab4565b6001600160a01b0380861660009081526005602052604080822054928716825281205460ff92831692169081156127d857600d5461012c906127bc9082906131a3565b4210156127cc5760c891506127d2565b60075491505b50612853565b821561280957600d54603c906127ef9082906131a3565b4210156127ff57603c91506127d2565b5050600654612853565b6001600160a01b038716600090815260016020526040902054600f5461282f88836131a3565b111561284d5760405162461bcd60e51b8152600401610ab49061324c565b50506008545b6017546001600160a01b0389811691161480159061287b5750601954600160b81b900460ff16155b80156128915750601954600160a01b900460ff16155b156128a0576128a0600061229b565b601954600160a01b900460ff161580156128d257506001600160a01b03871660009081526005602052604090205460ff165b80156128e75750601954600160b01b900460ff165b801561290257506011546012546128fe91906131a3565b4210155b156129115761290f612c0a565b505b600061292d8783600954600a5461292891906131a3565b612dce565b9050600061293b8289613190565b6001600160a01b038b16600090815260016020526040812080549293508a92909190612968908490613190565b9091555050306000908152600160205260408120805484929061298c9084906131a3565b90915550506001600160a01b038916600090815260016020526040812080548392906129b99084906131a3565b92505081905550886001600160a01b03168a6001600160a01b0316600080516020613383833981519152836040516129f391815260200190565b60405180910390a350505050505050505050565b601554612a1f9030906001600160a01b031683612063565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612a5457612a54613290565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612aad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ad191906132a6565b81600181518110612ae457612ae4613290565b6001600160a01b03928316602091820292909201015260155460405163791ac94760e01b815291169063791ac94790612b2a9085906000908690309042906004016132c3565b600060405180830381600087803b158015612b4457600080fd5b505af192505050801561223957505050565b601554612b6e9030906001600160a01b031684612063565b60155460195460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015612bde573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612c039190613334565b5050505050565b426012556017546040516370a0823160e01b81526001600160a01b039091166004820152600090819030906370a0823190602401602060405180830381865afa158015612c5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c7f91906131b6565b9050600061271060105483612c949190613064565b612c9e919061307b565b90508015612d39576017546001600160a01b031660009081526001602052604081208054839290612cd0908490613190565b909155505061dead600090815260016020526000805160206133638339815191528054839290612d019084906131a3565b909155505060175460405182815261dead916001600160a01b0316906000805160206133838339815191529060200160405180910390a35b6017546040805160016209351760e01b0319815290516001600160a01b0390921691829163fff6cae991600480830192600092919082900301818387803b158015612d8357600080fd5b505af1158015612d97573d6000803e3d6000fd5b50506040517f454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d925060009150a16001935050505090565b6000612ddc6103e880613064565b82612de78587613064565b612df19190613064565b612dfb919061307b565b949350505050565b600060208284031215612e1557600080fd5b5035919050565b600060208083528351808285015260005b81811015612e4957858101830151858201604001528201612e2d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114612e7f57600080fd5b50565b60008060408385031215612e9557600080fd5b8235612ea081612e6a565b946020939093013593505050565b600080600060608486031215612ec357600080fd5b8335612ece81612e6a565b92506020840135612ede81612e6a565b929592945050506040919091013590565b600060208284031215612f0157600080fd5b8135612f0c81612e6a565b9392505050565b8015158114612e7f57600080fd5b600080600060608486031215612f3657600080fd5b83359250602084013591506040840135612f4f81612f13565b809150509250925092565b600060208284031215612f6c57600080fd5b8135612f0c81612f13565b60008060408385031215612f8a57600080fd5b8235612f9581612e6a565b91506020830135612fa581612f13565b809150509250929050565b600080600080600060a08688031215612fc857600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60008060408385031215612ffe57600080fd5b823561300981612e6a565b91506020830135612fa581612e6a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610b3f57610b3f61304e565b60008261309857634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156130d85781600019048211156130be576130be61304e565b808516156130cb57918102915b93841c93908002906130a2565b509250929050565b6000826130ef57506001610b3f565b816130fc57506000610b3f565b8160018114613112576002811461311c57613138565b6001915050610b3f565b60ff84111561312d5761312d61304e565b50506001821b610b3f565b5060208310610133831016604e8410600b841016171561315b575081810a610b3f565b613165838361309d565b80600019048211156131795761317961304e565b029392505050565b6000612f0c60ff8416836130e0565b81810381811115610b3f57610b3f61304e565b80820180821115610b3f57610b3f61304e565b6000602082840312156131c857600080fd5b5051919050565b6000602082840312156131e157600080fd5b8151612f0c81612f13565b60208082526017908201527f416464726573732073686f756c64206e6f742062652030000000000000000000604082015260600190565b6020808252600f908201526e416464726573732069732073616d6560881b604082015260600190565b60208082526024908201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6040820152633ab73a1760e11b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156132b857600080fd5b8151612f0c81612e6a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156133135784516001600160a01b0316835293830193918301916001016132ee565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561334957600080fd5b835192506020840151915060408401519050925092509256feb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164dddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122036025e5b4c119a9baf5fe2b79924b0e6238e2007d0f45f5fe2e4a1007fc3e57e64736f6c63430008110033

Deployed Bytecode Sourcemap

2771:18091:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19298:238;;;;;;;;;;-1:-1:-1;19298:238:0;;;;;:::i;:::-;;:::i;:::-;;17010:78;;;;;;;;;;-1:-1:-1;17081:5:0;;;;;;;;;;;-1:-1:-1;;;17081:5:0;;;;17010:78;;;;17081:5;17010:78;:::i;:::-;;;;;;;;17898:158;;;;;;;;;;-1:-1:-1;17898:158:0;;;;;:::i;:::-;;:::i;:::-;;;1373:14:1;;1366:22;1348:41;;1336:2;1321:18;17898:158:0;1208:187:1;3573:35:0;;;;;;;;;;;;;;;;;;;1546:25:1;;;1534:2;1519:18;3573:35:0;1400:177:1;17266:84:0;;;;;;;;;;;;;:::i;3924:47::-;;;;;;;;;;;;;;;;3779:37;;;;;;;;;;;;;;;;3229:59;;;;;;;;;;;;;:::i;18362:382::-;;;;;;;;;;-1:-1:-1;18362:382:0;;;;;:::i;:::-;;:::i;12122:123::-;;;;;;;;;;;;;:::i;3836:45::-;;;;;;;;;;;;;;;;4616:32;;;;;;;;;;-1:-1:-1;4616:32:0;;;;-1:-1:-1;;;4616:32:0;;;;;;17182:78;;;;;;;;;;-1:-1:-1;17182:78:0;;3689:1;2185:36:1;;2173:2;2158:18;17182:78:0;2043:184:1;18750:202:0;;;;;;;;;;-1:-1:-1;18750:202:0;;;;;:::i;:::-;;:::i;12659:118::-;;;;;;;;;;;;;:::i;9952:152::-;;;;;;;;;;;;;:::i;3295:23::-;;;;;;;;;;;;;;;;4655:22;;;;;;;;;;-1:-1:-1;4655:22:0;;;;-1:-1:-1;;;4655:22:0;;;;;;17462:110;;;;;;;;;;-1:-1:-1;17462:110:0;;;;;:::i;:::-;-1:-1:-1;;;;;17543:27:0;17529:4;17543:27;;;:18;:27;;;;;;;;;17462:110;17356:100;;;;;;;;;;-1:-1:-1;17356:100:0;;;;;:::i;:::-;-1:-1:-1;;;;;17436:18:0;17422:4;17436:18;;;:9;:18;;;;;;;17356:100;2384:140;;;;;;;;;;;;;:::i;14693:447::-;;;;;;;;;;-1:-1:-1;14693:447:0;;;;;:::i;:::-;;:::i;16580:303::-;;;;;;;;;;;;;:::i;3356:28::-;;;;;;;;;;;;;;;;19542:446;;;;;;;;;;-1:-1:-1;19542:446:0;;;;;:::i;:::-;;:::i;12520:133::-;;;;;;;;;;-1:-1:-1;12520:133:0;;;;;:::i;:::-;;:::i;16926:78::-;;;;;;;;;;-1:-1:-1;16978:7:0;2240:6;-1:-1:-1;;;;;2240:6:0;16926:78;;;-1:-1:-1;;;;;3399:32:1;;;3381:51;;3369:2;3354:18;16926:78:0;3235:203:1;4577:32:0;;;;;;;;;;-1:-1:-1;4577:32:0;;;;-1:-1:-1;;;4577:32:0;;;;;;2175:79;;;;;;;;;;-1:-1:-1;2213:7:0;2240:6;-1:-1:-1;;;;;2240:6:0;2175:79;;14429:258;;;;;;;;;;-1:-1:-1;14429:258:0;;;;;:::i;:::-;;:::i;13799:288::-;;;;;;;;;;-1:-1:-1;13799:288:0;;;;;:::i;:::-;;:::i;12785:257::-;;;;;;;;;;-1:-1:-1;12785:257:0;;;;;:::i;:::-;;:::i;15749:819::-;;;;;;;;;;-1:-1:-1;15749:819:0;;;;;:::i;:::-;;:::i;3978:35::-;;;;;;;;;;;;;;;;18958:334;;;;;;;;;;-1:-1:-1;18958:334:0;;;;;:::i;:::-;;:::i;3888:29::-;;;;;;;;;;;;;;;;17578:164;;;;;;;;;;-1:-1:-1;17578:164:0;;;;;:::i;:::-;;:::i;9424:516::-;;;;;;;;;;-1:-1:-1;9424:516:0;;;;;:::i;:::-;;:::i;3741:31::-;;;;;;;;;;;;;;;;9128:290;;;;;;;;;;-1:-1:-1;9128:290:0;;;;;:::i;:::-;;:::i;3391:26::-;;;;;;;;;;;;;;;;13509:278;;;;;;;;;;-1:-1:-1;13509:278:0;;;;;:::i;:::-;;:::i;12012:104::-;;;;;;;;;;-1:-1:-1;12100:6:0;12059:4;12082:26;:9;:26;;-1:-1:-1;;;;;;;;;;;12082:26:0;12012:104;;3699:35;;;;;;;;;;;;;;;;3325:24;;;;;;;;;;;;;;;;8870:252;;;;;;;;;;-1:-1:-1;8870:252:0;;;;;:::i;:::-;;:::i;3424:27::-;;;;;;;;;;;;;;;;3009:48;;;;;;;;;;-1:-1:-1;3009:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17748:144;;;;;;;;;;-1:-1:-1;17748:144:0;;;;;:::i;:::-;-1:-1:-1;;;;;17856:19:0;;;17832:4;17856:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;17748:144;14099:318;;;;;;;;;;-1:-1:-1;14099:318:0;;;;;:::i;:::-;;:::i;13050:281::-;;;;;;;;;;-1:-1:-1;13050:281:0;;;;;:::i;:::-;;:::i;3540:26::-;;;;;;;;;;;;;;;;3064:36;;;;;;;;;;-1:-1:-1;3064:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2530:236;;;;;;;;;;-1:-1:-1;2530:236:0;;;;;:::i;:::-;;:::i;12251:263::-;;;;;;;;;;-1:-1:-1;12251:263:0;;;;;:::i;:::-;;:::i;13339:162::-;;;;;;;;;;-1:-1:-1;13339:162:0;;;;;:::i;:::-;;:::i;19298:238::-;2311:10;2300:7;2213;2240:6;-1:-1:-1;;;;;2240:6:0;;2175:79;2300:7;-1:-1:-1;;;;;2300:21:0;;2292:66;;;;-1:-1:-1;;;2292:66:0;;;;;;;:::i;:::-;;;;;;;;;19404:21:::1;19444:10;19436:64;19496:3;19465:28;19477:16:::0;19404:21;19465:28:::1;:::i;:::-;:34;;;;:::i;:::-;19436:64;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;19516:12:0::1;::::0;::::1;::::0;;;::::1;19373:163;19298:238:::0;:::o;17898:158::-;17972:4;17989:37;17998:10;18010:7;18019:6;17989:8;:37::i;:::-;-1:-1:-1;18044:4:0;17898:158;;;;;:::o;17266:84::-;17321:4;3275:13;3689:1;3275:2;:13;:::i;:::-;3265:23;;:7;:23;:::i;:::-;17328:20;;17266:84;:::o;3229:59::-;3275:13;3689:1;3275:2;:13;:::i;:::-;3265:23;;:7;:23;:::i;:::-;3229:59;:::o;18362:382::-;18459:4;18476:36;18486:6;18494:9;18505:6;18476:9;:36::i;:::-;-1:-1:-1;;;;;18547:19:0;;18523:21;18547:19;;;:11;:19;;;;;;;;18567:10;18547:31;;;;;;;;18597:26;;;;18589:59;;;;-1:-1:-1;;;18589:59:0;;7155:2:1;18589:59:0;;;7137:21:1;7194:2;7174:18;;;7167:30;-1:-1:-1;;;7213:18:1;;;7206:50;7273:18;;18589:59:0;6953:344:1;18589:59:0;18659:55;18668:6;18676:10;18688:25;18707:6;18688:16;:25;:::i;:::-;18659:8;:55::i;:::-;-1:-1:-1;18732:4:0;;18362:382;-1:-1:-1;;;;18362:382:0:o;12122:123::-;12229:6;12174:4;12211:26;;;:9;:26;;-1:-1:-1;;;;;;;;;;;12211:26:0;3275:13;3689:1;3275:2;:13;:::i;:::-;3265:23;;:7;:23;:::i;:::-;12197:40;;;;:::i;18750:202::-;18855:10;18829:4;18876:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;18876:32:0;;;;;;;;;;18829:4;;18846:76;;18867:7;;18876:45;;18911:10;;18876:45;:::i;12659:118::-;2311:10;2300:7;2213;2240:6;-1:-1:-1;;;;;2240:6:0;;2175:79;2300:7;-1:-1:-1;;;;;2300:21:0;;2292:66;;;;-1:-1:-1;;;2292:66:0;;;;;;;:::i;:::-;12717:25:::1;12736:5;12717:18;:25::i;:::-;12758:11;::::0;::::1;::::0;;;::::1;12659:118::o:0;9952:152::-;9999:4;10092;10072:19;;10049:22;:20;:22::i;:::-;:42;;;;:::i;:::-;:47;;;;:::i;:::-;10032:15;;-1:-1:-1;;;;;10032:15:0;10022:26;;;;:9;:26;;;;;;:74;;9952:152;-1:-1:-1;9952:152:0:o;2384:140::-;2311:10;2300:7;2213;2240:6;-1:-1:-1;;;;;2240:6:0;;2175:79;2300:7;-1:-1:-1;;;;;2300:21:0;;2292:66;;;;-1:-1:-1;;;2292:66:0;;;;;;;:::i;:::-;2483:1:::1;2467:6:::0;;2446:40:::1;::::0;-1:-1:-1;;;;;2467:6:0;;::::1;::::0;2446:40:::1;::::0;2483:1;;2446:40:::1;2514:1;2497:19:::0;;-1:-1:-1;;;;;;2497:19:0::1;::::0;;2384:140::o;14693:447::-;2311:10;2300:7;2213;2240:6;-1:-1:-1;;;;;2240:6:0;;2175:79;2300:7;-1:-1:-1;;;;;2300:21:0;;2292:66;;;;-1:-1:-1;;;2292:66:0;;;;;;;:::i;:::-;14847:3:::1;14824:19;:26;;14816:90;;;::::0;-1:-1:-1;;;14816:90:0;;7767:2:1;14816:90:0::1;::::0;::::1;7749:21:1::0;7806:2;7786:18;;;7779:30;7845:34;7825:18;;;7818:62;-1:-1:-1;;;7896:18:1;;;7889:49;7955:19;;14816:90:0::1;7565:415:1::0;14816:90:0::1;14937:4;14925:8;:16;;:33;;;;-1:-1:-1::0;14945:13:0;14925:33:::1;14917:94;;;::::0;-1:-1:-1;;;14917:94:0;;8187:2:1;14917:94:0::1;::::0;::::1;8169:21:1::0;8226:2;8206:18;;;8199:30;8265:34;8245:18;;;8238:62;-1:-1:-1;;;8316:18:1;;;8309:46;8372:19;;14917:94:0::1;7985:412:1::0;14917:94:0::1;15022:15;:37:::0;;;;15070:16:::1;:27:::0;15108:13:::1;:24:::0;;;::::1;;-1:-1:-1::0;;;15108:24:0::1;-1:-1:-1::0;;;;15108:24:0;;::::1;::::0;;;::::1;::::0;;14693:447::o;16580:303::-;2311:10;2300:7;2213;2240:6;-1:-1:-1;;;;;2240:6:0;;2175:79;2300:7;-1:-1:-1;;;;;2300:21:0;;2292:66;;;;-1:-1:-1;;;2292:66:0;;;;;;;:::i;:::-;16647:15:::1;::::0;:18;16639:45:::1;;;::::0;-1:-1:-1;;;16639:45:0;;8604:2:1;16639:45:0::1;::::0;::::1;8586:21:1::0;8643:2;8623:18;;;8616:30;-1:-1:-1;;;8662:18:1;;;8655:45;8717:18;;16639:45:0::1;8402:339:1::0;16639:45:0::1;16711:15;16695;:31:::0;16777:4:::1;3275:13;3689:1;3275:2;:13;:::i;:::-;3265:23;::::0;:7:::1;:23;:::i;:::-;16756:18;::::0;16772:2:::1;16756:18;:::i;:::-;:25;;;;:::i;:::-;16737:16;:44:::0;16837:5:::1;3275:13;3689:1;3275:2;:13;:::i;:::-;3265:23;::::0;:7:::1;:23;:::i;:::-;16815:19;::::0;16831:3:::1;16815:19;:::i;:::-;:27;;;;:::i;:::-;16792:20;:50:::0;16858:17:::1;::::0;::::1;::::0;;;::::1;16580:303::o:0;19542:446::-;2311:10;2300:7;2213;2240:6;-1:-1:-1;;;;;2240:6:0;;2175:79;2300:7;-1:-1:-1;;;;;2300:21:0;;2292:66;;;;-1:-1:-1;;;2292:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19660:24:0;::::1;::::0;;::::1;::::0;:64:::1;;-1:-1:-1::0;19708:15:0::1;::::0;-1:-1:-1;;;;;19686:38:0;;::::1;19708:15:::0;::::1;19686:38;;19660:64;:93;;;;-1:-1:-1::0;;;;;;19726:27:0;::::1;19748:4;19726:27;;19660:93;19652:102;;;::::0;::::1;;19833:30;::::0;-1:-1:-1;;;19833:30:0;;19857:4:::1;19833:30;::::0;::::1;3381:51:1::0;19787:12:0;;19765::::1;::::0;-1:-1:-1;;;;;19833:15:0;::::1;::::0;::::1;::::0;3354:18:1;;19833:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19811:52:::0;-1:-1:-1;;;;;;19874:14:0;::::1;;19889:10;19934:3;19901:30;19915:16:::0;19811:52;19901:30:::1;:::i;:::-;:36;;;;:::i;:::-;19874:64;::::0;-1:-1:-1;;;;;;19874:64:0::1;::::0;;;;;;-1:-1:-1;;;;;9127:32:1;;;19874:64:0::1;::::0;::::1;9109:51:1::0;9176:18;;;9169:34;9082:18;;19874:64:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;19954:26:0::1;::::0;1546:25:1;;;19954:26:0::1;::::0;1534:2:1;1519:18;19954:26:0::1;;;;;;;19641:347;;19542:446:::0;;:::o;12520:133::-;2311:10;2300:7;2213;2240:6;-1:-1:-1;;;;;2240:6:0;;2175:79;2300:7;-1:-1:-1;;;;;2300:21:0;;2292:66;;;;-1:-1:-1;;;2292:66:0;;;;;;;:::i;:::-;12588:10:::1;:17:::0;;;::::1;;-1:-1:-1::0;;;12588:17:0::1;-1:-1:-1::0;;;;12588:17:0;;::::1;;::::0;;12621:24:::1;::::0;::::1;::::0;::::1;::::0;12599:6;1373:14:1;1366:22;1348:41;;1336:2;1321:18;;1208:187;12621:24:0::1;;;;;;;;12520:133:::0;:::o;14429:258::-;2311:10;2300:7;2213;2240:6;-1:-1:-1;;;;;2240:6:0;;2175:79;2300:7;-1:-1:-1;;;;;2300:21:0;;2292:66;;;;-1:-1:-1;;;2292:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14535:21:0;::::1;14527:56;;;;-1:-1:-1::0;;;14527:56:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14594:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;;;;:35;;-1:-1:-1;;14594:35:0::1;::::0;::::1;;::::0;;::::1;::::0;;;14645:34;;9984:51:1;;;10051:18;;;10044:50;14645:34:0::1;::::0;9957:18:1;14645:34:0::1;;;;;;;;14429:258:::0;;:::o;13799:288::-;2311:10;2300:7;2213;2240:6;-1:-1:-1;;;;;2240:6:0;;2175:79;2300:7;-1:-1:-1;;;;;2300:21:0;;2292:66;;;;-1:-1:-1;;;2292:66:0;;;;;;;:::i;:::-;13898:2:::1;13887:7;:13;;13879:35;;;::::0;-1:-1:-1;;;13879:35:0;;10307:2:1;13879:35:0::1;::::0;::::1;10289:21:1::0;10346:1;10326:18;;;10319:29;-1:-1:-1;;;10364:18:1;;;10357:39;10413:18;;13879:35:0::1;10105:332:1::0;13879:35:0::1;13944:5;13933:7;:16;;13925:37;;;::::0;-1:-1:-1;;;13925:37:0;;10644:2:1;13925:37:0::1;::::0;::::1;10626:21:1::0;10683:1;10663:18;;;10656:29;-1:-1:-1;;;10701:18:1;;;10694:38;10749:18;;13925:37:0::1;10442:331:1::0;13925:37:0::1;14022:5;14012:7:::0;3275:13:::1;3689:1;3275:2;:13;:::i;:::-;3265:23;::::0;:7:::1;:23;:::i;:::-;13996;;;;:::i;:::-;:31;;;;:::i;:::-;13973:20;:54:::0;14043:36:::1;::::0;1546:25:1;;;14043:36:0::1;::::0;1534:2:1;1519:18;14043:36:0::1;1400:177:1::0;12785:257:0;2311:10;2300:7;2213;2240:6;-1:-1:-1;;;;;2240:6:0;;2175:79;2300:7;-1:-1:-1;;;;;2300:21:0;;2292:66;;;;-1:-1:-1;;;2292:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12861:21:0;::::1;12853:56;;;;-1:-1:-1::0;;;12853:56:0::1;;;;;;;:::i;:::-;12939:9;::::0;-1:-1:-1;;;;;12939:9:0;;::::1;12928:20:::0;;::::1;::::0;12920:47:::1;;;;-1:-1:-1::0;;;12920:47:0::1;;;;;;;:::i;:::-;12978:9;:19:::0;;-1:-1:-1;;;;;;12978:19:0::1;-1:-1:-1::0;;;;;12978:19:0;::::1;::::0;;::::1;::::0;;;13013:21:::1;::::0;3381:51:1;;;13013:21:0::1;::::0;3369:2:1;3354:18;13013:21:0::1;3235:203:1::0;15749:819:0;15822:4;2311:10;2300:7;2213;2240:6;-1:-1:-1;;;;;2240:6:0;;2175:79;2300:7;-1:-1:-1;;;;;2300:21:0;;2292:66;;;;-1:-1:-1;;;2292:66:0;;;;;;;:::i;:::-;15887:19:::1;;15864:20;;:42;;;;:::i;:::-;15846:15;:60;15838:106;;;::::0;-1:-1:-1;;;15838:106:0;;11324:2:1;15838:106:0::1;::::0;::::1;11306:21:1::0;;;11343:18;;;11336:30;11402:34;11382:18;;;11375:62;11454:18;;15838:106:0::1;11122:356:1::0;15838:106:0::1;15974:4;15963:7;:15;;15955:70;;;::::0;-1:-1:-1;;;15955:70:0;;11685:2:1;15955:70:0::1;::::0;::::1;11667:21:1::0;11724:2;11704:18;;;11697:30;11763:34;11743:18;;;11736:62;-1:-1:-1;;;11814:18:1;;;11807:40;11864:19;;15955:70:0::1;11483:406:1::0;15955:70:0::1;16059:15;16036:20;:38:::0;16131:15:::1;::::0;16116:31:::1;::::0;-1:-1:-1;;;16116:31:0;;-1:-1:-1;;;;;16131:15:0;;::::1;16116:31;::::0;::::1;3381:51:1::0;16085:28:0::1;::::0;16116:4:::1;::::0;:14:::1;::::0;3354:18:1;;16116:31:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16085:62:::0;-1:-1:-1;16158:20:0::1;16212:5;16181:30;16204:7:::0;16085:62;16181:30:::1;:::i;:::-;:36;;;;:::i;:::-;16158:59:::0;-1:-1:-1;16232:16:0;;16228:207:::1;;16274:15;::::0;-1:-1:-1;;;;;16274:15:0::1;16264:26;::::0;;;:9:::1;:26;::::0;;;;:40;;16292:12;;16264:26;:40:::1;::::0;16292:12;;16264:40:::1;:::i;:::-;::::0;;;-1:-1:-1;;4232:6:0::1;16319:21;::::0;;;:9:::1;:21;::::0;-1:-1:-1;;;;;;;;;;;16319:35:0;;16342:12;;16319:21;:35:::1;::::0;16342:12;;16319:35:::1;:::i;:::-;::::0;;;-1:-1:-1;;16383:15:0::1;::::0;16374:49:::1;::::0;1546:25:1;;;4232:6:0::1;::::0;-1:-1:-1;;;;;16383:15:0::1;::::0;-1:-1:-1;;;;;;;;;;;16374:49:0;1534:2:1;1519:18;16374:49:0::1;;;;;;;16228:207;16470:15;::::0;16497:11:::1;::::0;;-1:-1:-1;;;;;;16497:11:0;;;;-1:-1:-1;;;;;16470:15:0;;::::1;::::0;;;16497:9:::1;::::0;:11:::1;::::0;;::::1;::::0;16445:13:::1;::::0;16497:11;;;;;;;16445:13;16470:15;16497:11;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;16524:14:0::1;::::0;::::1;::::0;-1:-1:-1;16524:14:0;;-1:-1:-1;16524:14:0::1;-1:-1:-1::0;16556:4:0::1;::::0;15749:819;-1:-1:-1;;;;15749:819:0:o;18958:334::-;19095:10;19042:4;19083:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;19083:32:0;;;;;;;;;;19134:35;;;;19126:60;;;;-1:-1:-1;;;19126:60:0;;12096:2:1;19126:60:0;;;12078:21:1;12135:2;12115:18;;;12108:30;-1:-1:-1;;;12154:18:1;;;12147:42;12206:18;;19126:60:0;11894:336:1;19126:60:0;19197:65;19206:10;19218:7;19227:34;19246:15;19227:16;:34;:::i;19197:65::-;-1:-1:-1;19280:4:0;;18958:334;-1:-1:-1;;;18958:334:0:o;17578:164::-;17655:4;17672:40;17682:10;17694:9;17705:6;17672:9;:40::i;9424:516::-;2311:10;2300:7;2213;2240:6;-1:-1:-1;;;;;2240:6:0;;2175:79;2300:7;-1:-1:-1;;;;;2300:21:0;;2292:66;;;;-1:-1:-1;;;2292:66:0;;;;;;;:::i;:::-;9549:3:::1;9571:11:::0;;::::1;::::0;::::1;::::0;:25:::1;;;9590:6;9584:4;:12;;9571:25;:44;;;;;9609:6;9598:9;:17;;9571:44;9563:74;;;::::0;-1:-1:-1;;;9563:74:0;;12437:2:1;9563:74:0::1;::::0;::::1;12419:21:1::0;12476:2;12456:18;;;12449:30;-1:-1:-1;;;12495:18:1;;;12488:48;12553:18;;9563:74:0::1;12235:342:1::0;9563:74:0::1;3488:4;9656:17;9664:9:::0;9656:7;:17:::1;:::i;:::-;:34;9648:79;;;::::0;-1:-1:-1;;;9648:79:0;;12784:2:1;9648:79:0::1;::::0;::::1;12766:21:1::0;12823:2;12803:18;;;12796:30;12862:34;12842:18;;;12835:62;-1:-1:-1;;;12913:18:1;;;12906:31;12954:19;;9648:79:0::1;12582:397:1::0;9648:79:0::1;9738:6;:10:::0;;;9759:7:::1;:12:::0;;;9782:11:::1;:21:::0;;;9814:10:::1;:18:::0;;;9843:12:::1;:22:::0;;;9881:51:::1;::::0;;13243:25:1;;;13299:2;13284:18;;13277:34;;;13327:18;;;13320:34;;;13385:2;13370:18;;13363:34;;;13428:3;13413:19;;13406:35;;;9881:51:0::1;::::0;13230:3:1;13215:19;9881:51:0::1;;;;;;;9526:414;9424:516:::0;;;;;:::o;9128:290::-;2311:10;2300:7;2213;2240:6;-1:-1:-1;;;;;2240:6:0;;2175:79;2300:7;-1:-1:-1;;;;;2300:21:0;;2292:66;;;;-1:-1:-1;;;2292:66:0;;;;;;;:::i;:::-;9268:4:::1;9236:30;:36;;9228:45;;;::::0;::::1;;9284:19;:50:::0;;;9350:60:::1;::::0;1546:25:1;;;9350:60:0::1;::::0;1534:2:1;1519:18;9350:60:0::1;1400:177:1::0;13509:278:0;2311:10;2300:7;2213;2240:6;-1:-1:-1;;;;;2240:6:0;;2175:79;2300:7;-1:-1:-1;;;;;2300:21:0;;2292:66;;;;-1:-1:-1;;;2292:66:0;;;;;;;:::i;:::-;13611:2:::1;13600:7;:13;;13592:32;;;::::0;-1:-1:-1;;;13592:32:0;;13654:2:1;13592:32:0::1;::::0;::::1;13636:21:1::0;13693:1;13673:18;;;13666:29;-1:-1:-1;;;13711:18:1;;;13704:36;13757:18;;13592:32:0::1;13452:329:1::0;13592:32:0::1;13654:4;13643:7;:15;;13635:36;;;::::0;-1:-1:-1;;;13635:36:0;;10644:2:1;13635:36:0::1;::::0;::::1;10626:21:1::0;10683:1;10663:18;;;10656:29;-1:-1:-1;;;10701:18:1;;;10694:38;10749:18;;13635:36:0::1;10442:331:1::0;13635:36:0::1;13727:4;13717:7:::0;3275:13:::1;3689:1;3275:2;:13;:::i;:::-;3265:23;::::0;:7:::1;:23;:::i;:::-;13701;;;;:::i;:::-;:30;;;;:::i;:::-;13682:16;:49:::0;13747:32:::1;::::0;1546:25:1;;;13747:32:0::1;::::0;1534:2:1;1519:18;13747:32:0::1;1400:177:1::0;8870:252:0;2311:10;2300:7;2213;2240:6;-1:-1:-1;;;;;2240:6:0;;2175:79;2300:7;-1:-1:-1;;;;;2300:21:0;;2292:66;;;;-1:-1:-1;;;2292:66:0;;;;;;;:::i;:::-;8987:2:::1;8962:23;:27;;8954:36;;;::::0;::::1;;9018:12;:36:::0;;;9070:44:::1;::::0;1546:25:1;;;9070:44:0::1;::::0;1534:2:1;1519:18;9070:44:0::1;1400:177:1::0;14099:318:0;2311:10;2300:7;2213;2240:6;-1:-1:-1;;;;;2240:6:0;;2175:79;2300:7;-1:-1:-1;;;;;2300:21:0;;2292:66;;;;-1:-1:-1;;;2292:66:0;;;;;;;:::i;:::-;14216:4:::1;-1:-1:-1::0;;;;;14199:22:0;::::1;::::0;14191:60:::1;;;::::0;-1:-1:-1;;;14191:60:0;;13988:2:1;14191:60:0::1;::::0;::::1;13970:21:1::0;14027:2;14007:18;;;14000:30;14066:28;14046:18;;;14039:56;14112:18;;14191:60:0::1;13786:350:1::0;14191:60:0::1;-1:-1:-1::0;;;;;14270:21:0;::::1;14262:56;;;;-1:-1:-1::0;;;14262:56:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14329:25:0;::::1;;::::0;;;:16:::1;:25;::::0;;;;;;;;:33;;-1:-1:-1;;14329:33:0::1;::::0;::::1;;::::0;;::::1;::::0;;;14378:31;;9984:51:1;;;10051:18;;;10044:50;14378:31:0::1;::::0;9957:18:1;14378:31:0::1;9816:284:1::0;13050:281:0;2311:10;2300:7;2213;2240:6;-1:-1:-1;;;;;2240:6:0;;2175:79;2300:7;-1:-1:-1;;;;;2300:21:0;;2292:66;;;;-1:-1:-1;;;2292:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13131:22:0;::::1;13123:57;;;;-1:-1:-1::0;;;13123:57:0::1;;;;;;;:::i;:::-;13211:13;::::0;-1:-1:-1;;;;;13211:13:0;;::::1;13199:25:::0;;::::1;::::0;13191:52:::1;;;;-1:-1:-1::0;;;13191:52:0::1;;;;;;;:::i;:::-;13254:13;:24:::0;;-1:-1:-1;;;;;;13254:24:0::1;-1:-1:-1::0;;;;;13254:24:0;::::1;::::0;;::::1;::::0;;;13294:29:::1;::::0;3381:51:1;;;13294:29:0::1;::::0;3369:2:1;3354:18;13294:29:0::1;3235:203:1::0;2530:236:0;2311:10;2300:7;2213;2240:6;-1:-1:-1;;;;;2240:6:0;;2175:79;2300:7;-1:-1:-1;;;;;2300:21:0;;2292:66;;;;-1:-1:-1;;;2292:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2611:22:0;::::1;2603:73;;;::::0;-1:-1:-1;;;2603:73:0;;14343:2:1;2603:73:0::1;::::0;::::1;14325:21:1::0;14382:2;14362:18;;;14355:30;14421:34;14401:18;;;14394:62;-1:-1:-1;;;14472:18:1;;;14465:36;14518:19;;2603:73:0::1;14141:402:1::0;2603:73:0::1;2713:6;::::0;;2692:38:::1;::::0;-1:-1:-1;;;;;2692:38:0;;::::1;::::0;2713:6;::::1;::::0;2692:38:::1;::::0;::::1;2741:6;:17:::0;;-1:-1:-1;;;;;;2741:17:0::1;-1:-1:-1::0;;;;;2741:17:0;;;::::1;::::0;;;::::1;::::0;;2530:236::o;12251:263::-;2311:10;2300:7;2213;2240:6;-1:-1:-1;;;;;2240:6:0;;2175:79;2300:7;-1:-1:-1;;;;;2300:21:0;;2292:66;;;;-1:-1:-1;;;2292:66:0;;;;;;;:::i;:::-;12335:15:::1;::::0;-1:-1:-1;;;;;12335:15:0;;::::1;12329:21:::0;;::::1;::::0;12321:58:::1;;;::::0;-1:-1:-1;;;12321:58:0;;14750:2:1;12321:58:0::1;::::0;::::1;14732:21:1::0;14789:2;14769:18;;;14762:30;14828:27;14808:18;;;14801:55;14873:18;;12321:58:0::1;14548:349:1::0;12321:58:0::1;-1:-1:-1::0;;;;;12398:18:0;::::1;12390:53;;;;-1:-1:-1::0;;;12390:53:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12454:12:0;::::1;;::::0;;;:6:::1;:12;::::0;;;;;;;;:16;;-1:-1:-1;;12454:16:0::1;::::0;::::1;;::::0;;::::1;::::0;;;12486:20;;9984:51:1;;;10051:18;;;10044:50;12486:20:0::1;::::0;9957:18:1;12486:20:0::1;9816:284:1::0;13339:162:0;2311:10;2300:7;2213;2240:6;-1:-1:-1;;;;;2240:6:0;;2175:79;2300:7;-1:-1:-1;;;;;2300:21:0;;2292:66;;;;-1:-1:-1;;;2292:66:0;;;;;;;:::i;:::-;13429:13:::1;::::0;-1:-1:-1;;;;;13429:13:0;;::::1;13417:25:::0;;::::1;::::0;13409:52:::1;;;;-1:-1:-1::0;;;13409:52:0::1;;;;;;;:::i;:::-;13472:10;:21:::0;;-1:-1:-1;;;;;;13472:21:0::1;-1:-1:-1::0;;;;;13472:21:0;;;::::1;::::0;;;::::1;::::0;;13339:162::o;18062:294::-;-1:-1:-1;;;;;18152:19:0;;18144:49;;;;-1:-1:-1;;;18144:49:0;;15104:2:1;18144:49:0;;;15086:21:1;15143:2;15123:18;;;15116:30;-1:-1:-1;;;15162:18:1;;;15155:47;15219:18;;18144:49:0;14902:341:1;18144:49:0;-1:-1:-1;;;;;18212:21:0;;18204:49;;;;-1:-1:-1;;;18204:49:0;;15450:2:1;18204:49:0;;;15432:21:1;15489:2;15469:18;;;15462:30;-1:-1:-1;;;15508:18:1;;;15501:45;15563:18;;18204:49:0;15248:339:1;18204:49:0;-1:-1:-1;;;;;18264:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;18316:32;;1546:25:1;;;18316:32:0;;1519:18:1;18316:32:0;;;;;;;18062:294;;;:::o;5390:505::-;-1:-1:-1;;;;;5483:20:0;;5475:51;;;;-1:-1:-1;;;5475:51:0;;15794:2:1;5475:51:0;;;15776:21:1;15833:2;15813:18;;;15806:30;-1:-1:-1;;;15852:18:1;;;15845:48;15910:18;;5475:51:0;15592:342:1;5475:51:0;-1:-1:-1;;;;;5545:23:0;;5537:52;;;;-1:-1:-1;;;5537:52:0;;16141:2:1;5537:52:0;;;16123:21:1;16180:2;16160:18;;;16153:30;-1:-1:-1;;;16199:18:1;;;16192:46;16255:18;;5537:52:0;15939:340:1;5537:52:0;-1:-1:-1;;;;;5603:24:0;;;;;;:16;:24;;;;;;;;;:55;;-1:-1:-1;;;;;;5631:27:0;;;;;;:16;:27;;;;;;;;5603:55;5600:274;;;5673:43;5690:6;5698:9;5709:6;5673:16;:43::i;:::-;5390:505;;;:::o;5600:274::-;5780:1;5764:15;;:17;5756:52;;;;-1:-1:-1;;;5756:52:0;;16486:2:1;5756:52:0;;;16468:21:1;16525:2;16505:18;;;16498:30;16564:25;16544:18;;;16537:53;16607:18;;5756:52:0;16284:347:1;5756:52:0;5823:39;5838:6;5845:9;5855:6;5823:14;:39::i;10110:1074::-;4409:27;:34;;-1:-1:-1;;;;4409:34:0;-1:-1:-1;;;4409:34:0;;;10226:4:::1;4409:34:::0;10208:24;;;4439:4;10208:24:::1;::::0;;;;;10270:10:::1;::::0;10257:12:::1;::::0;10208:24;;4409:34;10257:23:::1;::::0;10270:10;10257:23:::1;:::i;:::-;10335:12;::::0;10318:15:::1;::::0;-1:-1:-1;;;;;10318:15:0::1;10291:16;10308:26:::0;;;:9:::1;:26;::::0;;;;;10243:37;;-1:-1:-1;10291:16:0;10348:4:::1;::::0;10308:39:::1;::::0;::::1;:::i;:::-;:44;;;;:::i;:::-;10291:61;;10366:8;10376:1;10366:11:::0;10363:22:::1;;10378:7;;;;;10363:22;10398:12;10395:134;;;-1:-1:-1::0;10455:4:0::1;10437:24;::::0;;;:9:::1;:24;::::0;;;;;10395:134:::1;;;10496:11;10480:15;:27;10477:52;;;10522:7;;;;;10477:52;10539:22;10562:17;:15;:17::i;:::-;:55;;10609:8;10595:12;;10583:11;:24;;;;:::i;:::-;10582:35;;;;:::i;:::-;10562:55;;;10580:1;10562:55;10539:78:::0;-1:-1:-1;10630:20:0::1;10652:29;10539:78:::0;10652:11;:29:::1;:::i;:::-;10630:51:::0;-1:-1:-1;10694:12:0::1;10707:19;10725:1;10707:17:::0;:19:::1;:::i;:::-;10694:32:::0;-1:-1:-1;10737:14:0::1;10752:23;10760:15:::0;10694:32;10752:23:::1;:::i;:::-;10737:38:::0;-1:-1:-1;10811:21:0::1;10843:27;10737:38:::0;10843:16:::1;:27::i;:::-;10881:11;10894:41;10918:17:::0;10894:21:::1;:41;:::i;:::-;10881:55:::0;-1:-1:-1;10950:19:0;;10947:135:::1;;10985:11;11016:9:::0;11000:14:::1;11007:7:::0;11000:6;:14:::1;:::i;:::-;10999:26;;;;:::i;:::-;10985:40;;11040:30;11054:7;11063:6;11040:13;:30::i;:::-;10970:112;10947:135;11105:13;::::0;:51:::1;::::0;11093:9:::1;::::0;-1:-1:-1;;;;;11105:13:0::1;::::0;11130:21:::1;::::0;11093:9;11105:51;11093:9;11105:51;11130:21;11105:13;:51:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;;;;;;;;4454:1:0::1;-1:-1:-1::0;4466:27:0;:35;;-1:-1:-1;;;;4466:35:0;;;10110:1074::o;8525:339::-;-1:-1:-1;;;;;8638:17:0;;8617:18;8638:17;;;:9;:17;;;;;;8674:23;;;;8666:60;;;;-1:-1:-1;;;8666:60:0;;17048:2:1;8666:60:0;;;17030:21:1;17087:2;17067:18;;;17060:30;-1:-1:-1;;;17106:18:1;;;17099:54;17170:18;;8666:60:0;16846:348:1;8666:60:0;-1:-1:-1;;;;;8737:17:0;;;;;;:9;:17;;;;;:25;;8756:6;;8737:17;:25;;8756:6;;8737:25;:::i;:::-;;;;-1:-1:-1;;;;;;;8773:20:0;;;;;;:9;:20;;;;;:28;;8795:6;;8773:20;:28;;8795:6;;8773:28;:::i;:::-;;;;;;;;8839:9;-1:-1:-1;;;;;8823:33:0;8832:6;-1:-1:-1;;;;;8823:33:0;-1:-1:-1;;;;;;;;;;;8849:6:0;8823:33;;;;1546:25:1;;1534:2;1519:18;;1400:177;8823:33:0;;;;;;;;8606:258;8525:339;;;:::o;5901:2436::-;-1:-1:-1;;;;;6012:17:0;;5991:18;6012:17;;;:9;:17;;;;;;6048:23;;;;6040:60;;;;-1:-1:-1;;;6040:60:0;;17048:2:1;6040:60:0;;;17030:21:1;17087:2;17067:18;;;17060:30;-1:-1:-1;;;17106:18:1;;;17099:54;17170:18;;6040:60:0;16846:348:1;6040:60:0;-1:-1:-1;;;;;6134:26:0;;6111:20;6134:26;;;:18;:26;;;;;;;;;:59;;-1:-1:-1;;;;;;6164:29:0;;;;;;:18;:29;;;;;;;;6134:59;-1:-1:-1;;;;;6222:14:0;;;;;;:6;:14;;;;;;6111:82;;-1:-1:-1;6222:14:0;;:47;;;;;6254:15;6253:16;6222:47;6204:686;;;6332:20;;6322:6;:30;;6296:132;;;;-1:-1:-1;;;6296:132:0;;17401:2:1;6296:132:0;;;17383:21:1;17440:2;17420:18;;;17413:30;17479:34;17459:18;;;17452:62;-1:-1:-1;;;17530:18:1;;;17523:38;17578:19;;6296:132:0;17199:404:1;6296:132:0;-1:-1:-1;;;;;17436:18:0;;6443:32;17436:18;;;:9;:18;;;;;;6576:16;;6539:33;6566:6;17436:18;6539:33;:::i;:::-;:53;;6513:151;;;;-1:-1:-1;;;6513:151:0;;;;;;;:::i;:::-;6281:395;6204:686;;;-1:-1:-1;;;;;6700:17:0;;;;;;:6;:17;;;;;;;;:50;;;;;6735:15;6734:16;6700:50;6682:208;;;6795:20;;6785:6;:30;;6777:101;;;;-1:-1:-1;;;6777:101:0;;18215:2:1;6777:101:0;;;18197:21:1;18254:2;18234:18;;;18227:30;18293:34;18273:18;;;18266:62;18364:28;18344:18;;;18337:56;18410:19;;6777:101:0;18013:422:1;6777:101:0;-1:-1:-1;;;;;6913:14:0;;;6902:10;6913:14;;;:6;:14;;;;;;;6950:17;;;;;;;;6913:14;;;;;6950:17;;6997:686;;;;7088:15;;7045:9;;7088:31;;7045:9;;7088:31;:::i;:::-;7072:15;:47;7069:113;;;7143:3;7139:7;;7069:113;;;7175:7;;7171:11;;7069:113;7007:191;6997:686;;;7216:5;7213:470;;;7300:15;;7257:9;;7300:30;;7257:9;;7300:30;:::i;:::-;7284:15;:46;7281:106;;;7354:2;7350:6;;7281:106;;;-1:-1:-1;;7381:6:0;;7213:470;;;-1:-1:-1;;;;;17436:18:0;;7419:32;17436:18;;;:9;:18;;;;;;7552:16;;7515:33;7542:6;17436:18;7515:33;:::i;:::-;:53;;7489:151;;;;-1:-1:-1;;;7489:151:0;;;;;;;:::i;:::-;-1:-1:-1;;7660:11:0;;7213:470;7707:15;;-1:-1:-1;;;;;7699:23:0;;;7707:15;;7699:23;;;;7698:40;;-1:-1:-1;7727:10:0;;-1:-1:-1;;;7727:10:0;;;;7726:11;7698:40;:72;;;;-1:-1:-1;7742:27:0;;-1:-1:-1;;;7742:27:0;;;;7741:28;7698:72;7695:115;;;7785:25;7804:5;7785:18;:25::i;:::-;7827:27;;-1:-1:-1;;;7827:27:0;;;;7826:28;:49;;;;-1:-1:-1;;;;;;7858:17:0;;;;;;:6;:17;;;;;;;;7826:49;:66;;;;-1:-1:-1;7879:13:0;;-1:-1:-1;;;7879:13:0;;;;7826:66;:121;;;;;7932:15;;7915:14;;:32;;;;:::i;:::-;7896:15;:51;;7826:121;7823:170;;;7963:18;:16;:18::i;:::-;;7823:170;8013:18;8032:51;8046:6;8054:3;8070:12;;8059:10;;:23;;;;:::i;:::-;8032:13;:51::i;:::-;8013:70;-1:-1:-1;8094:16:0;8111:20;8013:70;8111:6;:20;:::i;:::-;-1:-1:-1;;;;;8144:17:0;;;;;;:9;:17;;;;;:25;;8094:37;;-1:-1:-1;8163:6:0;;8144:17;;;:25;;8163:6;;8144:25;:::i;:::-;;;;-1:-1:-1;;8198:4:0;8180:24;;;;:9;:24;;;;;:41;;8208:13;;8180:24;:41;;8208:13;;8180:41;:::i;:::-;;;;-1:-1:-1;;;;;;;8232:20:0;;;;;;:9;:20;;;;;:33;;8254:11;;8232:20;:33;;8254:11;;8232:33;:::i;:::-;;;;;;;;8307:9;-1:-1:-1;;;;;8291:38:0;8300:6;-1:-1:-1;;;;;8291:38:0;-1:-1:-1;;;;;;;;;;;8317:11:0;8291:38;;;;1546:25:1;;1534:2;1519:18;;1400:177;8291:38:0;;;;;;;;5980:2357;;;;;;;5901:2436;;;:::o;11190:462::-;11280:10;;11248:52;;11265:4;;-1:-1:-1;;;;;11280:10:0;11293:6;11248:8;:52::i;:::-;11335:16;;;11349:1;11335:16;;;;;;;;11311:21;;11335:16;;;;;;;;;;-1:-1:-1;11335:16:0;11311:40;;11380:4;11362;11367:1;11362:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11362:23:0;;;:7;;;;;;;;;;:23;;;;11406:10;;:17;;;-1:-1:-1;;;11406:17:0;;;;:10;;;;;:15;;:17;;;;;11362:7;;11406:17;;;;;:10;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11396:4;11401:1;11396:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11396:27:0;;;:7;;;;;;;;;:27;11440:10;;:186;;-1:-1:-1;;;11440:186:0;;:10;;;:61;;:186;;11516:6;;11440:10;;11553:4;;11580;;11600:15;;11440:186;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11237:415;11190:462;:::o;11658:348::-;11766:10;;11734:57;;11751:4;;-1:-1:-1;;;;;11766:10:0;11779:11;11734:8;:57::i;:::-;11802:10;;11947;;11802:196;;-1:-1:-1;;;11802:196:0;;11869:4;11802:196;;;20286:34:1;20336:18;;;20329:34;;;11802:10:0;20379:18:1;;;20372:34;;;20422:18;;;20415:34;-1:-1:-1;;;;;11947:10:0;;;20465:19:1;;;20458:44;11972:15:0;20518:19:1;;;20511:35;11802:10:0;;;:26;;11836:9;;20220:19:1;;11802:196:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11658:348;;:::o;15146:595::-;15225:15;15208:14;:32;15297:15;;15282:31;;-1:-1:-1;;;15282:31:0;;-1:-1:-1;;;;;15297:15:0;;;15282:31;;;3381:51:1;15192:4:0;;;;15282;;:14;;3354:18:1;;15282:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15251:62;;15324:20;15387:5;15370:16;;15347:20;:39;;;;:::i;:::-;:45;;;;:::i;:::-;15324:68;-1:-1:-1;15407:16:0;;15403:207;;15449:15;;-1:-1:-1;;;;;15449:15:0;15439:26;;;;:9;:26;;;;;:40;;15467:12;;15439:26;:40;;15467:12;;15439:40;:::i;:::-;;;;-1:-1:-1;;4232:6:0;15494:21;;;;:9;:21;;-1:-1:-1;;;;;;;;;;;15494:35:0;;15517:12;;15494:21;:35;;15517:12;;15494:35;:::i;:::-;;;;-1:-1:-1;;15558:15:0;;15549:49;;1546:25:1;;;4232:6:0;;-1:-1:-1;;;;;15558:15:0;;-1:-1:-1;;;;;;;;;;;15549:49:0;1534:2:1;1519:18;15549:49:0;;;;;;;15403:207;15645:15;;15672:11;;;-1:-1:-1;;;;;;15672:11:0;;;;-1:-1:-1;;;;;15645:15:0;;;;;;15672:9;;:11;;;;;15620:13;;15672:11;;;;;;;15620:13;15645:15;15672:11;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15699:12:0;;;;-1:-1:-1;15699:12:0;;-1:-1:-1;15699:12:0;15729:4;15722:11;;;;;15146:595;:::o;8343:176::-;8428:4;8479:31;3488:4;;8479:31;:::i;:::-;8464:10;8453;8460:3;8453:6;:10;:::i;:::-;:21;;;;:::i;:::-;8452:59;;;;:::i;:::-;8445:66;8343:176;-1:-1:-1;;;;8343:176:0:o;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;199:548::-;311:4;340:2;369;358:9;351:21;401:6;395:13;444:6;439:2;428:9;424:18;417:34;469:1;479:140;493:6;490:1;487:13;479:140;;;588:14;;;584:23;;578:30;554:17;;;573:2;550:26;543:66;508:10;;479:140;;;483:3;668:1;663:2;654:6;643:9;639:22;635:31;628:42;738:2;731;727:7;722:2;714:6;710:15;706:29;695:9;691:45;687:54;679:62;;;;199:548;;;;:::o;752:131::-;-1:-1:-1;;;;;827:31:1;;817:42;;807:70;;873:1;870;863:12;807:70;752:131;:::o;888:315::-;956:6;964;1017:2;1005:9;996:7;992:23;988:32;985:52;;;1033:1;1030;1023:12;985:52;1072:9;1059:23;1091:31;1116:5;1091:31;:::i;:::-;1141:5;1193:2;1178:18;;;;1165:32;;-1:-1:-1;;;888:315:1:o;1582:456::-;1659:6;1667;1675;1728:2;1716:9;1707:7;1703:23;1699:32;1696:52;;;1744:1;1741;1734:12;1696:52;1783:9;1770:23;1802:31;1827:5;1802:31;:::i;:::-;1852:5;-1:-1:-1;1909:2:1;1894:18;;1881:32;1922:33;1881:32;1922:33;:::i;:::-;1582:456;;1974:7;;-1:-1:-1;;;2028:2:1;2013:18;;;;2000:32;;1582:456::o;2232:247::-;2291:6;2344:2;2332:9;2323:7;2319:23;2315:32;2312:52;;;2360:1;2357;2350:12;2312:52;2399:9;2386:23;2418:31;2443:5;2418:31;:::i;:::-;2468:5;2232:247;-1:-1:-1;;;2232:247:1:o;2484:118::-;2570:5;2563:13;2556:21;2549:5;2546:32;2536:60;;2592:1;2589;2582:12;2607:377;2681:6;2689;2697;2750:2;2738:9;2729:7;2725:23;2721:32;2718:52;;;2766:1;2763;2756:12;2718:52;2802:9;2789:23;2779:33;;2859:2;2848:9;2844:18;2831:32;2821:42;;2913:2;2902:9;2898:18;2885:32;2926:28;2948:5;2926:28;:::i;:::-;2973:5;2963:15;;;2607:377;;;;;:::o;2989:241::-;3045:6;3098:2;3086:9;3077:7;3073:23;3069:32;3066:52;;;3114:1;3111;3104:12;3066:52;3153:9;3140:23;3172:28;3194:5;3172:28;:::i;3443:382::-;3508:6;3516;3569:2;3557:9;3548:7;3544:23;3540:32;3537:52;;;3585:1;3582;3575:12;3537:52;3624:9;3611:23;3643:31;3668:5;3643:31;:::i;:::-;3693:5;-1:-1:-1;3750:2:1;3735:18;;3722:32;3763:30;3722:32;3763:30;:::i;:::-;3812:7;3802:17;;;3443:382;;;;;:::o;3830:454::-;3925:6;3933;3941;3949;3957;4010:3;3998:9;3989:7;3985:23;3981:33;3978:53;;;4027:1;4024;4017:12;3978:53;-1:-1:-1;;4050:23:1;;;4120:2;4105:18;;4092:32;;-1:-1:-1;4171:2:1;4156:18;;4143:32;;4222:2;4207:18;;4194:32;;-1:-1:-1;4273:3:1;4258:19;4245:33;;-1:-1:-1;3830:454:1;-1:-1:-1;3830:454:1:o;4289:388::-;4357:6;4365;4418:2;4406:9;4397:7;4393:23;4389:32;4386:52;;;4434:1;4431;4424:12;4386:52;4473:9;4460:23;4492:31;4517:5;4492:31;:::i;:::-;4542:5;-1:-1:-1;4599:2:1;4584:18;;4571:32;4612:33;4571:32;4612:33;:::i;4682:356::-;4884:2;4866:21;;;4903:18;;;4896:30;4962:34;4957:2;4942:18;;4935:62;5029:2;5014:18;;4682:356::o;5043:127::-;5104:10;5099:3;5095:20;5092:1;5085:31;5135:4;5132:1;5125:15;5159:4;5156:1;5149:15;5175:168;5248:9;;;5279;;5296:15;;;5290:22;;5276:37;5266:71;;5317:18;;:::i;5348:217::-;5388:1;5414;5404:132;;5458:10;5453:3;5449:20;5446:1;5439:31;5493:4;5490:1;5483:15;5521:4;5518:1;5511:15;5404:132;-1:-1:-1;5550:9:1;;5348:217::o;5570:422::-;5659:1;5702:5;5659:1;5716:270;5737:7;5727:8;5724:21;5716:270;;;5796:4;5792:1;5788:6;5784:17;5778:4;5775:27;5772:53;;;5805:18;;:::i;:::-;5855:7;5845:8;5841:22;5838:55;;;5875:16;;;;5838:55;5954:22;;;;5914:15;;;;5716:270;;;5720:3;5570:422;;;;;:::o;5997:806::-;6046:5;6076:8;6066:80;;-1:-1:-1;6117:1:1;6131:5;;6066:80;6165:4;6155:76;;-1:-1:-1;6202:1:1;6216:5;;6155:76;6247:4;6265:1;6260:59;;;;6333:1;6328:130;;;;6240:218;;6260:59;6290:1;6281:10;;6304:5;;;6328:130;6365:3;6355:8;6352:17;6349:43;;;6372:18;;:::i;:::-;-1:-1:-1;;6428:1:1;6414:16;;6443:5;;6240:218;;6542:2;6532:8;6529:16;6523:3;6517:4;6514:13;6510:36;6504:2;6494:8;6491:16;6486:2;6480:4;6477:12;6473:35;6470:77;6467:159;;;-1:-1:-1;6579:19:1;;;6611:5;;6467:159;6658:34;6683:8;6677:4;6658:34;:::i;:::-;6728:6;6724:1;6720:6;6716:19;6707:7;6704:32;6701:58;;;6739:18;;:::i;:::-;6777:20;;5997:806;-1:-1:-1;;;5997:806:1:o;6808:140::-;6866:5;6895:47;6936:4;6926:8;6922:19;6916:4;6895:47;:::i;7302:128::-;7369:9;;;7390:11;;;7387:37;;;7404:18;;:::i;7435:125::-;7500:9;;;7521:10;;;7518:36;;;7534:18;;:::i;8746:184::-;8816:6;8869:2;8857:9;8848:7;8844:23;8840:32;8837:52;;;8885:1;8882;8875:12;8837:52;-1:-1:-1;8908:16:1;;8746:184;-1:-1:-1;8746:184:1:o;9214:245::-;9281:6;9334:2;9322:9;9313:7;9309:23;9305:32;9302:52;;;9350:1;9347;9340:12;9302:52;9382:9;9376:16;9401:28;9423:5;9401:28;:::i;9464:347::-;9666:2;9648:21;;;9705:2;9685:18;;;9678:30;9744:25;9739:2;9724:18;;9717:53;9802:2;9787:18;;9464:347::o;10778:339::-;10980:2;10962:21;;;11019:2;10999:18;;;10992:30;-1:-1:-1;;;11053:2:1;11038:18;;11031:45;11108:2;11093:18;;10778:339::o;17608:400::-;17810:2;17792:21;;;17849:2;17829:18;;;17822:30;17888:34;17883:2;17868:18;;17861:62;-1:-1:-1;;;17954:2:1;17939:18;;17932:34;17998:3;17983:19;;17608:400::o;18572:127::-;18633:10;18628:3;18624:20;18621:1;18614:31;18664:4;18661:1;18654:15;18688:4;18685:1;18678:15;18704:251;18774:6;18827:2;18815:9;18806:7;18802:23;18798:32;18795:52;;;18843:1;18840;18833:12;18795:52;18875:9;18869:16;18894:31;18919:5;18894:31;:::i;18960:980::-;19222:4;19270:3;19259:9;19255:19;19301:6;19290:9;19283:25;19327:2;19365:6;19360:2;19349:9;19345:18;19338:34;19408:3;19403:2;19392:9;19388:18;19381:31;19432:6;19467;19461:13;19498:6;19490;19483:22;19536:3;19525:9;19521:19;19514:26;;19575:2;19567:6;19563:15;19549:29;;19596:1;19606:195;19620:6;19617:1;19614:13;19606:195;;;19685:13;;-1:-1:-1;;;;;19681:39:1;19669:52;;19776:15;;;;19741:12;;;;19717:1;19635:9;19606:195;;;-1:-1:-1;;;;;;;19857:32:1;;;;19852:2;19837:18;;19830:60;-1:-1:-1;;;19921:3:1;19906:19;19899:35;19818:3;18960:980;-1:-1:-1;;;18960:980:1:o;20557:306::-;20645:6;20653;20661;20714:2;20702:9;20693:7;20689:23;20685:32;20682:52;;;20730:1;20727;20720:12;20682:52;20759:9;20753:16;20743:26;;20809:2;20798:9;20794:18;20788:25;20778:35;;20853:2;20842:9;20838:18;20832:25;20822:35;;20557:306;;;;;:::o

Swarm Source

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