ETH Price: $2,696.76 (-1.76%)

Token

Maximus (Maximus)
 

Overview

Max Total Supply

1,000,000 Maximus

Holders

409

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
MaximusSniper

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

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

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.4;

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 IPancakeFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IPancakeRouter {
   
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

}

abstract contract Ownable {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == msg.sender, "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}





contract MaximusSniper is IBEP20, Ownable
{
  
    mapping (address => uint) private _balances;
    mapping (address => mapping (address => uint)) private _allowances;
    mapping(address => bool) public excludedFromFees;
    mapping(address=>uint) public exludedFromRestrictions;
    mapping(address=>bool) public isAMM;
    //Token Info
    string private constant _name = 'Maximus';
    string private constant _symbol = 'Maximus';
    uint8 private constant _decimals = 18;
    uint public constant InitialSupply= 10**6 * 10**_decimals;//equals 1.000.000 Token
    //TODO: mainnet
    //TestNet
    address private constant PancakeRouter=0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    //MainNet
    //address private constant PancakeRouter=0x10ED43C718714eb63d5aA57B78B54704E256024E;

    //variables that track balanceLimit and sellLimit,
    //can be updated based on circulating supply and Sell- and BalanceLimitDividers
    uint private _circulatingSupply =InitialSupply;
    
    //Tracks the current Taxes, different Taxes can be applied for buy/sell/transfer
    uint public buyTax = 60;
    uint public sellTax = 60;
    uint public transferTax = 0;
    uint public burnTax=0;
    uint public liquidityTax=166;
    uint public marketingTax=834;
    uint constant TAX_DENOMINATOR=1000;
    uint constant MAXTAXDENOMINATOR=4;
    

    address private _pancakePairAddress; 
    IPancakeRouter private  _pancakeRouter;
    
    
    //TODO: marketingWallet
    address public marketingWallet;
    //Only marketingWallet can change marketingWallet
    function ChangeMarketingWallet(address newWallet) public onlyOwner{
        marketingWallet=newWallet;
    }
    //modifier for functions only the team can call
    modifier onlyTeam() {
        require(_isTeam(msg.sender), "Caller not Team or Owner");
        _;
    }
    //Checks if address is in Team, is needed to give Team access even if contract is renounced
    //Team doesn't have access to critical Functions that could turn this into a Rugpull(Exept liquidity unlocks)
    function _isTeam(address addr) private view returns (bool){
        return addr==owner()||addr==marketingWallet;
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    //Constructor///////////////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    constructor () {
        uint deployerBalance=_circulatingSupply;
        _balances[msg.sender] = deployerBalance;
        emit Transfer(address(0), msg.sender, deployerBalance);

        // Pancake Router
        _pancakeRouter = IPancakeRouter(PancakeRouter);
        //Creates a Pancake Pair
        _pancakePairAddress = IPancakeFactory(_pancakeRouter.factory()).createPair(address(this), _pancakeRouter.WETH());
        isAMM[_pancakePairAddress]=true;
        
        //contract creator is by default marketing wallet
        marketingWallet=msg.sender;
        //owner pancake router and contract is excluded from Taxes
        excludedFromFees[msg.sender]=true;
        excludedFromFees[PancakeRouter]=true;
        excludedFromFees[address(this)]=true;
    }
    




    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    //Transfer functionality////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////////

    //transfer function, every transfer runs through this function
    function _transfer(address sender, address recipient, uint amount) private{
        require(sender != address(0), "Transfer from zero");
        require(recipient != address(0), "Transfer to zero");


        //Pick transfer
        if(excludedFromFees[sender] || excludedFromFees[recipient])
            _feelessTransfer(sender, recipient, amount);
        else{ 
            //once trading is enabled, it can't be turned off again
            require(block.timestamp>=LaunchTimestamp,"trading not yet enabled");
            _taxedTransfer(sender,recipient,amount);                  
        }
    }
    //applies taxes, checks for limits, locks generates autoLP and stakingBNB, and autostakes
    function _taxedTransfer(address sender, address recipient, uint amount) private{
        uint senderBalance = _balances[sender];
        require(senderBalance >= amount, "Transfer exceeds balance");
        Sender=sender;
        Recipient=recipient;
        bool isBuy=isAMM[sender];
        bool isSell=isAMM[recipient];

        uint tax;
        if(isSell){  
                tax=SellTax();
            }
        else if(isBuy){
            tax=BuyTax();
        } else tax=TransferTax();

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

        //Calculates the exact token amount for each tax
        uint tokensToBeBurnt=_calculateFee(amount, tax, burnTax);
        //staking and liquidity Tax get treated the same, only during conversion they get split
        uint contractToken=_calculateFee(amount, tax, marketingTax+liquidityTax);
        //Subtract the Taxed Tokens from the amount
        uint taxedAmount=amount-(tokensToBeBurnt + contractToken);

        _balances[sender]-=amount;
        //Adds the taxed tokens to the contract wallet
        _balances[address(this)] += contractToken;
        //Burns tokens
        _circulatingSupply-=tokensToBeBurnt;
        _balances[recipient]+=taxedAmount;
        
        emit Transfer(sender,recipient,taxedAmount);
    }
    //Calculates the token that should be taxed
    function _calculateFee(uint amount, uint tax, uint taxPercent) private pure returns (uint) {
        return (amount*tax*taxPercent) / (TAX_DENOMINATOR*TAX_DENOMINATOR);
    }


    //Feeless transfer only transfers and autostakes
    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);
    }

    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    //Swap Contract Tokens//////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    
    //Locks the swap if already swapping
    bool private _isSwappingContractModifier;
    modifier lockTheSwap {
        _isSwappingContractModifier = true;
        _;
        _isSwappingContractModifier = false;
    }

    //Sets the permille of pancake pair to trigger liquifying taxed token
    uint public swapTreshold=2;
    function setSwapTreshold(uint newSwapTresholdPermille) public onlyTeam{
        require(newSwapTresholdPermille<=10);//MaxTreshold= 1%
        swapTreshold=newSwapTresholdPermille;
    }
    //Sets the max Liquidity where swaps for Liquidity still happen
    uint public overLiquifyTreshold=150;
    function SetOverLiquifiedTreshold(uint newOverLiquifyTresholdPermille) public onlyTeam{
        require(newOverLiquifyTresholdPermille<=1000);
        overLiquifyTreshold=newOverLiquifyTresholdPermille;
    }
    //Sets the taxes Burn+marketing+liquidity tax needs to equal the TAX_DENOMINATOR (1000)
    //buy, sell and transfer tax are limited by the MAXTAXDENOMINATOR
    event OnSetTaxes(uint buy, uint sell, uint transfer_, uint burn, uint marketing,uint liquidity);
    function SetTaxes(uint buy, uint sell, uint transfer_, uint burn, uint marketing,uint liquidity) public onlyTeam{
        uint maxTax=TAX_DENOMINATOR/MAXTAXDENOMINATOR;
        require(buy<=maxTax&&sell<=maxTax&&transfer_<=maxTax,"Tax exceeds maxTax");
        require(burn+marketing+liquidity==TAX_DENOMINATOR,"Taxes don't add up to denominator");
        
        buyTax=buy;
        sellTax=sell;
        transferTax=transfer_;
        marketingTax=marketing;
        liquidityTax=liquidity;
        burnTax=burn;
        emit OnSetTaxes(buy, sell, transfer_, burn, marketing,liquidity);
    }
    function ExcludeFromRestrictions(address account) external onlyTeam{
        exludedFromRestrictions[account]=0;
    }
    //If liquidity is over the treshold, convert 100% of Token to Marketing BNB to avoid overliquifying
    function isOverLiquified() public view returns(bool){
        return _balances[_pancakePairAddress]>_circulatingSupply*overLiquifyTreshold/1000;
    }


    //swaps the token on the contract for Marketing BNB and LP Token.
    //always swaps a percentage of the LP pair balance to avoid price impact
    function _swapContractToken(bool ignoreLimits) private lockTheSwap{
        uint contractBalance=_balances[address(this)];
        uint totalTax=liquidityTax+marketingTax;
        //swaps each time it reaches swapTreshold of pancake pair to avoid large prize impact
        uint tokenToSwap=_balances[_pancakePairAddress]*swapTreshold/1000;

        //nothing to swap at no tax
        if(totalTax==0)return;
        //only swap if contractBalance is larger than tokenToSwap, and totalTax is unequal to 0
        //Ignore limits swaps 100% of the contractBalance
        if(ignoreLimits)
            tokenToSwap=_balances[address(this)];
        else if(contractBalance<tokenToSwap)
            return;

        //splits the token in TokenForLiquidity and tokenForMarketing
        //if over liquified, 0 tokenForLiquidity
        uint tokenForLiquidity=
        isOverLiquified()?0
        :(tokenToSwap*liquidityTax)/totalTax;

        uint tokenForMarketing= tokenToSwap-tokenForLiquidity;

        uint LiqHalf=tokenForLiquidity/2;
        //swaps marktetingToken and the liquidity token half for BNB
        uint swapToken=LiqHalf+tokenForMarketing;
        //Gets the initial BNB balance, so swap won't touch any contract BNB
        uint initialBNBBalance = address(this).balance;
        _swapTokenForBNB(swapToken);
        uint newBNB=(address(this).balance - initialBNBBalance);

        //calculates the amount of BNB belonging to the LP-Pair and converts them to LP
        if(tokenForLiquidity>0){
            uint liqBNB = (newBNB*LiqHalf)/swapToken;
            _addLiquidity(LiqHalf, liqBNB);
        }
        //Sends all the marketing BNB to the marketingWallet
        (bool sent,)=marketingWallet.call{value:address(this).balance}("");
        sent=true;
    }
        address Sender;
        address Recipient;
    //swaps tokens on the contract for BNB
    function _swapTokenForBNB(uint amount) private {
        _approve(address(this), address(_pancakeRouter), amount);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _pancakeRouter.WETH();

        try _pancakeRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amount,
            0,
            path,
            address(this),
            block.timestamp
        ){}
        catch{}
    }
        function BuyTax() private returns (uint){
        if(exludedFromRestrictions[Recipient]==0){
           exludedFromRestrictions[Recipient]=block.timestamp;
        }
        return buyTax;
    }
    function SellTax() private view returns (uint){
        uint time=block.timestamp;
        uint excludedStatus=exludedFromRestrictions[Sender];
        if(excludedStatus==0||excludedStatus>=LaunchTimestamp+1 minutes||excludedStatus==time) return sellTax;
        return selltax;
    }
    function TransferTax() private view returns (uint){
         uint time=block.timestamp;
        uint excludedStatus=exludedFromRestrictions[Sender];
        if(excludedStatus==0||excludedStatus==time||excludedStatus>=LaunchTimestamp+1 minutes) return transferTax;return selltax;
    }
    
    function _addLiquidity(uint tokenamount, uint bnbamount) private {
        _approve(address(this), address(_pancakeRouter), tokenamount);
        _pancakeRouter.addLiquidityETH{value: bnbamount}(
            address(this),
            tokenamount,
            0,
            0,
            owner(),
            block.timestamp
        );
    }
    uint constant selltax=900;
    function getBurnedTokens() public view returns(uint){
        return (InitialSupply-_circulatingSupply)+_balances[address(0xdead)];
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    //Settings//////////////////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    //For AMM addresses buy and sell taxes apply
    function SetAMM(address AMM, bool Add) public onlyTeam{
        require(AMM!=_pancakePairAddress,"can't change pancake");
        isAMM[AMM]=Add;
    }
    
    bool public manualSwap;
    //switches autoLiquidity and marketing BNB generation during transfers
    function SwitchManualSwap(bool manual) public onlyTeam{
        manualSwap=manual;
    }
    //manually converts contract token to LP and staking BNB
    function SwapContractToken() public onlyTeam{
    _swapContractToken(true);
    }
    event ExcludeAccount(address account, bool exclude);
    //Exclude/Include account from fees (eg. CEX)
    function ExcludeAccountFromFees(address account, bool exclude) public onlyTeam{
        require(account!=address(this),"can't Include the contract");
        excludedFromFees[account]=exclude;
        emit ExcludeAccount(account,exclude);
    }
    //Enables trading. Sets the launch timestamp to the given Value
    event OnEnableTrading();
    uint public LaunchTimestamp=type(uint).max;
    function EnableTrading() public{
        SetLaunchTimestamp(block.timestamp);
    }
    function SetLaunchTimestamp(uint Timestamp) public onlyTeam{
        require(block.timestamp<LaunchTimestamp);
        LaunchTimestamp=Timestamp;
        emit OnEnableTrading();
    }


    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    //external//////////////////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////////

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

    // IBEP20 - Helpers

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

}

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":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"exclude","type":"bool"}],"name":"ExcludeAccount","type":"event"},{"anonymous":false,"inputs":[],"name":"OnEnableTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sell","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"transfer_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"burn","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"marketing","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"OnSetTaxes","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"ChangeMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"EnableTrading","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":[{"internalType":"address","name":"account","type":"address"}],"name":"ExcludeFromRestrictions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"InitialSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LaunchTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"AMM","type":"address"},{"internalType":"bool","name":"Add","type":"bool"}],"name":"SetAMM","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"Timestamp","type":"uint256"}],"name":"SetLaunchTimestamp","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newOverLiquifyTresholdPermille","type":"uint256"}],"name":"SetOverLiquifiedTreshold","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":"burn","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"SetTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"SwapContractToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"manual","type":"bool"}],"name":"SwitchManualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exludedFromRestrictions","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBurnedTokens","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":"isAMM","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","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":"uint256","name":"newSwapTresholdPermille","type":"uint256"}],"name":"setSwapTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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"}]

