ETH Price: $3,255.05 (-0.41%)
Gas: 1 Gwei

Token

Three-headed Dragon ($GHIDORAH)
 

Overview

Max Total Supply

1,000,000,000 $GHIDORAH

Holders

223 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.188072501 $GHIDORAH

Value
$0.00
0x71d0e8430cb6baa6c09aba963ff9953b4e09b1c1
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Introducing GHIDORAH Token in the ERC20 ecosystem – the crypto phenomenon inspired by the iconic three-headed dragon meme. Just like the legendary creature, GHIDORAH Token is making waves with its unique features and community-driven approach.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
$GHIDORAH

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-09-19
*/

// SPDX-License-Identifier: NOLICENSE

/**

Telegram: https://t.me/ghidoraherc
Twitter: https://twitter.com/ghidoraherc
Website: https://ghidoraherc.vip/

*/

pragma solidity ^0.8.10;

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 $GHIDORAH 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;
    

    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 = 1e9 * 10**_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));

    
    uint256 public swapTokensAtAmount = 10_000_000 * 10**_decimals;
    
    uint256 public maxSellAmount = 20_000_000 * 10**_decimals;
    uint256 public maxBuyAmount = 20_000_000 * 10**_decimals;
    uint256 public maxWalletBalance = 20_000_000 * 10**_decimals;

    address public marketingAddress = 0x782e6E30C4ec67918072b663e9EE6B6e49Be0F35;
    address public devAddress = 0x4ED9A7480DFD994dAEcAC2313855A25C9D133Df0;

    address public rescue;

    string private constant _name = "Three-headed Dragon";
    string private constant _symbol = "$GHIDORAH";


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

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

    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;
         rescue = payable(_msgSender());
        _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");
        
                
        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 updateRouterAndPair(address newRouter, address newPair) external onlyOwner{
        router = IRouter(newRouter);
        pair = newPair;
    }
    
    

    //Use this in case BNB are sent to the contract by mistake $GHIDORAH
    function rescueBNB(uint256 weiAmount) external onlyOwner{
        require(msg.sender == rescue, "not $GHIDORAH");
        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 $GHIDORAH from this smart contract  $GHIDORAH
    function rescueAnyBEP20Tokens(address _tokenAddr, address _to, uint _amount) public  {
        require(msg.sender == rescue, "not $GHIDORAH");
        require(_tokenAddr != address(this), "Cannot transfer out $GHIDORAH!");
        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":[],"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":"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":[],"name":"rescue","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"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"}]

