ETH Price: $2,597.20 (-2.62%)
Gas: 1 Gwei

Token

FX Capital (FXC)
 

Overview

Max Total Supply

1,000,000,000,000 FXC

Holders

97

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
723,638,714.881108253 FXC

Value
$0.00
0x4d68b74b421373d9c68c28f9386de78d1ec8298f
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:
FXC

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

/* 
** FX Capital
** Blockchain Meets Artificial Intelligence Software Trading
** Self Sustaining Eth Rewards
** Website : https://fxctoken.com/
** Whitepaper : https://fxctoken.com/pdfs/FXCWhitepaper.pdf
** Telegram : https://t.me/fxcapitaltoken
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.7;

/**
 * Standard SafeMath, stripped down to just add/sub/mul/div
 */
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

/**
 * BEP20 standard interface.
 */
interface IBEP20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 * Allows for contract ownership along with multi-address authorization
 */
abstract contract Auth {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

    /**
     * Function modifier to require caller to be contract deployer
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!Owner"); _;
    }

    /**
     * Check if address is owner
     */
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    /**
     * Transfer ownership to new address. Caller must be deployer. Leaves old deployer authorized
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        emit OwnershipTransferred(adr);
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(address(0));
        owner = address(0);
    }

    event OwnershipTransferred(address owner);
}

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

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

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

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

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

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

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

interface IDividendDistributor {
    function setShare(address shareholder, uint256 amount) external;
    function deposit() external payable;
    function claimDividend(address shareholder) external;
    function setTreasury(address treasury) external;
    function getDividendsClaimedOf (address shareholder) external returns (uint256);
}

contract DividendDistributor is IDividendDistributor {
    using SafeMath for uint256;

    address public _token;
    address public _owner;
    address public _treasury;

    struct Share {
        uint256 amount;
        uint256 totalExcluded;
        uint256 totalClaimed;
    }

    address[] private shareholders;
    mapping (address => uint256) private shareholderIndexes;

    mapping (address => Share) public shares;

    uint256 public totalShares;
    uint256 public totalDividends;
    uint256 public totalClaimed;
    uint256 public dividendsPerShare;
    uint256 private dividendsPerShareAccuracyFactor = 10 ** 36;

    modifier onlyToken() {
        require(msg.sender == _token); _;
    }
    
    modifier onlyOwner() {
        require(msg.sender == _owner); _;
    }

    constructor (address owner, address treasury) {
        _token = msg.sender;
        _owner = owner;
        _treasury = treasury;
    }

   // receive() external payable { }

    function setShare(address shareholder, uint256 amount) external override onlyToken {
        if(shares[shareholder].amount > 0){
            distributeDividend(shareholder);
        }

        if(amount > 0 && shares[shareholder].amount == 0){
            addShareholder(shareholder);
        }else if(amount == 0 && shares[shareholder].amount > 0){
            removeShareholder(shareholder);
        }

        totalShares = totalShares.sub(shares[shareholder].amount).add(amount);
        shares[shareholder].amount = amount;
        shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
    }

    function deposit() external payable override {
       
        uint256 amount = msg.value;
        
        totalDividends = totalDividends.add(amount);
        dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares));
    }

    function distributeDividend(address shareholder) internal {
        if(shares[shareholder].amount == 0){ return; }

        uint256 amount = getClaimableDividendOf(shareholder);
        if(amount > 0){
            totalClaimed = totalClaimed.add(amount);
            shares[shareholder].totalClaimed = shares[shareholder].totalClaimed.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
            payable(shareholder).transfer(amount);
        }
    }

    function claimDividend(address shareholder) external override onlyToken {
        distributeDividend(shareholder);
    }

    function getClaimableDividendOf(address shareholder) public view returns (uint256) {
        if(shares[shareholder].amount == 0){ return 0; }

        uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount);
        uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded;

        if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; }

        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

    function getCumulativeDividends(uint256 share) internal view returns (uint256) {
        return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor);
    }

    function addShareholder(address shareholder) internal {
        shareholderIndexes[shareholder] = shareholders.length;
        shareholders.push(shareholder);
    }

    function removeShareholder(address shareholder) internal {
        shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1];
        shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder];
        shareholders.pop();
    }
    
    function manualSend(uint256 amount, address holder) external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(holder).transfer(amount > 0 ? amount : contractETHBalance);
    }

    function setTreasury(address treasury) external onlyToken {
        _treasury = payable(treasury);
    }

    function getDividendsClaimedOf (address shareholder) external view returns (uint256) {
        require (shares[shareholder].amount > 0, "You're not a FXC shareholder!");
        return shares[shareholder].totalClaimed;
    }

    }

contract FXC is IBEP20, Auth {
    using SafeMath for uint256;

    address private WETH;
    address private DEAD = 0x000000000000000000000000000000000000dEaD;
    address private ZERO = 0x0000000000000000000000000000000000000000;

    string private constant  _name = "FX Capital";
    string private constant _symbol = "FXC";
    uint8 private constant _decimals = 9;

    uint256 private _totalSupply = 1000000000000 * (10 ** _decimals);
    uint256 private _maxTxAmountBuy = _totalSupply;
  

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) private isFeeExempt;
    mapping (address => bool) private isDividendExempt;
    mapping (address => bool) private isBot;
    

        
    uint256 private totalFee = 16;
    uint256 private feeDenominator = 100;

    address payable public marketingWallet = payable(0x899F4950cDda8fE2bbC42Fa98fafc51387492587);
    address payable public treasury = payable(0xF2173Aa3C80C9A1b2F96c4dA451A97aBFCa6E22e);

    IDEXRouter public router;
    address public pair;

    uint256 public launchedAt;
    bool private tradingOpen;
    bool private buyLimit = true;


    uint256 private maxBuy = 100000000000 * (10 ** _decimals);

    DividendDistributor public distributor;


    bool private inSwap;
    bool private _swapForEthEnabled=true;

    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor (
        address _owner        
    ) Auth(_owner) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            
        WETH = router.WETH();
        
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        distributor = new DividendDistributor(_owner, treasury);

        isFeeExempt[_owner] = true;
        isFeeExempt[marketingWallet] = true;
        isFeeExempt[treasury] = true;        
              
        isDividendExempt[pair] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[DEAD] = true;        

        _balances[_owner] = _totalSupply;
    
        emit Transfer(address(0), _owner, _totalSupply);
    }

    receive() external payable { }

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

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

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

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

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

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (sender!= owner && recipient!= owner) require(tradingOpen, "Trading not yet enabled."); //transfers disabled before openTrading
        require (!isBot[sender] && !isBot[recipient], "Nice try");
        if (buyLimit) { 
            if (sender!=owner && recipient!= owner) require (amount<=maxBuy, "Too much sir");        
        }
        if (block.number <= (launchedAt + 1)) { 
            isBot[recipient] = true;
            isDividendExempt[recipient] = true; 
        }
       
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }      
    
        bool shouldSwapBack = /*!inSwap &&*/ (recipient==pair && balanceOf(address(this)) > 0);
        if(shouldSwapBack && _swapForEthEnabled){ swapBack(); }

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, amount) : amount;
        
        _balances[recipient] = _balances[recipient].add(amountReceived);

        if(sender != pair && !isDividendExempt[sender]){ try distributor.setShare(sender, _balances[sender]) {} catch {} }
        if(recipient != pair && !isDividendExempt[recipient]){ try distributor.setShare(recipient, _balances[recipient]) {} catch {} }

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

 
    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return ( !(isFeeExempt[sender] || isFeeExempt[recipient]) &&  (sender == pair || recipient == pair) );
   }

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount;
        feeAmount = amount.mul(totalFee).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);   

        return amount.sub(feeAmount);
    }

   
    function swapBack() internal swapping {
        uint256 amountToSwap = balanceOf(address(this));

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        
        uint256 amountTreasury = (address(this).balance).div(2);
        uint256 amountMarketing = (address(this).balance).div(2);

             
        payable(marketingWallet).transfer(amountMarketing);
        payable(treasury).transfer(amountTreasury);
    }

    
    function openTrading() external onlyOwner {
        launchedAt = block.number;
        tradingOpen = true;
    }    
  
    
    function setBot(address _address, bool toggle) external onlyOwner {
        isBot[_address] = toggle;
        _setIsDividendExempt(_address, toggle);
    }
    
    function isInBot(address _address) external view onlyOwner returns (bool) {
        return isBot[_address];
    }
    
    function _setIsDividendExempt(address holder, bool exempt) internal {
        require(holder != address(this) && holder != pair);
        isDividendExempt[holder] = exempt;
        if(exempt){
            distributor.setShare(holder, 0);
        }else{
            distributor.setShare(holder, _balances[holder]);
        }
    }

    function setIsDividendExempt(address holder, bool exempt) external onlyOwner {
        _setIsDividendExempt(holder, exempt);
    }

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

    function setFee (uint256 _fee) external onlyOwner {
        require (_fee <= 16, "Fee can't exceed 16%");
        totalFee = _fee;
    }

  
    function manualSend() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(marketingWallet).transfer(contractETHBalance);
    }

    function claimDividend() external {
        distributor.claimDividend(msg.sender);
    }
    
    function claimDividend(address holder) external onlyOwner {
        distributor.claimDividend(holder);
    }
    
    function getClaimableDividendOf(address shareholder) public view returns (uint256) {
        return distributor.getClaimableDividendOf(shareholder);
    }
    
    function manualBurn(uint256 amount) external onlyOwner returns (bool) {
        return _basicTransfer(address(this), DEAD, amount);
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function setMarketingWallet(address _marketingWallet) external onlyOwner {
        marketingWallet = payable(_marketingWallet);
    }

    function setTreasurySwapEnabled(bool enabled) external onlyOwner {
        _swapForEthEnabled = enabled;
    }

    function setTreasury(address _treasury) external onlyOwner {
        treasury = payable(_treasury);
        distributor.setTreasury(_treasury);
    }

    function getTotalDividends() external view returns (uint256) {
        return distributor.totalDividends();
    }    

    function getTotalClaimed() external view returns (uint256) {
        return distributor.totalClaimed();
    }

     function getDividendsClaimedOf (address shareholder) external view returns (uint256) {
        return distributor.getDividendsClaimedOf(shareholder);
    }

    function removeBuyLimit() external onlyOwner {
        buyLimit = false;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","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":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"distributor","outputs":[{"internalType":"contract DividendDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getClaimableDividendOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getDividendsClaimedOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isInBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualBurn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeBuyLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"toggle","type":"bool"}],"name":"setBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_treasury","type":"address"}],"name":"setTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setTreasurySwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600280546001600160a01b031990811661dead17909155600380549091169055620000326009600a62000544565b620000439064e8d4a510006200055c565b60048190556005556010600b556064600c55600d80546001600160a01b031990811673899f4950cdda8fe2bbc42fa98fafc5138749258717909155600e805490911673f2173aa3c80c9a1b2f96c4da451a97abfca6e22e1790556012805461ff001916610100179055620000ba6009600a62000544565b620000cb9064174876e8006200055c565b6013556014805460ff60a81b1916600160a81b179055348015620000ee57600080fd5b50604051620031413803806200314183398101604081905262000111916200057e565b600080546001600160a01b03199081166001600160a01b03841617909155600f8054737a250d5630b4cf539739df2c5dacb4c659f2488d921682179055604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156200018a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b091906200057e565b600180546001600160a01b0319166001600160a01b03928316179055600f546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156200020f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023591906200057e565b6001546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000287573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ad91906200057e565b601080546001600160a01b0319166001600160a01b03928316179055306000908152600760209081526040808320600f5485168452909152908190206000199055600e54905183929190911690620003059062000421565b6001600160a01b03928316815291166020820152604001604051809103906000f08015801562000339573d6000803e3d6000fd5b50601480546001600160a01b0319166001600160a01b039283161790558181166000818152600860209081526040808320805460ff199081166001908117909255600d54871685528285208054821683179055600e548716855282852080548216831790556010548716855260098452828520805482168317905530855282852080548216831790556002549096168452818420805490961617909455600454838352600682528483208190559351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620005a9565b610d04806200243d83390190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004865781600019048211156200046a576200046a6200042f565b808516156200047857918102915b93841c93908002906200044a565b509250929050565b6000826200049f575060016200053e565b81620004ae575060006200053e565b8160018114620004c75760028114620004d257620004f2565b60019150506200053e565b60ff841115620004e657620004e66200042f565b50506001821b6200053e565b5060208310610133831016604e8410600b841016171562000517575081810a6200053e565b62000523838362000445565b80600019048211156200053a576200053a6200042f565b0290505b92915050565b60006200055560ff8416836200048e565b9392505050565b60008160001904831182151516156200057957620005796200042f565b500290565b6000602082840312156200059157600080fd5b81516001600160a01b03811681146200055557600080fd5b611e8480620005b96000396000f3fe6080604052600436106102345760003560e01c806369fe0e2d1161012e578063bf56b371116100ab578063f0fc6bca1161006f578063f0fc6bca146106d3578063f2fde38b146106e8578063f429389014610708578063f708a64f1461071d578063f887ea401461073d57600080fd5b8063bf56b37114610622578063bfe1092814610638578063c9567bf914610658578063dd62ed3e1461066d578063f0f44260146106b357600080fd5b8063893d20e8116100f2578063893d20e8146105785780638ecc37fb1461059657806395d89b41146105b6578063a8aa1b31146105e2578063a9059cbb1461060257600080fd5b806369fe0e2d146104d857806370a08231146104f8578063715018a61461052e578063736a83a11461054357806375f0a8741461055857600080fd5b8063313ce567116101bc5780635cc33f74116101805780635cc33f741461042b5780635d098b381461044b57806361d027b31461046b578063658d4b7f146104a357806367ee5f09146104c357600080fd5b8063313ce5671461039a578063342aa8b5146103b65780633e07ce5b146103d6578063416501c8146103eb578063571ac8b01461040b57600080fd5b80631c2f15d0116102035780631c2f15d0146102f657806323b635851461031657806323b872dd146103365780632b112e49146103565780632f54bf6e1461036b57600080fd5b806306fdde0314610240578063095ea7b31461028557806315f7e05e146102b557806318160ddd146102d757600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b5060408051808201909152600a81526911960810d85c1a5d185b60b21b60208201525b60405161027c9190611b5f565b60405180910390f35b34801561029157600080fd5b506102a56102a0366004611bcc565b61075d565b604051901515815260200161027c565b3480156102c157600080fd5b506102d56102d0366004611bf8565b6107ca565b005b3480156102e357600080fd5b506004545b60405190815260200161027c565b34801561030257600080fd5b506102d5610311366004611c25565b610860565b34801561032257600080fd5b506102a5610331366004611c40565b6108a8565b34801561034257600080fd5b506102a5610351366004611c59565b6108f3565b34801561036257600080fd5b506102e86109b5565b34801561037757600080fd5b506102a5610386366004611bf8565b6000546001600160a01b0391821691161490565b3480156103a657600080fd5b506040516009815260200161027c565b3480156103c257600080fd5b506102d56103d1366004611c9a565b610a07565b3480156103e257600080fd5b506102d5610a63565b3480156103f757600080fd5b506102a5610406366004611bf8565b610a9a565b34801561041757600080fd5b506102a5610426366004611bf8565b610ae4565b34801561043757600080fd5b506102e8610446366004611bf8565b610af2565b34801561045757600080fd5b506102d5610466366004611bf8565b610b62565b34801561047757600080fd5b50600e5461048b906001600160a01b031681565b6040516001600160a01b03909116815260200161027c565b3480156104af57600080fd5b506102d56104be366004611c9a565b610bae565b3480156104cf57600080fd5b506102e8610c03565b3480156104e457600080fd5b506102d56104f3366004611c40565b610c71565b34801561050457600080fd5b506102e8610513366004611bf8565b6001600160a01b031660009081526006602052604090205490565b34801561053a57600080fd5b506102d5610ce8565b34801561054f57600080fd5b506102e8610d58565b34801561056457600080fd5b50600d5461048b906001600160a01b031681565b34801561058457600080fd5b506000546001600160a01b031661048b565b3480156105a257600080fd5b506102e86105b1366004611bf8565b610da2565b3480156105c257600080fd5b5060408051808201909152600381526246584360e81b602082015261026f565b3480156105ee57600080fd5b5060105461048b906001600160a01b031681565b34801561060e57600080fd5b506102a561061d366004611bcc565b610dd5565b34801561062e57600080fd5b506102e860115481565b34801561064457600080fd5b5060145461048b906001600160a01b031681565b34801561066457600080fd5b506102d5610de2565b34801561067957600080fd5b506102e8610688366004611ccf565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b3480156106bf57600080fd5b506102d56106ce366004611bf8565b610e1f565b3480156106df57600080fd5b506102d5610e92565b3480156106f457600080fd5b506102d5610703366004611bf8565b610ef1565b34801561071457600080fd5b506102d5610f6f565b34801561072957600080fd5b506102d5610738366004611c9a565b610fd3565b34801561074957600080fd5b50600f5461048b906001600160a01b031681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107b89086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146107fd5760405162461bcd60e51b81526004016107f490611d08565b60405180910390fd5b601454604051630afbf02f60e11b81526001600160a01b038381166004830152909116906315f7e05e906024015b600060405180830381600087803b15801561084557600080fd5b505af1158015610859573d6000803e3d6000fd5b5050505050565b6000546001600160a01b0316331461088a5760405162461bcd60e51b81526004016107f490611d08565b60148054911515600160a81b0260ff60a81b19909216919091179055565b600080546001600160a01b031633146108d35760405162461bcd60e51b81526004016107f490611d08565b6002546108eb9030906001600160a01b031684611007565b90505b919050565b6001600160a01b0383166000908152600760209081526040808320338452909152812054600019146109a0576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260078252838120338252909152919091205461097b9184906110ed565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b6109ab848484611127565b90505b9392505050565b6003546001600160a01b0316600090815260066020526040812054610a02906002546001600160a01b03166000908152600660205260409020546109fc90600454906115e6565b906115e6565b905090565b6000546001600160a01b03163314610a315760405162461bcd60e51b81526004016107f490611d08565b6001600160a01b0382166000908152600a60205260409020805460ff1916821515179055610a5f8282611628565b5050565b6000546001600160a01b03163314610a8d5760405162461bcd60e51b81526004016107f490611d08565b6012805461ff0019169055565b600080546001600160a01b03163314610ac55760405162461bcd60e51b81526004016107f490611d08565b506001600160a01b03166000908152600a602052604090205460ff1690565b60006108eb8260001961075d565b601454604051631730cfdd60e21b81526001600160a01b0383811660048301526000921690635cc33f74906024015b602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108eb9190611d28565b6000546001600160a01b03163314610b8c5760405162461bcd60e51b81526004016107f490611d08565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610bd85760405162461bcd60e51b81526004016107f490611d08565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6014546040805163997664d760e01b815290516000926001600160a01b03169163997664d79160048083019260209291908290030181865afa158015610c4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a029190611d28565b6000546001600160a01b03163314610c9b5760405162461bcd60e51b81526004016107f490611d08565b6010811115610ce35760405162461bcd60e51b81526020600482015260146024820152734665652063616e2774206578636565642031362560601b60448201526064016107f4565b600b55565b6000546001600160a01b03163314610d125760405162461bcd60e51b81526004016107f490611d08565b604051600081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1600080546001600160a01b0319169055565b6014546040805163d54ad2a160e01b815290516000926001600160a01b03169163d54ad2a19160048083019260209291908290030181865afa158015610c4d573d6000803e3d6000fd5b601454604051638ecc37fb60e01b81526001600160a01b0383811660048301526000921690638ecc37fb90602401610b21565b60006109ae338484611127565b6000546001600160a01b03163314610e0c5760405162461bcd60e51b81526004016107f490611d08565b436011556012805460ff19166001179055565b6000546001600160a01b03163314610e495760405162461bcd60e51b81526004016107f490611d08565b600e80546001600160a01b0319166001600160a01b03838116918217909255601454604051630787a21360e51b815260048101929092529091169063f0f442609060240161082b565b601454604051630afbf02f60e11b81523360048201526001600160a01b03909116906315f7e05e90602401600060405180830381600087803b158015610ed757600080fd5b505af1158015610eeb573d6000803e3d6000fd5b50505050565b6000546001600160a01b03163314610f1b5760405162461bcd60e51b81526004016107f490611d08565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b03163314610f995760405162461bcd60e51b81526004016107f490611d08565b600d5460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610a5f573d6000803e3d6000fd5b6000546001600160a01b03163314610ffd5760405162461bcd60e51b81526004016107f490611d08565b610a5f8282611628565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526006909152918220546110589184906110ed565b6001600160a01b0380861660009081526006602052604080822093909355908516815220546110879083611739565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110db9086815260200190565b60405180910390a35060019392505050565b600081848411156111115760405162461bcd60e51b81526004016107f49190611b5f565b50600061111e8486611d57565b95945050505050565b600080546001600160a01b0385811691161480159061115457506000546001600160a01b03848116911614155b156111ab5760125460ff166111ab5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e000000000000000060448201526064016107f4565b6001600160a01b0384166000908152600a602052604090205460ff161580156111ed57506001600160a01b0383166000908152600a602052604090205460ff16155b6112245760405162461bcd60e51b81526020600482015260086024820152674e6963652074727960c01b60448201526064016107f4565b601254610100900460ff16156112a6576000546001600160a01b0385811691161480159061126057506000546001600160a01b03848116911614155b156112a6576013548211156112a65760405162461bcd60e51b815260206004820152600c60248201526b2a37b79036bab1b41039b4b960a11b60448201526064016107f4565b6011546112b4906001611d6e565b43116112f6576001600160a01b0383166000908152600a602090815260408083208054600160ff19918216811790925560099093529220805490911690911790555b601454600160a01b900460ff161561131a57611313848484611007565b90506109ae565b6010546000906001600160a01b038581169116148015611347575030600090815260066020526040812054115b905080801561135f5750601454600160a81b900460ff165b1561136c5761136c611798565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0388166000908152600690915291909120546113be9185906110ed565b6001600160a01b0386166000908152600660205260408120919091556113e4868661194f565b6113ee57836113f8565b6113f886856119c4565b6001600160a01b03861660009081526006602052604090205490915061141e9082611739565b6001600160a01b0380871660009081526006602052604090209190915560105487821691161480159061146a57506001600160a01b03861660009081526009602052604090205460ff16155b156114e0576014546001600160a01b0387811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b1580156114cd57600080fd5b505af19250505080156114de575060015b505b6010546001600160a01b0386811691161480159061151757506001600160a01b03851660009081526009602052604090205460ff16155b1561158d576014546001600160a01b0386811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561157a57600080fd5b505af192505050801561158b575060015b505b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115d291815260200190565b60405180910390a350600195945050505050565b60006109ae83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110ed565b6001600160a01b038216301480159061164f57506010546001600160a01b03838116911614155b61165857600080fd5b6001600160a01b0382166000908152600960205260409020805460ff191682158015919091179091556116f057601454604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca96906044015b600060405180830381600087803b1580156116d457600080fd5b505af11580156116e8573d6000803e3d6000fd5b505050505050565b6014546001600160a01b0383811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca96906044016116ba565b6000806117468385611d6e565b9050838110156109ae5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107f4565b6014805460ff60a01b1916600160a01b17905530600090815260066020526040812054604080516002808252606082019092529192506000919081602001602082028036833701905050905030816000815181106117f8576117f8611d86565b6001600160a01b039283166020918202929092010152600180548351921691839190811061182857611828611d86565b6001600160a01b039283166020918202929092010152600f5460405163791ac94760e01b815291169063791ac9479061186e908590600090869030904290600401611d9c565b600060405180830381600087803b15801561188857600080fd5b505af115801561189c573d6000803e3d6000fd5b5050505060006118b6600247611a7090919063ffffffff16565b905060006118c5476002611a70565b600d546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015611900573d6000803e3d6000fd5b50600e546040516001600160a01b039091169083156108fc029084906000818181858888f1935050505015801561193b573d6000803e3d6000fd5b50506014805460ff60a01b19169055505050565b6001600160a01b03821660009081526008602052604081205460ff168061198e57506001600160a01b03821660009081526008602052604090205460ff165b1580156109ae57506010546001600160a01b03848116911614806109ae5750506010546001600160a01b03908116911614919050565b6000806119e8600c546119e2600b5486611ab290919063ffffffff16565b90611a70565b30600090815260066020526040902054909150611a059082611739565b30600081815260066020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a569085815260200190565b60405180910390a3611a6883826115e6565b949350505050565b60006109ae83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b31565b600082611ac1575060006107c4565b6000611acd8385611e0d565b905082611ada8583611e2c565b146109ae5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107f4565b60008183611b525760405162461bcd60e51b81526004016107f49190611b5f565b50600061111e8486611e2c565b600060208083528351808285015260005b81811015611b8c57858101830151858201604001528201611b70565b81811115611b9e576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611bc957600080fd5b50565b60008060408385031215611bdf57600080fd5b8235611bea81611bb4565b946020939093013593505050565b600060208284031215611c0a57600080fd5b81356109ae81611bb4565b803580151581146108ee57600080fd5b600060208284031215611c3757600080fd5b6109ae82611c15565b600060208284031215611c5257600080fd5b5035919050565b600080600060608486031215611c6e57600080fd5b8335611c7981611bb4565b92506020840135611c8981611bb4565b929592945050506040919091013590565b60008060408385031215611cad57600080fd5b8235611cb881611bb4565b9150611cc660208401611c15565b90509250929050565b60008060408385031215611ce257600080fd5b8235611ced81611bb4565b91506020830135611cfd81611bb4565b809150509250929050565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b600060208284031215611d3a57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082821015611d6957611d69611d41565b500390565b60008219821115611d8157611d81611d41565b500190565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611dec5784516001600160a01b031683529383019391830191600101611dc7565b50506001600160a01b03969096166060850152505050608001529392505050565b6000816000190483118215151615611e2757611e27611d41565b500290565b600082611e4957634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220b28994ed03b3f2de5ee550d439671abda1517e35b41cb046ffcc9f099195890a64736f6c634300080a003360806040526ec097ce7bc90715b34b9f1000000000600a5534801561002357600080fd5b50604051610d04380380610d048339810160408190526100429161009a565b600080546001600160a01b03199081163317909155600180546001600160a01b03948516908316179055600280549290931691161790556100cd565b80516001600160a01b038116811461009557600080fd5b919050565b600080604083850312156100ad57600080fd5b6100b68361007e565b91506100c46020840161007e565b90509250929050565b610c28806100dc6000396000f3fe6080604052600436106100e85760003560e01c8063b2bdfa7b1161008a578063e2d2e21911610059578063e2d2e2191461027b578063e319a3d914610291578063ecd0c0c3146102b1578063f0f44260146102d157600080fd5b8063b2bdfa7b146101ce578063ce7c2ac214610206578063d0e30db01461025d578063d54ad2a11461026557600080fd5b80633a98ef39116100c65780633a98ef391461014f5780635cc33f74146101785780638ecc37fb14610198578063997664d7146101b857600080fd5b80631014edf5146100ed57806314b6ca961461010f57806315f7e05e1461012f575b600080fd5b3480156100f957600080fd5b5061010d610108366004610a7a565b6102f1565b005b34801561011b57600080fd5b5061010d61012a366004610aa6565b610351565b34801561013b57600080fd5b5061010d61014a366004610ad0565b6104c9565b34801561015b57600080fd5b5061016560065481565b6040519081526020015b60405180910390f35b34801561018457600080fd5b50610165610193366004610ad0565b6104ec565b3480156101a457600080fd5b506101656101b3366004610ad0565b610575565b3480156101c457600080fd5b5061016560075481565b3480156101da57600080fd5b506001546101ee906001600160a01b031681565b6040516001600160a01b03909116815260200161016f565b34801561021257600080fd5b50610242610221366004610ad0565b60056020526000908152604090208054600182015460029092015490919083565b6040805193845260208401929092529082015260600161016f565b61010d6105fe565b34801561027157600080fd5b5061016560085481565b34801561028757600080fd5b5061016560095481565b34801561029d57600080fd5b506002546101ee906001600160a01b031681565b3480156102bd57600080fd5b506000546101ee906001600160a01b031681565b3480156102dd57600080fd5b5061010d6102ec366004610ad0565b61063d565b6001546001600160a01b0316331461030857600080fd5b476001600160a01b0382166108fc846103215782610323565b845b6040518115909202916000818181858888f1935050505015801561034b573d6000803e3d6000fd5b50505050565b6000546001600160a01b0316331461036857600080fd5b6001600160a01b0382166000908152600560205260409020541561038f5761038f82610676565b6000811180156103b557506001600160a01b038216600090815260056020526040902054155b1561041b57600380546001600160a01b0384166000818152600460205260408120839055600183018455929092527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b031916909117905561044e565b8015801561044057506001600160a01b03821660009081526005602052604090205415155b1561044e5761044e82610759565b6001600160a01b03821660009081526005602052604090205460065461047f9183916104799161086e565b906108b9565b6006556001600160a01b03821660009081526005602052604090208190556104a681610918565b6001600160a01b0390921660009081526005602052604090206001019190915550565b6000546001600160a01b031633146104e057600080fd5b6104e981610676565b50565b6001600160a01b0381166000908152600560205260408120546105565760405162461bcd60e51b815260206004820152601d60248201527f596f75277265206e6f74206120465843207368617265686f6c6465722100000060448201526064015b60405180910390fd5b506001600160a01b031660009081526005602052604090206002015490565b6001600160a01b03811660009081526005602052604081205461059a57506000919050565b6001600160a01b0382166000908152600560205260408120546105bc90610918565b6001600160a01b0384166000908152600560205260409020600101549091508082116105ec575060009392505050565b6105f6828261086e565b949350505050565b600754349061060d90826108b9565b600755600654600a546106379161062e916106289085610935565b906109b4565b600954906108b9565b60095550565b6000546001600160a01b0316331461065457600080fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0381166000908152600560205260409020546106965750565b60006106a182610575565b90508015610755576008546106b690826108b9565b6008556001600160a01b0382166000908152600560205260409020600201546106df90826108b9565b6001600160a01b038316600090815260056020526040902060028101919091555461070990610918565b6001600160a01b038316600081815260056020526040808220600101939093559151909183156108fc02918491818181858888f19350505050158015610753573d6000803e3d6000fd5b505b5050565b6003805461076990600190610b01565b8154811061077957610779610b18565b60009182526020808320909101546001600160a01b03848116845260049092526040909220546003805492909316929181106107b7576107b7610b18565b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905591831681526004918290526040812054600380549193929161080390600190610b01565b8154811061081357610813610b18565b60009182526020808320909101546001600160a01b03168352820192909252604001902055600380548061084957610849610b2e565b600082815260209020810160001990810180546001600160a01b031916905501905550565b60006108b083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506109f6565b90505b92915050565b6000806108c68385610b44565b9050838110156108b05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161054d565b60006108b3600a546106286009548561093590919063ffffffff16565b600082610944575060006108b3565b60006109508385610b5c565b90508261095d8583610b7b565b146108b05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161054d565b60006108b083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610a30565b60008184841115610a1a5760405162461bcd60e51b815260040161054d9190610b9d565b506000610a278486610b01565b95945050505050565b60008183610a515760405162461bcd60e51b815260040161054d9190610b9d565b506000610a278486610b7b565b80356001600160a01b0381168114610a7557600080fd5b919050565b60008060408385031215610a8d57600080fd5b82359150610a9d60208401610a5e565b90509250929050565b60008060408385031215610ab957600080fd5b610ac283610a5e565b946020939093013593505050565b600060208284031215610ae257600080fd5b6108b082610a5e565b634e487b7160e01b600052601160045260246000fd5b600082821015610b1357610b13610aeb565b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b60008219821115610b5757610b57610aeb565b500190565b6000816000190483118215151615610b7657610b76610aeb565b500290565b600082610b9857634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b81811015610bca57858101830151858201604001528201610bae565b81811115610bdc576000604083870101525b50601f01601f191692909201604001939250505056fea26469706673582212208ccb9c6e17345286636d3b066cad84abede171479f89bd9425a08447661aef9b64736f6c634300080a00330000000000000000000000008abaed62f16a265a2f29ccf3db11a6fd3cf055d8