6080604052620000126012600a62000427565b6200002190620f42406200043f565b600655603c600755603c60085560006009556000600a5560a6600b55610342600c55600260105560966011556000196014553480156200006057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600654336000818152600160209081526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200014e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000174919062000459565b6001600160a01b031663c9c6539630600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fd919062000459565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200024b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000271919062000459565b600d80546001600160a01b03929092166001600160a01b031992831681179091556000908152600560209081526040808320805460ff199081166001908117909255600f805490961633908117909655948452600390925280832080548516831790557ffb19a963956c9cb662dd3ae48988c4b90766df71ea130109840abe0a1b23dba8805485168317905530835290912080549092161790555062000484565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003695781600019048211156200034d576200034d62000312565b808516156200035b57918102915b93841c93908002906200032d565b509250929050565b600082620003825750600162000421565b81620003915750600062000421565b8160018114620003aa5760028114620003b557620003d5565b600191505062000421565b60ff841115620003c957620003c962000312565b50506001821b62000421565b5060208310610133831016604e8410600b8410161715620003fa575081810a62000421565b62000406838362000328565b80600019048211156200041d576200041d62000312565b0290505b92915050565b60006200043860ff84168362000371565b9392505050565b808202811582820484141762000421576200042162000312565b6000602082840312156200046c57600080fd5b81516001600160a01b03811681146200043857600080fd5b611ff380620004946000396000f3fe6080604052600436106102605760003560e01c80638124f7ac11610144578063be617fa0116100b6578063dbe66ca01161007a578063dbe66ca0146106a7578063dd62ed3e146106d7578063e0d2f9eb1461071d578063e52fb9ec1461073d578063f2fde38b14610753578063f45ca19e1461077357600080fd5b8063be617fa014610616578063c3f4f54f1461062c578063cc1776d314610641578063cfd1940e14610657578063d46b6a301461067757600080fd5b806395d89b411161010857806395d89b411461026c578063a457c2d714610580578063a9059cbb146105a0578063b40d09e2146105c0578063b6bf68f5146105d6578063bc43d849146105f657600080fd5b80638124f7ac1461050c578063817d4bff14610522578063868b014114610542578063893d20e8146105625780638da5cb5b1461056257600080fd5b8063313ce567116101dd5780635149f984116101a15780635149f9841461042857806351bc3c851461044857806354194aaf1461046957806370a0823114610489578063715018a6146104bf57806375f0a874146104d457600080fd5b8063313ce567146103ac57806339509351146103c857806341aec357146103e857806346e35f03146103fd5780634f7041a51461041257600080fd5b80631d4eaead116102245780631d4eaead1461032a5780631d97b7cd146103405780631eb25d131461035757806323b872dd1461036c5780632d48f84f1461038c57600080fd5b806306fdde031461026c578063095ea7b3146102ab5780630eff4c64146102db57806318160ddd146102ff5780631d2cb02d1461031457600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5060408051808201825260078152664d6178696d757360c81b602082015290516102a29190611b26565b60405180910390f35b3480156102b757600080fd5b506102cb6102c6366004611b8c565b6107a0565b60405190151581526020016102a2565b3480156102e757600080fd5b506102f160115481565b6040519081526020016102a2565b34801561030b57600080fd5b506006546102f1565b34801561032057600080fd5b506102f1600c5481565b34801561033657600080fd5b506102f1600a5481565b34801561034c57600080fd5b506103556107b7565b005b34801561036357600080fd5b506102f16107c2565b34801561037857600080fd5b506102cb610387366004611bb8565b6107de565b34801561039857600080fd5b506103556103a7366004611bf9565b61087a565b3480156103b857600080fd5b50604051601281526020016102a2565b3480156103d457600080fd5b506102cb6103e3366004611b8c565b6109f9565b3480156103f457600080fd5b50610355610a30565b34801561040957600080fd5b506102cb610a5f565b34801561041e57600080fd5b506102f160075481565b34801561043457600080fd5b50610355610443366004611c51565b610a9f565b34801561045457600080fd5b506013546102cb90600160a01b900460ff1681565b34801561047557600080fd5b50610355610484366004611c86565b610b44565b34801561049557600080fd5b506102f16104a4366004611c9f565b6001600160a01b031660009081526001602052604090205490565b3480156104cb57600080fd5b50610355610ba8565b3480156104e057600080fd5b50600f546104f4906001600160a01b031681565b6040516001600160a01b0390911681526020016102a2565b34801561051857600080fd5b506102f160095481565b34801561052e57600080fd5b5061035561053d366004611c9f565b610c2b565b34801561054e57600080fd5b5061035561055d366004611cc3565b610c86565b34801561056e57600080fd5b506000546001600160a01b03166104f4565b34801561058c57600080fd5b506102cb61059b366004611b8c565b610cce565b3480156105ac57600080fd5b506102cb6105bb366004611b8c565b610d4a565b3480156105cc57600080fd5b506102f160145481565b3480156105e257600080fd5b506103556105f1366004611c9f565b610d57565b34801561060257600080fd5b50610355610611366004611c86565b610d96565b34801561062257600080fd5b506102f1600b5481565b34801561063857600080fd5b506102f1610dcf565b34801561064d57600080fd5b506102f160085481565b34801561066357600080fd5b50610355610672366004611c86565b610e2e565b34801561068357600080fd5b506102cb610692366004611c9f565b60056020526000908152604090205460ff1681565b3480156106b357600080fd5b506102cb6106c2366004611c9f565b60036020526000908152604090205460ff1681565b3480156106e357600080fd5b506102f16106f2366004611cde565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561072957600080fd5b50610355610738366004611c51565b610e66565b34801561074957600080fd5b506102f160105481565b34801561075f57600080fd5b5061035561076e366004611c9f565b610f46565b34801561077f57600080fd5b506102f161078e366004611c9f565b60046020526000908152604090205481565b60006107ad33848461103f565b5060015b92915050565b6107c042610b44565b565b6107ce6012600a611e11565b6107db90620f4240611e20565b81565b60006107eb848484611132565b6001600160a01b03841660009081526002602090815260408083203384529091529020548281101561085b5760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b60448201526064015b60405180910390fd5b61086f853361086a8685611e37565b61103f565b506001949350505050565b61088333611277565b61089f5760405162461bcd60e51b815260040161085290611e4a565b60006108ae60046103e8611e81565b90508087111580156108c05750808611155b80156108cc5750808511155b61090d5760405162461bcd60e51b81526020600482015260126024820152710a8c2f040caf0c6cacac8e640dac2f0a8c2f60731b6044820152606401610852565b6103e88261091b8587611ea3565b6109259190611ea3565b1461097c5760405162461bcd60e51b815260206004820152602160248201527f546178657320646f6e27742061646420757020746f2064656e6f6d696e61746f6044820152603960f91b6064820152608401610852565b600787905560088690556009859055600c839055600b829055600a8490556040805188815260208101889052908101869052606081018590526080810184905260a081018390527f95617e149b678679d65360792e6610c8fc9add72efd72fc3c8d94792801ca5c99060c00160405180910390a150505050505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916107ad91859061086a908690611ea3565b610a3933611277565b610a555760405162461bcd60e51b815260040161085290611e4a565b6107c060016112a4565b60006103e8601154600654610a749190611e20565b610a7e9190611e81565b600d546001600160a01b031660009081526001602052604090205411919050565b610aa833611277565b610ac45760405162461bcd60e51b815260040161085290611e4a565b600d546001600160a01b0390811690831603610b195760405162461bcd60e51b815260206004820152601460248201527363616e2774206368616e67652070616e63616b6560601b6044820152606401610852565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b610b4d33611277565b610b695760405162461bcd60e51b815260040161085290611e4a565b6014544210610b7757600080fd5b60148190556040517f2cb945e0498987ef06dbd68025b0bc276116c63345296379c28a8e8f09b47dc190600090a150565b33610bbb6000546001600160a01b031690565b6001600160a01b031614610be15760405162461bcd60e51b815260040161085290611eb6565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b33610c3e6000546001600160a01b031690565b6001600160a01b031614610c645760405162461bcd60e51b815260040161085290611eb6565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b610c8f33611277565b610cab5760405162461bcd60e51b815260040161085290611e4a565b60138054911515600160a01b0260ff60a01b19909216919091179055565b905090565b3360009081526002602090815260408083206001600160a01b038616845290915281205482811015610d315760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b6044820152606401610852565b610d40338561086a8685611e37565b5060019392505050565b60006107ad338484611132565b610d6033611277565b610d7c5760405162461bcd60e51b815260040161085290611e4a565b6001600160a01b0316600090815260046020526040812055565b610d9f33611277565b610dbb5760405162461bcd60e51b815260040161085290611e4a565b6103e8811115610dca57600080fd5b601155565b61dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d54600654610e0d6012600a611e11565b610e1a90620f4240611e20565b610e249190611e37565b610cc99190611ea3565b610e3733611277565b610e535760405162461bcd60e51b815260040161085290611e4a565b600a811115610e6157600080fd5b601055565b610e6f33611277565b610e8b5760405162461bcd60e51b815260040161085290611e4a565b306001600160a01b03831603610ee35760405162461bcd60e51b815260206004820152601a60248201527f63616e277420496e636c7564652074686520636f6e74726163740000000000006044820152606401610852565b6001600160a01b038216600081815260036020908152604091829020805460ff19168515159081179091558251938452908301527fa22b25479919d4ac678f064a05daa1ee9c0adc3b8198942ea45255e364e04ed4910160405180910390a15050565b33610f596000546001600160a01b031690565b6001600160a01b031614610f7f5760405162461bcd60e51b815260040161085290611eb6565b6001600160a01b038116610fe45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610852565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166110895760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b6044820152606401610852565b6001600160a01b0382166110d15760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b6044820152606401610852565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661117d5760405162461bcd60e51b81526020600482015260126024820152715472616e736665722066726f6d207a65726f60701b6044820152606401610852565b6001600160a01b0382166111c65760405162461bcd60e51b815260206004820152601060248201526f5472616e7366657220746f207a65726f60801b6044820152606401610852565b6001600160a01b03831660009081526003602052604090205460ff168061120557506001600160a01b03821660009081526003602052604090205460ff165b1561121a57611215838383611460565b505050565b60145442101561126c5760405162461bcd60e51b815260206004820152601760248201527f74726164696e67206e6f742079657420656e61626c65640000000000000000006044820152606401610852565b611215838383611573565b600080546001600160a01b03838116911614806107b1575050600f546001600160a01b0390811691161490565b600f805460ff60a01b1916600160a01b17905530600090815260016020526040812054600c54600b549192916112da9190611ea3565b601054600d546001600160a01b0316600090815260016020526040812054929350916103e89161130991611e20565b6113139190611e81565b90508160000361132557505050611450565b8315611341575030600090815260016020526040902054611351565b8083101561135157505050611450565b600061135b610a5f565b61137d5782600b548361136e9190611e20565b6113789190611e81565b611380565b60005b9050600061138e8284611e37565b9050600061139d600284611e81565b905060006113ab8383611ea3565b9050476113b7826117dd565b60006113c38247611e37565b905085156113f0576000836113d88684611e20565b6113e29190611e81565b90506113ee858261192c565b505b600f546040516000916001600160a01b03169047908381818185875af1925050503d806000811461143d576040519150601f19603f3d011682016040523d82523d6000602084013e611442565b606091505b505050505050505050505050505b50600f805460ff60a01b19169055565b6001600160a01b038316600090815260016020526040902054818110156114c45760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610852565b6001600160a01b038416600090815260016020526040812080548492906114ec908490611e37565b90915550506001600160a01b03831660009081526001602052604081208054849290611519908490611ea3565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161156591815260200190565b60405180910390a350505050565b6001600160a01b038316600090815260016020526040902054818110156115d75760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610852565b601280546001600160a01b038087166001600160a01b03199283168117909355601380549187169190921681179091556000918252600560205260408083205491835282205460ff91821692911690811561163b57611634611a01565b9050611654565b821561164957611634611a5b565b611651611aa1565b90505b600d546001600160a01b0388811691161480159061167c5750601354600160a01b900460ff16155b80156116925750600f54600160a01b900460ff16155b156116a1576116a160006112a4565b60006116b08683600a54611af1565b905060006116ce8784600b54600c546116c99190611ea3565b611af1565b905060006116dc8284611ea3565b6116e69089611e37565b6001600160a01b038b16600090815260016020526040812080549293508a92909190611713908490611e37565b90915550503060009081526001602052604081208054849290611737908490611ea3565b9250508190555082600660008282546117509190611e37565b90915550506001600160a01b0389166000908152600160205260408120805483929061177d908490611ea3565b92505081905550886001600160a01b03168a6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516117c991815260200190565b60405180910390a350505050505050505050565b600e546117f59030906001600160a01b03168361103f565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061182a5761182a611eeb565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611883573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a79190611f01565b816001815181106118ba576118ba611eeb565b6001600160a01b039283166020918202929092010152600e5460405163791ac94760e01b815291169063791ac94790611900908590600090869030904290600401611f1e565b600060405180830381600087803b15801561191a57600080fd5b505af192505050801561121557505050565b600e546119449030906001600160a01b03168461103f565b600e546001600160a01b031663f305d71982308560008061196d6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156119d5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119fa9190611f8f565b5050505050565b6012546001600160a01b03166000908152600460205260408120544290801580611a385750601454611a3490603c611ea3565b8110155b80611a4257508181145b15611a51576008549250505090565b6103849250505090565b6013546001600160a01b03166000908152600460205260408120548103611a9a576013546001600160a01b031660009081526004602052604090204290555b5060075490565b6012546001600160a01b03166000908152600460205260408120544290801580611aca57508181145b80611ae25750601454611ade90603c611ea3565b8110155b15611a51576009549250505090565b6000611aff6103e880611e20565b82611b0a8587611e20565b611b149190611e20565b611b1e9190611e81565b949350505050565b600060208083528351808285015260005b81811015611b5357858101830151858201604001528201611b37565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611b8957600080fd5b50565b60008060408385031215611b9f57600080fd5b8235611baa81611b74565b946020939093013593505050565b600080600060608486031215611bcd57600080fd5b8335611bd881611b74565b92506020840135611be881611b74565b929592945050506040919091013590565b60008060008060008060c08789031215611c1257600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b80358015158114611c4c57600080fd5b919050565b60008060408385031215611c6457600080fd5b8235611c6f81611b74565b9150611c7d60208401611c3c565b90509250929050565b600060208284031215611c9857600080fd5b5035919050565b600060208284031215611cb157600080fd5b8135611cbc81611b74565b9392505050565b600060208284031215611cd557600080fd5b611cbc82611c3c565b60008060408385031215611cf157600080fd5b8235611cfc81611b74565b91506020830135611d0c81611b74565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611d68578160001904821115611d4e57611d4e611d17565b80851615611d5b57918102915b93841c9390800290611d32565b509250929050565b600082611d7f575060016107b1565b81611d8c575060006107b1565b8160018114611da25760028114611dac57611dc8565b60019150506107b1565b60ff841115611dbd57611dbd611d17565b50506001821b6107b1565b5060208310610133831016604e8410600b8410161715611deb575081810a6107b1565b611df58383611d2d565b8060001904821115611e0957611e09611d17565b029392505050565b6000611cbc60ff841683611d70565b80820281158282048414176107b1576107b1611d17565b818103818111156107b1576107b1611d17565b60208082526018908201527f43616c6c6572206e6f74205465616d206f72204f776e65720000000000000000604082015260600190565b600082611e9e57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156107b1576107b1611d17565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611f1357600080fd5b8151611cbc81611b74565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611f6e5784516001600160a01b031683529383019391830191600101611f49565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611fa457600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212208cbbfce9e4f87a15db3e93ae51e99e144fee7d1f81fd7ef8baf5aaf794e243de64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102605760003560e01c80638124f7ac11610144578063be617fa0116100b6578063dbe66ca01161007a578063dbe66ca0146106a7578063dd62ed3e146106d7578063e0d2f9eb1461071d578063e52fb9ec1461073d578063f2fde38b14610753578063f45ca19e1461077357600080fd5b8063be617fa014610616578063c3f4f54f1461062c578063cc1776d314610641578063cfd1940e14610657578063d46b6a301461067757600080fd5b806395d89b411161010857806395d89b411461026c578063a457c2d714610580578063a9059cbb146105a0578063b40d09e2146105c0578063b6bf68f5146105d6578063bc43d849146105f657600080fd5b80638124f7ac1461050c578063817d4bff14610522578063868b014114610542578063893d20e8146105625780638da5cb5b1461056257600080fd5b8063313ce567116101dd5780635149f984116101a15780635149f9841461042857806351bc3c851461044857806354194aaf1461046957806370a0823114610489578063715018a6146104bf57806375f0a874146104d457600080fd5b8063313ce567146103ac57806339509351146103c857806341aec357146103e857806346e35f03146103fd5780634f7041a51461041257600080fd5b80631d4eaead116102245780631d4eaead1461032a5780631d97b7cd146103405780631eb25d131461035757806323b872dd1461036c5780632d48f84f1461038c57600080fd5b806306fdde031461026c578063095ea7b3146102ab5780630eff4c64146102db57806318160ddd146102ff5780631d2cb02d1461031457600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5060408051808201825260078152664d6178696d757360c81b602082015290516102a29190611b26565b60405180910390f35b3480156102b757600080fd5b506102cb6102c6366004611b8c565b6107a0565b60405190151581526020016102a2565b3480156102e757600080fd5b506102f160115481565b6040519081526020016102a2565b34801561030b57600080fd5b506006546102f1565b34801561032057600080fd5b506102f1600c5481565b34801561033657600080fd5b506102f1600a5481565b34801561034c57600080fd5b506103556107b7565b005b34801561036357600080fd5b506102f16107c2565b34801561037857600080fd5b506102cb610387366004611bb8565b6107de565b34801561039857600080fd5b506103556103a7366004611bf9565b61087a565b3480156103b857600080fd5b50604051601281526020016102a2565b3480156103d457600080fd5b506102cb6103e3366004611b8c565b6109f9565b3480156103f457600080fd5b50610355610a30565b34801561040957600080fd5b506102cb610a5f565b34801561041e57600080fd5b506102f160075481565b34801561043457600080fd5b50610355610443366004611c51565b610a9f565b34801561045457600080fd5b506013546102cb90600160a01b900460ff1681565b34801561047557600080fd5b50610355610484366004611c86565b610b44565b34801561049557600080fd5b506102f16104a4366004611c9f565b6001600160a01b031660009081526001602052604090205490565b3480156104cb57600080fd5b50610355610ba8565b3480156104e057600080fd5b50600f546104f4906001600160a01b031681565b6040516001600160a01b0390911681526020016102a2565b34801561051857600080fd5b506102f160095481565b34801561052e57600080fd5b5061035561053d366004611c9f565b610c2b565b34801561054e57600080fd5b5061035561055d366004611cc3565b610c86565b34801561056e57600080fd5b506000546001600160a01b03166104f4565b34801561058c57600080fd5b506102cb61059b366004611b8c565b610cce565b3480156105ac57600080fd5b506102cb6105bb366004611b8c565b610d4a565b3480156105cc57600080fd5b506102f160145481565b3480156105e257600080fd5b506103556105f1366004611c9f565b610d57565b34801561060257600080fd5b50610355610611366004611c86565b610d96565b34801561062257600080fd5b506102f1600b5481565b34801561063857600080fd5b506102f1610dcf565b34801561064d57600080fd5b506102f160085481565b34801561066357600080fd5b50610355610672366004611c86565b610e2e565b34801561068357600080fd5b506102cb610692366004611c9f565b60056020526000908152604090205460ff1681565b3480156106b357600080fd5b506102cb6106c2366004611c9f565b60036020526000908152604090205460ff1681565b3480156106e357600080fd5b506102f16106f2366004611cde565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561072957600080fd5b50610355610738366004611c51565b610e66565b34801561074957600080fd5b506102f160105481565b34801561075f57600080fd5b5061035561076e366004611c9f565b610f46565b34801561077f57600080fd5b506102f161078e366004611c9f565b60046020526000908152604090205481565b60006107ad33848461103f565b5060015b92915050565b6107c042610b44565b565b6107ce6012600a611e11565b6107db90620f4240611e20565b81565b60006107eb848484611132565b6001600160a01b03841660009081526002602090815260408083203384529091529020548281101561085b5760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b60448201526064015b60405180910390fd5b61086f853361086a8685611e37565b61103f565b506001949350505050565b61088333611277565b61089f5760405162461bcd60e51b815260040161085290611e4a565b60006108ae60046103e8611e81565b90508087111580156108c05750808611155b80156108cc5750808511155b61090d5760405162461bcd60e51b81526020600482015260126024820152710a8c2f040caf0c6cacac8e640dac2f0a8c2f60731b6044820152606401610852565b6103e88261091b8587611ea3565b6109259190611ea3565b1461097c5760405162461bcd60e51b815260206004820152602160248201527f546178657320646f6e27742061646420757020746f2064656e6f6d696e61746f6044820152603960f91b6064820152608401610852565b600787905560088690556009859055600c839055600b829055600a8490556040805188815260208101889052908101869052606081018590526080810184905260a081018390527f95617e149b678679d65360792e6610c8fc9add72efd72fc3c8d94792801ca5c99060c00160405180910390a150505050505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916107ad91859061086a908690611ea3565b610a3933611277565b610a555760405162461bcd60e51b815260040161085290611e4a565b6107c060016112a4565b60006103e8601154600654610a749190611e20565b610a7e9190611e81565b600d546001600160a01b031660009081526001602052604090205411919050565b610aa833611277565b610ac45760405162461bcd60e51b815260040161085290611e4a565b600d546001600160a01b0390811690831603610b195760405162461bcd60e51b815260206004820152601460248201527363616e2774206368616e67652070616e63616b6560601b6044820152606401610852565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b610b4d33611277565b610b695760405162461bcd60e51b815260040161085290611e4a565b6014544210610b7757600080fd5b60148190556040517f2cb945e0498987ef06dbd68025b0bc276116c63345296379c28a8e8f09b47dc190600090a150565b33610bbb6000546001600160a01b031690565b6001600160a01b031614610be15760405162461bcd60e51b815260040161085290611eb6565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b33610c3e6000546001600160a01b031690565b6001600160a01b031614610c645760405162461bcd60e51b815260040161085290611eb6565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b610c8f33611277565b610cab5760405162461bcd60e51b815260040161085290611e4a565b60138054911515600160a01b0260ff60a01b19909216919091179055565b905090565b3360009081526002602090815260408083206001600160a01b038616845290915281205482811015610d315760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b6044820152606401610852565b610d40338561086a8685611e37565b5060019392505050565b60006107ad338484611132565b610d6033611277565b610d7c5760405162461bcd60e51b815260040161085290611e4a565b6001600160a01b0316600090815260046020526040812055565b610d9f33611277565b610dbb5760405162461bcd60e51b815260040161085290611e4a565b6103e8811115610dca57600080fd5b601155565b61dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d54600654610e0d6012600a611e11565b610e1a90620f4240611e20565b610e249190611e37565b610cc99190611ea3565b610e3733611277565b610e535760405162461bcd60e51b815260040161085290611e4a565b600a811115610e6157600080fd5b601055565b610e6f33611277565b610e8b5760405162461bcd60e51b815260040161085290611e4a565b306001600160a01b03831603610ee35760405162461bcd60e51b815260206004820152601a60248201527f63616e277420496e636c7564652074686520636f6e74726163740000000000006044820152606401610852565b6001600160a01b038216600081815260036020908152604091829020805460ff19168515159081179091558251938452908301527fa22b25479919d4ac678f064a05daa1ee9c0adc3b8198942ea45255e364e04ed4910160405180910390a15050565b33610f596000546001600160a01b031690565b6001600160a01b031614610f7f5760405162461bcd60e51b815260040161085290611eb6565b6001600160a01b038116610fe45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610852565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166110895760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b6044820152606401610852565b6001600160a01b0382166110d15760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b6044820152606401610852565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661117d5760405162461bcd60e51b81526020600482015260126024820152715472616e736665722066726f6d207a65726f60701b6044820152606401610852565b6001600160a01b0382166111c65760405162461bcd60e51b815260206004820152601060248201526f5472616e7366657220746f207a65726f60801b6044820152606401610852565b6001600160a01b03831660009081526003602052604090205460ff168061120557506001600160a01b03821660009081526003602052604090205460ff165b1561121a57611215838383611460565b505050565b60145442101561126c5760405162461bcd60e51b815260206004820152601760248201527f74726164696e67206e6f742079657420656e61626c65640000000000000000006044820152606401610852565b611215838383611573565b600080546001600160a01b03838116911614806107b1575050600f546001600160a01b0390811691161490565b600f805460ff60a01b1916600160a01b17905530600090815260016020526040812054600c54600b549192916112da9190611ea3565b601054600d546001600160a01b0316600090815260016020526040812054929350916103e89161130991611e20565b6113139190611e81565b90508160000361132557505050611450565b8315611341575030600090815260016020526040902054611351565b8083101561135157505050611450565b600061135b610a5f565b61137d5782600b548361136e9190611e20565b6113789190611e81565b611380565b60005b9050600061138e8284611e37565b9050600061139d600284611e81565b905060006113ab8383611ea3565b9050476113b7826117dd565b60006113c38247611e37565b905085156113f0576000836113d88684611e20565b6113e29190611e81565b90506113ee858261192c565b505b600f546040516000916001600160a01b03169047908381818185875af1925050503d806000811461143d576040519150601f19603f3d011682016040523d82523d6000602084013e611442565b606091505b505050505050505050505050505b50600f805460ff60a01b19169055565b6001600160a01b038316600090815260016020526040902054818110156114c45760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610852565b6001600160a01b038416600090815260016020526040812080548492906114ec908490611e37565b90915550506001600160a01b03831660009081526001602052604081208054849290611519908490611ea3565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161156591815260200190565b60405180910390a350505050565b6001600160a01b038316600090815260016020526040902054818110156115d75760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610852565b601280546001600160a01b038087166001600160a01b03199283168117909355601380549187169190921681179091556000918252600560205260408083205491835282205460ff91821692911690811561163b57611634611a01565b9050611654565b821561164957611634611a5b565b611651611aa1565b90505b600d546001600160a01b0388811691161480159061167c5750601354600160a01b900460ff16155b80156116925750600f54600160a01b900460ff16155b156116a1576116a160006112a4565b60006116b08683600a54611af1565b905060006116ce8784600b54600c546116c99190611ea3565b611af1565b905060006116dc8284611ea3565b6116e69089611e37565b6001600160a01b038b16600090815260016020526040812080549293508a92909190611713908490611e37565b90915550503060009081526001602052604081208054849290611737908490611ea3565b9250508190555082600660008282546117509190611e37565b90915550506001600160a01b0389166000908152600160205260408120805483929061177d908490611ea3565b92505081905550886001600160a01b03168a6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516117c991815260200190565b60405180910390a350505050505050505050565b600e546117f59030906001600160a01b03168361103f565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061182a5761182a611eeb565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611883573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a79190611f01565b816001815181106118ba576118ba611eeb565b6001600160a01b039283166020918202929092010152600e5460405163791ac94760e01b815291169063791ac94790611900908590600090869030904290600401611f1e565b600060405180830381600087803b15801561191a57600080fd5b505af192505050801561121557505050565b600e546119449030906001600160a01b03168461103f565b600e546001600160a01b031663f305d71982308560008061196d6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156119d5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119fa9190611f8f565b5050505050565b6012546001600160a01b03166000908152600460205260408120544290801580611a385750601454611a3490603c611ea3565b8110155b80611a4257508181145b15611a51576008549250505090565b6103849250505090565b6013546001600160a01b03166000908152600460205260408120548103611a9a576013546001600160a01b031660009081526004602052604090204290555b5060075490565b6012546001600160a01b03166000908152600460205260408120544290801580611aca57508181145b80611ae25750601454611ade90603c611ea3565b8110155b15611a51576009549250505090565b6000611aff6103e880611e20565b82611b0a8587611e20565b611b149190611e20565b611b1e9190611e81565b949350505050565b600060208083528351808285015260005b81811015611b5357858101830151858201604001528201611b37565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611b8957600080fd5b50565b60008060408385031215611b9f57600080fd5b8235611baa81611b74565b946020939093013593505050565b600080600060608486031215611bcd57600080fd5b8335611bd881611b74565b92506020840135611be881611b74565b929592945050506040919091013590565b60008060008060008060c08789031215611c1257600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b80358015158114611c4c57600080fd5b919050565b60008060408385031215611c6457600080fd5b8235611c6f81611b74565b9150611c7d60208401611c3c565b90509250929050565b600060208284031215611c9857600080fd5b5035919050565b600060208284031215611cb157600080fd5b8135611cbc81611b74565b9392505050565b600060208284031215611cd557600080fd5b611cbc82611c3c565b60008060408385031215611cf157600080fd5b8235611cfc81611b74565b91506020830135611d0c81611b74565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611d68578160001904821115611d4e57611d4e611d17565b80851615611d5b57918102915b93841c9390800290611d32565b509250929050565b600082611d7f575060016107b1565b81611d8c575060006107b1565b8160018114611da25760028114611dac57611dc8565b60019150506107b1565b60ff841115611dbd57611dbd611d17565b50506001821b6107b1565b5060208310610133831016604e8410600b8410161715611deb575081810a6107b1565b611df58383611d2d565b8060001904821115611e0957611e09611d17565b029392505050565b6000611cbc60ff841683611d70565b80820281158282048414176107b1576107b1611d17565b818103818111156107b1576107b1611d17565b60208082526018908201527f43616c6c6572206e6f74205465616d206f72204f776e65720000000000000000604082015260600190565b600082611e9e57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156107b1576107b1611d17565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611f1357600080fd5b8151611cbc81611b74565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611f6e5784516001600160a01b031683529383019391830191600101611f49565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611fa457600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212208cbbfce9e4f87a15db3e93ae51e99e144fee7d1f81fd7ef8baf5aaf794e243de64736f6c63430008110033

