ETH Price: $3,018.48 (+0.94%)
 

Overview

Max Total Supply

79,000,000,000 $AuRE79

Holders

50

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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

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

Contract Source Code Verified (Exact Match)

Contract Name:
aureleum

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license
/**
 *Submitted for verification at Etherscan.io on 2023-09-28
*/

/**
 *Submitted for verification at BscScan.com on 2023-05-01
*/

// SPDX-License-Identifier: NOLICENSE

/**

Telegram: https://t.me/+zbN2sVLci-xjZDll

website: https://www.aureleum.com/



*/

pragma solidity ^0.8.20;

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 aureleum is Context, IERC20, Ownable {

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

    address[] private _excluded;

    bool public swapEnabled = true;
    bool private swapping;

    IRouter public router;
    address public pair;

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

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

    
    uint256 public swapTokensAtAmount = 395_000_000 * 10**_decimals;
    
    uint256 public maxSellAmount = 79_000_000_000 * 10**_decimals;
    uint256 public maxBuyAmount = 79_000_000_000 * 10**_decimals;
    uint256 public maxWalletBalance = 79_000_000_000 * 10**_decimals;

    address public marketingAddress = 0xd7D845c088506a0ebE9D3720884056f6a6044994;
    address public devAddress = 0xF891061e0Bf0Da4901b9153b76efb03B94d4A221;

    string private constant _name = "aureleum";
    string private constant _symbol = "$AuRE79";


    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;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[marketingAddress]=true;
        _isExcludedFromFee[devAddress] = true;

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

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

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

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

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

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

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

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

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

        return true;
    }

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

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

        return true;
    }

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

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

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

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

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


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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

        uint256 initialBalance = address(this).balance;

        swapTokensForBNB(toSwap);

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

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

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

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

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

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

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

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

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

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

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

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

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

    receive() external payable{
    }
}

Contract Security Audit

Contract ABI

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

