ETH Price: $3,111.25 (-5.50%)
Gas: 6 Gwei

Token

Kyuubi ($KYUB)
 

Overview

Max Total Supply

1,000,000,000,000 $KYUB

Holders

111 (0.00%)

Market

Price

$0.00 @ 0.000000 ETH (+0.05%)

Onchain Market Cap

$1,149,356.61

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
390,020,590.907312635147092849 $KYUB

Value
$448.27 ( ~0.144080515107333 Eth) [0.0390%]
0x52844f28c3460832f1128f6630b78a76a232c0ee
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Kyuubi symbolizes attributes of agility, adaptability, and the ability to grow wise. Kyuubi represents the ability to grow through community engagement and strength. Kyuubi aims to be a serious contender and provide developmental supports through each new tail(roadmap phases).

Market

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

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Kyuubi

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-05-10
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.10;

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

}

interface ITaxSplitter {
    function taxReceive() external payable;    
}

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 Kyuubi is IBEP20, Ownable
{
    //TresFlames
    //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;
    mapping (address => bool) public isBlacklisted;
    //strings
    string private constant _name = 'Kyuubi';
    string private constant _symbol = '$KYUB';
    //uints
    uint private constant DefaultLiquidityLockTime=7 days;
    uint public constant InitialSupply= 10**12 * 10**_decimals;
    uint public _circulatingSupply =InitialSupply;
    uint public buyTax = 90;
    uint public sellTax = 90;
    uint public transferTax = 90;
    uint public liquidityTax=200;
    uint public splitterTax=800;
    uint constant TAX_DENOMINATOR=1000;
    uint constant MAXTAXDENOMINATOR=10;
    uint public swapTreshold=1;
    uint public overLiquifyTreshold=100;
    uint private LaunchTimestamp;
    uint _liquidityUnlockTime;
    uint8 private constant _decimals = 18;
    uint256 public maxTransactionAmount;
    uint256 public maxWalletBalance;

    IdexRouter private  _dexRouter;
    
    //addresses
    address private dexRouter=0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address private _dexPairAddress;
    address constant deadWallet = 0x000000000000000000000000000000000000dEaD;
    address payable public taxSplitter;
    address public multisig;
    //modifiers
    modifier onlyMultisig() {
        require(msg.sender == multisig);
        _;
    }

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

    //bools
    bool private _isSwappingContractModifier;
    bool public blacklistMode = true;
    bool public manualSwap;
    bool public LPReleaseLimitedTo20Percent;
    
    //events
    event MultisigUpdate(address multisig);
    event BlacklistStatusChange(bool status);
    event UpdateTaxSplitter(address _contract);
    event SwapThresholdChange(uint threshold);
    event OverLiquifiedThresholdChange(uint threshold);
    event OnSetTaxes(uint buy, uint sell, uint transfer_, uint splitter,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 OnProlongLPLock(uint UnlockTimestamp);
    event OnReleaseLP();
    event RecoverBNB();
    event BlacklistUpdated();
    event NewPairSet(address Pair, bool Add);
    event Release20PercentLP();
    event NewRouterSet(address _newdex);
    
    constructor () {
        uint deployerBalance=_circulatingSupply;
        _balances[msg.sender] = deployerBalance;
        emit Transfer(address(0), msg.sender, deployerBalance);
        _dexRouter = IdexRouter(dexRouter);
        _dexPairAddress = IdexFactory(_dexRouter.factory()).createPair(address(this), _dexRouter.WETH());
        isPair[_dexPairAddress]=true;
        
        taxSplitter = payable(0xbF2d9657BdF428AFd4F7f1B7f51279E99cc51A82);
        multisig = 0x686cEd60f145fB062BDc82DDecd4FCef26A643D2;

        excludedFromFees[msg.sender]=true;
        excludedFromFees[dexRouter]=true;
        excludedFromFees[address(this)]=true;
        excludedFromFees[taxSplitter]=true;
        excludedFromFees[multisig]=true;
        excludedFromFees[0x505610adB4D5DE12E1586f93355F40a412984132]=true;
        excludedFromLimits[multisig] = true;
        excludedFromLimits[taxSplitter] = true;
        excludedFromLimits[0x505610adB4D5DE12E1586f93355F40a412984132] = true;
        excludedFromLimits[msg.sender] = true;
        excludedFromLimits[deadWallet] = true;
        excludedFromLimits[address(this)] = true;
    }
    
    function enable_blacklist(bool _status) public onlyMultisig {
        blacklistMode = _status;
        emit BlacklistStatusChange (_status);
    }
    function manage_blacklist(address[] calldata addresses, bool status) public onlyMultisig {
        for (uint256 i; i < addresses.length; ++i) {
            isBlacklisted[addresses[i]] = status;
        }
        emit BlacklistUpdated();
    }
    function setMultisig(address _multisig) external onlyMultisig {
        multisig = _multisig;
        excludedFromFees[_multisig] = true;
        excludedFromLimits[_multisig] = true;
        emit MultisigUpdate(_multisig);
    }
    function ChangeTaxSplitter(address newContract) public onlyMultisig{
        taxSplitter=payable(newContract);
        excludedFromFees[newContract] = true;
        excludedFromLimits[newContract] = true;
        emit UpdateTaxSplitter(newContract);
    }
    function _transfer(address sender, address recipient, uint amount) private{
        require(sender != address(0), "Transfer from zero");
        require(recipient != address(0), "Transfer to zero");
        if(blacklistMode){
            require(!isBlacklisted[sender] && !isBlacklisted[recipient],"Blacklisted");    
        }
        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=48 hours;          
            if(block.timestamp<LaunchTimestamp+SellTaxDuration){
                tax=_getStartTax(SellTaxDuration,200);
                }else tax=sellTax;
            }
        else if(isBuy){
            uint BuyTaxDuration=10 minutes;
            if(block.timestamp<LaunchTimestamp+BuyTaxDuration){
                tax=_getStartTax(BuyTaxDuration,200);
            }else tax=buyTax;
        } else tax=transferTax;

        if((sender!=_dexPairAddress)&&(!manualSwap)&&(!_isSwappingContractModifier))
            _swapContractToken(false);
        uint contractToken=_calculateFee(amount, tax, splitterTax+liquidityTax);
        uint taxedAmount=amount-contractToken;

        _balances[sender]-=amount;
        _balances[address(this)] += contractToken;
        _balances[recipient]+=taxedAmount;
        
        emit Transfer(sender,recipient,taxedAmount);
    }
    function _getStartTax(uint duration, uint maxTax) private view returns (uint){
        uint timeSinceLaunch=block.timestamp-LaunchTimestamp;
        return maxTax-((maxTax-50)*timeSinceLaunch/duration);
    }
    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) public onlyMultisig{
        require(newSwapTresholdPermille<=10);//MaxTreshold= 1%
        swapTreshold=newSwapTresholdPermille;
        emit SwapThresholdChange(newSwapTresholdPermille);
    }
    function SetOverLiquifiedTreshold(uint newOverLiquifyTresholdPermille) public onlyMultisig{
        require(newOverLiquifyTresholdPermille<=1000);
        overLiquifyTreshold=newOverLiquifyTresholdPermille;
        emit OverLiquifiedThresholdChange(newOverLiquifyTresholdPermille);
    }
    function SetTaxes(uint buy, uint sell, uint transfer_, uint splitter,uint liquidity) public onlyMultisig{
        uint maxTax=TAX_DENOMINATOR/MAXTAXDENOMINATOR;
        require(buy<=maxTax&&sell<=maxTax&&transfer_<=maxTax,"Tax exceeds maxTax");
        require(splitter+liquidity==TAX_DENOMINATOR,"Taxes don't add up to denominator");
        
        buyTax=buy;
        sellTax=sell;
        transferTax=transfer_;
        splitterTax=splitter;
        liquidityTax=liquidity;
        emit OnSetTaxes(buy, sell, transfer_, splitter,liquidity);
    }
    
    function isOverLiquified() public view returns(bool){
        return _balances[_dexPairAddress]>_circulatingSupply*overLiquifyTreshold/1000;
    }
    function _swapContractToken(bool ignoreLimits) private lockTheSwap{
        uint contractBalance=_balances[address(this)];
        uint totalTax=liquidityTax+splitterTax;
        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 tokenForSplitter= tokenToSwap-tokenForLiquidity;

        uint LiqHalf=tokenForLiquidity/2;
        uint swapToken=LiqHalf+tokenForSplitter;
        uint initialBNBBalance = address(this).balance;
        _swapTokenForBNB(swapToken);
        uint newBNB=(address(this).balance - initialBNBBalance);
        if(tokenForLiquidity>0){
            uint liqBNB = (newBNB*LiqHalf)/swapToken;
            _addLiquidity(LiqHalf, liqBNB);
        }
        ITaxSplitter(taxSplitter).taxReceive{value: address(this).balance}();
    }
    function _swapTokenForBNB(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 bnbamount) private {
        _approve(address(this), address(_dexRouter), tokenamount);
        _dexRouter.addLiquidityETH{value: bnbamount}(
            address(this),
            tokenamount,
            0,
            0,
            address(this),
            block.timestamp
        );
    }
    function getLiquidityReleaseTimeInSeconds() public view returns (uint){
        if(block.timestamp<_liquidityUnlockTime)
            return _liquidityUnlockTime-block.timestamp;
        return 0;
    }
    function getBurnedTokens() public view returns(uint){
        return (InitialSupply-_circulatingSupply)+_balances[address(0xdead)];
    }
    function SetPair(address Pair, bool Add) public onlyMultisig{
        require(Pair!=_dexPairAddress,"can't change pancake");
        isPair[Pair]=Add;
        emit NewPairSet(Pair,Add);
    }
    function SwitchManualSwap(bool manual) public onlyMultisig{
        manualSwap=manual;
        emit ManualSwapChange(manual);
    }
    function SwapContractToken() public onlyMultisig{
        _swapContractToken(true);
        emit OwnerSwap();
    }

    function SetNewRouter(address _newdex) public onlyMultisig{
        dexRouter = _newdex;
        emit NewRouterSet(_newdex);
    }

    function setMaxWalletBalancePercent(uint256 percent) external onlyMultisig {
        require(percent >= 10, "min 1%");
        require(percent <= 1000, "max 100%");
        maxWalletBalance = InitialSupply * percent / 1000;
        emit MaxWalletBalanceUpdated(percent);
    }
    
    function setMaxTransactionAmount(uint256 percent) public onlyMultisig {
        require(percent >= 25, "min 0.25%");
        require(percent <= 10000, "max 100%");
        maxTransactionAmount = InitialSupply * percent / 10000;
        emit MaxTransactionAmountUpdated(percent);
    }
    
    function ExcludeAccountFromFees(address account, bool exclude) public onlyMultisig{
        require(account!=address(this),"can't Include the contract");
        excludedFromFees[account]=exclude;
        emit ExcludeAccount(account,exclude);
    }
    
    function setExcludedAccountFromLimits(address account, bool exclude) public onlyMultisig{
        excludedFromLimits[account]=exclude;
        emit ExcludeFromLimits(account,exclude);
    }
    function isExcludedFromLimits(address account) public view returns(bool) {
        return excludedFromLimits[account];
    }
    
    function SetupEnableTrading() public onlyOwner{
        require(LaunchTimestamp==0,"AlreadyLaunched");
        LaunchTimestamp=block.timestamp;
        maxWalletBalance = InitialSupply * 30 / 1000;
        maxTransactionAmount = InitialSupply * 100 / 10000;
        emit OnEnableTrading();
    }
    
    function limitLiquidityReleaseTo20Percent() public onlyMultisig{
        LPReleaseLimitedTo20Percent=true;
        emit Release20PercentLP();
    }
    function LockLiquidityForSeconds(uint secondsUntilUnlock) public onlyMultisig{
        _prolongLiquidityLock(secondsUntilUnlock+block.timestamp);
    }
    function _prolongLiquidityLock(uint newUnlockTime) private{
        require(newUnlockTime>_liquidityUnlockTime);
        _liquidityUnlockTime=newUnlockTime;
        emit OnProlongLPLock(_liquidityUnlockTime);
    }
    
    function LiquidityRelease() public onlyMultisig {
        require(block.timestamp >= _liquidityUnlockTime, "Not yet unlocked");

        IBEP20 liquidityToken = IBEP20(_dexPairAddress);
        uint amount = liquidityToken.balanceOf(address(this));
        if(LPReleaseLimitedTo20Percent)
        {
            _liquidityUnlockTime=block.timestamp+DefaultLiquidityLockTime;
            amount=amount*2/10;
        }
        liquidityToken.transfer(msg.sender, amount);
        emit OnReleaseLP();
    }

    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 view override returns (uint) {
        return _circulatingSupply;
    }
    function balanceOf(address account) public view override returns (uint) {
        return _balances[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 emergencyBNBrecovery(uint256 amountPercentage) external onlyMultisig {
        uint256 amountBNB = address(this).balance;
        payable(msg.sender).transfer(amountBNB * amountPercentage / 100);
        emit RecoverBNB();
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"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":[{"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":"multisig","type":"address"}],"name":"MultisigUpdate","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":"_newdex","type":"address"}],"name":"NewRouterSet","type":"event"},{"anonymous":false,"inputs":[],"name":"OnEnableTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"UnlockTimestamp","type":"uint256"}],"name":"OnProlongLPLock","type":"event"},{"anonymous":false,"inputs":[],"name":"OnReleaseLP","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":"splitter","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":"RecoverBNB","type":"event"},{"anonymous":false,"inputs":[],"name":"Release20PercentLP","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_contract","type":"address"}],"name":"UpdateTaxSplitter","type":"event"},{"inputs":[{"internalType":"address","name":"newContract","type":"address"}],"name":"ChangeTaxSplitter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":[],"name":"LPReleaseLimitedTo20Percent","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LiquidityRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"secondsUntilUnlock","type":"uint256"}],"name":"LockLiquidityForSeconds","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":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"},{"internalType":"uint256","name":"transfer_","type":"uint256"},{"internalType":"uint256","name":"splitter","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":[],"name":"_circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"emergencyBNBrecovery","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_blacklist","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":"getLiquidityReleaseTimeInSeconds","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":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"limitLiquidityReleaseTo20Percent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liquidityTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_blacklist","outputs":[],"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":"multisig","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","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":"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":"_multisig","type":"address"}],"name":"setMultisig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSwapTresholdPermille","type":"uint256"}],"name":"setSwapTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"splitterTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"taxSplitter","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126012600a62000546565b620000239064e8d4a510006200055e565b600755605a60088190556009819055600a5560c8600b55610320600c556001600d556064600e55601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556017805460ff60a81b1916600160a81b1790553480156200009057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600754336000818152600160209081526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3601454601380546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000176573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019c919062000580565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000225919062000580565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000273573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000299919062000580565b601580546001600160a01b039283166001600160a01b031991821681179092556000918252600560209081526040808420805460ff19908116600190811790925560168054861673bf2d9657bdf428afd4f7f1b7f51279e99cc51a821781556017805490961673686ced60f145fb062bdc82ddecd4fcef26a643d21786553380885260048652848820805484168517905560145489168852848820805484168517905530808952858920805485168617905582548a168952858920805485168617905587548a16895285892080548516861790557f8ca88601b52ef3c7f8399722b49250cf95002780d0d350468ca4992603e6c90680548516861790559654891688526003909552838720805483168417905554909616855281852080548716821790557f326f9ca5ad2f62c7983f9b6532ff7d2c87c49cb9eb4790a70e94e808a469d0bf805487168217905591845280842080548616831790557f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c80548616831790559183529120805490921617905550620005ab565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004885781600019048211156200046c576200046c62000431565b808516156200047a57918102915b93841c93908002906200044c565b509250929050565b600082620004a15750600162000540565b81620004b05750600062000540565b8160018114620004c95760028114620004d457620004f4565b600191505062000540565b60ff841115620004e857620004e862000431565b50506001821b62000540565b5060208310610133831016604e8410600b841016171562000519575081810a62000540565b62000525838362000447565b80600019048211156200053c576200053c62000431565b0290505b92915050565b60006200055760ff84168362000490565b9392505050565b60008160001904831182151516156200057b576200057b62000431565b500290565b6000602082840312156200059357600080fd5b81516001600160a01b03811681146200055757600080fd5b612de980620005bb6000396000f3fe6080604052600436106103855760003560e01c8063896648c1116101d1578063c3a3c03211610102578063e0d2f9eb116100a0578063f3283fba1161006f578063f3283fba14610a38578063f40a563a14610a58578063f7942b6314610a78578063fe575a8714610a9857600080fd5b8063e0d2f9eb146109b2578063e52fb9ec146109d2578063e5e31b13146109e8578063f2fde38b14610a1857600080fd5b8063cc1776d3116100dc578063cc1776d314610906578063cfd1940e1461091c578063dbe66ca01461093c578063dd62ed3e1461096c57600080fd5b8063c3a3c032146108c6578063c3f4f54f146108db578063c8c8ebe4146108f057600080fd5b8063a457c2d71161016f578063baa88ea911610149578063baa88ea91461085a578063bbde77c11461087a578063bc43d84914610890578063be617fa0146108b057600080fd5b8063a457c2d714610805578063a68bdac714610825578063a9059cbb1461083a57600080fd5b806395d89b41116101ab57806395d89b411461078057806397e78f35146107ae5780639b39b65f146107ce578063a253c06e146107ef57600080fd5b8063896648c11461073f5780638da5cb5b146107215780638e2eee841461076057600080fd5b806339509351116102b65780635cce86cd116102545780637b9e987a116102235780637b9e987a146106d65780638124f7ac146106eb578063868b014114610701578063893d20e81461072157600080fd5b80635cce86cd146106325780635e562f3b1461066b57806370a082311461068b578063715018a6146106c157600080fd5b806346e35f031161029057806346e35f03146105c65780634783c35b146105db5780634f7041a5146105fb57806351bc3c851461061157600080fd5b8063395093511461055957806340c3c8191461057957806341aec357146105b157600080fd5b806323b872dd116103235780632c92293c116102fd5780632c92293c146104dd57806330cc1cd1146104fd578063313ce5671461051d5780633227925f1461053957600080fd5b806323b872dd1461048757806325049036146104a75780632a8b0a24146104bd57600080fd5b80630eff4c641161035f5780630eff4c641461041957806318160ddd1461043d5780631e293c10146104525780631eb25d131461047257600080fd5b80630612f39d1461039157806306fdde03146103a8578063095ea7b3146103e957600080fd5b3661038c57005b600080fd5b34801561039d57600080fd5b506103a6610ac8565b005b3480156103b457600080fd5b506040805180820190915260068152654b797575626960d01b60208201525b6040516103e0919061287b565b60405180910390f35b3480156103f557600080fd5b506104096104043660046128e5565b610c78565b60405190151581526020016103e0565b34801561042557600080fd5b5061042f600e5481565b6040519081526020016103e0565b34801561044957600080fd5b5060075461042f565b34801561045e57600080fd5b506103a661046d366004612911565b610c8f565b34801561047e57600080fd5b5061042f610d8d565b34801561049357600080fd5b506104096104a236600461292a565b610dab565b3480156104b357600080fd5b5061042f600c5481565b3480156104c957600080fd5b506103a66104d8366004612911565b610e42565b3480156104e957600080fd5b506103a66104f8366004612911565b610eca565b34801561050957600080fd5b506103a661051836600461296b565b610fbe565b34801561052957600080fd5b50604051601281526020016103e0565b34801561054557600080fd5b506103a6610554366004612911565b611052565b34801561056557600080fd5b506104096105743660046128e5565b61107e565b34801561058557600080fd5b50601654610599906001600160a01b031681565b6040516001600160a01b0390911681526020016103e0565b3480156105bd57600080fd5b506103a66110b5565b3480156105d257600080fd5b50610409611101565b3480156105e757600080fd5b50601754610599906001600160a01b031681565b34801561060757600080fd5b5061042f60085481565b34801561061d57600080fd5b5060175461040990600160b01b900460ff1681565b34801561063e57600080fd5b5061040961064d36600461296b565b6001600160a01b031660009081526003602052604090205460ff1690565b34801561067757600080fd5b506103a661068636600461299d565b611141565b34801561069757600080fd5b5061042f6106a636600461296b565b6001600160a01b031660009081526001602052604090205490565b3480156106cd57600080fd5b506103a66111a5565b3480156106e257600080fd5b506103a6611228565b3480156106f757600080fd5b5061042f600a5481565b34801561070d57600080fd5b506103a661071c36600461299d565b611340565b34801561072d57600080fd5b506000546001600160a01b0316610599565b34801561074b57600080fd5b5060175461040990600160a81b900460ff1681565b34801561076c57600080fd5b506103a661077b3660046129ba565b6113a9565b34801561078c57600080fd5b506040805180820190915260058152641225acaaa160d91b60208201526103d3565b3480156107ba57600080fd5b506103a66107c936600461296b565b61145e565b3480156107da57600080fd5b5060175461040990600160b81b900460ff1681565b3480156107fb57600080fd5b5061042f60075481565b34801561081157600080fd5b506104096108203660046128e5565b6114c3565b34801561083157600080fd5b506103a661153f565b34801561084657600080fd5b506104096108553660046128e5565b611594565b34801561086657600080fd5b506103a6610875366004612a40565b6115a1565b34801561088657600080fd5b5061042f60125481565b34801561089c57600080fd5b506103a66108ab366004612911565b6116fa565b3480156108bc57600080fd5b5061042f600b5481565b3480156108d257600080fd5b5061042f611755565b3480156108e757600080fd5b5061042f611775565b3480156108fc57600080fd5b5061042f60115481565b34801561091257600080fd5b5061042f60095481565b34801561092857600080fd5b506103a6610937366004612911565b6117d6565b34801561094857600080fd5b5061040961095736600461296b565b60046020526000908152604090205460ff1681565b34801561097857600080fd5b5061042f610987366004612a7b565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156109be57600080fd5b506103a66109cd366004612ab4565b611830565b3480156109de57600080fd5b5061042f600d5481565b3480156109f457600080fd5b50610409610a0336600461296b565b60056020526000908152604090205460ff1681565b348015610a2457600080fd5b506103a6610a3336600461296b565b611904565b348015610a4457600080fd5b506103a6610a5336600461296b565b6119fd565b348015610a6457600080fd5b506103a6610a73366004612ab4565b611a91565b348015610a8457600080fd5b506103a6610a93366004612ab4565b611b59565b348015610aa457600080fd5b50610409610ab336600461296b565b60066020526000908152604090205460ff1681565b6017546001600160a01b03163314610adf57600080fd5b601054421015610b295760405162461bcd60e51b815260206004820152601060248201526f139bdd081e595d081d5b9b1bd8dad95960821b60448201526064015b60405180910390fd5b6015546040516370a0823160e01b81523060048201526001600160a01b039091169060009082906370a0823190602401602060405180830381865afa158015610b76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9a9190612ae2565b601754909150600160b81b900460ff1615610bd957610bbc62093a8042612b11565b601055600a610bcc826002612b29565b610bd69190612b48565b90505b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610c26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4a9190612b6a565b506040517f28bacca46f5c57fe13623e9d5093cb2fab892814aca9b39384ab86550d9aa67590600090a15050565b6000610c85338484611bcc565b5060015b92915050565b6017546001600160a01b03163314610ca657600080fd5b6019811015610ce35760405162461bcd60e51b81526020600482015260096024820152686d696e20302e32352560b81b6044820152606401610b20565b612710811115610d205760405162461bcd60e51b81526020600482015260086024820152676d6178203130302560c01b6044820152606401610b20565b61271081610d306012600a612c6b565b610d3f9064e8d4a51000612b29565b610d499190612b29565b610d539190612b48565b6011556040518181527f7c1cb3702d8e1fa6d24b12dd90670ab69c6d66d58233103d37da8b07d6b850ac906020015b60405180910390a150565b610d996012600a612c6b565b610da89064e8d4a51000612b29565b81565b6000610db8848484611cbf565b6001600160a01b038416600090815260026020908152604080832033845290915290205482811015610e235760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b6044820152606401610b20565b610e378533610e328685612c7a565b611bcc565b506001949350505050565b6017546001600160a01b03163314610e5957600080fd5b47336108fc6064610e6a8585612b29565b610e749190612b48565b6040518115909202916000818181858888f19350505050158015610e9c573d6000803e3d6000fd5b506040517fc596e4e14304bf380fec9eb503fbcf94714f378349710015b4df245b01033afa90600090a15050565b6017546001600160a01b03163314610ee157600080fd5b600a811015610f1b5760405162461bcd60e51b81526020600482015260066024820152656d696e20312560d01b6044820152606401610b20565b6103e8811115610f585760405162461bcd60e51b81526020600482015260086024820152676d6178203130302560c01b6044820152606401610b20565b6103e881610f686012600a612c6b565b610f779064e8d4a51000612b29565b610f819190612b29565b610f8b9190612b48565b6012556040518181527f9cbd2e55e2abf49d29273c1b9fb343c2828844b2aec156cfe2aec98ae1b72a9990602001610d82565b6017546001600160a01b03163314610fd557600080fd5b601680546001600160a01b0319166001600160a01b0383169081179091556000818152600460209081526040808320805460ff199081166001908117909255600384529382902080549094161790925590519182527f9366b3c89c28c8546c2b5ffedaaebc1aa4f6c8a06a97f735d00a3d86ac0625c79101610d82565b6017546001600160a01b0316331461106957600080fd5b61107b6110764283612b11565b611e92565b50565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610c85918590610e32908690612b11565b6017546001600160a01b031633146110cc57600080fd5b6110d66001611ed5565b6040517f703db25eb5fd328335fc797436bbbbd25d5575588bd991102facd962c4d41b9290600090a1565b60006103e8600e546007546111169190612b29565b6111209190612b48565b6015546001600160a01b031660009081526001602052604090205411919050565b6017546001600160a01b0316331461115857600080fd5b60178054821515600160a81b0260ff60a81b199091161790556040517fecfaacf5e291e532c372363b39be86acbee05e57acb4ff67acceb0c7110a7bc090610d8290831515815260200190565b336111b86000546001600160a01b031690565b6001600160a01b0316146111de5760405162461bcd60e51b8152600401610b2090612c91565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b3361123b6000546001600160a01b031690565b6001600160a01b0316146112615760405162461bcd60e51b8152600401610b2090612c91565b600f54156112a35760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e53185d5b98da1959608a1b6044820152606401610b20565b42600f556103e86112b66012600a612c6b565b6112c59064e8d4a51000612b29565b6112d090601e612b29565b6112da9190612b48565b6012908155612710906112ee90600a612c6b565b6112fd9064e8d4a51000612b29565b611308906064612b29565b6113129190612b48565b6011556040517f2cb945e0498987ef06dbd68025b0bc276116c63345296379c28a8e8f09b47dc190600090a1565b6017546001600160a01b0316331461135757600080fd5b60178054821515600160b01b0260ff60b01b199091161790556040517f3db17fb4d29ca5a33dc4750f7205263855fb8b82cc89d6c418a04b60f58b429d90610d8290831515815260200190565b905090565b6017546001600160a01b031633146113c057600080fd5b60005b8281101561142f5781600660008686858181106113e2576113e2612cc6565b90506020020160208101906113f7919061296b565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561142881612cdc565b90506113c3565b506040517f890e6981f892b367aea9f0b31589753714df5ee88d6dde2c0ddaffce7b9915d990600090a1505050565b6017546001600160a01b0316331461147557600080fd5b601480546001600160a01b0319166001600160a01b0383169081179091556040519081527f117661539ed67d391940fa7b78853c234b4e9a40d616d75923ae8db26672833a90602001610d82565b3360009081526002602090815260408083206001600160a01b0386168452909152812054828110156115265760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b6044820152606401610b20565b6115353385610e328685612c7a565b5060019392505050565b6017546001600160a01b0316331461155657600080fd5b6017805460ff60b81b1916600160b81b1790556040517f6ea46eef5c8fc4ad72144e672cadd89b6d28bc14a84977fea8bfe0ac63c1194090600090a1565b6000610c85338484611cbf565b6017546001600160a01b031633146115b857600080fd5b60006115c7600a6103e8612b48565b90508086111580156115d95750808511155b80156115e55750808411155b6116265760405162461bcd60e51b81526020600482015260126024820152710a8c2f040caf0c6cacac8e640dac2f0a8c2f60731b6044820152606401610b20565b6103e86116338385612b11565b1461168a5760405162461bcd60e51b815260206004820152602160248201527f546178657320646f6e27742061646420757020746f2064656e6f6d696e61746f6044820152603960f91b6064820152608401610b20565b60088690556009859055600a849055600c839055600b829055604080518781526020810187905290810185905260608101849052608081018390527f07d167ef63e413076f3e7e19f733b66f7ab5fd83fd7b437428f115315687ef6e9060a00160405180910390a1505050505050565b6017546001600160a01b0316331461171157600080fd5b6103e881111561172057600080fd5b600e8190556040518181527fa072eee57b8e01913ba01eab29d8a81117cf780e6c8984a3494477ce9cee846d90602001610d82565b600060105442101561176f57426010546113a49190612c7a565b50600090565b61dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d546007546117b36012600a612c6b565b6117c29064e8d4a51000612b29565b6117cc9190612c7a565b6113a49190612b11565b6017546001600160a01b031633146117ed57600080fd5b600a8111156117fb57600080fd5b600d8190556040518181527fc075380b8410207b8cc14f0d254ab8c8a6766469631275e4500db835a1ba02cc90602001610d82565b6017546001600160a01b0316331461184757600080fd5b6001600160a01b0382163014156118a05760405162461bcd60e51b815260206004820152601a60248201527f63616e277420496e636c7564652074686520636f6e74726163740000000000006044820152606401610b20565b6001600160a01b038216600081815260046020908152604091829020805460ff19168515159081179091558251938452908301527fa22b25479919d4ac678f064a05daa1ee9c0adc3b8198942ea45255e364e04ed491015b60405180910390a15050565b336119176000546001600160a01b031690565b6001600160a01b03161461193d5760405162461bcd60e51b8152600401610b2090612c91565b6001600160a01b0381166119a25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b20565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6017546001600160a01b03163314611a1457600080fd5b601780546001600160a01b0319166001600160a01b0383169081179091556000818152600460209081526040808320805460ff199081166001908117909255600384529382902080549094161790925590519182527fdc0b2ff2a40bfb0cfd1ce8f446634ae38d98d2013d2c81c4c006ac62652229729101610d82565b6017546001600160a01b03163314611aa857600080fd5b6015546001600160a01b0383811691161415611afd5760405162461bcd60e51b815260206004820152601460248201527363616e2774206368616e67652070616e63616b6560601b6044820152606401610b20565b6001600160a01b038216600081815260056020908152604091829020805460ff19168515159081179091558251938452908301527f6765bb5e5ecad4581ce8f9322a9c218e75a54a7c4af6217752833adb834511ac91016118f8565b6017546001600160a01b03163314611b7057600080fd5b6001600160a01b038216600081815260036020908152604091829020805460ff19168515159081179091558251938452908301527f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc9291016118f8565b6001600160a01b038316611c165760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b6044820152606401610b20565b6001600160a01b038216611c5e5760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b6044820152606401610b20565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611d0a5760405162461bcd60e51b81526020600482015260126024820152715472616e736665722066726f6d207a65726f60701b6044820152606401610b20565b6001600160a01b038216611d535760405162461bcd60e51b815260206004820152601060248201526f5472616e7366657220746f207a65726f60801b6044820152606401610b20565b601754600160a81b900460ff1615611de1576001600160a01b03831660009081526006602052604090205460ff16158015611da757506001600160a01b03821660009081526006602052604090205460ff16155b611de15760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610b20565b6001600160a01b03831660009081526004602052604090205460ff1680611e2057506001600160a01b03821660009081526004602052604090205460ff165b15611e3557611e308383836120a1565b505050565b6000600f5411611e875760405162461bcd60e51b815260206004820152601760248201527f74726164696e67206e6f742079657420656e61626c65640000000000000000006044820152606401610b20565b611e308383836121b4565b6010548111611ea057600080fd5b60108190556040518181527f8ff9dc93846a022986f54e8f219a1fa780225726858e39e850da826852b4042e90602001610d82565b6017805460ff60a01b1916600160a01b17905530600090815260016020526040812054600c54600b54919291611f0b9190612b11565b600d546015546001600160a01b0316600090815260016020526040812054929350916103e891611f3a91612b29565b611f449190612b48565b905081611f5357505050612091565b8315611f6f575030600090815260016020526040902054611f7f565b80831015611f7f57505050612091565b6000611f89611101565b611fab5782600b5483611f9c9190612b29565b611fa69190612b48565b611fae565b60005b90506000611fbc8284612c7a565b90506000611fcb600284612b48565b90506000611fd98383612b11565b905047611fe582612608565b6000611ff18247612c7a565b9050851561201e576000836120068684612b29565b6120109190612b48565b905061201c8582612757565b505b601660009054906101000a90046001600160a01b03166001600160a01b0316637dc39276476040518263ffffffff1660e01b81526004016000604051808303818588803b15801561206e57600080fd5b505af1158015612082573d6000803e3d6000fd5b50505050505050505050505050505b506017805460ff60a01b19169055565b6001600160a01b038316600090815260016020526040902054818110156121055760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610b20565b6001600160a01b0384166000908152600160205260408120805484929061212d908490612c7a565b90915550506001600160a01b0383166000908152600160205260408120805484929061215a908490612b11565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121a691815260200190565b60405180910390a350505050565b6001600160a01b038316600090815260016020526040902054818110156122185760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610b20565b6001600160a01b03841660009081526003602052604081205460ff168061225757506001600160a01b03841660009081526003602052604090205460ff165b6001600160a01b03861660009081526005602052604090205490915060ff168015612280575080155b1561236e576011548311156122e85760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610b20565b6001600160a01b03841660009081526001602052604090205460125461230e8583612b11565b11156123685760405162461bcd60e51b8152602060048201526024808201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152633ab73a1760e11b6064820152608401610b20565b50612411565b6001600160a01b03841660009081526005602052604090205460ff168015612394575080155b15612411576011548311156124115760405162461bcd60e51b815260206004820152603a60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201527f206d617853656c6c5472616e73616374696f6e416d6f756e742e0000000000006064820152608401610b20565b6001600160a01b0380861660009081526005602052604080822054928716825281205460ff928316921690811561247a57600f546202a30090612455908290612b11565b42101561246e576124678160c8612808565b9150612474565b60095491505b506124b3565b82156124ae57600f5461025890612492908290612b11565b4210156124a4576124678160c8612808565b50506008546124b3565b50600a545b6015546001600160a01b038981169116148015906124db5750601754600160b01b900460ff16155b80156124f15750601754600160a01b900460ff16155b15612500576125006000611ed5565b600061251c8783600b54600c546125179190612b11565b61284e565b9050600061252a8289612c7a565b6001600160a01b038b16600090815260016020526040812080549293508a92909190612557908490612c7a565b9091555050306000908152600160205260408120805484929061257b908490612b11565b90915550506001600160a01b038916600090815260016020526040812080548392906125a8908490612b11565b92505081905550886001600160a01b03168a6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125f491815260200190565b60405180910390a350505050505050505050565b6013546126209030906001600160a01b031683611bcc565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061265557612655612cc6565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156126ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d29190612cf7565b816001815181106126e5576126e5612cc6565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac9479061272b908590600090869030904290600401612d14565b600060405180830381600087803b15801561274557600080fd5b505af1925050508015611e3057505050565b60135461276f9030906001600160a01b031684611bcc565b60135460405163f305d71960e01b8152306004820181905260248201859052600060448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af11580156127dc573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906128019190612d85565b5050505050565b600080600f54426128199190612c7a565b90508381612828603286612c7a565b6128329190612b29565b61283c9190612b48565b6128469084612c7a565b949350505050565b600061285c6103e880612b29565b826128678587612b29565b6128719190612b29565b6128469190612b48565b600060208083528351808285015260005b818110156128a85785810183015185820160400152820161288c565b818111156128ba576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461107b57600080fd5b600080604083850312156128f857600080fd5b8235612903816128d0565b946020939093013593505050565b60006020828403121561292357600080fd5b5035919050565b60008060006060848603121561293f57600080fd5b833561294a816128d0565b9250602084013561295a816128d0565b929592945050506040919091013590565b60006020828403121561297d57600080fd5b8135612988816128d0565b9392505050565b801515811461107b57600080fd5b6000602082840312156129af57600080fd5b81356129888161298f565b6000806000604084860312156129cf57600080fd5b833567ffffffffffffffff808211156129e757600080fd5b818601915086601f8301126129fb57600080fd5b813581811115612a0a57600080fd5b8760208260051b8501011115612a1f57600080fd5b60209283019550935050840135612a358161298f565b809150509250925092565b600080600080600060a08688031215612a5857600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60008060408385031215612a8e57600080fd5b8235612a99816128d0565b91506020830135612aa9816128d0565b809150509250929050565b60008060408385031215612ac757600080fd5b8235612ad2816128d0565b91506020830135612aa98161298f565b600060208284031215612af457600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115612b2457612b24612afb565b500190565b6000816000190483118215151615612b4357612b43612afb565b500290565b600082612b6557634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612b7c57600080fd5b81516129888161298f565b600181815b80851115612bc2578160001904821115612ba857612ba8612afb565b80851615612bb557918102915b93841c9390800290612b8c565b509250929050565b600082612bd957506001610c89565b81612be657506000610c89565b8160018114612bfc5760028114612c0657612c22565b6001915050610c89565b60ff841115612c1757612c17612afb565b50506001821b610c89565b5060208310610133831016604e8410600b8410161715612c45575081810a610c89565b612c4f8383612b87565b8060001904821115612c6357612c63612afb565b029392505050565b600061298860ff841683612bca565b600082821015612c8c57612c8c612afb565b500390565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000600019821415612cf057612cf0612afb565b5060010190565b600060208284031215612d0957600080fd5b8151612988816128d0565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612d645784516001600160a01b031683529383019391830191600101612d3f565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612d9a57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220ce5a1ff84701375fdccdbf73f3c07cc3f2ed5a35343861e59f7696dfd8cb44ef64736f6c634300080a0033

