ETH Price: $3,418.84 (-0.62%)
Gas: 11 Gwei

Token

DuangCoin ($Duang)
 

Overview

Max Total Supply

420,690,000,000,000 $Duang

Holders

139

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
781,372,398,800.748467078 $Duang

Value
$0.00
0xe90654c658a5aa2901c26a7a17ca8847bbe825d6
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:
DuangCoin

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-30
*/

// SPDX-License-Identifier: NOLICENSE

pragma solidity ^0.8.10;

// 💻 Telegram - https://t.me/duangcoineth

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

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IRouter {
    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 DuangCoin is Context, IERC20, Ownable {

    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcluded;
    mapping (address => bool) private _isBot;

    address[] private _excluded;

    bool public swapEnabled = true;
    bool private swapping;

    IRouter public router;
    address public pair;

    uint8 private constant _decimals = 9;
    uint256 private constant MAX = ~uint256(0);

    uint256 private _tTotal = 420690000000000 * 10**_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));

    
    uint256 public swapTokensAtAmount = 300000000 * 10**_decimals;
    
    uint256 public maxSellAmount = 4206900000000 * 10**_decimals;
    uint256 public maxBuyAmount = 8413800000000  * 10**_decimals;
    uint256 public maxWalletBalance = 420690000000000 * 10**_decimals;

    address public marketingAddress = 0x2d02E893f75304306edDe9b3580C9E2D64C98614;
    address public devAddress = 0x519F57E6A96e0EA16098F097B402768dE2A65f6F;

    string private constant _name = "DuangCoin";
    string private constant _symbol = "$Duang";


    struct Taxes {
      uint256 rfi;
      uint256 dev;
      uint256 marketing;
      uint256 liquidity;
    }

    Taxes public taxes = Taxes(0,2,0,2);
    Taxes public sellTaxes = Taxes(0,2,0,2);

    struct TotFeesPaidStruct{
        uint256 rfi;
        uint256 marketing;
        uint256 dev;
        uint256 liquidity;
    }
    TotFeesPaidStruct public totFeesPaid;

    struct valuesFromGetValues{
      uint256 rAmount;
      uint256 rTransferAmount;
      uint256 rRfi;
      uint256 rMarketing;
      uint256 rDev;
      uint256 rLiquidity;
      uint256 tTransferAmount;
      uint256 tRfi;
      uint256 tMarketing;
      uint256 tDev;
      uint256 tLiquidity;
    }

    event FeesChanged();

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

    constructor () {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory())
            .createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;
        
        excludeFromReward(pair);

        _rOwned[owner()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[marketingAddress]=true;
        _isExcludedFromFee[devAddress] = true;

        emit Transfer(address(0), owner(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        if (_isExcluded[account]) return _tOwned[account];
        return tokenFromReflection(_rOwned[account]);
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    function isExcludedFromReward(address account) public view returns (bool) {
        return _isExcluded[account];
    }

    function reflectionFromToken(uint256 tAmount, bool deductTransferRfi, bool isSell) public view returns(uint256) {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        if (!deductTransferRfi) {
            valuesFromGetValues memory s = _getValues(tAmount, false, isSell);
            return s.rAmount;
        } else {
            valuesFromGetValues memory s = _getValues(tAmount, true, isSell);
            return s.rTransferAmount;
        }
    }

    function tokenFromReflection(uint256 rAmount) public view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount/currentRate;
    }

    function excludeFromReward(address account) public onlyOwner() {
        require(!_isExcluded[account], "Account is already excluded");
        if(_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

    function includeInReward(address account) external onlyOwner() {
        require(_isExcluded[account], "Account is not excluded");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _tOwned[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }


    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }


    function isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }

    function setTaxes(uint256 _rfi, uint256 _marketing, uint256 _dev, uint256 _liquidity) public onlyOwner {
        taxes.rfi = _rfi;
        taxes.marketing = _marketing;
        taxes.dev = _dev;
        taxes.liquidity = _liquidity;
        emit FeesChanged();
    }
    
    function setSellTaxes(uint256 _rfi, uint256 _marketing, uint256 _dev, uint256 _liquidity) public onlyOwner {
        sellTaxes.rfi = _rfi;
        sellTaxes.marketing = _marketing;
        sellTaxes.dev = _dev;
        sellTaxes.liquidity = _liquidity;
        emit FeesChanged();
    }

    function _reflectRfi(uint256 rRfi, uint256 tRfi) private {
        _rTotal -=rRfi;
        totFeesPaid.rfi +=tRfi;
    }

    function _takeLiquidity(uint256 rLiquidity, uint256 tLiquidity) private {
        totFeesPaid.liquidity +=tLiquidity;

        if(_isExcluded[address(this)])
        {
            _tOwned[address(this)]+=tLiquidity;
        }
        _rOwned[address(this)] +=rLiquidity;
    }

    function _takeMarketing(uint256 rMarketing, uint256 tMarketing) private {
        totFeesPaid.marketing +=tMarketing;

        if(_isExcluded[address(this)])
        {
            _tOwned[address(this)]+=tMarketing;
        }
        _rOwned[address(this)] +=rMarketing;
    }
    
    function _takeDev(uint256 rDev, uint256 tDev) private {
        totFeesPaid.dev += tDev;

        if(_isExcluded[address(this)])
        {
            _tOwned[address(this)]+= tDev;
        }
        _rOwned[address(this)] += rDev;
    }

    function _getValues(uint256 tAmount, bool takeFee, bool isSell) private view returns (valuesFromGetValues memory to_return) {
        to_return = _getTValues(tAmount, takeFee, isSell);
        (to_return.rAmount, to_return.rTransferAmount, to_return.rRfi, to_return.rMarketing, to_return.rDev, to_return.rLiquidity) = _getRValues(to_return, tAmount, takeFee, _getRate());
        return to_return;
    }

    function _getTValues(uint256 tAmount, bool takeFee, bool isSell) private view returns (valuesFromGetValues memory s) {

        if(!takeFee) {
          s.tTransferAmount = tAmount;
          return s;
        }
        Taxes memory temp;
        if(isSell) temp = sellTaxes;
        else temp = taxes;
        
        s.tRfi = tAmount*temp.rfi/100;
        s.tMarketing = tAmount*temp.marketing/100;
        s.tLiquidity = tAmount*temp.liquidity/100;
        s.tDev = tAmount*temp.dev/100;
        s.tTransferAmount = tAmount-s.tRfi-s.tMarketing-s.tDev-s.tLiquidity;
        return s;
    }

    function _getRValues(valuesFromGetValues memory s, uint256 tAmount, bool takeFee, uint256 currentRate) private pure returns (uint256 rAmount, uint256 rTransferAmount, uint256 rRfi,uint256 rMarketing, uint256 rDev, uint256 rLiquidity) {
        rAmount = tAmount*currentRate;

        if(!takeFee) {
          return(rAmount, rAmount, 0,0,0,0);
        }

        rRfi = s.tRfi*currentRate;
        rMarketing = s.tMarketing*currentRate;
        rDev = s.tDev*currentRate;
        rLiquidity = s.tLiquidity*currentRate;
        rTransferAmount =  rAmount-rRfi-rMarketing-rDev-rLiquidity;
        return (rAmount, rTransferAmount, rRfi,rMarketing,rDev,rLiquidity);
    }

    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply/tSupply;
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply-_rOwned[_excluded[i]];
            tSupply = tSupply-_tOwned[_excluded[i]];
        }
        if (rSupply < _rTotal/_tTotal) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(amount <= balanceOf(from),"You are trying to transfer more than your balance");
        require(!_isBot[from] && !_isBot[to], "You are a bot");
                
        if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to] && !swapping){
            if(from == pair){
                require(amount <= maxBuyAmount, "You are exceeding maxBuyAmount");
            }
            if(to == pair){
                require(amount <= maxSellAmount, "You are exceeding maxSellAmount");
            }
            if(to != pair){
                require(balanceOf(to) + amount <= maxWalletBalance, "You are exceeding maxWalletBalance");
            }
        }
        
        bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount;
        if(!swapping && swapEnabled && canSwap && from != pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
            swapAndLiquify(swapTokensAtAmount);
        }

        _tokenTransfer(from, to, amount, !(_isExcludedFromFee[from] || _isExcludedFromFee[to]), to == pair);
    }


    //this method is responsible for taking all fee, if takeFee is true
    function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee, bool isSell) private {
        valuesFromGetValues memory s = _getValues(tAmount, takeFee, isSell);

        if (_isExcluded[sender] ) {  //from excluded
                _tOwned[sender] = _tOwned[sender]-tAmount;
        }
        if (_isExcluded[recipient]) { //to excluded
                _tOwned[recipient] = _tOwned[recipient]+s.tTransferAmount;
        }

        _rOwned[sender] = _rOwned[sender]-s.rAmount;
        _rOwned[recipient] = _rOwned[recipient]+s.rTransferAmount;
        
        if(s.rRfi > 0 || s.tRfi > 0) _reflectRfi(s.rRfi, s.tRfi);
        if(s.rLiquidity > 0 || s.tLiquidity > 0) {
            _takeLiquidity(s.rLiquidity,s.tLiquidity);
        }
        if(s.rMarketing > 0 || s.tMarketing > 0){
            _takeMarketing(s.rMarketing, s.tMarketing);
        }
        if(s.rDev > 0 || s.tDev > 0){
            _takeDev(s.rDev, s.tDev);
        }
        
        emit Transfer(sender, recipient, s.tTransferAmount);
        emit Transfer(sender, address(this), s.tLiquidity + s.tDev + s.tMarketing);
        
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap{
       // Split the contract balance into halves
        uint256 denominator = (sellTaxes.liquidity + sellTaxes.marketing + sellTaxes.dev) * 2;
        uint256 tokensToAddLiquidityWith = tokens * sellTaxes.liquidity / denominator;
        uint256 toSwap = tokens - tokensToAddLiquidityWith;

        uint256 initialBalance = address(this).balance;

        swapTokensForBNB(toSwap);

        uint256 deltaBalance = address(this).balance - initialBalance;
        uint256 unitBalance= deltaBalance / (denominator - sellTaxes.liquidity);
        uint256 bnbToAddLiquidityWith = unitBalance * sellTaxes.liquidity;

        if(bnbToAddLiquidityWith > 0){
            // Add liquidity to pancake
            addLiquidity(tokensToAddLiquidityWith, bnbToAddLiquidityWith);
        }

        uint256 marketingAmt = unitBalance * 2 * sellTaxes.marketing;
        if(marketingAmt > 0){
            payable(marketingAddress).transfer(marketingAmt);
        }
        
        uint256 devAmt = unitBalance * 2 * sellTaxes.dev;
        if(devAmt > 0){
            payable(devAddress).transfer(devAmt);
        }
    }

    function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(router), tokenAmount);

        // add the liquidity
        router.addLiquidityETH{value: bnbAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            address(0),
            block.timestamp
        );
    }

    function swapTokensForBNB(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        _approve(address(this), address(router), tokenAmount);

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function updateMarketingWallet(address newWallet) external onlyOwner{
        marketingAddress = newWallet;
    }
    
    function updateDevWallet(address newDevWallet) external onlyOwner{
        devAddress = newDevWallet;
    }
    
    function updateMaxWalletBalance(uint256 amount) external onlyOwner{
        maxWalletBalance = amount * 10**_decimals;
    }

    function updatMaxBuyAmt(uint256 amount) external onlyOwner{
        maxBuyAmount = amount * 10**_decimals;
    }
    
    function updatMaxSellAmt(uint256 amount) external onlyOwner{
        maxSellAmount = amount * 10**_decimals;
    }
    
    function updateSwapTokensAtAmount(uint256 amount) external onlyOwner{
        swapTokensAtAmount = amount * 10**_decimals;
    }

    function updateSwapEnabled(bool _enabled) external onlyOwner{
        swapEnabled = _enabled;
    }

    function setAntibot(address account, bool state) external onlyOwner{
        require(_isBot[account] != state, 'Value already set');
        _isBot[account] = state;
    }
    
    function bulkAntiBot(address[] memory accounts, bool state) external onlyOwner{
        for(uint256 i = 0; i < accounts.length; i++){
            _isBot[accounts[i]] = state;
        }
    }
    
    function updateRouterAndPair(address newRouter, address newPair) external onlyOwner{
        // Thanks you Freezy (https://t.me/FreezyDev)
        router = IRouter(newRouter);
        pair = newPair;
    }
    
    function isBot(address account) public view returns(bool){
        return _isBot[account];
    }
    

    //Use this in case BNB are sent to the contract by mistake
    function rescueBNB(uint256 weiAmount) external onlyOwner{
        require(address(this).balance >= weiAmount, "insufficient BNB balance");
        payable(msg.sender).transfer(weiAmount);
    }
    
    // Function to allow admin to claim *other* BEP20 tokens sent to this contract (by mistake)
    // Owner cannot transfer out catecoin from this smart contract
    function rescueAnyBEP20Tokens(address _tokenAddr, address _to, uint _amount) public onlyOwner {
        require(_tokenAddr != address(this), "Cannot transfer out Token123!");
        IERC20(_tokenAddr).transfer(_to, _amount);
    }

    receive() external payable{
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"FeesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkAntiBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"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":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferRfi","type":"bool"},{"internalType":"bool","name":"isSell","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueAnyBEP20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setAntibot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rfi","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rfi","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","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":"taxes","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totFeesPaid","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updatMaxBuyAmt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updatMaxSellAmt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newDevWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"},{"internalType":"address","name":"newPair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526008805460ff191660011790556200001f6009600a620009d4565b620000329066017e9d8602b400620009e5565b600a819055620000459060001962000a1d565b620000539060001962000a34565b600b55620000646009600a620009d4565b62000074906311e1a300620009e5565b600c55620000856009600a620009d4565b62000097906503d37ec7b500620009e5565b600d55620000a86009600a620009d4565b620000ba906507a6fd8f6a00620009e5565b600e55620000cb6009600a620009d4565b620000de9066017e9d8602b400620009e5565b600f55601080546001600160a01b0319908116732d02e893f75304306edde9b3580c9e2d64c98614179091556011805490911673519f57e6a96e0ea16098f097b402768de2a65f6f1790556040805160808082018352600080835260026020808501829052848601839052606094850182905260128390556013829055601483905560158290558551938401865282845283018190529382018190529101829052601681905560178290556018556019553480156200019c57600080fd5b50620001a83362000486565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000202573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000228919062000a4e565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000276573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029c919062000a4e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000310919062000a4e565b600880546001600160a01b03808616620100000262010000600160b01b031990921691909117909155600980549183166001600160a01b0319909216821790559091506200035e90620004d6565b600b5460016000620003786000546001600160a01b031690565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600160046000620003b26200066460201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260049093528183208054851660019081179091556010548216845282842080548616821790556011549091168352912080549092161790556200042e6000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a546040516200047691815260200190565b60405180910390a3505062000ac4565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b03163314620005365760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff1615620005a15760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016200052d565b6001600160a01b03811660009081526001602052604090205415620005fe576001600160a01b038116600090815260016020526040902054620005e49062000673565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6000546001600160a01b031690565b6000600b54821115620006dc5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016200052d565b6000620006e8620006fd565b9050620006f6818462000a79565b9392505050565b600080806200070b62000723565b90925090506200071c818362000a79565b9250505090565b600b54600a546000918291825b6007548110156200088b5782600160006007848154811062000756576200075662000a90565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180620007c557508160026000600784815481106200079e576200079e62000a90565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15620007dc57600b54600a54945094505050509091565b6001600060078381548110620007f657620007f662000a90565b60009182526020808320909101546001600160a01b0316835282019290925260400190205462000827908462000a34565b9250600260006007838154811062000843576200084362000a90565b60009182526020808320909101546001600160a01b0316835282019290925260400190205462000874908362000a34565b915080620008828162000aa6565b91505062000730565b50600a54600b546200089e919062000a79565b821015620008b657600b54600a549350935050509091565b90939092509050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000916578160001904821115620008fa57620008fa620008bf565b808516156200090857918102915b93841c9390800290620008da565b509250929050565b6000826200092f57506001620009ce565b816200093e57506000620009ce565b8160018114620009575760028114620009625762000982565b6001915050620009ce565b60ff841115620009765762000976620008bf565b50506001821b620009ce565b5060208310610133831016604e8410600b8410161715620009a7575081810a620009ce565b620009b38383620008d5565b8060001904821115620009ca57620009ca620008bf565b0290505b92915050565b6000620006f660ff8416836200091e565b600081600019048311821515161562000a025762000a02620008bf565b500290565b634e487b7160e01b600052601260045260246000fd5b60008262000a2f5762000a2f62000a07565b500690565b60008282101562000a495762000a49620008bf565b500390565b60006020828403121562000a6157600080fd5b81516001600160a01b0381168114620006f657600080fd5b60008262000a8b5762000a8b62000a07565b500490565b634e487b7160e01b600052603260045260246000fd5b600060001982141562000abd5762000abd620008bf565b5060010190565b612f8e8062000ad46000396000f3fe6080604052600436106102b25760003560e01c8063728f8eea11610175578063aacebbe3116100dc578063e116554511610095578063f2fde38b1161006f578063f2fde38b14610912578063f480fec214610932578063f66895a314610952578063f887ea401461097557600080fd5b8063e1165545146108bc578063e2f45605146108dc578063ea2f0b37146108f257600080fd5b8063aacebbe3146107e0578063b31470a414610800578063bbde77c114610820578063c4fd856b14610836578063d257b34f14610856578063dd62ed3e1461087657600080fd5b80639ba5e4d51161012e5780639ba5e4d51461071d578063a12a7d6114610740578063a457c2d714610760578063a5ece94114610780578063a8aa1b31146107a0578063a9059cbb146107c057600080fd5b8063728f8eea1461061e57806388e765ff1461066157806388f82020146106775780638da5cb5b146106b0578063924de9b7146106ce57806395d89b41146106ee57600080fd5b80633bbac5791161021957806352390c02116101d257806352390c02146105605780635342acb41461058057806366d602ae146105b95780636ddd1713146105cf57806370a08231146105e9578063715018a61461060957600080fd5b80633bbac579146104875780633f63d40f146104c057806340b28c2f146104e0578063437823ec14610500578063441b1d301461052057806347c230921461054057600080fd5b806327563c8c1161026b57806327563c8c146103b35780632d838119146103d3578063313ce567146103f35780633685d4191461040f578063395093511461042f5780633ad10ef61461044f57600080fd5b806306fdde03146102be578063095ea7b31461030257806318160ddd146103325780631816467f14610351578063188b1bf11461037357806323b872dd1461039357600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b50604080518082019091526009815268223ab0b733a1b7b4b760b91b60208201525b6040516102f9919061296f565b60405180910390f35b34801561030e57600080fd5b5061032261031d3660046129e9565b61099b565b60405190151581526020016102f9565b34801561033e57600080fd5b50600a545b6040519081526020016102f9565b34801561035d57600080fd5b5061037161036c366004612a15565b6109b2565b005b34801561037f57600080fd5b5061037161038e366004612a32565b610a07565b34801561039f57600080fd5b506103226103ae366004612a4b565b610a4d565b3480156103bf57600080fd5b506103716103ce366004612a32565b610b00565b3480156103df57600080fd5b506103436103ee366004612a32565b610b46565b3480156103ff57600080fd5b50604051600981526020016102f9565b34801561041b57600080fd5b5061037161042a366004612a15565b610bc3565b34801561043b57600080fd5b5061032261044a3660046129e9565b610d7a565b34801561045b57600080fd5b5060115461046f906001600160a01b031681565b6040516001600160a01b0390911681526020016102f9565b34801561049357600080fd5b506103226104a2366004612a15565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156104cc57600080fd5b506103436104db366004612aa5565b610db1565b3480156104ec57600080fd5b506103716104fb366004612ae7565b610e3d565b34801561050c57600080fd5b5061037161051b366004612a15565b610ea1565b34801561052c57600080fd5b5061037161053b366004612a32565b610eef565b34801561054c57600080fd5b5061037161055b366004612a4b565b610f96565b34801561056c57600080fd5b5061037161057b366004612a15565b611092565b34801561058c57600080fd5b5061032261059b366004612a15565b6001600160a01b031660009081526004602052604090205460ff1690565b3480156105c557600080fd5b50610343600d5481565b3480156105db57600080fd5b506008546103229060ff1681565b3480156105f557600080fd5b50610343610604366004612a15565b6111e5565b34801561061557600080fd5b50610371611244565b34801561062a57600080fd5b506012546013546014546015546106419392919084565b6040805194855260208501939093529183015260608201526080016102f9565b34801561066d57600080fd5b50610343600e5481565b34801561068357600080fd5b50610322610692366004612a15565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156106bc57600080fd5b506000546001600160a01b031661046f565b3480156106da57600080fd5b506103716106e9366004612b20565b61127a565b3480156106fa57600080fd5b50604080518082019091526006815265244475616e6760d01b60208201526102ec565b34801561072957600080fd5b50601a54601b54601c54601d546106419392919084565b34801561074c57600080fd5b5061037161075b366004612b3d565b6112b7565b34801561076c57600080fd5b5061032261077b3660046129e9565b611324565b34801561078c57600080fd5b5060105461046f906001600160a01b031681565b3480156107ac57600080fd5b5060095461046f906001600160a01b031681565b3480156107cc57600080fd5b506103226107db3660046129e9565b6113bf565b3480156107ec57600080fd5b506103716107fb366004612a15565b6113cc565b34801561080c57600080fd5b5061037161081b366004612b85565b611418565b34801561082c57600080fd5b50610343600f5481565b34801561084257600080fd5b50610371610851366004612a32565b6114ae565b34801561086257600080fd5b50610371610871366004612a32565b6114f4565b34801561088257600080fd5b50610343610891366004612ae7565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156108c857600080fd5b506103716108d7366004612c5c565b61153a565b3480156108e857600080fd5b50610343600c5481565b3480156108fe57600080fd5b5061037161090d366004612a15565b6115f2565b34801561091e57600080fd5b5061037161092d366004612a15565b61163d565b34801561093e57600080fd5b5061037161094d366004612b3d565b6116d8565b34801561095e57600080fd5b506016546017546018546019546106419392919084565b34801561098157600080fd5b5060085461046f906201000090046001600160a01b031681565b60006109a8338484611745565b5060015b92915050565b6000546001600160a01b031633146109e55760405162461bcd60e51b81526004016109dc90612c8a565b60405180910390fd5b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610a315760405162461bcd60e51b81526004016109dc90612c8a565b610a3d6009600a612db9565b610a479082612dc8565b600f5550565b6000610a5a848484611869565b6001600160a01b038416600090815260036020908152604080832033845290915290205482811015610adf5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016109dc565b610af38533610aee8685612de7565b611745565b60019150505b9392505050565b6000546001600160a01b03163314610b2a5760405162461bcd60e51b81526004016109dc90612c8a565b610b366009600a612db9565b610b409082612dc8565b600e5550565b6000600b54821115610bad5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016109dc565b6000610bb7611d3d565b9050610af98184612dfe565b6000546001600160a01b03163314610bed5760405162461bcd60e51b81526004016109dc90612c8a565b6001600160a01b03811660009081526005602052604090205460ff16610c555760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c7564656400000000000000000060448201526064016109dc565b60005b600754811015610d7657816001600160a01b031660078281548110610c7f57610c7f612e20565b6000918252602090912001546001600160a01b03161415610d645760078054610caa90600190612de7565b81548110610cba57610cba612e20565b600091825260209091200154600780546001600160a01b039092169183908110610ce657610ce6612e20565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556007805480610d3e57610d3e612e36565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610d6e81612e4c565b915050610c58565b5050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916109a8918590610aee908690612e67565b6000600a54841115610e055760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016109dc565b82610e22576000610e1885600085611d60565b519150610af99050565b6000610e3085600185611d60565b602001519150610af99050565b6000546001600160a01b03163314610e675760405162461bcd60e51b81526004016109dc90612c8a565b6008805462010000600160b01b031916620100006001600160a01b0394851602179055600980546001600160a01b03191691909216179055565b6000546001600160a01b03163314610ecb5760405162461bcd60e51b81526004016109dc90612c8a565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b03163314610f195760405162461bcd60e51b81526004016109dc90612c8a565b80471015610f695760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e6365000000000000000060448201526064016109dc565b604051339082156108fc029083906000818181858888f19350505050158015610d76573d6000803e3d6000fd5b6000546001600160a01b03163314610fc05760405162461bcd60e51b81526004016109dc90612c8a565b6001600160a01b0383163014156110195760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f74207472616e73666572206f757420546f6b656e3132332100000060448201526064016109dc565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015611068573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108c9190612e7f565b50505050565b6000546001600160a01b031633146110bc5760405162461bcd60e51b81526004016109dc90612c8a565b6001600160a01b03811660009081526005602052604090205460ff16156111255760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016109dc565b6001600160a01b0381166000908152600160205260409020541561117f576001600160a01b03811660009081526001602052604090205461116590610b46565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6001600160a01b03811660009081526005602052604081205460ff161561122257506001600160a01b031660009081526002602052604090205490565b6001600160a01b0382166000908152600160205260409020546109ac90610b46565b6000546001600160a01b0316331461126e5760405162461bcd60e51b81526004016109dc90612c8a565b6112786000611daa565b565b6000546001600160a01b031633146112a45760405162461bcd60e51b81526004016109dc90612c8a565b6008805460ff1916911515919091179055565b6000546001600160a01b031633146112e15760405162461bcd60e51b81526004016109dc90612c8a565b60128490556014839055601382905560158190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a150505050565b3360009081526003602090815260408083206001600160a01b0386168452909152812054828110156113a65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016109dc565b6113b53385610aee8685612de7565b5060019392505050565b60006109a8338484611869565b6000546001600160a01b031633146113f65760405162461bcd60e51b81526004016109dc90612c8a565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146114425760405162461bcd60e51b81526004016109dc90612c8a565b60005b82518110156114a957816006600085848151811061146557611465612e20565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806114a181612e4c565b915050611445565b505050565b6000546001600160a01b031633146114d85760405162461bcd60e51b81526004016109dc90612c8a565b6114e46009600a612db9565b6114ee9082612dc8565b600d5550565b6000546001600160a01b0316331461151e5760405162461bcd60e51b81526004016109dc90612c8a565b61152a6009600a612db9565b6115349082612dc8565b600c5550565b6000546001600160a01b031633146115645760405162461bcd60e51b81526004016109dc90612c8a565b6001600160a01b03821660009081526006602052604090205460ff16151581151514156115c75760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b60448201526064016109dc565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461161c5760405162461bcd60e51b81526004016109dc90612c8a565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b031633146116675760405162461bcd60e51b81526004016109dc90612c8a565b6001600160a01b0381166116cc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109dc565b6116d581611daa565b50565b6000546001600160a01b031633146117025760405162461bcd60e51b81526004016109dc90612c8a565b60168490556018839055601782905560198190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a150505050565b6001600160a01b0383166117a75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109dc565b6001600160a01b0382166118085760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109dc565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166118cd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109dc565b6001600160a01b03821661192f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109dc565b600081116119915760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016109dc565b61199a836111e5565b811115611a035760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016109dc565b6001600160a01b03831660009081526006602052604090205460ff16158015611a4557506001600160a01b03821660009081526006602052604090205460ff16155b611a815760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b60448201526064016109dc565b6001600160a01b03831660009081526004602052604090205460ff16158015611ac357506001600160a01b03821660009081526004602052604090205460ff16155b8015611ad75750600854610100900460ff16155b15611c31576009546001600160a01b0384811691161415611b4457600e54811115611b445760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d6178427579416d6f756e74000060448201526064016109dc565b6009546001600160a01b0383811691161415611bac57600d54811115611bac5760405162461bcd60e51b815260206004820152601f60248201527f596f752061726520657863656564696e67206d617853656c6c416d6f756e740060448201526064016109dc565b6009546001600160a01b03838116911614611c3157600f5481611bce846111e5565b611bd89190612e67565b1115611c315760405162461bcd60e51b815260206004820152602260248201527f596f752061726520657863656564696e67206d617857616c6c657442616c616e604482015261636560f01b60648201526084016109dc565b6000600c54611c3f306111e5565b6008549111159150610100900460ff16158015611c5e575060085460ff165b8015611c675750805b8015611c8157506009546001600160a01b03858116911614155b8015611ca657506001600160a01b03841660009081526004602052604090205460ff16155b8015611ccb57506001600160a01b03831660009081526004602052604090205460ff16155b15611cdb57611cdb600c54611dfa565b6001600160a01b03841660009081526004602052604090205461108c9085908590859060ff1680611d2457506001600160a01b03871660009081526004602052604090205460ff165b6009549015906001600160a01b03898116911614611f91565b6000806000611d4a61225d565b9092509050611d598183612dfe565b9250505090565b611d68612915565b611d738484846123e0565b9050611d88818585611d83611d3d565b612553565b60a0870152608086015260608501526040840152602083015281529392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6008805461ff00191661010017905560175460185460195460009291611e1f91612e67565b611e299190612e67565b611e34906002612dc8565b905060008160166003015484611e4a9190612dc8565b611e549190612dfe565b90506000611e628285612de7565b905047611e6e82612605565b6000611e7a8247612de7565b601954909150600090611e8d9087612de7565b611e979083612dfe565b601954909150600090611eaa9083612dc8565b90508015611ebc57611ebc8682612784565b601854600090611ecd846002612dc8565b611ed79190612dc8565b90508015611f1b576010546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611f19573d6000803e3d6000fd5b505b601754600090611f2c856002612dc8565b611f369190612dc8565b90508015611f7a576011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611f78573d6000803e3d6000fd5b505b50506008805461ff00191690555050505050505050565b6000611f9e848484611d60565b6001600160a01b03871660009081526005602052604090205490915060ff1615612000576001600160a01b038616600090815260026020526040902054611fe6908590612de7565b6001600160a01b0387166000908152600260205260409020555b6001600160a01b03851660009081526005602052604090205460ff16156120635760c08101516001600160a01b0386166000908152600260205260409020546120499190612e67565b6001600160a01b0386166000908152600260205260409020555b80516001600160a01b0387166000908152600160205260409020546120889190612de7565b6001600160a01b03808816600090815260016020908152604080832094909455840151918816815291909120546120bf9190612e67565b6001600160a01b03861660009081526001602052604090819020919091558101511515806120f1575060008160e00151115b156121085761210881604001518260e00151612840565b60008160a00151118061212057506000816101400151115b15612138576121388160a00151826101400151612875565b60008160600151118061215057506000816101000151115b156121685761216881606001518261010001516128eb565b60008160800151118061218057506000816101200151115b15612198576121988160800151826101200151612900565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c001516040516121e191815260200190565b60405180910390a3306001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83610100015184610120015185610140015161223a9190612e67565b6122449190612e67565b60405190815260200160405180910390a3505050505050565b600b54600a546000918291825b6007548110156123af5782600160006007848154811061228c5761228c612e20565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806122f757508160026000600784815481106122d0576122d0612e20565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561230d57600b54600a54945094505050509091565b600160006007838154811061232457612324612e20565b60009182526020808320909101546001600160a01b031683528201929092526040019020546123539084612de7565b9250600260006007838154811061236c5761236c612e20565b60009182526020808320909101546001600160a01b0316835282019290925260400190205461239b9083612de7565b9150806123a781612e4c565b91505061226a565b50600a54600b546123c09190612dfe565b8210156123d757600b54600a549350935050509091565b90939092509050565b6123e8612915565b826123f95760c08101849052610af9565b6124246040518060800160405280600081526020016000815260200160008152602001600081525090565b821561245957506040805160808101825260165481526017546020820152601854918101919091526019546060820152612484565b5060408051608081018252601254815260135460208201526014549181019190915260155460608201525b80516064906124939087612dc8565b61249d9190612dfe565b60e083015260408101516064906124b49087612dc8565b6124be9190612dfe565b61010083015260608101516064906124d69087612dc8565b6124e09190612dfe565b61014083015260208101516064906124f89087612dc8565b6125029190612dfe565b610120830181905261014083015161010084015160e08501519192916125289089612de7565b6125329190612de7565b61253c9190612de7565b6125469190612de7565b60c0830152509392505050565b60008080808080612564878a612dc8565b95508761257f575084935060009250829150819050806125f8565b868a60e0015161258f9190612dc8565b9350868a61010001516125a29190612dc8565b9250868a61012001516125b59190612dc8565b9150868a61014001516125c89190612dc8565b90508082846125d7878a612de7565b6125e19190612de7565b6125eb9190612de7565b6125f59190612de7565b94505b9499939850945094509450565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061263a5761263a612e20565b60200260200101906001600160a01b031690816001600160a01b031681525050600860029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d19190612e9c565b816001815181106126e4576126e4612e20565b6001600160a01b0392831660209182029290920101526008546127109130916201000090041684611745565b60085460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac9479061274e908590600090869030904290600401612eb9565b600060405180830381600087803b15801561276857600080fd5b505af115801561277c573d6000803e3d6000fd5b505050505050565b6008546127a29030906201000090046001600160a01b031684611745565b60085460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a4820152620100009091046001600160a01b03169063f305d71990839060c40160606040518083038185885af1158015612814573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906128399190612f2a565b5050505050565b81600b60008282546128529190612de7565b9091555050601a805482919060009061286c908490612e67565b90915550505050565b80601a600301600082825461288a9190612e67565b90915550503060009081526005602052604090205460ff16156128cc5730600090815260026020526040812080548392906128c6908490612e67565b90915550505b306000908152600160205260408120805484929061286c908490612e67565b80601a600101600082825461288a9190612e67565b80601a600201600082825461288a9190612e67565b60405180610160016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208083528351808285015260005b8181101561299c57858101830151858201604001528201612980565b818111156129ae576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146116d557600080fd5b80356129e4816129c4565b919050565b600080604083850312156129fc57600080fd5b8235612a07816129c4565b946020939093013593505050565b600060208284031215612a2757600080fd5b8135610af9816129c4565b600060208284031215612a4457600080fd5b5035919050565b600080600060608486031215612a6057600080fd5b8335612a6b816129c4565b92506020840135612a7b816129c4565b929592945050506040919091013590565b80151581146116d557600080fd5b80356129e481612a8c565b600080600060608486031215612aba57600080fd5b833592506020840135612acc81612a8c565b91506040840135612adc81612a8c565b809150509250925092565b60008060408385031215612afa57600080fd5b8235612b05816129c4565b91506020830135612b15816129c4565b809150509250929050565b600060208284031215612b3257600080fd5b8135610af981612a8c565b60008060008060808587031215612b5357600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215612b9857600080fd5b823567ffffffffffffffff80821115612bb057600080fd5b818501915085601f830112612bc457600080fd5b8135602082821115612bd857612bd8612b6f565b8160051b604051601f19603f83011681018181108682111715612bfd57612bfd612b6f565b604052928352818301935084810182019289841115612c1b57600080fd5b948201945b83861015612c4057612c31866129d9565b85529482019493820193612c20565b9650612c4f9050878201612a9a565b9450505050509250929050565b60008060408385031215612c6f57600080fd5b8235612c7a816129c4565b91506020830135612b1581612a8c565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115612d10578160001904821115612cf657612cf6612cbf565b80851615612d0357918102915b93841c9390800290612cda565b509250929050565b600082612d27575060016109ac565b81612d34575060006109ac565b8160018114612d4a5760028114612d5457612d70565b60019150506109ac565b60ff841115612d6557612d65612cbf565b50506001821b6109ac565b5060208310610133831016604e8410600b8410161715612d93575081810a6109ac565b612d9d8383612cd5565b8060001904821115612db157612db1612cbf565b029392505050565b6000610af960ff841683612d18565b6000816000190483118215151615612de257612de2612cbf565b500290565b600082821015612df957612df9612cbf565b500390565b600082612e1b57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6000600019821415612e6057612e60612cbf565b5060010190565b60008219821115612e7a57612e7a612cbf565b500190565b600060208284031215612e9157600080fd5b8151610af981612a8c565b600060208284031215612eae57600080fd5b8151610af9816129c4565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612f095784516001600160a01b031683529383019391830191600101612ee4565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612f3f57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212204704665aa9d3c2ff1f2c1d721387256a3317675e8599e18a3f3a912ce0889a7264736f6c634300080a0033

Deployed Bytecode

0x6080604052600436106102b25760003560e01c8063728f8eea11610175578063aacebbe3116100dc578063e116554511610095578063f2fde38b1161006f578063f2fde38b14610912578063f480fec214610932578063f66895a314610952578063f887ea401461097557600080fd5b8063e1165545146108bc578063e2f45605146108dc578063ea2f0b37146108f257600080fd5b8063aacebbe3146107e0578063b31470a414610800578063bbde77c114610820578063c4fd856b14610836578063d257b34f14610856578063dd62ed3e1461087657600080fd5b80639ba5e4d51161012e5780639ba5e4d51461071d578063a12a7d6114610740578063a457c2d714610760578063a5ece94114610780578063a8aa1b31146107a0578063a9059cbb146107c057600080fd5b8063728f8eea1461061e57806388e765ff1461066157806388f82020146106775780638da5cb5b146106b0578063924de9b7146106ce57806395d89b41146106ee57600080fd5b80633bbac5791161021957806352390c02116101d257806352390c02146105605780635342acb41461058057806366d602ae146105b95780636ddd1713146105cf57806370a08231146105e9578063715018a61461060957600080fd5b80633bbac579146104875780633f63d40f146104c057806340b28c2f146104e0578063437823ec14610500578063441b1d301461052057806347c230921461054057600080fd5b806327563c8c1161026b57806327563c8c146103b35780632d838119146103d3578063313ce567146103f35780633685d4191461040f578063395093511461042f5780633ad10ef61461044f57600080fd5b806306fdde03146102be578063095ea7b31461030257806318160ddd146103325780631816467f14610351578063188b1bf11461037357806323b872dd1461039357600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b50604080518082019091526009815268223ab0b733a1b7b4b760b91b60208201525b6040516102f9919061296f565b60405180910390f35b34801561030e57600080fd5b5061032261031d3660046129e9565b61099b565b60405190151581526020016102f9565b34801561033e57600080fd5b50600a545b6040519081526020016102f9565b34801561035d57600080fd5b5061037161036c366004612a15565b6109b2565b005b34801561037f57600080fd5b5061037161038e366004612a32565b610a07565b34801561039f57600080fd5b506103226103ae366004612a4b565b610a4d565b3480156103bf57600080fd5b506103716103ce366004612a32565b610b00565b3480156103df57600080fd5b506103436103ee366004612a32565b610b46565b3480156103ff57600080fd5b50604051600981526020016102f9565b34801561041b57600080fd5b5061037161042a366004612a15565b610bc3565b34801561043b57600080fd5b5061032261044a3660046129e9565b610d7a565b34801561045b57600080fd5b5060115461046f906001600160a01b031681565b6040516001600160a01b0390911681526020016102f9565b34801561049357600080fd5b506103226104a2366004612a15565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156104cc57600080fd5b506103436104db366004612aa5565b610db1565b3480156104ec57600080fd5b506103716104fb366004612ae7565b610e3d565b34801561050c57600080fd5b5061037161051b366004612a15565b610ea1565b34801561052c57600080fd5b5061037161053b366004612a32565b610eef565b34801561054c57600080fd5b5061037161055b366004612a4b565b610f96565b34801561056c57600080fd5b5061037161057b366004612a15565b611092565b34801561058c57600080fd5b5061032261059b366004612a15565b6001600160a01b031660009081526004602052604090205460ff1690565b3480156105c557600080fd5b50610343600d5481565b3480156105db57600080fd5b506008546103229060ff1681565b3480156105f557600080fd5b50610343610604366004612a15565b6111e5565b34801561061557600080fd5b50610371611244565b34801561062a57600080fd5b506012546013546014546015546106419392919084565b6040805194855260208501939093529183015260608201526080016102f9565b34801561066d57600080fd5b50610343600e5481565b34801561068357600080fd5b50610322610692366004612a15565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156106bc57600080fd5b506000546001600160a01b031661046f565b3480156106da57600080fd5b506103716106e9366004612b20565b61127a565b3480156106fa57600080fd5b50604080518082019091526006815265244475616e6760d01b60208201526102ec565b34801561072957600080fd5b50601a54601b54601c54601d546106419392919084565b34801561074c57600080fd5b5061037161075b366004612b3d565b6112b7565b34801561076c57600080fd5b5061032261077b3660046129e9565b611324565b34801561078c57600080fd5b5060105461046f906001600160a01b031681565b3480156107ac57600080fd5b5060095461046f906001600160a01b031681565b3480156107cc57600080fd5b506103226107db3660046129e9565b6113bf565b3480156107ec57600080fd5b506103716107fb366004612a15565b6113cc565b34801561080c57600080fd5b5061037161081b366004612b85565b611418565b34801561082c57600080fd5b50610343600f5481565b34801561084257600080fd5b50610371610851366004612a32565b6114ae565b34801561086257600080fd5b50610371610871366004612a32565b6114f4565b34801561088257600080fd5b50610343610891366004612ae7565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156108c857600080fd5b506103716108d7366004612c5c565b61153a565b3480156108e857600080fd5b50610343600c5481565b3480156108fe57600080fd5b5061037161090d366004612a15565b6115f2565b34801561091e57600080fd5b5061037161092d366004612a15565b61163d565b34801561093e57600080fd5b5061037161094d366004612b3d565b6116d8565b34801561095e57600080fd5b506016546017546018546019546106419392919084565b34801561098157600080fd5b5060085461046f906201000090046001600160a01b031681565b60006109a8338484611745565b5060015b92915050565b6000546001600160a01b031633146109e55760405162461bcd60e51b81526004016109dc90612c8a565b60405180910390fd5b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610a315760405162461bcd60e51b81526004016109dc90612c8a565b610a3d6009600a612db9565b610a479082612dc8565b600f5550565b6000610a5a848484611869565b6001600160a01b038416600090815260036020908152604080832033845290915290205482811015610adf5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016109dc565b610af38533610aee8685612de7565b611745565b60019150505b9392505050565b6000546001600160a01b03163314610b2a5760405162461bcd60e51b81526004016109dc90612c8a565b610b366009600a612db9565b610b409082612dc8565b600e5550565b6000600b54821115610bad5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016109dc565b6000610bb7611d3d565b9050610af98184612dfe565b6000546001600160a01b03163314610bed5760405162461bcd60e51b81526004016109dc90612c8a565b6001600160a01b03811660009081526005602052604090205460ff16610c555760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c7564656400000000000000000060448201526064016109dc565b60005b600754811015610d7657816001600160a01b031660078281548110610c7f57610c7f612e20565b6000918252602090912001546001600160a01b03161415610d645760078054610caa90600190612de7565b81548110610cba57610cba612e20565b600091825260209091200154600780546001600160a01b039092169183908110610ce657610ce6612e20565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556007805480610d3e57610d3e612e36565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610d6e81612e4c565b915050610c58565b5050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916109a8918590610aee908690612e67565b6000600a54841115610e055760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016109dc565b82610e22576000610e1885600085611d60565b519150610af99050565b6000610e3085600185611d60565b602001519150610af99050565b6000546001600160a01b03163314610e675760405162461bcd60e51b81526004016109dc90612c8a565b6008805462010000600160b01b031916620100006001600160a01b0394851602179055600980546001600160a01b03191691909216179055565b6000546001600160a01b03163314610ecb5760405162461bcd60e51b81526004016109dc90612c8a565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b03163314610f195760405162461bcd60e51b81526004016109dc90612c8a565b80471015610f695760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e6365000000000000000060448201526064016109dc565b604051339082156108fc029083906000818181858888f19350505050158015610d76573d6000803e3d6000fd5b6000546001600160a01b03163314610fc05760405162461bcd60e51b81526004016109dc90612c8a565b6001600160a01b0383163014156110195760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f74207472616e73666572206f757420546f6b656e3132332100000060448201526064016109dc565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015611068573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108c9190612e7f565b50505050565b6000546001600160a01b031633146110bc5760405162461bcd60e51b81526004016109dc90612c8a565b6001600160a01b03811660009081526005602052604090205460ff16156111255760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016109dc565b6001600160a01b0381166000908152600160205260409020541561117f576001600160a01b03811660009081526001602052604090205461116590610b46565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6001600160a01b03811660009081526005602052604081205460ff161561122257506001600160a01b031660009081526002602052604090205490565b6001600160a01b0382166000908152600160205260409020546109ac90610b46565b6000546001600160a01b0316331461126e5760405162461bcd60e51b81526004016109dc90612c8a565b6112786000611daa565b565b6000546001600160a01b031633146112a45760405162461bcd60e51b81526004016109dc90612c8a565b6008805460ff1916911515919091179055565b6000546001600160a01b031633146112e15760405162461bcd60e51b81526004016109dc90612c8a565b60128490556014839055601382905560158190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a150505050565b3360009081526003602090815260408083206001600160a01b0386168452909152812054828110156113a65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016109dc565b6113b53385610aee8685612de7565b5060019392505050565b60006109a8338484611869565b6000546001600160a01b031633146113f65760405162461bcd60e51b81526004016109dc90612c8a565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146114425760405162461bcd60e51b81526004016109dc90612c8a565b60005b82518110156114a957816006600085848151811061146557611465612e20565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806114a181612e4c565b915050611445565b505050565b6000546001600160a01b031633146114d85760405162461bcd60e51b81526004016109dc90612c8a565b6114e46009600a612db9565b6114ee9082612dc8565b600d5550565b6000546001600160a01b0316331461151e5760405162461bcd60e51b81526004016109dc90612c8a565b61152a6009600a612db9565b6115349082612dc8565b600c5550565b6000546001600160a01b031633146115645760405162461bcd60e51b81526004016109dc90612c8a565b6001600160a01b03821660009081526006602052604090205460ff16151581151514156115c75760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b60448201526064016109dc565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461161c5760405162461bcd60e51b81526004016109dc90612c8a565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b031633146116675760405162461bcd60e51b81526004016109dc90612c8a565b6001600160a01b0381166116cc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109dc565b6116d581611daa565b50565b6000546001600160a01b031633146117025760405162461bcd60e51b81526004016109dc90612c8a565b60168490556018839055601782905560198190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a150505050565b6001600160a01b0383166117a75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109dc565b6001600160a01b0382166118085760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109dc565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166118cd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109dc565b6001600160a01b03821661192f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109dc565b600081116119915760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016109dc565b61199a836111e5565b811115611a035760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016109dc565b6001600160a01b03831660009081526006602052604090205460ff16158015611a4557506001600160a01b03821660009081526006602052604090205460ff16155b611a815760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b60448201526064016109dc565b6001600160a01b03831660009081526004602052604090205460ff16158015611ac357506001600160a01b03821660009081526004602052604090205460ff16155b8015611ad75750600854610100900460ff16155b15611c31576009546001600160a01b0384811691161415611b4457600e54811115611b445760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d6178427579416d6f756e74000060448201526064016109dc565b6009546001600160a01b0383811691161415611bac57600d54811115611bac5760405162461bcd60e51b815260206004820152601f60248201527f596f752061726520657863656564696e67206d617853656c6c416d6f756e740060448201526064016109dc565b6009546001600160a01b03838116911614611c3157600f5481611bce846111e5565b611bd89190612e67565b1115611c315760405162461bcd60e51b815260206004820152602260248201527f596f752061726520657863656564696e67206d617857616c6c657442616c616e604482015261636560f01b60648201526084016109dc565b6000600c54611c3f306111e5565b6008549111159150610100900460ff16158015611c5e575060085460ff165b8015611c675750805b8015611c8157506009546001600160a01b03858116911614155b8015611ca657506001600160a01b03841660009081526004602052604090205460ff16155b8015611ccb57506001600160a01b03831660009081526004602052604090205460ff16155b15611cdb57611cdb600c54611dfa565b6001600160a01b03841660009081526004602052604090205461108c9085908590859060ff1680611d2457506001600160a01b03871660009081526004602052604090205460ff165b6009549015906001600160a01b03898116911614611f91565b6000806000611d4a61225d565b9092509050611d598183612dfe565b9250505090565b611d68612915565b611d738484846123e0565b9050611d88818585611d83611d3d565b612553565b60a0870152608086015260608501526040840152602083015281529392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6008805461ff00191661010017905560175460185460195460009291611e1f91612e67565b611e299190612e67565b611e34906002612dc8565b905060008160166003015484611e4a9190612dc8565b611e549190612dfe565b90506000611e628285612de7565b905047611e6e82612605565b6000611e7a8247612de7565b601954909150600090611e8d9087612de7565b611e979083612dfe565b601954909150600090611eaa9083612dc8565b90508015611ebc57611ebc8682612784565b601854600090611ecd846002612dc8565b611ed79190612dc8565b90508015611f1b576010546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611f19573d6000803e3d6000fd5b505b601754600090611f2c856002612dc8565b611f369190612dc8565b90508015611f7a576011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611f78573d6000803e3d6000fd5b505b50506008805461ff00191690555050505050505050565b6000611f9e848484611d60565b6001600160a01b03871660009081526005602052604090205490915060ff1615612000576001600160a01b038616600090815260026020526040902054611fe6908590612de7565b6001600160a01b0387166000908152600260205260409020555b6001600160a01b03851660009081526005602052604090205460ff16156120635760c08101516001600160a01b0386166000908152600260205260409020546120499190612e67565b6001600160a01b0386166000908152600260205260409020555b80516001600160a01b0387166000908152600160205260409020546120889190612de7565b6001600160a01b03808816600090815260016020908152604080832094909455840151918816815291909120546120bf9190612e67565b6001600160a01b03861660009081526001602052604090819020919091558101511515806120f1575060008160e00151115b156121085761210881604001518260e00151612840565b60008160a00151118061212057506000816101400151115b15612138576121388160a00151826101400151612875565b60008160600151118061215057506000816101000151115b156121685761216881606001518261010001516128eb565b60008160800151118061218057506000816101200151115b15612198576121988160800151826101200151612900565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c001516040516121e191815260200190565b60405180910390a3306001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83610100015184610120015185610140015161223a9190612e67565b6122449190612e67565b60405190815260200160405180910390a3505050505050565b600b54600a546000918291825b6007548110156123af5782600160006007848154811061228c5761228c612e20565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806122f757508160026000600784815481106122d0576122d0612e20565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561230d57600b54600a54945094505050509091565b600160006007838154811061232457612324612e20565b60009182526020808320909101546001600160a01b031683528201929092526040019020546123539084612de7565b9250600260006007838154811061236c5761236c612e20565b60009182526020808320909101546001600160a01b0316835282019290925260400190205461239b9083612de7565b9150806123a781612e4c565b91505061226a565b50600a54600b546123c09190612dfe565b8210156123d757600b54600a549350935050509091565b90939092509050565b6123e8612915565b826123f95760c08101849052610af9565b6124246040518060800160405280600081526020016000815260200160008152602001600081525090565b821561245957506040805160808101825260165481526017546020820152601854918101919091526019546060820152612484565b5060408051608081018252601254815260135460208201526014549181019190915260155460608201525b80516064906124939087612dc8565b61249d9190612dfe565b60e083015260408101516064906124b49087612dc8565b6124be9190612dfe565b61010083015260608101516064906124d69087612dc8565b6124e09190612dfe565b61014083015260208101516064906124f89087612dc8565b6125029190612dfe565b610120830181905261014083015161010084015160e08501519192916125289089612de7565b6125329190612de7565b61253c9190612de7565b6125469190612de7565b60c0830152509392505050565b60008080808080612564878a612dc8565b95508761257f575084935060009250829150819050806125f8565b868a60e0015161258f9190612dc8565b9350868a61010001516125a29190612dc8565b9250868a61012001516125b59190612dc8565b9150868a61014001516125c89190612dc8565b90508082846125d7878a612de7565b6125e19190612de7565b6125eb9190612de7565b6125f59190612de7565b94505b9499939850945094509450565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061263a5761263a612e20565b60200260200101906001600160a01b031690816001600160a01b031681525050600860029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d19190612e9c565b816001815181106126e4576126e4612e20565b6001600160a01b0392831660209182029290920101526008546127109130916201000090041684611745565b60085460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac9479061274e908590600090869030904290600401612eb9565b600060405180830381600087803b15801561276857600080fd5b505af115801561277c573d6000803e3d6000fd5b505050505050565b6008546127a29030906201000090046001600160a01b031684611745565b60085460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a4820152620100009091046001600160a01b03169063f305d71990839060c40160606040518083038185885af1158015612814573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906128399190612f2a565b5050505050565b81600b60008282546128529190612de7565b9091555050601a805482919060009061286c908490612e67565b90915550505050565b80601a600301600082825461288a9190612e67565b90915550503060009081526005602052604090205460ff16156128cc5730600090815260026020526040812080548392906128c6908490612e67565b90915550505b306000908152600160205260408120805484929061286c908490612e67565b80601a600101600082825461288a9190612e67565b80601a600201600082825461288a9190612e67565b60405180610160016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208083528351808285015260005b8181101561299c57858101830151858201604001528201612980565b818111156129ae576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146116d557600080fd5b80356129e4816129c4565b919050565b600080604083850312156129fc57600080fd5b8235612a07816129c4565b946020939093013593505050565b600060208284031215612a2757600080fd5b8135610af9816129c4565b600060208284031215612a4457600080fd5b5035919050565b600080600060608486031215612a6057600080fd5b8335612a6b816129c4565b92506020840135612a7b816129c4565b929592945050506040919091013590565b80151581146116d557600080fd5b80356129e481612a8c565b600080600060608486031215612aba57600080fd5b833592506020840135612acc81612a8c565b91506040840135612adc81612a8c565b809150509250925092565b60008060408385031215612afa57600080fd5b8235612b05816129c4565b91506020830135612b15816129c4565b809150509250929050565b600060208284031215612b3257600080fd5b8135610af981612a8c565b60008060008060808587031215612b5357600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215612b9857600080fd5b823567ffffffffffffffff80821115612bb057600080fd5b818501915085601f830112612bc457600080fd5b8135602082821115612bd857612bd8612b6f565b8160051b604051601f19603f83011681018181108682111715612bfd57612bfd612b6f565b604052928352818301935084810182019289841115612c1b57600080fd5b948201945b83861015612c4057612c31866129d9565b85529482019493820193612c20565b9650612c4f9050878201612a9a565b9450505050509250929050565b60008060408385031215612c6f57600080fd5b8235612c7a816129c4565b91506020830135612b1581612a8c565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115612d10578160001904821115612cf657612cf6612cbf565b80851615612d0357918102915b93841c9390800290612cda565b509250929050565b600082612d27575060016109ac565b81612d34575060006109ac565b8160018114612d4a5760028114612d5457612d70565b60019150506109ac565b60ff841115612d6557612d65612cbf565b50506001821b6109ac565b5060208310610133831016604e8410600b8410161715612d93575081810a6109ac565b612d9d8383612cd5565b8060001904821115612db157612db1612cbf565b029392505050565b6000610af960ff841683612d18565b6000816000190483118215151615612de257612de2612cbf565b500290565b600082821015612df957612df9612cbf565b500390565b600082612e1b57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6000600019821415612e6057612e60612cbf565b5060010190565b60008219821115612e7a57612e7a612cbf565b500190565b600060208284031215612e9157600080fd5b8151610af981612a8c565b600060208284031215612eae57600080fd5b8151610af9816129c4565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612f095784516001600160a01b031683529383019391830191600101612ee4565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612f3f57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212204704665aa9d3c2ff1f2c1d721387256a3317675e8599e18a3f3a912ce0889a7264736f6c634300080a0033

Deployed Bytecode Sourcemap

2900:18515:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5676:83;;;;;;;;;;-1:-1:-1;5746:5:0;;;;;;;;;;;;-1:-1:-1;;;5746:5:0;;;;5676:83;;;;;;;:::i;:::-;;;;;;;;6584:161;;;;;;;;;;-1:-1:-1;6584:161:0;;;;;:::i;:::-;;:::i;:::-;;;1376:14:1;;1369:22;1351:41;;1339:2;1324:18;6584:161:0;1211:187:1;5949:95:0;;;;;;;;;;-1:-1:-1;6029:7:0;;5949:95;;;1549:25:1;;;1537:2;1522:18;5949:95:0;1403:177:1;19218:109:0;;;;;;;;;;-1:-1:-1;19218:109:0;;;;;:::i;:::-;;:::i;:::-;;19339:126;;;;;;;;;;-1:-1:-1;19339:126:0;;;;;:::i;:::-;;:::i;6753:422::-;;;;;;;;;;-1:-1:-1;6753:422:0;;;;;:::i;:::-;;:::i;19473:114::-;;;;;;;;;;-1:-1:-1;19473:114:0;;;;;:::i;:::-;;:::i;8413:248::-;;;;;;;;;;-1:-1:-1;8413:248:0;;;;;:::i;:::-;;:::i;5858:83::-;;;;;;;;;;-1:-1:-1;5858:83:0;;3488:1;2625:36:1;;2613:2;2598:18;5858:83:0;2483:184:1;9010:475:0;;;;;;;;;;-1:-1:-1;9010:475:0;;;;;:::i;:::-;;:::i;7183:215::-;;;;;;;;;;-1:-1:-1;7183:215:0;;;;;:::i;:::-;;:::i;4040:70::-;;;;;;;;;;-1:-1:-1;4040:70:0;;;;-1:-1:-1;;;;;4040:70:0;;;;;;-1:-1:-1;;;;;2836:32:1;;;2818:51;;2806:2;2791:18;4040:70:0;2672:203:1;20587:98:0;;;;;;;;;;-1:-1:-1;20587:98:0;;;;;:::i;:::-;-1:-1:-1;;;;;20662:15:0;20639:4;20662:15;;;:6;:15;;;;;;;;;20587:98;7919:486;;;;;;;;;;-1:-1:-1;7919:486:0;;;;;:::i;:::-;;:::i;20366:209::-;;;;;;;;;;-1:-1:-1;20366:209:0;;;;;:::i;:::-;;:::i;9495:111::-;;;;;;;;;;-1:-1:-1;9495:111:0;;;;;:::i;:::-;;:::i;20763:196::-;;;;;;;;;;-1:-1:-1;20763:196:0;;;;;:::i;:::-;;:::i;21136:234::-;;;;;;;;;;-1:-1:-1;21136:234:0;;;;;:::i;:::-;;:::i;8669:333::-;;;;;;;;;;-1:-1:-1;8669:333:0;;;;;:::i;:::-;;:::i;9734:123::-;;;;;;;;;;-1:-1:-1;9734:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;9822:27:0;9798:4;9822:27;;;:18;:27;;;;;;;;;9734:123;3749:60;;;;;;;;;;;;;;;;3330:30;;;;;;;;;;-1:-1:-1;3330:30:0;;;;;;;;6052:198;;;;;;;;;;-1:-1:-1;6052:198:0;;;;;:::i;:::-;;:::i;1677:94::-;;;;;;;;;;;;;:::i;4343:35::-;;;;;;;;;;-1:-1:-1;4343:35:0;;;;;;;;;;;;;;;;;;;4209:25:1;;;4265:2;4250:18;;4243:34;;;;4293:18;;;4286:34;4351:2;4336:18;;4329:34;4196:3;4181:19;4343:35:0;3978:391:1;3816:60:0;;;;;;;;;;;;;;;;7791:120;;;;;;;;;;-1:-1:-1;7791:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;7883:20:0;7859:4;7883:20;;;:11;:20;;;;;;;;;7791:120;1454:87;;;;;;;;;;-1:-1:-1;1500:7:0;1527:6;-1:-1:-1;;;;;1527:6:0;1454:87;;19865:101;;;;;;;;;;-1:-1:-1;19865:101:0;;;;;:::i;:::-;;:::i;5765:87::-;;;;;;;;;;-1:-1:-1;5837:7:0;;;;;;;;;;;;-1:-1:-1;;;5837:7:0;;;;5765:87;;4571:36;;;;;;;;;;-1:-1:-1;4571:36:0;;;;;;;;;;;;;;;9865:272;;;;;;;;;;-1:-1:-1;9865:272:0;;;;;:::i;:::-;;:::i;7406:377::-;;;;;;;;;;-1:-1:-1;7406:377:0;;;;;:::i;:::-;;:::i;3957:76::-;;;;;;;;;;-1:-1:-1;3957:76:0;;;;-1:-1:-1;;;;;3957:76:0;;;3425:19;;;;;;;;;;-1:-1:-1;3425:19:0;;;;-1:-1:-1;;;;;3425:19:0;;;6258:167;;;;;;;;;;-1:-1:-1;6258:167:0;;;;;:::i;:::-;;:::i;19091:115::-;;;;;;;;;;-1:-1:-1;19091:115:0;;;;;:::i;:::-;;:::i;20160:194::-;;;;;;;;;;-1:-1:-1;20160:194:0;;;;;:::i;:::-;;:::i;3883:65::-;;;;;;;;;;;;;;;;19599:116;;;;;;;;;;-1:-1:-1;19599:116:0;;;;;:::i;:::-;;:::i;19727:130::-;;;;;;;;;;-1:-1:-1;19727:130:0;;;;;:::i;:::-;;:::i;6433:143::-;;;;;;;;;;-1:-1:-1;6433:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6541:18:0;;;6514:7;6541:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6433:143;19974:174;;;;;;;;;;-1:-1:-1;19974:174:0;;;;;:::i;:::-;;:::i;3675:61::-;;;;;;;;;;;;;;;;9614:110;;;;;;;;;;-1:-1:-1;9614:110:0;;;;;:::i;:::-;;:::i;1779:192::-;;;;;;;;;;-1:-1:-1;1779:192:0;;;;;:::i;:::-;;:::i;10149:292::-;;;;;;;;;;-1:-1:-1;10149:292:0;;;;;:::i;:::-;;:::i;4385:39::-;;;;;;;;;;-1:-1:-1;4385:39:0;;;;;;;;;;;;;;;3397:21;;;;;;;;;;-1:-1:-1;3397:21:0;;;;;;;-1:-1:-1;;;;;3397:21:0;;;6584:161;6659:4;6676:39;955:10;6699:7;6708:6;6676:8;:39::i;:::-;-1:-1:-1;6733:4:0;6584:161;;;;;:::o;19218:109::-;1500:7;1527:6;-1:-1:-1;;;;;1527:6:0;955:10;1589:23;1581:68;;;;-1:-1:-1;;;1581:68:0;;;;;;;:::i;:::-;;;;;;;;;19294:10:::1;:25:::0;;-1:-1:-1;;;;;;19294:25:0::1;-1:-1:-1::0;;;;;19294:25:0;;;::::1;::::0;;;::::1;::::0;;19218:109::o;19339:126::-;1500:7;1527:6;-1:-1:-1;;;;;1527:6:0;955:10;1589:23;1581:68;;;;-1:-1:-1;;;1581:68:0;;;;;;;:::i;:::-;19444:13:::1;3488:1;19444:2;:13;:::i;:::-;19435:22;::::0;:6;:22:::1;:::i;:::-;19416:16;:41:::0;-1:-1:-1;19339:126:0:o;6753:422::-;6859:4;6876:36;6886:6;6894:9;6905:6;6876:9;:36::i;:::-;-1:-1:-1;;;;;6952:19:0;;6925:24;6952:19;;;:11;:19;;;;;;;;955:10;6952:33;;;;;;;;7004:26;;;;6996:79;;;;-1:-1:-1;;;6996:79:0;;9199:2:1;6996:79:0;;;9181:21:1;9238:2;9218:18;;;9211:30;9277:34;9257:18;;;9250:62;-1:-1:-1;;;9328:18:1;;;9321:38;9376:19;;6996:79:0;8997:404:1;6996:79:0;7086:57;7095:6;955:10;7117:25;7136:6;7117:16;:25;:::i;:::-;7086:8;:57::i;:::-;7163:4;7156:11;;;6753:422;;;;;;:::o;19473:114::-;1500:7;1527:6;-1:-1:-1;;;;;1527:6:0;955:10;1589:23;1581:68;;;;-1:-1:-1;;;1581:68:0;;;;;;;:::i;:::-;19566:13:::1;3488:1;19566:2;:13;:::i;:::-;19557:22;::::0;:6;:22:::1;:::i;:::-;19542:12;:37:::0;-1:-1:-1;19473:114:0:o;8413:248::-;8479:7;8518;;8507;:18;;8499:73;;;;-1:-1:-1;;;8499:73:0;;9738:2:1;8499:73:0;;;9720:21:1;9777:2;9757:18;;;9750:30;9816:34;9796:18;;;9789:62;-1:-1:-1;;;9867:18:1;;;9860:40;9917:19;;8499:73:0;9536:406:1;8499:73:0;8583:19;8606:10;:8;:10::i;:::-;8583:33;-1:-1:-1;8634:19:0;8583:33;8634:7;:19;:::i;9010:475::-;1500:7;1527:6;-1:-1:-1;;;;;1527:6:0;955:10;1589:23;1581:68;;;;-1:-1:-1;;;1581:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9092:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;9084:56;;;::::0;-1:-1:-1;;;9084:56:0;;10371:2:1;9084:56:0::1;::::0;::::1;10353:21:1::0;10410:2;10390:18;;;10383:30;10449:25;10429:18;;;10422:53;10492:18;;9084:56:0::1;10169:347:1::0;9084:56:0::1;9156:9;9151:327;9175:9;:16:::0;9171:20;::::1;9151:327;;;9233:7;-1:-1:-1::0;;;;;9217:23:0::1;:9;9227:1;9217:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;9217:12:0::1;:23;9213:254;;;9276:9;9286:16:::0;;:20:::1;::::0;9305:1:::1;::::0;9286:20:::1;:::i;:::-;9276:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;9261:9:::1;:12:::0;;-1:-1:-1;;;;;9276:31:0;;::::1;::::0;9271:1;;9261:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;9261:46:0::1;-1:-1:-1::0;;;;;9261:46:0;;::::1;;::::0;;9326:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;9365:11:::1;:20:::0;;;;:28;;-1:-1:-1;;9365:28:0::1;::::0;;9412:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;9412:15:0;;;;;-1:-1:-1;;;;;;9412:15:0::1;::::0;;;;;9151:327:::1;9010:475:::0;:::o;9213:254::-:1;9193:3:::0;::::1;::::0;::::1;:::i;:::-;;;;9151:327;;;;9010:475:::0;:::o;7183:215::-;955:10;7271:4;7320:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7320:34:0;;;;;;;;;;7271:4;;7288:80;;7311:7;;7320:47;;7357:10;;7320:47;:::i;7919:486::-;8022:7;8061;;8050;:18;;8042:62;;;;-1:-1:-1;;;8042:62:0;;11260:2:1;8042:62:0;;;11242:21:1;11299:2;11279:18;;;11272:30;11338:33;11318:18;;;11311:61;11389:18;;8042:62:0;11058:355:1;8042:62:0;8120:17;8115:283;;8154:28;8185:34;8196:7;8205:5;8212:6;8185:10;:34::i;:::-;8241:9;;-1:-1:-1;8234:16:0;;-1:-1:-1;8234:16:0;8115:283;8283:28;8314:33;8325:7;8334:4;8340:6;8314:10;:33::i;:::-;8369:17;;;;-1:-1:-1;8362:24:0;;-1:-1:-1;8362:24:0;20366:209;1500:7;1527:6;-1:-1:-1;;;;;1527:6:0;955:10;1589:23;1581:68;;;;-1:-1:-1;;;1581:68:0;;;;;;;:::i;:::-;20515:6:::1;:27:::0;;-1:-1:-1;;;;;;20515:27:0::1;::::0;-1:-1:-1;;;;;20515:27:0;;::::1;;;::::0;;20553:4:::1;:14:::0;;-1:-1:-1;;;;;;20553:14:0::1;::::0;;;::::1;;::::0;;20366:209::o;9495:111::-;1500:7;1527:6;-1:-1:-1;;;;;1527:6:0;955:10;1589:23;1581:68;;;;-1:-1:-1;;;1581:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9564:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;9564:34:0::1;9594:4;9564:34;::::0;;9495:111::o;20763:196::-;1500:7;1527:6;-1:-1:-1;;;;;1527:6:0;955:10;1589:23;1581:68;;;;-1:-1:-1;;;1581:68:0;;;;;;;:::i;:::-;20863:9:::1;20838:21;:34;;20830:71;;;::::0;-1:-1:-1;;;20830:71:0;;11620:2:1;20830:71:0::1;::::0;::::1;11602:21:1::0;11659:2;11639:18;;;11632:30;11698:26;11678:18;;;11671:54;11742:18;;20830:71:0::1;11418:348:1::0;20830:71:0::1;20912:39;::::0;20920:10:::1;::::0;20912:39;::::1;;;::::0;20941:9;;20912:39:::1;::::0;;;20941:9;20920:10;20912:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;21136:234:::0;1500:7;1527:6;-1:-1:-1;;;;;1527:6:0;955:10;1589:23;1581:68;;;;-1:-1:-1;;;1581:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21249:27:0;::::1;21271:4;21249:27;;21241:69;;;::::0;-1:-1:-1;;;21241:69:0;;11973:2:1;21241:69:0::1;::::0;::::1;11955:21:1::0;12012:2;11992:18;;;11985:30;12051:31;12031:18;;;12024:59;12100:18;;21241:69:0::1;11771:353:1::0;21241:69:0::1;21321:41;::::0;-1:-1:-1;;;21321:41:0;;-1:-1:-1;;;;;12321:32:1;;;21321:41:0::1;::::0;::::1;12303:51:1::0;12370:18;;;12363:34;;;21321:27:0;::::1;::::0;::::1;::::0;12276:18:1;;21321:41:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21136:234:::0;;;:::o;8669:333::-;1500:7;1527:6;-1:-1:-1;;;;;1527:6:0;955:10;1589:23;1581:68;;;;-1:-1:-1;;;1581:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8752:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;8751:21;8743:61;;;::::0;-1:-1:-1;;;8743:61:0;;12860:2:1;8743:61:0::1;::::0;::::1;12842:21:1::0;12899:2;12879:18;;;12872:30;12938:29;12918:18;;;12911:57;12985:18;;8743:61:0::1;12658:351:1::0;8743:61:0::1;-1:-1:-1::0;;;;;8818:16:0;::::1;8837:1;8818:16:::0;;;:7:::1;:16;::::0;;;;;:20;8815:108:::1;;-1:-1:-1::0;;;;;8894:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;8874:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;8855:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;8815:108:::1;-1:-1:-1::0;;;;;8933:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;8933:27:0::1;8956:4;8933:27:::0;;::::1;::::0;;;8971:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;8971:23:0::1;::::0;;::::1;::::0;;8669:333::o;6052:198::-;-1:-1:-1;;;;;6142:20:0;;6118:7;6142:20;;;:11;:20;;;;;;;;6138:49;;;-1:-1:-1;;;;;;6171:16:0;;;;;:7;:16;;;;;;;6052:198::o;6138:49::-;-1:-1:-1;;;;;6225:16:0;;;;;;:7;:16;;;;;;6205:37;;:19;:37::i;1677:94::-;1500:7;1527:6;-1:-1:-1;;;;;1527:6:0;955:10;1589:23;1581:68;;;;-1:-1:-1;;;1581:68:0;;;;;;;:::i;:::-;1742:21:::1;1760:1;1742:9;:21::i;:::-;1677:94::o:0;19865:101::-;1500:7;1527:6;-1:-1:-1;;;;;1527:6:0;955:10;1589:23;1581:68;;;;-1:-1:-1;;;1581:68:0;;;;;;;:::i;:::-;19936:11:::1;:22:::0;;-1:-1:-1;;19936:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19865:101::o;9865:272::-;1500:7;1527:6;-1:-1:-1;;;;;1527:6:0;955:10;1589:23;1581:68;;;;-1:-1:-1;;;1581:68:0;;;;;;;:::i;:::-;9979:5:::1;:16:::0;;;10006:15;:28;;;10045:9;:16;;;10072:15;:28;;;10116:13:::1;::::0;::::1;::::0;9979:9:::1;::::0;10116:13:::1;9865:272:::0;;;;:::o;7406:377::-;955:10;7499:4;7543:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7543:34:0;;;;;;;;;;7596:35;;;;7588:85;;;;-1:-1:-1;;;7588:85:0;;13216:2:1;7588:85:0;;;13198:21:1;13255:2;13235:18;;;13228:30;13294:34;13274:18;;;13267:62;-1:-1:-1;;;13345:18:1;;;13338:35;13390:19;;7588:85:0;13014:401:1;7588:85:0;7684:67;955:10;7707:7;7716:34;7735:15;7716:16;:34;:::i;7684:67::-;-1:-1:-1;7771:4:0;;7406:377;-1:-1:-1;;;7406:377:0:o;6258:167::-;6336:4;6353:42;955:10;6377:9;6388:6;6353:9;:42::i;19091:115::-;1500:7;1527:6;-1:-1:-1;;;;;1527:6:0;955:10;1589:23;1581:68;;;;-1:-1:-1;;;1581:68:0;;;;;;;:::i;:::-;19170:16:::1;:28:::0;;-1:-1:-1;;;;;;19170:28:0::1;-1:-1:-1::0;;;;;19170:28:0;;;::::1;::::0;;;::::1;::::0;;19091:115::o;20160:194::-;1500:7;1527:6;-1:-1:-1;;;;;1527:6:0;955:10;1589:23;1581:68;;;;-1:-1:-1;;;1581:68:0;;;;;;;:::i;:::-;20253:9:::1;20249:98;20272:8;:15;20268:1;:19;20249:98;;;20330:5;20308:6;:19;20315:8;20324:1;20315:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;20308:19:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;20308:19:0;:27;;-1:-1:-1;;20308:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20289:3;::::1;::::0;::::1;:::i;:::-;;;;20249:98;;;;20160:194:::0;;:::o;19599:116::-;1500:7;1527:6;-1:-1:-1;;;;;1527:6:0;955:10;1589:23;1581:68;;;;-1:-1:-1;;;1581:68:0;;;;;;;:::i;:::-;19694:13:::1;3488:1;19694:2;:13;:::i;:::-;19685:22;::::0;:6;:22:::1;:::i;:::-;19669:13;:38:::0;-1:-1:-1;19599:116:0:o;19727:130::-;1500:7;1527:6;-1:-1:-1;;;;;1527:6:0;955:10;1589:23;1581:68;;;;-1:-1:-1;;;1581:68:0;;;;;;;:::i;:::-;19836:13:::1;3488:1;19836:2;:13;:::i;:::-;19827:22;::::0;:6;:22:::1;:::i;:::-;19806:18;:43:::0;-1:-1:-1;19727:130:0:o;19974:174::-;1500:7;1527:6;-1:-1:-1;;;;;1527:6:0;955:10;1589:23;1581:68;;;;-1:-1:-1;;;1581:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20060:15:0;::::1;;::::0;;;:6:::1;:15;::::0;;;;;::::1;;:24;;::::0;::::1;;;;20052:54;;;::::0;-1:-1:-1;;;20052:54:0;;13622:2:1;20052:54:0::1;::::0;::::1;13604:21:1::0;13661:2;13641:18;;;13634:30;-1:-1:-1;;;13680:18:1;;;13673:47;13737:18;;20052:54:0::1;13420:341:1::0;20052:54:0::1;-1:-1:-1::0;;;;;20117:15:0;;;::::1;;::::0;;;:6:::1;:15;::::0;;;;:23;;-1:-1:-1;;20117:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19974:174::o;9614:110::-;1500:7;1527:6;-1:-1:-1;;;;;1527:6:0;955:10;1589:23;1581:68;;;;-1:-1:-1;;;1581:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9681:27:0::1;9711:5;9681:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;9681:35:0::1;::::0;;9614:110::o;1779:192::-;1500:7;1527:6;-1:-1:-1;;;;;1527:6:0;955:10;1589:23;1581:68;;;;-1:-1:-1;;;1581:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1868:22:0;::::1;1860:73;;;::::0;-1:-1:-1;;;1860:73:0;;13968:2:1;1860:73:0::1;::::0;::::1;13950:21:1::0;14007:2;13987:18;;;13980:30;14046:34;14026:18;;;14019:62;-1:-1:-1;;;14097:18:1;;;14090:36;14143:19;;1860:73:0::1;13766:402:1::0;1860:73:0::1;1944:19;1954:8;1944:9;:19::i;:::-;1779:192:::0;:::o;10149:292::-;1500:7;1527:6;-1:-1:-1;;;;;1527:6:0;955:10;1589:23;1581:68;;;;-1:-1:-1;;;1581:68:0;;;;;;;:::i;:::-;10267:9:::1;:20:::0;;;10298:19;:32;;;10341:13;:20;;;10372:19;:32;;;10420:13:::1;::::0;::::1;::::0;10267::::1;::::0;10420::::1;10149:292:::0;;;;:::o;13855:335::-;-1:-1:-1;;;;;13948:19:0;;13940:68;;;;-1:-1:-1;;;13940:68:0;;14375:2:1;13940:68:0;;;14357:21:1;14414:2;14394:18;;;14387:30;14453:34;14433:18;;;14426:62;-1:-1:-1;;;14504:18:1;;;14497:34;14548:19;;13940:68:0;14173:400:1;13940:68:0;-1:-1:-1;;;;;14027:21:0;;14019:68;;;;-1:-1:-1;;;14019:68:0;;14780:2:1;14019:68:0;;;14762:21:1;14819:2;14799:18;;;14792:30;14858:34;14838:18;;;14831:62;-1:-1:-1;;;14909:18:1;;;14902:32;14951:19;;14019:68:0;14578:398:1;14019:68:0;-1:-1:-1;;;;;14098:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14150:32;;1549:25:1;;;14150:32:0;;1522:18:1;14150:32:0;;;;;;;13855:335;;;:::o;14198:1365::-;-1:-1:-1;;;;;14286:18:0;;14278:68;;;;-1:-1:-1;;;14278:68:0;;15183:2:1;14278:68:0;;;15165:21:1;15222:2;15202:18;;;15195:30;15261:34;15241:18;;;15234:62;-1:-1:-1;;;15312:18:1;;;15305:35;15357:19;;14278:68:0;14981:401:1;14278:68:0;-1:-1:-1;;;;;14365:16:0;;14357:64;;;;-1:-1:-1;;;14357:64:0;;15589:2:1;14357:64:0;;;15571:21:1;15628:2;15608:18;;;15601:30;15667:34;15647:18;;;15640:62;-1:-1:-1;;;15718:18:1;;;15711:33;15761:19;;14357:64:0;15387:399:1;14357:64:0;14449:1;14440:6;:10;14432:64;;;;-1:-1:-1;;;14432:64:0;;15993:2:1;14432:64:0;;;15975:21:1;16032:2;16012:18;;;16005:30;16071:34;16051:18;;;16044:62;-1:-1:-1;;;16122:18:1;;;16115:39;16171:19;;14432:64:0;15791:405:1;14432:64:0;14525:15;14535:4;14525:9;:15::i;:::-;14515:6;:25;;14507:86;;;;-1:-1:-1;;;14507:86:0;;16403:2:1;14507:86:0;;;16385:21:1;16442:2;16422:18;;;16415:30;16481:34;16461:18;;;16454:62;-1:-1:-1;;;16532:18:1;;;16525:47;16589:19;;14507:86:0;16201:413:1;14507:86:0;-1:-1:-1;;;;;14613:12:0;;;;;;:6;:12;;;;;;;;14612:13;:28;;;;-1:-1:-1;;;;;;14630:10:0;;;;;;:6;:10;;;;;;;;14629:11;14612:28;14604:54;;;;-1:-1:-1;;;14604:54:0;;16821:2:1;14604:54:0;;;16803:21:1;16860:2;16840:18;;;16833:30;-1:-1:-1;;;16879:18:1;;;16872:43;16932:18;;14604:54:0;16619:337:1;14604:54:0;-1:-1:-1;;;;;14691:24:0;;;;;;:18;:24;;;;;;;;14690:25;:52;;;;-1:-1:-1;;;;;;14720:22:0;;;;;;:18;:22;;;;;;;;14719:23;14690:52;:65;;;;-1:-1:-1;14747:8:0;;;;;;;14746:9;14690:65;14687:493;;;14782:4;;-1:-1:-1;;;;;14774:12:0;;;14782:4;;14774:12;14771:116;;;14824:12;;14814:6;:22;;14806:65;;;;-1:-1:-1;;;14806:65:0;;17163:2:1;14806:65:0;;;17145:21:1;17202:2;17182:18;;;17175:30;17241:32;17221:18;;;17214:60;17291:18;;14806:65:0;16961:354:1;14806:65:0;14910:4;;-1:-1:-1;;;;;14904:10:0;;;14910:4;;14904:10;14901:116;;;14952:13;;14942:6;:23;;14934:67;;;;-1:-1:-1;;;14934:67:0;;17522:2:1;14934:67:0;;;17504:21:1;17561:2;17541:18;;;17534:30;17600:33;17580:18;;;17573:61;17651:18;;14934:67:0;17320:355:1;14934:67:0;15040:4;;-1:-1:-1;;;;;15034:10:0;;;15040:4;;15034:10;15031:138;;15098:16;;15088:6;15072:13;15082:2;15072:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;15064:89;;;;-1:-1:-1;;;15064:89:0;;17882:2:1;15064:89:0;;;17864:21:1;17921:2;17901:18;;;17894:30;17960:34;17940:18;;;17933:62;-1:-1:-1;;;18011:18:1;;;18004:32;18053:19;;15064:89:0;17680:398:1;15064:89:0;15200:12;15243:18;;15215:24;15233:4;15215:9;:24::i;:::-;15276:8;;-1:-1:-1;;15215:46:0;;-1:-1:-1;15276:8:0;;;;;15275:9;:24;;;;-1:-1:-1;15288:11:0;;;;15275:24;:35;;;;;15303:7;15275:35;:51;;;;-1:-1:-1;15322:4:0;;-1:-1:-1;;;;;15314:12:0;;;15322:4;;15314:12;;15275:51;:80;;;;-1:-1:-1;;;;;;15331:24:0;;;;;;:18;:24;;;;;;;;15330:25;15275:80;:107;;;;-1:-1:-1;;;;;;15360:22:0;;;;;;:18;:22;;;;;;;;15359:23;15275:107;15272:172;;;15398:34;15413:18;;15398:14;:34::i;:::-;-1:-1:-1;;;;;15491:24:0;;;;;;:18;:24;;;;;;15456:99;;15471:4;;15477:2;;15481:6;;15491:24;;;:50;;-1:-1:-1;;;;;;15519:22:0;;;;;;:18;:22;;;;;;;;15491:50;15550:4;;15489:53;;;-1:-1:-1;;;;;15544:10:0;;;15550:4;;15544:10;15456:14;:99::i;13141:158::-;13182:7;13203:15;13220;13239:19;:17;:19::i;:::-;13202:56;;-1:-1:-1;13202:56:0;-1:-1:-1;13276:15:0;13202:56;;13276:15;:::i;:::-;13269:22;;;;13141:158;:::o;11421:407::-;11507:36;;:::i;:::-;11568:37;11580:7;11589;11598:6;11568:11;:37::i;:::-;11556:49;;11741:52;11753:9;11764:7;11773;11782:10;:8;:10::i;:::-;11741:11;:52::i;:::-;11717:20;;;11616:177;11701:14;;;11616:177;11679:20;;;11616:177;11663:14;;;11616:177;11636:25;;;11616:177;;;11421:407;;;;;:::o;1979:173::-;2035:16;2054:6;;-1:-1:-1;;;;;2071:17:0;;;-1:-1:-1;;;;;;2071:17:0;;;;;;2104:40;;2054:6;;;;;;;2104:40;;2035:16;2104:40;2024:128;1979:173;:::o;16813:1194::-;4998:8;:15;;-1:-1:-1;;4998:15:0;;;;;17000:13;;16978:19;;16956;;4998:15;;17000:13;16956:41:::1;::::0;::::1;:::i;:::-;:57;;;;:::i;:::-;16955:63;::::0;17017:1:::1;16955:63;:::i;:::-;16933:85;;17029:32;17095:11;17073:9;:19;;;17064:6;:28;;;;:::i;:::-;:42;;;;:::i;:::-;17029:77:::0;-1:-1:-1;17117:14:0::1;17134:33;17029:77:::0;17134:6;:33:::1;:::i;:::-;17117:50:::0;-1:-1:-1;17205:21:0::1;17239:24;17117:50:::0;17239:16:::1;:24::i;:::-;17276:20;17299:38;17323:14:::0;17299:21:::1;:38;:::i;:::-;17399:19:::0;;17276:61;;-1:-1:-1;17348:19:0::1;::::0;17385:33:::1;::::0;:11;:33:::1;:::i;:::-;17369:50;::::0;:12;:50:::1;:::i;:::-;17476:19:::0;;17348:71;;-1:-1:-1;17430:29:0::1;::::0;17462:33:::1;::::0;17348:71;17462:33:::1;:::i;:::-;17430:65:::0;-1:-1:-1;17511:25:0;;17508:158:::1;;17593:61;17606:24;17632:21;17593:12;:61::i;:::-;17719:19:::0;;17678:20:::1;::::0;17701:15:::1;:11:::0;17719:19:::1;17701:15;:::i;:::-;:37;;;;:::i;:::-;17678:60:::0;-1:-1:-1;17752:16:0;;17749:95:::1;;17792:16;::::0;17784:48:::1;::::0;-1:-1:-1;;;;;17792:16:0;;::::1;::::0;17784:48;::::1;;;::::0;17819:12;;17792:16:::1;17784:48:::0;17792:16;17784:48;17819:12;17792:16;17784:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;17749:95;17899:13:::0;;17864:14:::1;::::0;17881:15:::1;:11:::0;17895:1:::1;17881:15;:::i;:::-;:31;;;;:::i;:::-;17864:48:::0;-1:-1:-1;17926:10:0;;17923:77:::1;;17960:10;::::0;17952:36:::1;::::0;-1:-1:-1;;;;;17960:10:0;;::::1;::::0;17952:36;::::1;;;::::0;17981:6;;17960:10:::1;17952:36:::0;17960:10;17952:36;17981:6;17960:10;17952:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;17923:77;-1:-1:-1::0;;5036:8:0;:16;;-1:-1:-1;;5036:16:0;;;-1:-1:-1;;;;;;;;16813:1194:0:o;15646:1159::-;15768:28;15799:36;15810:7;15819;15828:6;15799:10;:36::i;:::-;-1:-1:-1;;;;;15852:19:0;;;;;;:11;:19;;;;;;15768:67;;-1:-1:-1;15852:19:0;;15848:115;;;-1:-1:-1;;;;;15928:15:0;;;;;;:7;:15;;;;;;:23;;15944:7;;15928:23;:::i;:::-;-1:-1:-1;;;;;15910:15:0;;;;;;:7;:15;;;;;:41;15848:115;-1:-1:-1;;;;;15977:22:0;;;;;;:11;:22;;;;;;;;15973:130;;;16074:17;;;;-1:-1:-1;;;;;16055:18:0;;;;;;:7;:18;;;;;;:36;;16074:17;16055:36;:::i;:::-;-1:-1:-1;;;;;16034:18:0;;;;;;:7;:18;;;;;:57;15973:130;16149:9;;-1:-1:-1;;;;;16133:15:0;;16149:9;16133:15;;;:7;:15;;;;;;:25;;16149:9;16133:25;:::i;:::-;-1:-1:-1;;;;;16115:15:0;;;;;;;:7;:15;;;;;;;;:43;;;;16209:17;;;16190:18;;;;;;;;;;:36;;16209:17;16190:36;:::i;:::-;-1:-1:-1;;;;;16169:18:0;;;;;;:7;:18;;;;;;;:57;;;;16250:6;;;:10;;;:24;;;16273:1;16264;:6;;;:10;16250:24;16247:56;;;16276:27;16288:1;:6;;;16296:1;:6;;;16276:11;:27::i;:::-;16332:1;16317;:12;;;:16;:36;;;;16352:1;16337;:12;;;:16;16317:36;16314:109;;;16370:41;16385:1;:12;;;16398:1;:12;;;16370:14;:41::i;:::-;16451:1;16436;:12;;;:16;:36;;;;16471:1;16456;:12;;;:16;16436:36;16433:109;;;16488:42;16503:1;:12;;;16517:1;:12;;;16488:14;:42::i;:::-;16564:1;16555;:6;;;:10;:24;;;;16578:1;16569;:6;;;:10;16555:24;16552:79;;;16595:24;16604:1;:6;;;16612:1;:6;;;16595:8;:24::i;:::-;16673:9;-1:-1:-1;;;;;16656:46:0;16665:6;-1:-1:-1;;;;;16656:46:0;;16684:1;:17;;;16656:46;;;;1549:25:1;;1537:2;1522:18;;1403:177;16656:46:0;;;;;;;;16743:4;-1:-1:-1;;;;;16718:69:0;16727:6;-1:-1:-1;;;;;16718:69:0;;16774:1;:12;;;16765:1;:6;;;16750:1;:12;;;:21;;;;:::i;:::-;:36;;;;:::i;:::-;16718:69;;1549:25:1;;;1537:2;1522:18;16718:69:0;;;;;;;15757:1048;15646:1159;;;;;:::o;13307:540::-;13404:7;;13440;;13357;;;;;13458:279;13482:9;:16;13478:20;;13458:279;;;13548:7;13524;:21;13532:9;13542:1;13532:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13532:12:0;13524:21;;;;;;;;;;;;;:31;;:66;;;13583:7;13559;:21;13567:9;13577:1;13567:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13567:12:0;13559:21;;;;;;;;;;;;;:31;13524:66;13520:97;;;13600:7;;13609;;13592:25;;;;;;;13307:540;;:::o;13520:97::-;13650:7;:21;13658:9;13668:1;13658:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13658:12:0;13650:21;;;;;;;;;;;;;13642:29;;:7;:29;:::i;:::-;13632:39;;13704:7;:21;13712:9;13722:1;13712:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13712:12:0;13704:21;;;;;;;;;;;;;13696:29;;:7;:29;:::i;:::-;13686:39;-1:-1:-1;13500:3:0;;;;:::i;:::-;;;;13458:279;;;;13769:7;;13761;;:15;;;;:::i;:::-;13751:7;:25;13747:56;;;13786:7;;13795;;13778:25;;;;;;13307:540;;:::o;13747:56::-;13822:7;;13831;;-1:-1:-1;13307:540:0;-1:-1:-1;13307:540:0:o;11836:608::-;11923:28;;:::i;:::-;11970:7;11966:86;;11992:17;;;:27;;;12032:8;;11966:86;12062:17;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12062:17:0;12093:6;12090:55;;;-1:-1:-1;12101:16:0;;;;;;;;12108:9;12101:16;;;;;;;;;;;;;;;;;;;;;;;;12090:55;;;-1:-1:-1;12133:12:0;;;;;;;;12140:5;12133:12;;;;;;;;;;;;;;;;;;;;;;;;12090:55;12183:8;;12192:3;;12175:16;;:7;:16;:::i;:::-;:20;;;;:::i;:::-;12166:6;;;:29;12229:14;;;;12244:3;;12221:22;;:7;:22;:::i;:::-;:26;;;;:::i;:::-;12206:12;;;:41;12281:14;;;;12296:3;;12273:22;;:7;:22;:::i;:::-;:26;;;;:::i;:::-;12258:12;;;:41;12327:8;;;;12336:3;;12319:16;;:7;:16;:::i;:::-;:20;;;;:::i;:::-;12310:6;;;:29;;;12405:12;;;;12385;;;;12378:6;;;;12405:12;;12310:29;12370:14;;:7;:14;:::i;:::-;:27;;;;:::i;:::-;:34;;;;:::i;:::-;:47;;;;:::i;:::-;12350:17;;;:67;-1:-1:-1;11836:608:0;;;;;:::o;12452:681::-;12577:15;;;;;;12707:19;12715:11;12707:7;:19;:::i;:::-;12697:29;;12743:7;12739:71;;-1:-1:-1;12772:7:0;;-1:-1:-1;12790:1:0;;-1:-1:-1;12790:1:0;;-1:-1:-1;12790:1:0;;-1:-1:-1;12790:1:0;12765:33;;12739:71;12836:11;12829:1;:6;;;:18;;;;:::i;:::-;12822:25;;12884:11;12871:1;:12;;;:24;;;;:::i;:::-;12858:37;;12920:11;12913:1;:6;;;:18;;;;:::i;:::-;12906:25;;12968:11;12955:1;:12;;;:24;;;;:::i;:::-;12942:37;-1:-1:-1;12942:37:0;13033:4;13022:10;13009:12;13017:4;13009:7;:12;:::i;:::-;:23;;;;:::i;:::-;:28;;;;:::i;:::-;:39;;;;:::i;:::-;12990:58;;12452:681;;;;;;;;;;;;:::o;18521:562::-;18671:16;;;18685:1;18671:16;;;;;;;;18647:21;;18671:16;;;;;;;;;;-1:-1:-1;18671:16:0;18647:40;;18716:4;18698;18703:1;18698:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;18698:23:0;;;-1:-1:-1;;;;;18698:23:0;;;;;18742:6;;;;;;;;;-1:-1:-1;;;;;18742:6:0;-1:-1:-1;;;;;18742:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18732:4;18737:1;18732:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18732:23:0;;;:7;;;;;;;;;:23;18800:6;;18768:53;;18785:4;;18800:6;;;;18809:11;18768:8;:53::i;:::-;18860:6;;:215;;-1:-1:-1;;;18860:215:0;;:6;;;;-1:-1:-1;;;;;18860:6:0;;:57;;:215;;18932:11;;18958:1;;19002:4;;19029;;19049:15;;18860:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18576:507;18521:562;:::o;18015:498::-;18195:6;;18163:53;;18180:4;;18195:6;;;-1:-1:-1;;;;;18195:6:0;18204:11;18163:8;:53::i;:::-;18259:6;;:246;;-1:-1:-1;;;18259:246:0;;18322:4;18259:246;;;19665:34:1;19715:18;;;19708:34;;;18368:1:0;19758:18:1;;;19751:34;;;19801:18;;;19794:34;;;19844:19;;;19837:44;18479:15:0;19897:19:1;;;19890:35;18259:6:0;;;;-1:-1:-1;;;;;18259:6:0;;:22;;18289:9;;19599:19:1;;18259:246:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18015:498;;:::o;10449:123::-;10527:4;10517:7;;:14;;;;;;;:::i;:::-;;;;-1:-1:-1;;10542:11:0;:22;;10560:4;;10542:11;:15;;:22;;10560:4;;10542:22;:::i;:::-;;;;-1:-1:-1;;;;10449:123:0:o;10580:284::-;10687:10;10663:11;:21;;;:34;;;;;;;:::i;:::-;;;;-1:-1:-1;;10733:4:0;10713:26;;;;:11;:26;;;;;;;;10710:101;;;10781:4;10765:22;;;;:7;:22;;;;;:34;;10789:10;;10765:22;:34;;10789:10;;10765:34;:::i;:::-;;;;-1:-1:-1;;10710:101:0;10837:4;10821:22;;;;:7;:22;;;;;:35;;10846:10;;10821:22;:35;;10846:10;;10821:35;:::i;10872:284::-;10979:10;10955:11;:21;;;:34;;;;;;;:::i;11168:245::-;11252:4;11233:11;:15;;;:23;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:134;820:20;;849:31;820:20;849:31;:::i;:::-;752:134;;;:::o;891:315::-;959:6;967;1020:2;1008:9;999:7;995:23;991:32;988:52;;;1036:1;1033;1026:12;988:52;1075:9;1062:23;1094:31;1119:5;1094:31;:::i;:::-;1144:5;1196:2;1181:18;;;;1168:32;;-1:-1:-1;;;891:315:1:o;1585:247::-;1644:6;1697:2;1685:9;1676:7;1672:23;1668:32;1665:52;;;1713:1;1710;1703:12;1665:52;1752:9;1739:23;1771:31;1796:5;1771:31;:::i;1837:180::-;1896:6;1949:2;1937:9;1928:7;1924:23;1920:32;1917:52;;;1965:1;1962;1955:12;1917:52;-1:-1:-1;1988:23:1;;1837:180;-1:-1:-1;1837:180:1:o;2022:456::-;2099:6;2107;2115;2168:2;2156:9;2147:7;2143:23;2139:32;2136:52;;;2184:1;2181;2174:12;2136:52;2223:9;2210:23;2242:31;2267:5;2242:31;:::i;:::-;2292:5;-1:-1:-1;2349:2:1;2334:18;;2321:32;2362:33;2321:32;2362:33;:::i;:::-;2022:456;;2414:7;;-1:-1:-1;;;2468:2:1;2453:18;;;;2440:32;;2022:456::o;2880:118::-;2966:5;2959:13;2952:21;2945:5;2942:32;2932:60;;2988:1;2985;2978:12;3003:128;3068:20;;3097:28;3068:20;3097:28;:::i;3136:444::-;3207:6;3215;3223;3276:2;3264:9;3255:7;3251:23;3247:32;3244:52;;;3292:1;3289;3282:12;3244:52;3328:9;3315:23;3305:33;;3388:2;3377:9;3373:18;3360:32;3401:28;3423:5;3401:28;:::i;:::-;3448:5;-1:-1:-1;3505:2:1;3490:18;;3477:32;3518:30;3477:32;3518:30;:::i;:::-;3567:7;3557:17;;;3136:444;;;;;:::o;3585:388::-;3653:6;3661;3714:2;3702:9;3693:7;3689:23;3685:32;3682:52;;;3730:1;3727;3720:12;3682:52;3769:9;3756:23;3788:31;3813:5;3788:31;:::i;:::-;3838:5;-1:-1:-1;3895:2:1;3880:18;;3867:32;3908:33;3867:32;3908:33;:::i;:::-;3960:7;3950:17;;;3585:388;;;;;:::o;4374:241::-;4430:6;4483:2;4471:9;4462:7;4458:23;4454:32;4451:52;;;4499:1;4496;4489:12;4451:52;4538:9;4525:23;4557:28;4579:5;4557:28;:::i;4620:385::-;4706:6;4714;4722;4730;4783:3;4771:9;4762:7;4758:23;4754:33;4751:53;;;4800:1;4797;4790:12;4751:53;-1:-1:-1;;4823:23:1;;;4893:2;4878:18;;4865:32;;-1:-1:-1;4944:2:1;4929:18;;4916:32;;4995:2;4980:18;4967:32;;-1:-1:-1;4620:385:1;-1:-1:-1;4620:385:1:o;5010:127::-;5071:10;5066:3;5062:20;5059:1;5052:31;5102:4;5099:1;5092:15;5126:4;5123:1;5116:15;5142:1191;5232:6;5240;5293:2;5281:9;5272:7;5268:23;5264:32;5261:52;;;5309:1;5306;5299:12;5261:52;5349:9;5336:23;5378:18;5419:2;5411:6;5408:14;5405:34;;;5435:1;5432;5425:12;5405:34;5473:6;5462:9;5458:22;5448:32;;5518:7;5511:4;5507:2;5503:13;5499:27;5489:55;;5540:1;5537;5530:12;5489:55;5576:2;5563:16;5598:4;5621:2;5617;5614:10;5611:36;;;5627:18;;:::i;:::-;5673:2;5670:1;5666:10;5705:2;5699:9;5768:2;5764:7;5759:2;5755;5751:11;5747:25;5739:6;5735:38;5823:6;5811:10;5808:22;5803:2;5791:10;5788:18;5785:46;5782:72;;;5834:18;;:::i;:::-;5870:2;5863:22;5920:18;;;5954:15;;;;-1:-1:-1;5996:11:1;;;5992:20;;;6024:19;;;6021:39;;;6056:1;6053;6046:12;6021:39;6080:11;;;;6100:148;6116:6;6111:3;6108:15;6100:148;;;6182:23;6201:3;6182:23;:::i;:::-;6170:36;;6133:12;;;;6226;;;;6100:148;;;6267:6;-1:-1:-1;6292:35:1;;-1:-1:-1;6308:18:1;;;6292:35;:::i;:::-;6282:45;;;;;;5142:1191;;;;;:::o;6338:382::-;6403:6;6411;6464:2;6452:9;6443:7;6439:23;6435:32;6432:52;;;6480:1;6477;6470:12;6432:52;6519:9;6506:23;6538:31;6563:5;6538:31;:::i;:::-;6588:5;-1:-1:-1;6645:2:1;6630:18;;6617:32;6658:30;6617:32;6658:30;:::i;6948:356::-;7150:2;7132:21;;;7169:18;;;7162:30;7228:34;7223:2;7208:18;;7201:62;7295:2;7280:18;;6948:356::o;7309:127::-;7370:10;7365:3;7361:20;7358:1;7351:31;7401:4;7398:1;7391:15;7425:4;7422:1;7415:15;7441:422;7530:1;7573:5;7530:1;7587:270;7608:7;7598:8;7595:21;7587:270;;;7667:4;7663:1;7659:6;7655:17;7649:4;7646:27;7643:53;;;7676:18;;:::i;:::-;7726:7;7716:8;7712:22;7709:55;;;7746:16;;;;7709:55;7825:22;;;;7785:15;;;;7587:270;;;7591:3;7441:422;;;;;:::o;7868:806::-;7917:5;7947:8;7937:80;;-1:-1:-1;7988:1:1;8002:5;;7937:80;8036:4;8026:76;;-1:-1:-1;8073:1:1;8087:5;;8026:76;8118:4;8136:1;8131:59;;;;8204:1;8199:130;;;;8111:218;;8131:59;8161:1;8152:10;;8175:5;;;8199:130;8236:3;8226:8;8223:17;8220:43;;;8243:18;;:::i;:::-;-1:-1:-1;;8299:1:1;8285:16;;8314:5;;8111:218;;8413:2;8403:8;8400:16;8394:3;8388:4;8385:13;8381:36;8375:2;8365:8;8362:16;8357:2;8351:4;8348:12;8344:35;8341:77;8338:159;;;-1:-1:-1;8450:19:1;;;8482:5;;8338:159;8529:34;8554:8;8548:4;8529:34;:::i;:::-;8599:6;8595:1;8591:6;8587:19;8578:7;8575:32;8572:58;;;8610:18;;:::i;:::-;8648:20;;7868:806;-1:-1:-1;;;7868:806:1:o;8679:140::-;8737:5;8766:47;8807:4;8797:8;8793:19;8787:4;8766:47;:::i;8824:168::-;8864:7;8930:1;8926;8922:6;8918:14;8915:1;8912:21;8907:1;8900:9;8893:17;8889:45;8886:71;;;8937:18;;:::i;:::-;-1:-1:-1;8977:9:1;;8824:168::o;9406:125::-;9446:4;9474:1;9471;9468:8;9465:34;;;9479:18;;:::i;:::-;-1:-1:-1;9516:9:1;;9406:125::o;9947:217::-;9987:1;10013;10003:132;;10057:10;10052:3;10048:20;10045:1;10038:31;10092:4;10089:1;10082:15;10120:4;10117:1;10110:15;10003:132;-1:-1:-1;10149:9:1;;9947:217::o;10521:127::-;10582:10;10577:3;10573:20;10570:1;10563:31;10613:4;10610:1;10603:15;10637:4;10634:1;10627:15;10653:127;10714:10;10709:3;10705:20;10702:1;10695:31;10745:4;10742:1;10735:15;10769:4;10766:1;10759:15;10785:135;10824:3;-1:-1:-1;;10845:17:1;;10842:43;;;10865:18;;:::i;:::-;-1:-1:-1;10912:1:1;10901:13;;10785:135::o;10925:128::-;10965:3;10996:1;10992:6;10989:1;10986:13;10983:39;;;11002:18;;:::i;:::-;-1:-1:-1;11038:9:1;;10925:128::o;12408:245::-;12475:6;12528:2;12516:9;12507:7;12503:23;12499:32;12496:52;;;12544:1;12541;12534:12;12496:52;12576:9;12570:16;12595:28;12617:5;12595:28;:::i;18083:251::-;18153:6;18206:2;18194:9;18185:7;18181:23;18177:32;18174:52;;;18222:1;18219;18212:12;18174:52;18254:9;18248:16;18273:31;18298:5;18273:31;:::i;18339:980::-;18601:4;18649:3;18638:9;18634:19;18680:6;18669:9;18662:25;18706:2;18744:6;18739:2;18728:9;18724:18;18717:34;18787:3;18782:2;18771:9;18767:18;18760:31;18811:6;18846;18840:13;18877:6;18869;18862:22;18915:3;18904:9;18900:19;18893:26;;18954:2;18946:6;18942:15;18928:29;;18975:1;18985:195;18999:6;18996:1;18993:13;18985:195;;;19064:13;;-1:-1:-1;;;;;19060:39:1;19048:52;;19155:15;;;;19120:12;;;;19096:1;19014:9;18985:195;;;-1:-1:-1;;;;;;;19236:32:1;;;;19231:2;19216:18;;19209:60;-1:-1:-1;;;19300:3:1;19285:19;19278:35;19197:3;18339:980;-1:-1:-1;;;18339:980:1:o;19936:306::-;20024:6;20032;20040;20093:2;20081:9;20072:7;20068:23;20064:32;20061:52;;;20109:1;20106;20099:12;20061:52;20138:9;20132:16;20122:26;;20188:2;20177:9;20173:18;20167:25;20157:35;;20232:2;20221:9;20217:18;20211:25;20201:35;;19936:306;;;;;:::o

Swarm Source

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