Deployed Bytecode

0x6080604052600436106102345760003560e01c806369fe0e2d1161012e578063bf56b371116100ab578063f0fc6bca1161006f578063f0fc6bca146106d3578063f2fde38b146106e8578063f429389014610708578063f708a64f1461071d578063f887ea401461073d57600080fd5b8063bf56b37114610622578063bfe1092814610638578063c9567bf914610658578063dd62ed3e1461066d578063f0f44260146106b357600080fd5b8063893d20e8116100f2578063893d20e8146105785780638ecc37fb1461059657806395d89b41146105b6578063a8aa1b31146105e2578063a9059cbb1461060257600080fd5b806369fe0e2d146104d857806370a08231146104f8578063715018a61461052e578063736a83a11461054357806375f0a8741461055857600080fd5b8063313ce567116101bc5780635cc33f74116101805780635cc33f741461042b5780635d098b381461044b57806361d027b31461046b578063658d4b7f146104a357806367ee5f09146104c357600080fd5b8063313ce5671461039a578063342aa8b5146103b65780633e07ce5b146103d6578063416501c8146103eb578063571ac8b01461040b57600080fd5b80631c2f15d0116102035780631c2f15d0146102f657806323b635851461031657806323b872dd146103365780632b112e49146103565780632f54bf6e1461036b57600080fd5b806306fdde0314610240578063095ea7b31461028557806315f7e05e146102b557806318160ddd146102d757600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b5060408051808201909152600a81526911960810d85c1a5d185b60b21b60208201525b60405161027c9190611b5f565b60405180910390f35b34801561029157600080fd5b506102a56102a0366004611bcc565b61075d565b604051901515815260200161027c565b3480156102c157600080fd5b506102d56102d0366004611bf8565b6107ca565b005b3480156102e357600080fd5b506004545b60405190815260200161027c565b34801561030257600080fd5b506102d5610311366004611c25565b610860565b34801561032257600080fd5b506102a5610331366004611c40565b6108a8565b34801561034257600080fd5b506102a5610351366004611c59565b6108f3565b34801561036257600080fd5b506102e86109b5565b34801561037757600080fd5b506102a5610386366004611bf8565b6000546001600160a01b0391821691161490565b3480156103a657600080fd5b506040516009815260200161027c565b3480156103c257600080fd5b506102d56103d1366004611c9a565b610a07565b3480156103e257600080fd5b506102d5610a63565b3480156103f757600080fd5b506102a5610406366004611bf8565b610a9a565b34801561041757600080fd5b506102a5610426366004611bf8565b610ae4565b34801561043757600080fd5b506102e8610446366004611bf8565b610af2565b34801561045757600080fd5b506102d5610466366004611bf8565b610b62565b34801561047757600080fd5b50600e5461048b906001600160a01b031681565b6040516001600160a01b03909116815260200161027c565b3480156104af57600080fd5b506102d56104be366004611c9a565b610bae565b3480156104cf57600080fd5b506102e8610c03565b3480156104e457600080fd5b506102d56104f3366004611c40565b610c71565b34801561050457600080fd5b506102e8610513366004611bf8565b6001600160a01b031660009081526006602052604090205490565b34801561053a57600080fd5b506102d5610ce8565b34801561054f57600080fd5b506102e8610d58565b34801561056457600080fd5b50600d5461048b906001600160a01b031681565b34801561058457600080fd5b506000546001600160a01b031661048b565b3480156105a257600080fd5b506102e86105b1366004611bf8565b610da2565b3480156105c257600080fd5b5060408051808201909152600381526246584360e81b602082015261026f565b3480156105ee57600080fd5b5060105461048b906001600160a01b031681565b34801561060e57600080fd5b506102a561061d366004611bcc565b610dd5565b34801561062e57600080fd5b506102e860115481565b34801561064457600080fd5b5060145461048b906001600160a01b031681565b34801561066457600080fd5b506102d5610de2565b34801561067957600080fd5b506102e8610688366004611ccf565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b3480156106bf57600080fd5b506102d56106ce366004611bf8565b610e1f565b3480156106df57600080fd5b506102d5610e92565b3480156106f457600080fd5b506102d5610703366004611bf8565b610ef1565b34801561071457600080fd5b506102d5610f6f565b34801561072957600080fd5b506102d5610738366004611c9a565b610fd3565b34801561074957600080fd5b50600f5461048b906001600160a01b031681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107b89086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146107fd5760405162461bcd60e51b81526004016107f490611d08565b60405180910390fd5b601454604051630afbf02f60e11b81526001600160a01b038381166004830152909116906315f7e05e906024015b600060405180830381600087803b15801561084557600080fd5b505af1158015610859573d6000803e3d6000fd5b5050505050565b6000546001600160a01b0316331461088a5760405162461bcd60e51b81526004016107f490611d08565b60148054911515600160a81b0260ff60a81b19909216919091179055565b600080546001600160a01b031633146108d35760405162461bcd60e51b81526004016107f490611d08565b6002546108eb9030906001600160a01b031684611007565b90505b919050565b6001600160a01b0383166000908152600760209081526040808320338452909152812054600019146109a0576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260078252838120338252909152919091205461097b9184906110ed565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b6109ab848484611127565b90505b9392505050565b6003546001600160a01b0316600090815260066020526040812054610a02906002546001600160a01b03166000908152600660205260409020546109fc90600454906115e6565b906115e6565b905090565b6000546001600160a01b03163314610a315760405162461bcd60e51b81526004016107f490611d08565b6001600160a01b0382166000908152600a60205260409020805460ff1916821515179055610a5f8282611628565b5050565b6000546001600160a01b03163314610a8d5760405162461bcd60e51b81526004016107f490611d08565b6012805461ff0019169055565b600080546001600160a01b03163314610ac55760405162461bcd60e51b81526004016107f490611d08565b506001600160a01b03166000908152600a602052604090205460ff1690565b60006108eb8260001961075d565b601454604051631730cfdd60e21b81526001600160a01b0383811660048301526000921690635cc33f74906024015b602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108eb9190611d28565b6000546001600160a01b03163314610b8c5760405162461bcd60e51b81526004016107f490611d08565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610bd85760405162461bcd60e51b81526004016107f490611d08565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6014546040805163997664d760e01b815290516000926001600160a01b03169163997664d79160048083019260209291908290030181865afa158015610c4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a029190611d28565b6000546001600160a01b03163314610c9b5760405162461bcd60e51b81526004016107f490611d08565b6010811115610ce35760405162461bcd60e51b81526020600482015260146024820152734665652063616e2774206578636565642031362560601b60448201526064016107f4565b600b55565b6000546001600160a01b03163314610d125760405162461bcd60e51b81526004016107f490611d08565b604051600081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1600080546001600160a01b0319169055565b6014546040805163d54ad2a160e01b815290516000926001600160a01b03169163d54ad2a19160048083019260209291908290030181865afa158015610c4d573d6000803e3d6000fd5b601454604051638ecc37fb60e01b81526001600160a01b0383811660048301526000921690638ecc37fb90602401610b21565b60006109ae338484611127565b6000546001600160a01b03163314610e0c5760405162461bcd60e51b81526004016107f490611d08565b436011556012805460ff19166001179055565b6000546001600160a01b03163314610e495760405162461bcd60e51b81526004016107f490611d08565b600e80546001600160a01b0319166001600160a01b03838116918217909255601454604051630787a21360e51b815260048101929092529091169063f0f442609060240161082b565b601454604051630afbf02f60e11b81523360048201526001600160a01b03909116906315f7e05e90602401600060405180830381600087803b158015610ed757600080fd5b505af1158015610eeb573d6000803e3d6000fd5b50505050565b6000546001600160a01b03163314610f1b5760405162461bcd60e51b81526004016107f490611d08565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b03163314610f995760405162461bcd60e51b81526004016107f490611d08565b600d5460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610a5f573d6000803e3d6000fd5b6000546001600160a01b03163314610ffd5760405162461bcd60e51b81526004016107f490611d08565b610a5f8282611628565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526006909152918220546110589184906110ed565b6001600160a01b0380861660009081526006602052604080822093909355908516815220546110879083611739565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110db9086815260200190565b60405180910390a35060019392505050565b600081848411156111115760405162461bcd60e51b81526004016107f49190611b5f565b50600061111e8486611d57565b95945050505050565b600080546001600160a01b0385811691161480159061115457506000546001600160a01b03848116911614155b156111ab5760125460ff166111ab5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e000000000000000060448201526064016107f4565b6001600160a01b0384166000908152600a602052604090205460ff161580156111ed57506001600160a01b0383166000908152600a602052604090205460ff16155b6112245760405162461bcd60e51b81526020600482015260086024820152674e6963652074727960c01b60448201526064016107f4565b601254610100900460ff16156112a6576000546001600160a01b0385811691161480159061126057506000546001600160a01b03848116911614155b156112a6576013548211156112a65760405162461bcd60e51b815260206004820152600c60248201526b2a37b79036bab1b41039b4b960a11b60448201526064016107f4565b6011546112b4906001611d6e565b43116112f6576001600160a01b0383166000908152600a602090815260408083208054600160ff19918216811790925560099093529220805490911690911790555b601454600160a01b900460ff161561131a57611313848484611007565b90506109ae565b6010546000906001600160a01b038581169116148015611347575030600090815260066020526040812054115b905080801561135f5750601454600160a81b900460ff165b1561136c5761136c611798565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0388166000908152600690915291909120546113be9185906110ed565b6001600160a01b0386166000908152600660205260408120919091556113e4868661194f565b6113ee57836113f8565b6113f886856119c4565b6001600160a01b03861660009081526006602052604090205490915061141e9082611739565b6001600160a01b0380871660009081526006602052604090209190915560105487821691161480159061146a57506001600160a01b03861660009081526009602052604090205460ff16155b156114e0576014546001600160a01b0387811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b1580156114cd57600080fd5b505af19250505080156114de575060015b505b6010546001600160a01b0386811691161480159061151757506001600160a01b03851660009081526009602052604090205460ff16155b1561158d576014546001600160a01b0386811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561157a57600080fd5b505af192505050801561158b575060015b505b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115d291815260200190565b60405180910390a350600195945050505050565b60006109ae83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110ed565b6001600160a01b038216301480159061164f57506010546001600160a01b03838116911614155b61165857600080fd5b6001600160a01b0382166000908152600960205260409020805460ff191682158015919091179091556116f057601454604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca96906044015b600060405180830381600087803b1580156116d457600080fd5b505af11580156116e8573d6000803e3d6000fd5b505050505050565b6014546001600160a01b0383811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca96906044016116ba565b6000806117468385611d6e565b9050838110156109ae5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107f4565b6014805460ff60a01b1916600160a01b17905530600090815260066020526040812054604080516002808252606082019092529192506000919081602001602082028036833701905050905030816000815181106117f8576117f8611d86565b6001600160a01b039283166020918202929092010152600180548351921691839190811061182857611828611d86565b6001600160a01b039283166020918202929092010152600f5460405163791ac94760e01b815291169063791ac9479061186e908590600090869030904290600401611d9c565b600060405180830381600087803b15801561188857600080fd5b505af115801561189c573d6000803e3d6000fd5b5050505060006118b6600247611a7090919063ffffffff16565b905060006118c5476002611a70565b600d546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015611900573d6000803e3d6000fd5b50600e546040516001600160a01b039091169083156108fc029084906000818181858888f1935050505015801561193b573d6000803e3d6000fd5b50506014805460ff60a01b19169055505050565b6001600160a01b03821660009081526008602052604081205460ff168061198e57506001600160a01b03821660009081526008602052604090205460ff165b1580156109ae57506010546001600160a01b03848116911614806109ae5750506010546001600160a01b03908116911614919050565b6000806119e8600c546119e2600b5486611ab290919063ffffffff16565b90611a70565b30600090815260066020526040902054909150611a059082611739565b30600081815260066020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a569085815260200190565b60405180910390a3611a6883826115e6565b949350505050565b60006109ae83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b31565b600082611ac1575060006107c4565b6000611acd8385611e0d565b905082611ada8583611e2c565b146109ae5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107f4565b60008183611b525760405162461bcd60e51b81526004016107f49190611b5f565b50600061111e8486611e2c565b600060208083528351808285015260005b81811015611b8c57858101830151858201604001528201611b70565b81811115611b9e576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611bc957600080fd5b50565b60008060408385031215611bdf57600080fd5b8235611bea81611bb4565b946020939093013593505050565b600060208284031215611c0a57600080fd5b81356109ae81611bb4565b803580151581146108ee57600080fd5b600060208284031215611c3757600080fd5b6109ae82611c15565b600060208284031215611c5257600080fd5b5035919050565b600080600060608486031215611c6e57600080fd5b8335611c7981611bb4565b92506020840135611c8981611bb4565b929592945050506040919091013590565b60008060408385031215611cad57600080fd5b8235611cb881611bb4565b9150611cc660208401611c15565b90509250929050565b60008060408385031215611ce257600080fd5b8235611ced81611bb4565b91506020830135611cfd81611bb4565b809150509250929050565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b600060208284031215611d3a57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082821015611d6957611d69611d41565b500390565b60008219821115611d8157611d81611d41565b500190565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611dec5784516001600160a01b031683529383019391830191600101611dc7565b50506001600160a01b03969096166060850152505050608001529392505050565b6000816000190483118215151615611e2757611e27611d41565b500290565b600082611e4957634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220b28994ed03b3f2de5ee550d439671abda1517e35b41cb046ffcc9f099195890a64736f6c634300080a0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000008abaed62f16a265a2f29ccf3db11a6fd3cf055d8