Deployed Bytecode

0x6080604052600436106103855760003560e01c8063896648c1116101d1578063c3a3c03211610102578063e0d2f9eb116100a0578063f3283fba1161006f578063f3283fba14610a38578063f40a563a14610a58578063f7942b6314610a78578063fe575a8714610a9857600080fd5b8063e0d2f9eb146109b2578063e52fb9ec146109d2578063e5e31b13146109e8578063f2fde38b14610a1857600080fd5b8063cc1776d3116100dc578063cc1776d314610906578063cfd1940e1461091c578063dbe66ca01461093c578063dd62ed3e1461096c57600080fd5b8063c3a3c032146108c6578063c3f4f54f146108db578063c8c8ebe4146108f057600080fd5b8063a457c2d71161016f578063baa88ea911610149578063baa88ea91461085a578063bbde77c11461087a578063bc43d84914610890578063be617fa0146108b057600080fd5b8063a457c2d714610805578063a68bdac714610825578063a9059cbb1461083a57600080fd5b806395d89b41116101ab57806395d89b411461078057806397e78f35146107ae5780639b39b65f146107ce578063a253c06e146107ef57600080fd5b8063896648c11461073f5780638da5cb5b146107215780638e2eee841461076057600080fd5b806339509351116102b65780635cce86cd116102545780637b9e987a116102235780637b9e987a146106d65780638124f7ac146106eb578063868b014114610701578063893d20e81461072157600080fd5b80635cce86cd146106325780635e562f3b1461066b57806370a082311461068b578063715018a6146106c157600080fd5b806346e35f031161029057806346e35f03146105c65780634783c35b146105db5780634f7041a5146105fb57806351bc3c851461061157600080fd5b8063395093511461055957806340c3c8191461057957806341aec357146105b157600080fd5b806323b872dd116103235780632c92293c116102fd5780632c92293c146104dd57806330cc1cd1146104fd578063313ce5671461051d5780633227925f1461053957600080fd5b806323b872dd1461048757806325049036146104a75780632a8b0a24146104bd57600080fd5b80630eff4c641161035f5780630eff4c641461041957806318160ddd1461043d5780631e293c10146104525780631eb25d131461047257600080fd5b80630612f39d1461039157806306fdde03146103a8578063095ea7b3146103e957600080fd5b3661038c57005b600080fd5b34801561039d57600080fd5b506103a6610ac8565b005b3480156103b457600080fd5b506040805180820190915260068152654b797575626960d01b60208201525b6040516103e0919061287b565b60405180910390f35b3480156103f557600080fd5b506104096104043660046128e5565b610c78565b60405190151581526020016103e0565b34801561042557600080fd5b5061042f600e5481565b6040519081526020016103e0565b34801561044957600080fd5b5060075461042f565b34801561045e57600080fd5b506103a661046d366004612911565b610c8f565b34801561047e57600080fd5b5061042f610d8d565b34801561049357600080fd5b506104096104a236600461292a565b610dab565b3480156104b357600080fd5b5061042f600c5481565b3480156104c957600080fd5b506103a66104d8366004612911565b610e42565b3480156104e957600080fd5b506103a66104f8366004612911565b610eca565b34801561050957600080fd5b506103a661051836600461296b565b610fbe565b34801561052957600080fd5b50604051601281526020016103e0565b34801561054557600080fd5b506103a6610554366004612911565b611052565b34801561056557600080fd5b506104096105743660046128e5565b61107e565b34801561058557600080fd5b50601654610599906001600160a01b031681565b6040516001600160a01b0390911681526020016103e0565b3480156105bd57600080fd5b506103a66110b5565b3480156105d257600080fd5b50610409611101565b3480156105e757600080fd5b50601754610599906001600160a01b031681565b34801561060757600080fd5b5061042f60085481565b34801561061d57600080fd5b5060175461040990600160b01b900460ff1681565b34801561063e57600080fd5b5061040961064d36600461296b565b6001600160a01b031660009081526003602052604090205460ff1690565b34801561067757600080fd5b506103a661068636600461299d565b611141565b34801561069757600080fd5b5061042f6106a636600461296b565b6001600160a01b031660009081526001602052604090205490565b3480156106cd57600080fd5b506103a66111a5565b3480156106e257600080fd5b506103a6611228565b3480156106f757600080fd5b5061042f600a5481565b34801561070d57600080fd5b506103a661071c36600461299d565b611340565b34801561072d57600080fd5b506000546001600160a01b0316610599565b34801561074b57600080fd5b5060175461040990600160a81b900460ff1681565b34801561076c57600080fd5b506103a661077b3660046129ba565b6113a9565b34801561078c57600080fd5b506040805180820190915260058152641225acaaa160d91b60208201526103d3565b3480156107ba57600080fd5b506103a66107c936600461296b565b61145e565b3480156107da57600080fd5b5060175461040990600160b81b900460ff1681565b3480156107fb57600080fd5b5061042f60075481565b34801561081157600080fd5b506104096108203660046128e5565b6114c3565b34801561083157600080fd5b506103a661153f565b34801561084657600080fd5b506104096108553660046128e5565b611594565b34801561086657600080fd5b506103a6610875366004612a40565b6115a1565b34801561088657600080fd5b5061042f60125481565b34801561089c57600080fd5b506103a66108ab366004612911565b6116fa565b3480156108bc57600080fd5b5061042f600b5481565b3480156108d257600080fd5b5061042f611755565b3480156108e757600080fd5b5061042f611775565b3480156108fc57600080fd5b5061042f60115481565b34801561091257600080fd5b5061042f60095481565b34801561092857600080fd5b506103a6610937366004612911565b6117d6565b34801561094857600080fd5b5061040961095736600461296b565b60046020526000908152604090205460ff1681565b34801561097857600080fd5b5061042f610987366004612a7b565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156109be57600080fd5b506103a66109cd366004612ab4565b611830565b3480156109de57600080fd5b5061042f600d5481565b3480156109f457600080fd5b50610409610a0336600461296b565b60056020526000908152604090205460ff1681565b348015610a2457600080fd5b506103a6610a3336600461296b565b611904565b348015610a4457600080fd5b506103a6610a5336600461296b565b6119fd565b348015610a6457600080fd5b506103a6610a73366004612ab4565b611a91565b348015610a8457600080fd5b506103a6610a93366004612ab4565b611b59565b348015610aa457600080fd5b50610409610ab336600461296b565b60066020526000908152604090205460ff1681565b6017546001600160a01b03163314610adf57600080fd5b601054421015610b295760405162461bcd60e51b815260206004820152601060248201526f139bdd081e595d081d5b9b1bd8dad95960821b60448201526064015b60405180910390fd5b6015546040516370a0823160e01b81523060048201526001600160a01b039091169060009082906370a0823190602401602060405180830381865afa158015610b76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9a9190612ae2565b601754909150600160b81b900460ff1615610bd957610bbc62093a8042612b11565b601055600a610bcc826002612b29565b610bd69190612b48565b90505b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610c26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4a9190612b6a565b506040517f28bacca46f5c57fe13623e9d5093cb2fab892814aca9b39384ab86550d9aa67590600090a15050565b6000610c85338484611bcc565b5060015b92915050565b6017546001600160a01b03163314610ca657600080fd5b6019811015610ce35760405162461bcd60e51b81526020600482015260096024820152686d696e20302e32352560b81b6044820152606401610b20565b612710811115610d205760405162461bcd60e51b81526020600482015260086024820152676d6178203130302560c01b6044820152606401610b20565b61271081610d306012600a612c6b565b610d3f9064e8d4a51000612b29565b610d499190612b29565b610d539190612b48565b6011556040518181527f7c1cb3702d8e1fa6d24b12dd90670ab69c6d66d58233103d37da8b07d6b850ac906020015b60405180910390a150565b610d996012600a612c6b565b610da89064e8d4a51000612b29565b81565b6000610db8848484611cbf565b6001600160a01b038416600090815260026020908152604080832033845290915290205482811015610e235760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b6044820152606401610b20565b610e378533610e328685612c7a565b611bcc565b506001949350505050565b6017546001600160a01b03163314610e5957600080fd5b47336108fc6064610e6a8585612b29565b610e749190612b48565b6040518115909202916000818181858888f19350505050158015610e9c573d6000803e3d6000fd5b506040517fc596e4e14304bf380fec9eb503fbcf94714f378349710015b4df245b01033afa90600090a15050565b6017546001600160a01b03163314610ee157600080fd5b600a811015610f1b5760405162461bcd60e51b81526020600482015260066024820152656d696e20312560d01b6044820152606401610b20565b6103e8811115610f585760405162461bcd60e51b81526020600482015260086024820152676d6178203130302560c01b6044820152606401610b20565b6103e881610f686012600a612c6b565b610f779064e8d4a51000612b29565b610f819190612b29565b610f8b9190612b48565b6012556040518181527f9cbd2e55e2abf49d29273c1b9fb343c2828844b2aec156cfe2aec98ae1b72a9990602001610d82565b6017546001600160a01b03163314610fd557600080fd5b601680546001600160a01b0319166001600160a01b0383169081179091556000818152600460209081526040808320805460ff199081166001908117909255600384529382902080549094161790925590519182527f9366b3c89c28c8546c2b5ffedaaebc1aa4f6c8a06a97f735d00a3d86ac0625c79101610d82565b6017546001600160a01b0316331461106957600080fd5b61107b6110764283612b11565b611e92565b50565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610c85918590610e32908690612b11565b6017546001600160a01b031633146110cc57600080fd5b6110d66001611ed5565b6040517f703db25eb5fd328335fc797436bbbbd25d5575588bd991102facd962c4d41b9290600090a1565b60006103e8600e546007546111169190612b29565b6111209190612b48565b6015546001600160a01b031660009081526001602052604090205411919050565b6017546001600160a01b0316331461115857600080fd5b60178054821515600160a81b0260ff60a81b199091161790556040517fecfaacf5e291e532c372363b39be86acbee05e57acb4ff67acceb0c7110a7bc090610d8290831515815260200190565b336111b86000546001600160a01b031690565b6001600160a01b0316146111de5760405162461bcd60e51b8152600401610b2090612c91565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b3361123b6000546001600160a01b031690565b6001600160a01b0316146112615760405162461bcd60e51b8152600401610b2090612c91565b600f54156112a35760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e53185d5b98da1959608a1b6044820152606401610b20565b42600f556103e86112b66012600a612c6b565b6112c59064e8d4a51000612b29565b6112d090601e612b29565b6112da9190612b48565b6012908155612710906112ee90600a612c6b565b6112fd9064e8d4a51000612b29565b611308906064612b29565b6113129190612b48565b6011556040517f2cb945e0498987ef06dbd68025b0bc276116c63345296379c28a8e8f09b47dc190600090a1565b6017546001600160a01b0316331461135757600080fd5b60178054821515600160b01b0260ff60b01b199091161790556040517f3db17fb4d29ca5a33dc4750f7205263855fb8b82cc89d6c418a04b60f58b429d90610d8290831515815260200190565b905090565b6017546001600160a01b031633146113c057600080fd5b60005b8281101561142f5781600660008686858181106113e2576113e2612cc6565b90506020020160208101906113f7919061296b565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561142881612cdc565b90506113c3565b506040517f890e6981f892b367aea9f0b31589753714df5ee88d6dde2c0ddaffce7b9915d990600090a1505050565b6017546001600160a01b0316331461147557600080fd5b601480546001600160a01b0319166001600160a01b0383169081179091556040519081527f117661539ed67d391940fa7b78853c234b4e9a40d616d75923ae8db26672833a90602001610d82565b3360009081526002602090815260408083206001600160a01b0386168452909152812054828110156115265760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b6044820152606401610b20565b6115353385610e328685612c7a565b5060019392505050565b6017546001600160a01b0316331461155657600080fd5b6017805460ff60b81b1916600160b81b1790556040517f6ea46eef5c8fc4ad72144e672cadd89b6d28bc14a84977fea8bfe0ac63c1194090600090a1565b6000610c85338484611cbf565b6017546001600160a01b031633146115b857600080fd5b60006115c7600a6103e8612b48565b90508086111580156115d95750808511155b80156115e55750808411155b6116265760405162461bcd60e51b81526020600482015260126024820152710a8c2f040caf0c6cacac8e640dac2f0a8c2f60731b6044820152606401610b20565b6103e86116338385612b11565b1461168a5760405162461bcd60e51b815260206004820152602160248201527f546178657320646f6e27742061646420757020746f2064656e6f6d696e61746f6044820152603960f91b6064820152608401610b20565b60088690556009859055600a849055600c839055600b829055604080518781526020810187905290810185905260608101849052608081018390527f07d167ef63e413076f3e7e19f733b66f7ab5fd83fd7b437428f115315687ef6e9060a00160405180910390a1505050505050565b6017546001600160a01b0316331461171157600080fd5b6103e881111561172057600080fd5b600e8190556040518181527fa072eee57b8e01913ba01eab29d8a81117cf780e6c8984a3494477ce9cee846d90602001610d82565b600060105442101561176f57426010546113a49190612c7a565b50600090565b61dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d546007546117b36012600a612c6b565b6117c29064e8d4a51000612b29565b6117cc9190612c7a565b6113a49190612b11565b6017546001600160a01b031633146117ed57600080fd5b600a8111156117fb57600080fd5b600d8190556040518181527fc075380b8410207b8cc14f0d254ab8c8a6766469631275e4500db835a1ba02cc90602001610d82565b6017546001600160a01b0316331461184757600080fd5b6001600160a01b0382163014156118a05760405162461bcd60e51b815260206004820152601a60248201527f63616e277420496e636c7564652074686520636f6e74726163740000000000006044820152606401610b20565b6001600160a01b038216600081815260046020908152604091829020805460ff19168515159081179091558251938452908301527fa22b25479919d4ac678f064a05daa1ee9c0adc3b8198942ea45255e364e04ed491015b60405180910390a15050565b336119176000546001600160a01b031690565b6001600160a01b03161461193d5760405162461bcd60e51b8152600401610b2090612c91565b6001600160a01b0381166119a25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b20565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6017546001600160a01b03163314611a1457600080fd5b601780546001600160a01b0319166001600160a01b0383169081179091556000818152600460209081526040808320805460ff199081166001908117909255600384529382902080549094161790925590519182527fdc0b2ff2a40bfb0cfd1ce8f446634ae38d98d2013d2c81c4c006ac62652229729101610d82565b6017546001600160a01b03163314611aa857600080fd5b6015546001600160a01b0383811691161415611afd5760405162461bcd60e51b815260206004820152601460248201527363616e2774206368616e67652070616e63616b6560601b6044820152606401610b20565b6001600160a01b038216600081815260056020908152604091829020805460ff19168515159081179091558251938452908301527f6765bb5e5ecad4581ce8f9322a9c218e75a54a7c4af6217752833adb834511ac91016118f8565b6017546001600160a01b03163314611b7057600080fd5b6001600160a01b038216600081815260036020908152604091829020805460ff19168515159081179091558251938452908301527f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc9291016118f8565b6001600160a01b038316611c165760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b6044820152606401610b20565b6001600160a01b038216611c5e5760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b6044820152606401610b20565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611d0a5760405162461bcd60e51b81526020600482015260126024820152715472616e736665722066726f6d207a65726f60701b6044820152606401610b20565b6001600160a01b038216611d535760405162461bcd60e51b815260206004820152601060248201526f5472616e7366657220746f207a65726f60801b6044820152606401610b20565b601754600160a81b900460ff1615611de1576001600160a01b03831660009081526006602052604090205460ff16158015611da757506001600160a01b03821660009081526006602052604090205460ff16155b611de15760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610b20565b6001600160a01b03831660009081526004602052604090205460ff1680611e2057506001600160a01b03821660009081526004602052604090205460ff165b15611e3557611e308383836120a1565b505050565b6000600f5411611e875760405162461bcd60e51b815260206004820152601760248201527f74726164696e67206e6f742079657420656e61626c65640000000000000000006044820152606401610b20565b611e308383836121b4565b6010548111611ea057600080fd5b60108190556040518181527f8ff9dc93846a022986f54e8f219a1fa780225726858e39e850da826852b4042e90602001610d82565b6017805460ff60a01b1916600160a01b17905530600090815260016020526040812054600c54600b54919291611f0b9190612b11565b600d546015546001600160a01b0316600090815260016020526040812054929350916103e891611f3a91612b29565b611f449190612b48565b905081611f5357505050612091565b8315611f6f575030600090815260016020526040902054611f7f565b80831015611f7f57505050612091565b6000611f89611101565b611fab5782600b5483611f9c9190612b29565b611fa69190612b48565b611fae565b60005b90506000611fbc8284612c7a565b90506000611fcb600284612b48565b90506000611fd98383612b11565b905047611fe582612608565b6000611ff18247612c7a565b9050851561201e576000836120068684612b29565b6120109190612b48565b905061201c8582612757565b505b601660009054906101000a90046001600160a01b03166001600160a01b0316637dc39276476040518263ffffffff1660e01b81526004016000604051808303818588803b15801561206e57600080fd5b505af1158015612082573d6000803e3d6000fd5b50505050505050505050505050505b506017805460ff60a01b19169055565b6001600160a01b038316600090815260016020526040902054818110156121055760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610b20565b6001600160a01b0384166000908152600160205260408120805484929061212d908490612c7a565b90915550506001600160a01b0383166000908152600160205260408120805484929061215a908490612b11565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121a691815260200190565b60405180910390a350505050565b6001600160a01b038316600090815260016020526040902054818110156122185760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610b20565b6001600160a01b03841660009081526003602052604081205460ff168061225757506001600160a01b03841660009081526003602052604090205460ff165b6001600160a01b03861660009081526005602052604090205490915060ff168015612280575080155b1561236e576011548311156122e85760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610b20565b6001600160a01b03841660009081526001602052604090205460125461230e8583612b11565b11156123685760405162461bcd60e51b8152602060048201526024808201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152633ab73a1760e11b6064820152608401610b20565b50612411565b6001600160a01b03841660009081526005602052604090205460ff168015612394575080155b15612411576011548311156124115760405162461bcd60e51b815260206004820152603a60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201527f206d617853656c6c5472616e73616374696f6e416d6f756e742e0000000000006064820152608401610b20565b6001600160a01b0380861660009081526005602052604080822054928716825281205460ff928316921690811561247a57600f546202a30090612455908290612b11565b42101561246e576124678160c8612808565b9150612474565b60095491505b506124b3565b82156124ae57600f5461025890612492908290612b11565b4210156124a4576124678160c8612808565b50506008546124b3565b50600a545b6015546001600160a01b038981169116148015906124db5750601754600160b01b900460ff16155b80156124f15750601754600160a01b900460ff16155b15612500576125006000611ed5565b600061251c8783600b54600c546125179190612b11565b61284e565b9050600061252a8289612c7a565b6001600160a01b038b16600090815260016020526040812080549293508a92909190612557908490612c7a565b9091555050306000908152600160205260408120805484929061257b908490612b11565b90915550506001600160a01b038916600090815260016020526040812080548392906125a8908490612b11565b92505081905550886001600160a01b03168a6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125f491815260200190565b60405180910390a350505050505050505050565b6013546126209030906001600160a01b031683611bcc565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061265557612655612cc6565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156126ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d29190612cf7565b816001815181106126e5576126e5612cc6565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac9479061272b908590600090869030904290600401612d14565b600060405180830381600087803b15801561274557600080fd5b505af1925050508015611e3057505050565b60135461276f9030906001600160a01b031684611bcc565b60135460405163f305d71960e01b8152306004820181905260248201859052600060448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af11580156127dc573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906128019190612d85565b5050505050565b600080600f54426128199190612c7a565b90508381612828603286612c7a565b6128329190612b29565b61283c9190612b48565b6128469084612c7a565b949350505050565b600061285c6103e880612b29565b826128678587612b29565b6128719190612b29565b6128469190612b48565b600060208083528351808285015260005b818110156128a85785810183015185820160400152820161288c565b818111156128ba576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461107b57600080fd5b600080604083850312156128f857600080fd5b8235612903816128d0565b946020939093013593505050565b60006020828403121561292357600080fd5b5035919050565b60008060006060848603121561293f57600080fd5b833561294a816128d0565b9250602084013561295a816128d0565b929592945050506040919091013590565b60006020828403121561297d57600080fd5b8135612988816128d0565b9392505050565b801515811461107b57600080fd5b6000602082840312156129af57600080fd5b81356129888161298f565b6000806000604084860312156129cf57600080fd5b833567ffffffffffffffff808211156129e757600080fd5b818601915086601f8301126129fb57600080fd5b813581811115612a0a57600080fd5b8760208260051b8501011115612a1f57600080fd5b60209283019550935050840135612a358161298f565b809150509250925092565b600080600080600060a08688031215612a5857600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60008060408385031215612a8e57600080fd5b8235612a99816128d0565b91506020830135612aa9816128d0565b809150509250929050565b60008060408385031215612ac757600080fd5b8235612ad2816128d0565b91506020830135612aa98161298f565b600060208284031215612af457600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115612b2457612b24612afb565b500190565b6000816000190483118215151615612b4357612b43612afb565b500290565b600082612b6557634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612b7c57600080fd5b81516129888161298f565b600181815b80851115612bc2578160001904821115612ba857612ba8612afb565b80851615612bb557918102915b93841c9390800290612b8c565b509250929050565b600082612bd957506001610c89565b81612be657506000610c89565b8160018114612bfc5760028114612c0657612c22565b6001915050610c89565b60ff841115612c1757612c17612afb565b50506001821b610c89565b5060208310610133831016604e8410600b8410161715612c45575081810a610c89565b612c4f8383612b87565b8060001904821115612c6357612c63612afb565b029392505050565b600061298860ff841683612bca565b600082821015612c8c57612c8c612afb565b500390565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000600019821415612cf057612cf0612afb565b5060010190565b600060208284031215612d0957600080fd5b8151612988816128d0565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612d645784516001600160a01b031683529383019391830191600101612d3f565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612d9a57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220ce5a1ff84701375fdccdbf73f3c07cc3f2ed5a35343861e59f7696dfd8cb44ef64736f6c634300080a0033

