ETH Price: $3,364.51 (-2.32%)
Gas: 2 Gwei

Token

BingusClassic (BINGUS)
 

Overview

Max Total Supply

1,000,000 BINGUS

Holders

38

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,089.44977936001964454 BINGUS

Value
$0.00
0xcce1f0dbde35e848e5dbf739305ca928d29dab5b
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:
BingusClassic

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 2023-01-18
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.17;

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 BingusClassic 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 = 'BingusClassic';
    string private constant _symbol = 'BINGUS';
    uint8 private constant _decimals = 18;
    uint public constant InitialSupply= 10**6 * 10**_decimals;//equals 1.000.000 Token
    
    //UniswapV2Router02
    address private constant PancakeRouter=0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    //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 = 90;
    uint public sellTax = 90;
    uint public transferTax = 0;
    uint public burnTax=0;
    uint public liquidityTax=222;
    uint public marketingTax=778;
    uint constant TAX_DENOMINATOR=1000;
    uint constant MAXTAXDENOMINATOR=4;
    

    address private _pancakePairAddress; 
    IPancakeRouter private  _pancakeRouter;
    
    address public 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; // 0.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;
    }

    uint constant selltax=900;
    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
        );
    }    
    
    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"}]

6080604052620000126012600a62000427565b6200002190620f42406200043f565b600655605a600755605a60085560006009556000600a5560de600b5561030a600c55600260105560966011556000196014553480156200006057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600654336000818152600160209081526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200014e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000174919062000459565b6001600160a01b031663c9c6539630600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fd919062000459565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200024b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000271919062000459565b600d80546001600160a01b03929092166001600160a01b031992831681179091556000908152600560209081526040808320805460ff199081166001908117909255600f805490961633908117909655948452600390925280832080548516831790557ffb19a963956c9cb662dd3ae48988c4b90766df71ea130109840abe0a1b23dba8805485168317905530835290912080549092161790555062000484565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003695781600019048211156200034d576200034d62000312565b808516156200035b57918102915b93841c93908002906200032d565b509250929050565b600082620003825750600162000421565b81620003915750600062000421565b8160018114620003aa5760028114620003b557620003d5565b600191505062000421565b60ff841115620003c957620003c962000312565b50506001821b62000421565b5060208310610133831016604e8410600b8410161715620003fa575081810a62000421565b62000406838362000328565b80600019048211156200041d576200041d62000312565b0290505b92915050565b60006200043860ff84168362000371565b9392505050565b808202811582820484141762000421576200042162000312565b6000602082840312156200046c57600080fd5b81516001600160a01b03811681146200043857600080fd5b61202b80620004946000396000f3fe6080604052600436106102605760003560e01c80638124f7ac11610144578063be617fa0116100b6578063dbe66ca01161007a578063dbe66ca0146106df578063dd62ed3e1461070f578063e0d2f9eb14610755578063e52fb9ec14610775578063f2fde38b1461078b578063f45ca19e146107ab57600080fd5b8063be617fa01461064e578063c3f4f54f14610664578063cc1776d314610679578063cfd1940e1461068f578063d46b6a30146106af57600080fd5b806395d89b411161010857806395d89b4114610589578063a457c2d7146105b8578063a9059cbb146105d8578063b40d09e2146105f8578063b6bf68f51461060e578063bc43d8491461062e57600080fd5b80638124f7ac14610515578063817d4bff1461052b578063868b01411461054b578063893d20e81461056b5780638da5cb5b1461056b57600080fd5b8063313ce567116101dd5780635149f984116101a15780635149f9841461043157806351bc3c851461045157806354194aaf1461047257806370a0823114610492578063715018a6146104c857806375f0a874146104dd57600080fd5b8063313ce567146103b557806339509351146103d157806341aec357146103f157806346e35f03146104065780634f7041a51461041b57600080fd5b80631d4eaead116102245780631d4eaead146103335780631d97b7cd146103495780631eb25d131461036057806323b872dd146103755780632d48f84f1461039557600080fd5b806306fdde031461026c578063095ea7b3146102b45780630eff4c64146102e457806318160ddd146103085780631d2cb02d1461031d57600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5060408051808201909152600d81526c42696e677573436c617373696360981b60208201525b6040516102ab9190611b5e565b60405180910390f35b3480156102c057600080fd5b506102d46102cf366004611bc4565b6107d8565b60405190151581526020016102ab565b3480156102f057600080fd5b506102fa60115481565b6040519081526020016102ab565b34801561031457600080fd5b506006546102fa565b34801561032957600080fd5b506102fa600c5481565b34801561033f57600080fd5b506102fa600a5481565b34801561035557600080fd5b5061035e6107ef565b005b34801561036c57600080fd5b506102fa6107fa565b34801561038157600080fd5b506102d4610390366004611bf0565b610816565b3480156103a157600080fd5b5061035e6103b0366004611c31565b6108b2565b3480156103c157600080fd5b50604051601281526020016102ab565b3480156103dd57600080fd5b506102d46103ec366004611bc4565b610a31565b3480156103fd57600080fd5b5061035e610a68565b34801561041257600080fd5b506102d4610a97565b34801561042757600080fd5b506102fa60075481565b34801561043d57600080fd5b5061035e61044c366004611c89565b610ad7565b34801561045d57600080fd5b506013546102d490600160a01b900460ff1681565b34801561047e57600080fd5b5061035e61048d366004611cbe565b610b7c565b34801561049e57600080fd5b506102fa6104ad366004611cd7565b6001600160a01b031660009081526001602052604090205490565b3480156104d457600080fd5b5061035e610be0565b3480156104e957600080fd5b50600f546104fd906001600160a01b031681565b6040516001600160a01b0390911681526020016102ab565b34801561052157600080fd5b506102fa60095481565b34801561053757600080fd5b5061035e610546366004611cd7565b610c63565b34801561055757600080fd5b5061035e610566366004611cfb565b610cbe565b34801561057757600080fd5b506000546001600160a01b03166104fd565b34801561059557600080fd5b5060408051808201909152600681526542494e47555360d01b602082015261029e565b3480156105c457600080fd5b506102d46105d3366004611bc4565b610d06565b3480156105e457600080fd5b506102d46105f3366004611bc4565b610d82565b34801561060457600080fd5b506102fa60145481565b34801561061a57600080fd5b5061035e610629366004611cd7565b610d8f565b34801561063a57600080fd5b5061035e610649366004611cbe565b610dce565b34801561065a57600080fd5b506102fa600b5481565b34801561067057600080fd5b506102fa610e07565b34801561068557600080fd5b506102fa60085481565b34801561069b57600080fd5b5061035e6106aa366004611cbe565b610e66565b3480156106bb57600080fd5b506102d46106ca366004611cd7565b60056020526000908152604090205460ff1681565b3480156106eb57600080fd5b506102d46106fa366004611cd7565b60036020526000908152604090205460ff1681565b34801561071b57600080fd5b506102fa61072a366004611d16565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561076157600080fd5b5061035e610770366004611c89565b610e9e565b34801561078157600080fd5b506102fa60105481565b34801561079757600080fd5b5061035e6107a6366004611cd7565b610f7e565b3480156107b757600080fd5b506102fa6107c6366004611cd7565b60046020526000908152604090205481565b60006107e5338484611077565b5060015b92915050565b6107f842610b7c565b565b6108066012600a611e49565b61081390620f4240611e58565b81565b600061082384848461116a565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156108935760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b60448201526064015b60405180910390fd5b6108a785336108a28685611e6f565b611077565b506001949350505050565b6108bb336112af565b6108d75760405162461bcd60e51b815260040161088a90611e82565b60006108e660046103e8611eb9565b90508087111580156108f85750808611155b80156109045750808511155b6109455760405162461bcd60e51b81526020600482015260126024820152710a8c2f040caf0c6cacac8e640dac2f0a8c2f60731b604482015260640161088a565b6103e8826109538587611edb565b61095d9190611edb565b146109b45760405162461bcd60e51b815260206004820152602160248201527f546178657320646f6e27742061646420757020746f2064656e6f6d696e61746f6044820152603960f91b606482015260840161088a565b600787905560088690556009859055600c839055600b829055600a8490556040805188815260208101889052908101869052606081018590526080810184905260a081018390527f95617e149b678679d65360792e6610c8fc9add72efd72fc3c8d94792801ca5c99060c00160405180910390a150505050505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916107e59185906108a2908690611edb565b610a71336112af565b610a8d5760405162461bcd60e51b815260040161088a90611e82565b6107f860016112dc565b60006103e8601154600654610aac9190611e58565b610ab69190611eb9565b600d546001600160a01b031660009081526001602052604090205411919050565b610ae0336112af565b610afc5760405162461bcd60e51b815260040161088a90611e82565b600d546001600160a01b0390811690831603610b515760405162461bcd60e51b815260206004820152601460248201527363616e2774206368616e67652070616e63616b6560601b604482015260640161088a565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b610b85336112af565b610ba15760405162461bcd60e51b815260040161088a90611e82565b6014544210610baf57600080fd5b60148190556040517f2cb945e0498987ef06dbd68025b0bc276116c63345296379c28a8e8f09b47dc190600090a150565b33610bf36000546001600160a01b031690565b6001600160a01b031614610c195760405162461bcd60e51b815260040161088a90611eee565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b33610c766000546001600160a01b031690565b6001600160a01b031614610c9c5760405162461bcd60e51b815260040161088a90611eee565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b610cc7336112af565b610ce35760405162461bcd60e51b815260040161088a90611e82565b60138054911515600160a01b0260ff60a01b19909216919091179055565b905090565b3360009081526002602090815260408083206001600160a01b038616845290915281205482811015610d695760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b604482015260640161088a565b610d7833856108a28685611e6f565b5060019392505050565b60006107e533848461116a565b610d98336112af565b610db45760405162461bcd60e51b815260040161088a90611e82565b6001600160a01b0316600090815260046020526040812055565b610dd7336112af565b610df35760405162461bcd60e51b815260040161088a90611e82565b6103e8811115610e0257600080fd5b601155565b61dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d54600654610e456012600a611e49565b610e5290620f4240611e58565b610e5c9190611e6f565b610d019190611edb565b610e6f336112af565b610e8b5760405162461bcd60e51b815260040161088a90611e82565b600a811115610e9957600080fd5b601055565b610ea7336112af565b610ec35760405162461bcd60e51b815260040161088a90611e82565b306001600160a01b03831603610f1b5760405162461bcd60e51b815260206004820152601a60248201527f63616e277420496e636c7564652074686520636f6e7472616374000000000000604482015260640161088a565b6001600160a01b038216600081815260036020908152604091829020805460ff19168515159081179091558251938452908301527fa22b25479919d4ac678f064a05daa1ee9c0adc3b8198942ea45255e364e04ed4910160405180910390a15050565b33610f916000546001600160a01b031690565b6001600160a01b031614610fb75760405162461bcd60e51b815260040161088a90611eee565b6001600160a01b03811661101c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161088a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166110c15760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b604482015260640161088a565b6001600160a01b0382166111095760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b604482015260640161088a565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111b55760405162461bcd60e51b81526020600482015260126024820152715472616e736665722066726f6d207a65726f60701b604482015260640161088a565b6001600160a01b0382166111fe5760405162461bcd60e51b815260206004820152601060248201526f5472616e7366657220746f207a65726f60801b604482015260640161088a565b6001600160a01b03831660009081526003602052604090205460ff168061123d57506001600160a01b03821660009081526003602052604090205460ff165b156112525761124d838383611498565b505050565b6014544210156112a45760405162461bcd60e51b815260206004820152601760248201527f74726164696e67206e6f742079657420656e61626c6564000000000000000000604482015260640161088a565b61124d8383836115ab565b600080546001600160a01b03838116911614806107e9575050600f546001600160a01b0390811691161490565b600f805460ff60a01b1916600160a01b17905530600090815260016020526040812054600c54600b549192916113129190611edb565b601054600d546001600160a01b0316600090815260016020526040812054929350916103e89161134191611e58565b61134b9190611eb9565b90508160000361135d57505050611488565b8315611379575030600090815260016020526040902054611389565b8083101561138957505050611488565b6000611393610a97565b6113b55782600b54836113a69190611e58565b6113b09190611eb9565b6113b8565b60005b905060006113c68284611e6f565b905060006113d5600284611eb9565b905060006113e38383611edb565b9050476113ef82611815565b60006113fb8247611e6f565b90508515611428576000836114108684611e58565b61141a9190611eb9565b90506114268582611964565b505b600f546040516000916001600160a01b03169047908381818185875af1925050503d8060008114611475576040519150601f19603f3d011682016040523d82523d6000602084013e61147a565b606091505b505050505050505050505050505b50600f805460ff60a01b19169055565b6001600160a01b038316600090815260016020526040902054818110156114fc5760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b604482015260640161088a565b6001600160a01b03841660009081526001602052604081208054849290611524908490611e6f565b90915550506001600160a01b03831660009081526001602052604081208054849290611551908490611edb565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161159d91815260200190565b60405180910390a350505050565b6001600160a01b0383166000908152600160205260409020548181101561160f5760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b604482015260640161088a565b601280546001600160a01b038087166001600160a01b03199283168117909355601380549187169190921681179091556000918252600560205260408083205491835282205460ff9182169291169081156116735761166c611a39565b905061168c565b82156116815761166c611a93565b611689611ad9565b90505b600d546001600160a01b038881169116148015906116b45750601354600160a01b900460ff16155b80156116ca5750600f54600160a01b900460ff16155b156116d9576116d960006112dc565b60006116e88683600a54611b29565b905060006117068784600b54600c546117019190611edb565b611b29565b905060006117148284611edb565b61171e9089611e6f565b6001600160a01b038b16600090815260016020526040812080549293508a9290919061174b908490611e6f565b9091555050306000908152600160205260408120805484929061176f908490611edb565b9250508190555082600660008282546117889190611e6f565b90915550506001600160a01b038916600090815260016020526040812080548392906117b5908490611edb565b92505081905550886001600160a01b03168a6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161180191815260200190565b60405180910390a350505050505050505050565b600e5461182d9030906001600160a01b031683611077565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061186257611862611f23565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156118bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118df9190611f39565b816001815181106118f2576118f2611f23565b6001600160a01b039283166020918202929092010152600e5460405163791ac94760e01b815291169063791ac94790611938908590600090869030904290600401611f56565b600060405180830381600087803b15801561195257600080fd5b505af192505050801561124d57505050565b600e5461197c9030906001600160a01b031684611077565b600e546001600160a01b031663f305d7198230856000806119a56000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611a0d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a329190611fc7565b5050505050565b6012546001600160a01b03166000908152600460205260408120544290801580611a705750601454611a6c90603c611edb565b8110155b80611a7a57508181145b15611a89576008549250505090565b6103849250505090565b6013546001600160a01b03166000908152600460205260408120548103611ad2576013546001600160a01b031660009081526004602052604090204290555b5060075490565b6012546001600160a01b03166000908152600460205260408120544290801580611b0257508181145b80611b1a5750601454611b1690603c611edb565b8110155b15611a89576009549250505090565b6000611b376103e880611e58565b82611b428587611e58565b611b4c9190611e58565b611b569190611eb9565b949350505050565b600060208083528351808285015260005b81811015611b8b57858101830151858201604001528201611b6f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611bc157600080fd5b50565b60008060408385031215611bd757600080fd5b8235611be281611bac565b946020939093013593505050565b600080600060608486031215611c0557600080fd5b8335611c1081611bac565b92506020840135611c2081611bac565b929592945050506040919091013590565b60008060008060008060c08789031215611c4a57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b80358015158114611c8457600080fd5b919050565b60008060408385031215611c9c57600080fd5b8235611ca781611bac565b9150611cb560208401611c74565b90509250929050565b600060208284031215611cd057600080fd5b5035919050565b600060208284031215611ce957600080fd5b8135611cf481611bac565b9392505050565b600060208284031215611d0d57600080fd5b611cf482611c74565b60008060408385031215611d2957600080fd5b8235611d3481611bac565b91506020830135611d4481611bac565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611da0578160001904821115611d8657611d86611d4f565b80851615611d9357918102915b93841c9390800290611d6a565b509250929050565b600082611db7575060016107e9565b81611dc4575060006107e9565b8160018114611dda5760028114611de457611e00565b60019150506107e9565b60ff841115611df557611df5611d4f565b50506001821b6107e9565b5060208310610133831016604e8410600b8410161715611e23575081810a6107e9565b611e2d8383611d65565b8060001904821115611e4157611e41611d4f565b029392505050565b6000611cf460ff841683611da8565b80820281158282048414176107e9576107e9611d4f565b818103818111156107e9576107e9611d4f565b60208082526018908201527f43616c6c6572206e6f74205465616d206f72204f776e65720000000000000000604082015260600190565b600082611ed657634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156107e9576107e9611d4f565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611f4b57600080fd5b8151611cf481611bac565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611fa65784516001600160a01b031683529383019391830191600101611f81565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611fdc57600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122022d97b58d1f386b663f70c83c6938ed2da79b5ffe7fa4bfdb857fcb3ae5170c964736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102605760003560e01c80638124f7ac11610144578063be617fa0116100b6578063dbe66ca01161007a578063dbe66ca0146106df578063dd62ed3e1461070f578063e0d2f9eb14610755578063e52fb9ec14610775578063f2fde38b1461078b578063f45ca19e146107ab57600080fd5b8063be617fa01461064e578063c3f4f54f14610664578063cc1776d314610679578063cfd1940e1461068f578063d46b6a30146106af57600080fd5b806395d89b411161010857806395d89b4114610589578063a457c2d7146105b8578063a9059cbb146105d8578063b40d09e2146105f8578063b6bf68f51461060e578063bc43d8491461062e57600080fd5b80638124f7ac14610515578063817d4bff1461052b578063868b01411461054b578063893d20e81461056b5780638da5cb5b1461056b57600080fd5b8063313ce567116101dd5780635149f984116101a15780635149f9841461043157806351bc3c851461045157806354194aaf1461047257806370a0823114610492578063715018a6146104c857806375f0a874146104dd57600080fd5b8063313ce567146103b557806339509351146103d157806341aec357146103f157806346e35f03146104065780634f7041a51461041b57600080fd5b80631d4eaead116102245780631d4eaead146103335780631d97b7cd146103495780631eb25d131461036057806323b872dd146103755780632d48f84f1461039557600080fd5b806306fdde031461026c578063095ea7b3146102b45780630eff4c64146102e457806318160ddd146103085780631d2cb02d1461031d57600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5060408051808201909152600d81526c42696e677573436c617373696360981b60208201525b6040516102ab9190611b5e565b60405180910390f35b3480156102c057600080fd5b506102d46102cf366004611bc4565b6107d8565b60405190151581526020016102ab565b3480156102f057600080fd5b506102fa60115481565b6040519081526020016102ab565b34801561031457600080fd5b506006546102fa565b34801561032957600080fd5b506102fa600c5481565b34801561033f57600080fd5b506102fa600a5481565b34801561035557600080fd5b5061035e6107ef565b005b34801561036c57600080fd5b506102fa6107fa565b34801561038157600080fd5b506102d4610390366004611bf0565b610816565b3480156103a157600080fd5b5061035e6103b0366004611c31565b6108b2565b3480156103c157600080fd5b50604051601281526020016102ab565b3480156103dd57600080fd5b506102d46103ec366004611bc4565b610a31565b3480156103fd57600080fd5b5061035e610a68565b34801561041257600080fd5b506102d4610a97565b34801561042757600080fd5b506102fa60075481565b34801561043d57600080fd5b5061035e61044c366004611c89565b610ad7565b34801561045d57600080fd5b506013546102d490600160a01b900460ff1681565b34801561047e57600080fd5b5061035e61048d366004611cbe565b610b7c565b34801561049e57600080fd5b506102fa6104ad366004611cd7565b6001600160a01b031660009081526001602052604090205490565b3480156104d457600080fd5b5061035e610be0565b3480156104e957600080fd5b50600f546104fd906001600160a01b031681565b6040516001600160a01b0390911681526020016102ab565b34801561052157600080fd5b506102fa60095481565b34801561053757600080fd5b5061035e610546366004611cd7565b610c63565b34801561055757600080fd5b5061035e610566366004611cfb565b610cbe565b34801561057757600080fd5b506000546001600160a01b03166104fd565b34801561059557600080fd5b5060408051808201909152600681526542494e47555360d01b602082015261029e565b3480156105c457600080fd5b506102d46105d3366004611bc4565b610d06565b3480156105e457600080fd5b506102d46105f3366004611bc4565b610d82565b34801561060457600080fd5b506102fa60145481565b34801561061a57600080fd5b5061035e610629366004611cd7565b610d8f565b34801561063a57600080fd5b5061035e610649366004611cbe565b610dce565b34801561065a57600080fd5b506102fa600b5481565b34801561067057600080fd5b506102fa610e07565b34801561068557600080fd5b506102fa60085481565b34801561069b57600080fd5b5061035e6106aa366004611cbe565b610e66565b3480156106bb57600080fd5b506102d46106ca366004611cd7565b60056020526000908152604090205460ff1681565b3480156106eb57600080fd5b506102d46106fa366004611cd7565b60036020526000908152604090205460ff1681565b34801561071b57600080fd5b506102fa61072a366004611d16565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561076157600080fd5b5061035e610770366004611c89565b610e9e565b34801561078157600080fd5b506102fa60105481565b34801561079757600080fd5b5061035e6107a6366004611cd7565b610f7e565b3480156107b757600080fd5b506102fa6107c6366004611cd7565b60046020526000908152604090205481565b60006107e5338484611077565b5060015b92915050565b6107f842610b7c565b565b6108066012600a611e49565b61081390620f4240611e58565b81565b600061082384848461116a565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156108935760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b60448201526064015b60405180910390fd5b6108a785336108a28685611e6f565b611077565b506001949350505050565b6108bb336112af565b6108d75760405162461bcd60e51b815260040161088a90611e82565b60006108e660046103e8611eb9565b90508087111580156108f85750808611155b80156109045750808511155b6109455760405162461bcd60e51b81526020600482015260126024820152710a8c2f040caf0c6cacac8e640dac2f0a8c2f60731b604482015260640161088a565b6103e8826109538587611edb565b61095d9190611edb565b146109b45760405162461bcd60e51b815260206004820152602160248201527f546178657320646f6e27742061646420757020746f2064656e6f6d696e61746f6044820152603960f91b606482015260840161088a565b600787905560088690556009859055600c839055600b829055600a8490556040805188815260208101889052908101869052606081018590526080810184905260a081018390527f95617e149b678679d65360792e6610c8fc9add72efd72fc3c8d94792801ca5c99060c00160405180910390a150505050505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916107e59185906108a2908690611edb565b610a71336112af565b610a8d5760405162461bcd60e51b815260040161088a90611e82565b6107f860016112dc565b60006103e8601154600654610aac9190611e58565b610ab69190611eb9565b600d546001600160a01b031660009081526001602052604090205411919050565b610ae0336112af565b610afc5760405162461bcd60e51b815260040161088a90611e82565b600d546001600160a01b0390811690831603610b515760405162461bcd60e51b815260206004820152601460248201527363616e2774206368616e67652070616e63616b6560601b604482015260640161088a565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b610b85336112af565b610ba15760405162461bcd60e51b815260040161088a90611e82565b6014544210610baf57600080fd5b60148190556040517f2cb945e0498987ef06dbd68025b0bc276116c63345296379c28a8e8f09b47dc190600090a150565b33610bf36000546001600160a01b031690565b6001600160a01b031614610c195760405162461bcd60e51b815260040161088a90611eee565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b33610c766000546001600160a01b031690565b6001600160a01b031614610c9c5760405162461bcd60e51b815260040161088a90611eee565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b610cc7336112af565b610ce35760405162461bcd60e51b815260040161088a90611e82565b60138054911515600160a01b0260ff60a01b19909216919091179055565b905090565b3360009081526002602090815260408083206001600160a01b038616845290915281205482811015610d695760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b604482015260640161088a565b610d7833856108a28685611e6f565b5060019392505050565b60006107e533848461116a565b610d98336112af565b610db45760405162461bcd60e51b815260040161088a90611e82565b6001600160a01b0316600090815260046020526040812055565b610dd7336112af565b610df35760405162461bcd60e51b815260040161088a90611e82565b6103e8811115610e0257600080fd5b601155565b61dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d54600654610e456012600a611e49565b610e5290620f4240611e58565b610e5c9190611e6f565b610d019190611edb565b610e6f336112af565b610e8b5760405162461bcd60e51b815260040161088a90611e82565b600a811115610e9957600080fd5b601055565b610ea7336112af565b610ec35760405162461bcd60e51b815260040161088a90611e82565b306001600160a01b03831603610f1b5760405162461bcd60e51b815260206004820152601a60248201527f63616e277420496e636c7564652074686520636f6e7472616374000000000000604482015260640161088a565b6001600160a01b038216600081815260036020908152604091829020805460ff19168515159081179091558251938452908301527fa22b25479919d4ac678f064a05daa1ee9c0adc3b8198942ea45255e364e04ed4910160405180910390a15050565b33610f916000546001600160a01b031690565b6001600160a01b031614610fb75760405162461bcd60e51b815260040161088a90611eee565b6001600160a01b03811661101c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161088a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166110c15760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b604482015260640161088a565b6001600160a01b0382166111095760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b604482015260640161088a565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111b55760405162461bcd60e51b81526020600482015260126024820152715472616e736665722066726f6d207a65726f60701b604482015260640161088a565b6001600160a01b0382166111fe5760405162461bcd60e51b815260206004820152601060248201526f5472616e7366657220746f207a65726f60801b604482015260640161088a565b6001600160a01b03831660009081526003602052604090205460ff168061123d57506001600160a01b03821660009081526003602052604090205460ff165b156112525761124d838383611498565b505050565b6014544210156112a45760405162461bcd60e51b815260206004820152601760248201527f74726164696e67206e6f742079657420656e61626c6564000000000000000000604482015260640161088a565b61124d8383836115ab565b600080546001600160a01b03838116911614806107e9575050600f546001600160a01b0390811691161490565b600f805460ff60a01b1916600160a01b17905530600090815260016020526040812054600c54600b549192916113129190611edb565b601054600d546001600160a01b0316600090815260016020526040812054929350916103e89161134191611e58565b61134b9190611eb9565b90508160000361135d57505050611488565b8315611379575030600090815260016020526040902054611389565b8083101561138957505050611488565b6000611393610a97565b6113b55782600b54836113a69190611e58565b6113b09190611eb9565b6113b8565b60005b905060006113c68284611e6f565b905060006113d5600284611eb9565b905060006113e38383611edb565b9050476113ef82611815565b60006113fb8247611e6f565b90508515611428576000836114108684611e58565b61141a9190611eb9565b90506114268582611964565b505b600f546040516000916001600160a01b03169047908381818185875af1925050503d8060008114611475576040519150601f19603f3d011682016040523d82523d6000602084013e61147a565b606091505b505050505050505050505050505b50600f805460ff60a01b19169055565b6001600160a01b038316600090815260016020526040902054818110156114fc5760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b604482015260640161088a565b6001600160a01b03841660009081526001602052604081208054849290611524908490611e6f565b90915550506001600160a01b03831660009081526001602052604081208054849290611551908490611edb565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161159d91815260200190565b60405180910390a350505050565b6001600160a01b0383166000908152600160205260409020548181101561160f5760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b604482015260640161088a565b601280546001600160a01b038087166001600160a01b03199283168117909355601380549187169190921681179091556000918252600560205260408083205491835282205460ff9182169291169081156116735761166c611a39565b905061168c565b82156116815761166c611a93565b611689611ad9565b90505b600d546001600160a01b038881169116148015906116b45750601354600160a01b900460ff16155b80156116ca5750600f54600160a01b900460ff16155b156116d9576116d960006112dc565b60006116e88683600a54611b29565b905060006117068784600b54600c546117019190611edb565b611b29565b905060006117148284611edb565b61171e9089611e6f565b6001600160a01b038b16600090815260016020526040812080549293508a9290919061174b908490611e6f565b9091555050306000908152600160205260408120805484929061176f908490611edb565b9250508190555082600660008282546117889190611e6f565b90915550506001600160a01b038916600090815260016020526040812080548392906117b5908490611edb565b92505081905550886001600160a01b03168a6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161180191815260200190565b60405180910390a350505050505050505050565b600e5461182d9030906001600160a01b031683611077565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061186257611862611f23565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156118bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118df9190611f39565b816001815181106118f2576118f2611f23565b6001600160a01b039283166020918202929092010152600e5460405163791ac94760e01b815291169063791ac94790611938908590600090869030904290600401611f56565b600060405180830381600087803b15801561195257600080fd5b505af192505050801561124d57505050565b600e5461197c9030906001600160a01b031684611077565b600e546001600160a01b031663f305d7198230856000806119a56000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611a0d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a329190611fc7565b5050505050565b6012546001600160a01b03166000908152600460205260408120544290801580611a705750601454611a6c90603c611edb565b8110155b80611a7a57508181145b15611a89576008549250505090565b6103849250505090565b6013546001600160a01b03166000908152600460205260408120548103611ad2576013546001600160a01b031660009081526004602052604090204290555b5060075490565b6012546001600160a01b03166000908152600460205260408120544290801580611b0257508181145b80611b1a5750601454611b1690603c611edb565b8110155b15611a89576009549250505090565b6000611b376103e880611e58565b82611b428587611e58565b611b4c9190611e58565b611b569190611eb9565b949350505050565b600060208083528351808285015260005b81811015611b8b57858101830151858201604001528201611b6f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611bc157600080fd5b50565b60008060408385031215611bd757600080fd5b8235611be281611bac565b946020939093013593505050565b600080600060608486031215611c0557600080fd5b8335611c1081611bac565b92506020840135611c2081611bac565b929592945050506040919091013590565b60008060008060008060c08789031215611c4a57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b80358015158114611c8457600080fd5b919050565b60008060408385031215611c9c57600080fd5b8235611ca781611bac565b9150611cb560208401611c74565b90509250929050565b600060208284031215611cd057600080fd5b5035919050565b600060208284031215611ce957600080fd5b8135611cf481611bac565b9392505050565b600060208284031215611d0d57600080fd5b611cf482611c74565b60008060408385031215611d2957600080fd5b8235611d3481611bac565b91506020830135611d4481611bac565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611da0578160001904821115611d8657611d86611d4f565b80851615611d9357918102915b93841c9390800290611d6a565b509250929050565b600082611db7575060016107e9565b81611dc4575060006107e9565b8160018114611dda5760028114611de457611e00565b60019150506107e9565b60ff841115611df557611df5611d4f565b50506001821b6107e9565b5060208310610133831016604e8410600b8410161715611e23575081810a6107e9565b611e2d8383611d65565b8060001904821115611e4157611e41611d4f565b029392505050565b6000611cf460ff841683611da8565b80820281158282048414176107e9576107e9611d4f565b818103818111156107e9576107e9611d4f565b60208082526018908201527f43616c6c6572206e6f74205465616d206f72204f776e65720000000000000000604082015260600190565b600082611ed657634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156107e9576107e9611d4f565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611f4b57600080fd5b8151611cf481611bac565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611fa65784516001600160a01b031683529383019391830191600101611f81565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611fdc57600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122022d97b58d1f386b663f70c83c6938ed2da79b5ffe7fa4bfdb857fcb3ae5170c964736f6c63430008110033

