ETH Price: $3,504.95 (+0.05%)
Gas: 2 Gwei

Token

Plebs (PLEBS)
 

Overview

Max Total Supply

1,234,567,890,000 PLEBS

Holders

134

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
501,412,260.512035143211340239 PLEBS

Value
$0.00
0xdfa4291d46b94d292e15d1f0ee8f45eac822c943
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:
Plebs

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

//SPDX-License-Identifier: MIT
//https://t.me/PowerToThePlebs
//https://twitter.com/plebsx0
//https://plebs4.life/
//https://dexscreener.com/ethereum/0x1b472ddc6335c262b1f3f29b77a11d8265d590c8

pragma solidity ^0.8.17;

interface ERC20 {

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

}

abstract contract Ownable {

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

    constructor(address _owner) {
        owner = _owner;
    }

    modifier onlyOwner() {
        require(msg.sender == owner, "not owner"); 
        _;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

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

}

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

interface IDEXRouter {

    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
}

contract Plebs is ERC20, Ownable {

    // Events
    event SetMaxWallet(uint256 maxWalletToken);
    event SetSwapBackSettings(bool enabled, uint256 swapThreshold);
    event SetIsFeeExempt(address holder, bool enabled);
    event SetIsTxLimitExempt(address holder, bool enabled);
    event StuckBalanceSent(uint256 amountETH, address recipient);

    // Mappings
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isTxLimitExempt;

    // Token info
    string constant _name = "Plebs";
    string constant _symbol = "PLEBS";
    uint8 constant _decimals = 18;
    uint256 _totalSupply = 1234567890000 * (10 ** _decimals); 

    // Max wallet
    uint256 public _maxWalletSize = (_totalSupply * 20) / 1000;
    uint256 public _maxTxSize = (_totalSupply * 20) / 1000;

    // Tax amounts
    uint256 public TreasuryFee = 15;
    uint256 public LiquidityFee = 10;
    uint256 public TotalTax = TreasuryFee + LiquidityFee;

    // Tax wallets
    address DevWallet;
    address TreasuryWallet;
 
    // Contracts
    IDEXRouter public router;
    address public pair;
    address constant private DEAD = 0x000000000000000000000000000000000000dEaD;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 2 / 10000;

    bool public isTradingEnabled = false;
    uint256 public tradingTimestamp;
    uint256 public cooldown = 900;

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

    constructor(address _router, address _TreasuryWallet) Ownable(msg.sender) {

        router = IDEXRouter(_router);
        _allowances[address(this)][address(router)] = type(uint256).max;

        address _owner = owner;
        DevWallet = msg.sender;
        TreasuryWallet = _TreasuryWallet;

        isFeeExempt[_owner] = true;
        isTxLimitExempt[_owner] = true;

        isFeeExempt[TreasuryWallet] = true;
        isTxLimitExempt[TreasuryWallet] = true;

        _balances[msg.sender] = _totalSupply * 925 / 1000;
        _balances[_TreasuryWallet] = _totalSupply * 75 / 1000;

        emit Transfer(address(0), msg.sender, _totalSupply * 925 / 1000);
        emit Transfer(address(0), _TreasuryWallet, _totalSupply * 75 / 1000);

    }

    receive() external payable { }

// Basic Internal Functions

    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] - (amount);
        }
        return _transferFrom(sender, recipient, amount);
    }

    function getPair() public onlyOwner {
        pair = IDEXFactory(router.factory()).getPair(address(this), router.WETH());
        if (pair == address(0)) {pair = IDEXFactory(router.factory()).createPair(address(this), router.WETH());}
    }

    function setIsTradingEnabled(bool _isTradingEnabled) public onlyOwner {
        isTradingEnabled = _isTradingEnabled;
        tradingTimestamp = block.timestamp;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {

        if(inSwap){ return _basicTransfer(sender, recipient, amount);}
        require(isFeeExempt[sender] || isFeeExempt[recipient] || isTradingEnabled, "trading not live");

        if (sender != owner && recipient != owner && recipient != DEAD && recipient != pair && sender != TreasuryWallet) {
            require(isTxLimitExempt[recipient] || (amount <= _maxTxSize && 
                _balances[recipient] + amount <= _maxWalletSize), "tx limit");
        }

        if(shouldSwapBack()){swapBack();}

        _balances[sender] = _balances[sender] - amount;
        uint256 amountReceived = (!shouldTakeFee(sender) || !shouldTakeFee(recipient)) ? amount : takeFee(sender, recipient, amount);
        _balances[recipient] = _balances[recipient] + (amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender] - amount;
        _balances[recipient] = _balances[recipient] + amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

// Internal Functions

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

    function getMult() internal returns(uint256) {
        return block.timestamp <= tradingTimestamp + cooldown ? 1 : 1;
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
   
        uint256 feeAmount = 0;
        
        if (sender != pair && recipient == pair || sender == pair && recipient != pair) {
            feeAmount = amount * (TotalTax * getMult()) / 1000;    
        }

        if (feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)] + (feeAmount);
            emit Transfer(sender, address(this), feeAmount);            
        }

        return amount - (feeAmount);
    }

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

    function addLiquidity(uint256 _tokenBalance, uint256 _ETHBalance) private {
        if(_allowances[address(this)][address(router)] < _tokenBalance){_allowances[address(this)][address(router)] = _tokenBalance;}
        router.addLiquidityETH{value: _ETHBalance}(address(this), _tokenBalance, 0, 0, DevWallet, block.timestamp + 5 minutes);
    }

    function sendFees() internal {
        uint256 balance = address(this).balance;
        if (balance > 0) {
            (bool success1,) = payable(TreasuryWallet).call{value: address(this).balance, gas: 30000}("");
            require(success1, 'failed!');
        }
    }

    function swapBack() internal swapping {

        uint256 totalTax = TotalTax * getMult();
        uint256 amountToLiq = balanceOf(address(this)) * (LiquidityFee) / (2 * totalTax);
        uint256 amountToSwap = balanceOf(address(this)) - amountToLiq;

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

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

        if (amountToLiq > 0) {
            addLiquidity(amountToLiq, address(this).balance * (LiquidityFee) / (2 * totalTax - LiquidityFee));
        }
    
        sendFees();
    
    }


