ETH Price: $3,672.86 (+0.90%)

Token

ERC-20: Not Financial Advice (NFA)
 

Overview

Max Total Supply

100,000,000 NFA

Holders

91

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
599,456.958877857105105967 NFA

Value
$0.00
0xf176547b1c6124e42717f559b2ced277721ea2b7
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:
NotFinancialAdvice

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// Not Financial Advice (NFA)

// SPDX-License-Identifier: MIT

pragma solidity 0.8.12;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; 
        return msg.data;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}


contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping (address => uint256) internal _balances;

    mapping (address => mapping (address => uint256)) internal _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor (string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }


    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

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

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

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

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

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

        return true;
    }

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

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

        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
}

library Address{
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

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

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

contract NotFinancialAdvice is ERC20, Ownable{ 
    using Address for address payable;
    
    IRouter public router;
    address public pair;
    
    bool private swapping;
    bool public swapEnabled;
    bool public tradingEnabled;

    uint256 public genesis_block;
    uint256 public deadblocks = 0;
    
    uint256 public swapThreshold = 10_000 * 10e18;
    uint256 public maxTxAmount = 2_000_000 * 10**18; 
    uint256 public maxWalletAmount = 2_000_000 * 10**18; 
    
    address public marketingWallet = 0x513039B85A26A6DD72c70a08E11D624Bc6d5Fe8f; 
    address public devWallet = 0x513039B85A26A6DD72c70a08E11D624Bc6d5Fe8f;
    
    struct Taxes {
        uint256 marketing;
        uint256 liquidity; 
        uint256 dev;
    }
    
    Taxes public taxes = Taxes(22,0,6); 
    Taxes public sellTaxes = Taxes(34,0,4); 
    uint256 public totTax = 28; 
    uint256 public totSellTax = 38; 
    
    mapping (address => bool) public excludedFromFees;
    mapping (address => bool) private isBot;
    
    modifier inSwap() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }
        
    constructor() ERC20("Not Financial Advice", "NFA") { 
        _mint(msg.sender, 1e8 * 10 ** decimals()); 
        excludedFromFees[msg.sender] = true;

        excludedFromFees[address(this)] = true;
        excludedFromFees[marketingWallet] = true;
        excludedFromFees[devWallet] = true;
    }

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

        router = _router;
        pair = _pair;
    }
    
    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!isBot[sender] && !isBot[recipient], "You can't transfer tokens");
                
        
        if(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){
            require(tradingEnabled, "Trading not active yet");
            if(genesis_block + deadblocks > block.number){
                if(recipient != pair) isBot[recipient] = true;
                if(sender != pair) isBot[sender] = true;
            }
            require(amount <= maxTxAmount, "You are exceeding maxTxAmount");
            if(recipient != pair){
                require(balanceOf(recipient) + amount <= maxWalletAmount, "You are exceeding maxWalletAmount");
            }
        }

        uint256 fee;
        
  
        if (swapping || excludedFromFees[sender] || excludedFromFees[recipient]) fee = 0;
        
 
        else{
            if(recipient == pair) fee = amount * totSellTax / 100;
            else fee = amount * totTax / 100;
        }
        

        if (swapEnabled && !swapping && sender != pair && fee > 0) swapForFees();

        super._transfer(sender, recipient, amount - fee);
        if(fee > 0) super._transfer(sender, address(this) ,fee);

    }

    function swapForFees() private inSwap {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= swapThreshold) {

                    uint256 denominator = totSellTax * 2;
            uint256 tokensToAddLiquidityWith = contractBalance * sellTaxes.liquidity / denominator;
            uint256 toSwap = contractBalance - tokensToAddLiquidityWith;
    
            uint256 initialBalance = address(this).balance;
    
            swapTokensForETH(toSwap);
    
            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 unitBalance= deltaBalance / (denominator - sellTaxes.liquidity);
            uint256 ethToAddLiquidityWith = unitBalance * sellTaxes.liquidity;
    
            if(ethToAddLiquidityWith > 0){
                // Add liquidity to Uniswap
                addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }
    
            uint256 marketingAmt = unitBalance * 2 * sellTaxes.marketing;
            if(marketingAmt > 0){
                payable(marketingWallet).sendValue(marketingAmt);
            }
            
            uint256 devAmt = unitBalance * 2 * sellTaxes.dev;
            if(devAmt > 0){
                payable(devWallet).sendValue(devAmt);
            }
        }
    }


    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

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

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);

    }

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

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

    function setSwapEnabled(bool state) external onlyOwner {
        swapEnabled = state;
    }

    function setSwapThreshold(uint256 new_amount) external onlyOwner {
        swapThreshold = new_amount;
    }

    function enableTrading(uint256 numOfDeadBlocks) external onlyOwner{
        require(!tradingEnabled, "Trading already active");
        tradingEnabled = true;
        swapEnabled = true;
        genesis_block = block.number;
        deadblocks = numOfDeadBlocks;
    }

    function setBuyTaxes(uint256 _marketing, uint256 _liquidity, uint256 _dev) external onlyOwner{
        taxes = Taxes(_marketing, _liquidity, _dev);
        totTax = _marketing + _liquidity + _dev;
    }

    function setSellTaxes(uint256 _marketing, uint256 _liquidity, uint256 _dev) external onlyOwner{
        sellTaxes = Taxes(_marketing, _liquidity, _dev);
        totSellTax = _marketing + _liquidity + _dev;
    }
    
    function updateDBMarketingWallet(address newWallet) external onlyOwner{
        marketingWallet = newWallet;
    }
    
    function updateDBTeamWallet(address newWallet) external onlyOwner{
        devWallet = newWallet;
    }

    function updateRouterAndPair(IRouter _router, address _pair) external onlyOwner{
        router = _router;
        pair = _pair;
    }
    
        function addBots(address[] memory isBot_) public onlyOwner {
        for (uint i = 0; i < isBot_.length; i++) {
            isBot[isBot_[i]] = true;
        }
        }
    function updateExcludedFromFees(address _address, bool state) external onlyOwner {
        excludedFromFees[_address] = state;
    }
    
    function updateMaxTxAmount(uint256 amount) external onlyOwner{
        maxTxAmount = amount * 10**18;
    }
    
    function updateMaxWalletAmount(uint256 amount) external onlyOwner{
        maxWalletAmount = amount * 10**18;
    }

    function rescueERC20(address tokenAddress, uint256 amount) external onlyOwner{
        IERC20(tokenAddress).transfer(owner(), amount);
    }

    function rescueETH(uint256 weiAmount) external onlyOwner{
        payable(owner()).sendValue(weiAmount);
    }

    function manualSwap(uint256 amount, uint256 devPercentage, uint256 marketingPercentage) external onlyOwner{
        uint256 initBalance = address(this).balance;
        swapTokensForETH(amount);
        uint256 newBalance = address(this).balance - initBalance;
        if(marketingPercentage > 0) payable(marketingWallet).sendValue(newBalance * marketingPercentage / (devPercentage + marketingPercentage));
        if(devPercentage > 0) payable(devWallet).sendValue(newBalance * devPercentage / (devPercentage + marketingPercentage));
    }

    // fallbacks
    receive() external payable {}
    
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"isBot_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadblocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"numOfDeadBlocks","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"devPercentage","type":"uint256"},{"internalType":"uint256","name":"marketingPercentage","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","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":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"address","name":"newWallet","type":"address"}],"name":"updateDBMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDBTeamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IRouter","name":"_router","type":"address"},{"internalType":"address","name":"_pair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6000600981905569152d02c7e14af6800000600a556a01a784379d99db42000000600b819055600c55600d805473513039b85a26a6dd72c70a08e11d624bc6d5fe8f6001600160a01b03199182168117909255600e805490911690911790556016608081905260a0829052600660c0819052600f8290556010839055601155610140604052602260e08190526101008390526004610120819052601291909155601392909255601491909155601c60155560269055348015620000c157600080fd5b506040518060400160405280601481526020017f4e6f742046696e616e6369616c20416476696365000000000000000000000000815250604051806040016040528060038152602001624e464160e81b81525081600390805190602001906200012c92919062000328565b5080516200014290600490602084019062000328565b5050506200015f62000159620001ea60201b60201c565b620001ee565b6200018833620001726012600a620004e3565b62000182906305f5e100620004fb565b62000240565b336000908152601760205260408082208054600160ff1991821681179092553084528284208054821683179055600d546001600160a01b0390811685528385208054831684179055600e54168452919092208054909116909117905562000575565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166200029b5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060026000828254620002af91906200051d565b90915550506001600160a01b03821660009081526020819052604081208054839290620002de9084906200051d565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620003369062000538565b90600052602060002090601f0160209004810192826200035a5760008555620003a5565b82601f106200037557805160ff1916838001178555620003a5565b82800160010185558215620003a5579182015b82811115620003a557825182559160200191906001019062000388565b50620003b3929150620003b7565b5090565b5b80821115620003b35760008155600101620003b8565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000425578160001904821115620004095762000409620003ce565b808516156200041757918102915b93841c9390800290620003e9565b509250929050565b6000826200043e57506001620004dd565b816200044d57506000620004dd565b8160018114620004665760028114620004715762000491565b6001915050620004dd565b60ff841115620004855762000485620003ce565b50506001821b620004dd565b5060208310610133831016604e8410600b8410161715620004b6575081810a620004dd565b620004c28383620003e4565b8060001904821115620004d957620004d9620003ce565b0290505b92915050565b6000620004f460ff8416836200042d565b9392505050565b6000816000190483118215151615620005185762000518620003ce565b500290565b60008219821115620005335762000533620003ce565b500190565b600181811c908216806200054d57607f821691505b602082108114156200056f57634e487b7160e01b600052602260045260246000fd5b50919050565b61247e80620005856000396000f3fe6080604052600436106102815760003560e01c80638c0b5e221161014f578063a9059cbb116100c1578063e01af92c1161007a578063e01af92c146107bc578063e545fd6d146107dc578063f2fde38b146107fc578063f66895a31461081c578063f887ea401461083b578063fb53d9a21461085b57600080fd5b8063a9059cbb146106d0578063aa4bde28146106f0578063c18bc19514610706578063d34628cc14610726578063dbe66ca014610746578063dd62ed3e1461077657600080fd5b80639d0014b1116101135780639d0014b11461061b5780639e252f001461063b5780639e78fb4f1461065b578063a457c2d714610670578063a7c7f0af14610690578063a8aa1b31146106b057600080fd5b80638c0b5e22146105925780638cd4426d146105a85780638da5cb5b146105c85780638ea5220f146105e657806395d89b411461060657600080fd5b8063313ce567116101f35780636ddd1713116101ac5780636ddd17131461049457806370a08231146104b5578063715018a6146104eb578063728f8eea1461050057806375f0a8741461053a57806382aa7c681461057257600080fd5b8063313ce567146103e157806339509351146103fd57806340b28c2f1461041d5780634ada218b1461043d57806350c9a88f1461045e5780636256d1811461047457600080fd5b80631870517a116102455780631870517a1461033f5780632253163d1461035f57806323b872dd1461037557806326b5d32f14610395578063274a533c146103b5578063293b7ef4146103cb57600080fd5b80630445b6671461028d57806306fdde03146102b657806308733214146102d8578063095ea7b3146102fa57806318160ddd1461032a57600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102a3600a5481565b6040519081526020015b60405180910390f35b3480156102c257600080fd5b506102cb61087b565b6040516102ad9190611f8b565b3480156102e457600080fd5b506102f86102f3366004611fe0565b61090d565b005b34801561030657600080fd5b5061031a610315366004612031565b610984565b60405190151581526020016102ad565b34801561033657600080fd5b506002546102a3565b34801561034b57600080fd5b506102f861035a366004611fe0565b61099a565b34801561036b57600080fd5b506102a360165481565b34801561038157600080fd5b5061031a61039036600461205d565b610a08565b3480156103a157600080fd5b506102f86103b0366004611fe0565b610ab9565b3480156103c157600080fd5b506102a360085481565b3480156103d757600080fd5b506102a360155481565b3480156103ed57600080fd5b50604051601281526020016102ad565b34801561040957600080fd5b5061031a610418366004612031565b610b74565b34801561042957600080fd5b506102f861043836600461209e565b610bab565b34801561044957600080fd5b5060075461031a90600160b01b900460ff1681565b34801561046a57600080fd5b506102a360095481565b34801561048057600080fd5b506102f861048f3660046120d7565b610c03565b3480156104a057600080fd5b5060075461031a90600160a81b900460ff1681565b3480156104c157600080fd5b506102a36104d03660046120f0565b6001600160a01b031660009081526020819052604090205490565b3480156104f757600080fd5b506102f8610c45565b34801561050c57600080fd5b50600f5460105460115461051f92919083565b604080519384526020840192909252908201526060016102ad565b34801561054657600080fd5b50600d5461055a906001600160a01b031681565b6040516001600160a01b0390911681526020016102ad565b34801561057e57600080fd5b506102f861058d3660046120d7565b610c7b565b34801561059e57600080fd5b506102a3600b5481565b3480156105b457600080fd5b506102f86105c3366004612031565b610d16565b3480156105d457600080fd5b506005546001600160a01b031661055a565b3480156105f257600080fd5b50600e5461055a906001600160a01b031681565b34801561061257600080fd5b506102cb610dd7565b34801561062757600080fd5b506102f86106363660046120d7565b610de6565b34801561064757600080fd5b506102f86106563660046120d7565b610e15565b34801561066757600080fd5b506102f8610e67565b34801561067c57600080fd5b5061031a61068b366004612031565b611020565b34801561069c57600080fd5b506102f86106ab3660046120f0565b6110bb565b3480156106bc57600080fd5b5060075461055a906001600160a01b031681565b3480156106dc57600080fd5b5061031a6106eb366004612031565b611107565b3480156106fc57600080fd5b506102a3600c5481565b34801561071257600080fd5b506102f86107213660046120d7565b611114565b34801561073257600080fd5b506102f861074136600461212a565b611156565b34801561075257600080fd5b5061031a6107613660046120f0565b60176020526000908152604090205460ff1681565b34801561078257600080fd5b506102a361079136600461209e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156107c857600080fd5b506102f86107d73660046121fd565b6111ec565b3480156107e857600080fd5b506102f86107f736600461221a565b611234565b34801561080857600080fd5b506102f86108173660046120f0565b611289565b34801561082857600080fd5b5060125460135460145461051f92919083565b34801561084757600080fd5b5060065461055a906001600160a01b031681565b34801561086757600080fd5b506102f86108763660046120f0565b611321565b60606003805461088a90612248565b80601f01602080910402602001604051908101604052809291908181526020018280546108b690612248565b80156109035780601f106108d857610100808354040283529160200191610903565b820191906000526020600020905b8154815290600101906020018083116108e657829003601f168201915b5050505050905090565b6005546001600160a01b031633146109405760405162461bcd60e51b815260040161093790612283565b60405180910390fd5b6040805160608101825284815260208101849052018190526012839055601382905560148190558061097283856122ce565b61097c91906122ce565b601655505050565b600061099133848461136d565b50600192915050565b6005546001600160a01b031633146109c45760405162461bcd60e51b815260040161093790612283565b604080516060810182528481526020810184905201819052600f83905560108290556011819055806109f683856122ce565b610a0091906122ce565b601555505050565b6000610a15848484611491565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610a9a5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610937565b610aae8533610aa986856122e6565b61136d565b506001949350505050565b6005546001600160a01b03163314610ae35760405162461bcd60e51b815260040161093790612283565b47610aed846118dd565b6000610af982476122e6565b90508215610b3457610b34610b0e84866122ce565b610b1885846122fd565b610b22919061231c565b600d546001600160a01b031690611a37565b8315610b6d57610b6d610b4784866122ce565b610b5186846122fd565b610b5b919061231c565b600e546001600160a01b031690611a37565b5050505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610991918590610aa99086906122ce565b6005546001600160a01b03163314610bd55760405162461bcd60e51b815260040161093790612283565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b03163314610c2d5760405162461bcd60e51b815260040161093790612283565b610c3f81670de0b6b3a76400006122fd565b600b5550565b6005546001600160a01b03163314610c6f5760405162461bcd60e51b815260040161093790612283565b610c796000611b50565b565b6005546001600160a01b03163314610ca55760405162461bcd60e51b815260040161093790612283565b600754600160b01b900460ff1615610cf85760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b6044820152606401610937565b6007805461ffff60a81b191661010160a81b17905543600855600955565b6005546001600160a01b03163314610d405760405162461bcd60e51b815260040161093790612283565b816001600160a01b031663a9059cbb610d616005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610dae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd2919061233e565b505050565b60606004805461088a90612248565b6005546001600160a01b03163314610e105760405162461bcd60e51b815260040161093790612283565b600a55565b6005546001600160a01b03163314610e3f5760405162461bcd60e51b815260040161093790612283565b610e6481610e556005546001600160a01b031690565b6001600160a01b031690611a37565b50565b6005546001600160a01b03163314610e915760405162461bcd60e51b815260040161093790612283565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0e919061235b565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7f919061235b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff0919061235b565b600680546001600160a01b039485166001600160a01b031991821617909155600780549290941691161790915550565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156110a25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610937565b6110b13385610aa986856122e6565b5060019392505050565b6005546001600160a01b031633146110e55760405162461bcd60e51b815260040161093790612283565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610991338484611491565b6005546001600160a01b0316331461113e5760405162461bcd60e51b815260040161093790612283565b61115081670de0b6b3a76400006122fd565b600c5550565b6005546001600160a01b031633146111805760405162461bcd60e51b815260040161093790612283565b60005b81518110156111e8576001601860008484815181106111a4576111a4612378565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806111e08161238e565b915050611183565b5050565b6005546001600160a01b031633146112165760405162461bcd60e51b815260040161093790612283565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b0316331461125e5760405162461bcd60e51b815260040161093790612283565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146112b35760405162461bcd60e51b815260040161093790612283565b6001600160a01b0381166113185760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610937565b610e6481611b50565b6005546001600160a01b0316331461134b5760405162461bcd60e51b815260040161093790612283565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166113cf5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610937565b6001600160a01b0382166114305760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610937565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116114f35760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610937565b6001600160a01b03831660009081526018602052604090205460ff1615801561153557506001600160a01b03821660009081526018602052604090205460ff16155b6115815760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e73000000000000006044820152606401610937565b6001600160a01b03831660009081526017602052604090205460ff161580156115c357506001600160a01b03821660009081526017602052604090205460ff16155b80156115d95750600754600160a01b900460ff16155b156117a557600754600160b01b900460ff166116305760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b6044820152606401610937565b4360095460085461164191906122ce565b11156116b9576007546001600160a01b03838116911614611680576001600160a01b0382166000908152601860205260409020805460ff191660011790555b6007546001600160a01b038481169116146116b9576001600160a01b0383166000908152601860205260409020805460ff191660011790555b600b5481111561170b5760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e740000006044820152606401610937565b6007546001600160a01b038381169116146117a557600c5481611743846001600160a01b031660009081526020819052604090205490565b61174d91906122ce565b11156117a55760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e6044820152601d60fa1b6064820152608401610937565b600754600090600160a01b900460ff16806117d857506001600160a01b03841660009081526017602052604090205460ff165b806117fb57506001600160a01b03831660009081526017602052604090205460ff165b156118085750600061185c565b6007546001600160a01b038481169116141561183f5760646016548361182e91906122fd565b611838919061231c565b905061185c565b60646015548361184f91906122fd565b611859919061231c565b90505b600754600160a81b900460ff16801561187f5750600754600160a01b900460ff16155b801561189957506007546001600160a01b03858116911614155b80156118a55750600081115b156118b2576118b2611ba2565b6118c684846118c184866122e6565b611d06565b80156118d7576118d7843083611d06565b50505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061191257611912612378565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561196b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198f919061235b565b816001815181106119a2576119a2612378565b6001600160a01b0392831660209182029290920101526006546119c8913091168461136d565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a019085906000908690309042906004016123a9565b600060405180830381600087803b158015611a1b57600080fd5b505af1158015611a2f573d6000803e3d6000fd5b505050505050565b80471015611a875760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610937565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611ad4576040519150601f19603f3d011682016040523d82523d6000602084013e611ad9565b606091505b5050905080610dd25760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610937565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610c79576007805460ff60a01b1916600160a01b179055306000908152602081905260408120549050600a548110611cf65760006016546002611bf291906122fd565b905060008160126001015484611c0891906122fd565b611c12919061231c565b90506000611c2082856122e6565b905047611c2c826118dd565b6000611c3882476122e6565b601354909150600090611c4b90876122e6565b611c55908361231c565b601354909150600090611c6890836122fd565b90508015611c7a57611c7a8682611ede565b601254600090611c8b8460026122fd565b611c9591906122fd565b90508015611cb357600d54611cb3906001600160a01b031682611a37565b601454600090611cc48560026122fd565b611cce91906122fd565b90508015611cec57600e54611cec906001600160a01b031682611a37565b5050505050505050505b506007805460ff60a01b19169055565b6001600160a01b038316611d6a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610937565b6001600160a01b038216611dcc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610937565b6001600160a01b03831660009081526020819052604090205481811015611e445760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610937565b611e4e82826122e6565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611e849084906122ce565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ed091815260200190565b60405180910390a350505050565b600654611ef69030906001600160a01b03168461136d565b600654600e5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611f66573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b6d919061241a565b600060208083528351808285015260005b81811015611fb857858101830151858201604001528201611f9c565b81811115611fca576000604083870101525b50601f01601f1916929092016040019392505050565b600080600060608486031215611ff557600080fd5b505081359360208301359350604090920135919050565b6001600160a01b0381168114610e6457600080fd5b803561202c8161200c565b919050565b6000806040838503121561204457600080fd5b823561204f8161200c565b946020939093013593505050565b60008060006060848603121561207257600080fd5b833561207d8161200c565b9250602084013561208d8161200c565b929592945050506040919091013590565b600080604083850312156120b157600080fd5b82356120bc8161200c565b915060208301356120cc8161200c565b809150509250929050565b6000602082840312156120e957600080fd5b5035919050565b60006020828403121561210257600080fd5b813561210d8161200c565b9392505050565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561213d57600080fd5b823567ffffffffffffffff8082111561215557600080fd5b818501915085601f83011261216957600080fd5b81358181111561217b5761217b612114565b8060051b604051601f19603f830116810181811085821117156121a0576121a0612114565b6040529182528482019250838101850191888311156121be57600080fd5b938501935b828510156121e3576121d485612021565b845293850193928501926121c3565b98975050505050505050565b8015158114610e6457600080fd5b60006020828403121561220f57600080fd5b813561210d816121ef565b6000806040838503121561222d57600080fd5b82356122388161200c565b915060208301356120cc816121ef565b600181811c9082168061225c57607f821691505b6020821081141561227d57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082198211156122e1576122e16122b8565b500190565b6000828210156122f8576122f86122b8565b500390565b6000816000190483118215151615612317576123176122b8565b500290565b60008261233957634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561235057600080fd5b815161210d816121ef565b60006020828403121561236d57600080fd5b815161210d8161200c565b634e487b7160e01b600052603260045260246000fd5b60006000198214156123a2576123a26122b8565b5060010190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123f95784516001600160a01b0316835293830193918301916001016123d4565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561242f57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220d18b865fdccad6fa3b2e18f31561f4a3eb8b502bafab5699945b0553259fcbbd64736f6c634300080c0033

Deployed Bytecode

0x6080604052600436106102815760003560e01c80638c0b5e221161014f578063a9059cbb116100c1578063e01af92c1161007a578063e01af92c146107bc578063e545fd6d146107dc578063f2fde38b146107fc578063f66895a31461081c578063f887ea401461083b578063fb53d9a21461085b57600080fd5b8063a9059cbb146106d0578063aa4bde28146106f0578063c18bc19514610706578063d34628cc14610726578063dbe66ca014610746578063dd62ed3e1461077657600080fd5b80639d0014b1116101135780639d0014b11461061b5780639e252f001461063b5780639e78fb4f1461065b578063a457c2d714610670578063a7c7f0af14610690578063a8aa1b31146106b057600080fd5b80638c0b5e22146105925780638cd4426d146105a85780638da5cb5b146105c85780638ea5220f146105e657806395d89b411461060657600080fd5b8063313ce567116101f35780636ddd1713116101ac5780636ddd17131461049457806370a08231146104b5578063715018a6146104eb578063728f8eea1461050057806375f0a8741461053a57806382aa7c681461057257600080fd5b8063313ce567146103e157806339509351146103fd57806340b28c2f1461041d5780634ada218b1461043d57806350c9a88f1461045e5780636256d1811461047457600080fd5b80631870517a116102455780631870517a1461033f5780632253163d1461035f57806323b872dd1461037557806326b5d32f14610395578063274a533c146103b5578063293b7ef4146103cb57600080fd5b80630445b6671461028d57806306fdde03146102b657806308733214146102d8578063095ea7b3146102fa57806318160ddd1461032a57600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102a3600a5481565b6040519081526020015b60405180910390f35b3480156102c257600080fd5b506102cb61087b565b6040516102ad9190611f8b565b3480156102e457600080fd5b506102f86102f3366004611fe0565b61090d565b005b34801561030657600080fd5b5061031a610315366004612031565b610984565b60405190151581526020016102ad565b34801561033657600080fd5b506002546102a3565b34801561034b57600080fd5b506102f861035a366004611fe0565b61099a565b34801561036b57600080fd5b506102a360165481565b34801561038157600080fd5b5061031a61039036600461205d565b610a08565b3480156103a157600080fd5b506102f86103b0366004611fe0565b610ab9565b3480156103c157600080fd5b506102a360085481565b3480156103d757600080fd5b506102a360155481565b3480156103ed57600080fd5b50604051601281526020016102ad565b34801561040957600080fd5b5061031a610418366004612031565b610b74565b34801561042957600080fd5b506102f861043836600461209e565b610bab565b34801561044957600080fd5b5060075461031a90600160b01b900460ff1681565b34801561046a57600080fd5b506102a360095481565b34801561048057600080fd5b506102f861048f3660046120d7565b610c03565b3480156104a057600080fd5b5060075461031a90600160a81b900460ff1681565b3480156104c157600080fd5b506102a36104d03660046120f0565b6001600160a01b031660009081526020819052604090205490565b3480156104f757600080fd5b506102f8610c45565b34801561050c57600080fd5b50600f5460105460115461051f92919083565b604080519384526020840192909252908201526060016102ad565b34801561054657600080fd5b50600d5461055a906001600160a01b031681565b6040516001600160a01b0390911681526020016102ad565b34801561057e57600080fd5b506102f861058d3660046120d7565b610c7b565b34801561059e57600080fd5b506102a3600b5481565b3480156105b457600080fd5b506102f86105c3366004612031565b610d16565b3480156105d457600080fd5b506005546001600160a01b031661055a565b3480156105f257600080fd5b50600e5461055a906001600160a01b031681565b34801561061257600080fd5b506102cb610dd7565b34801561062757600080fd5b506102f86106363660046120d7565b610de6565b34801561064757600080fd5b506102f86106563660046120d7565b610e15565b34801561066757600080fd5b506102f8610e67565b34801561067c57600080fd5b5061031a61068b366004612031565b611020565b34801561069c57600080fd5b506102f86106ab3660046120f0565b6110bb565b3480156106bc57600080fd5b5060075461055a906001600160a01b031681565b3480156106dc57600080fd5b5061031a6106eb366004612031565b611107565b3480156106fc57600080fd5b506102a3600c5481565b34801561071257600080fd5b506102f86107213660046120d7565b611114565b34801561073257600080fd5b506102f861074136600461212a565b611156565b34801561075257600080fd5b5061031a6107613660046120f0565b60176020526000908152604090205460ff1681565b34801561078257600080fd5b506102a361079136600461209e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156107c857600080fd5b506102f86107d73660046121fd565b6111ec565b3480156107e857600080fd5b506102f86107f736600461221a565b611234565b34801561080857600080fd5b506102f86108173660046120f0565b611289565b34801561082857600080fd5b5060125460135460145461051f92919083565b34801561084757600080fd5b5060065461055a906001600160a01b031681565b34801561086757600080fd5b506102f86108763660046120f0565b611321565b60606003805461088a90612248565b80601f01602080910402602001604051908101604052809291908181526020018280546108b690612248565b80156109035780601f106108d857610100808354040283529160200191610903565b820191906000526020600020905b8154815290600101906020018083116108e657829003601f168201915b5050505050905090565b6005546001600160a01b031633146109405760405162461bcd60e51b815260040161093790612283565b60405180910390fd5b6040805160608101825284815260208101849052018190526012839055601382905560148190558061097283856122ce565b61097c91906122ce565b601655505050565b600061099133848461136d565b50600192915050565b6005546001600160a01b031633146109c45760405162461bcd60e51b815260040161093790612283565b604080516060810182528481526020810184905201819052600f83905560108290556011819055806109f683856122ce565b610a0091906122ce565b601555505050565b6000610a15848484611491565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610a9a5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610937565b610aae8533610aa986856122e6565b61136d565b506001949350505050565b6005546001600160a01b03163314610ae35760405162461bcd60e51b815260040161093790612283565b47610aed846118dd565b6000610af982476122e6565b90508215610b3457610b34610b0e84866122ce565b610b1885846122fd565b610b22919061231c565b600d546001600160a01b031690611a37565b8315610b6d57610b6d610b4784866122ce565b610b5186846122fd565b610b5b919061231c565b600e546001600160a01b031690611a37565b5050505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610991918590610aa99086906122ce565b6005546001600160a01b03163314610bd55760405162461bcd60e51b815260040161093790612283565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b03163314610c2d5760405162461bcd60e51b815260040161093790612283565b610c3f81670de0b6b3a76400006122fd565b600b5550565b6005546001600160a01b03163314610c6f5760405162461bcd60e51b815260040161093790612283565b610c796000611b50565b565b6005546001600160a01b03163314610ca55760405162461bcd60e51b815260040161093790612283565b600754600160b01b900460ff1615610cf85760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b6044820152606401610937565b6007805461ffff60a81b191661010160a81b17905543600855600955565b6005546001600160a01b03163314610d405760405162461bcd60e51b815260040161093790612283565b816001600160a01b031663a9059cbb610d616005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610dae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd2919061233e565b505050565b60606004805461088a90612248565b6005546001600160a01b03163314610e105760405162461bcd60e51b815260040161093790612283565b600a55565b6005546001600160a01b03163314610e3f5760405162461bcd60e51b815260040161093790612283565b610e6481610e556005546001600160a01b031690565b6001600160a01b031690611a37565b50565b6005546001600160a01b03163314610e915760405162461bcd60e51b815260040161093790612283565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0e919061235b565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7f919061235b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff0919061235b565b600680546001600160a01b039485166001600160a01b031991821617909155600780549290941691161790915550565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156110a25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610937565b6110b13385610aa986856122e6565b5060019392505050565b6005546001600160a01b031633146110e55760405162461bcd60e51b815260040161093790612283565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610991338484611491565b6005546001600160a01b0316331461113e5760405162461bcd60e51b815260040161093790612283565b61115081670de0b6b3a76400006122fd565b600c5550565b6005546001600160a01b031633146111805760405162461bcd60e51b815260040161093790612283565b60005b81518110156111e8576001601860008484815181106111a4576111a4612378565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806111e08161238e565b915050611183565b5050565b6005546001600160a01b031633146112165760405162461bcd60e51b815260040161093790612283565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b0316331461125e5760405162461bcd60e51b815260040161093790612283565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146112b35760405162461bcd60e51b815260040161093790612283565b6001600160a01b0381166113185760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610937565b610e6481611b50565b6005546001600160a01b0316331461134b5760405162461bcd60e51b815260040161093790612283565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166113cf5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610937565b6001600160a01b0382166114305760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610937565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116114f35760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610937565b6001600160a01b03831660009081526018602052604090205460ff1615801561153557506001600160a01b03821660009081526018602052604090205460ff16155b6115815760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e73000000000000006044820152606401610937565b6001600160a01b03831660009081526017602052604090205460ff161580156115c357506001600160a01b03821660009081526017602052604090205460ff16155b80156115d95750600754600160a01b900460ff16155b156117a557600754600160b01b900460ff166116305760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b6044820152606401610937565b4360095460085461164191906122ce565b11156116b9576007546001600160a01b03838116911614611680576001600160a01b0382166000908152601860205260409020805460ff191660011790555b6007546001600160a01b038481169116146116b9576001600160a01b0383166000908152601860205260409020805460ff191660011790555b600b5481111561170b5760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e740000006044820152606401610937565b6007546001600160a01b038381169116146117a557600c5481611743846001600160a01b031660009081526020819052604090205490565b61174d91906122ce565b11156117a55760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e6044820152601d60fa1b6064820152608401610937565b600754600090600160a01b900460ff16806117d857506001600160a01b03841660009081526017602052604090205460ff165b806117fb57506001600160a01b03831660009081526017602052604090205460ff165b156118085750600061185c565b6007546001600160a01b038481169116141561183f5760646016548361182e91906122fd565b611838919061231c565b905061185c565b60646015548361184f91906122fd565b611859919061231c565b90505b600754600160a81b900460ff16801561187f5750600754600160a01b900460ff16155b801561189957506007546001600160a01b03858116911614155b80156118a55750600081115b156118b2576118b2611ba2565b6118c684846118c184866122e6565b611d06565b80156118d7576118d7843083611d06565b50505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061191257611912612378565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561196b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198f919061235b565b816001815181106119a2576119a2612378565b6001600160a01b0392831660209182029290920101526006546119c8913091168461136d565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a019085906000908690309042906004016123a9565b600060405180830381600087803b158015611a1b57600080fd5b505af1158015611a2f573d6000803e3d6000fd5b505050505050565b80471015611a875760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610937565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611ad4576040519150601f19603f3d011682016040523d82523d6000602084013e611ad9565b606091505b5050905080610dd25760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610937565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610c79576007805460ff60a01b1916600160a01b179055306000908152602081905260408120549050600a548110611cf65760006016546002611bf291906122fd565b905060008160126001015484611c0891906122fd565b611c12919061231c565b90506000611c2082856122e6565b905047611c2c826118dd565b6000611c3882476122e6565b601354909150600090611c4b90876122e6565b611c55908361231c565b601354909150600090611c6890836122fd565b90508015611c7a57611c7a8682611ede565b601254600090611c8b8460026122fd565b611c9591906122fd565b90508015611cb357600d54611cb3906001600160a01b031682611a37565b601454600090611cc48560026122fd565b611cce91906122fd565b90508015611cec57600e54611cec906001600160a01b031682611a37565b5050505050505050505b506007805460ff60a01b19169055565b6001600160a01b038316611d6a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610937565b6001600160a01b038216611dcc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610937565b6001600160a01b03831660009081526020819052604090205481811015611e445760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610937565b611e4e82826122e6565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611e849084906122ce565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ed091815260200190565b60405180910390a350505050565b600654611ef69030906001600160a01b03168461136d565b600654600e5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611f66573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b6d919061241a565b600060208083528351808285015260005b81811015611fb857858101830151858201604001528201611f9c565b81811115611fca576000604083870101525b50601f01601f1916929092016040019392505050565b600080600060608486031215611ff557600080fd5b505081359360208301359350604090920135919050565b6001600160a01b0381168114610e6457600080fd5b803561202c8161200c565b919050565b6000806040838503121561204457600080fd5b823561204f8161200c565b946020939093013593505050565b60008060006060848603121561207257600080fd5b833561207d8161200c565b9250602084013561208d8161200c565b929592945050506040919091013590565b600080604083850312156120b157600080fd5b82356120bc8161200c565b915060208301356120cc8161200c565b809150509250929050565b6000602082840312156120e957600080fd5b5035919050565b60006020828403121561210257600080fd5b813561210d8161200c565b9392505050565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561213d57600080fd5b823567ffffffffffffffff8082111561215557600080fd5b818501915085601f83011261216957600080fd5b81358181111561217b5761217b612114565b8060051b604051601f19603f830116810181811085821117156121a0576121a0612114565b6040529182528482019250838101850191888311156121be57600080fd5b938501935b828510156121e3576121d485612021565b845293850193928501926121c3565b98975050505050505050565b8015158114610e6457600080fd5b60006020828403121561220f57600080fd5b813561210d816121ef565b6000806040838503121561222d57600080fd5b82356122388161200c565b915060208301356120cc816121ef565b600181811c9082168061225c57607f821691505b6020821081141561227d57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082198211156122e1576122e16122b8565b500190565b6000828210156122f8576122f86122b8565b500390565b6000816000190483118215151615612317576123176122b8565b500290565b60008261233957634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561235057600080fd5b815161210d816121ef565b60006020828403121561236d57600080fd5b815161210d8161200c565b634e487b7160e01b600052603260045260246000fd5b60006000198214156123a2576123a26122b8565b5060010190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123f95784516001600160a01b0316835293830193918301916001016123d4565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561242f57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220d18b865fdccad6fa3b2e18f31561f4a3eb8b502bafab5699945b0553259fcbbd64736f6c634300080c0033

Deployed Bytecode Sourcemap

7791:8255:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8120:45;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;8120:45:0;;;;;;;;1726:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;13976:214::-;;;;;;;;;;-1:-1:-1;13976:214:0;;;;;:::i;:::-;;:::i;:::-;;2640:169;;;;;;;;;;-1:-1:-1;2640:169:0;;;;;:::i;:::-;;:::i;:::-;;;1879:14:1;;1872:22;1854:41;;1842:2;1827:18;2640:169:0;1714:187:1;2047:108:0;;;;;;;;;;-1:-1:-1;2135:12:0;;2047:108;;13763:205;;;;;;;;;;-1:-1:-1;13763:205:0;;;;;:::i;:::-;;:::i;8691:30::-;;;;;;;;;;;;;;;;2817:422;;;;;;;;;;-1:-1:-1;2817:422:0;;;;;:::i;:::-;;:::i;15436:546::-;;;;;;;;;;-1:-1:-1;15436:546:0;;;;;:::i;:::-;;:::i;8043:28::-;;;;;;;;;;;;;;;;8657:26;;;;;;;;;;;;;;;;1946:93;;;;;;;;;;-1:-1:-1;1946:93:0;;2029:2;2509:36:1;;2497:2;2482:18;1946:93:0;2367:184:1;3247:215:0;;;;;;;;;;-1:-1:-1;3247:215:0;;;;;:::i;:::-;;:::i;14443:137::-;;;;;;;;;;-1:-1:-1;14443:137:0;;;;;:::i;:::-;;:::i;8008:26::-;;;;;;;;;;-1:-1:-1;8008:26:0;;;;-1:-1:-1;;;8008:26:0;;;;;;8078:29;;;;;;;;;;;;;;;;14920:109;;;;;;;;;;-1:-1:-1;14920:109:0;;;;;:::i;:::-;;:::i;7978:23::-;;;;;;;;;;-1:-1:-1;7978:23:0;;;;-1:-1:-1;;;7978:23:0;;;;;;2163:127;;;;;;;;;;-1:-1:-1;2163:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;2264:18:0;2237:7;2264:18;;;;;;;;;;;;2163:127;6568:94;;;;;;;;;;;;;:::i;8569:34::-;;;;;;;;;;-1:-1:-1;8569:34:0;;;;;;;;;;;;;;;;3603:25:1;;;3659:2;3644:18;;3637:34;;;;3687:18;;;3680:34;3591:2;3576:18;8569:34:0;3401:319:1;8292:75:0;;;;;;;;;;-1:-1:-1;8292:75:0;;;;-1:-1:-1;;;;;8292:75:0;;;;;;-1:-1:-1;;;;;3889:32:1;;;3871:51;;3859:2;3844:18;8292:75:0;3725:203:1;13481:274:0;;;;;;;;;;-1:-1:-1;13481:274:0;;;;;:::i;:::-;;:::i;8172:47::-;;;;;;;;;;;;;;;;15166:142;;;;;;;;;;-1:-1:-1;15166:142:0;;;;;:::i;:::-;;:::i;6345:87::-;;;;;;;;;;-1:-1:-1;6418:6:0;;-1:-1:-1;;;;;6418:6:0;6345:87;;8375:69;;;;;;;;;;-1:-1:-1;8375:69:0;;;;-1:-1:-1;;;;;8375:69:0;;;1834:104;;;;;;;;;;;;;:::i;13363:110::-;;;;;;;;;;-1:-1:-1;13363:110:0;;;;;:::i;:::-;;:::i;15316:112::-;;;;;;;;;;-1:-1:-1;15316:112:0;;;;;:::i;:::-;;:::i;9313:290::-;;;;;;;;;;;;;:::i;3470:377::-;;;;;;;;;;-1:-1:-1;3470:377:0;;;;;:::i;:::-;;:::i;14330:105::-;;;;;;;;;;-1:-1:-1;14330:105:0;;;;;:::i;:::-;;:::i;7918:19::-;;;;;;;;;;-1:-1:-1;7918:19:0;;;;-1:-1:-1;;;;;7918:19:0;;;2298:175;;;;;;;;;;-1:-1:-1;2298:175:0;;;;;:::i;:::-;;:::i;8227:51::-;;;;;;;;;;;;;;;;15041:117;;;;;;;;;;-1:-1:-1;15041:117:0;;;;;:::i;:::-;;:::i;14596:172::-;;;;;;;;;;-1:-1:-1;14596:172:0;;;;;:::i;:::-;;:::i;8735:49::-;;;;;;;;;;-1:-1:-1;8735:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2481:151;;;;;;;;;;-1:-1:-1;2481:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;2597:18:0;;;2570:7;2597:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2481:151;13262:93;;;;;;;;;;-1:-1:-1;13262:93:0;;;;;:::i;:::-;;:::i;14774:134::-;;;;;;;;;;-1:-1:-1;14774:134:0;;;;;:::i;:::-;;:::i;6670:192::-;;;;;;;;;;-1:-1:-1;6670:192:0;;;;;:::i;:::-;;:::i;8611:38::-;;;;;;;;;;-1:-1:-1;8611:38:0;;;;;;;;;;;;7890:21;;;;;;;;;;-1:-1:-1;7890:21:0;;;;-1:-1:-1;;;;;7890:21:0;;;14202:116;;;;;;;;;;-1:-1:-1;14202:116:0;;;;;:::i;:::-;;:::i;1726:100::-;1780:13;1813:5;1806:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1726:100;:::o;13976:214::-;6418:6;;-1:-1:-1;;;;;6418:6:0;208:10;6480:23;6472:68;;;;-1:-1:-1;;;6472:68:0;;;;;;;:::i;:::-;;;;;;;;;14093:35:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;14081:9:::1;:47:::0;;;;;;;;;;;14123:4;14152:23:::1;14111:10:::0;14099;14152:23:::1;:::i;:::-;:30;;;;:::i;:::-;14139:10;:43:::0;-1:-1:-1;;;13976:214:0:o;2640:169::-;2723:4;2740:39;208:10;2763:7;2772:6;2740:8;:39::i;:::-;-1:-1:-1;2797:4:0;2640:169;;;;:::o;13763:205::-;6418:6;;-1:-1:-1;;;;;6418:6:0;208:10;6480:23;6472:68;;;;-1:-1:-1;;;6472:68:0;;;;;;;:::i;:::-;13875:35:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;13867:5:::1;:43:::0;;;;;;;;;;;13905:4;13930:23:::1;13893:10:::0;13881;13930:23:::1;:::i;:::-;:30;;;;:::i;:::-;13921:6;:39:::0;-1:-1:-1;;;13763:205:0:o;2817:422::-;2923:4;2940:36;2950:6;2958:9;2969:6;2940:9;:36::i;:::-;-1:-1:-1;;;;;3016:19:0;;2989:24;3016:19;;;:11;:19;;;;;;;;208:10;3016:33;;;;;;;;3068:26;;;;3060:79;;;;-1:-1:-1;;;3060:79:0;;7776:2:1;3060:79:0;;;7758:21:1;7815:2;7795:18;;;7788:30;7854:34;7834:18;;;7827:62;-1:-1:-1;;;7905:18:1;;;7898:38;7953:19;;3060:79:0;7574:404:1;3060:79:0;3150:57;3159:6;208:10;3181:25;3200:6;3181:16;:25;:::i;:::-;3150:8;:57::i;:::-;-1:-1:-1;3227:4:0;;2817:422;-1:-1:-1;;;;2817:422:0:o;15436:546::-;6418:6;;-1:-1:-1;;;;;6418:6:0;208:10;6480:23;6472:68;;;;-1:-1:-1;;;6472:68:0;;;;;;;:::i;:::-;15575:21:::1;15607:24;15624:6:::0;15607:16:::1;:24::i;:::-;15642:18;15663:35;15687:11:::0;15663:21:::1;:35;:::i;:::-;15642:56:::0;-1:-1:-1;15712:23:0;;15709:136:::1;;15737:108;15808:35;15824:19:::0;15808:13;:35:::1;:::i;:::-;15772:32;15785:19:::0;15772:10;:32:::1;:::i;:::-;:72;;;;:::i;:::-;15745:15;::::0;-1:-1:-1;;;;;15745:15:0::1;::::0;15737:34:::1;:108::i;:::-;15859:17:::0;;15856:118:::1;;15878:96;15937:35;15953:19:::0;15937:13;:35:::1;:::i;:::-;15907:26;15920:13:::0;15907:10;:26:::1;:::i;:::-;:66;;;;:::i;:::-;15886:9;::::0;-1:-1:-1;;;;;15886:9:0::1;::::0;15878:28:::1;:96::i;:::-;15542:440;;15436:546:::0;;;:::o;3247:215::-;208:10;3335:4;3384:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3384:34:0;;;;;;;;;;3335:4;;3352:80;;3375:7;;3384:47;;3421:10;;3384:47;:::i;14443:137::-;6418:6;;-1:-1:-1;;;;;6418:6:0;208:10;6480:23;6472:68;;;;-1:-1:-1;;;6472:68:0;;;;;;;:::i;:::-;14533:6:::1;:16:::0;;-1:-1:-1;;;;;14533:16:0;;::::1;-1:-1:-1::0;;;;;;14533:16:0;;::::1;;::::0;;;14560:4:::1;:12:::0;;;;;::::1;::::0;::::1;;::::0;;14443:137::o;14920:109::-;6418:6;;-1:-1:-1;;;;;6418:6:0;208:10;6480:23;6472:68;;;;-1:-1:-1;;;6472:68:0;;;;;;;:::i;:::-;15006:15:::1;:6:::0;15015::::1;15006:15;:::i;:::-;14992:11;:29:::0;-1:-1:-1;14920:109:0:o;6568:94::-;6418:6;;-1:-1:-1;;;;;6418:6:0;208:10;6480:23;6472:68;;;;-1:-1:-1;;;6472:68:0;;;;;;;:::i;:::-;6633:21:::1;6651:1;6633:9;:21::i;:::-;6568:94::o:0;13481:274::-;6418:6;;-1:-1:-1;;;;;6418:6:0;208:10;6480:23;6472:68;;;;-1:-1:-1;;;6472:68:0;;;;;;;:::i;:::-;13567:14:::1;::::0;-1:-1:-1;;;13567:14:0;::::1;;;13566:15;13558:50;;;::::0;-1:-1:-1;;;13558:50:0;;8710:2:1;13558:50:0::1;::::0;::::1;8692:21:1::0;8749:2;8729:18;;;8722:30;-1:-1:-1;;;8768:18:1;;;8761:52;8830:18;;13558:50:0::1;8508:346:1::0;13558:50:0::1;13619:14;:21:::0;;-1:-1:-1;;;;13651:18:0;-1:-1:-1;;;13651:18:0;;;13696:12:::1;13680:13;:28:::0;13719:10:::1;:28:::0;13481:274::o;15166:142::-;6418:6;;-1:-1:-1;;;;;6418:6:0;208:10;6480:23;6472:68;;;;-1:-1:-1;;;6472:68:0;;;;;;;:::i;:::-;15261:12:::1;-1:-1:-1::0;;;;;15254:29:0::1;;15284:7;6418:6:::0;;-1:-1:-1;;;;;6418:6:0;;6345:87;15284:7:::1;15254:46;::::0;-1:-1:-1;;;;;;15254:46:0::1;::::0;;;;;;-1:-1:-1;;;;;9051:32:1;;;15254:46:0::1;::::0;::::1;9033:51:1::0;9100:18;;;9093:34;;;9006:18;;15254:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15166:142:::0;;:::o;1834:104::-;1890:13;1923:7;1916:14;;;;;:::i;13363:110::-;6418:6;;-1:-1:-1;;;;;6418:6:0;208:10;6480:23;6472:68;;;;-1:-1:-1;;;6472:68:0;;;;;;;:::i;:::-;13439:13:::1;:26:::0;13363:110::o;15316:112::-;6418:6;;-1:-1:-1;;;;;6418:6:0;208:10;6480:23;6472:68;;;;-1:-1:-1;;;6472:68:0;;;;;;;:::i;:::-;15383:37:::1;15410:9;15391:7;6418:6:::0;;-1:-1:-1;;;;;6418:6:0;;6345:87;15391:7:::1;-1:-1:-1::0;;;;;15383:26:0::1;::::0;::::1;:37::i;:::-;15316:112:::0;:::o;9313:290::-;6418:6;;-1:-1:-1;;;;;6418:6:0;208:10;6480:23;6472:68;;;;-1:-1:-1;;;6472:68:0;;;;;;;:::i;:::-;9364:15:::1;9390:42;9364:69;;9444:13;9469:7;-1:-1:-1::0;;;;;9469:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9460:52:0::1;;9521:4;9528:7;-1:-1:-1::0;;;;;9528:12:0::1;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9460:83;::::0;-1:-1:-1;;;;;;9460:83:0::1;::::0;;;;;;-1:-1:-1;;;;;9874:15:1;;;9460:83:0::1;::::0;::::1;9856:34:1::0;9926:15;;9906:18;;;9899:43;9791:18;;9460:83:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9556:6;:16:::0;;-1:-1:-1;;;;;9556:16:0;;::::1;-1:-1:-1::0;;;;;;9556:16:0;;::::1;;::::0;;;9583:4:::1;:12:::0;;;;;::::1;::::0;::::1;;::::0;;;-1:-1:-1;9313:290:0:o;3470:377::-;208:10;3563:4;3607:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3607:34:0;;;;;;;;;;3660:35;;;;3652:85;;;;-1:-1:-1;;;3652:85:0;;10155:2:1;3652:85:0;;;10137:21:1;10194:2;10174:18;;;10167:30;10233:34;10213:18;;;10206:62;-1:-1:-1;;;10284:18:1;;;10277:35;10329:19;;3652:85:0;9953:401:1;3652:85:0;3748:67;208:10;3771:7;3780:34;3799:15;3780:16;:34;:::i;3748:67::-;-1:-1:-1;3835:4:0;;3470:377;-1:-1:-1;;;3470:377:0:o;14330:105::-;6418:6;;-1:-1:-1;;;;;6418:6:0;208:10;6480:23;6472:68;;;;-1:-1:-1;;;6472:68:0;;;;;;;:::i;:::-;14406:9:::1;:21:::0;;-1:-1:-1;;;;;;14406:21:0::1;-1:-1:-1::0;;;;;14406:21:0;;;::::1;::::0;;;::::1;::::0;;14330:105::o;2298:175::-;2384:4;2401:42;208:10;2425:9;2436:6;2401:9;:42::i;15041:117::-;6418:6;;-1:-1:-1;;;;;6418:6:0;208:10;6480:23;6472:68;;;;-1:-1:-1;;;6472:68:0;;;;;;;:::i;:::-;15135:15:::1;:6:::0;15144::::1;15135:15;:::i;:::-;15117;:33:::0;-1:-1:-1;15041:117:0:o;14596:172::-;6418:6;;-1:-1:-1;;;;;6418:6:0;208:10;6480:23;6472:68;;;;-1:-1:-1;;;6472:68:0;;;;;;;:::i;:::-;14671:6:::1;14666:91;14687:6;:13;14683:1;:17;14666:91;;;14741:4;14722:5;:16;14728:6;14735:1;14728:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14722:16:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14722:16:0;:23;;-1:-1:-1;;14722:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14702:3;::::1;::::0;::::1;:::i;:::-;;;;14666:91;;;;14596:172:::0;:::o;13262:93::-;6418:6;;-1:-1:-1;;;;;6418:6:0;208:10;6480:23;6472:68;;;;-1:-1:-1;;;6472:68:0;;;;;;;:::i;:::-;13328:11:::1;:19:::0;;;::::1;;-1:-1:-1::0;;;13328:19:0::1;-1:-1:-1::0;;;;13328:19:0;;::::1;::::0;;;::::1;::::0;;13262:93::o;14774:134::-;6418:6;;-1:-1:-1;;;;;6418:6:0;208:10;6480:23;6472:68;;;;-1:-1:-1;;;6472:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14866:26:0;;;::::1;;::::0;;;:16:::1;:26;::::0;;;;:34;;-1:-1:-1;;14866:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14774:134::o;6670:192::-;6418:6;;-1:-1:-1;;;;;6418:6:0;208:10;6480:23;6472:68;;;;-1:-1:-1;;;6472:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6759:22:0;::::1;6751:73;;;::::0;-1:-1:-1;;;6751:73:0;;10833:2:1;6751:73:0::1;::::0;::::1;10815:21:1::0;10872:2;10852:18;;;10845:30;10911:34;10891:18;;;10884:62;-1:-1:-1;;;10962:18:1;;;10955:36;11008:19;;6751:73:0::1;10631:402:1::0;6751:73:0::1;6835:19;6845:8;6835:9;:19::i;14202:116::-:0;6418:6;;-1:-1:-1;;;;;6418:6:0;208:10;6480:23;6472:68;;;;-1:-1:-1;;;6472:68:0;;;;;;;:::i;:::-;14283:15:::1;:27:::0;;-1:-1:-1;;;;;;14283:27:0::1;-1:-1:-1::0;;;;;14283:27:0;;;::::1;::::0;;;::::1;::::0;;14202:116::o;5315:346::-;-1:-1:-1;;;;;5417:19:0;;5409:68;;;;-1:-1:-1;;;5409:68:0;;11240:2:1;5409:68:0;;;11222:21:1;11279:2;11259:18;;;11252:30;11318:34;11298:18;;;11291:62;-1:-1:-1;;;11369:18:1;;;11362:34;11413:19;;5409:68:0;11038:400:1;5409:68:0;-1:-1:-1;;;;;5496:21:0;;5488:68;;;;-1:-1:-1;;;5488:68:0;;11645:2:1;5488:68:0;;;11627:21:1;11684:2;11664:18;;;11657:30;11723:34;11703:18;;;11696:62;-1:-1:-1;;;11774:18:1;;;11767:32;11816:19;;5488:68:0;11443:398:1;5488:68:0;-1:-1:-1;;;;;5569:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5621:32;;160:25:1;;;5621:32:0;;133:18:1;5621:32:0;;;;;;;5315:346;;;:::o;9615:1389::-;9731:1;9722:6;:10;9714:64;;;;-1:-1:-1;;;9714:64:0;;12048:2:1;9714:64:0;;;12030:21:1;12087:2;12067:18;;;12060:30;12126:34;12106:18;;;12099:62;-1:-1:-1;;;12177:18:1;;;12170:39;12226:19;;9714:64:0;11846:405:1;9714:64:0;-1:-1:-1;;;;;9798:13:0;;;;;;:5;:13;;;;;;;;9797:14;:35;;;;-1:-1:-1;;;;;;9816:16:0;;;;;;:5;:16;;;;;;;;9815:17;9797:35;9789:73;;;;-1:-1:-1;;;9789:73:0;;12458:2:1;9789:73:0;;;12440:21:1;12497:2;12477:18;;;12470:30;12536:27;12516:18;;;12509:55;12581:18;;9789:73:0;12256:349:1;9789:73:0;-1:-1:-1;;;;;9905:24:0;;;;;;:16;:24;;;;;;;;9904:25;:57;;;;-1:-1:-1;;;;;;9934:27:0;;;;;;:16;:27;;;;;;;;9933:28;9904:57;:70;;;;-1:-1:-1;9966:8:0;;-1:-1:-1;;;9966:8:0;;;;9965:9;9904:70;9901:589;;;9998:14;;-1:-1:-1;;;9998:14:0;;;;9990:49;;;;-1:-1:-1;;;9990:49:0;;12812:2:1;9990:49:0;;;12794:21:1;12851:2;12831:18;;;12824:30;-1:-1:-1;;;12870:18:1;;;12863:52;12932:18;;9990:49:0;12610:346:1;9990:49:0;10086:12;10073:10;;10057:13;;:26;;;;:::i;:::-;:41;10054:183;;;10134:4;;-1:-1:-1;;;;;10121:17:0;;;10134:4;;10121:17;10118:45;;-1:-1:-1;;;;;10140:16:0;;;;;;:5;:16;;;;;:23;;-1:-1:-1;;10140:23:0;10159:4;10140:23;;;10118:45;10195:4;;-1:-1:-1;;;;;10185:14:0;;;10195:4;;10185:14;10182:39;;-1:-1:-1;;;;;10201:13:0;;;;;;:5;:13;;;;;:20;;-1:-1:-1;;10201:20:0;10217:4;10201:20;;;10182:39;10269:11;;10259:6;:21;;10251:63;;;;-1:-1:-1;;;10251:63:0;;13163:2:1;10251:63:0;;;13145:21:1;13202:2;13182:18;;;13175:30;13241:31;13221:18;;;13214:59;13290:18;;10251:63:0;12961:353:1;10251:63:0;10345:4;;-1:-1:-1;;;;;10332:17:0;;;10345:4;;10332:17;10329:150;;10410:15;;10400:6;10377:20;10387:9;-1:-1:-1;;;;;2264:18:0;2237:7;2264:18;;;;;;;;;;;;2163:127;10377:20;:29;;;;:::i;:::-;:48;;10369:94;;;;-1:-1:-1;;;10369:94:0;;13521:2:1;10369:94:0;;;13503:21:1;13560:2;13540:18;;;13533:30;13599:34;13579:18;;;13572:62;-1:-1:-1;;;13650:18:1;;;13643:31;13691:19;;10369:94:0;13319:397:1;10369:94:0;10542:8;;10502:11;;-1:-1:-1;;;10542:8:0;;;;;:36;;-1:-1:-1;;;;;;10554:24:0;;;;;;:16;:24;;;;;;;;10542:36;:67;;;-1:-1:-1;;;;;;10582:27:0;;;;;;:16;:27;;;;;;;;10542:67;10538:235;;;-1:-1:-1;10617:1:0;10538:235;;;10677:4;;-1:-1:-1;;;;;10664:17:0;;;10677:4;;10664:17;10661:100;;;10711:3;10698:10;;10689:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;10683:31;;10661:100;;;10758:3;10749:6;;10740;:15;;;;:::i;:::-;:21;;;;:::i;:::-;10734:27;;10661:100;10799:11;;-1:-1:-1;;;10799:11:0;;;;:24;;;;-1:-1:-1;10815:8:0;;-1:-1:-1;;;10815:8:0;;;;10814:9;10799:24;:42;;;;-1:-1:-1;10837:4:0;;-1:-1:-1;;;;;10827:14:0;;;10837:4;;10827:14;;10799:42;:53;;;;;10851:1;10845:3;:7;10799:53;10795:72;;;10854:13;:11;:13::i;:::-;10880:48;10896:6;10904:9;10915:12;10924:3;10915:6;:12;:::i;:::-;10880:15;:48::i;:::-;10942:7;;10939:55;;10951:43;10967:6;10983:4;10990:3;10951:15;:43::i;:::-;9703:1301;9615:1389;;;:::o;12349:400::-;12439:16;;;12453:1;12439:16;;;;;;;;12415:21;;12439:16;;;;;;;;;;-1:-1:-1;12439:16:0;12415:40;;12484:4;12466;12471:1;12466:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12466:23:0;;;:7;;;;;;;;;;:23;;;;12510:6;;:13;;;-1:-1:-1;;;12510:13:0;;;;:6;;;;;:11;;:13;;;;;12466:7;;12510:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12500:4;12505:1;12500:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12500:23:0;;;:7;;;;;;;;;:23;12568:6;;12536:53;;12553:4;;12568:6;12577:11;12536:8;:53::i;:::-;12628:6;;:111;;-1:-1:-1;;;12628:111:0;;-1:-1:-1;;;;;12628:6:0;;;;:57;;:111;;12686:11;;12628:6;;12702:4;;12716;;12723:15;;12628:111;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12404:345;12349:400;:::o;5790:317::-;5905:6;5880:21;:31;;5872:73;;;;-1:-1:-1;;;5872:73:0;;14908:2:1;5872:73:0;;;14890:21:1;14947:2;14927:18;;;14920:30;14986:31;14966:18;;;14959:59;15035:18;;5872:73:0;14706:353:1;5872:73:0;5959:12;5977:9;-1:-1:-1;;;;;5977:14:0;5999:6;5977:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5958:52;;;6029:7;6021:78;;;;-1:-1:-1;;;6021:78:0;;15476:2:1;6021:78:0;;;15458:21:1;15515:2;15495:18;;;15488:30;15554:34;15534:18;;;15527:62;15625:28;15605:18;;;15598:56;15671:19;;6021:78:0;15274:422:1;6870:173:0;6945:6;;;-1:-1:-1;;;;;6962:17:0;;;-1:-1:-1;;;;;;6962:17:0;;;;;;;6995:40;;6945:6;;;6962:17;6945:6;;6995:40;;6926:16;;6995:40;6915:128;6870:173;:::o;11012:1327::-;8877:8;;-1:-1:-1;;;8877:8:0;;;;8872:104;;8902:8;:15;;-1:-1:-1;;;;8902:15:0;-1:-1:-1;;;8902:15:0;;;11105:4:::1;-1:-1:-1::0;2264:18:0;;;;;;;;;;;11061:50:::1;;11145:13;;11126:15;:32;11122:1210;;11185:19;11207:10;;11220:1;11207:14;;;;:::i;:::-;11185:36;;11236:32;11311:11;11289:9;:19;;;11271:15;:37;;;;:::i;:::-;:51;;;;:::i;:::-;11236:86:::0;-1:-1:-1;11337:14:0::1;11354:42;11236:86:::0;11354:15;:42:::1;:::i;:::-;11337:59:::0;-1:-1:-1;11442:21:0::1;11484:24;11337:59:::0;11484:16:::1;:24::i;:::-;11529:20;11552:38;11576:14:::0;11552:21:::1;:38;:::i;:::-;11656:19:::0;;11529:61;;-1:-1:-1;11605:19:0::1;::::0;11642:33:::1;::::0;:11;:33:::1;:::i;:::-;11626:50;::::0;:12;:50:::1;:::i;:::-;11737:19:::0;;11605:71;;-1:-1:-1;11691:29:0::1;::::0;11723:33:::1;::::0;11605:71;11723:33:::1;:::i;:::-;11691:65:::0;-1:-1:-1;11780:25:0;;11777:170:::1;;11870:61;11883:24;11909:21;11870:12;:61::i;:::-;12008:9;:19:::0;11967:20:::1;::::0;11990:15:::1;:11:::0;12004:1:::1;11990:15;:::i;:::-;:37;;;;:::i;:::-;11967:60:::0;-1:-1:-1;12045:16:0;;12042:103:::1;;12089:15;::::0;12081:48:::1;::::0;-1:-1:-1;;;;;12089:15:0::1;12116:12:::0;12081:34:::1;:48::i;:::-;12208:13:::0;;12173:14:::1;::::0;12190:15:::1;:11:::0;12208:13:::1;12190:15;:::i;:::-;:31;;;;:::i;:::-;12173:48:::0;-1:-1:-1;12239:10:0;;12236:85:::1;;12277:9;::::0;12269:36:::1;::::0;-1:-1:-1;;;;;12277:9:0::1;12298:6:::0;12269:28:::1;:36::i;:::-;11160:1172;;;;;;;;;11122:1210;-1:-1:-1::0;8948:8:0;:16;;-1:-1:-1;;;;8948:16:0;;;11012:1327::o;3855:604::-;-1:-1:-1;;;;;3961:20:0;;3953:70;;;;-1:-1:-1;;;3953:70:0;;15903:2:1;3953:70:0;;;15885:21:1;15942:2;15922:18;;;15915:30;15981:34;15961:18;;;15954:62;-1:-1:-1;;;16032:18:1;;;16025:35;16077:19;;3953:70:0;15701:401:1;3953:70:0;-1:-1:-1;;;;;4042:23:0;;4034:71;;;;-1:-1:-1;;;4034:71:0;;16309:2:1;4034:71:0;;;16291:21:1;16348:2;16328:18;;;16321:30;16387:34;16367:18;;;16360:62;-1:-1:-1;;;16438:18:1;;;16431:33;16481:19;;4034:71:0;16107:399:1;4034:71:0;-1:-1:-1;;;;;4202:17:0;;4178:21;4202:17;;;;;;;;;;;4238:23;;;;4230:74;;;;-1:-1:-1;;;4230:74:0;;16713:2:1;4230:74:0;;;16695:21:1;16752:2;16732:18;;;16725:30;16791:34;16771:18;;;16764:62;-1:-1:-1;;;16842:18:1;;;16835:36;16888:19;;4230:74:0;16511:402:1;4230:74:0;4335:22;4351:6;4335:13;:22;:::i;:::-;-1:-1:-1;;;;;4315:17:0;;;:9;:17;;;;;;;;;;;:42;;;;4368:20;;;;;;;;:30;;4392:6;;4315:9;4368:30;;4392:6;;4368:30;:::i;:::-;;;;;;;;4433:9;-1:-1:-1;;;;;4416:35:0;4425:6;-1:-1:-1;;;;;4416:35:0;;4444:6;4416:35;;;;160:25:1;;148:2;133:18;;14:177;4416:35:0;;;;;;;;3942:517;3855:604;;;:::o;12757:497::-;12937:6;;12905:53;;12922:4;;-1:-1:-1;;;;;12937:6:0;12946:11;12905:8;:53::i;:::-;13001:6;;13196:9;;13001:245;;-1:-1:-1;;;13001:245:0;;13064:4;13001:245;;;17259:34:1;17309:18;;;17302:34;;;13001:6:0;17352:18:1;;;17345:34;;;17395:18;;;17388:34;-1:-1:-1;;;;;13196:9:0;;;17438:19:1;;;17431:44;13220:15:0;17491:19:1;;;17484:35;13001:6:0;;;:22;;13031:9;;17193:19:1;;13001:245:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;196:597:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;798:316::-;875:6;883;891;944:2;932:9;923:7;919:23;915:32;912:52;;;960:1;957;950:12;912:52;-1:-1:-1;;983:23:1;;;1053:2;1038:18;;1025:32;;-1:-1:-1;1104:2:1;1089:18;;;1076:32;;798:316;-1:-1:-1;798:316:1:o;1119:131::-;-1:-1:-1;;;;;1194:31:1;;1184:42;;1174:70;;1240:1;1237;1230:12;1255:134;1323:20;;1352:31;1323:20;1352:31;:::i;:::-;1255:134;;;:::o;1394:315::-;1462:6;1470;1523:2;1511:9;1502:7;1498:23;1494:32;1491:52;;;1539:1;1536;1529:12;1491:52;1578:9;1565:23;1597:31;1622:5;1597:31;:::i;:::-;1647:5;1699:2;1684:18;;;;1671:32;;-1:-1:-1;;;1394:315:1:o;1906:456::-;1983:6;1991;1999;2052:2;2040:9;2031:7;2027:23;2023:32;2020:52;;;2068:1;2065;2058:12;2020:52;2107:9;2094:23;2126:31;2151:5;2126:31;:::i;:::-;2176:5;-1:-1:-1;2233:2:1;2218:18;;2205:32;2246:33;2205:32;2246:33;:::i;:::-;1906:456;;2298:7;;-1:-1:-1;;;2352:2:1;2337:18;;;;2324:32;;1906:456::o;2556:403::-;2639:6;2647;2700:2;2688:9;2679:7;2675:23;2671:32;2668:52;;;2716:1;2713;2706:12;2668:52;2755:9;2742:23;2774:31;2799:5;2774:31;:::i;:::-;2824:5;-1:-1:-1;2881:2:1;2866:18;;2853:32;2894:33;2853:32;2894:33;:::i;:::-;2946:7;2936:17;;;2556:403;;;;;:::o;2964:180::-;3023:6;3076:2;3064:9;3055:7;3051:23;3047:32;3044:52;;;3092:1;3089;3082:12;3044:52;-1:-1:-1;3115:23:1;;2964:180;-1:-1:-1;2964:180:1:o;3149:247::-;3208:6;3261:2;3249:9;3240:7;3236:23;3232:32;3229:52;;;3277:1;3274;3267:12;3229:52;3316:9;3303:23;3335:31;3360:5;3335:31;:::i;:::-;3385:5;3149:247;-1:-1:-1;;;3149:247:1:o;3933:127::-;3994:10;3989:3;3985:20;3982:1;3975:31;4025:4;4022:1;4015:15;4049:4;4046:1;4039:15;4065:1121;4149:6;4180:2;4223;4211:9;4202:7;4198:23;4194:32;4191:52;;;4239:1;4236;4229:12;4191:52;4279:9;4266:23;4308:18;4349:2;4341:6;4338:14;4335:34;;;4365:1;4362;4355:12;4335:34;4403:6;4392:9;4388:22;4378:32;;4448:7;4441:4;4437:2;4433:13;4429:27;4419:55;;4470:1;4467;4460:12;4419:55;4506:2;4493:16;4528:2;4524;4521:10;4518:36;;;4534:18;;:::i;:::-;4580:2;4577:1;4573:10;4612:2;4606:9;4675:2;4671:7;4666:2;4662;4658:11;4654:25;4646:6;4642:38;4730:6;4718:10;4715:22;4710:2;4698:10;4695:18;4692:46;4689:72;;;4741:18;;:::i;:::-;4777:2;4770:22;4827:18;;;4861:15;;;;-1:-1:-1;4903:11:1;;;4899:20;;;4931:19;;;4928:39;;;4963:1;4960;4953:12;4928:39;4987:11;;;;5007:148;5023:6;5018:3;5015:15;5007:148;;;5089:23;5108:3;5089:23;:::i;:::-;5077:36;;5040:12;;;;5133;;;;5007:148;;;5174:6;4065:1121;-1:-1:-1;;;;;;;;4065:1121:1:o;5584:118::-;5670:5;5663:13;5656:21;5649:5;5646:32;5636:60;;5692:1;5689;5682:12;5707:241;5763:6;5816:2;5804:9;5795:7;5791:23;5787:32;5784:52;;;5832:1;5829;5822:12;5784:52;5871:9;5858:23;5890:28;5912:5;5890:28;:::i;5953:382::-;6018:6;6026;6079:2;6067:9;6058:7;6054:23;6050:32;6047:52;;;6095:1;6092;6085:12;6047:52;6134:9;6121:23;6153:31;6178:5;6153:31;:::i;:::-;6203:5;-1:-1:-1;6260:2:1;6245:18;;6232:32;6273:30;6232:32;6273:30;:::i;6563:380::-;6642:1;6638:12;;;;6685;;;6706:61;;6760:4;6752:6;6748:17;6738:27;;6706:61;6813:2;6805:6;6802:14;6782:18;6779:38;6776:161;;;6859:10;6854:3;6850:20;6847:1;6840:31;6894:4;6891:1;6884:15;6922:4;6919:1;6912:15;6776:161;;6563:380;;;:::o;6948:356::-;7150:2;7132:21;;;7169:18;;;7162:30;7228:34;7223:2;7208:18;;7201:62;7295:2;7280:18;;6948:356::o;7309:127::-;7370:10;7365:3;7361:20;7358:1;7351:31;7401:4;7398:1;7391:15;7425:4;7422:1;7415:15;7441:128;7481:3;7512:1;7508:6;7505:1;7502:13;7499:39;;;7518:18;;:::i;:::-;-1:-1:-1;7554:9:1;;7441:128::o;7983:125::-;8023:4;8051:1;8048;8045:8;8042:34;;;8056:18;;:::i;:::-;-1:-1:-1;8093:9:1;;7983:125::o;8113:168::-;8153:7;8219:1;8215;8211:6;8207:14;8204:1;8201:21;8196:1;8189:9;8182:17;8178:45;8175:71;;;8226:18;;:::i;:::-;-1:-1:-1;8266:9:1;;8113:168::o;8286:217::-;8326:1;8352;8342:132;;8396:10;8391:3;8387:20;8384:1;8377:31;8431:4;8428:1;8421:15;8459:4;8456:1;8449:15;8342:132;-1:-1:-1;8488:9:1;;8286:217::o;9138:245::-;9205:6;9258:2;9246:9;9237:7;9233:23;9229:32;9226:52;;;9274:1;9271;9264:12;9226:52;9306:9;9300:16;9325:28;9347:5;9325:28;:::i;9388:251::-;9458:6;9511:2;9499:9;9490:7;9486:23;9482:32;9479:52;;;9527:1;9524;9517:12;9479:52;9559:9;9553:16;9578:31;9603:5;9578:31;:::i;10359:127::-;10420:10;10415:3;10411:20;10408:1;10401:31;10451:4;10448:1;10441:15;10475:4;10472:1;10465:15;10491:135;10530:3;-1:-1:-1;;10551:17:1;;10548:43;;;10571:18;;:::i;:::-;-1:-1:-1;10618:1:1;10607:13;;10491:135::o;13721:980::-;13983:4;14031:3;14020:9;14016:19;14062:6;14051:9;14044:25;14088:2;14126:6;14121:2;14110:9;14106:18;14099:34;14169:3;14164:2;14153:9;14149:18;14142:31;14193:6;14228;14222:13;14259:6;14251;14244:22;14297:3;14286:9;14282:19;14275:26;;14336:2;14328:6;14324:15;14310:29;;14357:1;14367:195;14381:6;14378:1;14375:13;14367:195;;;14446:13;;-1:-1:-1;;;;;14442:39:1;14430:52;;14537:15;;;;14502:12;;;;14478:1;14396:9;14367:195;;;-1:-1:-1;;;;;;;14618:32:1;;;;14613:2;14598:18;;14591:60;-1:-1:-1;;;14682:3:1;14667:19;14660:35;14579:3;13721:980;-1:-1:-1;;;13721:980:1:o;17530:306::-;17618:6;17626;17634;17687:2;17675:9;17666:7;17662:23;17658:32;17655:52;;;17703:1;17700;17693:12;17655:52;17732:9;17726:16;17716:26;;17782:2;17771:9;17767:18;17761:25;17751:35;;17826:2;17815:9;17811:18;17805:25;17795:35;;17530:306;;;;;:::o

Swarm Source

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