Deployed Bytecode Sourcemap

3383:17194:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18264:94;;;;;;;;;;-1:-1:-1;18345:5:0;;;;;;;;;;;;-1:-1:-1;;;18345:5:0;;;;18264:94;;;;;;;:::i;:::-;;;;;;;;19137:158;;;;;;;;;;-1:-1:-1;19137:158:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;19137:158:0;1023:187:1;10647:35:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;10647:35:0;1215:177:1;18574:105:0;;;;;;;;;;-1:-1:-1;18653:18:0;;18574:105;;4535:28;;;;;;;;;;;;;;;;4472:21;;;;;;;;;;;;;;;;17505:85;;;;;;;;;;;;;:::i;:::-;;3882:57;;;;;;;;;;;;;:::i;19605:386::-;;;;;;;;;;-1:-1:-1;19605:386:0;;;;;:::i;:::-;;:::i;11172:608::-;;;;;;;;;;-1:-1:-1;11172:608:0;;;;;:::i;:::-;;:::i;18472:94::-;;;;;;;;;;-1:-1:-1;18472:94:0;;3873:2;2528:36:1;;2516:2;2501:18;18472:94:0;2386:184:1;20026:202:0;;;;;;;;;;-1:-1:-1;20026:202:0;;;;;:::i;:::-;;:::i;16905:83::-;;;;;;;;;;;;;:::i;12017:152::-;;;;;;;;;;;;;:::i;4377:23::-;;;;;;;;;;;;;;;;16476:154;;;;;;;;;;-1:-1:-1;16476:154:0;;;;;:::i;:::-;;:::i;16642:22::-;;;;;;;;;;-1:-1:-1;16642:22:0;;;;-1:-1:-1;;;16642:22:0;;;;;;17596:187;;;;;;;;;;-1:-1:-1;17596:187:0;;;;;:::i;:::-;;:::i;18687:118::-;;;;;;;;;;-1:-1:-1;18687:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;18779:18:0;18755:4;18779:18;;;:9;:18;;;;;;;18687:118;2845:140;;;;;;;;;;;;;:::i;4753:30::-;;;;;;;;;;-1:-1:-1;4753:30:0;;;;-1:-1:-1;;;;;4753:30:0;;;;;;-1:-1:-1;;;;;3661:32:1;;;3643:51;;3631:2;3616:18;4753:30:0;3497:203:1;4438:27:0;;;;;;;;;;;;;;;;4796:110;;;;;;;;;;-1:-1:-1;4796:110:0;;;;;:::i;:::-;;:::i;16747:90::-;;;;;;;;;;-1:-1:-1;16747:90:0;;;;;:::i;:::-;;:::i;18162:94::-;;;;;;;;;;-1:-1:-1;18214:7:0;2269:6;-1:-1:-1;;;;;2269:6:0;18162:94;;18366:98;;;;;;;;;;-1:-1:-1;18449:7:0;;;;;;;;;;;;-1:-1:-1;;;18449:7:0;;;;18366:98;;20236:336;;;;;;;;;;-1:-1:-1;20236:336:0;;;;;:::i;:::-;;:::i;18813:164::-;;;;;;;;;;-1:-1:-1;18813:164:0;;;;;:::i;:::-;;:::i;17456:42::-;;;;;;;;;;;;;;;;11786:120;;;;;;;;;;-1:-1:-1;11786:120:0;;;;;:::i;:::-;;:::i;10689:211::-;;;;;;;;;;-1:-1:-1;10689:211:0;;;;;:::i;:::-;;:::i;4500:28::-;;;;;;;;;;;;;;;;15951:139;;;;;;;;;;;;;:::i;4407:24::-;;;;;;;;;;;;;;;;10381:189;;;;;;;;;;-1:-1:-1;10381:189:0;;;;;:::i;:::-;;:::i;3675:35::-;;;;;;;;;;-1:-1:-1;3675:35:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3560:48;;;;;;;;;;-1:-1:-1;3560:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18985:144;;;;;;;;;;-1:-1:-1;18985:144:0;;;;;:::i;:::-;-1:-1:-1;;;;;19093:19:0;;;19069:4;19093:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;18985:144;17103:248;;;;;;;;;;-1:-1:-1;17103:248:0;;;;;:::i;:::-;;:::i;10340:26::-;;;;;;;;;;;;;;;;3140:236;;;;;;;;;;-1:-1:-1;3140:236:0;;;;;:::i;:::-;;:::i;3615:53::-;;;;;;;;;;-1:-1:-1;3615:53:0;;;;;:::i;:::-;;;;;;;;;;;;;;19137:158;19211:4;19228:37;19237:10;19249:7;19258:6;19228:8;:37::i;:::-;-1:-1:-1;19283:4:0;19137:158;;;;;:::o;17505:85::-;17547:35;17566:15;17547:18;:35::i;:::-;17505:85::o;3882:57::-;3926:13;3873:2;3926;:13;:::i;:::-;3918:21;;:5;:21;:::i;:::-;3882:57;:::o;19605:386::-;19702:4;19719:36;19729:6;19737:9;19748:6;19719:9;:36::i;:::-;-1:-1:-1;;;;;19792:19:0;;19768:21;19792:19;;;:11;:19;;;;;;;;19812:10;19792:31;;;;;;;;19842:26;;;;19834:59;;;;-1:-1:-1;;;19834:59:0;;6173:2:1;19834:59:0;;;6155:21:1;6212:2;6192:18;;;6185:30;-1:-1:-1;;;6231:18:1;;;6224:50;6291:18;;19834:59:0;;;;;;;;;19906:55;19915:6;19923:10;19935:25;19954:6;19935:16;:25;:::i;:::-;19906:8;:55::i;:::-;-1:-1:-1;19979:4:0;;19605:386;-1:-1:-1;;;;19605:386:0:o;11172:608::-;5006:19;5014:10;5006:7;:19::i;:::-;4998:56;;;;-1:-1:-1;;;4998:56:0;;;;;;;:::i;:::-;11295:11:::1;11307:33;4643:1;4600:4;11307:33;:::i;:::-;11295:45;;11364:6;11359:3;:11;;:25;;;;;11378:6;11372:4;:12;;11359:25;:44;;;;;11397:6;11386:9;:17;;11359:44;11351:74;;;::::0;-1:-1:-1;;;11351:74:0;;7230:2:1;11351: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;;11351:74:0::1;7028:342:1::0;11351:74:0::1;4600:4;11459:9:::0;11444:14:::1;11449:9:::0;11444:4;:14:::1;:::i;:::-;:24;;;;:::i;:::-;:41;11436:86;;;::::0;-1:-1:-1;;;11436:86:0;;7707:2:1;11436: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;;11436:86:0::1;7505:397:1::0;11436:86:0::1;11543:6;:10:::0;;;11564:7:::1;:12:::0;;;11587:11:::1;:21:::0;;;11619:12:::1;:22:::0;;;11652:12:::1;:22:::0;;;11685:7:::1;:12:::0;;;11713: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;;;11713:59:0::1;::::0;8181:3:1;8166:19;11713:59:0::1;;;;;;;11284:496;11172:608:::0;;;;;;:::o;20026:202::-;20131:10;20105:4;20152:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;20152:32:0;;;;;;;;;;20105:4;;20122:76;;20143:7;;20152:45;;20187:10;;20152:45;:::i;16905:83::-;5006:19;5014:10;5006:7;:19::i;:::-;4998:56;;;;-1:-1:-1;;;4998:56:0;;;;;;;:::i;:::-;16956:24:::1;16975:4;16956:18;:24::i;12017:152::-:0;12064:4;12157;12137:19;;12118:18;;:38;;;;:::i;:::-;:43;;;;:::i;:::-;12097:19;;-1:-1:-1;;;;;12097:19:0;12087:30;;;;:9;:30;;;;;;:74;;12017:152;-1:-1:-1;12017:152:0:o;16476:154::-;5006:19;5014:10;5006:7;:19::i;:::-;4998:56;;;;-1:-1:-1;;;4998:56:0;;;;;;;:::i;:::-;16554:19:::1;::::0;-1:-1:-1;;;;;16554:19:0;;::::1;16549:24:::0;;::::1;::::0;16541:56:::1;;;::::0;-1:-1:-1;;;16541:56:0;;8649:2:1;16541: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;;16541:56:0::1;8447:344:1::0;16541:56:0::1;-1:-1:-1::0;;;;;16608:10:0;;;::::1;;::::0;;;:5:::1;:10;::::0;;;;:14;;-1:-1:-1;;16608:14:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16476:154::o;17596:187::-;5006:19;5014:10;5006:7;:19::i;:::-;4998:56;;;;-1:-1:-1;;;4998:56:0;;;;;;;:::i;:::-;17690:15:::1;;17674;:31;17666:40;;;::::0;::::1;;17717:15;:25:::0;;;17758:17:::1;::::0;::::1;::::0;;;::::1;17596:187:::0;:::o;2845:140::-;2427:10;2416:7;2242;2269:6;-1:-1:-1;;;;;2269:6:0;;2204:79;2416:7;-1:-1:-1;;;;;2416:21:0;;2408:66;;;;-1:-1:-1;;;2408:66:0;;;;;;;:::i;:::-;2944:1:::1;2928:6:::0;;2907:40:::1;::::0;-1:-1:-1;;;;;2928:6:0;;::::1;::::0;2907:40:::1;::::0;2944:1;;2907:40:::1;2975:1;2958:19:::0;;-1:-1:-1;;;;;;2958:19:0::1;::::0;;2845:140::o;4796:110::-;2427:10;2416:7;2242;2269:6;-1:-1:-1;;;;;2269:6:0;;2204:79;2416:7;-1:-1:-1;;;;;2416:21:0;;2408:66;;;;-1:-1:-1;;;2408:66:0;;;;;;;:::i;:::-;4873:15:::1;:25:::0;;-1:-1:-1;;;;;;4873:25:0::1;-1:-1:-1::0;;;;;4873:25:0;;;::::1;::::0;;;::::1;::::0;;4796:110::o;16747:90::-;5006:19;5014:10;5006:7;:19::i;:::-;4998:56;;;;-1:-1:-1;;;4998:56:0;;;;;;;:::i;:::-;16812:10:::1;:17:::0;;;::::1;;-1:-1:-1::0;;;16812:17:0::1;-1:-1:-1::0;;;;16812:17:0;;::::1;::::0;;;::::1;::::0;;16747:90::o;18241:7::-;18234:14;;18162:94;:::o;20236:336::-;20373:10;20320:4;20361:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;20361:32:0;;;;;;;;;;20412:35;;;;20404:60;;;;-1:-1:-1;;;20404:60:0;;9359:2:1;20404:60:0;;;9341:21:1;9398:2;9378:18;;;9371:30;-1:-1:-1;;;9417:18:1;;;9410:42;9469:18;;20404:60:0;9157:336:1;20404:60:0;20477:65;20486:10;20498:7;20507:34;20526:15;20507:16;:34;:::i;20477:65::-;-1:-1:-1;20560:4:0;;20236:336;-1:-1:-1;;;20236:336:0:o;18813:164::-;18890:4;18907:40;18917:10;18929:9;18940:6;18907:9;:40::i;11786:120::-;5006:19;5014:10;5006:7;:19::i;:::-;4998:56;;;;-1:-1:-1;;;4998:56:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11864:32:0::1;11897:1;11864:32:::0;;;:23:::1;:32;::::0;;;;:34;11786:120::o;10689:211::-;5006:19;5014:10;5006:7;:19::i;:::-;4998:56;;;;-1:-1:-1;;;4998:56:0;;;;;;;:::i;:::-;10826:4:::1;10794:30;:36;;10786:45;;;::::0;::::1;;10842:19;:50:::0;10689:211::o;15951:139::-;16074:6;15998:4;16056:26;;;:9;:26;;;;16036:18;;3926:13;3873:2;3926;:13;:::i;:::-;3918:21;;:5;:21;:::i;:::-;16022:32;;;;:::i;:::-;16021:61;;;;:::i;10381:189::-;5006:19;5014:10;5006:7;:19::i;:::-;4998:56;;;;-1:-1:-1;;;4998:56:0;;;;;;;:::i;:::-;10495:2:::1;10470:23;:27;;10462:36;;;::::0;::::1;;10526:12;:36:::0;10381:189::o;17103:248::-;5006:19;5014:10;5006:7;:19::i;:::-;4998:56;;;;-1:-1:-1;;;4998:56:0;;;;;;;:::i;:::-;17217:4:::1;-1:-1:-1::0;;;;;17200:22:0;::::1;::::0;17192:60:::1;;;::::0;-1:-1:-1;;;17192:60:0;;9700:2:1;17192:60:0::1;::::0;::::1;9682:21:1::0;9739:2;9719:18;;;9712:30;9778:28;9758:18;;;9751:56;9824:18;;17192:60:0::1;9498:350:1::0;17192:60:0::1;-1:-1:-1::0;;;;;17263:25:0;::::1;;::::0;;;:16:::1;:25;::::0;;;;;;;;:33;;-1:-1:-1;;17263:33:0::1;::::0;::::1;;::::0;;::::1;::::0;;;17312:31;;10021:51:1;;;10088:18;;;10081:50;17312:31:0::1;::::0;9994:18:1;17312:31:0::1;;;;;;;17103:248:::0;;:::o;3140:236::-;2427:10;2416:7;2242;2269:6;-1:-1:-1;;;;;2269:6:0;;2204:79;2416:7;-1:-1:-1;;;;;2416:21:0;;2408:66;;;;-1:-1:-1;;;2408:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3221:22:0;::::1;3213:73;;;::::0;-1:-1:-1;;;3213:73:0;;10344:2:1;3213: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;;3213:73:0::1;10142:402:1::0;3213:73:0::1;3323:6;::::0;;3302:38:::1;::::0;-1:-1:-1;;;;;3302:38:0;;::::1;::::0;3323:6;::::1;::::0;3302:38:::1;::::0;::::1;3351:6;:17:::0;;-1:-1:-1;;;;;;3351:17:0::1;-1:-1:-1::0;;;;;3351:17:0;;;::::1;::::0;;;::::1;::::0;;3140:236::o;19301:296::-;-1:-1:-1;;;;;19391:19:0;;19383:49;;;;-1:-1:-1;;;19383:49:0;;10751:2:1;19383:49:0;;;10733:21:1;10790:2;10770:18;;;10763:30;-1:-1:-1;;;10809:18:1;;;10802:47;10866:18;;19383:49:0;10549:341:1;19383:49:0;-1:-1:-1;;;;;19451:21:0;;19443:49;;;;-1:-1:-1;;;19443:49:0;;11097:2:1;19443:49:0;;;11079:21:1;11136:2;11116:18;;;11109:30;-1:-1:-1;;;11155:18:1;;;11148:45;11210:18;;19443:49:0;10895:339:1;19443:49:0;-1:-1:-1;;;;;19505:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;19557:32;;1361:25:1;;;19557:32:0;;1334:18:1;19557:32:0;;;;;;;19301:296;;;:::o;6941:613::-;-1:-1:-1;;;;;7034:20:0;;7026:51;;;;-1:-1:-1;;;7026:51:0;;11441:2:1;7026:51:0;;;11423:21:1;11480:2;11460:18;;;11453:30;-1:-1:-1;;;11499:18:1;;;11492:48;11557:18;;7026:51:0;11239:342:1;7026:51:0;-1:-1:-1;;;;;7096:23:0;;7088:52;;;;-1:-1:-1;;;7088:52:0;;11788:2:1;7088:52:0;;;11770:21:1;11827:2;11807:18;;;11800:30;-1:-1:-1;;;11846:18:1;;;11839:46;11902:18;;7088:52:0;11586:340:1;7088:52:0;-1:-1:-1;;;;;7183:24:0;;;;;;:16;:24;;;;;;;;;:55;;-1:-1:-1;;;;;;7211:27:0;;;;;;:16;:27;;;;;;;;7183:55;7180:367;;;7253:43;7270:6;7278:9;7289:6;7253:16;:43::i;:::-;6941:613;;;:::o;7180:367::-;7421:15;;7404;:32;;7396:67;;;;-1:-1:-1;;;7396:67:0;;12133:2:1;7396:67:0;;;12115:21:1;12172:2;12152:18;;;12145:30;12211:25;12191:18;;;12184:53;12254:18;;7396:67:0;11931:347:1;7396:67:0;7478:39;7493:6;7500:9;7510:6;7478:14;:39::i;5292:120::-;5345:4;2269:6;;-1:-1:-1;;;;;5368:13:0;;;2269:6;;5368:13;;:36;;-1:-1:-1;;5389:15:0;;-1:-1:-1;;;;;5389:15:0;;;5383:21;;;;5292:120::o;12328:1820::-;10157:27;:34;;-1:-1:-1;;;;10157:34:0;-1:-1:-1;;;10157:34:0;;;12444:4:::1;10157:34:::0;12426:24;;;10187:4;12426:24:::1;::::0;;;;;12488:12:::1;::::0;12475::::1;::::0;12426:24;;10157:34;12475:25:::1;::::0;12488:12;12475:25:::1;:::i;:::-;12654:12;::::0;12633:19:::1;::::0;-1:-1:-1;;;;;12633:19:0::1;12606:16;12623:30:::0;;;:9:::1;:30;::::0;;;;;12461:39;;-1:-1:-1;12606:16:0;12667:4:::1;::::0;12623:43:::1;::::0;::::1;:::i;:::-;:48;;;;:::i;:::-;12606:65;;12724:8;12734:1;12724:11:::0;12721:22:::1;;12736:7;;;;;12721:22;12912:12;12909:134;;;-1:-1:-1::0;12969:4:0::1;12951:24;::::0;;;:9:::1;:24;::::0;;;;;12909:134:::1;;;13010:11;12994:15;:27;12991:52;;;13036:7;;;;;12991:52;13176:22;13209:17;:15;:17::i;:::-;:65;;13266:8;13252:12;;13240:11;:24;;;;:::i;:::-;13239:35;;;;:::i;:::-;13209:65;;;13227:1;13209:65;13176:98:::0;-1:-1:-1;13287:22:0::1;13311:29;13176:98:::0;13311:11;:29:::1;:::i;:::-;13287:53:::0;-1:-1:-1;13353:12:0::1;13366:19;13384:1;13366:17:::0;:19:::1;:::i;:::-;13353:32:::0;-1:-1:-1;13466:14:0::1;13481:25;13489:17:::0;13353:32;13481:25:::1;:::i;:::-;13466:40:::0;-1:-1:-1;13620:21:0::1;13652:27;13466:40:::0;13652:16:::1;:27::i;:::-;13690:11;13703:41;13727:17:::0;13703:21:::1;:41;:::i;:::-;13690:55:::0;-1:-1:-1;13850:19:0;;13847:135:::1;;13885:11;13916:9:::0;13900:14:::1;13907:7:::0;13900:6;:14:::1;:::i;:::-;13899:26;;;;:::i;:::-;13885:40;;13940:30;13954:7;13963:6;13940:13;:30::i;:::-;13870:112;13847:135;14067:15;::::0;:53:::1;::::0;14055:9:::1;::::0;-1:-1:-1;;;;;14067:15:0::1;::::0;14094:21:::1;::::0;14055:9;14067:53;14055:9;14067:53;14094:21;14067:15;:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;;;;;;;;10202:1:0::1;-1:-1:-1::0;10214:27:0;:35;;-1:-1:-1;;;;10214:35:0;;;12328:1820::o;9353:339::-;-1:-1:-1;;;;;9466:17:0;;9445:18;9466:17;;;:9;:17;;;;;;9502:23;;;;9494:60;;;;-1:-1:-1;;;9494:60:0;;12695:2:1;9494:60:0;;;12677:21:1;12734:2;12714:18;;;12707:30;-1:-1:-1;;;12753:18:1;;;12746:54;12817:18;;9494:60:0;12493:348:1;9494:60:0;-1:-1:-1;;;;;9565:17:0;;;;;;:9;:17;;;;;:25;;9584:6;;9565:17;:25;;9584:6;;9565:25;:::i;:::-;;;;-1:-1:-1;;;;;;;9601:20:0;;;;;;:9;:20;;;;;:28;;9623:6;;9601:20;:28;;9623:6;;9601:28;:::i;:::-;;;;;;;;9667:9;-1:-1:-1;;;;;9651:33:0;9660:6;-1:-1:-1;;;;;9651:33:0;;9677:6;9651:33;;;;1361:25:1;;1349:2;1334:18;;1215:177;9651:33:0;;;;;;;;9434:258;9353:339;;;:::o;7661:1397::-;-1:-1:-1;;;;;7772:17:0;;7751:18;7772:17;;;:9;:17;;;;;;7808:23;;;;7800:60;;;;-1:-1:-1;;;7800:60:0;;12695:2:1;7800:60:0;;;12677:21:1;12734:2;12714:18;;;12707:30;-1:-1:-1;;;12753:18:1;;;12746:54;12817:18;;7800:60:0;12493:348:1;7800:60:0;7871:6;:13;;-1:-1:-1;;;;;7871:13:0;;;-1:-1:-1;;;;;;7871:13:0;;;;;;;;7895:9;:19;;;;;;;;;;;;;;7871:6;7936:13;;;:5;:13;;;;;;;7972:16;;;;;;7936:13;;;;;7972:16;;;8020:146;;;;8055:9;:7;:9::i;:::-;8051:13;;8020:146;;;8098:5;8095:71;;;8123:8;:6;:8::i;8095:71::-;8153:13;:11;:13::i;:::-;8149:17;;8095:71;8191:19;;-1:-1:-1;;;;;8183:27:0;;;8191:19;;8183:27;;;;8182:44;;-1:-1:-1;8215:10:0;;-1:-1:-1;;;8215:10:0;;;;8214:11;8182:44;:76;;;;-1:-1:-1;8230:27:0;;-1:-1:-1;;;8230:27:0;;;;8229:28;8182:76;8179:119;;;8273:25;8292:5;8273:18;:25::i;:::-;8369:20;8390:35;8404:6;8412:3;8417:7;;8390:13;:35::i;:::-;8369:56;;8533:18;8552:53;8566:6;8574:3;8592:12;;8579;;:25;;;;:::i;:::-;8552:13;:53::i;:::-;8533:72;-1:-1:-1;8669:16:0;8694:31;8533:72;8694:15;:31;:::i;:::-;8686:40;;:6;:40;:::i;:::-;-1:-1:-1;;;;;8739:17:0;;;;;;:9;:17;;;;;:25;;8669:57;;-1:-1:-1;8758:6:0;;8739:17;;;:25;;8758:6;;8739:25;:::i;:::-;;;;-1:-1:-1;;8849:4:0;8831:24;;;;:9;:24;;;;;:41;;8859:13;;8831:24;:41;;8859:13;;8831:41;:::i;:::-;;;;;;;;8927:15;8907:18;;:35;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8953:20:0;;;;;;:9;:20;;;;;:33;;8975:11;;8953:20;:33;;8975:11;;8953:33;:::i;:::-;;;;;;;;9028:9;-1:-1:-1;;;;;9012:38:0;9021:6;-1:-1:-1;;;;;9012:38:0;;9038:11;9012:38;;;;1361:25:1;;1349:2;1334:18;;1215:177;9012:38:0;;;;;;;;7740:1318;;;;;;;7661:1397;;;:::o;14251:474::-;14341:14;;14309:56;;14326:4;;-1:-1:-1;;;;;14341:14:0;14358:6;14309:8;:56::i;:::-;14400:16;;;14414:1;14400:16;;;;;;;;14376:21;;14400:16;;;;;;;;;;-1:-1:-1;14400:16:0;14376:40;;14445:4;14427;14432:1;14427:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14427:23:0;;;:7;;;;;;;;;;:23;;;;14471:14;;:21;;;-1:-1:-1;;;14471:21:0;;;;:14;;;;;:19;;:21;;;;;14427:7;;14471:21;;;;;:14;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14461:4;14466:1;14461:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14461:31:0;;;:7;;;;;;;;;:31;14509:14;;:190;;-1:-1:-1;;;14509:190:0;;:14;;;:65;;:190;;14589:6;;14509:14;;14626:4;;14653;;14673:15;;14509:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14298:427;14251:474;:::o;15582:353::-;15690:14;;15658:61;;15675:4;;-1:-1:-1;;;;;15690:14:0;15707:11;15658:8;:61::i;:::-;15730:14;;-1:-1:-1;;;;;15730:14:0;:30;15768:9;15801:4;15821:11;15730:14;;15879:7;2242;2269:6;-1:-1:-1;;;;;2269:6:0;;2204:79;15879:7;15730:197;;;;;;-1:-1:-1;;;;;;15730:197:0;;;-1:-1:-1;;;;;14710:15:1;;;15730:197:0;;;14692:34:1;14742:18;;;14735:34;;;;14785:18;;;14778:34;;;;14828:18;;;14821:34;14892:15;;;14871:19;;;14864:44;15901:15:0;14924:19:1;;;14917:35;14626:19;;15730:197:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15582:353;;:::o;14976:297::-;15121:6;;-1:-1:-1;;;;;15121:6:0;15017:4;15097:31;;;:23;:31;;;;;;15051:15;;15142:17;;;:60;;-1:-1:-1;15177:15:0;;:25;;15193:9;15177:25;:::i;:::-;15161:14;:41;;15142:60;:82;;;;15220:4;15204:14;:20;15142:82;15139:101;;;15233:7;;15226:14;;;;14976:297;:::o;15139:101::-;14966:3;15251:14;;;;14976:297;:::o;14737:199::-;14815:9;;-1:-1:-1;;;;;14815:9:0;14772:4;14791:34;;;:23;:34;;;;;;:37;;14788:117;;14867:9;;-1:-1:-1;;;;;14867:9:0;14843:34;;;;:23;:34;;;;;14878:15;14843:50;;14788:117;-1:-1:-1;14922:6:0;;;14737:199::o;15281:289::-;15423:6;;-1:-1:-1;;;;;15423:6:0;15326:4;15399:31;;;:23;:31;;;;;;15353:15;;15444:17;;;:39;;;15479:4;15463:14;:20;15444:39;:82;;;-1:-1:-1;15501:15:0;;:25;;15517:9;15501:25;:::i;:::-;15485:14;:41;;15444:82;15441:105;;;15535:11;;15528:18;;;;15281:289;:::o;9113:176::-;9198:4;9249:31;4600:4;;9249:31;:::i;:::-;9234:10;9223;9230:3;9223:6;:10;:::i;:::-;:21;;;;:::i;:::-;9222:59;;;;:::i;:::-;9215:66;9113:176;-1:-1:-1;;;;9113: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://22d97b58d1f386b663f70c83c6938ed2da79b5ffe7fa4bfdb857fcb3ae5170c9
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.