60806040526008805460ff191660011790556200001f6012600a620009a4565b6200003090641264c45600620009b4565b600a81905562000042905f19620009e2565b6200004f905f19620009f8565b600b55620000606012600a620009a4565b620000709063178b38c0620009b4565b600c55620000816012600a620009a4565b6200009290641264c45600620009b4565b600d55620000a36012600a620009a4565b620000b490641264c45600620009b4565b600e55620000c56012600a620009a4565b620000d690641264c45600620009b4565b600f55601080546001600160a01b031990811673d7d845c088506a0ebe9d3720884056f6a6044994179091556011805490911673f891061e0bf0da4901b9153b76efb03b94d4a22117905560408051608080820183525f80835260208084018290526003848601819052606094850183905260128390556013839055601481905560158390558551938401865282845290830182905293820184905291018190526016819055601781905560189190915560195534801562000196575f80fd5b50620001a23362000470565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90505f816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200021e919062000a0e565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200026a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000290919062000a0e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002db573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000301919062000a0e565b600880546001600160a01b03808616620100000262010000600160b01b031990921691909117909155600980549183166001600160a01b0319909216821790559091506200034f90620004bf565b600b5460015f620003675f546001600160a01b031690565b6001600160a01b03166001600160a01b031681526020019081526020015f2081905550600160045f6200039f6200064760201b60201c565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526004909352818320805485166001908117909155601054821684528284208054861682179055601154909116835291208054909216179055620004195f546001600160a01b031690565b6001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a546040516200046091815260200190565b60405180910390a3505062000a7b565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f546001600160a01b031633146200051e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b0381165f9081526005602052604090205460ff1615620005885760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640162000515565b6001600160a01b0381165f9081526001602052604090205415620005e2576001600160a01b0381165f90815260016020526040902054620005c99062000655565b6001600160a01b0382165f908152600260205260409020555b6001600160a01b03165f818152600560205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b5f546001600160a01b031690565b5f600b54821115620006bd5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840162000515565b5f620006c8620006dd565b9050620006d6818462000a36565b9392505050565b5f8080620006ea62000702565b9092509050620006fb818362000a36565b9250505090565b600b54600a545f918291825b60075481101562000861578260015f6007848154811062000733576200073362000a4c565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205411806200079f57508160025f6007848154811062000779576200077962000a4c565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054115b15620007b657600b54600a54945094505050509091565b60015f60078381548110620007cf57620007cf62000a4c565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054620007ff9084620009f8565b925060025f600783815481106200081a576200081a62000a4c565b5f9182526020808320909101546001600160a01b031683528201929092526040019020546200084a9083620009f8565b915080620008588162000a60565b9150506200070e565b50600a54600b5462000874919062000a36565b8210156200088c57600b54600a549350935050509091565b90939092509050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620008e957815f1904821115620008cd57620008cd62000895565b80851615620008db57918102915b93841c9390800290620008ae565b509250929050565b5f8262000901575060016200099e565b816200090f57505f6200099e565b8160018114620009285760028114620009335762000953565b60019150506200099e565b60ff84111562000947576200094762000895565b50506001821b6200099e565b5060208310610133831016604e8410600b841016171562000978575081810a6200099e565b620009848383620008a9565b805f19048211156200099a576200099a62000895565b0290505b92915050565b5f620006d660ff841683620008f1565b80820281158282048414176200099e576200099e62000895565b634e487b7160e01b5f52601260045260245ffd5b5f82620009f357620009f3620009ce565b500690565b818103818111156200099e576200099e62000895565b5f6020828403121562000a1f575f80fd5b81516001600160a01b0381168114620006d6575f80fd5b5f8262000a475762000a47620009ce565b500490565b634e487b7160e01b5f52603260045260245ffd5b5f6001820162000a745762000a7462000895565b5060010190565b612e5e8062000a895f395ff3fe6080604052600436106102a8575f3560e01c8063728f8eea1161016f578063aacebbe3116100d8578063e116554511610092578063f2fde38b1161006d578063f2fde38b146108d5578063f480fec2146108f4578063f66895a314610913578063f887ea4014610935575f80fd5b8063e116554514610882578063e2f45605146108a1578063ea2f0b37146108b6575f80fd5b8063aacebbe3146107ad578063b31470a4146107cc578063bbde77c1146107eb578063c4fd856b14610800578063d257b34f1461081f578063dd62ed3e1461083e575f80fd5b80639ba5e4d5116101295780639ba5e4d5146106f0578063a12a7d6114610712578063a457c2d714610731578063a5ece94114610750578063a8aa1b311461076f578063a9059cbb1461078e575f80fd5b8063728f8eea146105f857806388e765ff1461063a57806388f820201461064f5780638da5cb5b14610686578063924de9b7146106a257806395d89b41146106c1575f80fd5b80633bbac5791161021157806352390c02116101cb57806352390c02146105415780635342acb41461056057806366d602ae146105975780636ddd1713146105ac57806370a08231146105c5578063715018a6146105e4575f80fd5b80633bbac5791461046f5780633f63d40f146104a657806340b28c2f146104c5578063437823ec146104e4578063441b1d301461050357806347c2309214610522575f80fd5b806327563c8c1161026257806327563c8c146103a15780632d838119146103c0578063313ce567146103df5780633685d419146103fa57806339509351146104195780633ad10ef614610438575f80fd5b806306fdde03146102b3578063095ea7b3146102f557806318160ddd146103245780631816467f14610342578063188b1bf11461036357806323b872dd14610382575f80fd5b366102af57005b5f80fd5b3480156102be575f80fd5b50604080518082019091526008815267617572656c65756d60c01b60208201525b6040516102ec9190612892565b60405180910390f35b348015610300575f80fd5b5061031461030f366004612901565b61095a565b60405190151581526020016102ec565b34801561032f575f80fd5b50600a545b6040519081526020016102ec565b34801561034d575f80fd5b5061036161035c36600461292b565b610970565b005b34801561036e575f80fd5b5061036161037d366004612946565b6109c4565b34801561038d575f80fd5b5061031461039c36600461295d565b610a09565b3480156103ac575f80fd5b506103616103bb366004612946565b610aba565b3480156103cb575f80fd5b506103346103da366004612946565b610aff565b3480156103ea575f80fd5b50604051601281526020016102ec565b348015610405575f80fd5b5061036161041436600461292b565b610b7a565b348015610424575f80fd5b50610314610433366004612901565b610d28565b348015610443575f80fd5b50601154610457906001600160a01b031681565b6040516001600160a01b0390911681526020016102ec565b34801561047a575f80fd5b5061031461048936600461292b565b6001600160a01b03165f9081526006602052604090205460ff1690565b3480156104b1575f80fd5b506103346104c03660046129b3565b610d5e565b3480156104d0575f80fd5b506103616104df3660046129f2565b610de6565b3480156104ef575f80fd5b506103616104fe36600461292b565b610e49565b34801561050e575f80fd5b5061036161051d366004612946565b610e95565b34801561052d575f80fd5b5061036161053c36600461295d565b610f38565b34801561054c575f80fd5b5061036161055b36600461292b565b61102f565b34801561056b575f80fd5b5061031461057a36600461292b565b6001600160a01b03165f9081526004602052604090205460ff1690565b3480156105a2575f80fd5b50610334600d5481565b3480156105b7575f80fd5b506008546103149060ff1681565b3480156105d0575f80fd5b506103346105df36600461292b565b61117c565b3480156105ef575f80fd5b506103616111d8565b348015610603575f80fd5b5060125460135460145460155461061a9392919084565b6040805194855260208501939093529183015260608201526080016102ec565b348015610645575f80fd5b50610334600e5481565b34801561065a575f80fd5b5061031461066936600461292b565b6001600160a01b03165f9081526005602052604090205460ff1690565b348015610691575f80fd5b505f546001600160a01b0316610457565b3480156106ad575f80fd5b506103616106bc366004612a29565b61120c565b3480156106cc575f80fd5b506040805180820190915260078152662441755245373960c81b60208201526102df565b3480156106fb575f80fd5b50601a54601b54601c54601d5461061a9392919084565b34801561071d575f80fd5b5061036161072c366004612a44565b611248565b34801561073c575f80fd5b5061031461074b366004612901565b6112b3565b34801561075b575f80fd5b50601054610457906001600160a01b031681565b34801561077a575f80fd5b50600954610457906001600160a01b031681565b348015610799575f80fd5b506103146107a8366004612901565b61134d565b3480156107b8575f80fd5b506103616107c736600461292b565b611359565b3480156107d7575f80fd5b506103616107e6366004612a87565b6113a4565b3480156107f6575f80fd5b50610334600f5481565b34801561080b575f80fd5b5061036161081a366004612946565b611436565b34801561082a575f80fd5b50610361610839366004612946565b61147b565b348015610849575f80fd5b506103346108583660046129f2565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b34801561088d575f80fd5b5061036161089c366004612b59565b6114c0565b3480156108ac575f80fd5b50610334600c5481565b3480156108c1575f80fd5b506103616108d036600461292b565b611576565b3480156108e0575f80fd5b506103616108ef36600461292b565b6115bf565b3480156108ff575f80fd5b5061036161090e366004612a44565b611659565b34801561091e575f80fd5b5060165460175460185460195461061a9392919084565b348015610940575f80fd5b50600854610457906201000090046001600160a01b031681565b5f6109663384846116c4565b5060015b92915050565b5f546001600160a01b031633146109a25760405162461bcd60e51b815260040161099990612b85565b60405180910390fd5b601180546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146109ed5760405162461bcd60e51b815260040161099990612b85565b6109f96012600a612cae565b610a039082612cbc565b600f5550565b5f610a158484846117e7565b6001600160a01b0384165f90815260036020908152604080832033845290915290205482811015610a995760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610999565b610aad8533610aa88685612cd3565b6116c4565b60019150505b9392505050565b5f546001600160a01b03163314610ae35760405162461bcd60e51b815260040161099990612b85565b610aef6012600a612cae565b610af99082612cbc565b600e5550565b5f600b54821115610b655760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610999565b5f610b6e611cb1565b9050610ab38184612ce6565b5f546001600160a01b03163314610ba35760405162461bcd60e51b815260040161099990612b85565b6001600160a01b0381165f9081526005602052604090205460ff16610c0a5760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c756465640000000000000000006044820152606401610999565b5f5b600754811015610d2457816001600160a01b031660078281548110610c3357610c33612d05565b5f918252602090912001546001600160a01b031603610d125760078054610c5c90600190612cd3565b81548110610c6c57610c6c612d05565b5f91825260209091200154600780546001600160a01b039092169183908110610c9757610c97612d05565b5f91825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556007805480610cee57610cee612d19565b5f8281526020902081015f1990810180546001600160a01b03191690550190555050565b80610d1c81612d2d565b915050610c0c565b5050565b335f8181526003602090815260408083206001600160a01b03871684529091528120549091610966918590610aa8908690612d45565b5f600a54841115610db15760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610999565b82610dcc575f610dc2855f85611cd2565b519150610ab39050565b5f610dd985600185611cd2565b602001519150610ab39050565b5f546001600160a01b03163314610e0f5760405162461bcd60e51b815260040161099990612b85565b6008805462010000600160b01b031916620100006001600160a01b0394851602179055600980546001600160a01b03191691909216179055565b5f546001600160a01b03163314610e725760405162461bcd60e51b815260040161099990612b85565b6001600160a01b03165f908152600460205260409020805460ff19166001179055565b5f546001600160a01b03163314610ebe5760405162461bcd60e51b815260040161099990612b85565b80471015610f0e5760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e636500000000000000006044820152606401610999565b604051339082156108fc029083905f818181858888f19350505050158015610d24573d5f803e3d5ffd5b5f546001600160a01b03163314610f615760405162461bcd60e51b815260040161099990612b85565b306001600160a01b03841603610fb95760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74207472616e73666572206f75742024617572656c65756d2100006044820152606401610999565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303815f875af1158015611005573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110299190612d58565b50505050565b5f546001600160a01b031633146110585760405162461bcd60e51b815260040161099990612b85565b6001600160a01b0381165f9081526005602052604090205460ff16156110c05760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610999565b6001600160a01b0381165f9081526001602052604090205415611117576001600160a01b0381165f908152600160205260409020546110fe90610aff565b6001600160a01b0382165f908152600260205260409020555b6001600160a01b03165f818152600560205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6001600160a01b0381165f9081526005602052604081205460ff16156111b757506001600160a01b03165f9081526002602052604090205490565b6001600160a01b0382165f9081526001602052604090205461096a90610aff565b5f546001600160a01b031633146112015760405162461bcd60e51b815260040161099990612b85565b61120a5f611d1c565b565b5f546001600160a01b031633146112355760405162461bcd60e51b815260040161099990612b85565b6008805460ff1916911515919091179055565b5f546001600160a01b031633146112715760405162461bcd60e51b815260040161099990612b85565b60128490556014839055601382905560158190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de15905f90a150505050565b335f9081526003602090815260408083206001600160a01b0386168452909152812054828110156113345760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610999565b6113433385610aa88685612cd3565b5060019392505050565b5f6109663384846117e7565b5f546001600160a01b031633146113825760405162461bcd60e51b815260040161099990612b85565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146113cd5760405162461bcd60e51b815260040161099990612b85565b5f5b8251811015611431578160065f8584815181106113ee576113ee612d05565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558061142981612d2d565b9150506113cf565b505050565b5f546001600160a01b0316331461145f5760405162461bcd60e51b815260040161099990612b85565b61146b6012600a612cae565b6114759082612cbc565b600d5550565b5f546001600160a01b031633146114a45760405162461bcd60e51b815260040161099990612b85565b6114b06012600a612cae565b6114ba9082612cbc565b600c5550565b5f546001600160a01b031633146114e95760405162461bcd60e51b815260040161099990612b85565b6001600160a01b0382165f9081526006602052604090205481151560ff90911615150361154c5760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b6044820152606401610999565b6001600160a01b03919091165f908152600660205260409020805460ff1916911515919091179055565b5f546001600160a01b0316331461159f5760405162461bcd60e51b815260040161099990612b85565b6001600160a01b03165f908152600460205260409020805460ff19169055565b5f546001600160a01b031633146115e85760405162461bcd60e51b815260040161099990612b85565b6001600160a01b03811661164d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610999565b61165681611d1c565b50565b5f546001600160a01b031633146116825760405162461bcd60e51b815260040161099990612b85565b60168490556018839055601782905560198190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de15905f90a150505050565b6001600160a01b0383166117265760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610999565b6001600160a01b0382166117875760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610999565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661184b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610999565b6001600160a01b0382166118ad5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610999565b5f811161190e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610999565b6119178361117c565b8111156119805760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610999565b6001600160a01b0383165f9081526006602052604090205460ff161580156119c057506001600160a01b0382165f9081526006602052604090205460ff16155b6119fc5760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b6044820152606401610999565b6001600160a01b0383165f9081526004602052604090205460ff16158015611a3c57506001600160a01b0382165f9081526004602052604090205460ff16155b8015611a505750600854610100900460ff16155b15611baa576009546001600160a01b0390811690841603611abd57600e54811115611abd5760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d6178427579416d6f756e7400006044820152606401610999565b6009546001600160a01b0390811690831603611b2557600d54811115611b255760405162461bcd60e51b815260206004820152601f60248201527f596f752061726520657863656564696e67206d617853656c6c416d6f756e74006044820152606401610999565b6009546001600160a01b03838116911614611baa57600f5481611b478461117c565b611b519190612d45565b1115611baa5760405162461bcd60e51b815260206004820152602260248201527f596f752061726520657863656564696e67206d617857616c6c657442616c616e604482015261636560f01b6064820152608401610999565b5f600c54611bb73061117c565b6008549111159150610100900460ff16158015611bd6575060085460ff165b8015611bdf5750805b8015611bf957506009546001600160a01b03858116911614155b8015611c1d57506001600160a01b0384165f9081526004602052604090205460ff16155b8015611c4157506001600160a01b0383165f9081526004602052604090205460ff16155b15611c5157611c51600c54611d6b565b6001600160a01b0384165f908152600460205260409020546110299085908590859060ff1680611c9857506001600160a01b0387165f9081526004602052604090205460ff165b6009549015906001600160a01b03898116911614611ef4565b5f805f611cbc6121af565b9092509050611ccb8183612ce6565b9250505090565b611cda612843565b611ce5848484612329565b9050611cfa818585611cf5611cb1565b612498565b60a0870152608086015260608501526040840152602083015281529392505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6008805461ff0019166101001790556017546018546019545f9291611d8f91612d45565b611d999190612d45565b611da4906002612cbc565b90505f8160166003015484611db99190612cbc565b611dc39190612ce6565b90505f611dd08285612cd3565b905047611ddc82612548565b5f611de78247612cd3565b6019549091505f90611df99087612cd3565b611e039083612ce6565b6019549091505f90611e159083612cbc565b90508015611e2757611e2786826126bd565b6018545f90611e37846002612cbc565b611e419190612cbc565b90508015611e82576010546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611e80573d5f803e3d5ffd5b505b6017545f90611e92856002612cbc565b611e9c9190612cbc565b90508015611edd576011546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611edb573d5f803e3d5ffd5b505b50506008805461ff00191690555050505050505050565b5f611f00848484611cd2565b6001600160a01b0387165f9081526005602052604090205490915060ff1615611f5f576001600160a01b0386165f90815260026020526040902054611f46908590612cd3565b6001600160a01b0387165f908152600260205260409020555b6001600160a01b0385165f9081526005602052604090205460ff1615611fbf5760c08101516001600160a01b0386165f90815260026020526040902054611fa69190612d45565b6001600160a01b0386165f908152600260205260409020555b80516001600160a01b0387165f90815260016020526040902054611fe39190612cd3565b6001600160a01b038088165f90815260016020908152604080832094909455840151918816815291909120546120199190612d45565b6001600160a01b0386165f90815260016020526040908190209190915581015115158061204957505f8160e00151115b156120605761206081604001518260e00151612776565b5f8160a00151118061207657505f816101400151115b1561208e5761208e8160a001518261014001516127a9565b5f816060015111806120a457505f816101000151115b156120bc576120bc816060015182610100015161281b565b5f816080015111806120d257505f816101200151115b156120ea576120ea816080015182610120015161282f565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c0015160405161213391815260200190565b60405180910390a3306001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83610100015184610120015185610140015161218c9190612d45565b6121969190612d45565b60405190815260200160405180910390a3505050505050565b600b54600a545f918291825b6007548110156122f8578260015f600784815481106121dc576121dc612d05565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054118061224457508160025f6007848154811061221e5761221e612d05565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054115b1561225a57600b54600a54945094505050509091565b60015f6007838154811061227057612270612d05565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205461229e9084612cd3565b925060025f600783815481106122b6576122b6612d05565b5f9182526020808320909101546001600160a01b031683528201929092526040019020546122e49083612cd3565b9150806122f081612d2d565b9150506121bb565b50600a54600b546123099190612ce6565b82101561232057600b54600a549350935050509091565b90939092509050565b612331612843565b826123425760c08101849052610ab3565b61236960405180608001604052805f81526020015f81526020015f81526020015f81525090565b821561239e575060408051608081018252601654815260175460208201526018549181019190915260195460608201526123c9565b5060408051608081018252601254815260135460208201526014549181019190915260155460608201525b80516064906123d89087612cbc565b6123e29190612ce6565b60e083015260408101516064906123f99087612cbc565b6124039190612ce6565b610100830152606081015160649061241b9087612cbc565b6124259190612ce6565b610140830152602081015160649061243d9087612cbc565b6124479190612ce6565b610120830181905261014083015161010084015160e085015191929161246d9089612cd3565b6124779190612cd3565b6124819190612cd3565b61248b9190612cd3565b60c0830152509392505050565b5f80808080806124a8878a612cbc565b9550876124c257508493505f92508291508190508061253b565b868a60e001516124d29190612cbc565b9350868a61010001516124e59190612cbc565b9250868a61012001516124f89190612cbc565b9150868a610140015161250b9190612cbc565b905080828461251a878a612cd3565b6125249190612cd3565b61252e9190612cd3565b6125389190612cd3565b94505b9499939850945094509450565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061257b5761257b612d05565b60200260200101906001600160a01b031690816001600160a01b031681525050600860029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125ec573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126109190612d73565b8160018151811061262357612623612d05565b6001600160a01b03928316602091820292909201015260085461264f91309162010000900416846116c4565b60085460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac9479061268c9085905f90869030904290600401612d8e565b5f604051808303815f87803b1580156126a3575f80fd5b505af11580156126b5573d5f803e3d5ffd5b505050505050565b6008546126db9030906201000090046001600160a01b0316846116c4565b60085460405163f305d71960e01b8152306004820152602481018490525f604482018190526064820181905260848201524260a4820152620100009091046001600160a01b03169063f305d71990839060c40160606040518083038185885af115801561274a573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061276f9190612dfd565b5050505050565b81600b5f8282546127879190612cd3565b9091555050601a80548291905f906127a0908490612d45565b90915550505050565b80601a6003015f8282546127bd9190612d45565b9091555050305f9081526005602052604090205460ff16156127fd57305f90815260026020526040812080548392906127f7908490612d45565b90915550505b305f90815260016020526040812080548492906127a0908490612d45565b80601a6001015f8282546127bd9190612d45565b80601a6002015f8282546127bd9190612d45565b6040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f6020808352835180828501525f5b818110156128bd578581018301518582016040015282016128a1565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611656575f80fd5b80356128fc816128dd565b919050565b5f8060408385031215612912575f80fd5b823561291d816128dd565b946020939093013593505050565b5f6020828403121561293b575f80fd5b8135610ab3816128dd565b5f60208284031215612956575f80fd5b5035919050565b5f805f6060848603121561296f575f80fd5b833561297a816128dd565b9250602084013561298a816128dd565b929592945050506040919091013590565b8015158114611656575f80fd5b80356128fc8161299b565b5f805f606084860312156129c5575f80fd5b8335925060208401356129d78161299b565b915060408401356129e78161299b565b809150509250925092565b5f8060408385031215612a03575f80fd5b8235612a0e816128dd565b91506020830135612a1e816128dd565b809150509250929050565b5f60208284031215612a39575f80fd5b8135610ab38161299b565b5f805f8060808587031215612a57575f80fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215612a98575f80fd5b823567ffffffffffffffff80821115612aaf575f80fd5b818501915085601f830112612ac2575f80fd5b8135602082821115612ad657612ad6612a73565b8160051b604051601f19603f83011681018181108682111715612afb57612afb612a73565b604052928352818301935084810182019289841115612b18575f80fd5b948201945b83861015612b3d57612b2e866128f1565b85529482019493820193612b1d565b9650612b4c90508782016129a8565b9450505050509250929050565b5f8060408385031215612b6a575f80fd5b8235612b75816128dd565b91506020830135612a1e8161299b565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115612c0857815f1904821115612bee57612bee612bba565b80851615612bfb57918102915b93841c9390800290612bd3565b509250929050565b5f82612c1e5750600161096a565b81612c2a57505f61096a565b8160018114612c405760028114612c4a57612c66565b600191505061096a565b60ff841115612c5b57612c5b612bba565b50506001821b61096a565b5060208310610133831016604e8410600b8410161715612c89575081810a61096a565b612c938383612bce565b805f1904821115612ca657612ca6612bba565b029392505050565b5f610ab360ff841683612c10565b808202811582820484141761096a5761096a612bba565b8181038181111561096a5761096a612bba565b5f82612d0057634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52603160045260245ffd5b5f60018201612d3e57612d3e612bba565b5060010190565b8082018082111561096a5761096a612bba565b5f60208284031215612d68575f80fd5b8151610ab38161299b565b5f60208284031215612d83575f80fd5b8151610ab3816128dd565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015612ddc5784516001600160a01b031683529383019391830191600101612db7565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612e0f575f80fd5b835192506020840151915060408401519050925092509256fea2646970667358221220f5e3cb763a23d4dc1936d7652314972504bc07560b1a4b70c010ee1b96ab8b3064736f6c63430008140033

