ETH Price: $3,119.23 (+1.56%)
Gas: 2 Gwei

Token

STAN ON ETH (STAN)
 

Overview

Max Total Supply

1,000,000,000 STAN

Holders

45

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
sneakymilfcollectorsaintflur.eth
Balance
9,000,000 STAN

Value
$0.00
0xd7144700e559fab35a374be93ba2e553e66fedfa
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:
STANONETH

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-12-24
*/

/*
STAN ON ETH $STAN
Telegram: https://t.me/stanoneth
Official Website:

http://Stanoneth.space

Official Twitter: 

https://twitter.com/Stan_OnEth
ETH PRINTER GO BRRRRRRRRRRRRRRRRRRRRRR

all the ass kissers

kissing devs ass 24/7 for early ca

airdrop

we made a token for you

                                                                                                    
                                                                                                    
                                                                                                                                                                                        
                                                                                                    
                                                                                                    
                                                       ```````.`.```.```                            
                                              ``.-://++/////++oooooooooo++///:..`                   
                                          `.-ooo+/:-..............:.....---://+++/-.`               
                                      ``-/ooo/-.........-...---...--.-..--.-------/o+-`             
                                    `.oyo/-.......--------:--------------:-----:----:s+`            
                                  `-os/-.......----::-----::/++oo+/:-----------------/+s.           
                                 `sy:.......----:--:+osoo+++:-...-+ho:o:--/-/:::-:/-oomh:           
                                `hs-......----//syys/-............-sdhddohh:ysyoyhsdhyos.           
                               .so--.....---/syo/-........::----..../+-/o-os/oss/--:-..-s`          
                              .yy---..--:--+d+.......:/+++//++oso++-...................sso/`        
                              :h:---------od+......-syo++//:----/+o..............-.....:++y:        
                              /s--------:sd+.......-:---...................:.....o-.....:oyd+`      
                              oy-------/hy:.......-ymhoooo////::-.........-o.....:o....+ms:dNs`     
                            `/ohhsoosyyy+..........:dm:./d+:+sdNm/........+/....../o...yN-/mhNo     
                           `/o.-+o+//:-.............:hd+odo``.mMN/........s-.......y-..sNy:::hh     
                          `/+........................-smmhs++hNd+........o:......../o..-ohdhyds     
                         `+/........................-+:/+osssso/.-.......y-.........y.../+/::o-     
                        `+/..........................-/++oo+++/:-.....-:./o/--:////os....-/:os`     
                       `+/..............................-------............:/::-.....-:.....s.      
                       /+..................................................................s-       
                      -o..................................................................s-        
                    `/+...................................................-oooosyyo+-....s/         
                   `+/..........................................................----...-s+`         
                 `-+-..............................................................:/+//.           
                -//.........................................................--:/+o/:.`              
             `-o+-................................................-::::://+///:-.`                  
           `-o+:...........................................-:::///+/:-...``                         
        `/++oh-.......................................--:oo/::-``                                   
       :yo.-++o-....................................:oo/:-`                                         
    `./hs::-s+s+..................................:+o:`                                             
 ``/o+::y-o-o/++o.................................s/`                                               
/+/:-..-y`o.o-:.y:.............................../y+/+//:`                                          
-......-s...-+``:o..............................:s.-+..`-o/                                         
.......-o-+-`s```o:............................-s:.+:+:.oos`                                        
.......-o-:+ o-``-s-..........................-s/-os:s.:s-/h:                                       
.......-o-.+`-+``.-s-........................-o/:o++//+y+.-:h/`                                     
........+:``  o:``./o-.......................++/+-++/-sy/...-+o/-`                                  
........+/``  .s```.:s:....................-/o:o``.--o:s-.....-:/o+`                                
........+o``  `+-`.:::o/:-...............--++-s.``:`-:++-........-++`                               
........+o`` ...o.`:::--/+o/-----------::/+/-o-`-+: ``s:-..........++`                              
........+o```:+`.//....```-++++/++++++/:--.-+-`/+/: `-y-....:..-..-.+/                              
......-:s:``` //-`-//-`````.-------------://. `/+-.:--s-..........-..+:                             
.....:oo:.```  `::. `://:..-::::--------.`  `-+-`-+:.-s...............+:                            
...:ss:...```       `-:..--::::-`          .+:` -+```.s:......-..-.....s.                           
..:sy-...````  `/   `---.       ``.-::/-  -+`   `--``.:o...........-...:o                           
..y-y-....```  `s`    --`      `-:-.`    :o``/-`--.``.-yo......-........o.                          
 
*/
// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.7;

library Address {

    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}