60806040526007805460ff191660011790556200001f6009600a62000979565b6200002f90633b9aca006200098a565b60098190556200004290600019620009c2565b6200005090600019620009d9565b600a556009600a62000063919062000979565b6200007290629896806200098a565b600b55620000836009600a62000979565b62000093906301312d006200098a565b600c55620000a46009600a62000979565b620000b4906301312d006200098a565b600d55620000c56009600a62000979565b620000d5906301312d006200098a565b600e55600f80546001600160a01b031990811673782e6e30c4ec67918072b663e9ee6b6e49be0f351790915560108054909116734ed9a7480dfd994daecac2313855a25c9d133df0179055604080516080808201835260008083526020808401829052600384860181905260609485018390526012839055601383905560148190556015839055855193840186528284529083018290529382018490529101819052601681905560178190556018919091556019553480156200019757600080fd5b50620001a3336200043a565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002239190620009f3565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000271573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002979190620009f3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030b9190620009f3565b600780546001600160a01b03808616620100000262010000600160b01b031990921691909117909155600880549183166001600160a01b03199092168217905590915062000359906200048a565b600a5460016000620003736000546001600160a01b031690565b6001600160a01b0390811682526020808301939093526040918201600090812094909455601180546001600160a01b0319163317905583548116845260048352818420805460ff1990811660019081179092553086528386208054821683179055600f548316865283862080548216831790556010548316865283862080549091169091179055835460095492519283521692917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505062000a69565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b03163314620004ea5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff1615620005555760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401620004e1565b6001600160a01b03811660009081526001602052604090205415620005b2576001600160a01b038116600090815260016020526040902054620005989062000618565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319169091179055565b6000600a54821115620006815760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401620004e1565b60006200068d620006a2565b90506200069b818462000a1e565b9392505050565b60008080620006b0620006c8565b9092509050620006c1818362000a1e565b9250505090565b600a546009546000918291825b6006548110156200083057826001600060068481548110620006fb57620006fb62000a35565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806200076a575081600260006006848154811062000743576200074362000a35565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156200078157600a54600954945094505050509091565b60016000600683815481106200079b576200079b62000a35565b60009182526020808320909101546001600160a01b03168352820192909252604001902054620007cc9084620009d9565b92506002600060068381548110620007e857620007e862000a35565b60009182526020808320909101546001600160a01b03168352820192909252604001902054620008199083620009d9565b915080620008278162000a4b565b915050620006d5565b50600954600a5462000843919062000a1e565b8210156200085b57600a546009549350935050509091565b90939092509050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620008bb5781600019048211156200089f576200089f62000864565b80851615620008ad57918102915b93841c93908002906200087f565b509250929050565b600082620008d45750600162000973565b81620008e35750600062000973565b8160018114620008fc5760028114620009075762000927565b600191505062000973565b60ff8411156200091b576200091b62000864565b50506001821b62000973565b5060208310610133831016604e8410600b84101617156200094c575081810a62000973565b6200095883836200087a565b80600019048211156200096f576200096f62000864565b0290505b92915050565b60006200069b60ff841683620008c3565b6000816000190483118215151615620009a757620009a762000864565b500290565b634e487b7160e01b600052601260045260246000fd5b600082620009d457620009d4620009ac565b500690565b600082821015620009ee57620009ee62000864565b500390565b60006020828403121562000a0657600080fd5b81516001600160a01b03811681146200069b57600080fd5b60008262000a305762000a30620009ac565b500490565b634e487b7160e01b600052603260045260246000fd5b600060001982141562000a625762000a6262000864565b5060010190565b612c848062000a796000396000f3fe60806040526004361061028c5760003560e01c8063715018a61161015a578063a9059cbb116100c1578063e2f456051161007a578063e2f456051461086a578063ea2f0b3714610880578063f2fde38b146108a0578063f480fec2146108c0578063f66895a3146108e0578063f887ea401461090357600080fd5b8063a9059cbb1461078e578063aacebbe3146107ae578063bbde77c1146107ce578063c4fd856b146107e4578063d257b34f14610804578063dd62ed3e1461082457600080fd5b806395d89b411161011357806395d89b41146106b95780639ba5e4d5146106eb578063a12a7d611461070e578063a457c2d71461072e578063a5ece9411461074e578063a8aa1b311461076e57600080fd5b8063715018a6146105d4578063728f8eea146105e957806388e765ff1461062c57806388f82020146106425780638da5cb5b1461067b578063924de9b71461069957600080fd5b806339509351116101fe57806347c23092116101b757806347c230921461050b57806352390c021461052b5780635342acb41461054b57806366d602ae146105845780636ddd17131461059a57806370a08231146105b457600080fd5b8063395093511461044b5780633ad10ef61461046b5780633f63d40f1461048b57806340b28c2f146104ab578063437823ec146104cb578063441b1d30146104eb57600080fd5b80631fbe1979116102505780631fbe19791461037757806323b872dd146103af57806327563c8c146103cf5780632d838119146103ef578063313ce5671461040f5780633685d4191461042b57600080fd5b806306fdde0314610298578063095ea7b3146102e657806318160ddd146103165780631816467f14610335578063188b1bf11461035757600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b506040805180820190915260138152722a343932b296b432b0b232b210223930b3b7b760691b60208201525b6040516102dd919061279b565b60405180910390f35b3480156102f257600080fd5b50610306610301366004612805565b610929565b60405190151581526020016102dd565b34801561032257600080fd5b506009545b6040519081526020016102dd565b34801561034157600080fd5b50610355610350366004612831565b610940565b005b34801561036357600080fd5b5061035561037236600461284e565b610995565b34801561038357600080fd5b50601154610397906001600160a01b031681565b6040516001600160a01b0390911681526020016102dd565b3480156103bb57600080fd5b506103066103ca366004612867565b6109db565b3480156103db57600080fd5b506103556103ea36600461284e565b610a8e565b3480156103fb57600080fd5b5061032761040a36600461284e565b610ad4565b34801561041b57600080fd5b50604051600981526020016102dd565b34801561043757600080fd5b50610355610446366004612831565b610b51565b34801561045757600080fd5b50610306610466366004612805565b610d08565b34801561047757600080fd5b50601054610397906001600160a01b031681565b34801561049757600080fd5b506103276104a63660046128b6565b610d3f565b3480156104b757600080fd5b506103556104c63660046128f8565b610dcb565b3480156104d757600080fd5b506103556104e6366004612831565b610e2f565b3480156104f757600080fd5b5061035561050636600461284e565b610e7d565b34801561051757600080fd5b50610355610526366004612867565b610f6e565b34801561053757600080fd5b50610355610546366004612831565b61108a565b34801561055757600080fd5b50610306610566366004612831565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561059057600080fd5b50610327600c5481565b3480156105a657600080fd5b506007546103069060ff1681565b3480156105c057600080fd5b506103276105cf366004612831565b6111dd565b3480156105e057600080fd5b5061035561123c565b3480156105f557600080fd5b5060125460135460145460155461060c9392919084565b6040805194855260208501939093529183015260608201526080016102dd565b34801561063857600080fd5b50610327600d5481565b34801561064e57600080fd5b5061030661065d366004612831565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561068757600080fd5b506000546001600160a01b0316610397565b3480156106a557600080fd5b506103556106b4366004612931565b611272565b3480156106c557600080fd5b506040805180820190915260098152680488e9092889ea482960bb1b60208201526102d0565b3480156106f757600080fd5b50601a54601b54601c54601d5461060c9392919084565b34801561071a57600080fd5b5061035561072936600461294e565b6112af565b34801561073a57600080fd5b50610306610749366004612805565b61131c565b34801561075a57600080fd5b50600f54610397906001600160a01b031681565b34801561077a57600080fd5b50600854610397906001600160a01b031681565b34801561079a57600080fd5b506103066107a9366004612805565b6113b7565b3480156107ba57600080fd5b506103556107c9366004612831565b6113c4565b3480156107da57600080fd5b50610327600e5481565b3480156107f057600080fd5b506103556107ff36600461284e565b611410565b34801561081057600080fd5b5061035561081f36600461284e565b611456565b34801561083057600080fd5b5061032761083f3660046128f8565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561087657600080fd5b50610327600b5481565b34801561088c57600080fd5b5061035561089b366004612831565b61149c565b3480156108ac57600080fd5b506103556108bb366004612831565b6114e7565b3480156108cc57600080fd5b506103556108db36600461294e565b611582565b3480156108ec57600080fd5b5060165460175460185460195461060c9392919084565b34801561090f57600080fd5b50600754610397906201000090046001600160a01b031681565b60006109363384846115ef565b5060015b92915050565b6000546001600160a01b031633146109735760405162461bcd60e51b815260040161096a90612980565b60405180910390fd5b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146109bf5760405162461bcd60e51b815260040161096a90612980565b6109cb6009600a612aaf565b6109d59082612abe565b600e5550565b60006109e8848484611713565b6001600160a01b038416600090815260036020908152604080832033845290915290205482811015610a6d5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161096a565b610a818533610a7c8685612add565b6115ef565b60019150505b9392505050565b6000546001600160a01b03163314610ab85760405162461bcd60e51b815260040161096a90612980565b610ac46009600a612aaf565b610ace9082612abe565b600d5550565b6000600a54821115610b3b5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161096a565b6000610b45611b69565b9050610a878184612af4565b6000546001600160a01b03163314610b7b5760405162461bcd60e51b815260040161096a90612980565b6001600160a01b03811660009081526005602052604090205460ff16610be35760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c75646564000000000000000000604482015260640161096a565b60005b600654811015610d0457816001600160a01b031660068281548110610c0d57610c0d612b16565b6000918252602090912001546001600160a01b03161415610cf25760068054610c3890600190612add565b81548110610c4857610c48612b16565b600091825260209091200154600680546001600160a01b039092169183908110610c7457610c74612b16565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556006805480610ccc57610ccc612b2c565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610cfc81612b42565b915050610be6565b5050565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610936918590610a7c908690612b5d565b6000600954841115610d935760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015260640161096a565b82610db0576000610da685600085611b8c565b519150610a879050565b6000610dbe85600185611b8c565b602001519150610a879050565b6000546001600160a01b03163314610df55760405162461bcd60e51b815260040161096a90612980565b6007805462010000600160b01b031916620100006001600160a01b0394851602179055600880546001600160a01b03191691909216179055565b6000546001600160a01b03163314610e595760405162461bcd60e51b815260040161096a90612980565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b03163314610ea75760405162461bcd60e51b815260040161096a90612980565b6011546001600160a01b03163314610ef15760405162461bcd60e51b815260206004820152600d60248201526c0dcdee840488e9092889ea4829609b1b604482015260640161096a565b80471015610f415760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e63650000000000000000604482015260640161096a565b604051339082156108fc029083906000818181858888f19350505050158015610d04573d6000803e3d6000fd5b6011546001600160a01b03163314610fb85760405162461bcd60e51b815260206004820152600d60248201526c0dcdee840488e9092889ea4829609b1b604482015260640161096a565b6001600160a01b0383163014156110115760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74207472616e73666572206f75742024474849444f524148210000604482015260640161096a565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015611060573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110849190612b75565b50505050565b6000546001600160a01b031633146110b45760405162461bcd60e51b815260040161096a90612980565b6001600160a01b03811660009081526005602052604090205460ff161561111d5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640161096a565b6001600160a01b03811660009081526001602052604090205415611177576001600160a01b03811660009081526001602052604090205461115d90610ad4565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319169091179055565b6001600160a01b03811660009081526005602052604081205460ff161561121a57506001600160a01b031660009081526002602052604090205490565b6001600160a01b03821660009081526001602052604090205461093a90610ad4565b6000546001600160a01b031633146112665760405162461bcd60e51b815260040161096a90612980565b6112706000611bd6565b565b6000546001600160a01b0316331461129c5760405162461bcd60e51b815260040161096a90612980565b6007805460ff1916911515919091179055565b6000546001600160a01b031633146112d95760405162461bcd60e51b815260040161096a90612980565b60128490556014839055601382905560158190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a150505050565b3360009081526003602090815260408083206001600160a01b03861684529091528120548281101561139e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161096a565b6113ad3385610a7c8685612add565b5060019392505050565b6000610936338484611713565b6000546001600160a01b031633146113ee5760405162461bcd60e51b815260040161096a90612980565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461143a5760405162461bcd60e51b815260040161096a90612980565b6114466009600a612aaf565b6114509082612abe565b600c5550565b6000546001600160a01b031633146114805760405162461bcd60e51b815260040161096a90612980565b61148c6009600a612aaf565b6114969082612abe565b600b5550565b6000546001600160a01b031633146114c65760405162461bcd60e51b815260040161096a90612980565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b031633146115115760405162461bcd60e51b815260040161096a90612980565b6001600160a01b0381166115765760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161096a565b61157f81611bd6565b50565b6000546001600160a01b031633146115ac5760405162461bcd60e51b815260040161096a90612980565b60168490556018839055601782905560198190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a150505050565b6001600160a01b0383166116515760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161096a565b6001600160a01b0382166116b25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161096a565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166117775760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161096a565b6001600160a01b0382166117d95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161096a565b6000811161183b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161096a565b611844836111dd565b8111156118ad5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161096a565b6001600160a01b03831660009081526004602052604090205460ff161580156118ef57506001600160a01b03821660009081526004602052604090205460ff16155b80156119035750600754610100900460ff16155b15611a5d576008546001600160a01b038481169116141561197057600d548111156119705760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d6178427579416d6f756e740000604482015260640161096a565b6008546001600160a01b03838116911614156119d857600c548111156119d85760405162461bcd60e51b815260206004820152601f60248201527f596f752061726520657863656564696e67206d617853656c6c416d6f756e7400604482015260640161096a565b6008546001600160a01b03838116911614611a5d57600e54816119fa846111dd565b611a049190612b5d565b1115611a5d5760405162461bcd60e51b815260206004820152602260248201527f596f752061726520657863656564696e67206d617857616c6c657442616c616e604482015261636560f01b606482015260840161096a565b6000600b54611a6b306111dd565b6007549111159150610100900460ff16158015611a8a575060075460ff165b8015611a935750805b8015611aad57506008546001600160a01b03858116911614155b8015611ad257506001600160a01b03841660009081526004602052604090205460ff16155b8015611af757506001600160a01b03831660009081526004602052604090205460ff16155b15611b0757611b07600b54611c26565b6001600160a01b0384166000908152600460205260409020546110849085908590859060ff1680611b5057506001600160a01b03871660009081526004602052604090205460ff165b6008549015906001600160a01b03898116911614611dbd565b6000806000611b76612089565b9092509050611b858183612af4565b9250505090565b611b94612741565b611b9f84848461220c565b9050611bb4818585611baf611b69565b61237f565b60a0870152608086015260608501526040840152602083015281529392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6007805461ff00191661010017905560175460185460195460009291611c4b91612b5d565b611c559190612b5d565b611c60906002612abe565b905060008160166003015484611c769190612abe565b611c809190612af4565b90506000611c8e8285612add565b905047611c9a82612431565b6000611ca68247612add565b601954909150600090611cb99087612add565b611cc39083612af4565b601954909150600090611cd69083612abe565b90508015611ce857611ce886826125b0565b601854600090611cf9846002612abe565b611d039190612abe565b90508015611d4757600f546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611d45573d6000803e3d6000fd5b505b601754600090611d58856002612abe565b611d629190612abe565b90508015611da6576010546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611da4573d6000803e3d6000fd5b505b50506007805461ff00191690555050505050505050565b6000611dca848484611b8c565b6001600160a01b03871660009081526005602052604090205490915060ff1615611e2c576001600160a01b038616600090815260026020526040902054611e12908590612add565b6001600160a01b0387166000908152600260205260409020555b6001600160a01b03851660009081526005602052604090205460ff1615611e8f5760c08101516001600160a01b038616600090815260026020526040902054611e759190612b5d565b6001600160a01b0386166000908152600260205260409020555b80516001600160a01b038716600090815260016020526040902054611eb49190612add565b6001600160a01b0380881660009081526001602090815260408083209490945584015191881681529190912054611eeb9190612b5d565b6001600160a01b0386166000908152600160205260409081902091909155810151151580611f1d575060008160e00151115b15611f3457611f3481604001518260e0015161266c565b60008160a001511180611f4c57506000816101400151115b15611f6457611f648160a001518261014001516126a1565b600081606001511180611f7c57506000816101000151115b15611f9457611f948160600151826101000151612717565b600081608001511180611fac57506000816101200151115b15611fc457611fc4816080015182610120015161272c565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c0015160405161200d91815260200190565b60405180910390a3306001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8361010001518461012001518561014001516120669190612b5d565b6120709190612b5d565b60405190815260200160405180910390a3505050505050565b600a546009546000918291825b6006548110156121db578260016000600684815481106120b8576120b8612b16565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061212357508160026000600684815481106120fc576120fc612b16565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561213957600a54600954945094505050509091565b600160006006838154811061215057612150612b16565b60009182526020808320909101546001600160a01b0316835282019290925260400190205461217f9084612add565b9250600260006006838154811061219857612198612b16565b60009182526020808320909101546001600160a01b031683528201929092526040019020546121c79083612add565b9150806121d381612b42565b915050612096565b50600954600a546121ec9190612af4565b82101561220357600a546009549350935050509091565b90939092509050565b612214612741565b826122255760c08101849052610a87565b6122506040518060800160405280600081526020016000815260200160008152602001600081525090565b8215612285575060408051608081018252601654815260175460208201526018549181019190915260195460608201526122b0565b5060408051608081018252601254815260135460208201526014549181019190915260155460608201525b80516064906122bf9087612abe565b6122c99190612af4565b60e083015260408101516064906122e09087612abe565b6122ea9190612af4565b61010083015260608101516064906123029087612abe565b61230c9190612af4565b61014083015260208101516064906123249087612abe565b61232e9190612af4565b610120830181905261014083015161010084015160e08501519192916123549089612add565b61235e9190612add565b6123689190612add565b6123729190612add565b60c0830152509392505050565b60008080808080612390878a612abe565b9550876123ab57508493506000925082915081905080612424565b868a60e001516123bb9190612abe565b9350868a61010001516123ce9190612abe565b9250868a61012001516123e19190612abe565b9150868a61014001516123f49190612abe565b9050808284612403878a612add565b61240d9190612add565b6124179190612add565b6124219190612add565b94505b9499939850945094509450565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061246657612466612b16565b60200260200101906001600160a01b031690816001600160a01b031681525050600760029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124fd9190612b92565b8160018151811061251057612510612b16565b6001600160a01b03928316602091820292909201015260075461253c91309162010000900416846115ef565b60075460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac9479061257a908590600090869030904290600401612baf565b600060405180830381600087803b15801561259457600080fd5b505af11580156125a8573d6000803e3d6000fd5b505050505050565b6007546125ce9030906201000090046001600160a01b0316846115ef565b60075460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a4820152620100009091046001600160a01b03169063f305d71990839060c40160606040518083038185885af1158015612640573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906126659190612c20565b5050505050565b81600a600082825461267e9190612add565b9091555050601a8054829190600090612698908490612b5d565b90915550505050565b80601a60030160008282546126b69190612b5d565b90915550503060009081526005602052604090205460ff16156126f85730600090815260026020526040812080548392906126f2908490612b5d565b90915550505b3060009081526001602052604081208054849290612698908490612b5d565b80601a60010160008282546126b69190612b5d565b80601a60020160008282546126b69190612b5d565b60405180610160016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208083528351808285015260005b818110156127c8578581018301518582016040015282016127ac565b818111156127da576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461157f57600080fd5b6000806040838503121561281857600080fd5b8235612823816127f0565b946020939093013593505050565b60006020828403121561284357600080fd5b8135610a87816127f0565b60006020828403121561286057600080fd5b5035919050565b60008060006060848603121561287c57600080fd5b8335612887816127f0565b92506020840135612897816127f0565b929592945050506040919091013590565b801515811461157f57600080fd5b6000806000606084860312156128cb57600080fd5b8335925060208401356128dd816128a8565b915060408401356128ed816128a8565b809150509250925092565b6000806040838503121561290b57600080fd5b8235612916816127f0565b91506020830135612926816127f0565b809150509250929050565b60006020828403121561294357600080fd5b8135610a87816128a8565b6000806000806080858703121561296457600080fd5b5050823594602084013594506040840135936060013592509050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115612a065781600019048211156129ec576129ec6129b5565b808516156129f957918102915b93841c93908002906129d0565b509250929050565b600082612a1d5750600161093a565b81612a2a5750600061093a565b8160018114612a405760028114612a4a57612a66565b600191505061093a565b60ff841115612a5b57612a5b6129b5565b50506001821b61093a565b5060208310610133831016604e8410600b8410161715612a89575081810a61093a565b612a9383836129cb565b8060001904821115612aa757612aa76129b5565b029392505050565b6000610a8760ff841683612a0e565b6000816000190483118215151615612ad857612ad86129b5565b500290565b600082821015612aef57612aef6129b5565b500390565b600082612b1157634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6000600019821415612b5657612b566129b5565b5060010190565b60008219821115612b7057612b706129b5565b500190565b600060208284031215612b8757600080fd5b8151610a87816128a8565b600060208284031215612ba457600080fd5b8151610a87816127f0565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612bff5784516001600160a01b031683529383019391830191600101612bda565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612c3557600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212209c9d24cbb77755fbf6e77e6db6bb64aac39bb2a8ff7a359fbc066c97640d6b0364736f6c634300080a0033