Deployed Bytecode Sourcemap

2688:17794:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17320:514;;;;;;;;;;;;;:::i;:::-;;17979:94;;;;;;;;;;-1:-1:-1;18060:5:0;;;;;;;;;;;;-1:-1:-1;;;18060:5:0;;;;17979:94;;;;;;;:::i;:::-;;;;;;;;18836:158;;;;;;;;;;-1:-1:-1;18836:158:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;18836:158:0;1072:187:1;3676:35:0;;;;;;;;;;;;;;;;;;;1410:25:1;;;1398:2;1383:18;3676:35:0;1264:177:1;18283:105:0;;;;;;;;;;-1:-1:-1;18362:18:0;;18283:105;;15561:289;;;;;;;;;;-1:-1:-1;15561:289:0;;;;;:::i;:::-;;:::i;3279:58::-;;;;;;;;;;;;;:::i;19300:382::-;;;;;;;;;;-1:-1:-1;19300:382:0;;;;;:::i;:::-;;:::i;3527:27::-;;;;;;;;;;;;;;;;20236:241;;;;;;;;;;-1:-1:-1;20236:241:0;;;;;:::i;:::-;;:::i;15268:281::-;;;;;;;;;;-1:-1:-1;15268:281:0;;;;;:::i;:::-;;:::i;7410:260::-;;;;;;;;;;-1:-1:-1;7410:260:0;;;;;:::i;:::-;;:::i;18183:94::-;;;;;;;;;;-1:-1:-1;18183:94:0;;3820:2;2486:36:1;;2474:2;2459:18;18183:94:0;2344:184:1;16931:153:0;;;;;;;;;;-1:-1:-1;16931:153:0;;;;;:::i;:::-;;:::i;19688:202::-;;;;;;;;;;-1:-1:-1;19688:202:0;;;;;:::i;:::-;;:::i;4163:34::-;;;;;;;;;;-1:-1:-1;4163:34:0;;;;-1:-1:-1;;;;;4163:34:0;;;;;;-1:-1:-1;;;;;2713:32:1;;;2695:51;;2683:2;2668:18;4163:34:0;2533:219:1;15001:118:0;;;;;;;;;;;;;:::i;12258:148::-;;;;;;;;;;;;;:::i;4204:23::-;;;;;;;;;;-1:-1:-1;4204:23:0;;;;-1:-1:-1;;;;;4204:23:0;;;3396;;;;;;;;;;;;;;;;4584:22;;;;;;;;;;-1:-1:-1;4584:22:0;;;;-1:-1:-1;;;4584:22:0;;;;;;16324:126;;;;;;;;;;-1:-1:-1;16324:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;16415:27:0;16391:4;16415:27;;;:18;:27;;;;;;;;;16324:126;6762:149;;;;;;;;;;-1:-1:-1;6762:149:0;;;;;:::i;:::-;;:::i;18394:116::-;;;;;;;;;;-1:-1:-1;18394:116:0;;;;;:::i;:::-;-1:-1:-1;;;;;18484:18:0;18460:4;18484:18;;;:9;:18;;;;;;;18394:116;2301:140;;;;;;;;;;;;;:::i;16462:301::-;;;;;;;;;;;;;:::i;3457:28::-;;;;;;;;;;;;;;;;14861:134;;;;;;;;;;-1:-1:-1;14861:134:0;;;;;:::i;:::-;;:::i;17879:94::-;;;;;;;;;;-1:-1:-1;17931:7:0;2157:6;-1:-1:-1;;;;;2157:6:0;17879:94;;4545:32;;;;;;;;;;-1:-1:-1;4545:32:0;;;;-1:-1:-1;;;4545:32:0;;;;;;6917:247;;;;;;;;;;-1:-1:-1;6917:247:0;;;;;:::i;:::-;;:::i;18079:98::-;;;;;;;;;;-1:-1:-1;18162:7:0;;;;;;;;;;;;-1:-1:-1;;;18162:7:0;;;;18079:98;;15127:133;;;;;;;;;;-1:-1:-1;15127:133:0;;;;;:::i;:::-;;:::i;4613:39::-;;;;;;;;;;-1:-1:-1;4613:39:0;;;;-1:-1:-1;;;4613:39:0;;;;;;3344:45;;;;;;;;;;;;;;;;19896:334;;;;;;;;;;-1:-1:-1;19896:334:0;;;;;:::i;:::-;;:::i;16775:150::-;;;;;;;;;;;;;:::i;18516:164::-;;;;;;;;;;-1:-1:-1;18516:164:0;;;;;:::i;:::-;;:::i;11684:562::-;;;;;;;;;;-1:-1:-1;11684:562:0;;;;;:::i;:::-;;:::i;3871:31::-;;;;;;;;;;;;;;;;11387:291;;;;;;;;;;-1:-1:-1;11387:291:0;;;;;:::i;:::-;;:::i;3492:28::-;;;;;;;;;;;;;;;;14304:205;;;;;;;;;;;;;:::i;14515:139::-;;;;;;;;;;;;;:::i;3829:35::-;;;;;;;;;;;;;;;;3426:24;;;;;;;;;;;;;;;;11128:253;;;;;;;;;;-1:-1:-1;11128:253:0;;;;;:::i;:::-;;:::i;2945:48::-;;;;;;;;;;-1:-1:-1;2945:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18686:144;;;;;;;;;;-1:-1:-1;18686:144:0;;;;;:::i;:::-;-1:-1:-1;;;;;18794:19:0;;;18770:4;18794:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;18686:144;15862:252;;;;;;;;;;-1:-1:-1;15862:252:0;;;;;:::i;:::-;;:::i;3643:26::-;;;;;;;;;;;;;;;;3000:36;;;;;;;;;;-1:-1:-1;3000:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2447:236;;;;;;;;;;-1:-1:-1;2447:236:0;;;;;:::i;:::-;;:::i;7170:234::-;;;;;;;;;;-1:-1:-1;7170:234:0;;;;;:::i;:::-;;:::i;14660:195::-;;;;;;;;;;-1:-1:-1;14660:195:0;;;;;:::i;:::-;;:::i;16126:192::-;;;;;;;;;;-1:-1:-1;16126:192:0;;;;;:::i;:::-;;:::i;3043:46::-;;;;;;;;;;-1:-1:-1;3043:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17320:514;4308:8;;-1:-1:-1;;;;;4308:8:0;4294:10;:22;4286:31;;;;;;17406:20:::1;;17387:15;:39;;17379:68;;;::::0;-1:-1:-1;;;17379:68:0;;5530:2:1;17379:68:0::1;::::0;::::1;5512:21:1::0;5569:2;5549:18;;;5542:30;-1:-1:-1;;;5588:18:1;;;5581:46;5644:18;;17379:68:0::1;;;;;;;;;17491:15;::::0;17532:39:::1;::::0;-1:-1:-1;;;17532:39:0;;17565:4:::1;17532:39;::::0;::::1;2695:51:1::0;-1:-1:-1;;;;;17491:15:0;;::::1;::::0;17460:21:::1;::::0;17491:15;;17532:24:::1;::::0;2668:18:1;;17532:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17585:27;::::0;17518:53;;-1:-1:-1;;;;17585:27:0;::::1;;;17582:162;;;17659:40;3266:6;17659:15;:40;:::i;:::-;17638:20;:61:::0;17730:2:::1;17721:8;:6:::0;17728:1:::1;17721:8;:::i;:::-;:11;;;;:::i;:::-;17714:18;;17582:162;17754:43;::::0;-1:-1:-1;;;17754:43:0;;17778:10:::1;17754:43;::::0;::::1;6696:51:1::0;6763:18;;;6756:34;;;-1:-1:-1;;;;;17754:23:0;::::1;::::0;::::1;::::0;6669:18:1;;17754:43:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;17813:13:0::1;::::0;::::1;::::0;;;::::1;17368:466;;17320:514::o:0;18836:158::-;18910:4;18927:37;18936:10;18948:7;18957:6;18927:8;:37::i;:::-;-1:-1:-1;18982:4:0;18836:158;;;;;:::o;15561:289::-;4308:8;;-1:-1:-1;;;;;4308:8:0;4294:10;:22;4286:31;;;;;;15661:2:::1;15650:7;:13;;15642:35;;;::::0;-1:-1:-1;;;15642:35:0;;7253:2:1;15642:35:0::1;::::0;::::1;7235:21:1::0;7292:1;7272:18;;;7265:29;-1:-1:-1;;;7310:18:1;;;7303:39;7359:18;;15642:35:0::1;7051:332:1::0;15642:35:0::1;15707:5;15696:7;:16;;15688:37;;;::::0;-1:-1:-1;;;15688:37:0;;7590:2:1;15688:37:0::1;::::0;::::1;7572:21:1::0;7629:1;7609:18;;;7602:29;-1:-1:-1;;;7647:18:1;;;7640:38;7695:18;;15688:37:0::1;7388:331:1::0;15688:37:0::1;15785:5;15775:7:::0;3324:13:::1;3820:2;3324;:13;:::i;:::-;3315:22;::::0;:6:::1;:22;:::i;:::-;15759:23;;;;:::i;:::-;:31;;;;:::i;:::-;15736:20;:54:::0;15806:36:::1;::::0;1410:25:1;;;15806:36:0::1;::::0;1398:2:1;1383:18;15806:36:0::1;;;;;;;;15561:289:::0;:::o;3279:58::-;3324:13;3820:2;3324;:13;:::i;:::-;3315:22;;:6;:22;:::i;:::-;3279:58;:::o;19300:382::-;19397:4;19414:36;19424:6;19432:9;19443:6;19414:9;:36::i;:::-;-1:-1:-1;;;;;19485:19:0;;19461:21;19485:19;;;:11;:19;;;;;;;;19505:10;19485:31;;;;;;;;19535:26;;;;19527:59;;;;-1:-1:-1;;;19527:59:0;;9309:2:1;19527:59:0;;;9291:21:1;9348:2;9328:18;;;9321:30;-1:-1:-1;;;9367:18:1;;;9360:50;9427:18;;19527:59:0;9107:344:1;19527:59:0;19597:55;19606:6;19614:10;19626:25;19645:6;19626:16;:25;:::i;:::-;19597:8;:55::i;:::-;-1:-1:-1;19670:4:0;;19300:382;-1:-1:-1;;;;19300:382:0:o;20236:241::-;4308:8;;-1:-1:-1;;;;;4308:8:0;4294:10;:22;4286:31;;;;;;20345:21:::1;20385:10;20377:64;20437:3;20406:28;20418:16:::0;20345:21;20406:28:::1;:::i;:::-;:34;;;;:::i;:::-;20377:64;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;20457:12:0::1;::::0;::::1;::::0;;;::::1;20314:163;20236:241:::0;:::o;15268:281::-;4308:8;;-1:-1:-1;;;;;4308:8:0;4294:10;:22;4286:31;;;;;;15373:2:::1;15362:7;:13;;15354:32;;;::::0;-1:-1:-1;;;15354:32:0;;9788:2:1;15354:32:0::1;::::0;::::1;9770:21:1::0;9827:1;9807:18;;;9800:29;-1:-1:-1;;;9845:18:1;;;9838:36;9891:18;;15354:32:0::1;9586:329:1::0;15354:32:0::1;15416:4;15405:7;:15;;15397:36;;;::::0;-1:-1:-1;;;15397:36:0;;7590:2:1;15397:36:0::1;::::0;::::1;7572:21:1::0;7629:1;7609:18;;;7602:29;-1:-1:-1;;;7647:18:1;;;7640:38;7695:18;;15397:36:0::1;7388:331:1::0;15397:36:0::1;15489:4;15479:7:::0;3324:13:::1;3820:2;3324;:13;:::i;:::-;3315:22;::::0;:6:::1;:22;:::i;:::-;15463:23;;;;:::i;:::-;:30;;;;:::i;:::-;15444:16;:49:::0;15509:32:::1;::::0;1410:25:1;;;15509:32:0::1;::::0;1398:2:1;1383:18;15509:32:0::1;1264:177:1::0;7410:260:0;4308:8;;-1:-1:-1;;;;;4308:8:0;4294:10;:22;4286:31;;;;;;7488:11:::1;:32:::0;;-1:-1:-1;;;;;;7488:32:0::1;-1:-1:-1::0;;;;;7488:32:0;::::1;::::0;;::::1;::::0;;;-1:-1:-1;7531:29:0;;;:16:::1;:29;::::0;;;;;;;:36;;-1:-1:-1;;7531:36:0;;::::1;-1:-1:-1::0;7531:36:0;;::::1;::::0;;;7578:18:::1;:31:::0;;;;;;:38;;;;::::1;;::::0;;;7632:30;;2695:51:1;;;7632:30:0::1;::::0;2668:18:1;7632:30:0::1;2533:219:1::0;16931:153:0;4308:8;;-1:-1:-1;;;;;4308:8:0;4294:10;:22;4286:31;;;;;;17019:57:::1;17041:34;17060:15;17041:18:::0;:34:::1;:::i;:::-;17019:21;:57::i;:::-;16931:153:::0;:::o;19688:202::-;19793:10;19767:4;19814:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;19814:32:0;;;;;;;;;;19767:4;;19784:76;;19805:7;;19814:45;;19849:10;;19814:45;:::i;15001:118::-;4308:8;;-1:-1:-1;;;;;4308:8:0;4294:10;:22;4286:31;;;;;;15060:24:::1;15079:4;15060:18;:24::i;:::-;15100:11;::::0;::::1;::::0;;;::::1;15001:118::o:0;12258:148::-;12305:4;12394;12374:19;;12355:18;;:38;;;;:::i;:::-;:43;;;;:::i;:::-;12338:15;;-1:-1:-1;;;;;12338:15:0;12328:26;;;;:9;:26;;;;;;:70;;12258:148;-1:-1:-1;12258:148:0:o;6762:149::-;4308:8;;-1:-1:-1;;;;;4308:8:0;4294:10;:22;4286:31;;;;;;6833:13:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;6833:23:0::1;-1:-1:-1::0;;;;6833:23:0;;::::1;;::::0;;6872:31:::1;::::0;::::1;::::0;::::1;::::0;6849:7;1237:14:1;1230:22;1212:41;;1200:2;1185:18;;1072:187;2301:140:0;2228:10;2217:7;2130;2157:6;-1:-1:-1;;;;;2157:6:0;;2092:79;2217:7;-1:-1:-1;;;;;2217:21:0;;2209:66;;;;-1:-1:-1;;;2209:66:0;;;;;;;:::i;:::-;2400:1:::1;2384:6:::0;;2363:40:::1;::::0;-1:-1:-1;;;;;2384:6:0;;::::1;::::0;2363:40:::1;::::0;2400:1;;2363:40:::1;2431:1;2414:19:::0;;-1:-1:-1;;;;;;2414:19:0::1;::::0;;2301:140::o;16462:301::-;2228:10;2217:7;2130;2157:6;-1:-1:-1;;;;;2157:6:0;;2092:79;2217:7;-1:-1:-1;;;;;2217:21:0;;2209:66;;;;-1:-1:-1;;;2209:66:0;;;;;;;:::i;:::-;16527:15:::1;::::0;:18;16519:45:::1;;;::::0;-1:-1:-1;;;16519:45:0;;10483:2:1;16519:45:0::1;::::0;::::1;10465:21:1::0;10522:2;10502:18;;;10495:30;-1:-1:-1;;;10541:18:1;;;10534:45;10596:18;;16519:45:0::1;10281:339:1::0;16519:45:0::1;16591:15;16575;:31:::0;16657:4:::1;3324:13;3820:2;3324;:13;:::i;:::-;3315:22;::::0;:6:::1;:22;:::i;:::-;16636:18;::::0;16652:2:::1;16636:18;:::i;:::-;:25;;;;:::i;:::-;16617:16;:44:::0;;;16717:5:::1;::::0;3324:13:::1;::::0;:2:::1;:13;:::i;:::-;3315:22;::::0;:6:::1;:22;:::i;:::-;16695:19;::::0;16711:3:::1;16695:19;:::i;:::-;:27;;;;:::i;:::-;16672:20;:50:::0;16738:17:::1;::::0;::::1;::::0;;;::::1;16462:301::o:0;14861:134::-;4308:8;;-1:-1:-1;;;;;4308:8:0;4294:10;:22;4286:31;;;;;;14930:10:::1;:17:::0;;;::::1;;-1:-1:-1::0;;;14930:17:0::1;-1:-1:-1::0;;;;14930:17:0;;::::1;;::::0;;14963:24:::1;::::0;::::1;::::0;::::1;::::0;14941:6;1237:14:1;1230:22;1212:41;;1200:2;1185:18;;1072:187;17958:7:0;17951:14;;17879:94;:::o;6917:247::-;4308:8;;-1:-1:-1;;;;;4308:8:0;4294:10;:22;4286:31;;;;;;7022:9:::1;7017:106;7033:20:::0;;::::1;7017:106;;;7105:6;7075:13;:27;7089:9;;7099:1;7089:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7075:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;7075:27:0;:36;;-1:-1:-1;;7075:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7055:3:::1;::::0;::::1;:::i;:::-;;;7017:106;;;-1:-1:-1::0;7138:18:0::1;::::0;::::1;::::0;;;::::1;6917:247:::0;;;:::o;15127:133::-;4308:8;;-1:-1:-1;;;;;4308:8:0;4294:10;:22;4286:31;;;;;;15196:9:::1;:19:::0;;-1:-1:-1;;;;;;15196:19:0::1;-1:-1:-1::0;;;;;15196:19:0;::::1;::::0;;::::1;::::0;;;15231:21:::1;::::0;2695:51:1;;;15231:21:0::1;::::0;2683:2:1;2668:18;15231:21:0::1;2533:219:1::0;19896:334:0;20033:10;19980:4;20021:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;20021:32:0;;;;;;;;;;20072:35;;;;20064:60;;;;-1:-1:-1;;;20064:60:0;;11099:2:1;20064:60:0;;;11081:21:1;11138:2;11118:18;;;11111:30;-1:-1:-1;;;11157:18:1;;;11150:42;11209:18;;20064:60:0;10897:336:1;20064:60:0;20135:65;20144:10;20156:7;20165:34;20184:15;20165:16;:34;:::i;20135:65::-;-1:-1:-1;20218:4:0;;19896:334;-1:-1:-1;;;19896:334:0:o;16775:150::-;4308:8;;-1:-1:-1;;;;;4308:8:0;4294:10;:22;4286:31;;;;;;16849:27:::1;:32:::0;;-1:-1:-1;;;;16849:32:0::1;-1:-1:-1::0;;;16849:32:0::1;::::0;;16897:20:::1;::::0;::::1;::::0;16849:32;;16897:20:::1;16775:150::o:0;18516:164::-;18593:4;18610:40;18620:10;18632:9;18643:6;18610:9;:40::i;11684:562::-;4308:8;;-1:-1:-1;;;;;4308:8:0;4294:10;:22;4286:31;;;;;;11799:11:::1;11811:33;3634:2;3591:4;11811:33;:::i;:::-;11799:45;;11868:6;11863:3;:11;;:25;;;;;11882:6;11876:4;:12;;11863:25;:44;;;;;11901:6;11890:9;:17;;11863:44;11855:74;;;::::0;-1:-1:-1;;;11855:74:0;;11440:2:1;11855:74:0::1;::::0;::::1;11422:21:1::0;11479:2;11459:18;;;11452:30;-1:-1:-1;;;11498:18:1;;;11491:48;11556:18;;11855:74:0::1;11238:342:1::0;11855:74:0::1;3591:4;11948:18;11957:9:::0;11948:8;:18:::1;:::i;:::-;:35;11940:80;;;::::0;-1:-1:-1;;;11940:80:0;;11787:2:1;11940:80:0::1;::::0;::::1;11769:21:1::0;11826:2;11806:18;;;11799:30;11865:34;11845:18;;;11838:62;-1:-1:-1;;;11916:18:1;;;11909:31;11957:19;;11940:80:0::1;11585:397:1::0;11940:80:0::1;12041:6;:10:::0;;;12062:7:::1;:12:::0;;;12085:11:::1;:21:::0;;;12117:11:::1;:20:::0;;;12148:12:::1;:22:::0;;;12186:52:::1;::::0;;12246:25:1;;;12302:2;12287:18;;12280:34;;;12330:18;;;12323:34;;;12388:2;12373:18;;12366:34;;;12431:3;12416:19;;12409:35;;;12186:52:0::1;::::0;12233:3:1;12218:19;12186:52:0::1;;;;;;;11788:458;11684:562:::0;;;;;:::o;11387:291::-;4308:8;;-1:-1:-1;;;;;4308:8:0;4294:10;:22;4286:31;;;;;;11528:4:::1;11496:30;:36;;11488:45;;;::::0;::::1;;11544:19;:50:::0;;;11610:60:::1;::::0;1410:25:1;;;11610:60:0::1;::::0;1398:2:1;1383:18;11610:60:0::1;1264:177:1::0;14304:205:0;14369:4;14404:20;;14388:15;:36;14385:97;;;14467:15;14446:20;;:36;;;;:::i;14385:97::-;-1:-1:-1;14500:1:0;;14304:205::o;14515:139::-;14638:6;14562:4;14620:26;;;:9;:26;;;;14600:18;;3324:13;3820:2;3324;:13;:::i;:::-;3315:22;;:6;:22;:::i;:::-;14586:32;;;;:::i;:::-;14585:61;;;;:::i;11128:253::-;4308:8;;-1:-1:-1;;;;;4308:8:0;4294:10;:22;4286:31;;;;;;11246:2:::1;11221:23;:27;;11213:36;;;::::0;::::1;;11277:12;:36:::0;;;11329:44:::1;::::0;1410:25:1;;;11329:44:0::1;::::0;1398:2:1;1383:18;11329:44:0::1;1264:177:1::0;15862:252:0;4308:8;;-1:-1:-1;;;;;4308:8:0;4294:10;:22;4286:31;;;;;;-1:-1:-1;;;;;15963:22:0;::::1;15980:4;15963:22;;15955:60;;;::::0;-1:-1:-1;;;15955:60:0;;12657:2:1;15955:60:0::1;::::0;::::1;12639:21:1::0;12696:2;12676:18;;;12669:30;12735:28;12715:18;;;12708:56;12781:18;;15955:60:0::1;12455:350:1::0;15955:60:0::1;-1:-1:-1::0;;;;;16026:25:0;::::1;;::::0;;;:16:::1;:25;::::0;;;;;;;;:33;;-1:-1:-1;;16026:33:0::1;::::0;::::1;;::::0;;::::1;::::0;;;16075:31;;12978:51:1;;;13045:18;;;13038:50;16075:31:0::1;::::0;12951:18:1;16075:31:0::1;;;;;;;;15862:252:::0;;:::o;2447:236::-;2228:10;2217:7;2130;2157:6;-1:-1:-1;;;;;2157:6:0;;2092:79;2217:7;-1:-1:-1;;;;;2217:21:0;;2209:66;;;;-1:-1:-1;;;2209:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2528:22:0;::::1;2520:73;;;::::0;-1:-1:-1;;;2520:73:0;;13301:2:1;2520:73:0::1;::::0;::::1;13283:21:1::0;13340:2;13320:18;;;13313:30;13379:34;13359:18;;;13352:62;-1:-1:-1;;;13430:18:1;;;13423:36;13476:19;;2520:73:0::1;13099:402:1::0;2520:73:0::1;2630:6;::::0;;2609:38:::1;::::0;-1:-1:-1;;;;;2609:38:0;;::::1;::::0;2630:6;::::1;::::0;2609:38:::1;::::0;::::1;2658:6;:17:::0;;-1:-1:-1;;;;;;2658:17:0::1;-1:-1:-1::0;;;;;2658:17:0;;;::::1;::::0;;;::::1;::::0;;2447:236::o;7170:234::-;4308:8;;-1:-1:-1;;;;;4308:8:0;4294:10;:22;4286:31;;;;;;7243:8:::1;:20:::0;;-1:-1:-1;;;;;;7243:20:0::1;-1:-1:-1::0;;;;;7243:20:0;::::1;::::0;;::::1;::::0;;;-1:-1:-1;7274:27:0;;;:16:::1;:27;::::0;;;;;;;:34;;-1:-1:-1;;7274:34:0;;::::1;-1:-1:-1::0;7274:34:0;;::::1;::::0;;;7319:18:::1;:29:::0;;;;;;:36;;;;::::1;;::::0;;;7371:25;;2695:51:1;;;7371:25:0::1;::::0;2668:18:1;7371:25:0::1;2533:219:1::0;14660:195:0;4308:8;;-1:-1:-1;;;;;4308:8:0;4294:10;:22;4286:31;;;;;;14745:15:::1;::::0;-1:-1:-1;;;;;14739:21:0;;::::1;14745:15:::0;::::1;14739:21;;14731:53;;;::::0;-1:-1:-1;;;14731:53:0;;13708:2:1;14731:53:0::1;::::0;::::1;13690:21:1::0;13747:2;13727:18;;;13720:30;-1:-1:-1;;;13766:18:1;;;13759:50;13826:18;;14731:53:0::1;13506:344:1::0;14731:53:0::1;-1:-1:-1::0;;;;;14795:12:0;::::1;;::::0;;;:6:::1;:12;::::0;;;;;;;;:16;;-1:-1:-1;;14795:16:0::1;::::0;::::1;;::::0;;::::1;::::0;;;14827:20;;12978:51:1;;;13045:18;;;13038:50;14827:20:0::1;::::0;12951:18:1;14827:20:0::1;12810:284:1::0;16126:192:0;4308:8;;-1:-1:-1;;;;;4308:8:0;4294:10;:22;4286:31;;;;;;-1:-1:-1;;;;;16225:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;;;;:35;;-1:-1:-1;;16225:35:0::1;::::0;::::1;;::::0;;::::1;::::0;;;16276:34;;12978:51:1;;;13045:18;;;13038:50;16276:34:0::1;::::0;12951:18:1;16276:34:0::1;12810:284:1::0;19000:294:0;-1:-1:-1;;;;;19090:19:0;;19082:49;;;;-1:-1:-1;;;19082:49:0;;14057:2:1;19082:49:0;;;14039:21:1;14096:2;14076:18;;;14069:30;-1:-1:-1;;;14115:18:1;;;14108:47;14172:18;;19082:49:0;13855:341:1;19082:49:0;-1:-1:-1;;;;;19150:21:0;;19142:49;;;;-1:-1:-1;;;19142:49:0;;14403:2:1;19142:49:0;;;14385:21:1;14442:2;14422:18;;;14415:30;-1:-1:-1;;;14461:18:1;;;14454:45;14516:18;;19142:49:0;14201:339:1;19142:49:0;-1:-1:-1;;;;;19202:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;19254:32;;1410:25:1;;;19254:32:0;;1383:18:1;19254:32:0;;;;;;;19000:294;;;:::o;7676:643::-;-1:-1:-1;;;;;7769:20:0;;7761:51;;;;-1:-1:-1;;;7761:51:0;;14747:2:1;7761:51:0;;;14729:21:1;14786:2;14766:18;;;14759:30;-1:-1:-1;;;14805:18:1;;;14798:48;14863:18;;7761:51:0;14545:342:1;7761:51:0;-1:-1:-1;;;;;7831:23:0;;7823:52;;;;-1:-1:-1;;;7823:52:0;;15094:2:1;7823:52:0;;;15076:21:1;15133:2;15113:18;;;15106:30;-1:-1:-1;;;15152:18:1;;;15145:46;15208:18;;7823:52:0;14892:340:1;7823:52:0;7889:13;;-1:-1:-1;;;7889:13:0;;;;7886:122;;;-1:-1:-1;;;;;7927:21:0;;;;;;:13;:21;;;;;;;;7926:22;:51;;;;-1:-1:-1;;;;;;7953:24:0;;;;;;:13;:24;;;;;;;;7952:25;7926:51;7918:74;;;;-1:-1:-1;;;7918:74:0;;15439:2:1;7918:74:0;;;15421:21:1;15478:2;15458:18;;;15451:30;-1:-1:-1;;;15497:18:1;;;15490:41;15548:18;;7918:74:0;15237:335:1;7918:74:0;-1:-1:-1;;;;;8021:24:0;;;;;;:16;:24;;;;;;;;;:55;;-1:-1:-1;;;;;;8049:27:0;;;;;;:16;:27;;;;;;;;8021:55;8018:294;;;8091:43;8108:6;8116:9;8127:6;8091:16;:43::i;:::-;7676:643;;;:::o;8018:294::-;8200:1;8184:15;;:17;8176:52;;;;-1:-1:-1;;;8176:52:0;;15779:2:1;8176:52:0;;;15761:21:1;15818:2;15798:18;;;15791:30;15857:25;15837:18;;;15830:53;15900:18;;8176:52:0;15577:347:1;8176:52:0;8243:39;8258:6;8265:9;8275:6;8243:14;:39::i;17090:218::-;17181:20;;17167:13;:34;17159:43;;;;;;17213:20;:34;;;17263:37;;1410:25:1;;;17263:37:0;;1398:2:1;1383:18;17263:37:0;1264:177:1;12412:1061:0;4377:27;:34;;-1:-1:-1;;;;4377:34:0;-1:-1:-1;;;4377:34:0;;;12528:4:::1;4377:34:::0;12510:24;;;4407:4;12510:24:::1;::::0;;;;;12572:11:::1;::::0;12559:12:::1;::::0;12510:24;;4377:34;12559:24:::1;::::0;12572:11;12559:24:::1;:::i;:::-;12638:12;::::0;12621:15:::1;::::0;-1:-1:-1;;;;;12621:15:0::1;12594:16;12611:26:::0;;;:9:::1;:26;::::0;;;;;12545:38;;-1:-1:-1;12594:16:0;12651:4:::1;::::0;12611:39:::1;::::0;::::1;:::i;:::-;:44;;;;:::i;:::-;12594:61:::0;-1:-1:-1;12669:11:0;12666:22:::1;;12681:7;;;;;12666:22;12701:12;12698:134;;;-1:-1:-1::0;12758:4:0::1;12740:24;::::0;;;:9:::1;:24;::::0;;;;;12698:134:::1;;;12799:11;12783:15;:27;12780:52;;;12825:7;;;;;12780:52;12842:22;12865:17;:15;:17::i;:::-;:55;;12912:8;12898:12;;12886:11;:24;;;;:::i;:::-;12885:35;;;;:::i;:::-;12865:55;;;12883:1;12865:55;12842:78:::0;-1:-1:-1;12933:21:0::1;12956:29;12842:78:::0;12956:11;:29:::1;:::i;:::-;12933:52:::0;-1:-1:-1;12998:12:0::1;13011:19;13029:1;13011:17:::0;:19:::1;:::i;:::-;12998:32:::0;-1:-1:-1;13041:14:0::1;13056:24;13064:16:::0;12998:32;13056:24:::1;:::i;:::-;13041:39:::0;-1:-1:-1;13116:21:0::1;13148:27;13041:39:::0;13148:16:::1;:27::i;:::-;13186:11;13199:41;13223:17:::0;13199:21:::1;:41;:::i;:::-;13186:55:::0;-1:-1:-1;13255:19:0;;13252:135:::1;;13290:11;13321:9:::0;13305:14:::1;13312:7:::0;13305:6;:14:::1;:::i;:::-;13304:26;;;;:::i;:::-;13290:40;;13345:30;13359:7;13368:6;13345:13;:30::i;:::-;13275:112;13252:135;13410:11;;;;;;;;;-1:-1:-1::0;;;;;13410:11:0::1;-1:-1:-1::0;;;;;13397:36:0::1;;13441:21;13397:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;12478:995;;;;;;;;;4422:1;-1:-1:-1::0;4434:27:0;:35;;-1:-1:-1;;;;4434:35:0;;;12412:1061::o;10783:339::-;-1:-1:-1;;;;;10896:17:0;;10875:18;10896:17;;;:9;:17;;;;;;10932:23;;;;10924:60;;;;-1:-1:-1;;;10924:60:0;;16131:2:1;10924:60:0;;;16113:21:1;16170:2;16150:18;;;16143:30;-1:-1:-1;;;16189:18:1;;;16182:54;16253:18;;10924:60:0;15929:348:1;10924:60:0;-1:-1:-1;;;;;10995:17:0;;;;;;:9;:17;;;;;:25;;11014:6;;10995:17;:25;;11014:6;;10995:25;:::i;:::-;;;;-1:-1:-1;;;;;;;11031:20:0;;;;;;:9;:20;;;;;:28;;11053:6;;11031:20;:28;;11053:6;;11031:28;:::i;:::-;;;;;;;;11097:9;-1:-1:-1;;;;;11081:33:0;11090:6;-1:-1:-1;;;;;11081:33:0;;11107:6;11081:33;;;;1410:25:1;;1398:2;1383:18;;1264:177;11081:33:0;;;;;;;;10864:258;10783:339;;;:::o;8325:2053::-;-1:-1:-1;;;;;8436:17:0;;8415:18;8436:17;;;:9;:17;;;;;;8472:23;;;;8464:60;;;;-1:-1:-1;;;8464:60:0;;16131:2:1;8464:60:0;;;16113:21:1;16170:2;16150:18;;;16143:30;-1:-1:-1;;;16189:18:1;;;16182:54;16253:18;;8464:60:0;15929:348:1;8464:60:0;-1:-1:-1;;;;;8558:26:0;;8535:20;8558:26;;;:18;:26;;;;;;;;;:59;;-1:-1:-1;;;;;;8588:29:0;;;;;;:18;:29;;;;;;;;8558:59;-1:-1:-1;;;;;8646:14:0;;;;;;:6;:14;;;;;;8535:82;;-1:-1:-1;8646:14:0;;:47;;;;;8678:15;8677:16;8646:47;8628:686;;;8756:20;;8746:6;:30;;8720:132;;;;-1:-1:-1;;;8720:132:0;;16484:2:1;8720:132:0;;;16466:21:1;16523:2;16503:18;;;16496:30;16562:34;16542:18;;;16535:62;-1:-1:-1;;;16613:18:1;;;16606:38;16661:19;;8720:132:0;16282:404:1;8720:132:0;-1:-1:-1;;;;;18484:18:0;;8867:32;18484:18;;;:9;:18;;;;;;9000:16;;8963:33;8990:6;18484:18;8963:33;:::i;:::-;:53;;8937:151;;;;-1:-1:-1;;;8937:151:0;;16893:2:1;8937:151:0;;;16875:21:1;16932:2;16912:18;;;16905:30;16971:34;16951:18;;;16944:62;-1:-1:-1;;;17022:18:1;;;17015:34;17066:19;;8937:151:0;16691:400:1;8937:151:0;8705:395;8628:686;;;-1:-1:-1;;;;;9124:17:0;;;;;;:6;:17;;;;;;;;:50;;;;;9159:15;9158:16;9124:50;9106:208;;;9219:20;;9209:6;:30;;9201:101;;;;-1:-1:-1;;;9201:101:0;;17298:2:1;9201:101:0;;;17280:21:1;17337:2;17317:18;;;17310:30;17376:34;17356:18;;;17349:62;17447:28;17427:18;;;17420:56;17493:19;;9201:101:0;17096:422:1;9201:101:0;-1:-1:-1;;;;;9337:14:0;;;9326:10;9337:14;;;:6;:14;;;;;;;9374:17;;;;;;;;9337:14;;;;;9374:17;;9421:493;;;;9521:15;;9469:8;;9521:31;;9469:8;;9521:31;:::i;:::-;9505:15;:47;9502:143;;;9576:33;9589:15;9605:3;9576:12;:33::i;:::-;9572:37;;9502:143;;;9638:7;;9634:11;;9502:143;9431:230;9421:493;;;9679:5;9676:238;;;9764:15;;9720:10;;9764:30;;9720:10;;9764:30;:::i;:::-;9748:15;:46;9745:136;;;9818:32;9831:14;9846:3;9818:12;:32::i;9745:136::-;-1:-1:-1;;9875:6:0;;9676:238;;;-1:-1:-1;9903:11:0;;9676:238;9939:15;;-1:-1:-1;;;;;9931:23:0;;;9939:15;;9931:23;;;;9930:40;;-1:-1:-1;9959:10:0;;-1:-1:-1;;;9959:10:0;;;;9958:11;9930:40;:72;;;;-1:-1:-1;9974:27:0;;-1:-1:-1;;;9974:27:0;;;;9973:28;9930:72;9927:115;;;10017:25;10036:5;10017:18;:25::i;:::-;10053:18;10072:52;10086:6;10094:3;10111:12;;10099:11;;:24;;;;:::i;:::-;10072:13;:52::i;:::-;10053:71;-1:-1:-1;10135:16:0;10152:20;10053:71;10152:6;:20;:::i;:::-;-1:-1:-1;;;;;10185:17:0;;;;;;:9;:17;;;;;:25;;10135:37;;-1:-1:-1;10204:6:0;;10185:17;;;:25;;10204:6;;10185:25;:::i;:::-;;;;-1:-1:-1;;10239:4:0;10221:24;;;;:9;:24;;;;;:41;;10249:13;;10221:24;:41;;10249:13;;10221:41;:::i;:::-;;;;-1:-1:-1;;;;;;;10273:20:0;;;;;;:9;:20;;;;;:33;;10295:11;;10273:20;:33;;10295:11;;10273:33;:::i;:::-;;;;;;;;10348:9;-1:-1:-1;;;;;10332:38:0;10341:6;-1:-1:-1;;;;;10332:38:0;;10358:11;10332:38;;;;1410:25:1;;1398:2;1383:18;;1264:177;10332:38:0;;;;;;;;8404:1974;;;;;;;8325:2053;;;:::o;13479:462::-;13569:10;;13537:52;;13554:4;;-1:-1:-1;;;;;13569:10:0;13582:6;13537:8;:52::i;:::-;13624:16;;;13638:1;13624:16;;;;;;;;13600:21;;13624:16;;;;;;;;;;-1:-1:-1;13624:16:0;13600:40;;13669:4;13651;13656:1;13651:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13651:23:0;;;:7;;;;;;;;;;:23;;;;13695:10;;:17;;;-1:-1:-1;;;13695:17:0;;;;:10;;;;;:15;;:17;;;;;13651:7;;13695:17;;;;;:10;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13685:4;13690:1;13685:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13685:27:0;;;:7;;;;;;;;;:27;13729:10;;:186;;-1:-1:-1;;;13729:186:0;;:10;;;:61;;:186;;13805:6;;13729:10;;13842:4;;13869;;13889:15;;13729:186;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13526:415;13479:462;:::o;13947:351::-;14055:10;;14023:57;;14040:4;;-1:-1:-1;;;;;14055:10:0;14068:11;14023:8;:57::i;:::-;14091:10;;:199;;-1:-1:-1;;;14091:199:0;;14158:4;14091:199;;;19237:34:1;;;19287:18;;;19280:34;;;14091:10:0;19330:18:1;;;19323:34;;;19373:18;;;19366:34;19416:19;;;19409:44;14264:15:0;19469:19:1;;;19462:35;-1:-1:-1;;;;;14091:10:0;;;;:26;;14125:9;;19171:19:1;;14091:199:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13947:351;;:::o;10384:211::-;10456:4;10472:20;10509:15;;10493;:31;;;;:::i;:::-;10472:52;-1:-1:-1;10578:8:0;10472:52;10551:9;10558:2;10551:6;:9;:::i;:::-;10550:27;;;;:::i;:::-;:36;;;;:::i;:::-;10542:45;;:6;:45;:::i;:::-;10535:52;10384:211;-1:-1:-1;;;;10384:211:0:o;10601:176::-;10686:4;10737:31;3591:4;;10737:31;:::i;:::-;10722:10;10711;10718:3;10711:6;:10;:::i;:::-;:21;;;;:::i;:::-;10710:59;;;;:::i;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:315;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1446:180::-;1505:6;1558:2;1546:9;1537:7;1533:23;1529:32;1526:52;;;1574:1;1571;1564:12;1526:52;-1:-1:-1;1597:23:1;;1446:180;-1:-1:-1;1446:180:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2092:247::-;2151:6;2204:2;2192:9;2183:7;2179:23;2175:32;2172:52;;;2220:1;2217;2210:12;2172:52;2259:9;2246:23;2278:31;2303:5;2278:31;:::i;:::-;2328:5;2092:247;-1:-1:-1;;;2092:247:1:o;2965:118::-;3051:5;3044:13;3037:21;3030:5;3027:32;3017:60;;3073:1;3070;3063:12;3088:241;3144:6;3197:2;3185:9;3176:7;3172:23;3168:32;3165:52;;;3213:1;3210;3203:12;3165:52;3252:9;3239:23;3271:28;3293:5;3271:28;:::i;3334:750::-;3426:6;3434;3442;3495:2;3483:9;3474:7;3470:23;3466:32;3463:52;;;3511:1;3508;3501:12;3463:52;3551:9;3538:23;3580:18;3621:2;3613:6;3610:14;3607:34;;;3637:1;3634;3627:12;3607:34;3675:6;3664:9;3660:22;3650:32;;3720:7;3713:4;3709:2;3705:13;3701:27;3691:55;;3742:1;3739;3732:12;3691:55;3782:2;3769:16;3808:2;3800:6;3797:14;3794:34;;;3824:1;3821;3814:12;3794:34;3879:7;3872:4;3862:6;3859:1;3855:14;3851:2;3847:23;3843:34;3840:47;3837:67;;;3900:1;3897;3890:12;3837:67;3931:4;3923:13;;;;-1:-1:-1;3955:6:1;-1:-1:-1;;3996:20:1;;3983:34;4026:28;3983:34;4026:28;:::i;:::-;4073:5;4063:15;;;3334:750;;;;;:::o;4089:454::-;4184:6;4192;4200;4208;4216;4269:3;4257:9;4248:7;4244:23;4240:33;4237:53;;;4286:1;4283;4276:12;4237:53;-1:-1:-1;;4309:23:1;;;4379:2;4364:18;;4351:32;;-1:-1:-1;4430:2:1;4415:18;;4402:32;;4481:2;4466:18;;4453:32;;-1:-1:-1;4532:3:1;4517:19;4504:33;;-1:-1:-1;4089:454:1;-1:-1:-1;4089:454:1:o;4548:388::-;4616:6;4624;4677:2;4665:9;4656:7;4652:23;4648:32;4645:52;;;4693:1;4690;4683:12;4645:52;4732:9;4719:23;4751:31;4776:5;4751:31;:::i;:::-;4801:5;-1:-1:-1;4858:2:1;4843:18;;4830:32;4871:33;4830:32;4871:33;:::i;:::-;4923:7;4913:17;;;4548:388;;;;;:::o;4941:382::-;5006:6;5014;5067:2;5055:9;5046:7;5042:23;5038:32;5035:52;;;5083:1;5080;5073:12;5035:52;5122:9;5109:23;5141:31;5166:5;5141:31;:::i;:::-;5191:5;-1:-1:-1;5248:2:1;5233:18;;5220:32;5261:30;5220:32;5261:30;:::i;5673:184::-;5743:6;5796:2;5784:9;5775:7;5771:23;5767:32;5764:52;;;5812:1;5809;5802:12;5764:52;-1:-1:-1;5835:16:1;;5673:184;-1:-1:-1;5673:184:1:o;5862:127::-;5923:10;5918:3;5914:20;5911:1;5904:31;5954:4;5951:1;5944:15;5978:4;5975:1;5968:15;5994:128;6034:3;6065:1;6061:6;6058:1;6055:13;6052:39;;;6071:18;;:::i;:::-;-1:-1:-1;6107:9:1;;5994:128::o;6127:168::-;6167:7;6233:1;6229;6225:6;6221:14;6218:1;6215:21;6210:1;6203:9;6196:17;6192:45;6189:71;;;6240:18;;:::i;:::-;-1:-1:-1;6280:9:1;;6127:168::o;6300:217::-;6340:1;6366;6356:132;;6410:10;6405:3;6401:20;6398:1;6391:31;6445:4;6442:1;6435:15;6473:4;6470:1;6463:15;6356:132;-1:-1:-1;6502:9:1;;6300:217::o;6801:245::-;6868:6;6921:2;6909:9;6900:7;6896:23;6892:32;6889:52;;;6937:1;6934;6927:12;6889:52;6969:9;6963:16;6988:28;7010:5;6988:28;:::i;7724:422::-;7813:1;7856:5;7813:1;7870:270;7891:7;7881:8;7878:21;7870:270;;;7950:4;7946:1;7942:6;7938:17;7932:4;7929:27;7926:53;;;7959:18;;:::i;:::-;8009:7;7999:8;7995:22;7992:55;;;8029:16;;;;7992:55;8108:22;;;;8068:15;;;;7870:270;;;7874:3;7724:422;;;;;:::o;8151:806::-;8200:5;8230:8;8220:80;;-1:-1:-1;8271:1:1;8285:5;;8220:80;8319:4;8309:76;;-1:-1:-1;8356:1:1;8370:5;;8309:76;8401:4;8419:1;8414:59;;;;8487:1;8482:130;;;;8394:218;;8414:59;8444:1;8435:10;;8458:5;;;8482:130;8519:3;8509:8;8506:17;8503:43;;;8526:18;;:::i;:::-;-1:-1:-1;;8582:1:1;8568:16;;8597:5;;8394:218;;8696:2;8686:8;8683:16;8677:3;8671:4;8668:13;8664:36;8658:2;8648:8;8645:16;8640:2;8634:4;8631:12;8627:35;8624:77;8621:159;;;-1:-1:-1;8733:19:1;;;8765:5;;8621:159;8812:34;8837:8;8831:4;8812:34;:::i;:::-;8882:6;8878:1;8874:6;8870:19;8861:7;8858:32;8855:58;;;8893:18;;:::i;:::-;8931:20;;8151:806;-1:-1:-1;;;8151:806:1:o;8962:140::-;9020:5;9049:47;9090:4;9080:8;9076:19;9070:4;9049:47;:::i;9456:125::-;9496:4;9524:1;9521;9518:8;9515:34;;;9529:18;;:::i;:::-;-1:-1:-1;9566:9:1;;9456:125::o;9920:356::-;10122:2;10104:21;;;10141:18;;;10134:30;10200:34;10195:2;10180:18;;10173:62;10267:2;10252:18;;9920:356::o;10625:127::-;10686:10;10681:3;10677:20;10674:1;10667:31;10717:4;10714:1;10707:15;10741:4;10738:1;10731:15;10757:135;10796:3;-1:-1:-1;;10817:17:1;;10814:43;;;10837:18;;:::i;:::-;-1:-1:-1;10884:1:1;10873:13;;10757:135::o;17655:251::-;17725:6;17778:2;17766:9;17757:7;17753:23;17749:32;17746:52;;;17794:1;17791;17784:12;17746:52;17826:9;17820:16;17845:31;17870:5;17845:31;:::i;17911:980::-;18173:4;18221:3;18210:9;18206:19;18252:6;18241:9;18234:25;18278:2;18316:6;18311:2;18300:9;18296:18;18289:34;18359:3;18354:2;18343:9;18339:18;18332:31;18383:6;18418;18412:13;18449:6;18441;18434:22;18487:3;18476:9;18472:19;18465:26;;18526:2;18518:6;18514:15;18500:29;;18547:1;18557:195;18571:6;18568:1;18565:13;18557:195;;;18636:13;;-1:-1:-1;;;;;18632:39:1;18620:52;;18727:15;;;;18692:12;;;;18668:1;18586:9;18557:195;;;-1:-1:-1;;;;;;;18808:32:1;;;;18803:2;18788:18;;18781:60;-1:-1:-1;;;18872:3:1;18857:19;18850:35;18769:3;17911:980;-1:-1:-1;;;17911:980:1:o;19508:306::-;19596:6;19604;19612;19665:2;19653:9;19644:7;19640:23;19636:32;19633:52;;;19681:1;19678;19671:12;19633:52;19710:9;19704:16;19694:26;;19760:2;19749:9;19745:18;19739:25;19729:35;;19804:2;19793:9;19789:18;19783:25;19773:35;;19508:306;;;;;:::o

Swarm Source

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