Deployed Bytecode

0x6080604052600436106102a8575f3560e01c8063728f8eea1161016f578063aacebbe3116100d8578063e116554511610092578063f2fde38b1161006d578063f2fde38b146108d5578063f480fec2146108f4578063f66895a314610913578063f887ea4014610935575f80fd5b8063e116554514610882578063e2f45605146108a1578063ea2f0b37146108b6575f80fd5b8063aacebbe3146107ad578063b31470a4146107cc578063bbde77c1146107eb578063c4fd856b14610800578063d257b34f1461081f578063dd62ed3e1461083e575f80fd5b80639ba5e4d5116101295780639ba5e4d5146106f0578063a12a7d6114610712578063a457c2d714610731578063a5ece94114610750578063a8aa1b311461076f578063a9059cbb1461078e575f80fd5b8063728f8eea146105f857806388e765ff1461063a57806388f820201461064f5780638da5cb5b14610686578063924de9b7146106a257806395d89b41146106c1575f80fd5b80633bbac5791161021157806352390c02116101cb57806352390c02146105415780635342acb41461056057806366d602ae146105975780636ddd1713146105ac57806370a08231146105c5578063715018a6146105e4575f80fd5b80633bbac5791461046f5780633f63d40f146104a657806340b28c2f146104c5578063437823ec146104e4578063441b1d301461050357806347c2309214610522575f80fd5b806327563c8c1161026257806327563c8c146103a15780632d838119146103c0578063313ce567146103df5780633685d419146103fa57806339509351146104195780633ad10ef614610438575f80fd5b806306fdde03146102b3578063095ea7b3146102f557806318160ddd146103245780631816467f14610342578063188b1bf11461036357806323b872dd14610382575f80fd5b366102af57005b5f80fd5b3480156102be575f80fd5b50604080518082019091526008815267617572656c65756d60c01b60208201525b6040516102ec9190612892565b60405180910390f35b348015610300575f80fd5b5061031461030f366004612901565b61095a565b60405190151581526020016102ec565b34801561032f575f80fd5b50600a545b6040519081526020016102ec565b34801561034d575f80fd5b5061036161035c36600461292b565b610970565b005b34801561036e575f80fd5b5061036161037d366004612946565b6109c4565b34801561038d575f80fd5b5061031461039c36600461295d565b610a09565b3480156103ac575f80fd5b506103616103bb366004612946565b610aba565b3480156103cb575f80fd5b506103346103da366004612946565b610aff565b3480156103ea575f80fd5b50604051601281526020016102ec565b348015610405575f80fd5b5061036161041436600461292b565b610b7a565b348015610424575f80fd5b50610314610433366004612901565b610d28565b348015610443575f80fd5b50601154610457906001600160a01b031681565b6040516001600160a01b0390911681526020016102ec565b34801561047a575f80fd5b5061031461048936600461292b565b6001600160a01b03165f9081526006602052604090205460ff1690565b3480156104b1575f80fd5b506103346104c03660046129b3565b610d5e565b3480156104d0575f80fd5b506103616104df3660046129f2565b610de6565b3480156104ef575f80fd5b506103616104fe36600461292b565b610e49565b34801561050e575f80fd5b5061036161051d366004612946565b610e95565b34801561052d575f80fd5b5061036161053c36600461295d565b610f38565b34801561054c575f80fd5b5061036161055b36600461292b565b61102f565b34801561056b575f80fd5b5061031461057a36600461292b565b6001600160a01b03165f9081526004602052604090205460ff1690565b3480156105a2575f80fd5b50610334600d5481565b3480156105b7575f80fd5b506008546103149060ff1681565b3480156105d0575f80fd5b506103346105df36600461292b565b61117c565b3480156105ef575f80fd5b506103616111d8565b348015610603575f80fd5b5060125460135460145460155461061a9392919084565b6040805194855260208501939093529183015260608201526080016102ec565b348015610645575f80fd5b50610334600e5481565b34801561065a575f80fd5b5061031461066936600461292b565b6001600160a01b03165f9081526005602052604090205460ff1690565b348015610691575f80fd5b505f546001600160a01b0316610457565b3480156106ad575f80fd5b506103616106bc366004612a29565b61120c565b3480156106cc575f80fd5b506040805180820190915260078152662441755245373960c81b60208201526102df565b3480156106fb575f80fd5b50601a54601b54601c54601d5461061a9392919084565b34801561071d575f80fd5b5061036161072c366004612a44565b611248565b34801561073c575f80fd5b5061031461074b366004612901565b6112b3565b34801561075b575f80fd5b50601054610457906001600160a01b031681565b34801561077a575f80fd5b50600954610457906001600160a01b031681565b348015610799575f80fd5b506103146107a8366004612901565b61134d565b3480156107b8575f80fd5b506103616107c736600461292b565b611359565b3480156107d7575f80fd5b506103616107e6366004612a87565b6113a4565b3480156107f6575f80fd5b50610334600f5481565b34801561080b575f80fd5b5061036161081a366004612946565b611436565b34801561082a575f80fd5b50610361610839366004612946565b61147b565b348015610849575f80fd5b506103346108583660046129f2565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b34801561088d575f80fd5b5061036161089c366004612b59565b6114c0565b3480156108ac575f80fd5b50610334600c5481565b3480156108c1575f80fd5b506103616108d036600461292b565b611576565b3480156108e0575f80fd5b506103616108ef36600461292b565b6115bf565b3480156108ff575f80fd5b5061036161090e366004612a44565b611659565b34801561091e575f80fd5b5060165460175460185460195461061a9392919084565b348015610940575f80fd5b50600854610457906201000090046001600160a01b031681565b5f6109663384846116c4565b5060015b92915050565b5f546001600160a01b031633146109a25760405162461bcd60e51b815260040161099990612b85565b60405180910390fd5b601180546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146109ed5760405162461bcd60e51b815260040161099990612b85565b6109f96012600a612cae565b610a039082612cbc565b600f5550565b5f610a158484846117e7565b6001600160a01b0384165f90815260036020908152604080832033845290915290205482811015610a995760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610999565b610aad8533610aa88685612cd3565b6116c4565b60019150505b9392505050565b5f546001600160a01b03163314610ae35760405162461bcd60e51b815260040161099990612b85565b610aef6012600a612cae565b610af99082612cbc565b600e5550565b5f600b54821115610b655760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610999565b5f610b6e611cb1565b9050610ab38184612ce6565b5f546001600160a01b03163314610ba35760405162461bcd60e51b815260040161099990612b85565b6001600160a01b0381165f9081526005602052604090205460ff16610c0a5760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c756465640000000000000000006044820152606401610999565b5f5b600754811015610d2457816001600160a01b031660078281548110610c3357610c33612d05565b5f918252602090912001546001600160a01b031603610d125760078054610c5c90600190612cd3565b81548110610c6c57610c6c612d05565b5f91825260209091200154600780546001600160a01b039092169183908110610c9757610c97612d05565b5f91825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556007805480610cee57610cee612d19565b5f8281526020902081015f1990810180546001600160a01b03191690550190555050565b80610d1c81612d2d565b915050610c0c565b5050565b335f8181526003602090815260408083206001600160a01b03871684529091528120549091610966918590610aa8908690612d45565b5f600a54841115610db15760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610999565b82610dcc575f610dc2855f85611cd2565b519150610ab39050565b5f610dd985600185611cd2565b602001519150610ab39050565b5f546001600160a01b03163314610e0f5760405162461bcd60e51b815260040161099990612b85565b6008805462010000600160b01b031916620100006001600160a01b0394851602179055600980546001600160a01b03191691909216179055565b5f546001600160a01b03163314610e725760405162461bcd60e51b815260040161099990612b85565b6001600160a01b03165f908152600460205260409020805460ff19166001179055565b5f546001600160a01b03163314610ebe5760405162461bcd60e51b815260040161099990612b85565b80471015610f0e5760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e636500000000000000006044820152606401610999565b604051339082156108fc029083905f818181858888f19350505050158015610d24573d5f803e3d5ffd5b5f546001600160a01b03163314610f615760405162461bcd60e51b815260040161099990612b85565b306001600160a01b03841603610fb95760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74207472616e73666572206f75742024617572656c65756d2100006044820152606401610999565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303815f875af1158015611005573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110299190612d58565b50505050565b5f546001600160a01b031633146110585760405162461bcd60e51b815260040161099990612b85565b6001600160a01b0381165f9081526005602052604090205460ff16156110c05760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610999565b6001600160a01b0381165f9081526001602052604090205415611117576001600160a01b0381165f908152600160205260409020546110fe90610aff565b6001600160a01b0382165f908152600260205260409020555b6001600160a01b03165f818152600560205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6001600160a01b0381165f9081526005602052604081205460ff16156111b757506001600160a01b03165f9081526002602052604090205490565b6001600160a01b0382165f9081526001602052604090205461096a90610aff565b5f546001600160a01b031633146112015760405162461bcd60e51b815260040161099990612b85565b61120a5f611d1c565b565b5f546001600160a01b031633146112355760405162461bcd60e51b815260040161099990612b85565b6008805460ff1916911515919091179055565b5f546001600160a01b031633146112715760405162461bcd60e51b815260040161099990612b85565b60128490556014839055601382905560158190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de15905f90a150505050565b335f9081526003602090815260408083206001600160a01b0386168452909152812054828110156113345760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610999565b6113433385610aa88685612cd3565b5060019392505050565b5f6109663384846117e7565b5f546001600160a01b031633146113825760405162461bcd60e51b815260040161099990612b85565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146113cd5760405162461bcd60e51b815260040161099990612b85565b5f5b8251811015611431578160065f8584815181106113ee576113ee612d05565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558061142981612d2d565b9150506113cf565b505050565b5f546001600160a01b0316331461145f5760405162461bcd60e51b815260040161099990612b85565b61146b6012600a612cae565b6114759082612cbc565b600d5550565b5f546001600160a01b031633146114a45760405162461bcd60e51b815260040161099990612b85565b6114b06012600a612cae565b6114ba9082612cbc565b600c5550565b5f546001600160a01b031633146114e95760405162461bcd60e51b815260040161099990612b85565b6001600160a01b0382165f9081526006602052604090205481151560ff90911615150361154c5760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b6044820152606401610999565b6001600160a01b03919091165f908152600660205260409020805460ff1916911515919091179055565b5f546001600160a01b0316331461159f5760405162461bcd60e51b815260040161099990612b85565b6001600160a01b03165f908152600460205260409020805460ff19169055565b5f546001600160a01b031633146115e85760405162461bcd60e51b815260040161099990612b85565b6001600160a01b03811661164d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610999565b61165681611d1c565b50565b5f546001600160a01b031633146116825760405162461bcd60e51b815260040161099990612b85565b60168490556018839055601782905560198190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de15905f90a150505050565b6001600160a01b0383166117265760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610999565b6001600160a01b0382166117875760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610999565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661184b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610999565b6001600160a01b0382166118ad5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610999565b5f811161190e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610999565b6119178361117c565b8111156119805760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610999565b6001600160a01b0383165f9081526006602052604090205460ff161580156119c057506001600160a01b0382165f9081526006602052604090205460ff16155b6119fc5760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b6044820152606401610999565b6001600160a01b0383165f9081526004602052604090205460ff16158015611a3c57506001600160a01b0382165f9081526004602052604090205460ff16155b8015611a505750600854610100900460ff16155b15611baa576009546001600160a01b0390811690841603611abd57600e54811115611abd5760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d6178427579416d6f756e7400006044820152606401610999565b6009546001600160a01b0390811690831603611b2557600d54811115611b255760405162461bcd60e51b815260206004820152601f60248201527f596f752061726520657863656564696e67206d617853656c6c416d6f756e74006044820152606401610999565b6009546001600160a01b03838116911614611baa57600f5481611b478461117c565b611b519190612d45565b1115611baa5760405162461bcd60e51b815260206004820152602260248201527f596f752061726520657863656564696e67206d617857616c6c657442616c616e604482015261636560f01b6064820152608401610999565b5f600c54611bb73061117c565b6008549111159150610100900460ff16158015611bd6575060085460ff165b8015611bdf5750805b8015611bf957506009546001600160a01b03858116911614155b8015611c1d57506001600160a01b0384165f9081526004602052604090205460ff16155b8015611c4157506001600160a01b0383165f9081526004602052604090205460ff16155b15611c5157611c51600c54611d6b565b6001600160a01b0384165f908152600460205260409020546110299085908590859060ff1680611c9857506001600160a01b0387165f9081526004602052604090205460ff165b6009549015906001600160a01b03898116911614611ef4565b5f805f611cbc6121af565b9092509050611ccb8183612ce6565b9250505090565b611cda612843565b611ce5848484612329565b9050611cfa818585611cf5611cb1565b612498565b60a0870152608086015260608501526040840152602083015281529392505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6008805461ff0019166101001790556017546018546019545f9291611d8f91612d45565b611d999190612d45565b611da4906002612cbc565b90505f8160166003015484611db99190612cbc565b611dc39190612ce6565b90505f611dd08285612cd3565b905047611ddc82612548565b5f611de78247612cd3565b6019549091505f90611df99087612cd3565b611e039083612ce6565b6019549091505f90611e159083612cbc565b90508015611e2757611e2786826126bd565b6018545f90611e37846002612cbc565b611e419190612cbc565b90508015611e82576010546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611e80573d5f803e3d5ffd5b505b6017545f90611e92856002612cbc565b611e9c9190612cbc565b90508015611edd576011546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611edb573d5f803e3d5ffd5b505b50506008805461ff00191690555050505050505050565b5f611f00848484611cd2565b6001600160a01b0387165f9081526005602052604090205490915060ff1615611f5f576001600160a01b0386165f90815260026020526040902054611f46908590612cd3565b6001600160a01b0387165f908152600260205260409020555b6001600160a01b0385165f9081526005602052604090205460ff1615611fbf5760c08101516001600160a01b0386165f90815260026020526040902054611fa69190612d45565b6001600160a01b0386165f908152600260205260409020555b80516001600160a01b0387165f90815260016020526040902054611fe39190612cd3565b6001600160a01b038088165f90815260016020908152604080832094909455840151918816815291909120546120199190612d45565b6001600160a01b0386165f90815260016020526040908190209190915581015115158061204957505f8160e00151115b156120605761206081604001518260e00151612776565b5f8160a00151118061207657505f816101400151115b1561208e5761208e8160a001518261014001516127a9565b5f816060015111806120a457505f816101000151115b156120bc576120bc816060015182610100015161281b565b5f816080015111806120d257505f816101200151115b156120ea576120ea816080015182610120015161282f565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c0015160405161213391815260200190565b60405180910390a3306001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83610100015184610120015185610140015161218c9190612d45565b6121969190612d45565b60405190815260200160405180910390a3505050505050565b600b54600a545f918291825b6007548110156122f8578260015f600784815481106121dc576121dc612d05565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054118061224457508160025f6007848154811061221e5761221e612d05565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054115b1561225a57600b54600a54945094505050509091565b60015f6007838154811061227057612270612d05565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205461229e9084612cd3565b925060025f600783815481106122b6576122b6612d05565b5f9182526020808320909101546001600160a01b031683528201929092526040019020546122e49083612cd3565b9150806122f081612d2d565b9150506121bb565b50600a54600b546123099190612ce6565b82101561232057600b54600a549350935050509091565b90939092509050565b612331612843565b826123425760c08101849052610ab3565b61236960405180608001604052805f81526020015f81526020015f81526020015f81525090565b821561239e575060408051608081018252601654815260175460208201526018549181019190915260195460608201526123c9565b5060408051608081018252601254815260135460208201526014549181019190915260155460608201525b80516064906123d89087612cbc565b6123e29190612ce6565b60e083015260408101516064906123f99087612cbc565b6124039190612ce6565b610100830152606081015160649061241b9087612cbc565b6124259190612ce6565b610140830152602081015160649061243d9087612cbc565b6124479190612ce6565b610120830181905261014083015161010084015160e085015191929161246d9089612cd3565b6124779190612cd3565b6124819190612cd3565b61248b9190612cd3565b60c0830152509392505050565b5f80808080806124a8878a612cbc565b9550876124c257508493505f92508291508190508061253b565b868a60e001516124d29190612cbc565b9350868a61010001516124e59190612cbc565b9250868a61012001516124f89190612cbc565b9150868a610140015161250b9190612cbc565b905080828461251a878a612cd3565b6125249190612cd3565b61252e9190612cd3565b6125389190612cd3565b94505b9499939850945094509450565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061257b5761257b612d05565b60200260200101906001600160a01b031690816001600160a01b031681525050600860029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125ec573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126109190612d73565b8160018151811061262357612623612d05565b6001600160a01b03928316602091820292909201015260085461264f91309162010000900416846116c4565b60085460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac9479061268c9085905f90869030904290600401612d8e565b5f604051808303815f87803b1580156126a3575f80fd5b505af11580156126b5573d5f803e3d5ffd5b505050505050565b6008546126db9030906201000090046001600160a01b0316846116c4565b60085460405163f305d71960e01b8152306004820152602481018490525f604482018190526064820181905260848201524260a4820152620100009091046001600160a01b03169063f305d71990839060c40160606040518083038185885af115801561274a573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061276f9190612dfd565b5050505050565b81600b5f8282546127879190612cd3565b9091555050601a80548291905f906127a0908490612d45565b90915550505050565b80601a6003015f8282546127bd9190612d45565b9091555050305f9081526005602052604090205460ff16156127fd57305f90815260026020526040812080548392906127f7908490612d45565b90915550505b305f90815260016020526040812080548492906127a0908490612d45565b80601a6001015f8282546127bd9190612d45565b80601a6002015f8282546127bd9190612d45565b6040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f6020808352835180828501525f5b818110156128bd578581018301518582016040015282016128a1565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611656575f80fd5b80356128fc816128dd565b919050565b5f8060408385031215612912575f80fd5b823561291d816128dd565b946020939093013593505050565b5f6020828403121561293b575f80fd5b8135610ab3816128dd565b5f60208284031215612956575f80fd5b5035919050565b5f805f6060848603121561296f575f80fd5b833561297a816128dd565b9250602084013561298a816128dd565b929592945050506040919091013590565b8015158114611656575f80fd5b80356128fc8161299b565b5f805f606084860312156129c5575f80fd5b8335925060208401356129d78161299b565b915060408401356129e78161299b565b809150509250925092565b5f8060408385031215612a03575f80fd5b8235612a0e816128dd565b91506020830135612a1e816128dd565b809150509250929050565b5f60208284031215612a39575f80fd5b8135610ab38161299b565b5f805f8060808587031215612a57575f80fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215612a98575f80fd5b823567ffffffffffffffff80821115612aaf575f80fd5b818501915085601f830112612ac2575f80fd5b8135602082821115612ad657612ad6612a73565b8160051b604051601f19603f83011681018181108682111715612afb57612afb612a73565b604052928352818301935084810182019289841115612b18575f80fd5b948201945b83861015612b3d57612b2e866128f1565b85529482019493820193612b1d565b9650612b4c90508782016129a8565b9450505050509250929050565b5f8060408385031215612b6a575f80fd5b8235612b75816128dd565b91506020830135612a1e8161299b565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115612c0857815f1904821115612bee57612bee612bba565b80851615612bfb57918102915b93841c9390800290612bd3565b509250929050565b5f82612c1e5750600161096a565b81612c2a57505f61096a565b8160018114612c405760028114612c4a57612c66565b600191505061096a565b60ff841115612c5b57612c5b612bba565b50506001821b61096a565b5060208310610133831016604e8410600b8410161715612c89575081810a61096a565b612c938383612bce565b805f1904821115612ca657612ca6612bba565b029392505050565b5f610ab360ff841683612c10565b808202811582820484141761096a5761096a612bba565b8181038181111561096a5761096a612bba565b5f82612d0057634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52603160045260245ffd5b5f60018201612d3e57612d3e612bba565b5060010190565b8082018082111561096a5761096a612bba565b5f60208284031215612d68575f80fd5b8151610ab38161299b565b5f60208284031215612d83575f80fd5b8151610ab3816128dd565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015612ddc5784516001600160a01b031683529383019391830191600101612db7565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612e0f575f80fd5b835192506020840151915060408401519050925092509256fea2646970667358221220f5e3cb763a23d4dc1936d7652314972504bc07560b1a4b70c010ee1b96ab8b3064736f6c63430008140033