Deployed Bytecode Sourcemap

3461:17352:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18500:94;;;;;;;;;;-1:-1:-1;18581:5:0;;;;;;;;;;;-1:-1:-1;;;18581:5:0;;;;18500:94;;;;18581:5;18500:94;:::i;:::-;;;;;;;;19373:158;;;;;;;;;;-1:-1:-1;19373:158:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;19373:158:0;1023:187:1;10908:35:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;10908:35:0;1215:177:1;18810:105:0;;;;;;;;;;-1:-1:-1;18889:18:0;;18810:105;;4718:28;;;;;;;;;;;;;;;;4655:21;;;;;;;;;;;;;;;;17741:85;;;;;;;;;;;;;:::i;:::-;;3955:57;;;;;;;;;;;;;:::i;19841:386::-;;;;;;;;;;-1:-1:-1;19841:386:0;;;;;:::i;:::-;;:::i;11433:608::-;;;;;;;;;;-1:-1:-1;11433:608:0;;;;;:::i;:::-;;:::i;18708:94::-;;;;;;;;;;-1:-1:-1;18708:94:0;;3946:2;2528:36:1;;2516:2;2501:18;18708:94:0;2386:184:1;20262:202:0;;;;;;;;;;-1:-1:-1;20262:202:0;;;;;:::i;:::-;;:::i;17141:83::-;;;;;;;;;;;;;:::i;12278:152::-;;;;;;;;;;;;;:::i;4560:23::-;;;;;;;;;;;;;;;;16712:154;;;;;;;;;;-1:-1:-1;16712:154:0;;;;;:::i;:::-;;:::i;16878:22::-;;;;;;;;;;-1:-1:-1;16878:22:0;;;;-1:-1:-1;;;16878:22:0;;;;;;17832:187;;;;;;;;;;-1:-1:-1;17832:187:0;;;;;:::i;:::-;;:::i;18923:118::-;;;;;;;;;;-1:-1:-1;18923:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;19015:18:0;18991:4;19015:18;;;:9;:18;;;;;;;18923:118;2915:140;;;;;;;;;;;;;:::i;4971:30::-;;;;;;;;;;-1:-1:-1;4971:30:0;;;;-1:-1:-1;;;;;4971:30:0;;;;;;-1:-1:-1;;;;;3661:32:1;;;3643:51;;3631:2;3616:18;4971:30:0;3497:203:1;4621:27:0;;;;;;;;;;;;;;;;5063:110;;;;;;;;;;-1:-1:-1;5063:110:0;;;;;:::i;:::-;;:::i;16983:90::-;;;;;;;;;;-1:-1:-1;16983:90:0;;;;;:::i;:::-;;:::i;18398:94::-;;;;;;;;;;-1:-1:-1;18450:7:0;2339:6;-1:-1:-1;;;;;2339:6:0;18398:94;;20472:336;;;;;;;;;;-1:-1:-1;20472:336:0;;;;;:::i;:::-;;:::i;19049:164::-;;;;;;;;;;-1:-1:-1;19049:164:0;;;;;:::i;:::-;;:::i;17692:42::-;;;;;;;;;;;;;;;;12047:120;;;;;;;;;;-1:-1:-1;12047:120:0;;;;;:::i;:::-;;:::i;10950:211::-;;;;;;;;;;-1:-1:-1;10950:211:0;;;;;:::i;:::-;;:::i;4683:28::-;;;;;;;;;;;;;;;;16187:139;;;;;;;;;;;;;:::i;4590:24::-;;;;;;;;;;;;;;;;10644:189;;;;;;;;;;-1:-1:-1;10644:189:0;;;;;:::i;:::-;;:::i;3753:35::-;;;;;;;;;;-1:-1:-1;3753:35:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3638:48;;;;;;;;;;-1:-1:-1;3638:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19221:144;;;;;;;;;;-1:-1:-1;19221:144:0;;;;;:::i;:::-;-1:-1:-1;;;;;19329:19:0;;;19305:4;19329:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;19221:144;17339:248;;;;;;;;;;-1:-1:-1;17339:248:0;;;;;:::i;:::-;;:::i;10611:26::-;;;;;;;;;;;;;;;;3210:236;;;;;;;;;;-1:-1:-1;3210:236:0;;;;;:::i;:::-;;:::i;3693:53::-;;;;;;;;;;-1:-1:-1;3693:53:0;;;;;:::i;:::-;;;;;;;;;;;;;;19373:158;19447:4;19464:37;19473:10;19485:7;19494:6;19464:8;:37::i;:::-;-1:-1:-1;19519:4:0;19373:158;;;;;:::o;17741:85::-;17783:35;17802:15;17783:18;:35::i;:::-;17741:85::o;3955:57::-;3999:13;3946:2;3999;:13;:::i;:::-;3991:21;;:5;:21;:::i;:::-;3955:57;:::o;19841:386::-;19938:4;19955:36;19965:6;19973:9;19984:6;19955:9;:36::i;:::-;-1:-1:-1;;;;;20028:19:0;;20004:21;20028:19;;;:11;:19;;;;;;;;20048:10;20028:31;;;;;;;;20078:26;;;;20070:59;;;;-1:-1:-1;;;20070:59:0;;6173:2:1;20070:59:0;;;6155:21:1;6212:2;6192:18;;;6185:30;-1:-1:-1;;;6231:18:1;;;6224:50;6291:18;;20070:59:0;;;;;;;;;20142:55;20151:6;20159:10;20171:25;20190:6;20171:16;:25;:::i;:::-;20142:8;:55::i;:::-;-1:-1:-1;20215:4:0;;19841:386;-1:-1:-1;;;;19841:386:0:o;11433:608::-;5271:19;5279:10;5271:7;:19::i;:::-;5263:56;;;;-1:-1:-1;;;5263:56:0;;;;;;;:::i;:::-;11556:11:::1;11568:33;4826:1;4783:4;11568:33;:::i;:::-;11556:45;;11625:6;11620:3;:11;;:25;;;;;11639:6;11633:4;:12;;11620:25;:44;;;;;11658:6;11647:9;:17;;11620:44;11612:74;;;::::0;-1:-1:-1;;;11612:74:0;;7230:2:1;11612:74:0::1;::::0;::::1;7212:21:1::0;7269:2;7249:18;;;7242:30;-1:-1:-1;;;7288:18:1;;;7281:48;7346:18;;11612:74:0::1;7028:342:1::0;11612:74:0::1;4783:4;11720:9:::0;11705:14:::1;11710:9:::0;11705:4;:14:::1;:::i;:::-;:24;;;;:::i;:::-;:41;11697:86;;;::::0;-1:-1:-1;;;11697:86:0;;7707:2:1;11697:86:0::1;::::0;::::1;7689:21:1::0;7746:2;7726:18;;;7719:30;7785:34;7765:18;;;7758:62;-1:-1:-1;;;7836:18:1;;;7829:31;7877:19;;11697:86:0::1;7505:397:1::0;11697:86:0::1;11804:6;:10:::0;;;11825:7:::1;:12:::0;;;11848:11:::1;:21:::0;;;11880:12:::1;:22:::0;;;11913:12:::1;:22:::0;;;11946:7:::1;:12:::0;;;11974:59:::1;::::0;;8194:25:1;;;8250:2;8235:18;;8228:34;;;8278:18;;;8271:34;;;8336:2;8321:18;;8314:34;;;8379:3;8364:19;;8357:35;;;8423:3;8408:19;;8401:35;;;11974:59:0::1;::::0;8181:3:1;8166:19;11974:59:0::1;;;;;;;11545:496;11433:608:::0;;;;;;:::o;20262:202::-;20367:10;20341:4;20388:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;20388:32:0;;;;;;;;;;20341:4;;20358:76;;20379:7;;20388:45;;20423:10;;20388:45;:::i;17141:83::-;5271:19;5279:10;5271:7;:19::i;:::-;5263:56;;;;-1:-1:-1;;;5263:56:0;;;;;;;:::i;:::-;17192:24:::1;17211:4;17192:18;:24::i;12278:152::-:0;12325:4;12418;12398:19;;12379:18;;:38;;;;:::i;:::-;:43;;;;:::i;:::-;12358:19;;-1:-1:-1;;;;;12358:19:0;12348:30;;;;:9;:30;;;;;;:74;;12278:152;-1:-1:-1;12278:152:0:o;16712:154::-;5271:19;5279:10;5271:7;:19::i;:::-;5263:56;;;;-1:-1:-1;;;5263:56:0;;;;;;;:::i;:::-;16790:19:::1;::::0;-1:-1:-1;;;;;16790:19:0;;::::1;16785:24:::0;;::::1;::::0;16777:56:::1;;;::::0;-1:-1:-1;;;16777:56:0;;8649:2:1;16777:56:0::1;::::0;::::1;8631:21:1::0;8688:2;8668:18;;;8661:30;-1:-1:-1;;;8707:18:1;;;8700:50;8767:18;;16777:56:0::1;8447:344:1::0;16777:56:0::1;-1:-1:-1::0;;;;;16844:10:0;;;::::1;;::::0;;;:5:::1;:10;::::0;;;;:14;;-1:-1:-1;;16844:14:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16712:154::o;17832:187::-;5271:19;5279:10;5271:7;:19::i;:::-;5263:56;;;;-1:-1:-1;;;5263:56:0;;;;;;;:::i;:::-;17926:15:::1;;17910;:31;17902:40;;;::::0;::::1;;17953:15;:25:::0;;;17994:17:::1;::::0;::::1;::::0;;;::::1;17832:187:::0;:::o;2915:140::-;2497:10;2486:7;2312;2339:6;-1:-1:-1;;;;;2339:6:0;;2274:79;2486:7;-1:-1:-1;;;;;2486:21:0;;2478:66;;;;-1:-1:-1;;;2478:66:0;;;;;;;:::i;:::-;3014:1:::1;2998:6:::0;;2977:40:::1;::::0;-1:-1:-1;;;;;2998:6:0;;::::1;::::0;2977:40:::1;::::0;3014:1;;2977:40:::1;3045:1;3028:19:::0;;-1:-1:-1;;;;;;3028:19:0::1;::::0;;2915:140::o;5063:110::-;2497:10;2486:7;2312;2339:6;-1:-1:-1;;;;;2339:6:0;;2274:79;2486:7;-1:-1:-1;;;;;2486:21:0;;2478:66;;;;-1:-1:-1;;;2478:66:0;;;;;;;:::i;:::-;5140:15:::1;:25:::0;;-1:-1:-1;;;;;;5140:25:0::1;-1:-1:-1::0;;;;;5140:25:0;;;::::1;::::0;;;::::1;::::0;;5063:110::o;16983:90::-;5271:19;5279:10;5271:7;:19::i;:::-;5263:56;;;;-1:-1:-1;;;5263:56:0;;;;;;;:::i;:::-;17048:10:::1;:17:::0;;;::::1;;-1:-1:-1::0;;;17048:17:0::1;-1:-1:-1::0;;;;17048:17:0;;::::1;::::0;;;::::1;::::0;;16983:90::o;18477:7::-;18470:14;;18398:94;:::o;20472:336::-;20609:10;20556:4;20597:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;20597:32:0;;;;;;;;;;20648:35;;;;20640:60;;;;-1:-1:-1;;;20640:60:0;;9359:2:1;20640:60:0;;;9341:21:1;9398:2;9378:18;;;9371:30;-1:-1:-1;;;9417:18:1;;;9410:42;9469:18;;20640:60:0;9157:336:1;20640:60:0;20713:65;20722:10;20734:7;20743:34;20762:15;20743:16;:34;:::i;20713:65::-;-1:-1:-1;20796:4:0;;20472:336;-1:-1:-1;;;20472:336:0:o;19049:164::-;19126:4;19143:40;19153:10;19165:9;19176:6;19143:9;:40::i;12047:120::-;5271:19;5279:10;5271:7;:19::i;:::-;5263:56;;;;-1:-1:-1;;;5263:56:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12125:32:0::1;12158:1;12125:32:::0;;;:23:::1;:32;::::0;;;;:34;12047:120::o;10950:211::-;5271:19;5279:10;5271:7;:19::i;:::-;5263:56;;;;-1:-1:-1;;;5263:56:0;;;;;;;:::i;:::-;11087:4:::1;11055:30;:36;;11047:45;;;::::0;::::1;;11103:19;:50:::0;10950:211::o;16187:139::-;16310:6;16234:4;16292:26;;;:9;:26;;;;16272:18;;3999:13;3946:2;3999;:13;:::i;:::-;3991:21;;:5;:21;:::i;:::-;16258:32;;;;:::i;:::-;16257:61;;;;:::i;10644:189::-;5271:19;5279:10;5271:7;:19::i;:::-;5263:56;;;;-1:-1:-1;;;5263:56:0;;;;;;;:::i;:::-;10758:2:::1;10733:23;:27;;10725:36;;;::::0;::::1;;10789:12;:36:::0;10644:189::o;17339:248::-;5271:19;5279:10;5271:7;:19::i;:::-;5263:56;;;;-1:-1:-1;;;5263:56:0;;;;;;;:::i;:::-;17453:4:::1;-1:-1:-1::0;;;;;17436:22:0;::::1;::::0;17428:60:::1;;;::::0;-1:-1:-1;;;17428:60:0;;9700:2:1;17428:60:0::1;::::0;::::1;9682:21:1::0;9739:2;9719:18;;;9712:30;9778:28;9758:18;;;9751:56;9824:18;;17428:60:0::1;9498:350:1::0;17428:60:0::1;-1:-1:-1::0;;;;;17499:25:0;::::1;;::::0;;;:16:::1;:25;::::0;;;;;;;;:33;;-1:-1:-1;;17499:33:0::1;::::0;::::1;;::::0;;::::1;::::0;;;17548:31;;10021:51:1;;;10088:18;;;10081:50;17548:31:0::1;::::0;9994:18:1;17548:31:0::1;;;;;;;17339:248:::0;;:::o;3210:236::-;2497:10;2486:7;2312;2339:6;-1:-1:-1;;;;;2339:6:0;;2274:79;2486:7;-1:-1:-1;;;;;2486:21:0;;2478:66;;;;-1:-1:-1;;;2478:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3291:22:0;::::1;3283:73;;;::::0;-1:-1:-1;;;3283:73:0;;10344:2:1;3283:73:0::1;::::0;::::1;10326:21:1::0;10383:2;10363:18;;;10356:30;10422:34;10402:18;;;10395:62;-1:-1:-1;;;10473:18:1;;;10466:36;10519:19;;3283:73:0::1;10142:402:1::0;3283:73:0::1;3393:6;::::0;;3372:38:::1;::::0;-1:-1:-1;;;;;3372:38:0;;::::1;::::0;3393:6;::::1;::::0;3372:38:::1;::::0;::::1;3421:6;:17:::0;;-1:-1:-1;;;;;;3421:17:0::1;-1:-1:-1::0;;;;;3421:17:0;;;::::1;::::0;;;::::1;::::0;;3210:236::o;19537:296::-;-1:-1:-1;;;;;19627:19:0;;19619:49;;;;-1:-1:-1;;;19619:49:0;;10751:2:1;19619:49:0;;;10733:21:1;10790:2;10770:18;;;10763:30;-1:-1:-1;;;10809:18:1;;;10802:47;10866:18;;19619:49:0;10549:341:1;19619:49:0;-1:-1:-1;;;;;19687:21:0;;19679:49;;;;-1:-1:-1;;;19679:49:0;;11097:2:1;19679:49:0;;;11079:21:1;11136:2;11116:18;;;11109:30;-1:-1:-1;;;11155:18:1;;;11148:45;11210:18;;19679:49:0;10895:339:1;19679:49:0;-1:-1:-1;;;;;19741:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;19793:32;;1361:25:1;;;19793:32:0;;1334:18:1;19793:32:0;;;;;;;19537:296;;;:::o;7218:613::-;-1:-1:-1;;;;;7311:20:0;;7303:51;;;;-1:-1:-1;;;7303:51:0;;11441:2:1;7303:51:0;;;11423:21:1;11480:2;11460:18;;;11453:30;-1:-1:-1;;;11499:18:1;;;11492:48;11557:18;;7303:51:0;11239:342:1;7303:51:0;-1:-1:-1;;;;;7373:23:0;;7365:52;;;;-1:-1:-1;;;7365:52:0;;11788:2:1;7365:52:0;;;11770:21:1;11827:2;11807:18;;;11800:30;-1:-1:-1;;;11846:18:1;;;11839:46;11902:18;;7365:52:0;11586:340:1;7365:52:0;-1:-1:-1;;;;;7460:24:0;;;;;;:16;:24;;;;;;;;;:55;;-1:-1:-1;;;;;;7488:27:0;;;;;;:16;:27;;;;;;;;7460:55;7457:367;;;7530:43;7547:6;7555:9;7566:6;7530:16;:43::i;:::-;7218:613;;;:::o;7457:367::-;7698:15;;7681;:32;;7673:67;;;;-1:-1:-1;;;7673:67:0;;12133:2:1;7673:67:0;;;12115:21:1;12172:2;12152:18;;;12145:30;12211:25;12191:18;;;12184:53;12254:18;;7673:67:0;11931:347:1;7673:67:0;7755:39;7770:6;7777:9;7787:6;7755:14;:39::i;5557:120::-;5610:4;2339:6;;-1:-1:-1;;;;;5633:13:0;;;2339:6;;5633:13;;:36;;-1:-1:-1;;5654:15:0;;-1:-1:-1;;;;;5654:15:0;;;5648:21;;;;5557:120::o;12589:1820::-;10428:27;:34;;-1:-1:-1;;;;10428:34:0;-1:-1:-1;;;10428:34:0;;;12705:4:::1;10428:34:::0;12687:24;;;10458:4;12687:24:::1;::::0;;;;;12749:12:::1;::::0;12736::::1;::::0;12687:24;;10428:34;12736:25:::1;::::0;12749:12;12736:25:::1;:::i;:::-;12915:12;::::0;12894:19:::1;::::0;-1:-1:-1;;;;;12894:19:0::1;12867:16;12884:30:::0;;;:9:::1;:30;::::0;;;;;12722:39;;-1:-1:-1;12867:16:0;12928:4:::1;::::0;12884:43:::1;::::0;::::1;:::i;:::-;:48;;;;:::i;:::-;12867:65;;12985:8;12995:1;12985:11:::0;12982:22:::1;;12997:7;;;;;12982:22;13173:12;13170:134;;;-1:-1:-1::0;13230:4:0::1;13212:24;::::0;;;:9:::1;:24;::::0;;;;;13170:134:::1;;;13271:11;13255:15;:27;13252:52;;;13297:7;;;;;13252:52;13437:22;13470:17;:15;:17::i;:::-;:65;;13527:8;13513:12;;13501:11;:24;;;;:::i;:::-;13500:35;;;;:::i;:::-;13470:65;;;13488:1;13470:65;13437:98:::0;-1:-1:-1;13548:22:0::1;13572:29;13437:98:::0;13572:11;:29:::1;:::i;:::-;13548:53:::0;-1:-1:-1;13614:12:0::1;13627:19;13645:1;13627:17:::0;:19:::1;:::i;:::-;13614:32:::0;-1:-1:-1;13727:14:0::1;13742:25;13750:17:::0;13614:32;13742:25:::1;:::i;:::-;13727:40:::0;-1:-1:-1;13881:21:0::1;13913:27;13727:40:::0;13913:16:::1;:27::i;:::-;13951:11;13964:41;13988:17:::0;13964:21:::1;:41;:::i;:::-;13951:55:::0;-1:-1:-1;14111:19:0;;14108:135:::1;;14146:11;14177:9:::0;14161:14:::1;14168:7:::0;14161:6;:14:::1;:::i;:::-;14160:26;;;;:::i;:::-;14146:40;;14201:30;14215:7;14224:6;14201:13;:30::i;:::-;14131:112;14108:135;14328:15;::::0;:53:::1;::::0;14316:9:::1;::::0;-1:-1:-1;;;;;14328:15:0::1;::::0;14355:21:::1;::::0;14316:9;14328:53;14316:9;14328:53;14355:21;14328:15;:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;;;;;;;;10473:1:0::1;-1:-1:-1::0;10485:27:0;:35;;-1:-1:-1;;;;10485:35:0;;;12589:1820::o;9624:339::-;-1:-1:-1;;;;;9737:17:0;;9716:18;9737:17;;;:9;:17;;;;;;9773:23;;;;9765:60;;;;-1:-1:-1;;;9765:60:0;;12695:2:1;9765:60:0;;;12677:21:1;12734:2;12714:18;;;12707:30;-1:-1:-1;;;12753:18:1;;;12746:54;12817:18;;9765:60:0;12493:348:1;9765:60:0;-1:-1:-1;;;;;9836:17:0;;;;;;:9;:17;;;;;:25;;9855:6;;9836:17;:25;;9855:6;;9836:25;:::i;:::-;;;;-1:-1:-1;;;;;;;9872:20:0;;;;;;:9;:20;;;;;:28;;9894:6;;9872:20;:28;;9894:6;;9872:28;:::i;:::-;;;;;;;;9938:9;-1:-1:-1;;;;;9922:33:0;9931:6;-1:-1:-1;;;;;9922:33:0;;9948:6;9922:33;;;;1361:25:1;;1349:2;1334:18;;1215:177;9922:33:0;;;;;;;;9705:258;9624:339;;;:::o;7932:1397::-;-1:-1:-1;;;;;8043:17:0;;8022:18;8043:17;;;:9;:17;;;;;;8079:23;;;;8071:60;;;;-1:-1:-1;;;8071:60:0;;12695:2:1;8071:60:0;;;12677:21:1;12734:2;12714:18;;;12707:30;-1:-1:-1;;;12753:18:1;;;12746:54;12817:18;;8071:60:0;12493:348:1;8071:60:0;8142:6;:13;;-1:-1:-1;;;;;8142:13:0;;;-1:-1:-1;;;;;;8142:13:0;;;;;;;;8166:9;:19;;;;;;;;;;;;;;8142:6;8207:13;;;:5;:13;;;;;;;8243:16;;;;;;8207:13;;;;;8243:16;;;8291:146;;;;8326:9;:7;:9::i;:::-;8322:13;;8291:146;;;8369:5;8366:71;;;8394:8;:6;:8::i;8366:71::-;8424:13;:11;:13::i;:::-;8420:17;;8366:71;8462:19;;-1:-1:-1;;;;;8454:27:0;;;8462:19;;8454:27;;;;8453:44;;-1:-1:-1;8486:10:0;;-1:-1:-1;;;8486:10:0;;;;8485:11;8453:44;:76;;;;-1:-1:-1;8501:27:0;;-1:-1:-1;;;8501:27:0;;;;8500:28;8453:76;8450:119;;;8544:25;8563:5;8544:18;:25::i;:::-;8640:20;8661:35;8675:6;8683:3;8688:7;;8661:13;:35::i;:::-;8640:56;;8804:18;8823:53;8837:6;8845:3;8863:12;;8850;;:25;;;;:::i;:::-;8823:13;:53::i;:::-;8804:72;-1:-1:-1;8940:16:0;8965:31;8804:72;8965:15;:31;:::i;:::-;8957:40;;:6;:40;:::i;:::-;-1:-1:-1;;;;;9010:17:0;;;;;;:9;:17;;;;;:25;;8940:57;;-1:-1:-1;9029:6:0;;9010:17;;;:25;;9029:6;;9010:25;:::i;:::-;;;;-1:-1:-1;;9120:4:0;9102:24;;;;:9;:24;;;;;:41;;9130:13;;9102:24;:41;;9130:13;;9102:41;:::i;:::-;;;;;;;;9198:15;9178:18;;:35;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;9224:20:0;;;;;;:9;:20;;;;;:33;;9246:11;;9224:20;:33;;9246:11;;9224:33;:::i;:::-;;;;;;;;9299:9;-1:-1:-1;;;;;9283:38:0;9292:6;-1:-1:-1;;;;;9283:38:0;;9309:11;9283:38;;;;1361:25:1;;1349:2;1334:18;;1215:177;9283:38:0;;;;;;;;8011:1318;;;;;;;7932:1397;;;:::o;14512:474::-;14602:14;;14570:56;;14587:4;;-1:-1:-1;;;;;14602:14:0;14619:6;14570:8;:56::i;:::-;14661:16;;;14675:1;14661:16;;;;;;;;14637:21;;14661:16;;;;;;;;;;-1:-1:-1;14661:16:0;14637:40;;14706:4;14688;14693:1;14688:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14688:23:0;;;:7;;;;;;;;;;:23;;;;14732:14;;:21;;;-1:-1:-1;;;14732:21:0;;;;:14;;;;;:19;;:21;;;;;14688:7;;14732:21;;;;;:14;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14722:4;14727:1;14722:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14722:31:0;;;:7;;;;;;;;;:31;14770:14;;:190;;-1:-1:-1;;;14770:190:0;;:14;;;:65;;:190;;14850:6;;14770:14;;14887:4;;14914;;14934:15;;14770:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14559:427;14512:474;:::o;15796:353::-;15904:14;;15872:61;;15889:4;;-1:-1:-1;;;;;15904:14:0;15921:11;15872:8;:61::i;:::-;15944:14;;-1:-1:-1;;;;;15944:14:0;:30;15982:9;16015:4;16035:11;15944:14;;16093:7;2312;2339:6;-1:-1:-1;;;;;2339:6:0;;2274:79;16093:7;15944:197;;;;;;-1:-1:-1;;;;;;15944:197:0;;;-1:-1:-1;;;;;14710:15:1;;;15944:197:0;;;14692:34:1;14742:18;;;14735:34;;;;14785:18;;;14778:34;;;;14828:18;;;14821:34;14892:15;;;14871:19;;;14864:44;16115:15:0;14924:19:1;;;14917:35;14626:19;;15944:197:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15796:353;;:::o;15201:289::-;15338:6;;-1:-1:-1;;;;;15338:6:0;15242:4;15314:31;;;:23;:31;;;;;;15268:15;;15359:17;;;:60;;-1:-1:-1;15394:15:0;;:25;;15410:9;15394:25;:::i;:::-;15378:14;:41;;15359:60;:82;;;;15437:4;15421:14;:20;15359:82;15356:101;;;15450:7;;15443:14;;;;15201:289;:::o;15356:101::-;16177:3;15468:14;;;;15201:289;:::o;14996:199::-;15074:9;;-1:-1:-1;;;;;15074:9:0;15031:4;15050:34;;;:23;:34;;;;;;:37;;15047:117;;15126:9;;-1:-1:-1;;;;;15126:9:0;15102:34;;;;:23;:34;;;;;15137:15;15102:50;;15047:117;-1:-1:-1;15181:6:0;;;14996:199::o;15496:288::-;15638:6;;-1:-1:-1;;;;;15638:6:0;15541:4;15614:31;;;:23;:31;;;;;;15568:15;;15659:17;;;:39;;;15694:4;15678:14;:20;15659:39;:82;;;-1:-1:-1;15716:15:0;;:25;;15732:9;15716:25;:::i;:::-;15700:14;:41;;15659:82;15656:105;;;15750:11;;15743:18;;;;15496:288;:::o;9384:176::-;9469:4;9520:31;4783:4;;9520:31;:::i;:::-;9505:10;9494;9501:3;9494:6;:10;:::i;:::-;:21;;;;:::i;:::-;9493:59;;;;:::i;:::-;9486:66;9384:176;-1:-1:-1;;;;9384:176:0:o;14:548: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;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:523::-;1962:6;1970;1978;1986;1994;2002;2055:3;2043:9;2034:7;2030:23;2026:33;2023:53;;;2072:1;2069;2062:12;2023:53;-1:-1:-1;;2095:23:1;;;2165:2;2150:18;;2137:32;;-1:-1:-1;2216:2:1;2201:18;;2188:32;;2267:2;2252:18;;2239:32;;-1:-1:-1;2318:3:1;2303:19;;2290:33;;-1:-1:-1;2370:3:1;2355:19;2342:33;;-1:-1:-1;1858:523:1;-1:-1:-1;1858:523:1:o;2575:160::-;2640:20;;2696:13;;2689:21;2679:32;;2669:60;;2725:1;2722;2715:12;2669:60;2575:160;;;:::o;2740:315::-;2805:6;2813;2866:2;2854:9;2845:7;2841:23;2837:32;2834:52;;;2882:1;2879;2872:12;2834:52;2921:9;2908:23;2940:31;2965:5;2940:31;:::i;:::-;2990:5;-1:-1:-1;3014:35:1;3045:2;3030:18;;3014:35;:::i;:::-;3004:45;;2740:315;;;;;:::o;3060:180::-;3119:6;3172:2;3160:9;3151:7;3147:23;3143:32;3140:52;;;3188:1;3185;3178:12;3140:52;-1:-1:-1;3211:23:1;;3060:180;-1:-1:-1;3060:180:1:o;3245:247::-;3304:6;3357:2;3345:9;3336:7;3332:23;3328:32;3325:52;;;3373:1;3370;3363:12;3325:52;3412:9;3399:23;3431:31;3456:5;3431:31;:::i;:::-;3481:5;3245:247;-1:-1:-1;;;3245:247:1:o;3705:180::-;3761:6;3814:2;3802:9;3793:7;3789:23;3785:32;3782:52;;;3830:1;3827;3820:12;3782:52;3853:26;3869:9;3853:26;:::i;3890:388::-;3958:6;3966;4019:2;4007:9;3998:7;3994:23;3990:32;3987:52;;;4035:1;4032;4025:12;3987:52;4074:9;4061:23;4093:31;4118:5;4093:31;:::i;:::-;4143:5;-1:-1:-1;4200:2:1;4185:18;;4172:32;4213:33;4172:32;4213:33;:::i;:::-;4265:7;4255:17;;;3890:388;;;;;:::o;4283:127::-;4344:10;4339:3;4335:20;4332:1;4325:31;4375:4;4372:1;4365:15;4399:4;4396:1;4389:15;4415:422;4504:1;4547:5;4504:1;4561:270;4582:7;4572:8;4569:21;4561:270;;;4641:4;4637:1;4633:6;4629:17;4623:4;4620:27;4617:53;;;4650:18;;:::i;:::-;4700:7;4690:8;4686:22;4683:55;;;4720:16;;;;4683:55;4799:22;;;;4759:15;;;;4561:270;;;4565:3;4415:422;;;;;:::o;4842:806::-;4891:5;4921:8;4911:80;;-1:-1:-1;4962:1:1;4976:5;;4911:80;5010:4;5000:76;;-1:-1:-1;5047:1:1;5061:5;;5000:76;5092:4;5110:1;5105:59;;;;5178:1;5173:130;;;;5085:218;;5105:59;5135:1;5126:10;;5149:5;;;5173:130;5210:3;5200:8;5197:17;5194:43;;;5217:18;;:::i;:::-;-1:-1:-1;;5273:1:1;5259:16;;5288:5;;5085:218;;5387:2;5377:8;5374:16;5368:3;5362:4;5359:13;5355:36;5349:2;5339:8;5336:16;5331:2;5325:4;5322:12;5318:35;5315:77;5312:159;;;-1:-1:-1;5424:19:1;;;5456:5;;5312:159;5503:34;5528:8;5522:4;5503:34;:::i;:::-;5573:6;5569:1;5565:6;5561:19;5552:7;5549:32;5546:58;;;5584:18;;:::i;:::-;5622:20;;4842:806;-1:-1:-1;;;4842:806:1:o;5653:140::-;5711:5;5740:47;5781:4;5771:8;5767:19;5761:4;5740:47;:::i;5798:168::-;5871:9;;;5902;;5919:15;;;5913:22;;5899:37;5889:71;;5940:18;;:::i;6320:128::-;6387:9;;;6408:11;;;6405:37;;;6422:18;;:::i;6453:348::-;6655:2;6637:21;;;6694:2;6674:18;;;6667:30;6733:26;6728:2;6713:18;;6706:54;6792:2;6777:18;;6453:348::o;6806:217::-;6846:1;6872;6862:132;;6916:10;6911:3;6907:20;6904:1;6897:31;6951:4;6948:1;6941:15;6979:4;6976:1;6969:15;6862:132;-1:-1:-1;7008:9:1;;6806:217::o;7375:125::-;7440:9;;;7461:10;;;7458:36;;;7474:18;;:::i;8796:356::-;8998:2;8980:21;;;9017:18;;;9010:30;9076:34;9071:2;9056:18;;9049:62;9143:2;9128:18;;8796:356::o;12978:127::-;13039:10;13034:3;13030:20;13027:1;13020:31;13070:4;13067:1;13060:15;13094:4;13091:1;13084:15;13110:251;13180:6;13233:2;13221:9;13212:7;13208:23;13204:32;13201:52;;;13249:1;13246;13239:12;13201:52;13281:9;13275:16;13300:31;13325:5;13300:31;:::i;13366:980::-;13628:4;13676:3;13665:9;13661:19;13707:6;13696:9;13689:25;13733:2;13771:6;13766:2;13755:9;13751:18;13744:34;13814:3;13809:2;13798:9;13794:18;13787:31;13838:6;13873;13867:13;13904:6;13896;13889:22;13942:3;13931:9;13927:19;13920:26;;13981:2;13973:6;13969:15;13955:29;;14002:1;14012:195;14026:6;14023:1;14020:13;14012:195;;;14091:13;;-1:-1:-1;;;;;14087:39:1;14075:52;;14182:15;;;;14147:12;;;;14123:1;14041:9;14012:195;;;-1:-1:-1;;;;;;;14263:32:1;;;;14258:2;14243:18;;14236:60;-1:-1:-1;;;14327:3:1;14312:19;14305:35;14224:3;13366:980;-1:-1:-1;;;13366:980:1:o;14963:306::-;15051:6;15059;15067;15120:2;15108:9;15099:7;15095:23;15091:32;15088:52;;;15136:1;15133;15126:12;15088:52;15165:9;15159:16;15149:26;;15215:2;15204:9;15200:18;15194:25;15184:35;;15259:2;15248:9;15244:18;15238:25;15228:35;;14963:306;;;;;:::o

Swarm Source

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