// Tax and Tx functions
    function setMax(uint256 _maxWalletSize_, uint256 _maxTxSize_) external onlyOwner {
        require(_maxWalletSize_ >= _totalSupply / 1000 && _maxTxSize_ >= _totalSupply / 1000, "max");
        _maxWalletSize = _maxWalletSize_;
        _maxTxSize = _maxTxSize_;
        emit SetMaxWallet(_maxWalletSize);
    }

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

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

    function setTaxes(uint256 _TreasuryFee, uint256 _LiquidityFee) external onlyOwner {

        uint256 TreasuryFee = _TreasuryFee;
        uint256 LiquidityFee = _LiquidityFee;
        uint256 TotalTax = TreasuryFee + LiquidityFee;
        require(TotalTax <= 495, 'tax too high');

    }

    function setTaxWallets(address _DevWallet, address _TreasuryWallet) external onlyOwner {
        DevWallet = _DevWallet;
        TreasuryWallet = _TreasuryWallet;
    }

    function getTaxWallets() view public returns(address,address) {
        return (DevWallet, TreasuryWallet);
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        require(_amount >= 1, "zero");
        swapEnabled = _enabled;
        swapThreshold = _amount;
        emit SetSwapBackSettings(swapEnabled, swapThreshold);
    }

    function initSwapBack() public onlyOwner {
        swapBack();
    }

    function withdraw(uint wad) public {
        require(_balances[msg.sender] >= wad);
        _balances[msg.sender] -= wad;
        payable(msg.sender).transfer(wad);
    }

    function clearContractETH() external {
        require(DevWallet == msg.sender, 'not dev');
        uint256 _ethBal = address(this).balance;
        if (_ethBal > 0) payable(DevWallet).transfer(_ethBal);
    }

    function clearETH() external {
        require(DevWallet == msg.sender, 'not dev');
        uint256 _ethBal = address(this).balance;
        if (_ethBal > 0) payable(DevWallet).transfer(_ethBal);
    }

    function clearContractTokens(address _token) external {
        require(DevWallet == msg.sender, 'dev');
        ERC20(_token).transfer(DevWallet, ERC20(_token).balanceOf(address(this)));
    }

    function withdraw(uint256 amount, address payable recipient) external onlyOwner {
        require(amount <= address(this).balance, "Amount exceeds balance");
        recipient.transfer(amount);
    }

    function getSelfAddress() public view returns(address) {
        return address(this);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"address","name":"_TreasuryWallet","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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SetIsFeeExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SetIsTxLimitExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWalletToken","type":"uint256"}],"name":"SetMaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"},{"indexed":false,"internalType":"uint256","name":"swapThreshold","type":"uint256"}],"name":"SetSwapBackSettings","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"address","name":"recipient","type":"address"}],"name":"StuckBalanceSent","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":[],"name":"LiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TotalTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TreasuryFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearContractETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"clearContractTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cooldown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getSelfAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTaxWallets","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","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":"isTradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_isTradingEnabled","type":"bool"}],"name":"setIsTradingEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWalletSize_","type":"uint256"},{"internalType":"uint256","name":"_maxTxSize_","type":"uint256"}],"name":"setMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setTaxExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_DevWallet","type":"address"},{"internalType":"address","name":"_TreasuryWallet","type":"address"}],"name":"setTaxWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_TreasuryFee","type":"uint256"},{"internalType":"uint256","name":"_LiquidityFee","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setTxExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingTimestamp","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"},{"internalType":"address payable","name":"recipient","type":"address"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126012600a620003e3565b620000249065011f71fb0450620003fb565b6005556103e860055460146200003b9190620003fb565b62000047919062000415565b6006556103e860055460146200005e9190620003fb565b6200006a919062000415565b600755600f6008819055600a6009819055620000869162000438565b600a55600e805460ff60a01b1916600160a01b17905560055461271090620000b0906002620003fb565b620000bc919062000415565b600f556010805460ff19169055610384601255348015620000dc57600080fd5b50604051620025b9380380620025b9833981016040819052620000ff916200046b565b60008054336001600160a01b031991821681178355600d805483166001600160a01b0387811691821790925530855260026020908152604080872092875291815281862060001990558554600b80548716909517909455600c80549095168784161785559282168086526003808552828720805460ff1990811660019081179092556004808852858a208054831684179055885487168a52928752848920805482168317905596549094168752909352909320805490921690921790556005546103e890620001d19061039d620003fb565b620001dd919062000415565b336000908152600160205260409020556005546103e8906200020190604b620003fb565b6200020d919062000415565b6001600160a01b03831660009081526001602052604081209190915560055433919060008051602062002599833981519152906103e890620002529061039d620003fb565b6200025e919062000415565b60405190815260200160405180910390a3816001600160a01b031660006001600160a01b0316600080516020620025998339815191526103e8600554604b620002a89190620003fb565b620002b4919062000415565b60405190815260200160405180910390a3505050620004a3565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000325578160001904821115620003095762000309620002ce565b808516156200031757918102915b93841c9390800290620002e9565b509250929050565b6000826200033e57506001620003dd565b816200034d57506000620003dd565b8160018114620003665760028114620003715762000391565b6001915050620003dd565b60ff841115620003855762000385620002ce565b50506001821b620003dd565b5060208310610133831016604e8410600b8410161715620003b6575081810a620003dd565b620003c28383620002e4565b8060001904821115620003d957620003d9620002ce565b0290505b92915050565b6000620003f460ff8416836200032d565b9392505050565b8082028115828204841417620003dd57620003dd620002ce565b6000826200043357634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620003dd57620003dd620002ce565b80516001600160a01b03811681146200046657600080fd5b919050565b600080604083850312156200047f57600080fd5b6200048a836200044e565b91506200049a602084016200044e565b90509250929050565b6120e680620004b36000396000f3fe60806040526004361061025f5760003560e01c80636ddd171311610144578063a9059cbb116100b6578063dd62ed3e1161007a578063dd62ed3e14610707578063df20fd491461074d578063f2fde38b1461076d578063f556fcdb1461078d578063f887ea40146107a0578063fb61e998146107c057600080fd5b8063a9059cbb14610686578063b04828bb146106a6578063c1f1b1b5146106bc578063c647b20e146106d1578063dcd00268146106f157600080fd5b8063893d20e811610108578063893d20e8146105ab5780638b42507f146105dd5780638f9a55c01461060d57806390a9ac3f1461062357806395d89b4114610638578063a8aa1b311461066657600080fd5b80636ddd17131461051e57806370a082311461053f578063740bf49714610575578063787a08a6146105955780637c4a71371461050957600080fd5b8063313ce567116101dd578063429b4f02116101a1578063429b4f0214610473578063511b5f611461049357806354f05ed5146104a9578063559ef225146104c9578063571ac8b0146104e9578063616eb6381461050957600080fd5b8063313ce567146103db5780633b91ceef146103f75780633f4218e01461041757806340c39c091461044757806340db65f61461045d57600080fd5b806318160ddd1161022457806318160ddd146103375780631dc610401461034c57806323b872dd1461036c5780632e1a7d4d1461038c5780632f54bf6e146103ac57600080fd5b8062f714ce1461026b5780630445b6671461028d578063064a59d0146102b657806306fdde03146102e0578063095ea7b31461031757600080fd5b3661026657005b600080fd5b34801561027757600080fd5b5061028b610286366004611d28565b6107f3565b005b34801561029957600080fd5b506102a3600f5481565b6040519081526020015b60405180910390f35b3480156102c257600080fd5b506010546102d09060ff1681565b60405190151581526020016102ad565b3480156102ec57600080fd5b50604080518082019091526005815264506c65627360d81b60208201525b6040516102ad9190611d58565b34801561032357600080fd5b506102d0610332366004611da6565b6108aa565b34801561034357600080fd5b506005546102a3565b34801561035857600080fd5b5061028b610367366004611de0565b610917565b34801561037857600080fd5b506102d0610387366004611e0e565b6109a5565b34801561039857600080fd5b5061028b6103a7366004611e4f565b610a3a565b3480156103b857600080fd5b506102d06103c7366004611e68565b6000546001600160a01b0391821691161490565b3480156103e757600080fd5b50604051601281526020016102ad565b34801561040357600080fd5b5061028b610412366004611e85565b610aab565b34801561042357600080fd5b506102d0610432366004611e68565b60036020526000908152604090205460ff1681565b34801561045357600080fd5b506102a360115481565b34801561046957600080fd5b506102a360095481565b34801561047f57600080fd5b5061028b61048e366004611e68565b610b6f565b34801561049f57600080fd5b506102a360075481565b3480156104b557600080fd5b5061028b6104c4366004611de0565b610c95565b3480156104d557600080fd5b5061028b6104e4366004611ea7565b610d1b565b3480156104f557600080fd5b506102d0610504366004611e68565b610d5c565b34801561051557600080fd5b5061028b610d6a565b34801561052a57600080fd5b50600e546102d090600160a01b900460ff1681565b34801561054b57600080fd5b506102a361055a366004611e68565b6001600160a01b031660009081526001602052604090205490565b34801561058157600080fd5b5061028b610590366004611ec4565b610df2565b3480156105a157600080fd5b506102a360125481565b3480156105b757600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102ad565b3480156105e957600080fd5b506102d06105f8366004611e68565b60046020526000908152604090205460ff1681565b34801561061957600080fd5b506102a360065481565b34801561062f57600080fd5b5061028b610e4a565b34801561064457600080fd5b50604080518082019091526005815264504c45425360d81b602082015261030a565b34801561067257600080fd5b50600e546105c5906001600160a01b031681565b34801561069257600080fd5b506102d06106a1366004611da6565b610e7e565b3480156106b257600080fd5b506102a3600a5481565b3480156106c857600080fd5b5061028b610e8b565b3480156106dd57600080fd5b5061028b6106ec366004611e85565b6111d4565b3480156106fd57600080fd5b506102a360085481565b34801561071357600080fd5b506102a3610722366004611ec4565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561075957600080fd5b5061028b610768366004611ef2565b611256565b34801561077957600080fd5b5061028b610788366004611e68565b61131d565b34801561079957600080fd5b50306105c5565b3480156107ac57600080fd5b50600d546105c5906001600160a01b031681565b3480156107cc57600080fd5b50600b54600c54604080516001600160a01b039384168152929091166020830152016102ad565b6000546001600160a01b031633146108265760405162461bcd60e51b815260040161081d90611f10565b60405180910390fd5b4782111561086f5760405162461bcd60e51b8152602060048201526016602482015275416d6f756e7420657863656564732062616c616e636560501b604482015260640161081d565b6040516001600160a01b0382169083156108fc029084906000818181858888f193505050501580156108a5573d6000803e3d6000fd5b505050565b3360008181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109059086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146109415760405162461bcd60e51b815260040161081d90611f10565b6001600160a01b038216600081815260036020908152604091829020805460ff19168515159081179091558251938452908301527f1b92447bfc74f86a82293c184341926a5888220bc498dde33efabf7c3d796d6991015b60405180910390a15050565b6001600160a01b038316600090815260026020908152604080832033845290915281205460001914610a25576001600160a01b0384166000908152600260209081526040808320338452909152902054610a00908390611f49565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b610a30848484611407565b90505b9392505050565b33600090815260016020526040902054811115610a5657600080fd5b3360009081526001602052604081208054839290610a75908490611f49565b9091555050604051339082156108fc029083906000818181858888f19350505050158015610aa7573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610ad55760405162461bcd60e51b815260040161081d90611f10565b6103e8600554610ae59190611f5c565b8210158015610b0357506103e8600554610aff9190611f5c565b8110155b610b355760405162461bcd60e51b81526020600482015260036024820152620dac2f60eb1b604482015260640161081d565b600682905560078190556040518281527fa2c87c3e7a3048198ae94e814f6a27e12a4e2a7476e33a0db4d97ffeaf63618690602001610999565b600b546001600160a01b03163314610baf5760405162461bcd60e51b81526020600482015260036024820152623232bb60e91b604482015260640161081d565b600b546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401602060405180830381865afa158015610c02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c269190611f7e565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610c71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa79190611f97565b6000546001600160a01b03163314610cbf5760405162461bcd60e51b815260040161081d90611f10565b6001600160a01b038216600081815260046020908152604091829020805460ff19168515159081179091558251938452908301527f6824b1d87573c276dab7cd55e81d1a9dda557f5deb51bad3c38832e5d1333fba9101610999565b6000546001600160a01b03163314610d455760405162461bcd60e51b815260040161081d90611f10565b6010805460ff191691151591909117905542601155565b6000610911826000196108aa565b600b546001600160a01b03163314610dae5760405162461bcd60e51b81526020600482015260076024820152663737ba103232bb60c91b604482015260640161081d565b478015610def57600b546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610aa7573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610e1c5760405162461bcd60e51b815260040161081d90611f10565b600b80546001600160a01b039384166001600160a01b031991821617909155600c8054929093169116179055565b6000546001600160a01b03163314610e745760405162461bcd60e51b815260040161081d90611f10565b610e7c6116ec565b565b6000610a33338484611407565b6000546001600160a01b03163314610eb55760405162461bcd60e51b815260040161081d90611f10565b600d60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2c9190611fb4565b6001600160a01b031663e6a4390530600d60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb29190611fb4565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610ffd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110219190611fb4565b600e80546001600160a01b0319166001600160a01b03929092169182179055610e7c57600d60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611097573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bb9190611fb4565b6001600160a01b031663c9c6539630600d60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561111d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111419190611fb4565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561118e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b29190611fb4565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146111fe5760405162461bcd60e51b815260040161081d90611f10565b8181600061120c8284611fd1565b90506101ef81111561124f5760405162461bcd60e51b815260206004820152600c60248201526b0e8c2f040e8dede40d0d2ced60a31b604482015260640161081d565b5050505050565b6000546001600160a01b031633146112805760405162461bcd60e51b815260040161081d90611f10565b60018110156112ba5760405162461bcd60e51b815260040161081d906020808252600490820152637a65726f60e01b604082015260600190565b600e805460ff60a01b1916600160a01b84151581029190911791829055600f8390556040805160ff929093049190911615158252602082018390527f87648e954f6c9d5f5f7ddeb39f95ca8f7d2c14cbb2f190d5250f9b6eb04dd9349101610999565b6000546001600160a01b031633146113475760405162461bcd60e51b815260040161081d90611f10565b6001600160a01b0381166113ac5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161081d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60135460009060ff161561142757611420848484611902565b9050610a33565b6001600160a01b03841660009081526003602052604090205460ff168061146657506001600160a01b03831660009081526003602052604090205460ff165b80611473575060105460ff165b6114b25760405162461bcd60e51b815260206004820152601060248201526f74726164696e67206e6f74206c69766560801b604482015260640161081d565b6000546001600160a01b038581169116148015906114de57506000546001600160a01b03848116911614155b80156114f557506001600160a01b03831661dead14155b801561150f5750600e546001600160a01b03848116911614155b80156115295750600c546001600160a01b03858116911614155b156115be576001600160a01b03831660009081526004602052604090205460ff16806115875750600754821115801561158757506006546001600160a01b038416600090815260016020526040902054611584908490611fd1565b11155b6115be5760405162461bcd60e51b81526020600482015260086024820152671d1e081b1a5b5a5d60c21b604482015260640161081d565b6115c66119bc565b156115d3576115d36116ec565b6001600160a01b0384166000908152600160205260409020546115f7908390611f49565b6001600160a01b038516600090815260016020908152604080832093909355600390529081205460ff1615158061164857506001600160a01b03841660009081526003602052604090205460ff1615155b61165c57611657858585611a14565b61165e565b825b6001600160a01b038516600090815260016020526040902054909150611685908290611fd1565b6001600160a01b0380861660008181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116d99085815260200190565b60405180910390a3506001949350505050565b6013805460ff191660011790556000611703611b37565b600a546117109190611fe4565b9050600061171f826002611fe4565b6009543060009081526001602052604090205461173c9190611fe4565b6117469190611f5c565b3060009081526001602052604081205491925090611765908390611f49565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061179f5761179f611ffb565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156117f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181c9190611fb4565b8160018151811061182f5761182f611ffb565b6001600160a01b039283166020918202929092010152600d5460405163791ac94760e01b815291169063791ac94790611875908590600090869030904290600401612011565b600060405180830381600087803b15801561188f57600080fd5b505af11580156118a3573d6000803e3d6000fd5b5050505060008311156118ea576118ea836009548660026118c49190611fe4565b6118ce9190611f49565b6009546118db9047611fe4565b6118e59190611f5c565b611b62565b6118f2611c7a565b50506013805460ff191690555050565b6001600160a01b038316600090815260016020526040812054611926908390611f49565b6001600160a01b038086166000908152600160205260408082209390935590851681522054611956908390611fd1565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119aa9086815260200190565b60405180910390a35060019392505050565b600e546000906001600160a01b031633148015906119dd575060135460ff16155b80156119f25750600e54600160a01b900460ff165b8015611a0f5750600f543060009081526001602052604090205410155b905090565b600e5460009081906001600160a01b03868116911614801590611a445750600e546001600160a01b038581169116145b80611a755750600e546001600160a01b038681169116148015611a755750600e546001600160a01b03858116911614155b15611aa9576103e8611a85611b37565b600a54611a929190611fe4565b611a9c9085611fe4565b611aa69190611f5c565b90505b8015611b245730600090815260016020526040902054611aca908290611fd1565b30600081815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b1b9085815260200190565b60405180910390a35b611b2e8184611f49565b95945050505050565b6000601254601154611b499190611fd1565b421115611b57576001611b5a565b60015b60ff16905090565b306000908152600260209081526040808320600d546001600160a01b03168452909152902054821115611bb857306000908152600260209081526040808320600d546001600160a01b0316845290915290208290555b600d54600b546001600160a01b039182169163f305d71991849130918791600091829116611be84261012c611fd1565b60405160e089901b6001600160e01b03191681526001600160a01b039687166004820152602481019590955260448501939093526064840191909152909216608482015260a481019190915260c40160606040518083038185885af1158015611c55573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061124f9190612082565b478015610def57600c546040516000916001600160a01b03169061753090479084818181858888f193505050503d8060008114611cd3576040519150601f19603f3d011682016040523d82523d6000602084013e611cd8565b606091505b5050905080610aa75760405162461bcd60e51b81526020600482015260076024820152666661696c65642160c81b604482015260640161081d565b6001600160a01b0381168114610def57600080fd5b60008060408385031215611d3b57600080fd5b823591506020830135611d4d81611d13565b809150509250929050565b600060208083528351808285015260005b81811015611d8557858101830151858201604001528201611d69565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611db957600080fd5b8235611dc481611d13565b946020939093013593505050565b8015158114610def57600080fd5b60008060408385031215611df357600080fd5b8235611dfe81611d13565b91506020830135611d4d81611dd2565b600080600060608486031215611e2357600080fd5b8335611e2e81611d13565b92506020840135611e3e81611d13565b929592945050506040919091013590565b600060208284031215611e6157600080fd5b5035919050565b600060208284031215611e7a57600080fd5b8135610a3381611d13565b60008060408385031215611e9857600080fd5b50508035926020909101359150565b600060208284031215611eb957600080fd5b8135610a3381611dd2565b60008060408385031215611ed757600080fd5b8235611ee281611d13565b91506020830135611d4d81611d13565b60008060408385031215611f0557600080fd5b8235611dc481611dd2565b6020808252600990820152683737ba1037bbb732b960b91b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561091157610911611f33565b600082611f7957634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611f9057600080fd5b5051919050565b600060208284031215611fa957600080fd5b8151610a3381611dd2565b600060208284031215611fc657600080fd5b8151610a3381611d13565b8082018082111561091157610911611f33565b808202811582820484141761091157610911611f33565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120615784516001600160a01b03168352938301939183019160010161203c565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561209757600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220cf19d5094ab5afa5f919a2a7e2cdffef4141224c86ba7d37e9fd07ca6b203bba64736f6c63430008110033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000288c98a7e9be52bc96c0e7e3d3a16db45bc96020

Deployed Bytecode

0x60806040526004361061025f5760003560e01c80636ddd171311610144578063a9059cbb116100b6578063dd62ed3e1161007a578063dd62ed3e14610707578063df20fd491461074d578063f2fde38b1461076d578063f556fcdb1461078d578063f887ea40146107a0578063fb61e998146107c057600080fd5b8063a9059cbb14610686578063b04828bb146106a6578063c1f1b1b5146106bc578063c647b20e146106d1578063dcd00268146106f157600080fd5b8063893d20e811610108578063893d20e8146105ab5780638b42507f146105dd5780638f9a55c01461060d57806390a9ac3f1461062357806395d89b4114610638578063a8aa1b311461066657600080fd5b80636ddd17131461051e57806370a082311461053f578063740bf49714610575578063787a08a6146105955780637c4a71371461050957600080fd5b8063313ce567116101dd578063429b4f02116101a1578063429b4f0214610473578063511b5f611461049357806354f05ed5146104a9578063559ef225146104c9578063571ac8b0146104e9578063616eb6381461050957600080fd5b8063313ce567146103db5780633b91ceef146103f75780633f4218e01461041757806340c39c091461044757806340db65f61461045d57600080fd5b806318160ddd1161022457806318160ddd146103375780631dc610401461034c57806323b872dd1461036c5780632e1a7d4d1461038c5780632f54bf6e146103ac57600080fd5b8062f714ce1461026b5780630445b6671461028d578063064a59d0146102b657806306fdde03146102e0578063095ea7b31461031757600080fd5b3661026657005b600080fd5b34801561027757600080fd5b5061028b610286366004611d28565b6107f3565b005b34801561029957600080fd5b506102a3600f5481565b6040519081526020015b60405180910390f35b3480156102c257600080fd5b506010546102d09060ff1681565b60405190151581526020016102ad565b3480156102ec57600080fd5b50604080518082019091526005815264506c65627360d81b60208201525b6040516102ad9190611d58565b34801561032357600080fd5b506102d0610332366004611da6565b6108aa565b34801561034357600080fd5b506005546102a3565b34801561035857600080fd5b5061028b610367366004611de0565b610917565b34801561037857600080fd5b506102d0610387366004611e0e565b6109a5565b34801561039857600080fd5b5061028b6103a7366004611e4f565b610a3a565b3480156103b857600080fd5b506102d06103c7366004611e68565b6000546001600160a01b0391821691161490565b3480156103e757600080fd5b50604051601281526020016102ad565b34801561040357600080fd5b5061028b610412366004611e85565b610aab565b34801561042357600080fd5b506102d0610432366004611e68565b60036020526000908152604090205460ff1681565b34801561045357600080fd5b506102a360115481565b34801561046957600080fd5b506102a360095481565b34801561047f57600080fd5b5061028b61048e366004611e68565b610b6f565b34801561049f57600080fd5b506102a360075481565b3480156104b557600080fd5b5061028b6104c4366004611de0565b610c95565b3480156104d557600080fd5b5061028b6104e4366004611ea7565b610d1b565b3480156104f557600080fd5b506102d0610504366004611e68565b610d5c565b34801561051557600080fd5b5061028b610d6a565b34801561052a57600080fd5b50600e546102d090600160a01b900460ff1681565b34801561054b57600080fd5b506102a361055a366004611e68565b6001600160a01b031660009081526001602052604090205490565b34801561058157600080fd5b5061028b610590366004611ec4565b610df2565b3480156105a157600080fd5b506102a360125481565b3480156105b757600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102ad565b3480156105e957600080fd5b506102d06105f8366004611e68565b60046020526000908152604090205460ff1681565b34801561061957600080fd5b506102a360065481565b34801561062f57600080fd5b5061028b610e4a565b34801561064457600080fd5b50604080518082019091526005815264504c45425360d81b602082015261030a565b34801561067257600080fd5b50600e546105c5906001600160a01b031681565b34801561069257600080fd5b506102d06106a1366004611da6565b610e7e565b3480156106b257600080fd5b506102a3600a5481565b3480156106c857600080fd5b5061028b610e8b565b3480156106dd57600080fd5b5061028b6106ec366004611e85565b6111d4565b3480156106fd57600080fd5b506102a360085481565b34801561071357600080fd5b506102a3610722366004611ec4565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561075957600080fd5b5061028b610768366004611ef2565b611256565b34801561077957600080fd5b5061028b610788366004611e68565b61131d565b34801561079957600080fd5b50306105c5565b3480156107ac57600080fd5b50600d546105c5906001600160a01b031681565b3480156107cc57600080fd5b50600b54600c54604080516001600160a01b039384168152929091166020830152016102ad565b6000546001600160a01b031633146108265760405162461bcd60e51b815260040161081d90611f10565b60405180910390fd5b4782111561086f5760405162461bcd60e51b8152602060048201526016602482015275416d6f756e7420657863656564732062616c616e636560501b604482015260640161081d565b6040516001600160a01b0382169083156108fc029084906000818181858888f193505050501580156108a5573d6000803e3d6000fd5b505050565b3360008181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109059086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146109415760405162461bcd60e51b815260040161081d90611f10565b6001600160a01b038216600081815260036020908152604091829020805460ff19168515159081179091558251938452908301527f1b92447bfc74f86a82293c184341926a5888220bc498dde33efabf7c3d796d6991015b60405180910390a15050565b6001600160a01b038316600090815260026020908152604080832033845290915281205460001914610a25576001600160a01b0384166000908152600260209081526040808320338452909152902054610a00908390611f49565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b610a30848484611407565b90505b9392505050565b33600090815260016020526040902054811115610a5657600080fd5b3360009081526001602052604081208054839290610a75908490611f49565b9091555050604051339082156108fc029083906000818181858888f19350505050158015610aa7573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610ad55760405162461bcd60e51b815260040161081d90611f10565b6103e8600554610ae59190611f5c565b8210158015610b0357506103e8600554610aff9190611f5c565b8110155b610b355760405162461bcd60e51b81526020600482015260036024820152620dac2f60eb1b604482015260640161081d565b600682905560078190556040518281527fa2c87c3e7a3048198ae94e814f6a27e12a4e2a7476e33a0db4d97ffeaf63618690602001610999565b600b546001600160a01b03163314610baf5760405162461bcd60e51b81526020600482015260036024820152623232bb60e91b604482015260640161081d565b600b546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401602060405180830381865afa158015610c02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c269190611f7e565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610c71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa79190611f97565b6000546001600160a01b03163314610cbf5760405162461bcd60e51b815260040161081d90611f10565b6001600160a01b038216600081815260046020908152604091829020805460ff19168515159081179091558251938452908301527f6824b1d87573c276dab7cd55e81d1a9dda557f5deb51bad3c38832e5d1333fba9101610999565b6000546001600160a01b03163314610d455760405162461bcd60e51b815260040161081d90611f10565b6010805460ff191691151591909117905542601155565b6000610911826000196108aa565b600b546001600160a01b03163314610dae5760405162461bcd60e51b81526020600482015260076024820152663737ba103232bb60c91b604482015260640161081d565b478015610def57600b546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610aa7573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610e1c5760405162461bcd60e51b815260040161081d90611f10565b600b80546001600160a01b039384166001600160a01b031991821617909155600c8054929093169116179055565b6000546001600160a01b03163314610e745760405162461bcd60e51b815260040161081d90611f10565b610e7c6116ec565b565b6000610a33338484611407565b6000546001600160a01b03163314610eb55760405162461bcd60e51b815260040161081d90611f10565b600d60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2c9190611fb4565b6001600160a01b031663e6a4390530600d60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb29190611fb4565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610ffd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110219190611fb4565b600e80546001600160a01b0319166001600160a01b03929092169182179055610e7c57600d60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611097573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bb9190611fb4565b6001600160a01b031663c9c6539630600d60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561111d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111419190611fb4565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561118e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b29190611fb4565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146111fe5760405162461bcd60e51b815260040161081d90611f10565b8181600061120c8284611fd1565b90506101ef81111561124f5760405162461bcd60e51b815260206004820152600c60248201526b0e8c2f040e8dede40d0d2ced60a31b604482015260640161081d565b5050505050565b6000546001600160a01b031633146112805760405162461bcd60e51b815260040161081d90611f10565b60018110156112ba5760405162461bcd60e51b815260040161081d906020808252600490820152637a65726f60e01b604082015260600190565b600e805460ff60a01b1916600160a01b84151581029190911791829055600f8390556040805160ff929093049190911615158252602082018390527f87648e954f6c9d5f5f7ddeb39f95ca8f7d2c14cbb2f190d5250f9b6eb04dd9349101610999565b6000546001600160a01b031633146113475760405162461bcd60e51b815260040161081d90611f10565b6001600160a01b0381166113ac5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161081d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60135460009060ff161561142757611420848484611902565b9050610a33565b6001600160a01b03841660009081526003602052604090205460ff168061146657506001600160a01b03831660009081526003602052604090205460ff165b80611473575060105460ff165b6114b25760405162461bcd60e51b815260206004820152601060248201526f74726164696e67206e6f74206c69766560801b604482015260640161081d565b6000546001600160a01b038581169116148015906114de57506000546001600160a01b03848116911614155b80156114f557506001600160a01b03831661dead14155b801561150f5750600e546001600160a01b03848116911614155b80156115295750600c546001600160a01b03858116911614155b156115be576001600160a01b03831660009081526004602052604090205460ff16806115875750600754821115801561158757506006546001600160a01b038416600090815260016020526040902054611584908490611fd1565b11155b6115be5760405162461bcd60e51b81526020600482015260086024820152671d1e081b1a5b5a5d60c21b604482015260640161081d565b6115c66119bc565b156115d3576115d36116ec565b6001600160a01b0384166000908152600160205260409020546115f7908390611f49565b6001600160a01b038516600090815260016020908152604080832093909355600390529081205460ff1615158061164857506001600160a01b03841660009081526003602052604090205460ff1615155b61165c57611657858585611a14565b61165e565b825b6001600160a01b038516600090815260016020526040902054909150611685908290611fd1565b6001600160a01b0380861660008181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116d99085815260200190565b60405180910390a3506001949350505050565b6013805460ff191660011790556000611703611b37565b600a546117109190611fe4565b9050600061171f826002611fe4565b6009543060009081526001602052604090205461173c9190611fe4565b6117469190611f5c565b3060009081526001602052604081205491925090611765908390611f49565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061179f5761179f611ffb565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156117f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181c9190611fb4565b8160018151811061182f5761182f611ffb565b6001600160a01b039283166020918202929092010152600d5460405163791ac94760e01b815291169063791ac94790611875908590600090869030904290600401612011565b600060405180830381600087803b15801561188f57600080fd5b505af11580156118a3573d6000803e3d6000fd5b5050505060008311156118ea576118ea836009548660026118c49190611fe4565b6118ce9190611f49565b6009546118db9047611fe4565b6118e59190611f5c565b611b62565b6118f2611c7a565b50506013805460ff191690555050565b6001600160a01b038316600090815260016020526040812054611926908390611f49565b6001600160a01b038086166000908152600160205260408082209390935590851681522054611956908390611fd1565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119aa9086815260200190565b60405180910390a35060019392505050565b600e546000906001600160a01b031633148015906119dd575060135460ff16155b80156119f25750600e54600160a01b900460ff165b8015611a0f5750600f543060009081526001602052604090205410155b905090565b600e5460009081906001600160a01b03868116911614801590611a445750600e546001600160a01b038581169116145b80611a755750600e546001600160a01b038681169116148015611a755750600e546001600160a01b03858116911614155b15611aa9576103e8611a85611b37565b600a54611a929190611fe4565b611a9c9085611fe4565b611aa69190611f5c565b90505b8015611b245730600090815260016020526040902054611aca908290611fd1565b30600081815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b1b9085815260200190565b60405180910390a35b611b2e8184611f49565b95945050505050565b6000601254601154611b499190611fd1565b421115611b57576001611b5a565b60015b60ff16905090565b306000908152600260209081526040808320600d546001600160a01b03168452909152902054821115611bb857306000908152600260209081526040808320600d546001600160a01b0316845290915290208290555b600d54600b546001600160a01b039182169163f305d71991849130918791600091829116611be84261012c611fd1565b60405160e089901b6001600160e01b03191681526001600160a01b039687166004820152602481019590955260448501939093526064840191909152909216608482015260a481019190915260c40160606040518083038185885af1158015611c55573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061124f9190612082565b478015610def57600c546040516000916001600160a01b03169061753090479084818181858888f193505050503d8060008114611cd3576040519150601f19603f3d011682016040523d82523d6000602084013e611cd8565b606091505b5050905080610aa75760405162461bcd60e51b81526020600482015260076024820152666661696c65642160c81b604482015260640161081d565b6001600160a01b0381168114610def57600080fd5b60008060408385031215611d3b57600080fd5b823591506020830135611d4d81611d13565b809150509250929050565b600060208083528351808285015260005b81811015611d8557858101830151858201604001528201611d69565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611db957600080fd5b8235611dc481611d13565b946020939093013593505050565b8015158114610def57600080fd5b60008060408385031215611df357600080fd5b8235611dfe81611d13565b91506020830135611d4d81611dd2565b600080600060608486031215611e2357600080fd5b8335611e2e81611d13565b92506020840135611e3e81611d13565b929592945050506040919091013590565b600060208284031215611e6157600080fd5b5035919050565b600060208284031215611e7a57600080fd5b8135610a3381611d13565b60008060408385031215611e9857600080fd5b50508035926020909101359150565b600060208284031215611eb957600080fd5b8135610a3381611dd2565b60008060408385031215611ed757600080fd5b8235611ee281611d13565b91506020830135611d4d81611d13565b60008060408385031215611f0557600080fd5b8235611dc481611dd2565b6020808252600990820152683737ba1037bbb732b960b91b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561091157610911611f33565b600082611f7957634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611f9057600080fd5b5051919050565b600060208284031215611fa957600080fd5b8151610a3381611dd2565b600060208284031215611fc657600080fd5b8151610a3381611d13565b8082018082111561091157610911611f33565b808202811582820484141761091157610911611f33565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120615784516001600160a01b03168352938301939183019160010161203c565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561209757600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220cf19d5094ab5afa5f919a2a7e2cdffef4141224c86ba7d37e9fd07ca6b203bba64736f6c63430008110033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000288c98a7e9be52bc96c0e7e3d3a16db45bc96020

-----Decoded View---------------
Arg [0] : _router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : _TreasuryWallet (address): 0x288C98a7E9BE52Bc96C0E7E3d3A16DB45Bc96020

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 000000000000000000000000288c98a7e9be52bc96c0e7e3d3a16db45bc96020


Deployed Bytecode Sourcemap

2563:10991:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13245:202;;;;;;;;;;-1:-1:-1;13245:202:0;;;;;:::i;:::-;;:::i;:::-;;3938:55;;;;;;;;;;;;;;;;;;;640:25:1;;;628:2;613:18;3938:55:0;;;;;;;;4002:36;;;;;;;;;;-1:-1:-1;4002:36:0;;;;;;;;;;;841:14:1;;834:22;816:41;;804:2;789:18;4002:36:0;676:187:1;5319:80:0;;;;;;;;;;-1:-1:-1;5391:5:0;;;;;;;;;;;;-1:-1:-1;;;5391:5:0;;;;5319:80;;;;;;;:::i;5741:216::-;;;;;;;;;;-1:-1:-1;5741:216:0;;;;;:::i;:::-;;:::i;5049:88::-;;;;;;;;;;-1:-1:-1;5122:12:0;;5049:88;;11129:163;;;;;;;;;;-1:-1:-1;11129:163:0;;;;;:::i;:::-;;:::i;6313:341::-;;;;;;;;;;-1:-1:-1;6313:341:0;;;;;:::i;:::-;;:::i;12425:174::-;;;;;;;;;;-1:-1:-1;12425:174:0;;;;;:::i;:::-;;:::i;1472:103::-;;;;;;;;;;-1:-1:-1;1472:103:0;;;;;:::i;:::-;1527:4;1562:5;-1:-1:-1;;;;;1551:16:0;;;1562:5;;1551:16;;1472:103;5143:80;;;;;;;;;;-1:-1:-1;5143:80:0;;3287:2;3331:36:1;;3319:2;3304:18;5143:80:0;3189:184:1;10807:314:0;;;;;;;;;;-1:-1:-1;10807:314:0;;;;;:::i;:::-;;:::i;3055:44::-;;;;;;;;;;-1:-1:-1;3055:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4045:31;;;;;;;;;;;;;;;;3567:32;;;;;;;;;;;;;;;;13041:196;;;;;;;;;;-1:-1:-1;13041:196:0;;;;;:::i;:::-;;:::i;3446:54::-;;;;;;;;;;;;;;;;11300:170;;;;;;;;;;-1:-1:-1;11300:170:0;;;;;:::i;:::-;;:::i;6913:::-;;;;;;;;;;-1:-1:-1;6913:170:0;;;;;:::i;:::-;;:::i;5965:122::-;;;;;;;;;;-1:-1:-1;5965:122:0;;;;;:::i;:::-;;:::i;12828:205::-;;;;;;;;;;;;;:::i;3901:30::-;;;;;;;;;;-1:-1:-1;3901:30:0;;;;-1:-1:-1;;;3901:30:0;;;;;;5489:105;;;;;;;;;;-1:-1:-1;5489:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;5573:18:0;5555:7;5573:18;;;:9;:18;;;;;;;5489:105;11779:171;;;;;;;;;;-1:-1:-1;11779:171:0;;;;;:::i;:::-;;:::i;4083:29::-;;;;;;;;;;;;;;;;5405:78;;;;;;;;;;-1:-1:-1;5457:7:0;5475:5;-1:-1:-1;;;;;5475:5:0;5405:78;;;-1:-1:-1;;;;;4450:32:1;;;4432:51;;4420:2;4405:18;5405:78:0;4286:203:1;3106:48:0;;;;;;;;;;-1:-1:-1;3106:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3381:58;;;;;;;;;;;;;;;;12347:70;;;;;;;;;;;;;:::i;5229:84::-;;;;;;;;;;-1:-1:-1;5303:7:0;;;;;;;;;;;;-1:-1:-1;;;5303:7:0;;;;5229:84;;3792:19;;;;;;;;;;-1:-1:-1;3792:19:0;;;;-1:-1:-1;;;;;3792:19:0;;;6095:156;;;;;;;;;;-1:-1:-1;6095:156:0;;;;;:::i;:::-;;:::i;3606:52::-;;;;;;;;;;;;;;;;6662:243;;;;;;;;;;;;;:::i;11478:293::-;;;;;;;;;;-1:-1:-1;11478:293:0;;;;;:::i;:::-;;:::i;3529:31::-;;;;;;;;;;;;;;;;5600:133;;;;;;;;;;-1:-1:-1;5600:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;5702:19:0;;;5684:7;5702:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5600:133;12081:258;;;;;;;;;;-1:-1:-1;12081:258:0;;;;;:::i;:::-;;:::i;1583:242::-;;;;;;;;;;-1:-1:-1;1583:242:0;;;;;:::i;:::-;;:::i;13455:94::-;;;;;;;;;;-1:-1:-1;13536:4:0;13455:94;;3761:24;;;;;;;;;;-1:-1:-1;3761:24:0;;;;-1:-1:-1;;;;;3761:24:0;;;11958:115;;;;;;;;;;-1:-1:-1;12039:9:0;;12050:14;;11958:115;;;-1:-1:-1;;;;;12039:9:0;;;5246:34:1;;12050:14:0;;;;5311:2:1;5296:18;;5289:43;5181:18;11958:115:0;5034:304:1;13245:202:0;1424:5;;-1:-1:-1;;;;;1424:5:0;1410:10;:19;1402:41;;;;-1:-1:-1;;;1402:41:0;;;;;;;:::i;:::-;;;;;;;;;13354:21:::1;13344:6;:31;;13336:66;;;::::0;-1:-1:-1;;;13336:66:0;;5882:2:1;13336:66:0::1;::::0;::::1;5864:21:1::0;5921:2;5901:18;;;5894:30;-1:-1:-1;;;5940:18:1;;;5933:52;6002:18;;13336:66:0::1;5680:346:1::0;13336:66:0::1;13413:26;::::0;-1:-1:-1;;;;;13413:18:0;::::1;::::0;:26;::::1;;;::::0;13432:6;;13413:26:::1;::::0;;;13432:6;13413:18;:26;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13245:202:::0;;:::o;5741:216::-;5845:10;5816:4;5833:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5833:32:0;;;;;;;;;;:41;;;5890:37;5816:4;;5833:32;;5890:37;;;;5868:6;640:25:1;;628:2;613:18;;494:177;5890:37:0;;;;;;;;-1:-1:-1;5945:4:0;5741:216;;;;;:::o;11129:163::-;1424:5;;-1:-1:-1;;;;;1424:5:0;1410:10;:19;1402:41;;;;-1:-1:-1;;;1402:41:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11210:19:0;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;;:28;;-1:-1:-1;;11210:28:0::1;::::0;::::1;;::::0;;::::1;::::0;;;11254:30;;6199:51:1;;;6266:18;;;6259:50;11254:30:0::1;::::0;6172:18:1;11254:30:0::1;;;;;;;;11129:163:::0;;:::o;6313:341::-;-1:-1:-1;;;;;6433:19:0;;6413:4;6433:19;;;:11;:19;;;;;;;;6453:10;6433:31;;;;;;;;-1:-1:-1;;6433:52:0;6430:159;;-1:-1:-1;;;;;6535:19:0;;;;;;:11;:19;;;;;;;;6555:10;6535:31;;;;;;;;:42;;6570:6;;6535:42;:::i;:::-;-1:-1:-1;;;;;6501:19:0;;;;;;:11;:19;;;;;;;;6521:10;6501:31;;;;;;;:76;6430:159;6606:40;6620:6;6628:9;6639:6;6606:13;:40::i;:::-;6599:47;;6313:341;;;;;;:::o;12425:174::-;12489:10;12479:21;;;;:9;:21;;;;;;:28;-1:-1:-1;12479:28:0;12471:37;;;;;;12529:10;12519:21;;;;:9;:21;;;;;:28;;12544:3;;12519:21;:28;;12544:3;;12519:28;:::i;:::-;;;;-1:-1:-1;;12558:33:0;;12566:10;;12558:33;;;;;12587:3;;12558:33;;;;12587:3;12566:10;12558:33;;;;;;;;;;;;;;;;;;;;;12425:174;:::o;10807:314::-;1424:5;;-1:-1:-1;;;;;1424:5:0;1410:10;:19;1402:41;;;;-1:-1:-1;;;1402:41:0;;;;;;;:::i;:::-;10941:4:::1;10926:12;;:19;;;;:::i;:::-;10907:15;:38;;:76;;;;;10979:4;10964:12;;:19;;;;:::i;:::-;10949:11;:34;;10907:76;10899:92;;;::::0;-1:-1:-1;;;10899:92:0;;7009:2:1;10899:92:0::1;::::0;::::1;6991:21:1::0;7048:1;7028:18;;;7021:29;-1:-1:-1;;;7066:18:1;;;7059:33;7109:18;;10899:92:0::1;6807:326:1::0;10899:92:0::1;11002:14;:32:::0;;;11045:10:::1;:24:::0;;;11085:28:::1;::::0;640:25:1;;;11085:28:0::1;::::0;628:2:1;613:18;11085:28:0::1;494:177:1::0;13041:196:0;13114:9;;-1:-1:-1;;;;;13114:9:0;13127:10;13114:23;13106:39;;;;-1:-1:-1;;;13106:39:0;;7340:2:1;13106:39:0;;;7322:21:1;7379:1;7359:18;;;7352:29;-1:-1:-1;;;7397:18:1;;;7390:33;7440:18;;13106:39:0;7138:326:1;13106:39:0;13179:9;;13190:38;;-1:-1:-1;;;13190:38:0;;13222:4;13190:38;;;4432:51:1;-1:-1:-1;;;;;13156:22:0;;;;;;13179:9;;;13156:22;;13190:23;;4405:18:1;;13190:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13156:73;;-1:-1:-1;;;;;;13156:73:0;;;;;;;-1:-1:-1;;;;;7850:32:1;;;13156:73:0;;;7832:51:1;7899:18;;;7892:34;7805:18;;13156:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;11300:170::-;1424:5;;-1:-1:-1;;;;;1424:5:0;1410:10;:19;1402:41;;;;-1:-1:-1;;;1402:41:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11380:23:0;::::1;;::::0;;;:15:::1;:23;::::0;;;;;;;;:32;;-1:-1:-1;;11380:32:0::1;::::0;::::1;;::::0;;::::1;::::0;;;11428:34;;6199:51:1;;;6266:18;;;6259:50;11428:34:0::1;::::0;6172:18:1;11428:34:0::1;6031:284:1::0;6913:170:0;1424:5;;-1:-1:-1;;;;;1424:5:0;1410:10;:19;1402:41;;;;-1:-1:-1;;;1402:41:0;;;;;;;:::i;:::-;6994:16:::1;:36:::0;;-1:-1:-1;;6994:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7060:15:::1;7041:16;:34:::0;6913:170::o;5965:122::-;6020:4;6044:35;6052:7;-1:-1:-1;;6044:7:0;:35::i;12828:205::-;12876:9;;-1:-1:-1;;;;;12876:9:0;12889:10;12876:23;12868:43;;;;-1:-1:-1;;;12868:43:0;;8389:2:1;12868:43:0;;;8371:21:1;8428:1;8408:18;;;8401:29;-1:-1:-1;;;8446:18:1;;;8439:37;8493:18;;12868:43:0;8187:330:1;12868:43:0;12940:21;12976:11;;12972:53;;12997:9;;12989:36;;-1:-1:-1;;;;;12997:9:0;;;;12989:36;;;;;13017:7;;12997:9;12989:36;12997:9;12989:36;13017:7;12997:9;12989:36;;;;;;;;;;;;;;;;;;;12972:53;12857:176;12828:205::o;11779:171::-;1424:5;;-1:-1:-1;;;;;1424:5:0;1410:10;:19;1402:41;;;;-1:-1:-1;;;1402:41:0;;;;;;;:::i;:::-;11877:9:::1;:22:::0;;-1:-1:-1;;;;;11877:22:0;;::::1;-1:-1:-1::0;;;;;;11877:22:0;;::::1;;::::0;;;11910:14:::1;:32:::0;;;;;::::1;::::0;::::1;;::::0;;11779:171::o;12347:70::-;1424:5;;-1:-1:-1;;;;;1424:5:0;1410:10;:19;1402:41;;;;-1:-1:-1;;;1402:41:0;;;;;;;:::i;:::-;12399:10:::1;:8;:10::i;:::-;12347:70::o:0;6095:156::-;6175:4;6199:44;6213:10;6225:9;6236:6;6199:13;:44::i;6662:243::-;1424:5;;-1:-1:-1;;;;;1424:5:0;1410:10;:19;1402:41;;;;-1:-1:-1;;;1402:41:0;;;;;;;:::i;:::-;6728:6:::1;;;;;;;;;-1:-1:-1::0;;;;;6728:6:0::1;-1:-1:-1::0;;;;;6728:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6716:37:0::1;;6762:4;6769:6;;;;;;;;;-1:-1:-1::0;;;;;6769:6:0::1;-1:-1:-1::0;;;;;6769:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6716:67;::::0;-1:-1:-1;;;;;;6716:67:0::1;::::0;;;;;;-1:-1:-1;;;;;5264:15:1;;;6716:67:0::1;::::0;::::1;5246:34:1::0;5316:15;;5296:18;;;5289:43;5181:18;;6716:67:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6709:4;:74:::0;;-1:-1:-1;;;;;;6709:74:0::1;-1:-1:-1::0;;;;;6709:74:0;;;::::1;::::0;;::::1;::::0;;6794:104:::1;;6838:6;;;;;;;;;-1:-1:-1::0;;;;;6838:6:0::1;-1:-1:-1::0;;;;;6838:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6826:40:0::1;;6875:4;6882:6;;;;;;;;;-1:-1:-1::0;;;;;6882:6:0::1;-1:-1:-1::0;;;;;6882:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6826:70;::::0;-1:-1:-1;;;;;;6826:70:0::1;::::0;;;;;;-1:-1:-1;;;;;5264:15:1;;;6826:70:0::1;::::0;::::1;5246:34:1::0;5316:15;;5296:18;;;5289:43;5181:18;;6826:70:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6819:4;:77:::0;;-1:-1:-1;;;;;;6819:77:0::1;-1:-1:-1::0;;;;;6819:77:0;;;::::1;::::0;;;::::1;::::0;;6662:243::o;11478:293::-;1424:5;;-1:-1:-1;;;;;1424:5:0;1410:10;:19;1402:41;;;;-1:-1:-1;;;1402:41:0;;;;;;;:::i;:::-;11595:12;11641:13;11573:19:::1;11684:26;11641:13:::0;11595:12;11684:26:::1;:::i;:::-;11665:45;;11741:3;11729:8;:15;;11721:40;;;::::0;-1:-1:-1;;;11721:40:0;;9118:2:1;11721:40:0::1;::::0;::::1;9100:21:1::0;9157:2;9137:18;;;9130:30;-1:-1:-1;;;9176:18:1;;;9169:42;9228:18;;11721:40:0::1;8916:336:1::0;11721:40:0::1;11560:211;;;11478:293:::0;;:::o;12081:258::-;1424:5;;-1:-1:-1;;;;;1424:5:0;1410:10;:19;1402:41;;;;-1:-1:-1;;;1402:41:0;;;;;;;:::i;:::-;12191:1:::1;12180:7;:12;;12172:29;;;;-1:-1:-1::0;;;12172:29:0::1;;;;;;9459:2:1::0;9441:21;;;9498:1;9478:18;;;9471:29;-1:-1:-1;;;9531:2:1;9516:18;;9509:34;9575:2;9560:18;;9257:327;12172:29:0::1;12212:11;:22:::0;;-1:-1:-1;;;;12212:22:0::1;-1:-1:-1::0;;;12212:22:0;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;12245:13:::1;:23:::0;;;12284:47:::1;::::0;;12212:22:::1;12304:11:::0;;;::::1;::::0;;;::::1;9782:14:1::0;9775:22;9757:41;;9829:2;9814:18;;9807:34;;;12284:47:0::1;::::0;9730:18:1;12284:47:0::1;9589:258:1::0;1583:242:0;1424:5;;-1:-1:-1;;;;;1424:5:0;1410:10;:19;1402:41;;;;-1:-1:-1;;;1402:41:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1672:22:0;::::1;1664:73;;;::::0;-1:-1:-1;;;1664:73:0;;10054:2:1;1664:73:0::1;::::0;::::1;10036:21:1::0;10093:2;10073:18;;;10066:30;10132:34;10112:18;;;10105:62;-1:-1:-1;;;10183:18:1;;;10176:36;10229:19;;1664:73:0::1;9852:402:1::0;1664:73:0::1;1774:5;::::0;;1753:37:::1;::::0;-1:-1:-1;;;;;1753:37:0;;::::1;::::0;1774:5;::::1;::::0;1753:37:::1;::::0;::::1;1801:5;:16:::0;;-1:-1:-1;;;;;;1801:16:0::1;-1:-1:-1::0;;;;;1801:16:0;;;::::1;::::0;;;::::1;::::0;;1583:242::o;7091:974::-;7205:6;;7183:4;;7205:6;;7202:62;;;7221:41;7236:6;7244:9;7255:6;7221:14;:41::i;:::-;7214:48;;;;7202:62;-1:-1:-1;;;;;7282:19:0;;;;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;7305:22:0;;;;;;:11;:22;;;;;;;;7282:45;:65;;;-1:-1:-1;7331:16:0;;;;7282:65;7274:94;;;;-1:-1:-1;;;7274:94:0;;10461:2:1;7274:94:0;;;10443:21:1;10500:2;10480:18;;;10473:30;-1:-1:-1;;;10519:18:1;;;10512:46;10575:18;;7274:94:0;10259:340:1;7274:94:0;7395:5;;-1:-1:-1;;;;;7385:15:0;;;7395:5;;7385:15;;;;:37;;-1:-1:-1;7417:5:0;;-1:-1:-1;;;;;7404:18:0;;;7417:5;;7404:18;;7385:37;:58;;;;-1:-1:-1;;;;;;7426:17:0;;3850:42;7426:17;;7385:58;:79;;;;-1:-1:-1;7460:4:0;;-1:-1:-1;;;;;7447:17:0;;;7460:4;;7447:17;;7385:79;:107;;;;-1:-1:-1;7478:14:0;;-1:-1:-1;;;;;7468:24:0;;;7478:14;;7468:24;;7385:107;7381:282;;;-1:-1:-1;;;;;7517:26:0;;;;;;:15;:26;;;;;;;;;:121;;;7558:10;;7548:6;:20;;:89;;;;-1:-1:-1;7623:14:0;;-1:-1:-1;;;;;7590:20:0;;;;;;:9;:20;;;;;;:29;;7613:6;;7590:29;:::i;:::-;:47;;7548:89;7509:142;;;;-1:-1:-1;;;7509:142:0;;10806:2:1;7509:142:0;;;10788:21:1;10845:1;10825:18;;;10818:29;-1:-1:-1;;;10863:18:1;;;10856:38;10911:18;;7509:142:0;10604:331:1;7509:142:0;7678:16;:14;:16::i;:::-;7675:33;;;7696:10;:8;:10::i;:::-;-1:-1:-1;;;;;7740:17:0;;;;;;:9;:17;;;;;;:26;;7760:6;;7740:26;:::i;:::-;-1:-1:-1;;;;;7720:17:0;;;;;;:9;:17;;;;;;;;:46;;;;8497:11;:19;;;;;;;;8496:20;7803:22;:51;;;-1:-1:-1;;;;;;8497:19:0;;8472:4;8497:19;;;:11;:19;;;;;;;;8496:20;7829:25;7803:51;7802:99;;7867:34;7875:6;7883:9;7894:6;7867:7;:34::i;:::-;7802:99;;;7858:6;7802:99;-1:-1:-1;;;;;7935:20:0;;;;;;:9;:20;;;;;;7777:124;;-1:-1:-1;7935:39:0;;7777:124;;7935:39;:::i;:::-;-1:-1:-1;;;;;7912:20:0;;;;;;;:9;:20;;;;;;;:62;;;;7992:43;;;;;;;;;;8020:14;640:25:1;;628:2;613:18;;494:177;7992:43:0;;;;;;;;-1:-1:-1;8053:4:0;;7091:974;-1:-1:-1;;;;7091:974:0:o;10075:697::-;4161:6;:13;;-1:-1:-1;;4161:13:0;4170:4;4161:13;;;:6;10156:9:::1;:7;:9::i;:::-;10145:8;;:20;;;;:::i;:::-;10126:39:::0;-1:-1:-1;10176:19:0::1;10243:12;10126:39:::0;10243:1:::1;:12;:::i;:::-;10226;::::0;10216:4:::1;5555:7:::0;5573:18;;;:9;:18;;;;;;10198:41:::1;;;;:::i;:::-;:58;;;;:::i;:::-;10308:4;10267:20;5573:18:::0;;;:9;:18;;;;;;10176:80;;-1:-1:-1;10267:20:0;10290:38:::1;::::0;10176:80;;10290:38:::1;:::i;:::-;10365:16;::::0;;10379:1:::1;10365:16:::0;;;;;::::1;::::0;;10267:61;;-1:-1:-1;10341:21:0::1;::::0;10365:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10365:16:0::1;10341:40;;10410:4;10392;10397:1;10392:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10392:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10436:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;10436:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;10392:7;;10436:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10426:4;10431:1;10426:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10426:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;10462:6:::1;::::0;:112:::1;::::0;-1:-1:-1;;;10462:112:0;;:6;::::1;::::0;:57:::1;::::0;:112:::1;::::0;10520:12;;10462:6:::1;::::0;10537:4;;10551::::1;::::0;10558:15:::1;::::0;10462:112:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10605:1;10591:11;:15;10587:145;;;10623:97;10636:11;10706:12;;10695:8;10691:1;:12;;;;:::i;:::-;:27;;;;:::i;:::-;10674:12;::::0;10649:38:::1;::::0;:21:::1;:38;:::i;:::-;:70;;;;:::i;:::-;10623:12;:97::i;:::-;10748:10;:8;:10::i;:::-;-1:-1:-1::0;;4179:6:0;:14;;-1:-1:-1;;4179:14:0;;;-1:-1:-1;;10075:697:0:o;8077:300::-;-1:-1:-1;;;;;8207:17:0;;8170:4;8207:17;;;:9;:17;;;;;;:26;;8227:6;;8207:26;:::i;:::-;-1:-1:-1;;;;;8187:17:0;;;;;;;:9;:17;;;;;;:46;;;;8267:20;;;;;;;:29;;8290:6;;8267:29;:::i;:::-;-1:-1:-1;;;;;8244:20:0;;;;;;;:9;:20;;;;;;;:52;;;;8312:35;;;;;;;;;;8340:6;640:25:1;;628:2;613:18;;494:177;8312:35:0;;;;;;;;-1:-1:-1;8365:4:0;8077:300;;;;;:::o;9231:197::-;9318:4;;9280;;-1:-1:-1;;;;;9318:4:0;9304:10;:18;;;;:38;;-1:-1:-1;9336:6:0;;;;9335:7;9304:38;:62;;;;-1:-1:-1;9355:11:0;;-1:-1:-1;;;9355:11:0;;;;9304:62;:116;;;;-1:-1:-1;9407:13:0;;9397:4;9379:24;;;;:9;:24;;;;;;:41;;9304:116;9297:123;;9231:197;:::o;8665:558::-;8832:4;;8751:7;;;;-1:-1:-1;;;;;8822:14:0;;;8832:4;;8822:14;;;;:35;;-1:-1:-1;8853:4:0;;-1:-1:-1;;;;;8840:17:0;;;8853:4;;8840:17;8822:35;:74;;;-1:-1:-1;8871:4:0;;-1:-1:-1;;;;;8861:14:0;;;8871:4;;8861:14;:35;;;;-1:-1:-1;8892:4:0;;-1:-1:-1;;;;;8879:17:0;;;8892:4;;8879:17;;8861:35;8818:161;;;8959:4;8946:9;:7;:9::i;:::-;8935:8;;:20;;;;:::i;:::-;8925:31;;:6;:31;:::i;:::-;:38;;;;:::i;:::-;8913:50;;8818:161;8995:13;;8991:185;;9070:4;9052:24;;;;:9;:24;;;;;;:38;;9080:9;;9052:38;:::i;:::-;9043:4;9025:24;;;;:9;:24;;;;;;;:65;;;;9110:42;;-1:-1:-1;;;;;9110:42:0;;;;;;;9142:9;640:25:1;;628:2;613:18;;494:177;9110:42:0;;;;;;;;8991:185;9195:20;9205:9;9195:6;:20;:::i;:::-;9188:27;8665:558;-1:-1:-1;;;;;8665:558:0:o;8532:125::-;8568:7;8633:8;;8614:16;;:27;;;;:::i;:::-;8595:15;:46;;:54;;8648:1;8595:54;;;8644:1;8595:54;8588:61;;;;8532:125;:::o;9436:346::-;9544:4;9524:26;;;;:11;:26;;;;;;;;9559:6;;-1:-1:-1;;;;;9559:6:0;9524:43;;;;;;;;:59;-1:-1:-1;9521:125:0;;;9605:4;9585:26;;;;:11;:26;;;;;;;;9620:6;;-1:-1:-1;;;;;9620:6:0;9585:43;;;;;;;:59;;;9521:125;9656:6;;9735:9;;-1:-1:-1;;;;;9656:6:0;;;;:22;;9686:11;;9707:4;;9714:13;;9656:6;;;;9735:9;9746:27;:15;9764:9;9746:27;:::i;:::-;9656:118;;;;;;-1:-1:-1;;;;;;9656:118:0;;;-1:-1:-1;;;;;12721:15:1;;;9656:118:0;;;12703:34:1;12753:18;;;12746:34;;;;12796:18;;;12789:34;;;;12839:18;;;12832:34;;;;12903:15;;;12882:19;;;12875:44;12935:19;;;12928:35;;;;12637:19;;9656:118:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9790:277::-;9848:21;9884:11;;9880:180;;9939:14;;9931:74;;9913:13;;-1:-1:-1;;;;;9939:14:0;;9995:5;;9967:21;;9913:13;9931:74;9913:13;9931:74;9967:21;9939:14;9995:5;9931:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9912:93;;;10028:8;10020:28;;;;-1:-1:-1;;;10020:28:0;;13697:2:1;10020:28:0;;;13679:21:1;13736:1;13716:18;;;13709:29;-1:-1:-1;;;13754:18:1;;;13747:37;13801:18;;10020:28:0;13495:330:1;14:139;-1:-1:-1;;;;;97:31:1;;87:42;;77:70;;143:1;140;133:12;158:331;234:6;242;295:2;283:9;274:7;270:23;266:32;263:52;;;311:1;308;301:12;263:52;347:9;334:23;324:33;;407:2;396:9;392:18;379:32;420:39;453:5;420:39;:::i;:::-;478:5;468:15;;;158:331;;;;;:::o;868:548::-;980:4;1009:2;1038;1027:9;1020:21;1070:6;1064:13;1113:6;1108:2;1097:9;1093:18;1086:34;1138:1;1148:140;1162:6;1159:1;1156:13;1148:140;;;1257:14;;;1253:23;;1247:30;1223:17;;;1242:2;1219:26;1212:66;1177:10;;1148:140;;;1152:3;1337:1;1332:2;1323:6;1312:9;1308:22;1304:31;1297:42;1407:2;1400;1396:7;1391:2;1383:6;1379:15;1375:29;1364:9;1360:45;1356:54;1348:62;;;;868:548;;;;:::o;1421:323::-;1489:6;1497;1550:2;1538:9;1529:7;1525:23;1521:32;1518:52;;;1566:1;1563;1556:12;1518:52;1605:9;1592:23;1624:39;1657:5;1624:39;:::i;:::-;1682:5;1734:2;1719:18;;;;1706:32;;-1:-1:-1;;;1421:323:1:o;1749:118::-;1835:5;1828:13;1821:21;1814:5;1811:32;1801:60;;1857:1;1854;1847:12;1872:390;1937:6;1945;1998:2;1986:9;1977:7;1973:23;1969:32;1966:52;;;2014:1;2011;2004:12;1966:52;2053:9;2040:23;2072:39;2105:5;2072:39;:::i;:::-;2130:5;-1:-1:-1;2187:2:1;2172:18;;2159:32;2200:30;2159:32;2200:30;:::i;2267:472::-;2344:6;2352;2360;2413:2;2401:9;2392:7;2388:23;2384:32;2381:52;;;2429:1;2426;2419:12;2381:52;2468:9;2455:23;2487:39;2520:5;2487:39;:::i;:::-;2545:5;-1:-1:-1;2602:2:1;2587:18;;2574:32;2615:41;2574:32;2615:41;:::i;:::-;2267:472;;2675:7;;-1:-1:-1;;;2729:2:1;2714:18;;;;2701:32;;2267:472::o;2744:180::-;2803:6;2856:2;2844:9;2835:7;2831:23;2827:32;2824:52;;;2872:1;2869;2862:12;2824:52;-1:-1:-1;2895:23:1;;2744:180;-1:-1:-1;2744:180:1:o;2929:255::-;2988:6;3041:2;3029:9;3020:7;3016:23;3012:32;3009:52;;;3057:1;3054;3047:12;3009:52;3096:9;3083:23;3115:39;3148:5;3115:39;:::i;3378:248::-;3446:6;3454;3507:2;3495:9;3486:7;3482:23;3478:32;3475:52;;;3523:1;3520;3513:12;3475:52;-1:-1:-1;;3546:23:1;;;3616:2;3601:18;;;3588:32;;-1:-1:-1;3378:248:1:o;3631:241::-;3687:6;3740:2;3728:9;3719:7;3715:23;3711:32;3708:52;;;3756:1;3753;3746:12;3708:52;3795:9;3782:23;3814:28;3836:5;3814:28;:::i;3877:404::-;3945:6;3953;4006:2;3994:9;3985:7;3981:23;3977:32;3974:52;;;4022:1;4019;4012:12;3974:52;4061:9;4048:23;4080:39;4113:5;4080:39;:::i;:::-;4138:5;-1:-1:-1;4195:2:1;4180:18;;4167:32;4208:41;4167:32;4208:41;:::i;4494:309::-;4559:6;4567;4620:2;4608:9;4599:7;4595:23;4591:32;4588:52;;;4636:1;4633;4626:12;4588:52;4675:9;4662:23;4694:28;4716:5;4694:28;:::i;5343:332::-;5545:2;5527:21;;;5584:1;5564:18;;;5557:29;-1:-1:-1;;;5617:2:1;5602:18;;5595:39;5666:2;5651:18;;5343:332::o;6320:127::-;6381:10;6376:3;6372:20;6369:1;6362:31;6412:4;6409:1;6402:15;6436:4;6433:1;6426:15;6452:128;6519:9;;;6540:11;;;6537:37;;;6554:18;;:::i;6585:217::-;6625:1;6651;6641:132;;6695:10;6690:3;6686:20;6683:1;6676:31;6730:4;6727:1;6720:15;6758:4;6755:1;6748:15;6641:132;-1:-1:-1;6787:9:1;;6585:217::o;7469:184::-;7539:6;7592:2;7580:9;7571:7;7567:23;7563:32;7560:52;;;7608:1;7605;7598:12;7560:52;-1:-1:-1;7631:16:1;;7469:184;-1:-1:-1;7469:184:1:o;7937:245::-;8004:6;8057:2;8045:9;8036:7;8032:23;8028:32;8025:52;;;8073:1;8070;8063:12;8025:52;8105:9;8099:16;8124:28;8146:5;8124:28;:::i;8522:259::-;8592:6;8645:2;8633:9;8624:7;8620:23;8616:32;8613:52;;;8661:1;8658;8651:12;8613:52;8693:9;8687:16;8712:39;8745:5;8712:39;:::i;8786:125::-;8851:9;;;8872:10;;;8869:36;;;8885:18;;:::i;10940:168::-;11013:9;;;11044;;11061:15;;;11055:22;;11041:37;11031:71;;11082:18;;:::i;11245:127::-;11306:10;11301:3;11297:20;11294:1;11287:31;11337:4;11334:1;11327:15;11361:4;11358:1;11351:15;11377:980;11639:4;11687:3;11676:9;11672:19;11718:6;11707:9;11700:25;11744:2;11782:6;11777:2;11766:9;11762:18;11755:34;11825:3;11820:2;11809:9;11805:18;11798:31;11849:6;11884;11878:13;11915:6;11907;11900:22;11953:3;11942:9;11938:19;11931:26;;11992:2;11984:6;11980:15;11966:29;;12013:1;12023:195;12037:6;12034:1;12031:13;12023:195;;;12102:13;;-1:-1:-1;;;;;12098:39:1;12086:52;;12193:15;;;;12158:12;;;;12134:1;12052:9;12023:195;;;-1:-1:-1;;;;;;;12274:32:1;;;;12269:2;12254:18;;12247:60;-1:-1:-1;;;12338:3:1;12323:19;12316:35;12235:3;11377:980;-1:-1:-1;;;11377:980:1:o;12974:306::-;13062:6;13070;13078;13131:2;13119:9;13110:7;13106:23;13102:32;13099:52;;;13147:1;13144;13137:12;13099:52;13176:9;13170:16;13160:26;;13226:2;13215:9;13211:18;13205:25;13195:35;;13270:2;13259:9;13255:18;13249:25;13239:35;;12974:306;;;;;:::o

Swarm Source

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