abstract contract Context {
    function _msgSender() internal view returns (address payable) {
        return payable(msg.sender);
    }

    function _msgData() internal view returns (bytes memory) {
        this;
        return msg.data;
    }
}

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

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract STANONETH is IERC20, Ownable {
    using Address for address;
    
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "STAN ON ETH";
    string constant _symbol = "STAN";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 1_000_000_000 * (10 ** _decimals);
    uint256 _maxBuyTxAmount = (_totalSupply * 1) / 2000;
    uint256 _maxSellTxAmount = (_totalSupply * 1) / 500;
    uint256 _maxWalletSize = (_totalSupply * 2) / 100;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => uint256) public lastSell;
    mapping (address => uint256) public lastBuy;

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping (address => bool) liquidityCreator;

    uint256 marketingFee = 800;
    uint256 liquidityFee = 200;
    uint256 totalFee = marketingFee + liquidityFee;
    uint256 sellBias = 0;
    uint256 feeDenominator = 10000;

    address payable public liquidityFeeReceiver = payable(0xa11a35B6b558eD1361D453a4f8dD0B2687d90d43);
    address payable public marketingFeeReceiver = payable(0xa11a35B6b558eD1361D453a4f8dD0B2687d90d43);

    IDEXRouter public router;
    address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    mapping (address => bool) liquidityPools;
    mapping (address => uint256) public protected;
    bool protectionEnabled = true;
    bool protectionDisabled = false;
    uint256 protectionLimit;
    uint256 public protectionCount;
    uint256 protectionTimer;

    address public pair;

    uint256 public launchedAt;
    uint256 public launchedTime;
    uint256 public deadBlocks;
    bool startBullRun = false;
    bool pauseDisabled = false;
    uint256 public rateLimit = 2;

    bool public swapEnabled = false;
    bool processEnabled = true;
    uint256 public swapThreshold = _totalSupply / 1000;
    uint256 public swapMinimum = _totalSupply / 10000;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
    
    mapping (address => bool) teamMember;
    
    modifier onlyTeam() {
        require(teamMember[_msgSender()] || msg.sender == owner(), "Caller is not a team member");
        _;
    }
    
    event ProtectedWallet(address, address, uint256, uint8);

    constructor () {
        router = IDEXRouter(routerAddress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        liquidityPools[pair] = true;
        _allowances[owner()][routerAddress] = type(uint256).max;
        _allowances[address(this)][routerAddress] = type(uint256).max;

        isFeeExempt[owner()] = true;
        liquidityCreator[owner()] = true;

        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[owner()] = true;
        isTxLimitExempt[routerAddress] = true;
        isTxLimitExempt[DEAD] = true;

        _balances[owner()] = _totalSupply;

        emit Transfer(address(0xd0412FdB6fdFb6237d7BD5DB61aBA0a2897295d4), owner(), _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure returns (uint8) { return _decimals; }
    function symbol() external pure returns (string memory) { return _symbol; }
    function name() external pure returns (string memory) { return _name; }
    function getOwner() external view returns (address) { return owner(); }
    function maxBuyTxTokens() external view returns (uint256) { return _maxBuyTxAmount / (10 ** _decimals); }
    function maxSellTxTokens() external view returns (uint256) { return _maxSellTxAmount / (10 ** _decimals); }
    function maxWalletTokens() external view returns (uint256) { return _maxWalletSize / (10 ** _decimals); }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }
    
    function setTeamMember(address _team, bool _enabled) external onlyOwner {
        teamMember[_team] = _enabled;
    }
    
    function airdrop(address[] calldata addresses, uint256[] calldata amounts) external onlyOwner {
        require(addresses.length > 0 && amounts.length == addresses.length);
        address from = msg.sender;

        for (uint i = 0; i < addresses.length; i++) {
            if(!liquidityPools[addresses[i]] && !liquidityCreator[addresses[i]]) {
                _basicTransfer(from, addresses[i], amounts[i] * (10 ** _decimals));
            }
        }
    }
    
    function clearStuckBalance(uint256 amountPercentage, address adr) external onlyTeam {
        uint256 amountETH = address(this).balance;
        payable(adr).transfer((amountETH * amountPercentage) / 100);
    }
    
    function openTrading(uint256 _deadBlocks, uint256 _protection, uint256 _limit) external onlyTeam {
        require(!startBullRun && _deadBlocks < 10);
        deadBlocks = _deadBlocks;
        startBullRun = true;
        launchedAt = block.number;
        protectionTimer = block.timestamp + _protection;
        protectionLimit = _limit * (10 ** _decimals);
    }
    
    function pauseTrading() external onlyTeam {
        require(!pauseDisabled);
        startBullRun = false;
    }
    
    function disablePause() external onlyTeam {
        pauseDisabled = true;
        startBullRun = true;
    }
    
    function setProtection(bool _protect, uint256 _addTime) external onlyTeam {
        require(!protectionDisabled);
        protectionEnabled = _protect;
        require(_addTime < 1 days);
        protectionTimer += _addTime;
    }
    
    function disableProtection() external onlyTeam {
        protectionDisabled = true;
        protectionEnabled = false;
    }
    
    function protectWallet(address[] calldata _wallets, bool _protect) external onlyTeam {
        if (_protect) {
            require(protectionEnabled);
        }
        
        for (uint i = 0; i < _wallets.length; i++) {
            
            if (_protect) {
                protectionCount++;
                emit ProtectedWallet(tx.origin, _wallets[i], block.number, 2);
            }
            else {
                if (protected[_wallets[i]] != 0)
                    protectionCount--;      
            }
            protected[_wallets[i]] = _protect ? block.number : 0;
        }
    }

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

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

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(sender != address(0), "BEP20: transfer from 0x0");
        require(recipient != address(0), "BEP20: transfer to 0x0");
        require(amount > 0, "Amount must be > zero");
        require(_balances[sender] >= amount, "Insufficient balance");
        if(!launched() && liquidityPools[recipient]){ require(liquidityCreator[sender], "Liquidity not added yet."); launch(); }
        if(!startBullRun){ require(liquidityCreator[sender] || liquidityCreator[recipient], "Trading not open yet."); }

        checkTxLimit(sender, recipient, amount);
        
        if (!liquidityPools[recipient] && recipient != DEAD) {
            if (!isTxLimitExempt[recipient]) {
                checkWalletLimit(recipient, amount);
            }
        }
        
        if(protectionEnabled && protectionTimer > block.timestamp) {
            if(liquidityPools[sender] && tx.origin != recipient && protected[recipient] == 0) {
                protected[recipient] = block.number;
                protectionCount++;
                emit ProtectedWallet(tx.origin, recipient, block.number, 0);
            }
        }
        
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        _balances[sender] = _balances[sender] - amount;

        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(recipient, amount) : amount;
        
        if(shouldSwapBack(recipient)){ if (amount > 0) swapBack(amount); }
        
        _balances[recipient] = _balances[recipient] + amountReceived;

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
        launchedTime = block.timestamp;
        swapEnabled = true;
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender] - amount;
        _balances[recipient] = _balances[recipient] + amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }
    
    function checkWalletLimit(address recipient, uint256 amount) internal view {
        uint256 walletLimit = _maxWalletSize;
        require(_balances[recipient] + amount <= walletLimit, "Transfer amount exceeds the bag size.");
    }

    function checkTxLimit(address sender, address recipient, uint256 amount) internal {
        require(isTxLimitExempt[sender] || amount <= (liquidityPools[sender] ? _maxBuyTxAmount : _maxSellTxAmount), "TX Limit Exceeded");
        require(isTxLimitExempt[sender] || lastBuy[recipient] + rateLimit <= block.number, "Transfer rate limit exceeded.");
        
        if (protected[sender] != 0){
            require(amount <= protectionLimit * (10 ** _decimals) && lastSell[sender] == 0 && protectionTimer > block.timestamp, "Wallet protected, please contact support.");
            lastSell[sender] = block.number;
        }
        
        if (liquidityPools[recipient]) {
            lastSell[sender] = block.number;
        } else if (shouldTakeFee(sender)) {
            if (protectionEnabled && protectionTimer > block.timestamp && lastBuy[tx.origin] == block.number && protected[recipient] == 0) {
                protected[recipient] = block.number;
                emit ProtectedWallet(tx.origin, recipient, block.number, 1);
            }
            lastBuy[recipient] = block.number;
            if (tx.origin != recipient)
                lastBuy[tx.origin] = block.number;
        }
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function getTotalFee(bool selling) public view returns (uint256) {
        if(launchedAt + deadBlocks >= block.number){ return feeDenominator - 1; }
        if (selling) return totalFee + sellBias;
        return totalFee - sellBias;
    }

    function takeFee(address recipient, uint256 amount) internal returns (uint256) {
        bool selling = liquidityPools[recipient];
        uint256 feeAmount = (amount * getTotalFee(selling)) / feeDenominator;
        
        _balances[address(this)] += feeAmount;
    
        return amount - feeAmount;
    }

    function shouldSwapBack(address recipient) internal view returns (bool) {
        return !liquidityPools[msg.sender]
        && !inSwap
        && swapEnabled
        && liquidityPools[recipient]
        && _balances[address(this)] >= swapMinimum;
    }

    function swapBack(uint256 amount) internal swapping {
        uint256 amountToSwap = amount < swapThreshold ? amount : swapThreshold;
        if (_balances[address(this)] < amountToSwap) amountToSwap = _balances[address(this)];
        
        uint256 amountToLiquify = (amountToSwap * liquidityFee / 2) / totalFee;
        amountToSwap -= amountToLiquify;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        
        uint256 balanceBefore = address(this).balance;

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

        uint256 amountBNB = address(this).balance - balanceBefore;
        uint256 totalBNBFee = totalFee - (liquidityFee / 2);

        uint256 amountBNBLiquidity = (amountBNB * liquidityFee / 2) / totalBNBFee;
        uint256 amountBNBMarketing = amountBNB - amountBNBLiquidity;
        
        if (amountBNBMarketing > 0)
            marketingFeeReceiver.transfer(amountBNBMarketing);
        
        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountBNBLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                liquidityFeeReceiver,
                block.timestamp
            );
        }

        emit FundsDistributed(amountBNBMarketing, amountBNBLiquidity, amountToLiquify);
    }
    
    function addLiquidityPool(address lp, bool isPool) external onlyOwner {
        require(lp != pair, "Can't alter current liquidity pair");
        liquidityPools[lp] = isPool;
    }

    function setRateLimit(uint256 rate) external onlyOwner {
        require(rate <= 60 seconds);
        rateLimit = rate;
    }

    function setTxLimit(uint256 buyNumerator, uint256 sellNumerator, uint256 divisor) external onlyOwner {
        require(buyNumerator > 0 && sellNumerator > 0 && divisor > 0 && divisor <= 10000);
        _maxBuyTxAmount = (_totalSupply * buyNumerator) / divisor;
        _maxSellTxAmount = (_totalSupply * sellNumerator) / divisor;
    }
    
    function setMaxWallet(uint256 numerator, uint256 divisor) external onlyOwner() {
        require(numerator > 0 && divisor > 0 && divisor <= 10000);
        _maxWalletSize = (_totalSupply * numerator) / divisor;
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
    }

    function setFees(uint256 _liquidityFee, uint256 _marketingFee, uint256 _sellBias, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        marketingFee = _marketingFee;
        totalFee = _marketingFee + _liquidityFee;
        sellBias = _sellBias;
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 2);
    }

    function setFeeReceivers(address _liquidityFeeReceiver, address _marketingFeeReceiver) external onlyOwner {
        liquidityFeeReceiver = payable(_liquidityFeeReceiver);
        marketingFeeReceiver = payable(_marketingFeeReceiver);
    }

    function setSwapBackSettings(bool _enabled, bool _processEnabled, uint256 _denominator, uint256 _swapMinimum) external onlyOwner {
        require(_denominator > 0);
        swapEnabled = _enabled;
        processEnabled = _processEnabled;
        swapThreshold = _totalSupply / _denominator;
        swapMinimum = _swapMinimum * (10 ** _decimals);
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply - (balanceOf(DEAD) + balanceOf(ZERO));
    }

    event FundsDistributed(uint256 marketingBNB, uint256 liquidityBNB, uint256 liquidityTokens);
    
}

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":"uint256","name":"marketingBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidityBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidityTokens","type":"uint256"}],"name":"FundsDistributed","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":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"","type":"uint8"}],"name":"ProtectedWallet","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":"lp","type":"address"},{"internalType":"bool","name":"isPool","type":"bool"}],"name":"addLiquidityPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"},{"internalType":"address","name":"adr","type":"address"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"disablePause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"selling","type":"bool"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyTxTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTxTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadBlocks","type":"uint256"},{"internalType":"uint256","name":"_protection","type":"uint256"},{"internalType":"uint256","name":"_limit","type":"uint256"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_wallets","type":"address[]"},{"internalType":"bool","name":"_protect","type":"bool"}],"name":"protectWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"protected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protectionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rateLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_liquidityFeeReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_sellBias","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_protect","type":"bool"},{"internalType":"uint256","name":"_addTime","type":"uint256"}],"name":"setProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setRateLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"bool","name":"_processEnabled","type":"bool"},{"internalType":"uint256","name":"_denominator","type":"uint256"},{"internalType":"uint256","name":"_swapMinimum","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_team","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setTeamMember","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyNumerator","type":"uint256"},{"internalType":"uint256","name":"sellNumerator","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapMinimum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"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"},{"stateMutability":"payable","type":"receive"}]

6080604052600180546001600160a01b031990811661dead17909155600280549091169055620000326009600a620005b1565b6200004290633b9aca0062000672565b6003556107d0600354600162000059919062000672565b62000065919062000545565b6004556101f460035460016200007c919062000672565b62000088919062000545565b600555606460035460026200009e919062000672565b620000aa919062000545565b600655610320600e81905560c8600f819055620000c7916200052a565b6010556000601155612710601255601380546001600160a01b031990811673a11a35b6b558ed1361d453a4f8dd0b2687d90d4390811790925560148054821690921790915560168054909116737a250d5630b4cf539739df2c5dacb4c659f2488d1790556019805461ffff19908116600117909155602180548216905560026022556023805490911661010017905560035462000168906103e89062000545565b6024556127106003546200017d919062000545565b6025553480156200018d57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601654601580546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b1580156200022757600080fd5b505afa1580156200023c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002629190620004f8565b6001600160a01b031663c9c65396601560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002bf57600080fd5b505afa158015620002d4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002fa9190620004f8565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b1580156200034257600080fd5b505af115801562000357573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037d9190620004f8565b601d80546001600160a01b0319166001600160a01b039290921691821790556000908152601760205260408120805460ff1916600117905560001990600890620003cf6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120601680548416835290855283822095909555308082526008855283822086548416835285528382206000199055815483168252600b85528382208054600160ff199182168117909255835485168452600d87528584208054821683179055918352600c865284832080548316821790558254841683528483208054831682179055955483168252838220805482168717905585548316825283822080549091169095179094556003548454821685526007845282852081905593549151938452169173d0412fdb6fdfb6237d7bd5db61aba0a2897295d4917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620006aa565b6000602082840312156200050b57600080fd5b81516001600160a01b03811681146200052357600080fd5b9392505050565b6000821982111562000540576200054062000694565b500190565b6000826200056357634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115620005a95781600019048211156200058d576200058d62000694565b808516156200059b57918102915b93841c93908002906200056d565b509250929050565b60006200052360ff841683600082620005cd575060016200066c565b81620005dc575060006200066c565b8160018114620005f55760028114620006005762000620565b60019150506200066c565b60ff84111562000614576200061462000694565b50506001821b6200066c565b5060208310610133831016604e8410600b841016171562000645575081810a6200066c565b62000651838362000568565b806000190482111562000668576200066862000694565b0290505b92915050565b60008160001904831182151516156200068f576200068f62000694565b500290565b634e487b7160e01b600052601160045260246000fd5b612c4880620006ba6000396000f3fe6080604052600436106103035760003560e01c80636f4ce42811610190578063bf56b371116100dc578063e96fada211610095578063f84ba65d1161006f578063f84ba65d14610932578063f8821a6214610952578063f887ea4014610968578063fabb0b4f1461098857600080fd5b8063e96fada2146108d2578063f1f3bca3146108f2578063f2fde38b1461091257600080fd5b8063bf56b371146107e9578063bfa21d6a146107ff578063c1adf7bc1461081f578063c287184e1461084c578063d68601421461086c578063dd62ed3e1461088c57600080fd5b806395d89b4111610149578063a8aa1b3111610123578063a8aa1b3114610774578063a9059cbb14610794578063abe57e70146107b4578063bafe446b146107d457600080fd5b806395d89b41146107115780639b02c4021461073e578063a4b45c001461075457600080fd5b80636f4ce428146106295780636fcba3771461065657806370a0823114610676578063715018a6146106ac578063893d20e8146106c15780638da5cb5b146106f357600080fd5b8063492a937b1161024f578063584f969a1161020857806363a803e1116101e257806363a803e1146105ba578063658d4b7f146105cf57806367243482146105ef5780636ddd17131461060f57600080fd5b8063584f969a1461056f57806360bba03d1461058457806361e08e72146105a457600080fd5b8063492a937b146104b957806350713935146104d957806354a1dfc9146104f957806356a227f214610519578063571ac8b0146105395780635804f1e41461055957600080fd5b8063234e9494116102bc578063313ce56711610296578063313ce5671461043b57806334848b9a14610457578063421dd7c71461047757806346d7edaa1461048c57600080fd5b8063234e9494146103f157806323b872dd146104065780632b112e491461042657600080fd5b80630445b6671461030f57806306fdde0314610338578063095db78f14610375578063095ea7b3146103975780631031e36e146103c757806318160ddd146103dc57600080fd5b3661030a57005b600080fd5b34801561031b57600080fd5b5061032560245481565b6040519081526020015b60405180910390f35b34801561034457600080fd5b5060408051808201909152600b81526a0a6a8829c409e9c408aa8960ab1b60208201525b60405161032f919061290c565b34801561038157600080fd5b50610395610390366004612728565b61099e565b005b3480156103a357600080fd5b506103b76103b2366004612690565b610b5a565b604051901515815260200161032f565b3480156103d357600080fd5b50610395610bc7565b3480156103e857600080fd5b50600354610325565b3480156103fd57600080fd5b50610325610c2c565b34801561041257600080fd5b506103b761042136600461261a565b610c4c565b34801561043257600080fd5b50610325610ce1565b34801561044757600080fd5b506040516009815260200161032f565b34801561046357600080fd5b50610395610472366004612855565b610d22565b34801561048357600080fd5b50610395610dc3565b34801561049857600080fd5b506103256104a73660046125a7565b60186020526000908152604090205481565b3480156104c557600080fd5b506103956104d436600461265b565b610e18565b3480156104e557600080fd5b506103956104f4366004612855565b610ed6565b34801561050557600080fd5b50610395610514366004612797565b610f71565b34801561052557600080fd5b5061039561053436600461280e565b610ff4565b34801561054557600080fd5b506103b76105543660046125a7565b611084565b34801561056557600080fd5b50610325601f5481565b34801561057b57600080fd5b50610395611092565b34801561059057600080fd5b5061039561059f36600461265b565b6110e7565b3480156105b057600080fd5b5061032560225481565b3480156105c657600080fd5b5061032561113c565b3480156105db57600080fd5b506103956105ea36600461265b565b611157565b3480156105fb57600080fd5b5061039561060a3660046126bc565b6111ac565b34801561061b57600080fd5b506023546103b79060ff1681565b34801561063557600080fd5b506103256106443660046125a7565b60096020526000908152604090205481565b34801561066257600080fd5b506103956106713660046128af565b611313565b34801561068257600080fd5b506103256106913660046125a7565b6001600160a01b031660009081526007602052604090205490565b3480156106b857600080fd5b50610395611376565b3480156106cd57600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161032f565b3480156106ff57600080fd5b506000546001600160a01b03166106db565b34801561071d57600080fd5b5060408051808201909152600481526329aa20a760e11b6020820152610368565b34801561074a57600080fd5b50610325601b5481565b34801561076057600080fd5b5061039561076f3660046125e1565b6113ea565b34801561078057600080fd5b50601d546106db906001600160a01b031681565b3480156107a057600080fd5b506103b76107af366004612690565b611442565b3480156107c057600080fd5b506103956107cf366004612833565b61144f565b3480156107e057600080fd5b506103256114c0565b3480156107f557600080fd5b50610325601e5481565b34801561080b57600080fd5b506013546106db906001600160a01b031681565b34801561082b57600080fd5b5061032561083a3660046125a7565b600a6020526000908152604090205481565b34801561085857600080fd5b506103956108673660046127f5565b6114db565b34801561087857600080fd5b506103956108873660046127d9565b611518565b34801561089857600080fd5b506103256108a73660046125e1565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b3480156108de57600080fd5b506014546106db906001600160a01b031681565b3480156108fe57600080fd5b5061032561090d36600461277c565b6115a9565b34801561091e57600080fd5b5061039561092d3660046125a7565b6115f6565b34801561093e57600080fd5b5061039561094d36600461265b565b6116e0565b34801561095e57600080fd5b5061032560255481565b34801561097457600080fd5b506015546106db906001600160a01b031681565b34801561099457600080fd5b5061032560205481565b3360009081526027602052604090205460ff16806109c657506000546001600160a01b031633145b6109eb5760405162461bcd60e51b81526004016109e290612961565b60405180910390fd5b8015610a005760195460ff16610a0057600080fd5b60005b82811015610b54578115610a8f57601b8054906000610a2183612bb3565b91905055507f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea32858584818110610a5a57610a5a612be4565b9050602002016020810190610a6f91906125a7565b436002604051610a8294939291906128e1565b60405180910390a1610aef565b60186000858584818110610aa557610aa5612be4565b9050602002016020810190610aba91906125a7565b6001600160a01b0316815260208101919091526040016000205415610aef57601b8054906000610ae983612b9c565b91905055505b81610afb576000610afd565b435b60186000868685818110610b1357610b13612be4565b9050602002016020810190610b2891906125a7565b6001600160a01b0316815260208101919091526040016000205580610b4c81612bb3565b915050610a03565b50505050565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610bb59086815260200190565b60405180910390a35060015b92915050565b3360009081526027602052604090205460ff1680610bef57506000546001600160a01b031633145b610c0b5760405162461bcd60e51b81526004016109e290612961565b602154610100900460ff1615610c2057600080fd5b6021805460ff19169055565b6000610c3a6009600a612abb565b600554610c479190612a56565b905090565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610ccc576001600160a01b0384166000908152600860209081526040808320338452909152902054610ca7908390612b85565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610cd7848484611735565b90505b9392505050565b6002546001600160a01b039081166000908152600760205260408082205460015490931682528120549091610d1591612a3e565b600354610c479190612b85565b3360009081526027602052604090205460ff1680610d4a57506000546001600160a01b031633145b610d665760405162461bcd60e51b81526004016109e290612961565b60215460ff16158015610d795750600a83105b610d8257600080fd5b60208390556021805460ff1916600117905543601e55610da28242612a3e565b601c55610db16009600a612abb565b610dbb9082612b66565b601a55505050565b3360009081526027602052604090205460ff1680610deb57506000546001600160a01b031633145b610e075760405162461bcd60e51b81526004016109e290612961565b6019805461ffff1916610100179055565b6000546001600160a01b03163314610e425760405162461bcd60e51b81526004016109e290612998565b601d546001600160a01b0383811691161415610eab5760405162461bcd60e51b815260206004820152602260248201527f43616e277420616c7465722063757272656e74206c697175696469747920706160448201526134b960f11b60648201526084016109e2565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610f005760405162461bcd60e51b81526004016109e290612998565b600083118015610f105750600082115b8015610f1c5750600081115b8015610f2a57506127108111155b610f3357600080fd5b8083600354610f429190612b66565b610f4c9190612a56565b6004556003548190610f5f908490612b66565b610f699190612a56565b600555505050565b6000546001600160a01b03163314610f9b5760405162461bcd60e51b81526004016109e290612998565b60008211610fa857600080fd5b6023805461ffff191685151561ff0019161761010085151502179055600354610fd2908390612a56565b602455610fe16009600a612abb565b610feb9082612b66565b60255550505050565b3360009081526027602052604090205460ff168061101c57506000546001600160a01b031633145b6110385760405162461bcd60e51b81526004016109e290612961565b476001600160a01b0382166108fc60646110528685612b66565b61105c9190612a56565b6040518115909202916000818181858888f19350505050158015610b54573d6000803e3d6000fd5b6000610bc182600019610b5a565b3360009081526027602052604090205460ff16806110ba57506000546001600160a01b031633145b6110d65760405162461bcd60e51b81526004016109e290612961565b6021805461ffff1916610101179055565b6000546001600160a01b031633146111115760405162461bcd60e51b81526004016109e290612998565b6001600160a01b03919091166000908152602760205260409020805460ff1916911515919091179055565b600061114a6009600a612abb565b600654610c479190612a56565b6000546001600160a01b031633146111815760405162461bcd60e51b81526004016109e290612998565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111d65760405162461bcd60e51b81526004016109e290612998565b82158015906111e457508083145b6111ed57600080fd5b3360005b8481101561130b576017600087878481811061120f5761120f612be4565b905060200201602081019061122491906125a7565b6001600160a01b0316815260208101919091526040016000205460ff161580156112935750600d600087878481811061125f5761125f612be4565b905060200201602081019061127491906125a7565b6001600160a01b0316815260208101919091526040016000205460ff16155b156112f9576112f7828787848181106112ae576112ae612be4565b90506020020160208101906112c391906125a7565b6112cf6009600a612abb565b8787868181106112e1576112e1612be4565b905060200201356112f29190612b66565b611c37565b505b8061130381612bb3565b9150506111f1565b505050505050565b6000546001600160a01b0316331461133d5760405162461bcd60e51b81526004016109e290612998565b600f849055600e8390556113518484612a3e565b60105560118290556012819055611369600282612a56565b60105410610b5457600080fd5b6000546001600160a01b031633146113a05760405162461bcd60e51b81526004016109e290612998565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146114145760405162461bcd60e51b81526004016109e290612998565b601380546001600160a01b039384166001600160a01b03199182161790915560148054929093169116179055565b6000610cda338484611735565b6000546001600160a01b031633146114795760405162461bcd60e51b81526004016109e290612998565b6000821180156114895750600081115b801561149757506127108111155b6114a057600080fd5b80826003546114af9190612b66565b6114b99190612a56565b6006555050565b60006114ce6009600a612abb565b600454610c479190612a56565b6000546001600160a01b031633146115055760405162461bcd60e51b81526004016109e290612998565b603c81111561151357600080fd5b602255565b3360009081526027602052604090205460ff168061154057506000546001600160a01b031633145b61155c5760405162461bcd60e51b81526004016109e290612961565b601954610100900460ff161561157157600080fd5b6019805460ff191683151517905562015180811061158e57600080fd5b80601c60008282546115a09190612a3e565b90915550505050565b600043602054601e546115bc9190612a3e565b106115d0576001601254610bc19190612b85565b81156115e657601154601054610bc19190612a3e565b601154601054610bc19190612b85565b6000546001600160a01b031633146116205760405162461bcd60e51b81526004016109e290612998565b6001600160a01b0381166116855760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109e2565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461170a5760405162461bcd60e51b81526004016109e290612998565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b60006001600160a01b03841661178d5760405162461bcd60e51b815260206004820152601860248201527f42455032303a207472616e736665722066726f6d20307830000000000000000060448201526064016109e2565b6001600160a01b0383166117dc5760405162461bcd60e51b8152602060048201526016602482015275042455032303a207472616e7366657220746f203078360541b60448201526064016109e2565b600082116118245760405162461bcd60e51b8152602060048201526015602482015274416d6f756e74206d757374206265203e207a65726f60581b60448201526064016109e2565b6001600160a01b0384166000908152600760205260409020548211156118835760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b60448201526064016109e2565b601e541580156118ab57506001600160a01b03831660009081526017602052604090205460ff165b15611932576001600160a01b0384166000908152600d602052604090205460ff166119185760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206e6f74206164646564207965742e000000000000000060448201526064016109e2565b61193243601e5542601f556023805460ff19166001179055565b60215460ff166119bf576001600160a01b0384166000908152600d602052604090205460ff168061197b57506001600160a01b0383166000908152600d602052604090205460ff165b6119bf5760405162461bcd60e51b81526020600482015260156024820152742a3930b234b733903737ba1037b832b7103cb2ba1760591b60448201526064016109e2565b6119ca848484611cf1565b6001600160a01b03831660009081526017602052604090205460ff16158015611a0157506001546001600160a01b03848116911614155b15611a30576001600160a01b0383166000908152600c602052604090205460ff16611a3057611a308383612046565b60195460ff168015611a43575042601c54115b15611b0d576001600160a01b03841660009081526017602052604090205460ff168015611a795750326001600160a01b03841614155b8015611a9b57506001600160a01b038316600090815260186020526040902054155b15611b0d576001600160a01b0383166000908152601860205260408120439055601b805491611ac983612bb3565b91905055507f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea3284436000604051611b0494939291906128e1565b60405180910390a15b60265460ff1615611b2a57611b23848484611c37565b9050610cda565b6001600160a01b038416600090815260076020526040902054611b4e908390612b85565b6001600160a01b038516600090815260076020908152604080832093909355600b90529081205460ff1615611b835782611b8d565b611b8d84846120cb565b9050611b9884612149565b15611bac578215611bac57611bac836121c0565b6001600160a01b038416600090815260076020526040902054611bd0908290612a3e565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c249085815260200190565b60405180910390a3506001949350505050565b6001600160a01b038316600090815260076020526040812054611c5b908390612b85565b6001600160a01b038086166000908152600760205260408082209390935590851681522054611c8b908390612a3e565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cdf9086815260200190565b60405180910390a35060019392505050565b6001600160a01b0383166000908152600c602052604090205460ff1680611d4357506001600160a01b03831660009081526017602052604090205460ff16611d3b57600554611d3f565b6004545b8111155b611d835760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016109e2565b6001600160a01b0383166000908152600c602052604090205460ff1680611dcf57506022546001600160a01b0383166000908152600a60205260409020544391611dcc91612a3e565b11155b611e1b5760405162461bcd60e51b815260206004820152601d60248201527f5472616e736665722072617465206c696d69742065786365656465642e00000060448201526064016109e2565b6001600160a01b03831660009081526018602052604090205415611efe57611e456009600a612abb565b601a54611e529190612b66565b8111158015611e7757506001600160a01b038316600090815260096020526040902054155b8015611e84575042601c54115b611ee25760405162461bcd60e51b815260206004820152602960248201527f57616c6c65742070726f7465637465642c20706c6561736520636f6e746163746044820152681039bab83837b93a1760b91b60648201526084016109e2565b6001600160a01b03831660009081526009602052604090204390555b6001600160a01b03821660009081526017602052604090205460ff1615611f3d5750506001600160a01b03166000908152600960205260409020439055565b6001600160a01b0383166000908152600b602052604090205460ff166120415760195460ff168015611f70575042601c54115b8015611f8a5750326000908152600a602052604090205443145b8015611fac57506001600160a01b038216600090815260186020526040902054155b1561200d576001600160a01b03821660009081526018602052604090819020439081905590517f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea9161200491329186916001906128e1565b60405180910390a15b6001600160a01b0382166000818152600a60205260409020439055321461204157326000908152600a602052604090204390555b505050565b6006546001600160a01b038316600090815260076020526040902054819061206f908490612a3e565b11156120415760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016109e2565b6001600160a01b03821660009081526017602052604081205460125460ff9091169082906120f8836115a9565b6121029086612b66565b61210c9190612a56565b30600090815260076020526040812080549293508392909190612130908490612a3e565b9091555061214090508185612b85565b95945050505050565b3360009081526017602052604081205460ff1615801561216c575060265460ff16155b801561217a575060235460ff165b801561219e57506001600160a01b03821660009081526017602052604090205460ff165b8015610bc1575060255430600090815260076020526040902054101592915050565b6026805460ff1916600117905560245460009082106121e1576024546121e3565b815b3060009081526007602052604090205490915081111561220f5750306000908152600760205260409020545b60006010546002600f54846122249190612b66565b61222e9190612a56565b6122389190612a56565b90506122448183612b85565b6040805160028082526060820183529294506000929091602083019080368337019050509050308160008151811061227e5761227e612be4565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156122d257600080fd5b505afa1580156122e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061230a91906125c4565b8160018151811061231d5761231d612be4565b6001600160a01b03928316602091820292909201015260155460405163791ac94760e01b81524792919091169063791ac947906123679087906000908790309042906004016129cd565b600060405180830381600087803b15801561238157600080fd5b505af1158015612395573d6000803e3d6000fd5b50505050600081476123a79190612b85565b905060006002600f546123ba9190612a56565b6010546123c79190612b85565b90506000816002600f54856123dc9190612b66565b6123e69190612a56565b6123f09190612a56565b905060006123fe8285612b85565b90508015612442576014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612440573d6000803e3d6000fd5b505b86156124f05760155460135460405163f305d71960e01b8152306004820152602481018a905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990849060c4016060604051808303818588803b1580156124b357600080fd5b505af11580156124c7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906124ec9190612881565b5050505b60408051828152602081018490529081018890527fdaf6233a382145376035341e71f8a04305f7e323d0fe3e58c908cf0a26b76df99060600160405180910390a150506026805460ff1916905550505050505050565b60008083601f84011261255857600080fd5b50813567ffffffffffffffff81111561257057600080fd5b6020830191508360208260051b850101111561258b57600080fd5b9250929050565b803580151581146125a257600080fd5b919050565b6000602082840312156125b957600080fd5b8135610cda81612bfa565b6000602082840312156125d657600080fd5b8151610cda81612bfa565b600080604083850312156125f457600080fd5b82356125ff81612bfa565b9150602083013561260f81612bfa565b809150509250929050565b60008060006060848603121561262f57600080fd5b833561263a81612bfa565b9250602084013561264a81612bfa565b929592945050506040919091013590565b6000806040838503121561266e57600080fd5b823561267981612bfa565b915061268760208401612592565b90509250929050565b600080604083850312156126a357600080fd5b82356126ae81612bfa565b946020939093013593505050565b600080600080604085870312156126d257600080fd5b843567ffffffffffffffff808211156126ea57600080fd5b6126f688838901612546565b9096509450602087013591508082111561270f57600080fd5b5061271c87828801612546565b95989497509550505050565b60008060006040848603121561273d57600080fd5b833567ffffffffffffffff81111561275457600080fd5b61276086828701612546565b9094509250612773905060208501612592565b90509250925092565b60006020828403121561278e57600080fd5b610cda82612592565b600080600080608085870312156127ad57600080fd5b6127b685612592565b93506127c460208601612592565b93969395505050506040820135916060013590565b600080604083850312156127ec57600080fd5b6126ae83612592565b60006020828403121561280757600080fd5b5035919050565b6000806040838503121561282157600080fd5b82359150602083013561260f81612bfa565b6000806040838503121561284657600080fd5b50508035926020909101359150565b60008060006060848603121561286a57600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561289657600080fd5b8351925060208401519150604084015190509250925092565b600080600080608085870312156128c557600080fd5b5050823594602084013594506040840135936060013592509050565b6001600160a01b039485168152929093166020830152604082015260ff909116606082015260800190565b600060208083528351808285015260005b818110156129395785810183015185820160400152820161291d565b8181111561294b576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252601b908201527f43616c6c6572206973206e6f742061207465616d206d656d6265720000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612a1d5784516001600160a01b0316835293830193918301916001016129f8565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115612a5157612a51612bce565b500190565b600082612a7357634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115612ab3578160001904821115612a9957612a99612bce565b80851615612aa657918102915b93841c9390800290612a7d565b509250929050565b6000610cda60ff841683600082612ad457506001610bc1565b81612ae157506000610bc1565b8160018114612af75760028114612b0157612b1d565b6001915050610bc1565b60ff841115612b1257612b12612bce565b50506001821b610bc1565b5060208310610133831016604e8410600b8410161715612b40575081810a610bc1565b612b4a8383612a78565b8060001904821115612b5e57612b5e612bce565b029392505050565b6000816000190483118215151615612b8057612b80612bce565b500290565b600082821015612b9757612b97612bce565b500390565b600081612bab57612bab612bce565b506000190190565b6000600019821415612bc757612bc7612bce565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114612c0f57600080fd5b5056fea2646970667358221220ad73ce36f00ccbbf36822f28d80559a33a7f3f646da6129e5471e151dd4a120564736f6c63430008070033

Deployed Bytecode

0x6080604052600436106103035760003560e01c80636f4ce42811610190578063bf56b371116100dc578063e96fada211610095578063f84ba65d1161006f578063f84ba65d14610932578063f8821a6214610952578063f887ea4014610968578063fabb0b4f1461098857600080fd5b8063e96fada2146108d2578063f1f3bca3146108f2578063f2fde38b1461091257600080fd5b8063bf56b371146107e9578063bfa21d6a146107ff578063c1adf7bc1461081f578063c287184e1461084c578063d68601421461086c578063dd62ed3e1461088c57600080fd5b806395d89b4111610149578063a8aa1b3111610123578063a8aa1b3114610774578063a9059cbb14610794578063abe57e70146107b4578063bafe446b146107d457600080fd5b806395d89b41146107115780639b02c4021461073e578063a4b45c001461075457600080fd5b80636f4ce428146106295780636fcba3771461065657806370a0823114610676578063715018a6146106ac578063893d20e8146106c15780638da5cb5b146106f357600080fd5b8063492a937b1161024f578063584f969a1161020857806363a803e1116101e257806363a803e1146105ba578063658d4b7f146105cf57806367243482146105ef5780636ddd17131461060f57600080fd5b8063584f969a1461056f57806360bba03d1461058457806361e08e72146105a457600080fd5b8063492a937b146104b957806350713935146104d957806354a1dfc9146104f957806356a227f214610519578063571ac8b0146105395780635804f1e41461055957600080fd5b8063234e9494116102bc578063313ce56711610296578063313ce5671461043b57806334848b9a14610457578063421dd7c71461047757806346d7edaa1461048c57600080fd5b8063234e9494146103f157806323b872dd146104065780632b112e491461042657600080fd5b80630445b6671461030f57806306fdde0314610338578063095db78f14610375578063095ea7b3146103975780631031e36e146103c757806318160ddd146103dc57600080fd5b3661030a57005b600080fd5b34801561031b57600080fd5b5061032560245481565b6040519081526020015b60405180910390f35b34801561034457600080fd5b5060408051808201909152600b81526a0a6a8829c409e9c408aa8960ab1b60208201525b60405161032f919061290c565b34801561038157600080fd5b50610395610390366004612728565b61099e565b005b3480156103a357600080fd5b506103b76103b2366004612690565b610b5a565b604051901515815260200161032f565b3480156103d357600080fd5b50610395610bc7565b3480156103e857600080fd5b50600354610325565b3480156103fd57600080fd5b50610325610c2c565b34801561041257600080fd5b506103b761042136600461261a565b610c4c565b34801561043257600080fd5b50610325610ce1565b34801561044757600080fd5b506040516009815260200161032f565b34801561046357600080fd5b50610395610472366004612855565b610d22565b34801561048357600080fd5b50610395610dc3565b34801561049857600080fd5b506103256104a73660046125a7565b60186020526000908152604090205481565b3480156104c557600080fd5b506103956104d436600461265b565b610e18565b3480156104e557600080fd5b506103956104f4366004612855565b610ed6565b34801561050557600080fd5b50610395610514366004612797565b610f71565b34801561052557600080fd5b5061039561053436600461280e565b610ff4565b34801561054557600080fd5b506103b76105543660046125a7565b611084565b34801561056557600080fd5b50610325601f5481565b34801561057b57600080fd5b50610395611092565b34801561059057600080fd5b5061039561059f36600461265b565b6110e7565b3480156105b057600080fd5b5061032560225481565b3480156105c657600080fd5b5061032561113c565b3480156105db57600080fd5b506103956105ea36600461265b565b611157565b3480156105fb57600080fd5b5061039561060a3660046126bc565b6111ac565b34801561061b57600080fd5b506023546103b79060ff1681565b34801561063557600080fd5b506103256106443660046125a7565b60096020526000908152604090205481565b34801561066257600080fd5b506103956106713660046128af565b611313565b34801561068257600080fd5b506103256106913660046125a7565b6001600160a01b031660009081526007602052604090205490565b3480156106b857600080fd5b50610395611376565b3480156106cd57600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161032f565b3480156106ff57600080fd5b506000546001600160a01b03166106db565b34801561071d57600080fd5b5060408051808201909152600481526329aa20a760e11b6020820152610368565b34801561074a57600080fd5b50610325601b5481565b34801561076057600080fd5b5061039561076f3660046125e1565b6113ea565b34801561078057600080fd5b50601d546106db906001600160a01b031681565b3480156107a057600080fd5b506103b76107af366004612690565b611442565b3480156107c057600080fd5b506103956107cf366004612833565b61144f565b3480156107e057600080fd5b506103256114c0565b3480156107f557600080fd5b50610325601e5481565b34801561080b57600080fd5b506013546106db906001600160a01b031681565b34801561082b57600080fd5b5061032561083a3660046125a7565b600a6020526000908152604090205481565b34801561085857600080fd5b506103956108673660046127f5565b6114db565b34801561087857600080fd5b506103956108873660046127d9565b611518565b34801561089857600080fd5b506103256108a73660046125e1565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b3480156108de57600080fd5b506014546106db906001600160a01b031681565b3480156108fe57600080fd5b5061032561090d36600461277c565b6115a9565b34801561091e57600080fd5b5061039561092d3660046125a7565b6115f6565b34801561093e57600080fd5b5061039561094d36600461265b565b6116e0565b34801561095e57600080fd5b5061032560255481565b34801561097457600080fd5b506015546106db906001600160a01b031681565b34801561099457600080fd5b5061032560205481565b3360009081526027602052604090205460ff16806109c657506000546001600160a01b031633145b6109eb5760405162461bcd60e51b81526004016109e290612961565b60405180910390fd5b8015610a005760195460ff16610a0057600080fd5b60005b82811015610b54578115610a8f57601b8054906000610a2183612bb3565b91905055507f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea32858584818110610a5a57610a5a612be4565b9050602002016020810190610a6f91906125a7565b436002604051610a8294939291906128e1565b60405180910390a1610aef565b60186000858584818110610aa557610aa5612be4565b9050602002016020810190610aba91906125a7565b6001600160a01b0316815260208101919091526040016000205415610aef57601b8054906000610ae983612b9c565b91905055505b81610afb576000610afd565b435b60186000868685818110610b1357610b13612be4565b9050602002016020810190610b2891906125a7565b6001600160a01b0316815260208101919091526040016000205580610b4c81612bb3565b915050610a03565b50505050565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610bb59086815260200190565b60405180910390a35060015b92915050565b3360009081526027602052604090205460ff1680610bef57506000546001600160a01b031633145b610c0b5760405162461bcd60e51b81526004016109e290612961565b602154610100900460ff1615610c2057600080fd5b6021805460ff19169055565b6000610c3a6009600a612abb565b600554610c479190612a56565b905090565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610ccc576001600160a01b0384166000908152600860209081526040808320338452909152902054610ca7908390612b85565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610cd7848484611735565b90505b9392505050565b6002546001600160a01b039081166000908152600760205260408082205460015490931682528120549091610d1591612a3e565b600354610c479190612b85565b3360009081526027602052604090205460ff1680610d4a57506000546001600160a01b031633145b610d665760405162461bcd60e51b81526004016109e290612961565b60215460ff16158015610d795750600a83105b610d8257600080fd5b60208390556021805460ff1916600117905543601e55610da28242612a3e565b601c55610db16009600a612abb565b610dbb9082612b66565b601a55505050565b3360009081526027602052604090205460ff1680610deb57506000546001600160a01b031633145b610e075760405162461bcd60e51b81526004016109e290612961565b6019805461ffff1916610100179055565b6000546001600160a01b03163314610e425760405162461bcd60e51b81526004016109e290612998565b601d546001600160a01b0383811691161415610eab5760405162461bcd60e51b815260206004820152602260248201527f43616e277420616c7465722063757272656e74206c697175696469747920706160448201526134b960f11b60648201526084016109e2565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610f005760405162461bcd60e51b81526004016109e290612998565b600083118015610f105750600082115b8015610f1c5750600081115b8015610f2a57506127108111155b610f3357600080fd5b8083600354610f429190612b66565b610f4c9190612a56565b6004556003548190610f5f908490612b66565b610f699190612a56565b600555505050565b6000546001600160a01b03163314610f9b5760405162461bcd60e51b81526004016109e290612998565b60008211610fa857600080fd5b6023805461ffff191685151561ff0019161761010085151502179055600354610fd2908390612a56565b602455610fe16009600a612abb565b610feb9082612b66565b60255550505050565b3360009081526027602052604090205460ff168061101c57506000546001600160a01b031633145b6110385760405162461bcd60e51b81526004016109e290612961565b476001600160a01b0382166108fc60646110528685612b66565b61105c9190612a56565b6040518115909202916000818181858888f19350505050158015610b54573d6000803e3d6000fd5b6000610bc182600019610b5a565b3360009081526027602052604090205460ff16806110ba57506000546001600160a01b031633145b6110d65760405162461bcd60e51b81526004016109e290612961565b6021805461ffff1916610101179055565b6000546001600160a01b031633146111115760405162461bcd60e51b81526004016109e290612998565b6001600160a01b03919091166000908152602760205260409020805460ff1916911515919091179055565b600061114a6009600a612abb565b600654610c479190612a56565b6000546001600160a01b031633146111815760405162461bcd60e51b81526004016109e290612998565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111d65760405162461bcd60e51b81526004016109e290612998565b82158015906111e457508083145b6111ed57600080fd5b3360005b8481101561130b576017600087878481811061120f5761120f612be4565b905060200201602081019061122491906125a7565b6001600160a01b0316815260208101919091526040016000205460ff161580156112935750600d600087878481811061125f5761125f612be4565b905060200201602081019061127491906125a7565b6001600160a01b0316815260208101919091526040016000205460ff16155b156112f9576112f7828787848181106112ae576112ae612be4565b90506020020160208101906112c391906125a7565b6112cf6009600a612abb565b8787868181106112e1576112e1612be4565b905060200201356112f29190612b66565b611c37565b505b8061130381612bb3565b9150506111f1565b505050505050565b6000546001600160a01b0316331461133d5760405162461bcd60e51b81526004016109e290612998565b600f849055600e8390556113518484612a3e565b60105560118290556012819055611369600282612a56565b60105410610b5457600080fd5b6000546001600160a01b031633146113a05760405162461bcd60e51b81526004016109e290612998565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146114145760405162461bcd60e51b81526004016109e290612998565b601380546001600160a01b039384166001600160a01b03199182161790915560148054929093169116179055565b6000610cda338484611735565b6000546001600160a01b031633146114795760405162461bcd60e51b81526004016109e290612998565b6000821180156114895750600081115b801561149757506127108111155b6114a057600080fd5b80826003546114af9190612b66565b6114b99190612a56565b6006555050565b60006114ce6009600a612abb565b600454610c479190612a56565b6000546001600160a01b031633146115055760405162461bcd60e51b81526004016109e290612998565b603c81111561151357600080fd5b602255565b3360009081526027602052604090205460ff168061154057506000546001600160a01b031633145b61155c5760405162461bcd60e51b81526004016109e290612961565b601954610100900460ff161561157157600080fd5b6019805460ff191683151517905562015180811061158e57600080fd5b80601c60008282546115a09190612a3e565b90915550505050565b600043602054601e546115bc9190612a3e565b106115d0576001601254610bc19190612b85565b81156115e657601154601054610bc19190612a3e565b601154601054610bc19190612b85565b6000546001600160a01b031633146116205760405162461bcd60e51b81526004016109e290612998565b6001600160a01b0381166116855760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109e2565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461170a5760405162461bcd60e51b81526004016109e290612998565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b60006001600160a01b03841661178d5760405162461bcd60e51b815260206004820152601860248201527f42455032303a207472616e736665722066726f6d20307830000000000000000060448201526064016109e2565b6001600160a01b0383166117dc5760405162461bcd60e51b8152602060048201526016602482015275042455032303a207472616e7366657220746f203078360541b60448201526064016109e2565b600082116118245760405162461bcd60e51b8152602060048201526015602482015274416d6f756e74206d757374206265203e207a65726f60581b60448201526064016109e2565b6001600160a01b0384166000908152600760205260409020548211156118835760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b60448201526064016109e2565b601e541580156118ab57506001600160a01b03831660009081526017602052604090205460ff165b15611932576001600160a01b0384166000908152600d602052604090205460ff166119185760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206e6f74206164646564207965742e000000000000000060448201526064016109e2565b61193243601e5542601f556023805460ff19166001179055565b60215460ff166119bf576001600160a01b0384166000908152600d602052604090205460ff168061197b57506001600160a01b0383166000908152600d602052604090205460ff165b6119bf5760405162461bcd60e51b81526020600482015260156024820152742a3930b234b733903737ba1037b832b7103cb2ba1760591b60448201526064016109e2565b6119ca848484611cf1565b6001600160a01b03831660009081526017602052604090205460ff16158015611a0157506001546001600160a01b03848116911614155b15611a30576001600160a01b0383166000908152600c602052604090205460ff16611a3057611a308383612046565b60195460ff168015611a43575042601c54115b15611b0d576001600160a01b03841660009081526017602052604090205460ff168015611a795750326001600160a01b03841614155b8015611a9b57506001600160a01b038316600090815260186020526040902054155b15611b0d576001600160a01b0383166000908152601860205260408120439055601b805491611ac983612bb3565b91905055507f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea3284436000604051611b0494939291906128e1565b60405180910390a15b60265460ff1615611b2a57611b23848484611c37565b9050610cda565b6001600160a01b038416600090815260076020526040902054611b4e908390612b85565b6001600160a01b038516600090815260076020908152604080832093909355600b90529081205460ff1615611b835782611b8d565b611b8d84846120cb565b9050611b9884612149565b15611bac578215611bac57611bac836121c0565b6001600160a01b038416600090815260076020526040902054611bd0908290612a3e565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c249085815260200190565b60405180910390a3506001949350505050565b6001600160a01b038316600090815260076020526040812054611c5b908390612b85565b6001600160a01b038086166000908152600760205260408082209390935590851681522054611c8b908390612a3e565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cdf9086815260200190565b60405180910390a35060019392505050565b6001600160a01b0383166000908152600c602052604090205460ff1680611d4357506001600160a01b03831660009081526017602052604090205460ff16611d3b57600554611d3f565b6004545b8111155b611d835760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016109e2565b6001600160a01b0383166000908152600c602052604090205460ff1680611dcf57506022546001600160a01b0383166000908152600a60205260409020544391611dcc91612a3e565b11155b611e1b5760405162461bcd60e51b815260206004820152601d60248201527f5472616e736665722072617465206c696d69742065786365656465642e00000060448201526064016109e2565b6001600160a01b03831660009081526018602052604090205415611efe57611e456009600a612abb565b601a54611e529190612b66565b8111158015611e7757506001600160a01b038316600090815260096020526040902054155b8015611e84575042601c54115b611ee25760405162461bcd60e51b815260206004820152602960248201527f57616c6c65742070726f7465637465642c20706c6561736520636f6e746163746044820152681039bab83837b93a1760b91b60648201526084016109e2565b6001600160a01b03831660009081526009602052604090204390555b6001600160a01b03821660009081526017602052604090205460ff1615611f3d5750506001600160a01b03166000908152600960205260409020439055565b6001600160a01b0383166000908152600b602052604090205460ff166120415760195460ff168015611f70575042601c54115b8015611f8a5750326000908152600a602052604090205443145b8015611fac57506001600160a01b038216600090815260186020526040902054155b1561200d576001600160a01b03821660009081526018602052604090819020439081905590517f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea9161200491329186916001906128e1565b60405180910390a15b6001600160a01b0382166000818152600a60205260409020439055321461204157326000908152600a602052604090204390555b505050565b6006546001600160a01b038316600090815260076020526040902054819061206f908490612a3e565b11156120415760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016109e2565b6001600160a01b03821660009081526017602052604081205460125460ff9091169082906120f8836115a9565b6121029086612b66565b61210c9190612a56565b30600090815260076020526040812080549293508392909190612130908490612a3e565b9091555061214090508185612b85565b95945050505050565b3360009081526017602052604081205460ff1615801561216c575060265460ff16155b801561217a575060235460ff165b801561219e57506001600160a01b03821660009081526017602052604090205460ff165b8015610bc1575060255430600090815260076020526040902054101592915050565b6026805460ff1916600117905560245460009082106121e1576024546121e3565b815b3060009081526007602052604090205490915081111561220f5750306000908152600760205260409020545b60006010546002600f54846122249190612b66565b61222e9190612a56565b6122389190612a56565b90506122448183612b85565b6040805160028082526060820183529294506000929091602083019080368337019050509050308160008151811061227e5761227e612be4565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156122d257600080fd5b505afa1580156122e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061230a91906125c4565b8160018151811061231d5761231d612be4565b6001600160a01b03928316602091820292909201015260155460405163791ac94760e01b81524792919091169063791ac947906123679087906000908790309042906004016129cd565b600060405180830381600087803b15801561238157600080fd5b505af1158015612395573d6000803e3d6000fd5b50505050600081476123a79190612b85565b905060006002600f546123ba9190612a56565b6010546123c79190612b85565b90506000816002600f54856123dc9190612b66565b6123e69190612a56565b6123f09190612a56565b905060006123fe8285612b85565b90508015612442576014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612440573d6000803e3d6000fd5b505b86156124f05760155460135460405163f305d71960e01b8152306004820152602481018a905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990849060c4016060604051808303818588803b1580156124b357600080fd5b505af11580156124c7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906124ec9190612881565b5050505b60408051828152602081018490529081018890527fdaf6233a382145376035341e71f8a04305f7e323d0fe3e58c908cf0a26b76df99060600160405180910390a150506026805460ff1916905550505050505050565b60008083601f84011261255857600080fd5b50813567ffffffffffffffff81111561257057600080fd5b6020830191508360208260051b850101111561258b57600080fd5b9250929050565b803580151581146125a257600080fd5b919050565b6000602082840312156125b957600080fd5b8135610cda81612bfa565b6000602082840312156125d657600080fd5b8151610cda81612bfa565b600080604083850312156125f457600080fd5b82356125ff81612bfa565b9150602083013561260f81612bfa565b809150509250929050565b60008060006060848603121561262f57600080fd5b833561263a81612bfa565b9250602084013561264a81612bfa565b929592945050506040919091013590565b6000806040838503121561266e57600080fd5b823561267981612bfa565b915061268760208401612592565b90509250929050565b600080604083850312156126a357600080fd5b82356126ae81612bfa565b946020939093013593505050565b600080600080604085870312156126d257600080fd5b843567ffffffffffffffff808211156126ea57600080fd5b6126f688838901612546565b9096509450602087013591508082111561270f57600080fd5b5061271c87828801612546565b95989497509550505050565b60008060006040848603121561273d57600080fd5b833567ffffffffffffffff81111561275457600080fd5b61276086828701612546565b9094509250612773905060208501612592565b90509250925092565b60006020828403121561278e57600080fd5b610cda82612592565b600080600080608085870312156127ad57600080fd5b6127b685612592565b93506127c460208601612592565b93969395505050506040820135916060013590565b600080604083850312156127ec57600080fd5b6126ae83612592565b60006020828403121561280757600080fd5b5035919050565b6000806040838503121561282157600080fd5b82359150602083013561260f81612bfa565b6000806040838503121561284657600080fd5b50508035926020909101359150565b60008060006060848603121561286a57600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561289657600080fd5b8351925060208401519150604084015190509250925092565b600080600080608085870312156128c557600080fd5b5050823594602084013594506040840135936060013592509050565b6001600160a01b039485168152929093166020830152604082015260ff909116606082015260800190565b600060208083528351808285015260005b818110156129395785810183015185820160400152820161291d565b8181111561294b576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252601b908201527f43616c6c6572206973206e6f742061207465616d206d656d6265720000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612a1d5784516001600160a01b0316835293830193918301916001016129f8565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115612a5157612a51612bce565b500190565b600082612a7357634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115612ab3578160001904821115612a9957612a99612bce565b80851615612aa657918102915b93841c9390800290612a7d565b509250929050565b6000610cda60ff841683600082612ad457506001610bc1565b81612ae157506000610bc1565b8160018114612af75760028114612b0157612b1d565b6001915050610bc1565b60ff841115612b1257612b12612bce565b50506001821b610bc1565b5060208310610133831016604e8410600b8410161715612b40575081810a610bc1565b612b4a8383612a78565b8060001904821115612b5e57612b5e612bce565b029392505050565b6000816000190483118215151615612b8057612b80612bce565b500290565b600082821015612b9757612b97612bce565b500390565b600081612bab57612bab612bce565b506000190190565b6000600019821415612bc757612bc7612bce565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114612c0f57600080fd5b5056fea2646970667358221220ad73ce36f00ccbbf36822f28d80559a33a7f3f646da6129e5471e151dd4a120564736f6c63430008070033

Deployed Bytecode Sourcemap

10587:16338:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12586:50;;;;;;;;;;;;;;;;;;;15227:25:1;;;15215:2;15200:18;12586:50:0;;;;;;;;14091:71;;;;;;;;;;-1:-1:-1;14154:5:0;;;;;;;;;;;;-1:-1:-1;;;14154:5:0;;;;14091:71;;;;;;;:::i;17047:617::-;;;;;;;;;;-1:-1:-1;17047:617:0;;;;;:::i;:::-;;:::i;:::-;;14832:216;;;;;;;;;;-1:-1:-1;14832:216:0;;;;;:::i;:::-;;:::i;:::-;;;9073:14:1;;9066:22;9048:41;;9036:2;9021:18;14832:216:0;8908:187:1;16411:115:0;;;;;;;;;;;;;:::i;13839:88::-;;;;;;;;;;-1:-1:-1;13912:12:0;;13839:88;;14356:107;;;;;;;;;;;;;:::i;17836:341::-;;;;;;;;;;-1:-1:-1;17836:341:0;;;;;:::i;:::-;;:::i;26678:138::-;;;;;;;;;;;;;:::i;13933:71::-;;;;;;;;;;-1:-1:-1;13933:71:0;;10910:1;16714:36:1;;16702:2;16687:18;13933:71:0;16572:184:1;16027:372:0;;;;;;;;;;-1:-1:-1;16027:372:0;;;;;:::i;:::-;;:::i;16908:127::-;;;;;;;;;;;;;:::i;12062:45::-;;;;;;;;;;-1:-1:-1;12062:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;24498:184;;;;;;;;;;-1:-1:-1;24498:184:0;;;;;:::i;:::-;;:::i;24826:339::-;;;;;;;;;;-1:-1:-1;24826:339:0;;;;;:::i;:::-;;:::i;26310:360::-;;;;;;;;;;-1:-1:-1;26310:360:0;;;;;:::i;:::-;;:::i;15801:214::-;;;;;;;;;;-1:-1:-1;15801:214:0;;;;;:::i;:::-;;:::i;15056:122::-;;;;;;;;;;-1:-1:-1;15056:122:0;;;;;:::i;:::-;;:::i;12347:27::-;;;;;;;;;;;;;;;;16538:111;;;;;;;;;;;;;:::i;15190:119::-;;;;;;;;;;-1:-1:-1;15190:119:0;;;;;:::i;:::-;;:::i;12478:28::-;;;;;;;;;;;;;;;;14469:105;;;;;;;;;;;;;:::i;25404:119::-;;;;;;;;;;-1:-1:-1;25404:119:0;;;;;:::i;:::-;;:::i;15321:468::-;;;;;;;;;;-1:-1:-1;15321:468:0;;;;;:::i;:::-;;:::i;12515:31::-;;;;;;;;;;-1:-1:-1;12515:31:0;;;;;;;;11270:44;;;;;;;;;;-1:-1:-1;11270:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;25666:386;;;;;;;;;;-1:-1:-1;25666:386:0;;;;;:::i;:::-;;:::i;14580:105::-;;;;;;;;;;-1:-1:-1;14580:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;14664:18:0;14646:7;14664:18;;;:9;:18;;;;;;;14580:105;10182:148;;;;;;;;;;;;;:::i;14168:71::-;;;;;;;;;;-1:-1:-1;14211:7:0;10037:6;-1:-1:-1;;;;;10037:6:0;14168:71;;;-1:-1:-1;;;;;6613:32:1;;;6595:51;;6583:2;6568:18;14168:71:0;6449:203:1;9972:79:0;;;;;;;;;;-1:-1:-1;10010:7:0;10037:6;-1:-1:-1;;;;;10037:6:0;9972:79;;14010:75;;;;;;;;;;-1:-1:-1;14075:7:0;;;;;;;;;;;;-1:-1:-1;;;14075:7:0;;;;14010:75;;12218:30;;;;;;;;;;;;;;;;26060:242;;;;;;;;;;-1:-1:-1;26060:242:0;;;;;:::i;:::-;;:::i;12287:19::-;;;;;;;;;;-1:-1:-1;12287:19:0;;;;-1:-1:-1;;;;;12287:19:0;;;17672:156;;;;;;;;;;-1:-1:-1;17672:156:0;;;;;:::i;:::-;;:::i;25177:219::-;;;;;;;;;;-1:-1:-1;25177:219:0;;;;;:::i;:::-;;:::i;14245:105::-;;;;;;;;;;;;;:::i;12315:25::-;;;;;;;;;;;;;;;;11701:97;;;;;;;;;;-1:-1:-1;11701:97:0;;;;-1:-1:-1;;;;;11701:97:0;;;11321:43;;;;;;;;;;-1:-1:-1;11321:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;24690:128;;;;;;;;;;-1:-1:-1;24690:128:0;;;;;:::i;:::-;;:::i;16661:235::-;;;;;;;;;;-1:-1:-1;16661:235:0;;;;;:::i;:::-;;:::i;14691:133::-;;;;;;;;;;-1:-1:-1;14691:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;14793:19:0;;;14775:7;14793:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;14691:133;11805:97;;;;;;;;;;-1:-1:-1;11805:97:0;;;;-1:-1:-1;;;;;11805:97:0;;;22083:243;;;;;;;;;;-1:-1:-1;22083:243:0;;;;;:::i;:::-;;:::i;10336:244::-;;;;;;;;;;-1:-1:-1;10336:244:0;;;;;:::i;:::-;;:::i;25531:127::-;;;;;;;;;;-1:-1:-1;25531:127:0;;;;;:::i;:::-;;:::i;12643:49::-;;;;;;;;;;;;;;;;11911:24;;;;;;;;;;-1:-1:-1;11911:24:0;;;;-1:-1:-1;;;;;11911:24:0;;;12381:25;;;;;;;;;;;;;;;;17047:617;8087:10;12874:24;;;;:10;:24;;;;;;;;;:49;;-1:-1:-1;10010:7:0;10037:6;-1:-1:-1;;;;;10037:6:0;12902:10;:21;12874:49;12866:89;;;;-1:-1:-1;;;12866:89:0;;;;;;;:::i;:::-;;;;;;;;;17147:8:::1;17143:67;;;17180:17;::::0;::::1;;17172:26;;;::::0;::::1;;17235:6;17230:427;17247:19:::0;;::::1;17230:427;;;17306:8;17302:277;;;17335:15;:17:::0;;;:15:::1;:17;::::0;::::1;:::i;:::-;;;;;;17376:56;17392:9;17403:8;;17412:1;17403:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;17416:12;17430:1;17376:56;;;;;;;;;:::i;:::-;;;;;;;;17302:277;;;17490:9;:22;17500:8;;17509:1;17500:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17490:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17490:22:0;;:27;17486:71:::1;;17540:15;:17:::0;;;:15:::1;:17;::::0;::::1;:::i;:::-;;;;;;17486:71;17618:8;:27;;17644:1;17618:27;;;17629:12;17618:27;17593:9;:22;17603:8;;17612:1;17603:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17593:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17593:22:0;:52;17268:3;::::1;::::0;::::1;:::i;:::-;;;;17230:427;;;;17047:617:::0;;;:::o;14832:216::-;14936:10;14907:4;14924:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;14924:32:0;;;;;;;;;;:41;;;14981:37;14907:4;;14924:32;;14981:37;;;;14959:6;15227:25:1;;15215:2;15200:18;;15081:177;14981:37:0;;;;;;;;-1:-1:-1;15036:4:0;14832:216;;;;;:::o;16411:115::-;8087:10;12874:24;;;;:10;:24;;;;;;;;;:49;;-1:-1:-1;10010:7:0;10037:6;-1:-1:-1;;;;;10037:6:0;12902:10;:21;12874:49;12866:89;;;;-1:-1:-1;;;12866:89:0;;;;;;;:::i;:::-;16473:13:::1;::::0;::::1;::::0;::::1;;;16472:14;16464:23;;;::::0;::::1;;16498:12;:20:::0;;-1:-1:-1;;16498:20:0::1;::::0;;16411:115::o;14356:107::-;14406:7;14444:15;10910:1;14444:2;:15;:::i;:::-;14424:16;;:36;;;;:::i;:::-;14417:43;;14356:107;:::o;17836:341::-;-1:-1:-1;;;;;17956:19:0;;17936:4;17956:19;;;:11;:19;;;;;;;;17976:10;17956:31;;;;;;;;-1:-1:-1;;17956:52:0;17953:157;;-1:-1:-1;;;;;18058:19:0;;;;;;:11;:19;;;;;;;;18078:10;18058:31;;;;;;;;:40;;18092:6;;18058:40;:::i;:::-;-1:-1:-1;;;;;18024:19:0;;;;;;:11;:19;;;;;;;;18044:10;18024:31;;;;;;;:74;17953:157;18129:40;18143:6;18151:9;18162:6;18129:13;:40::i;:::-;18122:47;;17836:341;;;;;;:::o;26678:138::-;26802:4;;-1:-1:-1;;;;;26802:4:0;;;26731:7;14664:18;;;:9;:18;;;;;;;26784:4;;;;;14664:18;;;;;26731:7;;26774:33;;;:::i;:::-;26758:12;;:50;;;;:::i;16027:372::-;8087:10;12874:24;;;;:10;:24;;;;;;;;;:49;;-1:-1:-1;10010:7:0;10037:6;-1:-1:-1;;;;;10037:6:0;12902:10;:21;12874:49;12866:89;;;;-1:-1:-1;;;12866:89:0;;;;;;;:::i;:::-;16144:12:::1;::::0;::::1;;16143:13;:33:::0;::::1;;;;16174:2;16160:11;:16;16143:33;16135:42;;;::::0;::::1;;16188:10;:24:::0;;;16223:12:::1;:19:::0;;-1:-1:-1;;16223:19:0::1;16238:4;16223:19;::::0;;16266:12:::1;16253:10;:25:::0;16307:29:::1;16325:11:::0;16307:15:::1;:29;:::i;:::-;16289:15;:47:::0;16375:15:::1;10910:1;16375:2;:15;:::i;:::-;16365:26;::::0;:6;:26:::1;:::i;:::-;16347:15;:44:::0;-1:-1:-1;;;16027:372:0:o;16908:127::-;8087:10;12874:24;;;;:10;:24;;;;;;;;;:49;;-1:-1:-1;10010:7:0;10037:6;-1:-1:-1;;;;;10037:6:0;12902:10;:21;12874:49;12866:89;;;;-1:-1:-1;;;12866:89:0;;;;;;;:::i;:::-;16966:18:::1;:25:::0;;-1:-1:-1;;17002:25:0;16966::::1;17002::::0;;;16908:127::o;24498:184::-;10097:6;;-1:-1:-1;;;;;10097:6:0;8087:10;10097:22;10089:67;;;;-1:-1:-1;;;10089:67:0;;;;;;;:::i;:::-;24593:4:::1;::::0;-1:-1:-1;;;;;24587:10:0;;::::1;24593:4:::0;::::1;24587:10;;24579:57;;;::::0;-1:-1:-1;;;24579:57:0;;14880:2:1;24579:57:0::1;::::0;::::1;14862:21:1::0;14919:2;14899:18;;;14892:30;14958:34;14938:18;;;14931:62;-1:-1:-1;;;15009:18:1;;;15002:32;15051:19;;24579:57:0::1;14678:398:1::0;24579:57:0::1;-1:-1:-1::0;;;;;24647:18:0;;;::::1;;::::0;;;:14:::1;:18;::::0;;;;:27;;-1:-1:-1;;24647:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24498:184::o;24826:339::-;10097:6;;-1:-1:-1;;;;;10097:6:0;8087:10;10097:22;10089:67;;;;-1:-1:-1;;;10089:67:0;;;;;;;:::i;:::-;24961:1:::1;24946:12;:16;:37;;;;;24982:1;24966:13;:17;24946:37;:52;;;;;24997:1;24987:7;:11;24946:52;:72;;;;;25013:5;25002:7;:16;;24946:72;24938:81;;;::::0;::::1;;25080:7;25064:12;25049;;:27;;;;:::i;:::-;25048:39;;;;:::i;:::-;25030:15;:57:::0;25118:12:::1;::::0;25150:7;;25118:28:::1;::::0;25133:13;;25118:28:::1;:::i;:::-;25117:40;;;;:::i;:::-;25098:16;:59:::0;-1:-1:-1;;;24826:339:0:o;26310:360::-;10097:6;;-1:-1:-1;;;;;10097:6:0;8087:10;10097:22;10089:67;;;;-1:-1:-1;;;10089:67:0;;;;;;;:::i;:::-;26473:1:::1;26458:12;:16;26450:25;;;::::0;::::1;;26486:11;:22:::0;;-1:-1:-1;;26519:32:0;26486:22;::::1;;-1:-1:-1::0;;26519:32:0;;26486:22:::1;26519:32:::0;::::1;;;;::::0;;26578:12:::1;::::0;:27:::1;::::0;26593:12;;26578:27:::1;:::i;:::-;26562:13;:43:::0;26646:15:::1;10910:1;26646:2;:15;:::i;:::-;26630:32;::::0;:12;:32:::1;:::i;:::-;26616:11;:46:::0;-1:-1:-1;;;;26310:360:0:o;15801:214::-;8087:10;12874:24;;;;:10;:24;;;;;;;;;:49;;-1:-1:-1;10010:7:0;10037:6;-1:-1:-1;;;;;10037:6:0;12902:10;:21;12874:49;12866:89;;;;-1:-1:-1;;;12866:89:0;;;;;;;:::i;:::-;15916:21:::1;-1:-1:-1::0;;;;;15948:21:0;::::1;:59;16003:3;15971:28;15983:16:::0;15916:21;15971:28:::1;:::i;:::-;15970:36;;;;:::i;:::-;15948:59;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;15056:122:::0;15111:4;15135:35;15143:7;-1:-1:-1;;15135:7:0;:35::i;16538:111::-;8087:10;12874:24;;;;:10;:24;;;;;;;;;:49;;-1:-1:-1;10010:7:0;10037:6;-1:-1:-1;;;;;10037:6:0;12902:10;:21;12874:49;12866:89;;;;-1:-1:-1;;;12866:89:0;;;;;;;:::i;:::-;16591:13:::1;:20:::0;;-1:-1:-1;;16622:19:0;;;;;16538:111::o;15190:119::-;10097:6;;-1:-1:-1;;;;;10097:6:0;8087:10;10097:22;10089:67;;;;-1:-1:-1;;;10089:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15273:17:0;;;::::1;;::::0;;;:10:::1;:17;::::0;;;;:28;;-1:-1:-1;;15273:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15190:119::o;14469:105::-;14519:7;14555:15;10910:1;14555:2;:15;:::i;:::-;14537:14;;:34;;;;:::i;25404:119::-;10097:6;;-1:-1:-1;;;;;10097:6:0;8087:10;10097:22;10089:67;;;;-1:-1:-1;;;10089:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25487:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;25487:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25404:119::o;15321:468::-;10097:6;;-1:-1:-1;;;;;10097:6:0;8087:10;10097:22;10089:67;;;;-1:-1:-1;;;10089:67:0;;;;;;;:::i;:::-;15434:20;;;;;:58:::1;;-1:-1:-1::0;15458:34:0;;::::1;15434:58;15426:67;;;::::0;::::1;;15519:10;15504:12;15542:240;15559:20:::0;;::::1;15542:240;;;15605:14;:28;15620:9;;15630:1;15620:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15605:28:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;15605:28:0;;::::1;;15604:29;:64:::0;::::1;;;;15638:16;:30;15655:9;;15665:1;15655:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15638:30:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;15638:30:0;;::::1;;15637:31;15604:64;15601:170;;;15689:66;15704:4;15710:9;;15720:1;15710:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;15738:15;10910:1;15738:2;:15;:::i;:::-;15724:7;;15732:1;15724:10;;;;;;;:::i;:::-;;;;;;;:30;;;;:::i;:::-;15689:14;:66::i;:::-;;15601:170;15581:3:::0;::::1;::::0;::::1;:::i;:::-;;;;15542:240;;;;15415:374;15321:468:::0;;;;:::o;25666:386::-;10097:6;;-1:-1:-1;;;;;10097:6:0;8087:10;10097:22;10089:67;;;;-1:-1:-1;;;10089:67:0;;;;;;;:::i;:::-;25803:12:::1;:28:::0;;;25842:12:::1;:28:::0;;;25892:29:::1;25818:13:::0;25857;25892:29:::1;:::i;:::-;25881:8;:40:::0;25932:8:::1;:20:::0;;;25963:14:::1;:32:::0;;;26025:18:::1;26042:1;25980:15:::0;26025:18:::1;:::i;:::-;26014:8;;:29;26006:38;;;::::0;::::1;10182:148:::0;10097:6;;-1:-1:-1;;;;;10097:6:0;8087:10;10097:22;10089:67;;;;-1:-1:-1;;;10089:67:0;;;;;;;:::i;:::-;10289:1:::1;10273:6:::0;;10252:40:::1;::::0;-1:-1:-1;;;;;10273:6:0;;::::1;::::0;10252:40:::1;::::0;10289:1;;10252:40:::1;10320:1;10303:19:::0;;-1:-1:-1;;;;;;10303:19:0::1;::::0;;10182:148::o;26060:242::-;10097:6;;-1:-1:-1;;;;;10097:6:0;8087:10;10097:22;10089:67;;;;-1:-1:-1;;;10089:67:0;;;;;;;:::i;:::-;26177:20:::1;:53:::0;;-1:-1:-1;;;;;26177:53:0;;::::1;-1:-1:-1::0;;;;;;26177:53:0;;::::1;;::::0;;;26241:20:::1;:53:::0;;;;;::::1;::::0;::::1;;::::0;;26060:242::o;17672:156::-;17752:4;17776:44;17790:10;17802:9;17813:6;17776:13;:44::i;25177:219::-;10097:6;;-1:-1:-1;;;;;10097:6:0;8087:10;10097:22;10089:67;;;;-1:-1:-1;;;10089:67:0;;;;;;;:::i;:::-;25287:1:::1;25275:9;:13;:28;;;;;25302:1;25292:7;:11;25275:28;:48;;;;;25318:5;25307:7;:16;;25275:48;25267:57;;;::::0;::::1;;25381:7;25368:9;25353:12;;:24;;;;:::i;:::-;25352:36;;;;:::i;:::-;25335:14;:53:::0;-1:-1:-1;;25177:219:0:o;14245:105::-;14294:7;14331:15;10910:1;14331:2;:15;:::i;:::-;14312;;:35;;;;:::i;24690:128::-;10097:6;;-1:-1:-1;;;;;10097:6:0;8087:10;10097:22;10089:67;;;;-1:-1:-1;;;10089:67:0;;;;;;;:::i;:::-;24772:10:::1;24764:4;:18;;24756:27;;;::::0;::::1;;24794:9;:16:::0;24690:128::o;16661:235::-;8087:10;12874:24;;;;:10;:24;;;;;;;;;:49;;-1:-1:-1;10010:7:0;10037:6;-1:-1:-1;;;;;10037:6:0;12902:10;:21;12874:49;12866:89;;;;-1:-1:-1;;;12866:89:0;;;;;;;:::i;:::-;16755:18:::1;::::0;::::1;::::0;::::1;;;16754:19;16746:28;;;::::0;::::1;;16785:17;:28:::0;;-1:-1:-1;;16785:28:0::1;::::0;::::1;;;::::0;;16843:6:::1;16832:17:::0;::::1;16824:26;;;::::0;::::1;;16880:8;16861:15;;:27;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;;16661:235:0:o;22083:243::-;22139:7;22189:12;22175:10;;22162;;:23;;;;:::i;:::-;:39;22159:73;;22228:1;22211:14;;:18;;;;:::i;22159:73::-;22246:7;22242:39;;;22273:8;;22262;;:19;;;;:::i;22242:39::-;22310:8;;22299;;:19;;;;:::i;10336:244::-;10097:6;;-1:-1:-1;;;;;10097:6:0;8087:10;10097:22;10089:67;;;;-1:-1:-1;;;10089:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10425:22:0;::::1;10417:73;;;::::0;-1:-1:-1;;;10417:73:0;;11585:2:1;10417:73:0::1;::::0;::::1;11567:21:1::0;11624:2;11604:18;;;11597:30;11663:34;11643:18;;;11636:62;-1:-1:-1;;;11714:18:1;;;11707:36;11760:19;;10417:73:0::1;11383:402:1::0;10417:73:0::1;10527:6;::::0;;10506:38:::1;::::0;-1:-1:-1;;;;;10506:38:0;;::::1;::::0;10527:6;::::1;::::0;10506:38:::1;::::0;::::1;10555:6;:17:::0;;-1:-1:-1;;;;;;10555:17:0::1;-1:-1:-1::0;;;;;10555:17:0;;;::::1;::::0;;;::::1;::::0;;10336:244::o;25531:127::-;10097:6;;-1:-1:-1;;;;;10097:6:0;8087:10;10097:22;10089:67;;;;-1:-1:-1;;;10089:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25618:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;25618:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25531:127::o;18185:1734::-;18277:4;-1:-1:-1;;;;;18302:20:0;;18294:57;;;;-1:-1:-1;;;18294:57:0;;11232:2:1;18294:57:0;;;11214:21:1;11271:2;11251:18;;;11244:30;11310:26;11290:18;;;11283:54;11354:18;;18294:57:0;11030:348:1;18294:57:0;-1:-1:-1;;;;;18370:23:0;;18362:58;;;;-1:-1:-1;;;18362:58:0;;11992:2:1;18362:58:0;;;11974:21:1;12031:2;12011:18;;;12004:30;-1:-1:-1;;;12050:18:1;;;12043:52;12112:18;;18362:58:0;11790:346:1;18362:58:0;18448:1;18439:6;:10;18431:44;;;;-1:-1:-1;;;18431:44:0;;10130:2:1;18431:44:0;;;10112:21:1;10169:2;10149:18;;;10142:30;-1:-1:-1;;;10188:18:1;;;10181:51;10249:18;;18431:44:0;9928:345:1;18431:44:0;-1:-1:-1;;;;;18494:17:0;;;;;;:9;:17;;;;;;:27;-1:-1:-1;18494:27:0;18486:60;;;;-1:-1:-1;;;18486:60:0;;12343:2:1;18486:60:0;;;12325:21:1;12382:2;12362:18;;;12355:30;-1:-1:-1;;;12401:18:1;;;12394:50;12461:18;;18486:60:0;12141:344:1;18486:60:0;19998:10;;:15;;;18560:40;;-1:-1:-1;;;;;;18575:25:0;;;;;;:14;:25;;;;;;;;18560:40;18557:120;;;-1:-1:-1;;;;;18611:24:0;;;;;;:16;:24;;;;;;;;18603:61;;;;-1:-1:-1;;;18603:61:0;;13406:2:1;18603:61:0;;;13388:21:1;13445:2;13425:18;;;13418:30;13484:26;13464:18;;;13457:54;13528:18;;18603:61:0;13204:348:1;18603:61:0;18666:8;20080:12;20067:10;:25;20118:15;20103:12;:30;20144:11;:18;;-1:-1:-1;;20144:18:0;20158:4;20144:18;;;20029:141;18666:8;18691:12;;;;18687:111;;-1:-1:-1;;;;;18714:24:0;;;;;;:16;:24;;;;;;;;;:55;;-1:-1:-1;;;;;;18742:27:0;;;;;;:16;:27;;;;;;;;18714:55;18706:89;;;;-1:-1:-1;;;18706:89:0;;14530:2:1;18706:89:0;;;14512:21:1;14569:2;14549:18;;;14542:30;-1:-1:-1;;;14588:18:1;;;14581:51;14649:18;;18706:89:0;14328:345:1;18706:89:0;18810:39;18823:6;18831:9;18842:6;18810:12;:39::i;:::-;-1:-1:-1;;;;;18875:25:0;;;;;;:14;:25;;;;;;;;18874:26;:47;;;;-1:-1:-1;18917:4:0;;-1:-1:-1;;;;;18904:17:0;;;18917:4;;18904:17;;18874:47;18870:182;;;-1:-1:-1;;;;;18943:26:0;;;;;;:15;:26;;;;;;;;18938:103;;18990:35;19007:9;19018:6;18990:16;:35::i;:::-;19075:17;;;;:54;;;;;19114:15;19096;;:33;19075:54;19072:351;;;-1:-1:-1;;;;;19149:22:0;;;;;;:14;:22;;;;;;;;:48;;;;-1:-1:-1;19175:9:0;-1:-1:-1;;;;;19175:22:0;;;;19149:48;:77;;;;-1:-1:-1;;;;;;19201:20:0;;;;;;:9;:20;;;;;;:25;19149:77;19146:266;;;-1:-1:-1;;;;;19247:20:0;;;;;;:9;:20;;;;;19270:12;19247:35;;19301:15;:17;;;;;;:::i;:::-;;;;;;19342:54;19358:9;19369;19380:12;19394:1;19342:54;;;;;;;;;:::i;:::-;;;;;;;;19146:266;19446:6;;;;19443:63;;;19462:41;19477:6;19485:9;19496:6;19462:14;:41::i;:::-;19455:48;;;;19443:63;-1:-1:-1;;;;;19538:17:0;;;;;;:9;:17;;;;;;:26;;19558:6;;19538:26;:::i;:::-;-1:-1:-1;;;;;19518:17:0;;;;;;:9;:17;;;;;;;;:46;;;;22048:11;:19;;;;;;;;22047:20;19602:59;;19655:6;19602:59;;;19626:26;19634:9;19645:6;19626:7;:26::i;:::-;19577:84;;19685:25;19700:9;19685:14;:25::i;:::-;19682:66;;;19717:10;;19713:32;;19729:16;19738:6;19729:8;:16::i;:::-;-1:-1:-1;;;;;19791:20:0;;;;;;:9;:20;;;;;;:37;;19814:14;;19791:37;:::i;:::-;-1:-1:-1;;;;;19768:20:0;;;;;;;:9;:20;;;;;;;:60;;;;19846:43;;;;;;;;;;19874:14;15227:25:1;;15215:2;15200:18;;15081:177;19846:43:0;;;;;;;;-1:-1:-1;19907:4:0;;18185:1734;-1:-1:-1;;;;18185:1734:0:o;20178:300::-;-1:-1:-1;;;;;20308:17:0;;20271:4;20308:17;;;:9;:17;;;;;;:26;;20328:6;;20308:26;:::i;:::-;-1:-1:-1;;;;;20288:17:0;;;;;;;:9;:17;;;;;;:46;;;;20368:20;;;;;;;:29;;20391:6;;20368:29;:::i;:::-;-1:-1:-1;;;;;20345:20:0;;;;;;;:9;:20;;;;;;;:52;;;;20413:35;;;;;;;;;;20441:6;15227:25:1;;15215:2;15200:18;;15081:177;20413:35:0;;;;;;;;-1:-1:-1;20466:4:0;20178:300;;;;;:::o;20733:1220::-;-1:-1:-1;;;;;20834:23:0;;;;;;:15;:23;;;;;;;;;:98;;-1:-1:-1;;;;;;20872:22:0;;;;;;:14;:22;;;;;;;;:59;;20915:16;;20872:59;;;20897:15;;20872:59;20861:6;:71;;20834:98;20826:128;;;;-1:-1:-1;;;20826:128:0;;10886:2:1;20826:128:0;;;10868:21:1;10925:2;10905:18;;;10898:30;-1:-1:-1;;;10944:18:1;;;10937:47;11001:18;;20826:128:0;10684:341:1;20826:128:0;-1:-1:-1;;;;;20973:23:0;;;;;;:15;:23;;;;;;;;;:73;;-1:-1:-1;21021:9:0;;-1:-1:-1;;;;;21000:18:0;;;;;;:7;:18;;;;;;21034:12;;21000:30;;;:::i;:::-;:46;;20973:73;20965:115;;;;-1:-1:-1;;;20965:115:0;;13048:2:1;20965:115:0;;;13030:21:1;13087:2;13067:18;;;13060:30;13126:31;13106:18;;;13099:59;13175:18;;20965:115:0;12846:353:1;20965:115:0;-1:-1:-1;;;;;21105:17:0;;;;;;:9;:17;;;;;;:22;21101:261;;21180:15;10910:1;21180:2;:15;:::i;:::-;21161;;:35;;;;:::i;:::-;21151:6;:45;;:70;;;;-1:-1:-1;;;;;;21200:16:0;;;;;;:8;:16;;;;;;:21;21151:70;:107;;;;;21243:15;21225;;:33;21151:107;21143:161;;;;-1:-1:-1;;;21143:161:0;;13759:2:1;21143:161:0;;;13741:21:1;13798:2;13778:18;;;13771:30;13837:34;13817:18;;;13810:62;-1:-1:-1;;;13888:18:1;;;13881:39;13937:19;;21143:161:0;13557:405:1;21143:161:0;-1:-1:-1;;;;;21319:16:0;;;;;;:8;:16;;;;;21338:12;21319:31;;21101:261;-1:-1:-1;;;;;21386:25:0;;;;;;:14;:25;;;;;;;;21382:564;;;-1:-1:-1;;;;;;;21428:16:0;;;;;:8;:16;;;;;21447:12;21428:31;;20733:1220::o;21382:564::-;-1:-1:-1;;;;;22048:19:0;;22023:4;22048:19;;;:11;:19;;;;;;;;21477:469;;21523:17;;;;:54;;;;;21562:15;21544;;:33;21523:54;:92;;;;-1:-1:-1;21589:9:0;21581:18;;;;:7;:18;;;;;;21603:12;21581:34;21523:92;:121;;;;-1:-1:-1;;;;;;21619:20:0;;;;;;:9;:20;;;;;;:25;21523:121;21519:275;;;-1:-1:-1;;;;;21665:20:0;;;;;;:9;:20;;;;;;;21688:12;21665:35;;;;21724:54;;;;;;21740:9;;21675;;21776:1;;21724:54;:::i;:::-;;;;;;;;21519:275;-1:-1:-1;;;;;21808:18:0;;;;;;:7;:18;;;;;21829:12;21808:33;;21860:9;:22;21856:78;;21909:9;21901:18;;;;:7;:18;;;;;21922:12;21901:33;;21856:78;20733:1220;;;:::o;20490:235::-;20598:14;;-1:-1:-1;;;;;20631:20:0;;20576:19;20631:20;;;:9;:20;;;;;;20598:14;;20631:29;;20654:6;;20631:29;:::i;:::-;:44;;20623:94;;;;-1:-1:-1;;;20623:94:0;;10480:2:1;20623:94:0;;;10462:21:1;10519:2;10499:18;;;10492:30;10558:34;10538:18;;;10531:62;-1:-1:-1;;;10609:18:1;;;10602:35;10654:19;;20623:94:0;10278:401:1;22334:317:0;-1:-1:-1;;;;;22439:25:0;;22404:7;22439:25;;;:14;:25;;;;;;22529:14;;22439:25;;;;;22404:7;;22505:20;22439:25;22505:11;:20::i;:::-;22496:29;;:6;:29;:::i;:::-;22495:48;;;;:::i;:::-;22582:4;22564:24;;;;:9;:24;;;;;:37;;22475:68;;-1:-1:-1;22475:68:0;;22564:24;;;:37;;22475:68;;22564:37;:::i;:::-;;;;-1:-1:-1;22625:18:0;;-1:-1:-1;22634:9:0;22625:6;:18;:::i;:::-;22618:25;22334:317;-1:-1:-1;;;;;22334:317:0:o;22659:259::-;22765:10;22725:4;22750:26;;;:14;:26;;;;;;;;22749:27;:47;;;;-1:-1:-1;22790:6:0;;;;22789:7;22749:47;:71;;;;-1:-1:-1;22809:11:0;;;;22749:71;:109;;;;-1:-1:-1;;;;;;22833:25:0;;;;;;:14;:25;;;;;;;;22749:109;:161;;;;-1:-1:-1;22899:11:0;;22889:4;22871:24;;;;:9;:24;;;;;;:39;;22742:168;22659:259;-1:-1:-1;;22659:259:0:o;22926:1560::-;12739:6;:13;;-1:-1:-1;;12739:13:0;12748:4;12739:13;;;23021::::1;::::0;12739:6;;23012:22;::::1;:47;;23046:13;;23012:47;;;23037:6;23012:47;23092:4;23074:24;::::0;;;:9:::1;:24;::::0;;;;;22989:70;;-1:-1:-1;23074:39:0;-1:-1:-1;23070:84:0::1;;;-1:-1:-1::0;23148:4:0::1;23130:24;::::0;;;:9:::1;:24;::::0;;;;;23070:84:::1;23175:23;23237:8;;23232:1;23217:12;;23202;:27;;;;:::i;:::-;:31;;;;:::i;:::-;23201:44;;;;:::i;:::-;23175:70:::0;-1:-1:-1;23256:31:0::1;23175:70:::0;23256:31;::::1;:::i;:::-;23324:16;::::0;;23338:1:::1;23324:16:::0;;;;;::::1;::::0;;23256:31;;-1:-1:-1;23300:21:0::1;::::0;23324:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;23324:16:0::1;23300:40;;23369:4;23351;23356:1;23351:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;23351:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;23395:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;23395:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;23351:7;;23395:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23385:4;23390:1;23385:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;23385:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;23487:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;23487:188:0;;23453:21:::1;::::0;23487:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;23559:12;;23429:21:::1;::::0;23602:4;;23629::::1;::::0;23649:15:::1;::::0;23487:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;23688:17;23732:13;23708:21;:37;;;;:::i;:::-;23688:57;;23756:19;23805:1;23790:12;;:16;;;;:::i;:::-;23778:8;;:29;;;;:::i;:::-;23756:51;;23820:26;23882:11;23877:1;23862:12;;23850:9;:24;;;;:::i;:::-;:28;;;;:::i;:::-;23849:44;;;;:::i;:::-;23820:73:::0;-1:-1:-1;23904:26:0::1;23933:30;23820:73:::0;23933:9;:30:::1;:::i;:::-;23904:59:::0;-1:-1:-1;23988:22:0;;23984:90:::1;;24025:20;::::0;:49:::1;::::0;-1:-1:-1;;;;;24025:20:0;;::::1;::::0;:49;::::1;;;::::0;24055:18;;24025:20:::1;:49:::0;:20;:49;24055:18;24025:20;:49;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;23984:90;24098:19:::0;;24095:293:::1;;24133:6;::::0;24307:20:::1;::::0;24133:243:::1;::::0;-1:-1:-1;;;24133:243:0;;24209:4:::1;24133:243;::::0;::::1;8637:34:1::0;8687:18;;;8680:34;;;24133:6:0::1;8730:18:1::0;;;8723:34;;;8773:18;;;8766:34;-1:-1:-1;;;;;24307:20:0;;::::1;8816:19:1::0;;;8809:44;24346:15:0::1;8869:19:1::0;;;8862:35;24133:6:0;::::1;::::0;:22:::1;::::0;24163:18;;8571:19:1;;24133:243:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;24095:293;24405:73;::::0;;16450:25:1;;;16506:2;16491:18;;16484:34;;;16534:18;;;16527:34;;;24405:73:0::1;::::0;16438:2:1;16423:18;24405:73:0::1;;;;;;;-1:-1:-1::0;;12757:6:0;:14;;-1:-1:-1;;12757:14:0;;;-1:-1:-1;;;;;;;22926:1560:0:o;14:367:1:-;77:8;87:6;141:3;134:4;126:6;122:17;118:27;108:55;;159:1;156;149:12;108:55;-1:-1:-1;182:20:1;;225:18;214:30;;211:50;;;257:1;254;247:12;211:50;294:4;286:6;282:17;270:29;;354:3;347:4;337:6;334:1;330:14;322:6;318:27;314:38;311:47;308:67;;;371:1;368;361:12;308:67;14:367;;;;;:::o;386:160::-;451:20;;507:13;;500:21;490:32;;480:60;;536:1;533;526:12;480:60;386:160;;;:::o;551:247::-;610:6;663:2;651:9;642:7;638:23;634:32;631:52;;;679:1;676;669:12;631:52;718:9;705:23;737:31;762:5;737:31;:::i;803:251::-;873:6;926:2;914:9;905:7;901:23;897:32;894:52;;;942:1;939;932:12;894:52;974:9;968:16;993:31;1018:5;993:31;:::i;1059:388::-;1127:6;1135;1188:2;1176:9;1167:7;1163:23;1159:32;1156:52;;;1204:1;1201;1194:12;1156:52;1243:9;1230:23;1262:31;1287:5;1262:31;:::i;:::-;1312:5;-1:-1:-1;1369:2:1;1354:18;;1341:32;1382:33;1341:32;1382:33;:::i;:::-;1434:7;1424:17;;;1059:388;;;;;:::o;1452:456::-;1529:6;1537;1545;1598:2;1586:9;1577:7;1573:23;1569:32;1566:52;;;1614:1;1611;1604:12;1566:52;1653:9;1640:23;1672:31;1697:5;1672:31;:::i;:::-;1722:5;-1:-1:-1;1779:2:1;1764:18;;1751:32;1792:33;1751:32;1792:33;:::i;:::-;1452:456;;1844:7;;-1:-1:-1;;;1898:2:1;1883:18;;;;1870:32;;1452:456::o;1913:315::-;1978:6;1986;2039:2;2027:9;2018:7;2014:23;2010:32;2007:52;;;2055:1;2052;2045:12;2007:52;2094:9;2081:23;2113:31;2138:5;2113:31;:::i;:::-;2163:5;-1:-1:-1;2187:35:1;2218:2;2203:18;;2187:35;:::i;:::-;2177:45;;1913:315;;;;;:::o;2233:::-;2301:6;2309;2362:2;2350:9;2341:7;2337:23;2333:32;2330:52;;;2378:1;2375;2368:12;2330:52;2417:9;2404:23;2436:31;2461:5;2436:31;:::i;:::-;2486:5;2538:2;2523:18;;;;2510:32;;-1:-1:-1;;;2233:315:1:o;2553:773::-;2675:6;2683;2691;2699;2752:2;2740:9;2731:7;2727:23;2723:32;2720:52;;;2768:1;2765;2758:12;2720:52;2808:9;2795:23;2837:18;2878:2;2870:6;2867:14;2864:34;;;2894:1;2891;2884:12;2864:34;2933:70;2995:7;2986:6;2975:9;2971:22;2933:70;:::i;:::-;3022:8;;-1:-1:-1;2907:96:1;-1:-1:-1;3110:2:1;3095:18;;3082:32;;-1:-1:-1;3126:16:1;;;3123:36;;;3155:1;3152;3145:12;3123:36;;3194:72;3258:7;3247:8;3236:9;3232:24;3194:72;:::i;:::-;2553:773;;;;-1:-1:-1;3285:8:1;-1:-1:-1;;;;2553:773:1:o;3331:505::-;3423:6;3431;3439;3492:2;3480:9;3471:7;3467:23;3463:32;3460:52;;;3508:1;3505;3498:12;3460:52;3548:9;3535:23;3581:18;3573:6;3570:30;3567:50;;;3613:1;3610;3603:12;3567:50;3652:70;3714:7;3705:6;3694:9;3690:22;3652:70;:::i;:::-;3741:8;;-1:-1:-1;3626:96:1;-1:-1:-1;3795:35:1;;-1:-1:-1;3826:2:1;3811:18;;3795:35;:::i;:::-;3785:45;;3331:505;;;;;:::o;3841:180::-;3897:6;3950:2;3938:9;3929:7;3925:23;3921:32;3918:52;;;3966:1;3963;3956:12;3918:52;3989:26;4005:9;3989:26;:::i;4026:385::-;4106:6;4114;4122;4130;4183:3;4171:9;4162:7;4158:23;4154:33;4151:53;;;4200:1;4197;4190:12;4151:53;4223:26;4239:9;4223:26;:::i;:::-;4213:36;;4268:35;4299:2;4288:9;4284:18;4268:35;:::i;:::-;4026:385;;4258:45;;-1:-1:-1;;;;4350:2:1;4335:18;;4322:32;;4401:2;4386:18;4373:32;;4026:385::o;4416:248::-;4481:6;4489;4542:2;4530:9;4521:7;4517:23;4513:32;4510:52;;;4558:1;4555;4548:12;4510:52;4581:26;4597:9;4581:26;:::i;4669:180::-;4728:6;4781:2;4769:9;4760:7;4756:23;4752:32;4749:52;;;4797:1;4794;4787:12;4749:52;-1:-1:-1;4820:23:1;;4669:180;-1:-1:-1;4669:180:1:o;4854:315::-;4922:6;4930;4983:2;4971:9;4962:7;4958:23;4954:32;4951:52;;;4999:1;4996;4989:12;4951:52;5035:9;5022:23;5012:33;;5095:2;5084:9;5080:18;5067:32;5108:31;5133:5;5108:31;:::i;5174:248::-;5242:6;5250;5303:2;5291:9;5282:7;5278:23;5274:32;5271:52;;;5319:1;5316;5309:12;5271:52;-1:-1:-1;;5342:23:1;;;5412:2;5397:18;;;5384:32;;-1:-1:-1;5174:248:1:o;5427:316::-;5504:6;5512;5520;5573:2;5561:9;5552:7;5548:23;5544:32;5541:52;;;5589:1;5586;5579:12;5541:52;-1:-1:-1;;5612:23:1;;;5682:2;5667:18;;5654:32;;-1:-1:-1;5733:2:1;5718:18;;;5705:32;;5427:316;-1:-1:-1;5427:316:1:o;5748:306::-;5836:6;5844;5852;5905:2;5893:9;5884:7;5880:23;5876:32;5873:52;;;5921:1;5918;5911:12;5873:52;5950:9;5944:16;5934:26;;6000:2;5989:9;5985:18;5979:25;5969:35;;6044:2;6033:9;6029:18;6023:25;6013:35;;5748:306;;;;;:::o;6059:385::-;6145:6;6153;6161;6169;6222:3;6210:9;6201:7;6197:23;6193:33;6190:53;;;6239:1;6236;6229:12;6190:53;-1:-1:-1;;6262:23:1;;;6332:2;6317:18;;6304:32;;-1:-1:-1;6383:2:1;6368:18;;6355:32;;6434:2;6419:18;6406:32;;-1:-1:-1;6059:385:1;-1:-1:-1;6059:385:1:o;6881:464::-;-1:-1:-1;;;;;7174:15:1;;;7156:34;;7226:15;;;;7221:2;7206:18;;7199:43;7273:2;7258:18;;7251:34;7333:4;7321:17;;;7316:2;7301:18;;7294:45;7105:3;7090:19;;6881:464::o;9326:597::-;9438:4;9467:2;9496;9485:9;9478:21;9528:6;9522:13;9571:6;9566:2;9555:9;9551:18;9544:34;9596:1;9606:140;9620:6;9617:1;9614:13;9606:140;;;9715:14;;;9711:23;;9705:30;9681:17;;;9700:2;9677:26;9670:66;9635:10;;9606:140;;;9764:6;9761:1;9758:13;9755:91;;;9834:1;9829:2;9820:6;9809:9;9805:22;9801:31;9794:42;9755:91;-1:-1:-1;9907:2:1;9886:15;-1:-1:-1;;9882:29:1;9867:45;;;;9914:2;9863:54;;9326:597;-1:-1:-1;;;9326:597:1:o;12490:351::-;12692:2;12674:21;;;12731:2;12711:18;;;12704:30;12770:29;12765:2;12750:18;;12743:57;12832:2;12817:18;;12490:351::o;13967:356::-;14169:2;14151:21;;;14188:18;;;14181:30;14247:34;14242:2;14227:18;;14220:62;14314:2;14299:18;;13967:356::o;15263:980::-;15525:4;15573:3;15562:9;15558:19;15604:6;15593:9;15586:25;15630:2;15668:6;15663:2;15652:9;15648:18;15641:34;15711:3;15706:2;15695:9;15691:18;15684:31;15735:6;15770;15764:13;15801:6;15793;15786:22;15839:3;15828:9;15824:19;15817:26;;15878:2;15870:6;15866:15;15852:29;;15899:1;15909:195;15923:6;15920:1;15917:13;15909:195;;;15988:13;;-1:-1:-1;;;;;15984:39:1;15972:52;;16079:15;;;;16044:12;;;;16020:1;15938:9;15909:195;;;-1:-1:-1;;;;;;;16160:32:1;;;;16155:2;16140:18;;16133:60;-1:-1:-1;;;16224:3:1;16209:19;16202:35;16121:3;15263:980;-1:-1:-1;;;15263:980:1:o;16761:128::-;16801:3;16832:1;16828:6;16825:1;16822:13;16819:39;;;16838:18;;:::i;:::-;-1:-1:-1;16874:9:1;;16761:128::o;16894:217::-;16934:1;16960;16950:132;;17004:10;16999:3;16995:20;16992:1;16985:31;17039:4;17036:1;17029:15;17067:4;17064:1;17057:15;16950:132;-1:-1:-1;17096:9:1;;16894:217::o;17116:422::-;17205:1;17248:5;17205:1;17262:270;17283:7;17273:8;17270:21;17262:270;;;17342:4;17338:1;17334:6;17330:17;17324:4;17321:27;17318:53;;;17351:18;;:::i;:::-;17401:7;17391:8;17387:22;17384:55;;;17421:16;;;;17384:55;17500:22;;;;17460:15;;;;17262:270;;;17266:3;17116:422;;;;;:::o;17543:140::-;17601:5;17630:47;17671:4;17661:8;17657:19;17651:4;17737:5;17767:8;17757:80;;-1:-1:-1;17808:1:1;17822:5;;17757:80;17856:4;17846:76;;-1:-1:-1;17893:1:1;17907:5;;17846:76;17938:4;17956:1;17951:59;;;;18024:1;18019:130;;;;17931:218;;17951:59;17981:1;17972:10;;17995:5;;;18019:130;18056:3;18046:8;18043:17;18040:43;;;18063:18;;:::i;:::-;-1:-1:-1;;18119:1:1;18105:16;;18134:5;;17931:218;;18233:2;18223:8;18220:16;18214:3;18208:4;18205:13;18201:36;18195:2;18185:8;18182:16;18177:2;18171:4;18168:12;18164:35;18161:77;18158:159;;;-1:-1:-1;18270:19:1;;;18302:5;;18158:159;18349:34;18374:8;18368:4;18349:34;:::i;:::-;18419:6;18415:1;18411:6;18407:19;18398:7;18395:32;18392:58;;;18430:18;;:::i;:::-;18468:20;;17688:806;-1:-1:-1;;;17688:806:1:o;18499:168::-;18539:7;18605:1;18601;18597:6;18593:14;18590:1;18587:21;18582:1;18575:9;18568:17;18564:45;18561:71;;;18612:18;;:::i;:::-;-1:-1:-1;18652:9:1;;18499:168::o;18672:125::-;18712:4;18740:1;18737;18734:8;18731:34;;;18745:18;;:::i;:::-;-1:-1:-1;18782:9:1;;18672:125::o;18802:136::-;18841:3;18869:5;18859:39;;18878:18;;:::i;:::-;-1:-1:-1;;;18914:18:1;;18802:136::o;18943:135::-;18982:3;-1:-1:-1;;19003:17:1;;19000:43;;;19023:18;;:::i;:::-;-1:-1:-1;19070:1:1;19059:13;;18943:135::o;19083:127::-;19144:10;19139:3;19135:20;19132:1;19125:31;19175:4;19172:1;19165:15;19199:4;19196:1;19189:15;19215:127;19276:10;19271:3;19267:20;19264:1;19257:31;19307:4;19304:1;19297:15;19331:4;19328:1;19321:15;19479:131;-1:-1:-1;;;;;19554:31:1;;19544:42;;19534:70;;19600:1;19597;19590:12;19534:70;19479:131;:::o

Swarm Source

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