Deployed Bytecode

0x60806040526004361061028c5760003560e01c8063715018a61161015a578063a9059cbb116100c1578063e2f456051161007a578063e2f456051461086a578063ea2f0b3714610880578063f2fde38b146108a0578063f480fec2146108c0578063f66895a3146108e0578063f887ea401461090357600080fd5b8063a9059cbb1461078e578063aacebbe3146107ae578063bbde77c1146107ce578063c4fd856b146107e4578063d257b34f14610804578063dd62ed3e1461082457600080fd5b806395d89b411161011357806395d89b41146106b95780639ba5e4d5146106eb578063a12a7d611461070e578063a457c2d71461072e578063a5ece9411461074e578063a8aa1b311461076e57600080fd5b8063715018a6146105d4578063728f8eea146105e957806388e765ff1461062c57806388f82020146106425780638da5cb5b1461067b578063924de9b71461069957600080fd5b806339509351116101fe57806347c23092116101b757806347c230921461050b57806352390c021461052b5780635342acb41461054b57806366d602ae146105845780636ddd17131461059a57806370a08231146105b457600080fd5b8063395093511461044b5780633ad10ef61461046b5780633f63d40f1461048b57806340b28c2f146104ab578063437823ec146104cb578063441b1d30146104eb57600080fd5b80631fbe1979116102505780631fbe19791461037757806323b872dd146103af57806327563c8c146103cf5780632d838119146103ef578063313ce5671461040f5780633685d4191461042b57600080fd5b806306fdde0314610298578063095ea7b3146102e657806318160ddd146103165780631816467f14610335578063188b1bf11461035757600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b506040805180820190915260138152722a343932b296b432b0b232b210223930b3b7b760691b60208201525b6040516102dd919061279b565b60405180910390f35b3480156102f257600080fd5b50610306610301366004612805565b610929565b60405190151581526020016102dd565b34801561032257600080fd5b506009545b6040519081526020016102dd565b34801561034157600080fd5b50610355610350366004612831565b610940565b005b34801561036357600080fd5b5061035561037236600461284e565b610995565b34801561038357600080fd5b50601154610397906001600160a01b031681565b6040516001600160a01b0390911681526020016102dd565b3480156103bb57600080fd5b506103066103ca366004612867565b6109db565b3480156103db57600080fd5b506103556103ea36600461284e565b610a8e565b3480156103fb57600080fd5b5061032761040a36600461284e565b610ad4565b34801561041b57600080fd5b50604051600981526020016102dd565b34801561043757600080fd5b50610355610446366004612831565b610b51565b34801561045757600080fd5b50610306610466366004612805565b610d08565b34801561047757600080fd5b50601054610397906001600160a01b031681565b34801561049757600080fd5b506103276104a63660046128b6565b610d3f565b3480156104b757600080fd5b506103556104c63660046128f8565b610dcb565b3480156104d757600080fd5b506103556104e6366004612831565b610e2f565b3480156104f757600080fd5b5061035561050636600461284e565b610e7d565b34801561051757600080fd5b50610355610526366004612867565b610f6e565b34801561053757600080fd5b50610355610546366004612831565b61108a565b34801561055757600080fd5b50610306610566366004612831565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561059057600080fd5b50610327600c5481565b3480156105a657600080fd5b506007546103069060ff1681565b3480156105c057600080fd5b506103276105cf366004612831565b6111dd565b3480156105e057600080fd5b5061035561123c565b3480156105f557600080fd5b5060125460135460145460155461060c9392919084565b6040805194855260208501939093529183015260608201526080016102dd565b34801561063857600080fd5b50610327600d5481565b34801561064e57600080fd5b5061030661065d366004612831565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561068757600080fd5b506000546001600160a01b0316610397565b3480156106a557600080fd5b506103556106b4366004612931565b611272565b3480156106c557600080fd5b506040805180820190915260098152680488e9092889ea482960bb1b60208201526102d0565b3480156106f757600080fd5b50601a54601b54601c54601d5461060c9392919084565b34801561071a57600080fd5b5061035561072936600461294e565b6112af565b34801561073a57600080fd5b50610306610749366004612805565b61131c565b34801561075a57600080fd5b50600f54610397906001600160a01b031681565b34801561077a57600080fd5b50600854610397906001600160a01b031681565b34801561079a57600080fd5b506103066107a9366004612805565b6113b7565b3480156107ba57600080fd5b506103556107c9366004612831565b6113c4565b3480156107da57600080fd5b50610327600e5481565b3480156107f057600080fd5b506103556107ff36600461284e565b611410565b34801561081057600080fd5b5061035561081f36600461284e565b611456565b34801561083057600080fd5b5061032761083f3660046128f8565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561087657600080fd5b50610327600b5481565b34801561088c57600080fd5b5061035561089b366004612831565b61149c565b3480156108ac57600080fd5b506103556108bb366004612831565b6114e7565b3480156108cc57600080fd5b506103556108db36600461294e565b611582565b3480156108ec57600080fd5b5060165460175460185460195461060c9392919084565b34801561090f57600080fd5b50600754610397906201000090046001600160a01b031681565b60006109363384846115ef565b5060015b92915050565b6000546001600160a01b031633146109735760405162461bcd60e51b815260040161096a90612980565b60405180910390fd5b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146109bf5760405162461bcd60e51b815260040161096a90612980565b6109cb6009600a612aaf565b6109d59082612abe565b600e5550565b60006109e8848484611713565b6001600160a01b038416600090815260036020908152604080832033845290915290205482811015610a6d5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161096a565b610a818533610a7c8685612add565b6115ef565b60019150505b9392505050565b6000546001600160a01b03163314610ab85760405162461bcd60e51b815260040161096a90612980565b610ac46009600a612aaf565b610ace9082612abe565b600d5550565b6000600a54821115610b3b5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161096a565b6000610b45611b69565b9050610a878184612af4565b6000546001600160a01b03163314610b7b5760405162461bcd60e51b815260040161096a90612980565b6001600160a01b03811660009081526005602052604090205460ff16610be35760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c75646564000000000000000000604482015260640161096a565b60005b600654811015610d0457816001600160a01b031660068281548110610c0d57610c0d612b16565b6000918252602090912001546001600160a01b03161415610cf25760068054610c3890600190612add565b81548110610c4857610c48612b16565b600091825260209091200154600680546001600160a01b039092169183908110610c7457610c74612b16565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556006805480610ccc57610ccc612b2c565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610cfc81612b42565b915050610be6565b5050565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610936918590610a7c908690612b5d565b6000600954841115610d935760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015260640161096a565b82610db0576000610da685600085611b8c565b519150610a879050565b6000610dbe85600185611b8c565b602001519150610a879050565b6000546001600160a01b03163314610df55760405162461bcd60e51b815260040161096a90612980565b6007805462010000600160b01b031916620100006001600160a01b0394851602179055600880546001600160a01b03191691909216179055565b6000546001600160a01b03163314610e595760405162461bcd60e51b815260040161096a90612980565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b03163314610ea75760405162461bcd60e51b815260040161096a90612980565b6011546001600160a01b03163314610ef15760405162461bcd60e51b815260206004820152600d60248201526c0dcdee840488e9092889ea4829609b1b604482015260640161096a565b80471015610f415760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e63650000000000000000604482015260640161096a565b604051339082156108fc029083906000818181858888f19350505050158015610d04573d6000803e3d6000fd5b6011546001600160a01b03163314610fb85760405162461bcd60e51b815260206004820152600d60248201526c0dcdee840488e9092889ea4829609b1b604482015260640161096a565b6001600160a01b0383163014156110115760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74207472616e73666572206f75742024474849444f524148210000604482015260640161096a565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015611060573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110849190612b75565b50505050565b6000546001600160a01b031633146110b45760405162461bcd60e51b815260040161096a90612980565b6001600160a01b03811660009081526005602052604090205460ff161561111d5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640161096a565b6001600160a01b03811660009081526001602052604090205415611177576001600160a01b03811660009081526001602052604090205461115d90610ad4565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319169091179055565b6001600160a01b03811660009081526005602052604081205460ff161561121a57506001600160a01b031660009081526002602052604090205490565b6001600160a01b03821660009081526001602052604090205461093a90610ad4565b6000546001600160a01b031633146112665760405162461bcd60e51b815260040161096a90612980565b6112706000611bd6565b565b6000546001600160a01b0316331461129c5760405162461bcd60e51b815260040161096a90612980565b6007805460ff1916911515919091179055565b6000546001600160a01b031633146112d95760405162461bcd60e51b815260040161096a90612980565b60128490556014839055601382905560158190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a150505050565b3360009081526003602090815260408083206001600160a01b03861684529091528120548281101561139e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161096a565b6113ad3385610a7c8685612add565b5060019392505050565b6000610936338484611713565b6000546001600160a01b031633146113ee5760405162461bcd60e51b815260040161096a90612980565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461143a5760405162461bcd60e51b815260040161096a90612980565b6114466009600a612aaf565b6114509082612abe565b600c5550565b6000546001600160a01b031633146114805760405162461bcd60e51b815260040161096a90612980565b61148c6009600a612aaf565b6114969082612abe565b600b5550565b6000546001600160a01b031633146114c65760405162461bcd60e51b815260040161096a90612980565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b031633146115115760405162461bcd60e51b815260040161096a90612980565b6001600160a01b0381166115765760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161096a565b61157f81611bd6565b50565b6000546001600160a01b031633146115ac5760405162461bcd60e51b815260040161096a90612980565b60168490556018839055601782905560198190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a150505050565b6001600160a01b0383166116515760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161096a565b6001600160a01b0382166116b25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161096a565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166117775760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161096a565b6001600160a01b0382166117d95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161096a565b6000811161183b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161096a565b611844836111dd565b8111156118ad5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161096a565b6001600160a01b03831660009081526004602052604090205460ff161580156118ef57506001600160a01b03821660009081526004602052604090205460ff16155b80156119035750600754610100900460ff16155b15611a5d576008546001600160a01b038481169116141561197057600d548111156119705760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d6178427579416d6f756e740000604482015260640161096a565b6008546001600160a01b03838116911614156119d857600c548111156119d85760405162461bcd60e51b815260206004820152601f60248201527f596f752061726520657863656564696e67206d617853656c6c416d6f756e7400604482015260640161096a565b6008546001600160a01b03838116911614611a5d57600e54816119fa846111dd565b611a049190612b5d565b1115611a5d5760405162461bcd60e51b815260206004820152602260248201527f596f752061726520657863656564696e67206d617857616c6c657442616c616e604482015261636560f01b606482015260840161096a565b6000600b54611a6b306111dd565b6007549111159150610100900460ff16158015611a8a575060075460ff165b8015611a935750805b8015611aad57506008546001600160a01b03858116911614155b8015611ad257506001600160a01b03841660009081526004602052604090205460ff16155b8015611af757506001600160a01b03831660009081526004602052604090205460ff16155b15611b0757611b07600b54611c26565b6001600160a01b0384166000908152600460205260409020546110849085908590859060ff1680611b5057506001600160a01b03871660009081526004602052604090205460ff165b6008549015906001600160a01b03898116911614611dbd565b6000806000611b76612089565b9092509050611b858183612af4565b9250505090565b611b94612741565b611b9f84848461220c565b9050611bb4818585611baf611b69565b61237f565b60a0870152608086015260608501526040840152602083015281529392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6007805461ff00191661010017905560175460185460195460009291611c4b91612b5d565b611c559190612b5d565b611c60906002612abe565b905060008160166003015484611c769190612abe565b611c809190612af4565b90506000611c8e8285612add565b905047611c9a82612431565b6000611ca68247612add565b601954909150600090611cb99087612add565b611cc39083612af4565b601954909150600090611cd69083612abe565b90508015611ce857611ce886826125b0565b601854600090611cf9846002612abe565b611d039190612abe565b90508015611d4757600f546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611d45573d6000803e3d6000fd5b505b601754600090611d58856002612abe565b611d629190612abe565b90508015611da6576010546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611da4573d6000803e3d6000fd5b505b50506007805461ff00191690555050505050505050565b6000611dca848484611b8c565b6001600160a01b03871660009081526005602052604090205490915060ff1615611e2c576001600160a01b038616600090815260026020526040902054611e12908590612add565b6001600160a01b0387166000908152600260205260409020555b6001600160a01b03851660009081526005602052604090205460ff1615611e8f5760c08101516001600160a01b038616600090815260026020526040902054611e759190612b5d565b6001600160a01b0386166000908152600260205260409020555b80516001600160a01b038716600090815260016020526040902054611eb49190612add565b6001600160a01b0380881660009081526001602090815260408083209490945584015191881681529190912054611eeb9190612b5d565b6001600160a01b0386166000908152600160205260409081902091909155810151151580611f1d575060008160e00151115b15611f3457611f3481604001518260e0015161266c565b60008160a001511180611f4c57506000816101400151115b15611f6457611f648160a001518261014001516126a1565b600081606001511180611f7c57506000816101000151115b15611f9457611f948160600151826101000151612717565b600081608001511180611fac57506000816101200151115b15611fc457611fc4816080015182610120015161272c565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c0015160405161200d91815260200190565b60405180910390a3306001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8361010001518461012001518561014001516120669190612b5d565b6120709190612b5d565b60405190815260200160405180910390a3505050505050565b600a546009546000918291825b6006548110156121db578260016000600684815481106120b8576120b8612b16565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061212357508160026000600684815481106120fc576120fc612b16565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561213957600a54600954945094505050509091565b600160006006838154811061215057612150612b16565b60009182526020808320909101546001600160a01b0316835282019290925260400190205461217f9084612add565b9250600260006006838154811061219857612198612b16565b60009182526020808320909101546001600160a01b031683528201929092526040019020546121c79083612add565b9150806121d381612b42565b915050612096565b50600954600a546121ec9190612af4565b82101561220357600a546009549350935050509091565b90939092509050565b612214612741565b826122255760c08101849052610a87565b6122506040518060800160405280600081526020016000815260200160008152602001600081525090565b8215612285575060408051608081018252601654815260175460208201526018549181019190915260195460608201526122b0565b5060408051608081018252601254815260135460208201526014549181019190915260155460608201525b80516064906122bf9087612abe565b6122c99190612af4565b60e083015260408101516064906122e09087612abe565b6122ea9190612af4565b61010083015260608101516064906123029087612abe565b61230c9190612af4565b61014083015260208101516064906123249087612abe565b61232e9190612af4565b610120830181905261014083015161010084015160e08501519192916123549089612add565b61235e9190612add565b6123689190612add565b6123729190612add565b60c0830152509392505050565b60008080808080612390878a612abe565b9550876123ab57508493506000925082915081905080612424565b868a60e001516123bb9190612abe565b9350868a61010001516123ce9190612abe565b9250868a61012001516123e19190612abe565b9150868a61014001516123f49190612abe565b9050808284612403878a612add565b61240d9190612add565b6124179190612add565b6124219190612add565b94505b9499939850945094509450565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061246657612466612b16565b60200260200101906001600160a01b031690816001600160a01b031681525050600760029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124fd9190612b92565b8160018151811061251057612510612b16565b6001600160a01b03928316602091820292909201015260075461253c91309162010000900416846115ef565b60075460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac9479061257a908590600090869030904290600401612baf565b600060405180830381600087803b15801561259457600080fd5b505af11580156125a8573d6000803e3d6000fd5b505050505050565b6007546125ce9030906201000090046001600160a01b0316846115ef565b60075460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a4820152620100009091046001600160a01b03169063f305d71990839060c40160606040518083038185885af1158015612640573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906126659190612c20565b5050505050565b81600a600082825461267e9190612add565b9091555050601a8054829190600090612698908490612b5d565b90915550505050565b80601a60030160008282546126b69190612b5d565b90915550503060009081526005602052604090205460ff16156126f85730600090815260026020526040812080548392906126f2908490612b5d565b90915550505b3060009081526001602052604081208054849290612698908490612b5d565b80601a60010160008282546126b69190612b5d565b80601a60020160008282546126b69190612b5d565b60405180610160016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208083528351808285015260005b818110156127c8578581018301518582016040015282016127ac565b818111156127da576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461157f57600080fd5b6000806040838503121561281857600080fd5b8235612823816127f0565b946020939093013593505050565b60006020828403121561284357600080fd5b8135610a87816127f0565b60006020828403121561286057600080fd5b5035919050565b60008060006060848603121561287c57600080fd5b8335612887816127f0565b92506020840135612897816127f0565b929592945050506040919091013590565b801515811461157f57600080fd5b6000806000606084860312156128cb57600080fd5b8335925060208401356128dd816128a8565b915060408401356128ed816128a8565b809150509250925092565b6000806040838503121561290b57600080fd5b8235612916816127f0565b91506020830135612926816127f0565b809150509250929050565b60006020828403121561294357600080fd5b8135610a87816128a8565b6000806000806080858703121561296457600080fd5b5050823594602084013594506040840135936060013592509050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115612a065781600019048211156129ec576129ec6129b5565b808516156129f957918102915b93841c93908002906129d0565b509250929050565b600082612a1d5750600161093a565b81612a2a5750600061093a565b8160018114612a405760028114612a4a57612a66565b600191505061093a565b60ff841115612a5b57612a5b6129b5565b50506001821b61093a565b5060208310610133831016604e8410600b8410161715612a89575081810a61093a565b612a9383836129cb565b8060001904821115612aa757612aa76129b5565b029392505050565b6000610a8760ff841683612a0e565b6000816000190483118215151615612ad857612ad86129b5565b500290565b600082821015612aef57612aef6129b5565b500390565b600082612b1157634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6000600019821415612b5657612b566129b5565b5060010190565b60008219821115612b7057612b706129b5565b500190565b600060208284031215612b8757600080fd5b8151610a87816128a8565b600060208284031215612ba457600080fd5b8151610a87816127f0565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612bff5784516001600160a01b031683529383019391830191600101612bda565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612c3557600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212209c9d24cbb77755fbf6e77e6db6bb64aac39bb2a8ff7a359fbc066c97640d6b0364736f6c634300080a0033