Deployed Bytecode Sourcemap

3021:18463:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5798:83;;;;;;;;;;-1:-1:-1;5868:5:0;;;;;;;;;;;;-1:-1:-1;;;5868:5:0;;;;5798:83;;;;;;;:::i;:::-;;;;;;;;6706:161;;;;;;;;;;-1:-1:-1;6706:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;6706:161:0;1162:187:1;6071:95:0;;;;;;;;;;-1:-1:-1;6151:7:0;;6071:95;;;1500:25:1;;;1488:2;1473:18;6071:95:0;1354:177:1;19340:109:0;;;;;;;;;;-1:-1:-1;19340:109:0;;;;;:::i;:::-;;:::i;:::-;;19461:126;;;;;;;;;;-1:-1:-1;19461:126:0;;;;;:::i;:::-;;:::i;6875:422::-;;;;;;;;;;-1:-1:-1;6875:422:0;;;;;:::i;:::-;;:::i;19595:114::-;;;;;;;;;;-1:-1:-1;19595:114:0;;;;;:::i;:::-;;:::i;8535:248::-;;;;;;;;;;-1:-1:-1;8535:248:0;;;;;:::i;:::-;;:::i;5980:83::-;;;;;;;;;;-1:-1:-1;5980:83:0;;3608:2;2576:36:1;;2564:2;2549:18;5980:83:0;2434:184:1;9132:475:0;;;;;;;;;;-1:-1:-1;9132:475:0;;;;;:::i;:::-;;:::i;7305:215::-;;;;;;;;;;-1:-1:-1;7305:215:0;;;;;:::i;:::-;;:::i;4162:70::-;;;;;;;;;;-1:-1:-1;4162:70:0;;;;-1:-1:-1;;;;;4162:70:0;;;;;;-1:-1:-1;;;;;2787:32:1;;;2769:51;;2757:2;2742:18;4162:70:0;2623:203:1;20654:98:0;;;;;;;;;;-1:-1:-1;20654:98:0;;;;;:::i;:::-;-1:-1:-1;;;;;20729:15:0;20706:4;20729:15;;;:6;:15;;;;;;;;;20654:98;8041:486;;;;;;;;;;-1:-1:-1;8041:486:0;;;;;:::i;:::-;;:::i;20488:154::-;;;;;;;;;;-1:-1:-1;20488:154:0;;;;;:::i;:::-;;:::i;9617:111::-;;;;;;;;;;-1:-1:-1;9617:111:0;;;;;:::i;:::-;;:::i;20830:196::-;;;;;;;;;;-1:-1:-1;20830:196:0;;;;;:::i;:::-;;:::i;21204:235::-;;;;;;;;;;-1:-1:-1;21204:235:0;;;;;:::i;:::-;;:::i;8791:333::-;;;;;;;;;;-1:-1:-1;8791:333:0;;;;;:::i;:::-;;:::i;9856:123::-;;;;;;;;;;-1:-1:-1;9856:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;9944:27:0;9920:4;9944:27;;;:18;:27;;;;;;;;;9856:123;3871:61;;;;;;;;;;;;;;;;3450:30;;;;;;;;;;-1:-1:-1;3450:30:0;;;;;;;;6174:198;;;;;;;;;;-1:-1:-1;6174:198:0;;;;;:::i;:::-;;:::i;1798:94::-;;;;;;;;;;;;;:::i;4465:35::-;;;;;;;;;;-1:-1:-1;4465:35:0;;;;;;;;;;;;;;;;;;;4160:25:1;;;4216:2;4201:18;;4194:34;;;;4244:18;;;4237:34;4302:2;4287:18;;4280:34;4147:3;4132:19;4465:35:0;3929:391:1;3939:60:0;;;;;;;;;;;;;;;;7913:120;;;;;;;;;;-1:-1:-1;7913:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;8005:20:0;7981:4;8005:20;;;:11;:20;;;;;;;;;7913:120;1575:87;;;;;;;;;;-1:-1:-1;1621:7:0;1648:6;-1:-1:-1;;;;;1648:6:0;1575:87;;19987:101;;;;;;;;;;-1:-1:-1;19987:101:0;;;;;:::i;:::-;;:::i;5887:87::-;;;;;;;;;;-1:-1:-1;5959:7:0;;;;;;;;;;;;-1:-1:-1;;;5959:7:0;;;;5887:87;;4693:36;;;;;;;;;;-1:-1:-1;4693:36:0;;;;;;;;;;;;;;;9987:272;;;;;;;;;;-1:-1:-1;9987:272:0;;;;;:::i;:::-;;:::i;7528:377::-;;;;;;;;;;-1:-1:-1;7528:377:0;;;;;:::i;:::-;;:::i;4079:76::-;;;;;;;;;;-1:-1:-1;4079:76:0;;;;-1:-1:-1;;;;;4079:76:0;;;3545:19;;;;;;;;;;-1:-1:-1;3545:19:0;;;;-1:-1:-1;;;;;3545:19:0;;;6380:167;;;;;;;;;;-1:-1:-1;6380:167:0;;;;;:::i;:::-;;:::i;19213:115::-;;;;;;;;;;-1:-1:-1;19213:115:0;;;;;:::i;:::-;;:::i;20282:194::-;;;;;;;;;;-1:-1:-1;20282:194:0;;;;;:::i;:::-;;:::i;4006:64::-;;;;;;;;;;;;;;;;19721:116;;;;;;;;;;-1:-1:-1;19721:116:0;;;;;:::i;:::-;;:::i;19849:130::-;;;;;;;;;;-1:-1:-1;19849:130:0;;;;;:::i;:::-;;:::i;6555:143::-;;;;;;;;;;-1:-1:-1;6555:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6663:18:0;;;6636:7;6663:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6555:143;20096:174;;;;;;;;;;-1:-1:-1;20096:174:0;;;;;:::i;:::-;;:::i;3795:63::-;;;;;;;;;;;;;;;;9736:110;;;;;;;;;;-1:-1:-1;9736:110:0;;;;;:::i;:::-;;:::i;1900:192::-;;;;;;;;;;-1:-1:-1;1900:192:0;;;;;:::i;:::-;;:::i;10271:292::-;;;;;;;;;;-1:-1:-1;10271:292:0;;;;;:::i;:::-;;:::i;4507:39::-;;;;;;;;;;-1:-1:-1;4507:39:0;;;;;;;;;;;;;;;3517:21;;;;;;;;;;-1:-1:-1;3517:21:0;;;;;;;-1:-1:-1;;;;;3517:21:0;;;6706:161;6781:4;6798:39;1076:10;6821:7;6830:6;6798:8;:39::i;:::-;-1:-1:-1;6855:4:0;6706:161;;;;;:::o;19340:109::-;1621:7;1648:6;-1:-1:-1;;;;;1648:6:0;1076:10;1710:23;1702:68;;;;-1:-1:-1;;;1702:68:0;;;;;;;:::i;:::-;;;;;;;;;19416:10:::1;:25:::0;;-1:-1:-1;;;;;;19416:25:0::1;-1:-1:-1::0;;;;;19416:25:0;;;::::1;::::0;;;::::1;::::0;;19340:109::o;19461:126::-;1621:7;1648:6;-1:-1:-1;;;;;1648:6:0;1076:10;1710:23;1702:68;;;;-1:-1:-1;;;1702:68:0;;;;;;;:::i;:::-;19566:13:::1;3608:2;19566;:13;:::i;:::-;19557:22;::::0;:6;:22:::1;:::i;:::-;19538:16;:41:::0;-1:-1:-1;19461:126:0:o;6875:422::-;6981:4;6998:36;7008:6;7016:9;7027:6;6998:9;:36::i;:::-;-1:-1:-1;;;;;7074:19:0;;7047:24;7074:19;;;:11;:19;;;;;;;;1076:10;7074:33;;;;;;;;7126:26;;;;7118:79;;;;-1:-1:-1;;;7118:79:0;;9150:2:1;7118:79:0;;;9132:21:1;9189:2;9169:18;;;9162:30;9228:34;9208:18;;;9201:62;-1:-1:-1;;;9279:18:1;;;9272:38;9327:19;;7118:79:0;8948:404:1;7118:79:0;7208:57;7217:6;1076:10;7239:25;7258:6;7239:16;:25;:::i;:::-;7208:8;:57::i;:::-;7285:4;7278:11;;;6875:422;;;;;;:::o;19595:114::-;1621:7;1648:6;-1:-1:-1;;;;;1648:6:0;1076:10;1710:23;1702:68;;;;-1:-1:-1;;;1702:68:0;;;;;;;:::i;:::-;19688:13:::1;3608:2;19688;:13;:::i;:::-;19679:22;::::0;:6;:22:::1;:::i;:::-;19664:12;:37:::0;-1:-1:-1;19595:114:0:o;8535:248::-;8601:7;8640;;8629;:18;;8621:73;;;;-1:-1:-1;;;8621:73:0;;9692:2:1;8621:73:0;;;9674:21:1;9731:2;9711:18;;;9704:30;9770:34;9750:18;;;9743:62;-1:-1:-1;;;9821:18:1;;;9814:40;9871:19;;8621:73:0;9490:406:1;8621:73:0;8705:19;8728:10;:8;:10::i;:::-;8705:33;-1:-1:-1;8756:19:0;8705:33;8756:7;:19;:::i;9132:475::-;1621:7;1648:6;-1:-1:-1;;;;;1648:6:0;1076:10;1710:23;1702:68;;;;-1:-1:-1;;;1702:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9214:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;9206:56;;;::::0;-1:-1:-1;;;9206:56:0;;10325:2:1;9206:56:0::1;::::0;::::1;10307:21:1::0;10364:2;10344:18;;;10337:30;10403:25;10383:18;;;10376:53;10446:18;;9206:56:0::1;10123:347:1::0;9206:56:0::1;9278:9;9273:327;9297:9;:16:::0;9293:20;::::1;9273:327;;;9355:7;-1:-1:-1::0;;;;;9339:23:0::1;:9;9349:1;9339:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;9339:12:0::1;:23:::0;9335:254:::1;;9398:9;9408:16:::0;;:20:::1;::::0;9427:1:::1;::::0;9408:20:::1;:::i;:::-;9398:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;9383:9:::1;:12:::0;;-1:-1:-1;;;;;9398:31:0;;::::1;::::0;9393:1;;9383:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;9383:46:0::1;-1:-1:-1::0;;;;;9383:46:0;;::::1;;::::0;;9448:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;9487:11:::1;:20:::0;;;;:28;;-1:-1:-1;;9487:28:0::1;::::0;;9534:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;9534:15:0;;;;;-1:-1:-1;;;;;;9534:15:0::1;::::0;;;;;9273:327:::1;9132:475:::0;:::o;9335:254::-:1;9315:3:::0;::::1;::::0;::::1;:::i;:::-;;;;9273:327;;;;9132:475:::0;:::o;7305:215::-;1076:10;7393:4;7442:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7442:34:0;;;;;;;;;;7393:4;;7410:80;;7433:7;;7442:47;;7479:10;;7442:47;:::i;8041:486::-;8144:7;8183;;8172;:18;;8164:62;;;;-1:-1:-1;;;8164:62:0;;11211:2:1;8164:62:0;;;11193:21:1;11250:2;11230:18;;;11223:30;11289:33;11269:18;;;11262:61;11340:18;;8164:62:0;11009:355:1;8164:62:0;8242:17;8237:283;;8276:28;8307:34;8318:7;8327:5;8334:6;8307:10;:34::i;:::-;8363:9;;-1:-1:-1;8356:16:0;;-1:-1:-1;8356:16:0;8237:283;8405:28;8436:33;8447:7;8456:4;8462:6;8436:10;:33::i;:::-;8491:17;;;;-1:-1:-1;8484:24:0;;-1:-1:-1;8484:24:0;20488:154;1621:7;1648:6;-1:-1:-1;;;;;1648:6:0;1076:10;1710:23;1702:68;;;;-1:-1:-1;;;1702:68:0;;;;;;;:::i;:::-;20582:6:::1;:27:::0;;-1:-1:-1;;;;;;20582:27:0::1;::::0;-1:-1:-1;;;;;20582:27:0;;::::1;;;::::0;;20620:4:::1;:14:::0;;-1:-1:-1;;;;;;20620:14:0::1;::::0;;;::::1;;::::0;;20488:154::o;9617:111::-;1621:7;1648:6;-1:-1:-1;;;;;1648:6:0;1076:10;1710:23;1702:68;;;;-1:-1:-1;;;1702:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9686:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;9686:34:0::1;9716:4;9686:34;::::0;;9617:111::o;20830:196::-;1621:7;1648:6;-1:-1:-1;;;;;1648:6:0;1076:10;1710:23;1702:68;;;;-1:-1:-1;;;1702:68:0;;;;;;;:::i;:::-;20930:9:::1;20905:21;:34;;20897:71;;;::::0;-1:-1:-1;;;20897:71:0;;11571:2:1;20897:71:0::1;::::0;::::1;11553:21:1::0;11610:2;11590:18;;;11583:30;11649:26;11629:18;;;11622:54;11693:18;;20897:71:0::1;11369:348:1::0;20897:71:0::1;20979:39;::::0;20987:10:::1;::::0;20979:39;::::1;;;::::0;21008:9;;20979:39:::1;::::0;;;21008:9;20987:10;20979:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;21204:235:::0;1621:7;1648:6;-1:-1:-1;;;;;1648:6:0;1076:10;1710:23;1702:68;;;;-1:-1:-1;;;1702:68:0;;;;;;;:::i;:::-;21339:4:::1;-1:-1:-1::0;;;;;21317:27:0;::::1;::::0;21309:70:::1;;;::::0;-1:-1:-1;;;21309:70:0;;11924:2:1;21309:70:0::1;::::0;::::1;11906:21:1::0;11963:2;11943:18;;;11936:30;12002:32;11982:18;;;11975:60;12052:18;;21309:70:0::1;11722:354:1::0;21309:70:0::1;21390:41;::::0;-1:-1:-1;;;21390:41:0;;-1:-1:-1;;;;;12273:32:1;;;21390:41:0::1;::::0;::::1;12255:51:1::0;12322:18;;;12315:34;;;21390:27:0;::::1;::::0;::::1;::::0;12228:18:1;;21390:41:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21204:235:::0;;;:::o;8791:333::-;1621:7;1648:6;-1:-1:-1;;;;;1648:6:0;1076:10;1710:23;1702:68;;;;-1:-1:-1;;;1702:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8874:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;8873:21;8865:61;;;::::0;-1:-1:-1;;;8865:61:0;;12812:2:1;8865:61:0::1;::::0;::::1;12794:21:1::0;12851:2;12831:18;;;12824:30;12890:29;12870:18;;;12863:57;12937:18;;8865:61:0::1;12610:351:1::0;8865:61:0::1;-1:-1:-1::0;;;;;8940:16:0;::::1;8959:1;8940:16:::0;;;:7:::1;:16;::::0;;;;;:20;8937:108:::1;;-1:-1:-1::0;;;;;9016:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;8996:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;8977:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;8937:108:::1;-1:-1:-1::0;;;;;9055:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;9055:27:0::1;9078:4;9055:27:::0;;::::1;::::0;;;9093:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;9093:23:0::1;::::0;;::::1;::::0;;8791:333::o;6174:198::-;-1:-1:-1;;;;;6264:20:0;;6240:7;6264:20;;;:11;:20;;;;;;;;6260:49;;;-1:-1:-1;;;;;;6293:16:0;;;;;:7;:16;;;;;;;6174:198::o;6260:49::-;-1:-1:-1;;;;;6347:16:0;;;;;;:7;:16;;;;;;6327:37;;:19;:37::i;1798:94::-;1621:7;1648:6;-1:-1:-1;;;;;1648:6:0;1076:10;1710:23;1702:68;;;;-1:-1:-1;;;1702:68:0;;;;;;;:::i;:::-;1863:21:::1;1881:1;1863:9;:21::i;:::-;1798:94::o:0;19987:101::-;1621:7;1648:6;-1:-1:-1;;;;;1648:6:0;1076:10;1710:23;1702:68;;;;-1:-1:-1;;;1702:68:0;;;;;;;:::i;:::-;20058:11:::1;:22:::0;;-1:-1:-1;;20058:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19987:101::o;9987:272::-;1621:7;1648:6;-1:-1:-1;;;;;1648:6:0;1076:10;1710:23;1702:68;;;;-1:-1:-1;;;1702:68:0;;;;;;;:::i;:::-;10101:5:::1;:16:::0;;;10128:15;:28;;;10167:9;:16;;;10194:15;:28;;;10238:13:::1;::::0;::::1;::::0;10101:9:::1;::::0;10238:13:::1;9987:272:::0;;;;:::o;7528:377::-;1076:10;7621:4;7665:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7665:34:0;;;;;;;;;;7718:35;;;;7710:85;;;;-1:-1:-1;;;7710:85:0;;13168:2:1;7710:85:0;;;13150:21:1;13207:2;13187:18;;;13180:30;13246:34;13226:18;;;13219:62;-1:-1:-1;;;13297:18:1;;;13290:35;13342:19;;7710:85:0;12966:401:1;7710:85:0;7806:67;1076:10;7829:7;7838:34;7857:15;7838:16;:34;:::i;7806:67::-;-1:-1:-1;7893:4:0;;7528:377;-1:-1:-1;;;7528:377:0:o;6380:167::-;6458:4;6475:42;1076:10;6499:9;6510:6;6475:9;:42::i;19213:115::-;1621:7;1648:6;-1:-1:-1;;;;;1648:6:0;1076:10;1710:23;1702:68;;;;-1:-1:-1;;;1702:68:0;;;;;;;:::i;:::-;19292:16:::1;:28:::0;;-1:-1:-1;;;;;;19292:28:0::1;-1:-1:-1::0;;;;;19292:28:0;;;::::1;::::0;;;::::1;::::0;;19213:115::o;20282:194::-;1621:7;1648:6;-1:-1:-1;;;;;1648:6:0;1076:10;1710:23;1702:68;;;;-1:-1:-1;;;1702:68:0;;;;;;;:::i;:::-;20375:9:::1;20371:98;20394:8;:15;20390:1;:19;20371:98;;;20452:5;20430:6;:19;20437:8;20446:1;20437:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;20430:19:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;20430:19:0;:27;;-1:-1:-1;;20430:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20411:3;::::1;::::0;::::1;:::i;:::-;;;;20371:98;;;;20282:194:::0;;:::o;19721:116::-;1621:7;1648:6;-1:-1:-1;;;;;1648:6:0;1076:10;1710:23;1702:68;;;;-1:-1:-1;;;1702:68:0;;;;;;;:::i;:::-;19816:13:::1;3608:2;19816;:13;:::i;:::-;19807:22;::::0;:6;:22:::1;:::i;:::-;19791:13;:38:::0;-1:-1:-1;19721:116:0:o;19849:130::-;1621:7;1648:6;-1:-1:-1;;;;;1648:6:0;1076:10;1710:23;1702:68;;;;-1:-1:-1;;;1702:68:0;;;;;;;:::i;:::-;19958:13:::1;3608:2;19958;:13;:::i;:::-;19949:22;::::0;:6;:22:::1;:::i;:::-;19928:18;:43:::0;-1:-1:-1;19849:130:0:o;20096:174::-;1621:7;1648:6;-1:-1:-1;;;;;1648:6:0;1076:10;1710:23;1702:68;;;;-1:-1:-1;;;1702:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20182:15:0;::::1;;::::0;;;:6:::1;:15;::::0;;;;;:24;::::1;;:15;::::0;;::::1;:24;;::::0;20174:54:::1;;;::::0;-1:-1:-1;;;20174:54:0;;13574:2:1;20174:54:0::1;::::0;::::1;13556:21:1::0;13613:2;13593:18;;;13586:30;-1:-1:-1;;;13632:18:1;;;13625:47;13689:18;;20174:54:0::1;13372:341:1::0;20174:54:0::1;-1:-1:-1::0;;;;;20239:15:0;;;::::1;;::::0;;;:6:::1;:15;::::0;;;;:23;;-1:-1:-1;;20239:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20096:174::o;9736:110::-;1621:7;1648:6;-1:-1:-1;;;;;1648:6:0;1076:10;1710:23;1702:68;;;;-1:-1:-1;;;1702:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9803:27:0::1;9833:5;9803:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;9803:35:0::1;::::0;;9736:110::o;1900:192::-;1621:7;1648:6;-1:-1:-1;;;;;1648:6:0;1076:10;1710:23;1702:68;;;;-1:-1:-1;;;1702:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1989:22:0;::::1;1981:73;;;::::0;-1:-1:-1;;;1981:73:0;;13920:2:1;1981:73:0::1;::::0;::::1;13902:21:1::0;13959:2;13939:18;;;13932:30;13998:34;13978:18;;;13971:62;-1:-1:-1;;;14049:18:1;;;14042:36;14095:19;;1981:73:0::1;13718:402:1::0;1981:73:0::1;2065:19;2075:8;2065:9;:19::i;:::-;1900:192:::0;:::o;10271:292::-;1621:7;1648:6;-1:-1:-1;;;;;1648:6:0;1076:10;1710:23;1702:68;;;;-1:-1:-1;;;1702:68:0;;;;;;;:::i;:::-;10389:9:::1;:20:::0;;;10420:19;:32;;;10463:13;:20;;;10494:19;:32;;;10542:13:::1;::::0;::::1;::::0;10389::::1;::::0;10542::::1;10271:292:::0;;;;:::o;13977:335::-;-1:-1:-1;;;;;14070:19:0;;14062:68;;;;-1:-1:-1;;;14062:68:0;;14327:2:1;14062:68:0;;;14309:21:1;14366:2;14346:18;;;14339:30;14405:34;14385:18;;;14378:62;-1:-1:-1;;;14456:18:1;;;14449:34;14500:19;;14062:68:0;14125:400:1;14062:68:0;-1:-1:-1;;;;;14149:21:0;;14141:68;;;;-1:-1:-1;;;14141:68:0;;14732:2:1;14141:68:0;;;14714:21:1;14771:2;14751:18;;;14744:30;14810:34;14790:18;;;14783:62;-1:-1:-1;;;14861:18:1;;;14854:32;14903:19;;14141:68:0;14530:398:1;14141:68:0;-1:-1:-1;;;;;14220:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14272:32;;1500:25:1;;;14272:32:0;;1473:18:1;14272:32:0;;;;;;;13977:335;;;:::o;14320:1365::-;-1:-1:-1;;;;;14408:18:0;;14400:68;;;;-1:-1:-1;;;14400:68:0;;15135:2:1;14400:68:0;;;15117:21:1;15174:2;15154:18;;;15147:30;15213:34;15193:18;;;15186:62;-1:-1:-1;;;15264:18:1;;;15257:35;15309:19;;14400:68:0;14933:401:1;14400:68:0;-1:-1:-1;;;;;14487:16:0;;14479:64;;;;-1:-1:-1;;;14479:64:0;;15541:2:1;14479:64:0;;;15523:21:1;15580:2;15560:18;;;15553:30;15619:34;15599:18;;;15592:62;-1:-1:-1;;;15670:18:1;;;15663:33;15713:19;;14479:64:0;15339:399:1;14479:64:0;14571:1;14562:6;:10;14554:64;;;;-1:-1:-1;;;14554:64:0;;15945:2:1;14554:64:0;;;15927:21:1;15984:2;15964:18;;;15957:30;16023:34;16003:18;;;15996:62;-1:-1:-1;;;16074:18:1;;;16067:39;16123:19;;14554:64:0;15743:405:1;14554:64:0;14647:15;14657:4;14647:9;:15::i;:::-;14637:6;:25;;14629:86;;;;-1:-1:-1;;;14629:86:0;;16355:2:1;14629:86:0;;;16337:21:1;16394:2;16374:18;;;16367:30;16433:34;16413:18;;;16406:62;-1:-1:-1;;;16484:18:1;;;16477:47;16541:19;;14629:86:0;16153:413:1;14629:86:0;-1:-1:-1;;;;;14735:12:0;;;;;;:6;:12;;;;;;;;14734:13;:28;;;;-1:-1:-1;;;;;;14752:10:0;;;;;;:6;:10;;;;;;;;14751:11;14734:28;14726:54;;;;-1:-1:-1;;;14726:54:0;;16773:2:1;14726:54:0;;;16755:21:1;16812:2;16792:18;;;16785:30;-1:-1:-1;;;16831:18:1;;;16824:43;16884:18;;14726:54:0;16571:337:1;14726:54:0;-1:-1:-1;;;;;14813:24:0;;;;;;:18;:24;;;;;;;;14812:25;:52;;;;-1:-1:-1;;;;;;14842:22:0;;;;;;:18;:22;;;;;;;;14841:23;14812:52;:65;;;;-1:-1:-1;14869:8:0;;;;;;;14868:9;14812:65;14809:493;;;14904:4;;-1:-1:-1;;;;;14904:4:0;;;14896:12;;;;14893:116;;14946:12;;14936:6;:22;;14928:65;;;;-1:-1:-1;;;14928:65:0;;17115:2:1;14928:65:0;;;17097:21:1;17154:2;17134:18;;;17127:30;17193:32;17173:18;;;17166:60;17243:18;;14928:65:0;16913:354:1;14928:65:0;15032:4;;-1:-1:-1;;;;;15032:4:0;;;15026:10;;;;15023:116;;15074:13;;15064:6;:23;;15056:67;;;;-1:-1:-1;;;15056:67:0;;17474:2:1;15056:67:0;;;17456:21:1;17513:2;17493:18;;;17486:30;17552:33;17532:18;;;17525:61;17603:18;;15056:67:0;17272:355:1;15056:67:0;15162:4;;-1:-1:-1;;;;;15156:10:0;;;15162:4;;15156:10;15153:138;;15220:16;;15210:6;15194:13;15204:2;15194:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;15186:89;;;;-1:-1:-1;;;15186:89:0;;17834:2:1;15186:89:0;;;17816:21:1;17873:2;17853:18;;;17846:30;17912:34;17892:18;;;17885:62;-1:-1:-1;;;17963:18:1;;;17956:32;18005:19;;15186:89:0;17632:398:1;15186:89:0;15322:12;15365:18;;15337:24;15355:4;15337:9;:24::i;:::-;15398:8;;-1:-1:-1;;15337:46:0;;-1:-1:-1;15398:8:0;;;;;15397:9;:24;;;;-1:-1:-1;15410:11:0;;;;15397:24;:35;;;;;15425:7;15397:35;:51;;;;-1:-1:-1;15444:4:0;;-1:-1:-1;;;;;15436:12:0;;;15444:4;;15436:12;;15397:51;:80;;;;-1:-1:-1;;;;;;15453:24:0;;;;;;:18;:24;;;;;;;;15452:25;15397:80;:107;;;;-1:-1:-1;;;;;;15482:22:0;;;;;;:18;:22;;;;;;;;15481:23;15397:107;15394:172;;;15520:34;15535:18;;15520:14;:34::i;:::-;-1:-1:-1;;;;;15613:24:0;;;;;;:18;:24;;;;;;15578:99;;15593:4;;15599:2;;15603:6;;15613:24;;;:50;;-1:-1:-1;;;;;;15641:22:0;;;;;;:18;:22;;;;;;;;15613:50;15672:4;;15611:53;;;-1:-1:-1;;;;;15666:10:0;;;15672:4;;15666:10;15578:14;:99::i;13263:158::-;13304:7;13325:15;13342;13361:19;:17;:19::i;:::-;13324:56;;-1:-1:-1;13324:56:0;-1:-1:-1;13398:15:0;13324:56;;13398:15;:::i;:::-;13391:22;;;;13263:158;:::o;11543:407::-;11629:36;;:::i;:::-;11690:37;11702:7;11711;11720:6;11690:11;:37::i;:::-;11678:49;;11863:52;11875:9;11886:7;11895;11904:10;:8;:10::i;:::-;11863:11;:52::i;:::-;11839:20;;;11738:177;11823:14;;;11738:177;11801:20;;;11738:177;11785:14;;;11738:177;11758:25;;;11738:177;;;11543:407;;;;;:::o;2100:173::-;2156:16;2175:6;;-1:-1:-1;;;;;2192:17:0;;;-1:-1:-1;;;;;;2192:17:0;;;;;;2225:40;;2175:6;;;;;;;2225:40;;2156:16;2225:40;2145:128;2100:173;:::o;16935:1194::-;5120:8;:15;;-1:-1:-1;;5120:15:0;;;;;17122:13;;17100:19;;17078;;5120:15;;17122:13;17078:41:::1;::::0;::::1;:::i;:::-;:57;;;;:::i;:::-;17077:63;::::0;17139:1:::1;17077:63;:::i;:::-;17055:85;;17151:32;17217:11;17195:9;:19;;;17186:6;:28;;;;:::i;:::-;:42;;;;:::i;:::-;17151:77:::0;-1:-1:-1;17239:14:0::1;17256:33;17151:77:::0;17256:6;:33:::1;:::i;:::-;17239:50:::0;-1:-1:-1;17327:21:0::1;17361:24;17239:50:::0;17361:16:::1;:24::i;:::-;17398:20;17421:38;17445:14:::0;17421:21:::1;:38;:::i;:::-;17521:19:::0;;17398:61;;-1:-1:-1;17470:19:0::1;::::0;17507:33:::1;::::0;:11;:33:::1;:::i;:::-;17491:50;::::0;:12;:50:::1;:::i;:::-;17598:19:::0;;17470:71;;-1:-1:-1;17552:29:0::1;::::0;17584:33:::1;::::0;17470:71;17584:33:::1;:::i;:::-;17552:65:::0;-1:-1:-1;17633:25:0;;17630:158:::1;;17715:61;17728:24;17754:21;17715:12;:61::i;:::-;17841:19:::0;;17800:20:::1;::::0;17823:15:::1;:11:::0;17841:19:::1;17823:15;:::i;:::-;:37;;;;:::i;:::-;17800:60:::0;-1:-1:-1;17874:16:0;;17871:95:::1;;17914:16;::::0;17906:48:::1;::::0;-1:-1:-1;;;;;17914:16:0;;::::1;::::0;17906:48;::::1;;;::::0;17941:12;;17914:16:::1;17906:48:::0;17914:16;17906:48;17941:12;17914:16;17906:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;17871:95;18021:13:::0;;17986:14:::1;::::0;18003:15:::1;:11:::0;18017:1:::1;18003:15;:::i;:::-;:31;;;;:::i;:::-;17986:48:::0;-1:-1:-1;18048:10:0;;18045:77:::1;;18082:10;::::0;18074:36:::1;::::0;-1:-1:-1;;;;;18082:10:0;;::::1;::::0;18074:36;::::1;;;::::0;18103:6;;18082:10:::1;18074:36:::0;18082:10;18074:36;18103:6;18082:10;18074:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;18045:77;-1:-1:-1::0;;5158:8:0;:16;;-1:-1:-1;;5158:16:0;;;-1:-1:-1;;;;;;;;16935:1194:0:o;15768:1159::-;15890:28;15921:36;15932:7;15941;15950:6;15921:10;:36::i;:::-;-1:-1:-1;;;;;15974:19:0;;;;;;:11;:19;;;;;;15890:67;;-1:-1:-1;15974:19:0;;15970:115;;;-1:-1:-1;;;;;16050:15:0;;;;;;:7;:15;;;;;;:23;;16066:7;;16050:23;:::i;:::-;-1:-1:-1;;;;;16032:15:0;;;;;;:7;:15;;;;;:41;15970:115;-1:-1:-1;;;;;16099:22:0;;;;;;:11;:22;;;;;;;;16095:130;;;16196:17;;;;-1:-1:-1;;;;;16177:18:0;;;;;;:7;:18;;;;;;:36;;16196:17;16177:36;:::i;:::-;-1:-1:-1;;;;;16156:18:0;;;;;;:7;:18;;;;;:57;16095:130;16271:9;;-1:-1:-1;;;;;16255:15:0;;16271:9;16255:15;;;:7;:15;;;;;;:25;;16271:9;16255:25;:::i;:::-;-1:-1:-1;;;;;16237:15:0;;;;;;;:7;:15;;;;;;;;:43;;;;16331:17;;;16312:18;;;;;;;;;;:36;;16331:17;16312:36;:::i;:::-;-1:-1:-1;;;;;16291:18:0;;;;;;:7;:18;;;;;;;:57;;;;16372:6;;;:10;;;:24;;;16395:1;16386;:6;;;:10;16372:24;16369:56;;;16398:27;16410:1;:6;;;16418:1;:6;;;16398:11;:27::i;:::-;16454:1;16439;:12;;;:16;:36;;;;16474:1;16459;:12;;;:16;16439:36;16436:109;;;16492:41;16507:1;:12;;;16520:1;:12;;;16492:14;:41::i;:::-;16573:1;16558;:12;;;:16;:36;;;;16593:1;16578;:12;;;:16;16558:36;16555:109;;;16610:42;16625:1;:12;;;16639:1;:12;;;16610:14;:42::i;:::-;16686:1;16677;:6;;;:10;:24;;;;16700:1;16691;:6;;;:10;16677:24;16674:79;;;16717:24;16726:1;:6;;;16734:1;:6;;;16717:8;:24::i;:::-;16795:9;-1:-1:-1;;;;;16778:46:0;16787:6;-1:-1:-1;;;;;16778:46:0;;16806:1;:17;;;16778:46;;;;1500:25:1;;1488:2;1473:18;;1354:177;16778:46:0;;;;;;;;16865:4;-1:-1:-1;;;;;16840:69:0;16849:6;-1:-1:-1;;;;;16840:69:0;;16896:1;:12;;;16887:1;:6;;;16872:1;:12;;;:21;;;;:::i;:::-;:36;;;;:::i;:::-;16840:69;;1500:25:1;;;1488:2;1473:18;16840:69:0;;;;;;;15879:1048;15768:1159;;;;;:::o;13429:540::-;13526:7;;13562;;13479;;;;;13580:279;13604:9;:16;13600:20;;13580:279;;;13670:7;13646;:21;13654:9;13664:1;13654:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13654:12:0;13646:21;;;;;;;;;;;;;:31;;:66;;;13705:7;13681;:21;13689:9;13699:1;13689:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13689:12:0;13681:21;;;;;;;;;;;;;:31;13646:66;13642:97;;;13722:7;;13731;;13714:25;;;;;;;13429:540;;:::o;13642:97::-;13772:7;:21;13780:9;13790:1;13780:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13780:12:0;13772:21;;;;;;;;;;;;;13764:29;;:7;:29;:::i;:::-;13754:39;;13826:7;:21;13834:9;13844:1;13834:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13834:12:0;13826:21;;;;;;;;;;;;;13818:29;;:7;:29;:::i;:::-;13808:39;-1:-1:-1;13622:3:0;;;;:::i;:::-;;;;13580:279;;;;13891:7;;13883;;:15;;;;:::i;:::-;13873:7;:25;13869:56;;;13908:7;;13917;;13900:25;;;;;;13429:540;;:::o;13869:56::-;13944:7;;13953;;-1:-1:-1;13429:540:0;-1:-1:-1;13429:540:0:o;11958:608::-;12045:28;;:::i;:::-;12092:7;12088:86;;12114:17;;;:27;;;12154:8;;12088:86;12184:17;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12184:17:0;12215:6;12212:55;;;-1:-1:-1;12223:16:0;;;;;;;;12230:9;12223:16;;;;;;;;;;;;;;;;;;;;;;;;12212:55;;;-1:-1:-1;12255:12:0;;;;;;;;12262:5;12255:12;;;;;;;;;;;;;;;;;;;;;;;;12212:55;12305:8;;12314:3;;12297:16;;:7;:16;:::i;:::-;:20;;;;:::i;:::-;12288:6;;;:29;12351:14;;;;12366:3;;12343:22;;:7;:22;:::i;:::-;:26;;;;:::i;:::-;12328:12;;;:41;12403:14;;;;12418:3;;12395:22;;:7;:22;:::i;:::-;:26;;;;:::i;:::-;12380:12;;;:41;12449:8;;;;12458:3;;12441:16;;:7;:16;:::i;:::-;:20;;;;:::i;:::-;12432:6;;;:29;;;12527:12;;;;12507;;;;12500:6;;;;12527:12;;12432:29;12492:14;;:7;:14;:::i;:::-;:27;;;;:::i;:::-;:34;;;;:::i;:::-;:47;;;;:::i;:::-;12472:17;;;:67;-1:-1:-1;11958:608:0;;;;;:::o;12574:681::-;12699:15;;;;;;12829:19;12837:11;12829:7;:19;:::i;:::-;12819:29;;12865:7;12861:71;;-1:-1:-1;12894:7:0;;-1:-1:-1;12912:1:0;;-1:-1:-1;12912:1:0;;-1:-1:-1;12912:1:0;;-1:-1:-1;12912:1:0;12887:33;;12861:71;12958:11;12951:1;:6;;;:18;;;;:::i;:::-;12944:25;;13006:11;12993:1;:12;;;:24;;;;:::i;:::-;12980:37;;13042:11;13035:1;:6;;;:18;;;;:::i;:::-;13028:25;;13090:11;13077:1;:12;;;:24;;;;:::i;:::-;13064:37;-1:-1:-1;13064:37:0;13155:4;13144:10;13131:12;13139:4;13131:7;:12;:::i;:::-;:23;;;;:::i;:::-;:28;;;;:::i;:::-;:39;;;;:::i;:::-;13112:58;;12574:681;;;;;;;;;;;;:::o;18643:562::-;18793:16;;;18807:1;18793:16;;;;;;;;18769:21;;18793:16;;;;;;;;;;-1:-1:-1;18793:16:0;18769:40;;18838:4;18820;18825:1;18820:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;18820:23:0;;;-1:-1:-1;;;;;18820:23:0;;;;;18864:6;;;;;;;;;-1:-1:-1;;;;;18864:6:0;-1:-1:-1;;;;;18864:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18854:4;18859:1;18854:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18854:23:0;;;:7;;;;;;;;;:23;18922:6;;18890:53;;18907:4;;18922:6;;;;18931:11;18890:8;:53::i;:::-;18982:6;;:215;;-1:-1:-1;;;18982:215:0;;:6;;;;-1:-1:-1;;;;;18982:6:0;;:57;;:215;;19054:11;;19080:1;;19124:4;;19151;;19171:15;;18982:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18698:507;18643:562;:::o;18137:498::-;18317:6;;18285:53;;18302:4;;18317:6;;;-1:-1:-1;;;;;18317:6:0;18326:11;18285:8;:53::i;:::-;18381:6;;:246;;-1:-1:-1;;;18381:246:0;;18444:4;18381:246;;;19617:34:1;19667:18;;;19660:34;;;18490:1:0;19710:18:1;;;19703:34;;;19753:18;;;19746:34;;;19796:19;;;19789:44;18601:15:0;19849:19:1;;;19842:35;18381:6:0;;;;-1:-1:-1;;;;;18381:6:0;;:22;;18411:9;;19551:19:1;;18381:246:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18137:498;;:::o;10571:123::-;10649:4;10639:7;;:14;;;;;;;:::i;:::-;;;;-1:-1:-1;;10664:11:0;:22;;10682:4;;10664:11;:15;;:22;;10682:4;;10664:22;:::i;:::-;;;;-1:-1:-1;;;;10571:123:0:o;10702:284::-;10809:10;10785:11;:21;;;:34;;;;;;;:::i;:::-;;;;-1:-1:-1;;10855:4:0;10835:26;;;;:11;:26;;;;;;;;10832:101;;;10903:4;10887:22;;;;:7;:22;;;;;:34;;10911:10;;10887:22;:34;;10911:10;;10887:34;:::i;:::-;;;;-1:-1:-1;;10832:101:0;10959:4;10943:22;;;;:7;:22;;;;;:35;;10968:10;;10943:22;:35;;10968:10;;10943:35;:::i;10994:284::-;11101:10;11077:11;:21;;;:34;;;;;;;:::i;11290:245::-;11374:4;11355:11;:15;;;:23;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1536:247::-;1595:6;1648:2;1636:9;1627:7;1623:23;1619:32;1616:52;;;1664:1;1661;1654:12;1616:52;1703:9;1690:23;1722:31;1747:5;1722:31;:::i;1788:180::-;1847:6;1900:2;1888:9;1879:7;1875:23;1871:32;1868:52;;;1916:1;1913;1906:12;1868:52;-1:-1:-1;1939:23:1;;1788:180;-1:-1:-1;1788:180:1:o;1973:456::-;2050:6;2058;2066;2119:2;2107:9;2098:7;2094:23;2090:32;2087:52;;;2135:1;2132;2125:12;2087:52;2174:9;2161:23;2193:31;2218:5;2193:31;:::i;:::-;2243:5;-1:-1:-1;2300:2:1;2285:18;;2272:32;2313:33;2272:32;2313:33;:::i;:::-;1973:456;;2365:7;;-1:-1:-1;;;2419:2:1;2404:18;;;;2391:32;;1973:456::o;2831:118::-;2917:5;2910:13;2903:21;2896:5;2893:32;2883:60;;2939:1;2936;2929:12;2954:128;3019:20;;3048:28;3019:20;3048:28;:::i;3087:444::-;3158:6;3166;3174;3227:2;3215:9;3206:7;3202:23;3198:32;3195:52;;;3243:1;3240;3233:12;3195:52;3279:9;3266:23;3256:33;;3339:2;3328:9;3324:18;3311:32;3352:28;3374:5;3352:28;:::i;:::-;3399:5;-1:-1:-1;3456:2:1;3441:18;;3428:32;3469:30;3428:32;3469:30;:::i;:::-;3518:7;3508:17;;;3087:444;;;;;:::o;3536:388::-;3604:6;3612;3665:2;3653:9;3644:7;3640:23;3636:32;3633:52;;;3681:1;3678;3671:12;3633:52;3720:9;3707:23;3739:31;3764:5;3739:31;:::i;:::-;3789:5;-1:-1:-1;3846:2:1;3831:18;;3818:32;3859:33;3818:32;3859:33;:::i;:::-;3911:7;3901:17;;;3536:388;;;;;:::o;4325:241::-;4381:6;4434:2;4422:9;4413:7;4409:23;4405:32;4402:52;;;4450:1;4447;4440:12;4402:52;4489:9;4476:23;4508:28;4530:5;4508:28;:::i;4571:385::-;4657:6;4665;4673;4681;4734:3;4722:9;4713:7;4709:23;4705:33;4702:53;;;4751:1;4748;4741:12;4702:53;-1:-1:-1;;4774:23:1;;;4844:2;4829:18;;4816:32;;-1:-1:-1;4895:2:1;4880:18;;4867:32;;4946:2;4931:18;4918:32;;-1:-1:-1;4571:385:1;-1:-1:-1;4571:385:1:o;4961:127::-;5022:10;5017:3;5013:20;5010:1;5003:31;5053:4;5050:1;5043:15;5077:4;5074:1;5067:15;5093:1191;5183:6;5191;5244:2;5232:9;5223:7;5219:23;5215:32;5212:52;;;5260:1;5257;5250:12;5212:52;5300:9;5287:23;5329:18;5370:2;5362:6;5359:14;5356:34;;;5386:1;5383;5376:12;5356:34;5424:6;5413:9;5409:22;5399:32;;5469:7;5462:4;5458:2;5454:13;5450:27;5440:55;;5491:1;5488;5481:12;5440:55;5527:2;5514:16;5549:4;5572:2;5568;5565:10;5562:36;;;5578:18;;:::i;:::-;5624:2;5621:1;5617:10;5656:2;5650:9;5719:2;5715:7;5710:2;5706;5702:11;5698:25;5690:6;5686:38;5774:6;5762:10;5759:22;5754:2;5742:10;5739:18;5736:46;5733:72;;;5785:18;;:::i;:::-;5821:2;5814:22;5871:18;;;5905:15;;;;-1:-1:-1;5947:11:1;;;5943:20;;;5975:19;;;5972:39;;;6007:1;6004;5997:12;5972:39;6031:11;;;;6051:148;6067:6;6062:3;6059:15;6051:148;;;6133:23;6152:3;6133:23;:::i;:::-;6121:36;;6084:12;;;;6177;;;;6051:148;;;6218:6;-1:-1:-1;6243:35:1;;-1:-1:-1;6259:18:1;;;6243:35;:::i;:::-;6233:45;;;;;;5093:1191;;;;;:::o;6289:382::-;6354:6;6362;6415:2;6403:9;6394:7;6390:23;6386:32;6383:52;;;6431:1;6428;6421:12;6383:52;6470:9;6457:23;6489:31;6514:5;6489:31;:::i;:::-;6539:5;-1:-1:-1;6596:2:1;6581:18;;6568:32;6609:30;6568:32;6609:30;:::i;6899:356::-;7101:2;7083:21;;;7120:18;;;7113:30;7179:34;7174:2;7159:18;;7152:62;7246:2;7231:18;;6899:356::o;7260:127::-;7321:10;7316:3;7312:20;7309:1;7302:31;7352:4;7349:1;7342:15;7376:4;7373:1;7366:15;7392:422;7481:1;7524:5;7481:1;7538:270;7559:7;7549:8;7546:21;7538:270;;;7618:4;7614:1;7610:6;7606:17;7600:4;7597:27;7594:53;;;7627:18;;:::i;:::-;7677:7;7667:8;7663:22;7660:55;;;7697:16;;;;7660:55;7776:22;;;;7736:15;;;;7538:270;;;7542:3;7392:422;;;;;:::o;7819:806::-;7868:5;7898:8;7888:80;;-1:-1:-1;7939:1:1;7953:5;;7888:80;7987:4;7977:76;;-1:-1:-1;8024:1:1;8038:5;;7977:76;8069:4;8087:1;8082:59;;;;8155:1;8150:130;;;;8062:218;;8082:59;8112:1;8103:10;;8126:5;;;8150:130;8187:3;8177:8;8174:17;8171:43;;;8194:18;;:::i;:::-;-1:-1:-1;;8250:1:1;8236:16;;8265:5;;8062:218;;8364:2;8354:8;8351:16;8345:3;8339:4;8336:13;8332:36;8326:2;8316:8;8313:16;8308:2;8302:4;8299:12;8295:35;8292:77;8289:159;;;-1:-1:-1;8401:19:1;;;8433:5;;8289:159;8480:34;8505:8;8499:4;8480:34;:::i;:::-;8550:6;8546:1;8542:6;8538:19;8529:7;8526:32;8523:58;;;8561:18;;:::i;:::-;8599:20;;7819:806;-1:-1:-1;;;7819:806:1:o;8630:140::-;8688:5;8717:47;8758:4;8748:8;8744:19;8738:4;8717:47;:::i;8775:168::-;8848:9;;;8879;;8896:15;;;8890:22;;8876:37;8866:71;;8917:18;;:::i;9357:128::-;9424:9;;;9445:11;;;9442:37;;;9459:18;;:::i;9901:217::-;9941:1;9967;9957:132;;10011:10;10006:3;10002:20;9999:1;9992:31;10046:4;10043:1;10036:15;10074:4;10071:1;10064:15;9957:132;-1:-1:-1;10103:9:1;;9901:217::o;10475:127::-;10536:10;10531:3;10527:20;10524:1;10517:31;10567:4;10564:1;10557:15;10591:4;10588:1;10581:15;10607:127;10668:10;10663:3;10659:20;10656:1;10649:31;10699:4;10696:1;10689:15;10723:4;10720:1;10713:15;10739:135;10778:3;10799:17;;;10796:43;;10819:18;;:::i;:::-;-1:-1:-1;10866:1:1;10855:13;;10739:135::o;10879:125::-;10944:9;;;10965:10;;;10962:36;;;10978:18;;:::i;12360:245::-;12427:6;12480:2;12468:9;12459:7;12455:23;12451:32;12448:52;;;12496:1;12493;12486:12;12448:52;12528:9;12522:16;12547:28;12569:5;12547:28;:::i;18035:251::-;18105:6;18158:2;18146:9;18137:7;18133:23;18129:32;18126:52;;;18174:1;18171;18164:12;18126:52;18206:9;18200:16;18225:31;18250:5;18225:31;:::i;18291:980::-;18553:4;18601:3;18590:9;18586:19;18632:6;18621:9;18614:25;18658:2;18696:6;18691:2;18680:9;18676:18;18669:34;18739:3;18734:2;18723:9;18719:18;18712:31;18763:6;18798;18792:13;18829:6;18821;18814:22;18867:3;18856:9;18852:19;18845:26;;18906:2;18898:6;18894:15;18880:29;;18927:1;18937:195;18951:6;18948:1;18945:13;18937:195;;;19016:13;;-1:-1:-1;;;;;19012:39:1;19000:52;;19107:15;;;;19072:12;;;;19048:1;18966:9;18937:195;;;-1:-1:-1;;;;;;;19188:32:1;;;;19183:2;19168:18;;19161:60;-1:-1:-1;;;19252:3:1;19237:19;19230:35;19149:3;18291:980;-1:-1:-1;;;18291:980:1:o;19888:306::-;19976:6;19984;19992;20045:2;20033:9;20024:7;20020:23;20016:32;20013:52;;;20061:1;20058;20051:12;20013:52;20090:9;20084:16;20074:26;;20140:2;20129:9;20125:18;20119:25;20109:35;;20184:2;20173:9;20169:18;20163:25;20153:35;;19888:306;;;;;:::o

Swarm Source

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