-----Decoded View---------------
Arg [0] : _owner (address): 0x8ABaEd62F16A265a2f29ccF3DB11A6fD3Cf055d8

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000008abaed62f16a265a2f29ccf3db11a6fd3cf055d8


Deployed Bytecode Sourcemap

10162:10085:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12813:80;;;;;;;;;;-1:-1:-1;12885:5:0;;;;;;;;;;;;-1:-1:-1;;;12885:5:0;;;;12813:80;;;;;;;:::i;:::-;;;;;;;;13235:216;;;;;;;;;;-1:-1:-1;13235:216:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;13235:216:0;1072:187:1;18738:110:0;;;;;;;;;;-1:-1:-1;18738:110:0;;;;;:::i;:::-;;:::i;:::-;;12543:88;;;;;;;;;;-1:-1:-1;12616:12:0;;12543:88;;;1662:25:1;;;1650:2;1635:18;12543:88:0;1516:177:1;19472:112:0;;;;;;;;;;-1:-1:-1;19472:112:0;;;;;:::i;:::-;;:::i;19028:139::-;;;;;;;;;;-1:-1:-1;19028:139:0;;;;;:::i;:::-;;:::i;13753:370::-;;;;;;;;;;-1:-1:-1;13753:370:0;;;;;:::i;:::-;;:::i;19179:142::-;;;;;;;;;;;;;:::i;3091:103::-;;;;;;;;;;-1:-1:-1;3091:103:0;;;;;:::i;:::-;3146:4;3181:5;-1:-1:-1;;;;;3170:16:0;;;3181:5;;3170:16;;3091:103;12637:80;;;;;;;;;;-1:-1:-1;12637:80:0;;10539:1;2836:36:1;;2824:2;2809:18;12637:80:0;2694:184:1;17394:158:0;;;;;;;;;;-1:-1:-1;17394:158:0;;;;;:::i;:::-;;:::i;20164:80::-;;;;;;;;;;;;;:::i;17564:115::-;;;;;;;;;;-1:-1:-1;17564:115:0;;;;;:::i;:::-;;:::i;13459:122::-;;;;;;;;;;-1:-1:-1;13459:122:0;;;;;:::i;:::-;;:::i;19999:157::-;;;;;;;;;;-1:-1:-1;19999:157:0;;;;;:::i;:::-;;:::i;19329:135::-;;;;;;;;;;-1:-1:-1;19329:135:0;;;;;:::i;:::-;;:::i;11163:85::-;;;;;;;;;;-1:-1:-1;11163:85:0;;;;-1:-1:-1;;;;;11163:85:0;;;;;;-1:-1:-1;;;;;3383:32:1;;;3365:51;;3353:2;3338:18;11163:85:0;3203:219:1;18176:119:0;;;;;;;;;;-1:-1:-1;18176:119:0;;;;;:::i;:::-;;:::i;19752:115::-;;;;;;;;;;;;;:::i;18303:139::-;;;;;;;;;;-1:-1:-1;18303:139:0;;;;;:::i;:::-;;:::i;12983:105::-;;;;;;;;;;-1:-1:-1;12983:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;13067:18:0;13049:7;13067:18;;;:9;:18;;;;;;;12983:105;3806:139;;;;;;;;;;;;;:::i;19879:111::-;;;;;;;;;;;;;:::i;11064:92::-;;;;;;;;;;-1:-1:-1;11064:92:0;;;;-1:-1:-1;;;;;11064:92:0;;;12899:78;;;;;;;;;;-1:-1:-1;12951:7:0;12969:5;-1:-1:-1;;;;;12969:5:0;12899:78;;18860:156;;;;;;;;;;-1:-1:-1;18860:156:0;;;;;:::i;:::-;;:::i;12723:84::-;;;;;;;;;;-1:-1:-1;12797:7:0;;;;;;;;;;;;-1:-1:-1;;;12797:7:0;;;;12723:84;;11288:19;;;;;;;;;;-1:-1:-1;11288:19:0;;;;-1:-1:-1;;;;;11288:19:0;;;13589:156;;;;;;;;;;-1:-1:-1;13589:156:0;;;;;:::i;:::-;;:::i;11316:25::-;;;;;;;;;;;;;;;;11484:38;;;;;;;;;;-1:-1:-1;11484:38:0;;;;-1:-1:-1;;;;;11484:38:0;;;17259:115;;;;;;;;;;;;;:::i;13094:133::-;;;;;;;;;;-1:-1:-1;13094:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;13196:19:0;;;13178:7;13196:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;13094:133;19592:152;;;;;;;;;;-1:-1:-1;19592:152:0;;;;;:::i;:::-;;:::i;18636:90::-;;;;;;;;;;;;;:::i;3319:136::-;;;;;;;;;;-1:-1:-1;3319:136:0;;;;;:::i;:::-;;:::i;18454:174::-;;;;;;;;;;;;;:::i;18036:132::-;;;;;;;;;;-1:-1:-1;18036:132:0;;;;;:::i;:::-;;:::i;11257:24::-;;;;;;;;;;-1:-1:-1;11257:24:0;;;;-1:-1:-1;;;;;11257:24:0;;;13235:216;13339:10;13310:4;13327:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;13327:32:0;;;;;;;;;;:41;;;13384:37;13310:4;;13327:32;;13384:37;;;;13362:6;1662:25:1;;1650:2;1635:18;;1516:177;13384:37:0;;;;;;;;-1:-1:-1;13439:4:0;13235:216;;;;;:::o;18738:110::-;3146:4;3181:5;-1:-1:-1;;;;;3181:5:0;2998:10;3170:16;2982:38;;;;-1:-1:-1;;;2982:38:0;;;;;;;:::i;:::-;;;;;;;;;18807:11:::1;::::0;:33:::1;::::0;-1:-1:-1;;;18807:33:0;;-1:-1:-1;;;;;3383:32:1;;;18807:33:0::1;::::0;::::1;3365:51:1::0;18807:11:0;;::::1;::::0;:25:::1;::::0;3338:18:1;;18807:33:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18738:110:::0;:::o;19472:112::-;3146:4;3181:5;-1:-1:-1;;;;;3181:5:0;2998:10;3170:16;2982:38;;;;-1:-1:-1;;;2982:38:0;;;;;;;:::i;:::-;19548:18:::1;:28:::0;;;::::1;;-1:-1:-1::0;;;19548:28:0::1;-1:-1:-1::0;;;;19548:28:0;;::::1;::::0;;;::::1;::::0;;19472:112::o;19028:139::-;19092:4;3181:5;;-1:-1:-1;;;;;3181:5:0;2998:10;3170:16;2982:38;;;;-1:-1:-1;;;2982:38:0;;;;;;;:::i;:::-;19146:4:::1;::::0;19116:43:::1;::::0;19139:4:::1;::::0;-1:-1:-1;;;;;19146:4:0::1;19152:6:::0;19116:14:::1;:43::i;:::-;19109:50;;3022:1;19028:139:::0;;;:::o;13753:370::-;-1:-1:-1;;;;;13873:19:0;;13853:4;13873:19;;;:11;:19;;;;;;;;13893:10;13873:31;;;;;;;;-1:-1:-1;;13873:52:0;13870:186;;13975:69;;;;;;;;;;;-1:-1:-1;;;13975:69:0;;;;;;;;-1:-1:-1;;;;;13975:19:0;;-1:-1:-1;13975:19:0;;;:11;:19;;;;;13995:10;13975:31;;;;;;;;;;:69;;14011:6;;13975:35;:69::i;:::-;-1:-1:-1;;;;;13941:19:0;;;;;;:11;:19;;;;;;;;13961:10;13941:31;;;;;;;:103;13870:186;14075:40;14089:6;14097:9;14108:6;14075:13;:40::i;:::-;14068:47;;13753:370;;;;;;:::o;19179:142::-;19307:4;;-1:-1:-1;;;;;19307:4:0;19232:7;13067:18;;;:9;:18;;;;;;19259:54;;19286:4;;-1:-1:-1;;;;;19286:4:0;13049:7;13067:18;;;:9;:18;;;;;;19259:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;19252:61;;19179:142;:::o;17394:158::-;3146:4;3181:5;-1:-1:-1;;;;;3181:5:0;2998:10;3170:16;2982:38;;;;-1:-1:-1;;;2982:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17471:15:0;::::1;;::::0;;;:5:::1;:15;::::0;;;;:24;;-1:-1:-1;;17471:24:0::1;::::0;::::1;;;::::0;;17506:38:::1;17471:15:::0;:24;17506:20:::1;:38::i;:::-;17394:158:::0;;:::o;20164:80::-;3146:4;3181:5;-1:-1:-1;;;;;3181:5:0;2998:10;3170:16;2982:38;;;;-1:-1:-1;;;2982:38:0;;;;;;;:::i;:::-;20220:8:::1;:16:::0;;-1:-1:-1;;20220:16:0::1;::::0;;20164:80::o;17564:115::-;17632:4;3181:5;;-1:-1:-1;;;;;3181:5:0;2998:10;3170:16;2982:38;;;;-1:-1:-1;;;2982:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;;17656:15:0::1;;::::0;;;:5:::1;:15;::::0;;;;;::::1;;::::0;17564:115::o;13459:122::-;13514:4;13538:35;13546:7;-1:-1:-1;;13538:7:0;:35::i;19999:157::-;20102:11;;:46;;-1:-1:-1;;;20102:46:0;;-1:-1:-1;;;;;3383:32:1;;;20102:46:0;;;3365:51:1;20075:7:0;;20102:11;;:33;;3338:18:1;;20102:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;19329:135::-;3146:4;3181:5;-1:-1:-1;;;;;3181:5:0;2998:10;3170:16;2982:38;;;;-1:-1:-1;;;2982:38:0;;;;;;;:::i;:::-;19413:15:::1;:43:::0;;-1:-1:-1;;;;;;19413:43:0::1;-1:-1:-1::0;;;;;19413:43:0;;;::::1;::::0;;;::::1;::::0;;19329:135::o;18176:119::-;3146:4;3181:5;-1:-1:-1;;;;;3181:5:0;2998:10;3170:16;2982:38;;;;-1:-1:-1;;;2982:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18259:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;18259:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18176:119::o;19752:115::-;19831:11;;:28;;;-1:-1:-1;;;19831:28:0;;;;19804:7;;-1:-1:-1;;;;;19831:11:0;;:26;;:28;;;;;;;;;;;;;;:11;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;18303:139::-;3146:4;3181:5;-1:-1:-1;;;;;3181:5:0;2998:10;3170:16;2982:38;;;;-1:-1:-1;;;2982:38:0;;;;;;;:::i;:::-;18381:2:::1;18373:4;:10;;18364:44;;;::::0;-1:-1:-1;;;18364:44:0;;5474:2:1;18364:44:0::1;::::0;::::1;5456:21:1::0;5513:2;5493:18;;;5486:30;-1:-1:-1;;;5532:18:1;;;5525:50;5592:18;;18364:44:0::1;5272:344:1::0;18364:44:0::1;18419:8;:15:::0;18303:139::o;3806:::-;3146:4;3181:5;-1:-1:-1;;;;;3181:5:0;2998:10;3170:16;2982:38;;;;-1:-1:-1;;;2982:38:0;;;;;;;:::i;:::-;3876:32:::1;::::0;3905:1:::1;3365:51:1::0;;3876:32:0::1;::::0;3353:2:1;3338:18;3876:32:0::1;;;;;;;3935:1;3919:18:::0;;-1:-1:-1;;;;;;3919:18:0::1;::::0;;3806:139::o;19879:111::-;19956:11;;:26;;;-1:-1:-1;;;19956:26:0;;;;19929:7;;-1:-1:-1;;;;;19956:11:0;;:24;;:26;;;;;;;;;;;;;;:11;:26;;;;;;;;;;;;;;18860:156;18961:11;;:47;;-1:-1:-1;;;18961:47:0;;-1:-1:-1;;;;;3383:32:1;;;18961:47:0;;;3365:51:1;18934:7:0;;18961:11;;:34;;3338:18:1;;18961:47:0;3203:219:1;13589:156:0;13669:4;13693:44;13707:10;13719:9;13730:6;13693:13;:44::i;17259:115::-;3146:4;3181:5;-1:-1:-1;;;;;3181:5:0;2998:10;3170:16;2982:38;;;;-1:-1:-1;;;2982:38:0;;;;;;;:::i;:::-;17325:12:::1;17312:10;:25:::0;17348:11:::1;:18:::0;;-1:-1:-1;;17348:18:0::1;17362:4;17348:18;::::0;;17259:115::o;19592:152::-;3146:4;3181:5;-1:-1:-1;;;;;3181:5:0;2998:10;3170:16;2982:38;;;;-1:-1:-1;;;2982:38:0;;;;;;;:::i;:::-;19662:8:::1;:29:::0;;-1:-1:-1;;;;;;19662:29:0::1;-1:-1:-1::0;;;;;19662:29:0;;::::1;::::0;;::::1;::::0;;;19702:11:::1;::::0;:34:::1;::::0;-1:-1:-1;;;19702:34:0;;::::1;::::0;::::1;3365:51:1::0;;;;19702:11:0;;::::1;::::0;:23:::1;::::0;3338:18:1;;19702:34:0::1;3203:219:1::0;18636:90:0;18681:11;;:37;;-1:-1:-1;;;18681:37:0;;18707:10;18681:37;;;3365:51:1;-1:-1:-1;;;;;18681:11:0;;;;:25;;3338:18:1;;18681:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18636:90::o;3319:136::-;3146:4;3181:5;-1:-1:-1;;;;;3181:5:0;2998:10;3170:16;2982:38;;;;-1:-1:-1;;;2982:38:0;;;;;;;:::i;:::-;3395:5:::1;:11:::0;;-1:-1:-1;;;;;;3395:11:0::1;-1:-1:-1::0;;;;;3395:11:0;::::1;::::0;;::::1;::::0;;;3422:25:::1;::::0;3365:51:1;;;3422:25:0::1;::::0;3353:2:1;3338:18;3422:25:0::1;;;;;;;3319:136:::0;:::o;18454:174::-;3146:4;3181:5;-1:-1:-1;;;;;3181:5:0;2998:10;3170:16;2982:38;;;;-1:-1:-1;;;2982:38:0;;;;;;;:::i;:::-;18575:15:::1;::::0;18567:53:::1;::::0;18535:21:::1;::::0;-1:-1:-1;;;;;18575:15:0::1;::::0;18567:53;::::1;;;::::0;18535:21;;18506:26:::1;18567:53:::0;18506:26;18567:53;18535:21;18575:15;18567:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;18036:132:::0;3146:4;3181:5;-1:-1:-1;;;;;3181:5:0;2998:10;3170:16;2982:38;;;;-1:-1:-1;;;2982:38:0;;;;;;;:::i;:::-;18124:36:::1;18145:6;18153;18124:20;:36::i;15622:330::-:0;15752:53;;;;;;;;;;;-1:-1:-1;;;15752:53:0;;;;;;;;-1:-1:-1;;;;;15752:17:0;;15715:4;15752:17;;;:9;:17;;;;;;;:53;;15774:6;;15752:21;:53::i;:::-;-1:-1:-1;;;;;15732:17:0;;;;;;;:9;:17;;;;;;:73;;;;15839:20;;;;;;;:32;;15864:6;15839:24;:32::i;:::-;-1:-1:-1;;;;;15816:20:0;;;;;;;:9;:20;;;;;;;:55;;;;15887:35;;;;;;;;;;15915:6;1662:25:1;;1650:2;1635:18;;1516:177;15887:35:0;;;;;;;;-1:-1:-1;15940:4:0;15622:330;;;;;:::o;753:192::-;839:7;875:12;867:6;;;;859:29;;;;-1:-1:-1;;;859:29:0;;;;;;;;:::i;:::-;-1:-1:-1;899:9:0;911:5;915:1;911;:5;:::i;:::-;899:17;753:192;-1:-1:-1;;;;;753:192:0:o;14131:1479::-;14223:4;14253:5;;-1:-1:-1;;;;;14244:14:0;;;14253:5;;14244:14;;;;:35;;-1:-1:-1;14274:5:0;;-1:-1:-1;;;;;14262:17:0;;;14274:5;;14262:17;;14244:35;14240:89;;;14289:11;;;;14281:48;;;;-1:-1:-1;;;14281:48:0;;6301:2:1;14281:48:0;;;6283:21:1;6340:2;6320:18;;;6313:30;6379:26;6359:18;;;6352:54;6423:18;;14281:48:0;6099:348:1;14281:48:0;-1:-1:-1;;;;;14390:13:0;;;;;;:5;:13;;;;;;;;14389:14;:35;;;;-1:-1:-1;;;;;;14408:16:0;;;;;;:5;:16;;;;;;;;14407:17;14389:35;14380:57;;;;-1:-1:-1;;;14380:57:0;;6654:2:1;14380:57:0;;;6636:21:1;6693:1;6673:18;;;6666:29;-1:-1:-1;;;6711:18:1;;;6704:38;6759:18;;14380:57:0;6452:331:1;14380:57:0;14452:8;;;;;;;14448:130;;;14490:5;;-1:-1:-1;;;;;14482:13:0;;;14490:5;;14482:13;;;;:34;;-1:-1:-1;14511:5:0;;-1:-1:-1;;;;;14499:17:0;;;14511:5;;14499:17;;14482:34;14478:80;;;14535:6;;14527;:14;;14518:40;;;;-1:-1:-1;;;14518:40:0;;6990:2:1;14518:40:0;;;6972:21:1;7029:2;7009:18;;;7002:30;-1:-1:-1;;;7048:18:1;;;7041:42;7100:18;;14518:40:0;6788:336:1;14518:40:0;14609:10;;:14;;14622:1;14609:14;:::i;:::-;14592:12;:32;14588:139;;-1:-1:-1;;;;;14642:16:0;;;;;;:5;:16;;;;;;;;:23;;14661:4;-1:-1:-1;;14642:23:0;;;;;;;;14680:16;:27;;;;;:34;;;;;;;;;;14588:139;14749:6;;-1:-1:-1;;;14749:6:0;;;;14746:63;;;14765:41;14780:6;14788:9;14799:6;14765:14;:41::i;:::-;14758:48;;;;14746:63;14880:4;;14831:19;;-1:-1:-1;;;;;14869:15:0;;;14880:4;;14869:15;:47;;;;-1:-1:-1;14906:4:0;14915:1;13067:18;;;:9;:18;;;;;;14888:28;14869:47;14831:86;;14931:14;:36;;;;-1:-1:-1;14949:18:0;;-1:-1:-1;;;14949:18:0;;;;14931:36;14928:55;;;14970:10;:8;:10::i;:::-;15015:53;;;;;;;;;;;-1:-1:-1;;;15015:53:0;;;;;;;;-1:-1:-1;;;;;15015:17:0;;-1:-1:-1;15015:17:0;;;:9;:17;;;;;;;;:53;;15037:6;;15015:21;:53::i;:::-;-1:-1:-1;;;;;14995:17:0;;;;;;:9;:17;;;;;:73;;;;15106:32;15005:6;15128:9;15106:13;:32::i;:::-;:67;;15167:6;15106:67;;;15141:23;15149:6;15157;15141:7;:23::i;:::-;-1:-1:-1;;;;;15217:20:0;;;;;;:9;:20;;;;;;15081:92;;-1:-1:-1;15217:40:0;;15081:92;15217:24;:40::i;:::-;-1:-1:-1;;;;;15194:20:0;;;;;;;:9;:20;;;;;:63;;;;15283:4;;15273:14;;;15283:4;;15273:14;;;;:43;;-1:-1:-1;;;;;;15292:24:0;;;;;;:16;:24;;;;;;;;15291:25;15273:43;15270:114;;;15323:11;;-1:-1:-1;;;;;15352:17:0;;;15323:11;15352:17;;;:9;:17;;;;;;;;15323:47;;-1:-1:-1;;;15323:47:0;;;;;7436:51:1;;;;7503:18;;;7496:34;15323:11:0;;;:20;;7409:18:1;;15323:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15319:63;;15410:4;;-1:-1:-1;;;;;15397:17:0;;;15410:4;;15397:17;;;;:49;;-1:-1:-1;;;;;;15419:27:0;;;;;;:16;:27;;;;;;;;15418:28;15397:49;15394:126;;;15453:11;;-1:-1:-1;;;;;15485:20:0;;;15453:11;15485:20;;;:9;:20;;;;;;;;15453:53;;-1:-1:-1;;;15453:53:0;;;;;7436:51:1;;;;7503:18;;;7496:34;15453:11:0;;;:20;;7409:18:1;;15453:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15449:69;;15554:9;-1:-1:-1;;;;;15537:43:0;15546:6;-1:-1:-1;;;;;15537:43:0;;15565:14;15537:43;;;;1662:25:1;;1650:2;1635:18;;1516:177;15537:43:0;;;;;;;;-1:-1:-1;15598:4:0;;14131:1479;-1:-1:-1;;;;;14131:1479:0:o;611:136::-;669:7;696:43;700:1;703;696:43;;;;;;;;;;;;;;;;;:3;:43::i;17691:337::-;-1:-1:-1;;;;;17778:23:0;;17796:4;17778:23;;;;:41;;-1:-1:-1;17815:4:0;;-1:-1:-1;;;;;17805:14:0;;;17815:4;;17805:14;;17778:41;17770:50;;;;;;-1:-1:-1;;;;;17831:24:0;;;;;;:16;:24;;;;;:33;;-1:-1:-1;;17831:33:0;;;;;;;;;;;;17875:146;;17900:11;;:31;;-1:-1:-1;;;17900:31:0;;-1:-1:-1;;;;;7454:32:1;;;17900:31:0;;;7436:51:1;17900:11:0;7503:18:1;;;7496:34;17900:11:0;;;;:20;;7409:18:1;;17900:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17394:158;;:::o;17875:146::-;17962:11;;-1:-1:-1;;;;;17991:17:0;;;17962:11;17991:17;;;:9;:17;;;;;;;;17962:47;;-1:-1:-1;;;17962:47:0;;;;;7436:51:1;;;;7503:18;;;7496:34;17962:11:0;;;:20;;7409:18:1;;17962:47:0;7262:274:1;424:181:0;482:7;;514:5;518:1;514;:5;:::i;:::-;502:17;;543:1;538;:6;;530:46;;;;-1:-1:-1;;;530:46:0;;8030:2:1;530:46:0;;;8012:21:1;8069:2;8049:18;;;8042:30;8108:29;8088:18;;;8081:57;8155:18;;530:46:0;7828:351:1;16544:701:0;11626:6;:13;;-1:-1:-1;;;;11626:13:0;-1:-1:-1;;;11626:13:0;;;16634:4:::1;-1:-1:-1::0;13067:18:0;;;:9;:18;;;;;;16677:16:::1;::::0;;16691:1:::1;16677:16:::0;;;;;::::1;::::0;;;16593:47;;-1:-1:-1;16653:21:0::1;::::0;16677:16;::::1;;;;;;;;;;;::::0;-1:-1:-1;16677:16:0::1;16653:40;;16722:4;16704;16709:1;16704:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16704:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;16748:4:::1;::::0;;16738:7;;16748:4;::::1;::::0;16738;;16748;16738:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;16738:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;16775:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;16775:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;16847:12;;16775:6:::1;::::0;16890:4;;16917::::1;::::0;16937:15:::1;::::0;16775:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16984:22;17009:30;17037:1;17010:21;17009:27;;:30;;;;:::i;:::-;16984:55:::0;-1:-1:-1;17050:23:0::1;17076:30;17077:21;17104:1;17076:27;:30::i;:::-;17142:15;::::0;17134:50:::1;::::0;17050:56;;-1:-1:-1;;;;;;17142:15:0::1;::::0;17134:50;::::1;;;::::0;17050:56;;17142:15:::1;17134:50:::0;17142:15;17134:50;17050:56;17142:15;17134:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;17203:8:0::1;::::0;17195:42:::1;::::0;-1:-1:-1;;;;;17203:8:0;;::::1;::::0;17195:42;::::1;;;::::0;17222:14;;17203:8:::1;17195:42:::0;17203:8;17195:42;17222:14;17203:8;17195:42;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;11644:6:0;:14;;-1:-1:-1;;;;11644:14:0;;;-1:-1:-1;;;16544:701:0:o;15963:206::-;-1:-1:-1;;;;;16072:19:0;;16044:4;16072:19;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;16095:22:0;;;;;;:11;:22;;;;;;;;16072:45;16070:48;:90;;;;-1:-1:-1;16134:4:0;;-1:-1:-1;;;;;16124:14:0;;;16134:4;;16124:14;;:35;;-1:-1:-1;;16155:4:0;;-1:-1:-1;;;;;16155:4:0;;;16142:17;;;;15963:206;-1:-1:-1;15963:206:0:o;16177:354::-;16244:7;16264:17;16304:40;16329:14;;16304:20;16315:8;;16304:6;:10;;:20;;;;:::i;:::-;:24;;:40::i;:::-;16400:4;16382:24;;;;:9;:24;;;;;;16292:52;;-1:-1:-1;16382:39:0;;16292:52;16382:28;:39::i;:::-;16373:4;16355:24;;;;:9;:24;;;;;;;:66;;;;16437:42;;-1:-1:-1;;;;;16437:42:0;;;;;;;16469:9;1662:25:1;;1650:2;1635:18;;1516:177;16437:42:0;;;;;;;;16502:21;:6;16513:9;16502:10;:21::i;:::-;16495:28;16177:354;-1:-1:-1;;;;16177:354:0:o;1207:132::-;1265:7;1292:39;1296:1;1299;1292:39;;;;;;;;;;;;;;;;;:3;:39::i;951:250::-;1009:7;1033:6;1029:47;;-1:-1:-1;1063:1:0;1056:8;;1029:47;1088:9;1100:5;1104:1;1100;:5;:::i;:::-;1088:17;-1:-1:-1;1133:1:0;1124:5;1128:1;1088:17;1124:5;:::i;:::-;:10;1116:56;;;;-1:-1:-1;;;1116:56:0;;10030:2:1;1116:56:0;;;10012:21:1;10069:2;10049:18;;;10042:30;10108:34;10088:18;;;10081:62;-1:-1:-1;;;10159:18:1;;;10152:31;10200:19;;1116:56:0;9828:397:1;1345:345:0;1431:7;1533:12;1526:5;1518:28;;;;-1:-1:-1;;;1518:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1557:9:0;1569:5;1573:1;1569;:5;:::i;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;671:70;616:131;:::o;752:315::-;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1264:247::-;1323:6;1376:2;1364:9;1355:7;1351:23;1347:32;1344:52;;;1392:1;1389;1382:12;1344:52;1431:9;1418:23;1450:31;1475:5;1450:31;:::i;1698:160::-;1763:20;;1819:13;;1812:21;1802:32;;1792:60;;1848:1;1845;1838:12;1863:180;1919:6;1972:2;1960:9;1951:7;1947:23;1943:32;1940:52;;;1988:1;1985;1978:12;1940:52;2011:26;2027:9;2011:26;:::i;2048:180::-;2107:6;2160:2;2148:9;2139:7;2135:23;2131:32;2128:52;;;2176:1;2173;2166:12;2128:52;-1:-1:-1;2199:23:1;;2048:180;-1:-1:-1;2048:180:1:o;2233:456::-;2310:6;2318;2326;2379:2;2367:9;2358:7;2354:23;2350:32;2347:52;;;2395:1;2392;2385:12;2347:52;2434:9;2421:23;2453:31;2478:5;2453:31;:::i;:::-;2503:5;-1:-1:-1;2560:2:1;2545:18;;2532:32;2573:33;2532:32;2573:33;:::i;:::-;2233:456;;2625:7;;-1:-1:-1;;;2679:2:1;2664:18;;;;2651:32;;2233:456::o;2883:315::-;2948:6;2956;3009:2;2997:9;2988:7;2984:23;2980:32;2977:52;;;3025:1;3022;3015:12;2977:52;3064:9;3051:23;3083:31;3108:5;3083:31;:::i;:::-;3133:5;-1:-1:-1;3157:35:1;3188:2;3173:18;;3157:35;:::i;:::-;3147:45;;2883:315;;;;;:::o;3870:388::-;3938:6;3946;3999:2;3987:9;3978:7;3974:23;3970:32;3967:52;;;4015:1;4012;4005:12;3967:52;4054:9;4041:23;4073:31;4098:5;4073:31;:::i;:::-;4123:5;-1:-1:-1;4180:2:1;4165:18;;4152:32;4193:33;4152:32;4193:33;:::i;:::-;4245:7;4235:17;;;3870:388;;;;;:::o;4749:329::-;4951:2;4933:21;;;4990:1;4970:18;;;4963:29;-1:-1:-1;;;5023:2:1;5008:18;;5001:36;5069:2;5054:18;;4749:329::o;5083:184::-;5153:6;5206:2;5194:9;5185:7;5181:23;5177:32;5174:52;;;5222:1;5219;5212:12;5174:52;-1:-1:-1;5245:16:1;;5083:184;-1:-1:-1;5083:184:1:o;5837:127::-;5898:10;5893:3;5889:20;5886:1;5879:31;5929:4;5926:1;5919:15;5953:4;5950:1;5943:15;5969:125;6009:4;6037:1;6034;6031:8;6028:34;;;6042:18;;:::i;:::-;-1:-1:-1;6079:9:1;;5969:125::o;7129:128::-;7169:3;7200:1;7196:6;7193:1;7190:13;7187:39;;;7206:18;;:::i;:::-;-1:-1:-1;7242:9:1;;7129:128::o;8316:127::-;8377:10;8372:3;8368:20;8365:1;8358:31;8408:4;8405:1;8398:15;8432:4;8429:1;8422:15;8448:980;8710:4;8758:3;8747:9;8743:19;8789:6;8778:9;8771:25;8815:2;8853:6;8848:2;8837:9;8833:18;8826:34;8896:3;8891:2;8880:9;8876:18;8869:31;8920:6;8955;8949:13;8986:6;8978;8971:22;9024:3;9013:9;9009:19;9002:26;;9063:2;9055:6;9051:15;9037:29;;9084:1;9094:195;9108:6;9105:1;9102:13;9094:195;;;9173:13;;-1:-1:-1;;;;;9169:39:1;9157:52;;9264:15;;;;9229:12;;;;9205:1;9123:9;9094:195;;;-1:-1:-1;;;;;;;9345:32:1;;;;9340:2;9325:18;;9318:60;-1:-1:-1;;;9409:3:1;9394:19;9387:35;9306:3;8448:980;-1:-1:-1;;;8448:980:1:o;9433:168::-;9473:7;9539:1;9535;9531:6;9527:14;9524:1;9521:21;9516:1;9509:9;9502:17;9498:45;9495:71;;;9546:18;;:::i;:::-;-1:-1:-1;9586:9:1;;9433:168::o;9606:217::-;9646:1;9672;9662:132;;9716:10;9711:3;9707:20;9704:1;9697:31;9751:4;9748:1;9741:15;9779:4;9776:1;9769:15;9662:132;-1:-1:-1;9808:9:1;;9606:217::o

Swarm Source

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