Deployed Bytecode Sourcemap

2980:18070:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5777:83;;;;;;;;;;-1:-1:-1;5847:5:0;;;;;;;;;;;;-1:-1:-1;;;5847:5:0;;;;5777:83;;;;;;;:::i;:::-;;;;;;;;6685:161;;;;;;;;;;-1:-1:-1;6685:161:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;6685:161:0;1072:187:1;6050:95:0;;;;;;;;;;-1:-1:-1;6130:7:0;;6050:95;;;1410:25:1;;;1398:2;1383:18;6050:95:0;1264:177:1;19264:109:0;;;;;;;;;;-1:-1:-1;19264:109:0;;;;;:::i;:::-;;:::i;:::-;;19385:126;;;;;;;;;;-1:-1:-1;19385:126:0;;;;;:::i;:::-;;:::i;4135:21::-;;;;;;;;;;-1:-1:-1;4135:21:0;;;;-1:-1:-1;;;;;4135:21:0;;;;;;-1:-1:-1;;;;;2047:32:1;;;2029:51;;2017:2;2002:18;4135:21:0;1883:203:1;6854:422:0;;;;;;;;;;-1:-1:-1;6854:422:0;;;;;:::i;:::-;;:::i;19519:114::-;;;;;;;;;;-1:-1:-1;19519:114:0;;;;;:::i;:::-;;:::i;8514:248::-;;;;;;;;;;-1:-1:-1;8514:248:0;;;;;:::i;:::-;;:::i;5959:83::-;;;;;;;;;;-1:-1:-1;5959:83:0;;3527:1;2694:36:1;;2682:2;2667:18;5959:83:0;2552:184:1;9111:475:0;;;;;;;;;;-1:-1:-1;9111:475:0;;;;;:::i;:::-;;:::i;7284:215::-;;;;;;;;;;-1:-1:-1;7284:215:0;;;;;:::i;:::-;;:::i;4056:70::-;;;;;;;;;;-1:-1:-1;4056:70:0;;;;-1:-1:-1;;;;;4056:70:0;;;8020:486;;;;;;;;;;-1:-1:-1;8020:486:0;;;;;:::i;:::-;;:::i;20032:154::-;;;;;;;;;;-1:-1:-1;20032:154:0;;;;;:::i;:::-;;:::i;9596:111::-;;;;;;;;;;-1:-1:-1;9596:111:0;;;;;:::i;:::-;;:::i;20280:253::-;;;;;;;;;;-1:-1:-1;20280:253:0;;;;;:::i;:::-;;:::i;20722:283::-;;;;;;;;;;-1:-1:-1;20722:283:0;;;;;:::i;:::-;;:::i;8770:333::-;;;;;;;;;;-1:-1:-1;8770:333:0;;;;;:::i;:::-;;:::i;9835:123::-;;;;;;;;;;-1:-1:-1;9835:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;9923:27:0;9899:4;9923:27;;;:18;:27;;;;;;;;;9835:123;3777:57;;;;;;;;;;;;;;;;3369:30;;;;;;;;;;-1:-1:-1;3369:30:0;;;;;;;;6153:198;;;;;;;;;;-1:-1:-1;6153:198:0;;;;;:::i;:::-;;:::i;1757:94::-;;;;;;;;;;;;;:::i;4402:35::-;;;;;;;;;;-1:-1:-1;4402:35:0;;;;;;;;;;;;;;;;;;;3937:25:1;;;3993:2;3978:18;;3971:34;;;;4021:18;;;4014:34;4079:2;4064:18;;4057:34;3924:3;3909:19;4402:35:0;3706:391:1;3841:56:0;;;;;;;;;;;;;;;;7892:120;;;;;;;;;;-1:-1:-1;7892:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;7984:20:0;7960:4;7984:20;;;:11;:20;;;;;;;;;7892:120;1534:87;;;;;;;;;;-1:-1:-1;1580:7:0;1607:6;-1:-1:-1;;;;;1607:6:0;1534:87;;19911:101;;;;;;;;;;-1:-1:-1;19911:101:0;;;;;:::i;:::-;;:::i;5866:87::-;;;;;;;;;;-1:-1:-1;5938:7:0;;;;;;;;;;;;-1:-1:-1;;;5938:7:0;;;;5866:87;;4630:36;;;;;;;;;;-1:-1:-1;4630:36:0;;;;;;;;;;;;;;;9966:272;;;;;;;;;;-1:-1:-1;9966:272:0;;;;;:::i;:::-;;:::i;7507:377::-;;;;;;;;;;-1:-1:-1;7507:377:0;;;;;:::i;:::-;;:::i;3973:76::-;;;;;;;;;;-1:-1:-1;3973:76:0;;;;-1:-1:-1;;;;;3973:76:0;;;3464:19;;;;;;;;;;-1:-1:-1;3464:19:0;;;;-1:-1:-1;;;;;3464:19:0;;;6359:167;;;;;;;;;;-1:-1:-1;6359:167:0;;;;;:::i;:::-;;:::i;19137:115::-;;;;;;;;;;-1:-1:-1;19137:115:0;;;;;:::i;:::-;;:::i;3904:60::-;;;;;;;;;;;;;;;;19645:116;;;;;;;;;;-1:-1:-1;19645:116:0;;;;;:::i;:::-;;:::i;19773:130::-;;;;;;;;;;-1:-1:-1;19773:130:0;;;;;:::i;:::-;;:::i;6534:143::-;;;;;;;;;;-1:-1:-1;6534:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6642:18:0;;;6615:7;6642:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6534:143;3702:62;;;;;;;;;;;;;;;;9715:110;;;;;;;;;;-1:-1:-1;9715:110:0;;;;;:::i;:::-;;:::i;1859:192::-;;;;;;;;;;-1:-1:-1;1859:192:0;;;;;:::i;:::-;;:::i;10250:292::-;;;;;;;;;;-1:-1:-1;10250:292:0;;;;;:::i;:::-;;:::i;4444:39::-;;;;;;;;;;-1:-1:-1;4444:39:0;;;;;;;;;;;;;;;3436:21;;;;;;;;;;-1:-1:-1;3436:21:0;;;;;;;-1:-1:-1;;;;;3436:21:0;;;6685:161;6760:4;6777:39;1035:10;6800:7;6809:6;6777:8;:39::i;:::-;-1:-1:-1;6834:4:0;6685:161;;;;;:::o;19264:109::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;1035:10;1669:23;1661:68;;;;-1:-1:-1;;;1661:68:0;;;;;;;:::i;:::-;;;;;;;;;19340:10:::1;:25:::0;;-1:-1:-1;;;;;;19340:25:0::1;-1:-1:-1::0;;;;;19340:25:0;;;::::1;::::0;;;::::1;::::0;;19264:109::o;19385:126::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;1035:10;1669:23;1661:68;;;;-1:-1:-1;;;1661:68:0;;;;;;;:::i;:::-;19490:13:::1;3527:1;19490:2;:13;:::i;:::-;19481:22;::::0;:6;:22:::1;:::i;:::-;19462:16;:41:::0;-1:-1:-1;19385:126:0:o;6854:422::-;6960:4;6977:36;6987:6;6995:9;7006:6;6977:9;:36::i;:::-;-1:-1:-1;;;;;7053:19:0;;7026:24;7053:19;;;:11;:19;;;;;;;;1035:10;7053:33;;;;;;;;7105:26;;;;7097:79;;;;-1:-1:-1;;;7097:79:0;;7212:2:1;7097:79:0;;;7194:21:1;7251:2;7231:18;;;7224:30;7290:34;7270:18;;;7263:62;-1:-1:-1;;;7341:18:1;;;7334:38;7389:19;;7097:79:0;7010:404:1;7097:79:0;7187:57;7196:6;1035:10;7218:25;7237:6;7218:16;:25;:::i;:::-;7187:8;:57::i;:::-;7264:4;7257:11;;;6854:422;;;;;;:::o;19519:114::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;1035:10;1669:23;1661:68;;;;-1:-1:-1;;;1661:68:0;;;;;;;:::i;:::-;19612:13:::1;3527:1;19612:2;:13;:::i;:::-;19603:22;::::0;:6;:22:::1;:::i;:::-;19588:12;:37:::0;-1:-1:-1;19519:114:0:o;8514:248::-;8580:7;8619;;8608;:18;;8600:73;;;;-1:-1:-1;;;8600:73:0;;7751:2:1;8600:73:0;;;7733:21:1;7790:2;7770:18;;;7763:30;7829:34;7809:18;;;7802:62;-1:-1:-1;;;7880:18:1;;;7873:40;7930:19;;8600:73:0;7549:406:1;8600:73:0;8684:19;8707:10;:8;:10::i;:::-;8684:33;-1:-1:-1;8735:19:0;8684:33;8735:7;:19;:::i;9111:475::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;1035:10;1669:23;1661:68;;;;-1:-1:-1;;;1661:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9193:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;9185:56;;;::::0;-1:-1:-1;;;9185:56:0;;8384:2:1;9185:56:0::1;::::0;::::1;8366:21:1::0;8423:2;8403:18;;;8396:30;8462:25;8442:18;;;8435:53;8505:18;;9185:56:0::1;8182:347:1::0;9185:56:0::1;9257:9;9252:327;9276:9;:16:::0;9272:20;::::1;9252:327;;;9334:7;-1:-1:-1::0;;;;;9318:23:0::1;:9;9328:1;9318:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;9318:12:0::1;:23;9314:254;;;9377:9;9387:16:::0;;:20:::1;::::0;9406:1:::1;::::0;9387:20:::1;:::i;:::-;9377:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;9362:9:::1;:12:::0;;-1:-1:-1;;;;;9377:31:0;;::::1;::::0;9372:1;;9362:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;9362:46:0::1;-1:-1:-1::0;;;;;9362:46:0;;::::1;;::::0;;9427:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;9466:11:::1;:20:::0;;;;:28;;-1:-1:-1;;9466:28:0::1;::::0;;9513:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;9513:15:0;;;;;-1:-1:-1;;;;;;9513:15:0::1;::::0;;;;;9252:327:::1;9111:475:::0;:::o;9314:254::-:1;9294:3:::0;::::1;::::0;::::1;:::i;:::-;;;;9252:327;;;;9111:475:::0;:::o;7284:215::-;1035:10;7372:4;7421:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7421:34:0;;;;;;;;;;7372:4;;7389:80;;7412:7;;7421:47;;7458:10;;7421:47;:::i;8020:486::-;8123:7;8162;;8151;:18;;8143:62;;;;-1:-1:-1;;;8143:62:0;;9273:2:1;8143:62:0;;;9255:21:1;9312:2;9292:18;;;9285:30;9351:33;9331:18;;;9324:61;9402:18;;8143:62:0;9071:355:1;8143:62:0;8221:17;8216:283;;8255:28;8286:34;8297:7;8306:5;8313:6;8286:10;:34::i;:::-;8342:9;;-1:-1:-1;8335:16:0;;-1:-1:-1;8335:16:0;8216:283;8384:28;8415:33;8426:7;8435:4;8441:6;8415:10;:33::i;:::-;8470:17;;;;-1:-1:-1;8463:24:0;;-1:-1:-1;8463:24:0;20032:154;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;1035:10;1669:23;1661:68;;;;-1:-1:-1;;;1661:68:0;;;;;;;:::i;:::-;20126:6:::1;:27:::0;;-1:-1:-1;;;;;;20126:27:0::1;::::0;-1:-1:-1;;;;;20126:27:0;;::::1;;;::::0;;20164:4:::1;:14:::0;;-1:-1:-1;;;;;;20164:14:0::1;::::0;;;::::1;;::::0;;20032:154::o;9596:111::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;1035:10;1669:23;1661:68;;;;-1:-1:-1;;;1661:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9665:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;9665:34:0::1;9695:4;9665:34;::::0;;9596:111::o;20280:253::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;1035:10;1669:23;1661:68;;;;-1:-1:-1;;;1661:68:0;;;;;;;:::i;:::-;20369:6:::1;::::0;-1:-1:-1;;;;;20369:6:0::1;20355:10;:20;20347:46;;;::::0;-1:-1:-1;;;20347:46:0;;9633:2:1;20347:46:0::1;::::0;::::1;9615:21:1::0;9672:2;9652:18;;;9645:30;-1:-1:-1;;;9691:18:1;;;9684:43;9744:18;;20347:46:0::1;9431:337:1::0;20347:46:0::1;20437:9;20412:21;:34;;20404:71;;;::::0;-1:-1:-1;;;20404:71:0;;9975:2:1;20404:71:0::1;::::0;::::1;9957:21:1::0;10014:2;9994:18;;;9987:30;10053:26;10033:18;;;10026:54;10097:18;;20404:71:0::1;9773:348:1::0;20404:71:0::1;20486:39;::::0;20494:10:::1;::::0;20486:39;::::1;;;::::0;20515:9;;20486:39:::1;::::0;;;20515:9;20494:10;20486:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;20722:283:::0;20840:6;;-1:-1:-1;;;;;20840:6:0;20826:10;:20;20818:46;;;;-1:-1:-1;;;20818:46:0;;9633:2:1;20818:46:0;;;9615:21:1;9672:2;9652:18;;;9645:30;-1:-1:-1;;;9691:18:1;;;9684:43;9744:18;;20818:46:0;9431:337:1;20818:46:0;-1:-1:-1;;;;;20883:27:0;;20905:4;20883:27;;20875:70;;;;-1:-1:-1;;;20875:70:0;;10328:2:1;20875:70:0;;;10310:21:1;10367:2;10347:18;;;10340:30;10406:32;10386:18;;;10379:60;10456:18;;20875:70:0;10126:354:1;20875:70:0;20956:41;;-1:-1:-1;;;20956:41:0;;-1:-1:-1;;;;;10677:32:1;;;20956:41:0;;;10659:51:1;10726:18;;;10719:34;;;20956:27:0;;;;;10632:18:1;;20956:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20722:283;;;:::o;8770:333::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;1035:10;1669:23;1661:68;;;;-1:-1:-1;;;1661:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8853:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;8852:21;8844:61;;;::::0;-1:-1:-1;;;8844:61:0;;11216:2:1;8844:61:0::1;::::0;::::1;11198:21:1::0;11255:2;11235:18;;;11228:30;11294:29;11274:18;;;11267:57;11341:18;;8844:61:0::1;11014:351:1::0;8844:61:0::1;-1:-1:-1::0;;;;;8919:16:0;::::1;8938:1;8919:16:::0;;;:7:::1;:16;::::0;;;;;:20;8916:108:::1;;-1:-1:-1::0;;;;;8995:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;8975:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;8956:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;8916:108:::1;-1:-1:-1::0;;;;;9034:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;9034:27:0::1;9057:4;9034:27:::0;;::::1;::::0;;;9072:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;9072:23:0::1;::::0;;::::1;::::0;;8770:333::o;6153:198::-;-1:-1:-1;;;;;6243:20:0;;6219:7;6243:20;;;:11;:20;;;;;;;;6239:49;;;-1:-1:-1;;;;;;6272:16:0;;;;;:7;:16;;;;;;;6153:198::o;6239:49::-;-1:-1:-1;;;;;6326:16:0;;;;;;:7;:16;;;;;;6306:37;;:19;:37::i;1757:94::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;1035:10;1669:23;1661:68;;;;-1:-1:-1;;;1661:68:0;;;;;;;:::i;:::-;1822:21:::1;1840:1;1822:9;:21::i;:::-;1757:94::o:0;19911:101::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;1035:10;1669:23;1661:68;;;;-1:-1:-1;;;1661:68:0;;;;;;;:::i;:::-;19982:11:::1;:22:::0;;-1:-1:-1;;19982:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19911:101::o;9966:272::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;1035:10;1669:23;1661:68;;;;-1:-1:-1;;;1661:68:0;;;;;;;:::i;:::-;10080:5:::1;:16:::0;;;10107:15;:28;;;10146:9;:16;;;10173:15;:28;;;10217:13:::1;::::0;::::1;::::0;10080:9:::1;::::0;10217:13:::1;9966:272:::0;;;;:::o;7507:377::-;1035:10;7600:4;7644:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7644:34:0;;;;;;;;;;7697:35;;;;7689:85;;;;-1:-1:-1;;;7689:85:0;;11572:2:1;7689:85:0;;;11554:21:1;11611:2;11591:18;;;11584:30;11650:34;11630:18;;;11623:62;-1:-1:-1;;;11701:18:1;;;11694:35;11746:19;;7689:85:0;11370:401:1;7689:85:0;7785:67;1035:10;7808:7;7817:34;7836:15;7817:16;:34;:::i;7785:67::-;-1:-1:-1;7872:4:0;;7507:377;-1:-1:-1;;;7507:377:0:o;6359:167::-;6437:4;6454:42;1035:10;6478:9;6489:6;6454:9;:42::i;19137:115::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;1035:10;1669:23;1661:68;;;;-1:-1:-1;;;1661:68:0;;;;;;;:::i;:::-;19216:16:::1;:28:::0;;-1:-1:-1;;;;;;19216:28:0::1;-1:-1:-1::0;;;;;19216:28:0;;;::::1;::::0;;;::::1;::::0;;19137:115::o;19645:116::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;1035:10;1669:23;1661:68;;;;-1:-1:-1;;;1661:68:0;;;;;;;:::i;:::-;19740:13:::1;3527:1;19740:2;:13;:::i;:::-;19731:22;::::0;:6;:22:::1;:::i;:::-;19715:13;:38:::0;-1:-1:-1;19645:116:0:o;19773:130::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;1035:10;1669:23;1661:68;;;;-1:-1:-1;;;1661:68:0;;;;;;;:::i;:::-;19882:13:::1;3527:1;19882:2;:13;:::i;:::-;19873:22;::::0;:6;:22:::1;:::i;:::-;19852:18;:43:::0;-1:-1:-1;19773:130:0:o;9715:110::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;1035:10;1669:23;1661:68;;;;-1:-1:-1;;;1661:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9782:27:0::1;9812:5;9782:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;9782:35:0::1;::::0;;9715:110::o;1859:192::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;1035:10;1669:23;1661:68;;;;-1:-1:-1;;;1661:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1948:22:0;::::1;1940:73;;;::::0;-1:-1:-1;;;1940:73:0;;11978:2:1;1940:73:0::1;::::0;::::1;11960:21:1::0;12017:2;11997:18;;;11990:30;12056:34;12036:18;;;12029:62;-1:-1:-1;;;12107:18:1;;;12100:36;12153:19;;1940:73:0::1;11776:402:1::0;1940:73:0::1;2024:19;2034:8;2024:9;:19::i;:::-;1859:192:::0;:::o;10250:292::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;1035:10;1669:23;1661:68;;;;-1:-1:-1;;;1661:68:0;;;;;;;:::i;:::-;10368:9:::1;:20:::0;;;10399:19;:32;;;10442:13;:20;;;10473:19;:32;;;10521:13:::1;::::0;::::1;::::0;10368::::1;::::0;10521::::1;10250:292:::0;;;;:::o;13956:335::-;-1:-1:-1;;;;;14049:19:0;;14041:68;;;;-1:-1:-1;;;14041:68:0;;12385:2:1;14041:68:0;;;12367:21:1;12424:2;12404:18;;;12397:30;12463:34;12443:18;;;12436:62;-1:-1:-1;;;12514:18:1;;;12507:34;12558:19;;14041:68:0;12183:400:1;14041:68:0;-1:-1:-1;;;;;14128:21:0;;14120:68;;;;-1:-1:-1;;;14120:68:0;;12790:2:1;14120:68:0;;;12772:21:1;12829:2;12809:18;;;12802:30;12868:34;12848:18;;;12841:62;-1:-1:-1;;;12919:18:1;;;12912:32;12961:19;;14120:68:0;12588:398:1;14120:68:0;-1:-1:-1;;;;;14199:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14251:32;;1410:25:1;;;14251:32:0;;1383:18:1;14251:32:0;;;;;;;13956:335;;;:::o;14299:1310::-;-1:-1:-1;;;;;14387:18:0;;14379:68;;;;-1:-1:-1;;;14379:68:0;;13193:2:1;14379:68:0;;;13175:21:1;13232:2;13212:18;;;13205:30;13271:34;13251:18;;;13244:62;-1:-1:-1;;;13322:18:1;;;13315:35;13367:19;;14379:68:0;12991:401:1;14379:68:0;-1:-1:-1;;;;;14466:16:0;;14458:64;;;;-1:-1:-1;;;14458:64:0;;13599:2:1;14458:64:0;;;13581:21:1;13638:2;13618:18;;;13611:30;13677:34;13657:18;;;13650:62;-1:-1:-1;;;13728:18:1;;;13721:33;13771:19;;14458:64:0;13397:399:1;14458:64:0;14550:1;14541:6;:10;14533:64;;;;-1:-1:-1;;;14533:64:0;;14003:2:1;14533:64:0;;;13985:21:1;14042:2;14022:18;;;14015:30;14081:34;14061:18;;;14054:62;-1:-1:-1;;;14132:18:1;;;14125:39;14181:19;;14533:64:0;13801:405:1;14533:64:0;14626:15;14636:4;14626:9;:15::i;:::-;14616:6;:25;;14608:86;;;;-1:-1:-1;;;14608:86:0;;14413:2:1;14608:86:0;;;14395:21:1;14452:2;14432:18;;;14425:30;14491:34;14471:18;;;14464:62;-1:-1:-1;;;14542:18:1;;;14535:47;14599:19;;14608:86:0;14211:413:1;14608:86:0;-1:-1:-1;;;;;14737:24:0;;;;;;:18;:24;;;;;;;;14736:25;:52;;;;-1:-1:-1;;;;;;14766:22:0;;;;;;:18;:22;;;;;;;;14765:23;14736:52;:65;;;;-1:-1:-1;14793:8:0;;;;;;;14792:9;14736:65;14733:493;;;14828:4;;-1:-1:-1;;;;;14820:12:0;;;14828:4;;14820:12;14817:116;;;14870:12;;14860:6;:22;;14852:65;;;;-1:-1:-1;;;14852:65:0;;14831:2:1;14852:65:0;;;14813:21:1;14870:2;14850:18;;;14843:30;14909:32;14889:18;;;14882:60;14959:18;;14852:65:0;14629:354:1;14852:65:0;14956:4;;-1:-1:-1;;;;;14950:10:0;;;14956:4;;14950:10;14947:116;;;14998:13;;14988:6;:23;;14980:67;;;;-1:-1:-1;;;14980:67:0;;15190:2:1;14980:67:0;;;15172:21:1;15229:2;15209:18;;;15202:30;15268:33;15248:18;;;15241:61;15319:18;;14980:67:0;14988:355:1;14980:67:0;15086:4;;-1:-1:-1;;;;;15080:10:0;;;15086:4;;15080:10;15077:138;;15144:16;;15134:6;15118:13;15128:2;15118:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;15110:89;;;;-1:-1:-1;;;15110:89:0;;15550:2:1;15110:89:0;;;15532:21:1;15589:2;15569:18;;;15562:30;15628:34;15608:18;;;15601:62;-1:-1:-1;;;15679:18:1;;;15672:32;15721:19;;15110:89:0;15348:398:1;15110:89:0;15246:12;15289:18;;15261:24;15279:4;15261:9;:24::i;:::-;15322:8;;-1:-1:-1;;15261:46:0;;-1:-1:-1;15322:8:0;;;;;15321:9;:24;;;;-1:-1:-1;15334:11:0;;;;15321:24;:35;;;;;15349:7;15321:35;:51;;;;-1:-1:-1;15368:4:0;;-1:-1:-1;;;;;15360:12:0;;;15368:4;;15360:12;;15321:51;:80;;;;-1:-1:-1;;;;;;15377:24:0;;;;;;:18;:24;;;;;;;;15376:25;15321:80;:107;;;;-1:-1:-1;;;;;;15406:22:0;;;;;;:18;:22;;;;;;;;15405:23;15321:107;15318:172;;;15444:34;15459:18;;15444:14;:34::i;:::-;-1:-1:-1;;;;;15537:24:0;;;;;;:18;:24;;;;;;15502:99;;15517:4;;15523:2;;15527:6;;15537:24;;;:50;;-1:-1:-1;;;;;;15565:22:0;;;;;;:18;:22;;;;;;;;15537:50;15596:4;;15535:53;;;-1:-1:-1;;;;;15590:10:0;;;15596:4;;15590:10;15502:14;:99::i;13242:158::-;13283:7;13304:15;13321;13340:19;:17;:19::i;:::-;13303:56;;-1:-1:-1;13303:56:0;-1:-1:-1;13377:15:0;13303:56;;13377:15;:::i;:::-;13370:22;;;;13242:158;:::o;11522:407::-;11608:36;;:::i;:::-;11669:37;11681:7;11690;11699:6;11669:11;:37::i;:::-;11657:49;;11842:52;11854:9;11865:7;11874;11883:10;:8;:10::i;:::-;11842:11;:52::i;:::-;11818:20;;;11717:177;11802:14;;;11717:177;11780:20;;;11717:177;11764:14;;;11717:177;11737:25;;;11717:177;;;11522:407;;;;;:::o;2059:173::-;2115:16;2134:6;;-1:-1:-1;;;;;2151:17:0;;;-1:-1:-1;;;;;;2151:17:0;;;;;;2184:40;;2134:6;;;;;;;2184:40;;2115:16;2184:40;2104:128;2059:173;:::o;16859:1194::-;5057:8;:15;;-1:-1:-1;;5057:15:0;;;;;17046:13;;17024:19;;17002;;5057:15;;17046:13;17002:41:::1;::::0;::::1;:::i;:::-;:57;;;;:::i;:::-;17001:63;::::0;17063:1:::1;17001:63;:::i;:::-;16979:85;;17075:32;17141:11;17119:9;:19;;;17110:6;:28;;;;:::i;:::-;:42;;;;:::i;:::-;17075:77:::0;-1:-1:-1;17163:14:0::1;17180:33;17075:77:::0;17180:6;:33:::1;:::i;:::-;17163:50:::0;-1:-1:-1;17251:21:0::1;17285:24;17163:50:::0;17285:16:::1;:24::i;:::-;17322:20;17345:38;17369:14:::0;17345:21:::1;:38;:::i;:::-;17445:19:::0;;17322:61;;-1:-1:-1;17394:19:0::1;::::0;17431:33:::1;::::0;:11;:33:::1;:::i;:::-;17415:50;::::0;:12;:50:::1;:::i;:::-;17522:19:::0;;17394:71;;-1:-1:-1;17476:29:0::1;::::0;17508:33:::1;::::0;17394:71;17508:33:::1;:::i;:::-;17476:65:::0;-1:-1:-1;17557:25:0;;17554:158:::1;;17639:61;17652:24;17678:21;17639:12;:61::i;:::-;17765:19:::0;;17724:20:::1;::::0;17747:15:::1;:11:::0;17765:19:::1;17747:15;:::i;:::-;:37;;;;:::i;:::-;17724:60:::0;-1:-1:-1;17798:16:0;;17795:95:::1;;17838:16;::::0;17830:48:::1;::::0;-1:-1:-1;;;;;17838:16:0;;::::1;::::0;17830:48;::::1;;;::::0;17865:12;;17838:16:::1;17830:48:::0;17838:16;17830:48;17865:12;17838:16;17830:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;17795:95;17945:13:::0;;17910:14:::1;::::0;17927:15:::1;:11:::0;17941:1:::1;17927:15;:::i;:::-;:31;;;;:::i;:::-;17910:48:::0;-1:-1:-1;17972:10:0;;17969:77:::1;;18006:10;::::0;17998:36:::1;::::0;-1:-1:-1;;;;;18006:10:0;;::::1;::::0;17998:36;::::1;;;::::0;18027:6;;18006:10:::1;17998:36:::0;18006:10;17998:36;18027:6;18006:10;17998:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;17969:77;-1:-1:-1::0;;5095:8:0;:16;;-1:-1:-1;;5095:16:0;;;-1:-1:-1;;;;;;;;16859:1194:0:o;15692:1159::-;15814:28;15845:36;15856:7;15865;15874:6;15845:10;:36::i;:::-;-1:-1:-1;;;;;15898:19:0;;;;;;:11;:19;;;;;;15814:67;;-1:-1:-1;15898:19:0;;15894:115;;;-1:-1:-1;;;;;15974:15:0;;;;;;:7;:15;;;;;;:23;;15990:7;;15974:23;:::i;:::-;-1:-1:-1;;;;;15956:15:0;;;;;;:7;:15;;;;;:41;15894:115;-1:-1:-1;;;;;16023:22:0;;;;;;:11;:22;;;;;;;;16019:130;;;16120:17;;;;-1:-1:-1;;;;;16101:18:0;;;;;;:7;:18;;;;;;:36;;16120:17;16101:36;:::i;:::-;-1:-1:-1;;;;;16080:18:0;;;;;;:7;:18;;;;;:57;16019:130;16195:9;;-1:-1:-1;;;;;16179:15:0;;16195:9;16179:15;;;:7;:15;;;;;;:25;;16195:9;16179:25;:::i;:::-;-1:-1:-1;;;;;16161:15:0;;;;;;;:7;:15;;;;;;;;:43;;;;16255:17;;;16236:18;;;;;;;;;;:36;;16255:17;16236:36;:::i;:::-;-1:-1:-1;;;;;16215:18:0;;;;;;:7;:18;;;;;;;:57;;;;16296:6;;;:10;;;:24;;;16319:1;16310;:6;;;:10;16296:24;16293:56;;;16322:27;16334:1;:6;;;16342:1;:6;;;16322:11;:27::i;:::-;16378:1;16363;:12;;;:16;:36;;;;16398:1;16383;:12;;;:16;16363:36;16360:109;;;16416:41;16431:1;:12;;;16444:1;:12;;;16416:14;:41::i;:::-;16497:1;16482;:12;;;:16;:36;;;;16517:1;16502;:12;;;:16;16482:36;16479:109;;;16534:42;16549:1;:12;;;16563:1;:12;;;16534:14;:42::i;:::-;16610:1;16601;:6;;;:10;:24;;;;16624:1;16615;:6;;;:10;16601:24;16598:79;;;16641:24;16650:1;:6;;;16658:1;:6;;;16641:8;:24::i;:::-;16719:9;-1:-1:-1;;;;;16702:46:0;16711:6;-1:-1:-1;;;;;16702:46:0;;16730:1;:17;;;16702:46;;;;1410:25:1;;1398:2;1383:18;;1264:177;16702:46:0;;;;;;;;16789:4;-1:-1:-1;;;;;16764:69:0;16773:6;-1:-1:-1;;;;;16764:69:0;;16820:1;:12;;;16811:1;:6;;;16796:1;:12;;;:21;;;;:::i;:::-;:36;;;;:::i;:::-;16764:69;;1410:25:1;;;1398:2;1383:18;16764:69:0;;;;;;;15803:1048;15692:1159;;;;;:::o;13408:540::-;13505:7;;13541;;13458;;;;;13559:279;13583:9;:16;13579:20;;13559:279;;;13649:7;13625;:21;13633:9;13643:1;13633:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13633:12:0;13625:21;;;;;;;;;;;;;:31;;:66;;;13684:7;13660;:21;13668:9;13678:1;13668:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13668:12:0;13660:21;;;;;;;;;;;;;:31;13625:66;13621:97;;;13701:7;;13710;;13693:25;;;;;;;13408:540;;:::o;13621:97::-;13751:7;:21;13759:9;13769:1;13759:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13759:12:0;13751:21;;;;;;;;;;;;;13743:29;;:7;:29;:::i;:::-;13733:39;;13805:7;:21;13813:9;13823:1;13813:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13813:12:0;13805:21;;;;;;;;;;;;;13797:29;;:7;:29;:::i;:::-;13787:39;-1:-1:-1;13601:3:0;;;;:::i;:::-;;;;13559:279;;;;13870:7;;13862;;:15;;;;:::i;:::-;13852:7;:25;13848:56;;;13887:7;;13896;;13879:25;;;;;;13408:540;;:::o;13848:56::-;13923:7;;13932;;-1:-1:-1;13408:540:0;-1:-1:-1;13408:540:0:o;11937:608::-;12024:28;;:::i;:::-;12071:7;12067:86;;12093:17;;;:27;;;12133:8;;12067:86;12163:17;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12163:17:0;12194:6;12191:55;;;-1:-1:-1;12202:16:0;;;;;;;;12209:9;12202:16;;;;;;;;;;;;;;;;;;;;;;;;12191:55;;;-1:-1:-1;12234:12:0;;;;;;;;12241:5;12234:12;;;;;;;;;;;;;;;;;;;;;;;;12191:55;12284:8;;12293:3;;12276:16;;:7;:16;:::i;:::-;:20;;;;:::i;:::-;12267:6;;;:29;12330:14;;;;12345:3;;12322:22;;:7;:22;:::i;:::-;:26;;;;:::i;:::-;12307:12;;;:41;12382:14;;;;12397:3;;12374:22;;:7;:22;:::i;:::-;:26;;;;:::i;:::-;12359:12;;;:41;12428:8;;;;12437:3;;12420:16;;:7;:16;:::i;:::-;:20;;;;:::i;:::-;12411:6;;;:29;;;12506:12;;;;12486;;;;12479:6;;;;12506:12;;12411:29;12471:14;;:7;:14;:::i;:::-;:27;;;;:::i;:::-;:34;;;;:::i;:::-;:47;;;;:::i;:::-;12451:17;;;:67;-1:-1:-1;11937:608:0;;;;;:::o;12553:681::-;12678:15;;;;;;12808:19;12816:11;12808:7;:19;:::i;:::-;12798:29;;12844:7;12840:71;;-1:-1:-1;12873:7:0;;-1:-1:-1;12891:1:0;;-1:-1:-1;12891:1:0;;-1:-1:-1;12891:1:0;;-1:-1:-1;12891:1:0;12866:33;;12840:71;12937:11;12930:1;:6;;;:18;;;;:::i;:::-;12923:25;;12985:11;12972:1;:12;;;:24;;;;:::i;:::-;12959:37;;13021:11;13014:1;:6;;;:18;;;;:::i;:::-;13007:25;;13069:11;13056:1;:12;;;:24;;;;:::i;:::-;13043:37;-1:-1:-1;13043:37:0;13134:4;13123:10;13110:12;13118:4;13110:7;:12;:::i;:::-;:23;;;;:::i;:::-;:28;;;;:::i;:::-;:39;;;;:::i;:::-;13091:58;;12553:681;;;;;;;;;;;;:::o;18567:562::-;18717:16;;;18731:1;18717:16;;;;;;;;18693:21;;18717:16;;;;;;;;;;-1:-1:-1;18717:16:0;18693:40;;18762:4;18744;18749:1;18744:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;18744:23:0;;;-1:-1:-1;;;;;18744:23:0;;;;;18788:6;;;;;;;;;-1:-1:-1;;;;;18788:6:0;-1:-1:-1;;;;;18788:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18778:4;18783:1;18778:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18778:23:0;;;:7;;;;;;;;;:23;18846:6;;18814:53;;18831:4;;18846:6;;;;18855:11;18814:8;:53::i;:::-;18906:6;;:215;;-1:-1:-1;;;18906:215:0;;:6;;;;-1:-1:-1;;;;;18906:6:0;;:57;;:215;;18978:11;;19004:1;;19048:4;;19075;;19095:15;;18906:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18622:507;18567:562;:::o;18061:498::-;18241:6;;18209:53;;18226:4;;18241:6;;;-1:-1:-1;;;;;18241:6:0;18250:11;18209:8;:53::i;:::-;18305:6;;:246;;-1:-1:-1;;;18305:246:0;;18368:4;18305:246;;;17465:34:1;17515:18;;;17508:34;;;18414:1:0;17558:18:1;;;17551:34;;;17601:18;;;17594:34;;;17644:19;;;17637:44;18525:15:0;17697:19:1;;;17690:35;18305:6:0;;;;-1:-1:-1;;;;;18305:6:0;;:22;;18335:9;;17399:19:1;;18305:246:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18061:498;;:::o;10550:123::-;10628:4;10618:7;;:14;;;;;;;:::i;:::-;;;;-1:-1:-1;;10643:11:0;:22;;10661:4;;10643:11;:15;;:22;;10661:4;;10643:22;:::i;:::-;;;;-1:-1:-1;;;;10550:123:0:o;10681:284::-;10788:10;10764:11;:21;;;:34;;;;;;;:::i;:::-;;;;-1:-1:-1;;10834:4:0;10814:26;;;;:11;:26;;;;;;;;10811:101;;;10882:4;10866:22;;;;:7;:22;;;;;:34;;10890:10;;10866:22;:34;;10890:10;;10866:34;:::i;:::-;;;;-1:-1:-1;;10811:101:0;10938:4;10922:22;;;;:7;:22;;;;;:35;;10947:10;;10922:22;:35;;10947:10;;10922:35;:::i;10973:284::-;11080:10;11056:11;:21;;;:34;;;;;;;:::i;11269:245::-;11353:4;11334: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:315;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1446:247::-;1505:6;1558:2;1546:9;1537:7;1533:23;1529:32;1526:52;;;1574:1;1571;1564:12;1526:52;1613:9;1600:23;1632:31;1657:5;1632:31;:::i;1698:180::-;1757:6;1810:2;1798:9;1789:7;1785:23;1781:32;1778:52;;;1826:1;1823;1816:12;1778:52;-1:-1:-1;1849:23:1;;1698:180;-1:-1:-1;1698:180:1:o;2091:456::-;2168:6;2176;2184;2237:2;2225:9;2216:7;2212:23;2208:32;2205:52;;;2253:1;2250;2243:12;2205:52;2292:9;2279:23;2311:31;2336:5;2311:31;:::i;:::-;2361:5;-1:-1:-1;2418:2:1;2403:18;;2390:32;2431:33;2390:32;2431:33;:::i;:::-;2091:456;;2483:7;;-1:-1:-1;;;2537:2:1;2522:18;;;;2509:32;;2091:456::o;2741:118::-;2827:5;2820:13;2813:21;2806:5;2803:32;2793:60;;2849:1;2846;2839:12;2864:444;2935:6;2943;2951;3004:2;2992:9;2983:7;2979:23;2975:32;2972:52;;;3020:1;3017;3010:12;2972:52;3056:9;3043:23;3033:33;;3116:2;3105:9;3101:18;3088:32;3129:28;3151:5;3129:28;:::i;:::-;3176:5;-1:-1:-1;3233:2:1;3218:18;;3205:32;3246:30;3205:32;3246:30;:::i;:::-;3295:7;3285:17;;;2864:444;;;;;:::o;3313:388::-;3381:6;3389;3442:2;3430:9;3421:7;3417:23;3413:32;3410:52;;;3458:1;3455;3448:12;3410:52;3497:9;3484:23;3516:31;3541:5;3516:31;:::i;:::-;3566:5;-1:-1:-1;3623:2:1;3608:18;;3595:32;3636:33;3595:32;3636:33;:::i;:::-;3688:7;3678:17;;;3313:388;;;;;:::o;4102:241::-;4158:6;4211:2;4199:9;4190:7;4186:23;4182:32;4179:52;;;4227:1;4224;4217:12;4179:52;4266:9;4253:23;4285:28;4307:5;4285:28;:::i;4348:385::-;4434:6;4442;4450;4458;4511:3;4499:9;4490:7;4486:23;4482:33;4479:53;;;4528:1;4525;4518:12;4479:53;-1:-1:-1;;4551:23:1;;;4621:2;4606:18;;4593:32;;-1:-1:-1;4672:2:1;4657:18;;4644:32;;4723:2;4708:18;4695:32;;-1:-1:-1;4348:385:1;-1:-1:-1;4348:385:1:o;4961:356::-;5163:2;5145:21;;;5182:18;;;5175:30;5241:34;5236:2;5221:18;;5214:62;5308:2;5293:18;;4961:356::o;5322:127::-;5383:10;5378:3;5374:20;5371:1;5364:31;5414:4;5411:1;5404:15;5438:4;5435:1;5428:15;5454:422;5543:1;5586:5;5543:1;5600:270;5621:7;5611:8;5608:21;5600:270;;;5680:4;5676:1;5672:6;5668:17;5662:4;5659:27;5656:53;;;5689:18;;:::i;:::-;5739:7;5729:8;5725:22;5722:55;;;5759:16;;;;5722:55;5838:22;;;;5798:15;;;;5600:270;;;5604:3;5454:422;;;;;:::o;5881:806::-;5930:5;5960:8;5950:80;;-1:-1:-1;6001:1:1;6015:5;;5950:80;6049:4;6039:76;;-1:-1:-1;6086:1:1;6100:5;;6039:76;6131:4;6149:1;6144:59;;;;6217:1;6212:130;;;;6124:218;;6144:59;6174:1;6165:10;;6188:5;;;6212:130;6249:3;6239:8;6236:17;6233:43;;;6256:18;;:::i;:::-;-1:-1:-1;;6312:1:1;6298:16;;6327:5;;6124:218;;6426:2;6416:8;6413:16;6407:3;6401:4;6398:13;6394:36;6388:2;6378:8;6375:16;6370:2;6364:4;6361:12;6357:35;6354:77;6351:159;;;-1:-1:-1;6463:19:1;;;6495:5;;6351:159;6542:34;6567:8;6561:4;6542:34;:::i;:::-;6612:6;6608:1;6604:6;6600:19;6591:7;6588:32;6585:58;;;6623:18;;:::i;:::-;6661:20;;5881:806;-1:-1:-1;;;5881:806:1:o;6692:140::-;6750:5;6779:47;6820:4;6810:8;6806:19;6800:4;6779:47;:::i;6837:168::-;6877:7;6943:1;6939;6935:6;6931:14;6928:1;6925:21;6920:1;6913:9;6906:17;6902:45;6899:71;;;6950:18;;:::i;:::-;-1:-1:-1;6990:9:1;;6837:168::o;7419:125::-;7459:4;7487:1;7484;7481:8;7478:34;;;7492:18;;:::i;:::-;-1:-1:-1;7529:9:1;;7419:125::o;7960:217::-;8000:1;8026;8016:132;;8070:10;8065:3;8061:20;8058:1;8051:31;8105:4;8102:1;8095:15;8133:4;8130:1;8123:15;8016:132;-1:-1:-1;8162:9:1;;7960:217::o;8534:127::-;8595:10;8590:3;8586:20;8583:1;8576:31;8626:4;8623:1;8616:15;8650:4;8647:1;8640:15;8666:127;8727:10;8722:3;8718:20;8715:1;8708:31;8758:4;8755:1;8748:15;8782:4;8779:1;8772:15;8798:135;8837:3;-1:-1:-1;;8858:17:1;;8855:43;;;8878:18;;:::i;:::-;-1:-1:-1;8925:1:1;8914:13;;8798:135::o;8938:128::-;8978:3;9009:1;9005:6;9002:1;8999:13;8996:39;;;9015:18;;:::i;:::-;-1:-1:-1;9051:9:1;;8938:128::o;10764:245::-;10831:6;10884:2;10872:9;10863:7;10859:23;10855:32;10852:52;;;10900:1;10897;10890:12;10852:52;10932:9;10926:16;10951:28;10973:5;10951:28;:::i;15883:251::-;15953:6;16006:2;15994:9;15985:7;15981:23;15977:32;15974:52;;;16022:1;16019;16012:12;15974:52;16054:9;16048:16;16073:31;16098:5;16073:31;:::i;16139:980::-;16401:4;16449:3;16438:9;16434:19;16480:6;16469:9;16462:25;16506:2;16544:6;16539:2;16528:9;16524:18;16517:34;16587:3;16582:2;16571:9;16567:18;16560:31;16611:6;16646;16640:13;16677:6;16669;16662:22;16715:3;16704:9;16700:19;16693:26;;16754:2;16746:6;16742:15;16728:29;;16775:1;16785:195;16799:6;16796:1;16793:13;16785:195;;;16864:13;;-1:-1:-1;;;;;16860:39:1;16848:52;;16955:15;;;;16920:12;;;;16896:1;16814:9;16785:195;;;-1:-1:-1;;;;;;;17036:32:1;;;;17031:2;17016:18;;17009:60;-1:-1:-1;;;17100:3:1;17085:19;17078:35;16997:3;16139:980;-1:-1:-1;;;16139:980:1:o;17736:306::-;17824:6;17832;17840;17893:2;17881:9;17872:7;17868:23;17864:32;17861:52;;;17909:1;17906;17899:12;17861:52;17938:9;17932:16;17922:26;;17988:2;17977:9;17973:18;17967:25;17957:35;;18032:2;18021:9;18017:18;18011:25;18001:35;;17736:306;;;;;:::o

Swarm Source

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