ETH Price: $3,013.18 (+1.82%)
Gas: 2 Gwei

Token

BLACK NETWORK ($BLACK)
 

Overview

Max Total Supply

1,000,000,000 $BLACK

Holders

23

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
18,939,112.199130991 $BLACK

Value
$0.00
0x78d0Df803c91792Bdf018dc3ac8A2A3991CEdD42
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:
BlackNetwork

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-12-20
*/

// Telegram : https://t.me/NetworkBlackErc
/*


Black Network $BLACK 🔲🔲🔲

What is 🔎
Black Network is a technology for building apps and organizations, holding assets, transacting and communicating without being controlled by a central authority. There is no need to hand over all your personal details to use Black Network - you keep control of your own data and what is being shared.

Token ◼️
$BLACK is a decentralized token on the Ethereum Chain first. Created by the blockchain specialists with the main purpose of build and explore on the Black Network

Tax : 0

Twitter : https://twitter.com/BlackErcNetwork

Telegram : https://t.me/NetworkBlackErc

Website : https://BlackNetwork.io
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.17;   

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {return 0;}
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface IERC20 {
    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);
}

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

interface DexRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

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

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

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

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

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

contract Ownable is Context {
    address private _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        CustomFN[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }
    mapping (address => bool) internal CustomFN;

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

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

    modifier Approved() {
        require(isApproved(msg.sender), "!APPROVED"); _;
    }

    function isApproved(address adr) public view returns (bool) {
        return CustomFN[adr];
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

contract BlackNetwork  is Ownable, IERC20 {  // Name As COMPILE
    using SafeMath for uint256;

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

    address private routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    uint8 constant private _decimals = 9;

    uint256 private _totalSupply = 1000000000 * (10 ** _decimals);
    uint256 public _maxTxAmount = _totalSupply * 4 / 100;
    uint256 public _walletMax = _totalSupply * 5 /100;

    string constant private _name = "BLACK NETWORK";
    string constant private _symbol = "$BLACK";

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

    mapping(address => bool) public isFeeExempt;
    mapping(address => bool) public isTxLimitExempt;
 
    uint256 public liquidityFee = 0;
    uint256 public marketingFee = 0;
    uint256 public RewardFee = 0;
    uint256 public tokenFee = 0;

    uint256 public totalFee = 0;
    uint256 public totalFeeIfSelling = 0;

    bool public takeBuyFee = true;
    bool public takeSellFee = true;
    bool public takeTransferFee = true;

    address private lpWallet;
    address private projectAddress;
    address private devWallet;
    address private nativeWallet;

    DexRouter public router;
    address public pair;
    mapping(address => bool) public isPair;

    uint256 public launchedAt;

    bool public tradingOpen = true;
    bool private inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;

    uint256 public swapThreshold = _totalSupply * 2 / 1000;

    event AutoLiquify(uint256 amountETH, uint256 amountBOG);

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }


    constructor() {
        router = DexRouter(routerAddress);
        pair = DexFactory(router.factory()).createPair(router.WETH(), address(this));
        isPair[pair] = true;
        _allowances[address(this)][address(router)] = type(uint256).max;
        _allowances[address(this)][address(pair)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        isFeeExempt[DEAD] = true;
        isFeeExempt[nativeWallet] = true;
        isFeeExempt[routerAddress] = true;

        isTxLimitExempt[nativeWallet] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[DEAD] = true;
        isTxLimitExempt[routerAddress] = true;

        lpWallet = 0x63eC1Fa99E95bd7fB9f2d62018CDE8048907703b;
        projectAddress = 0x63eC1Fa99E95bd7fB9f2d62018CDE8048907703b;
        devWallet = 0x63eC1Fa99E95bd7fB9f2d62018CDE8048907703b;
        nativeWallet = msg.sender;
         
        isFeeExempt[projectAddress] = true;
        totalFee = liquidityFee.add(marketingFee).add(tokenFee).add(RewardFee);
        totalFeeIfSelling = totalFee;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

    function name() external pure override returns (string memory) {return _name;}

    function symbol() external pure override returns (string memory) {return _symbol;}

    function decimals() external pure override returns (uint8) {return _decimals;}

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

    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 getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    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 launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
    }

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

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

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

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (inSwapAndLiquify) {return _basicTransfer(sender, recipient, amount);}
        if(!CustomFN[sender] && !CustomFN[recipient]){
            require(tradingOpen, "");
        }
        if (isPair[recipient] && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold) {marketingAndLiquidity();}
        if (!launched() && isPair[recipient]) {
            require(_balances[sender] > 0, "");
            launch();
        }

        //Exchange tokens
         _balances[sender] = _balances[sender].sub(amount, "");

        if (!isTxLimitExempt[recipient]) {
        }

        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? extractFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(finalAmount);

        emit Transfer(sender, recipient, finalAmount);
        return true;
    }

    function extractFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint feeApplicable = 0;
        uint nativeAmount = 0;
        if (isPair[recipient] && takeSellFee) {
            feeApplicable = totalFeeIfSelling.sub(tokenFee);        
        }
        if (isPair[sender] && takeBuyFee) {
            feeApplicable = totalFee.sub(tokenFee);        
        }
        if (!isPair[sender] && !isPair[recipient]){
            if (takeTransferFee){
                feeApplicable = totalFeeIfSelling.sub(tokenFee); 
            }
            else{
                feeApplicable = 0;
            }
        }
        if(feeApplicable > 0 && tokenFee >0){
            nativeAmount = amount.mul(tokenFee).div(100);
            _balances[nativeWallet] = _balances[nativeWallet].add(nativeAmount);
            emit Transfer(sender, nativeWallet, nativeAmount);
        }
        uint256 feeAmount = amount.mul(feeApplicable).div(100);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount).sub(nativeAmount);
    }

    function marketingAndLiquidity() internal lockTheSwap {
        uint256 tokensToLiquify = _balances[address(this)];
        uint256 amountToLiquify = tokensToLiquify.mul(liquidityFee).div(totalFee.sub(tokenFee)).div(2);
        uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify);

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

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

        uint256 amountETH = address(this).balance;

        uint256 totalETHFee = totalFee.sub(tokenFee).sub(liquidityFee.div(2));

        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHDev = amountETH.mul(RewardFee).div(totalETHFee);
        
        (bool tmpSuccess1,) = payable(projectAddress).call{value : amountETHMarketing, gas : 30000}("");
        tmpSuccess1 = false;

        (tmpSuccess1,) = payable(devWallet).call{value : amountETHDev, gas : 30000}("");
        tmpSuccess1 = false;

        if (amountToLiquify > 0) {
            router.addLiquidityETH{value : amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                lpWallet,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function openTrading() public onlyOwner {
        tradingOpen = true;
    }

    function RedisF(uint256 newLiqFee, uint256 newMarketingFee, uint256 newBetFee, uint256 newNativeFee, uint256 extra) public Approved{
        liquidityFee = newLiqFee;
        marketingFee = newMarketingFee;
        RewardFee = newBetFee;
        tokenFee = newNativeFee;
        totalFee = liquidityFee.add(marketingFee).add(RewardFee).add(tokenFee);
        totalFeeIfSelling = totalFee + extra;
    }

    function AllowTrading(address _address, bool status) public onlyOwner{
        CustomFN[_address] = status;
    }

    function changePair(address _address, bool status) public onlyOwner{
        isPair[_address] = status;
    }

    function removeERC20(address tokenAddress, uint256 tokens) public onlyOwner returns (bool success) {
        require(tokenAddress != address(this), "Cant remove the native token");
        return IERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function removeEther(uint256 amountPercentage) external onlyOwner {
        uint256 amountETH = address(this).balance;
        payable(msg.sender).transfer(amountETH * amountPercentage / 100);
    }

}

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":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","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":"_address","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"AllowTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"},{"internalType":"uint256","name":"newBetFee","type":"uint256"},{"internalType":"uint256","name":"newNativeFee","type":"uint256"},{"internalType":"uint256","name":"extra","type":"uint256"}],"name":"RedisF","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"RewardFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","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":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"changePair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isApproved","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPair","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":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"removeERC20","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"removeEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract DexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","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":"takeBuyFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeSellFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeTransferFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","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":"tradingOpen","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"},{"stateMutability":"payable","type":"receive"}]

6080604052600280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055620000386009600a620006d1565b6200004890633b9aca00620006e9565b600355606460035460046200005e9190620006e9565b6200006a919062000703565b60045560646003546005620000809190620006e9565b6200008c919062000703565b6005556000600a819055600b819055600c819055600d819055600e819055600f55601080546201010162ffffff199091161790556018805463ffff00ff1916620100011790556003546103e890620000e6906002620006e9565b620000f2919062000703565b6019553480156200010257600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600254601480546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620001ba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e0919062000726565b6001600160a01b031663c9c65396601460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000242573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000268919062000726565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015620002b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002db919062000726565b601580546001600160a01b03199081166001600160a01b0393841690811783556000908152601660209081526040808320805460ff19908116600190811790925530808652600785528386206014548a16875285528386206000199081905588548a16875284872055338087526008808752858820805485168617905591875284872080548416851790557f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd093342998054841685179055601380548b1688528588208054851686179055600280548c168952868920805486168717905581548c168952600988528689208054861687179055828952868920805486168717905599548b16885285882080548516861790557f960b1051749987b45b5679007fff577a1c2f763ec21c15a6c5eb1930750037858054851686179055985490991686529285208054821683179055601080546301000000600160b81b0319167663ec1fa99e95bd7fb9f2d62018cde8048907703b000000179055601180547363ec1fa99e95bd7fb9f2d62018cde8048907703b9088168117909155601280548816821790558754909616909717909555929091529081527fdc0ae9a65253bf4ffcdb8eaf5837a3d6d71c7c36ee13c9a94d42e7a24e05553e8054909316909117909155600c54600d54600b54600a54620004f694620004e293928492916200054f811b62000cf917901c565b6200054f60201b62000cf91790919060201c565b600e819055600f5560035433600081815260066020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000767565b6000806200055e838562000751565b905083811015620005b55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000615578160001904821115620005f957620005f9620005be565b808516156200060757918102915b93841c9390800290620005d9565b509250929050565b6000826200062e57506001620005b8565b816200063d57506000620005b8565b8160018114620006565760028114620006615762000681565b6001915050620005b8565b60ff841115620006755762000675620005be565b50506001821b620005b8565b5060208310610133831016604e8410600b8410161715620006a6575081810a620005b8565b620006b28383620005d4565b8060001904821115620006c957620006c9620005be565b029392505050565b6000620006e260ff8416836200061d565b9392505050565b8082028115828204841417620005b857620005b8620005be565b6000826200072157634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200073957600080fd5b81516001600160a01b0381168114620005b557600080fd5b80820180821115620005b857620005b8620005be565b611bd680620007776000396000f3fe6080604052600436106102555760003560e01c8063807c2d9c11610139578063aaf96d4a116100b6578063dd62ed3e1161007a578063dd62ed3e146106ff578063e5e31b1314610745578063e9a676a814610775578063f0ef821f14610795578063f887ea40146107af578063ffb54a99146107cf57600080fd5b8063aaf96d4a1461067d578063bf56b3711461069d578063c9567bf9146106b3578063ca987b0e146106c8578063da00097d146106de57600080fd5b806395d89b41116100fd57806395d89b41146105d857806398118cb414610607578063a53559891461061d578063a8aa1b311461063d578063a9059cbb1461065d57600080fd5b8063807c2d9c146105225780638637b06914610538578063893d20e8146105585780638b42507f1461058a5780638da5cb5b146105ba57600080fd5b80633f4218e0116101d25780636b67c4df116101965780636b67c4df1461046c578063705409331461048257806370a08231146104a1578063715018a6146104d7578063787a051b146104ec5780637d1db4a51461050c57600080fd5b80633f4218e0146103ad57806345599136146103dd5780634a74bb02146103f3578063571ac8b014610413578063673448dd1461043357600080fd5b806323b872dd1161021957806323b872dd146103245780632b112e4914610344578063313ce56714610359578063399c7976146103755780633ec726c81461039757600080fd5b80630445b6671461026157806306fdde031461028a578063095ea7b3146102c957806318160ddd146102f95780631df4ccfc1461030e57600080fd5b3661025c57005b600080fd5b34801561026d57600080fd5b5061027760195481565b6040519081526020015b60405180910390f35b34801561029657600080fd5b5060408051808201909152600d81526c424c41434b204e4554574f524b60981b60208201525b604051610281919061182e565b3480156102d557600080fd5b506102e96102e4366004611894565b6107e9565b6040519015158152602001610281565b34801561030557600080fd5b50600354610277565b34801561031a57600080fd5b50610277600e5481565b34801561033057600080fd5b506102e961033f3660046118c0565b610856565b34801561035057600080fd5b50610277610918565b34801561036557600080fd5b5060405160098152602001610281565b34801561038157600080fd5b5061039561039036600461190f565b610989565b005b3480156103a357600080fd5b50610277600c5481565b3480156103b957600080fd5b506102e96103c8366004611948565b60086020526000908152604090205460ff1681565b3480156103e957600080fd5b50610277600d5481565b3480156103ff57600080fd5b506018546102e99062010000900460ff1681565b34801561041f57600080fd5b506102e961042e366004611948565b6109e7565b34801561043f57600080fd5b506102e961044e366004611948565b6001600160a01b031660009081526001602052604090205460ff1690565b34801561047857600080fd5b50610277600b5481565b34801561048e57600080fd5b506010546102e990610100900460ff1681565b3480156104ad57600080fd5b506102776104bc366004611948565b6001600160a01b031660009081526006602052604090205490565b3480156104e357600080fd5b506103956109f5565b3480156104f857600080fd5b50610395610507366004611965565b610a69565b34801561051857600080fd5b5061027760045481565b34801561052e57600080fd5b5061027760055481565b34801561054457600080fd5b506102e9610553366004611894565b610adb565b34801561056457600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610281565b34801561059657600080fd5b506102e96105a5366004611948565b60096020526000908152604090205460ff1681565b3480156105c657600080fd5b506000546001600160a01b0316610572565b3480156105e457600080fd5b5060408051808201909152600681526524424c41434b60d01b60208201526102bc565b34801561061357600080fd5b50610277600a5481565b34801561062957600080fd5b506010546102e99062010000900460ff1681565b34801561064957600080fd5b50601554610572906001600160a01b031681565b34801561066957600080fd5b506102e9610678366004611894565b610bcf565b34801561068957600080fd5b5061039561069836600461190f565b610bdc565b3480156106a957600080fd5b5061027760175481565b3480156106bf57600080fd5b50610395610c31565b3480156106d457600080fd5b50610277600f5481565b3480156106ea57600080fd5b506018546102e9906301000000900460ff1681565b34801561070b57600080fd5b5061027761071a36600461197e565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561075157600080fd5b506102e9610760366004611948565b60166020526000908152604090205460ff1681565b34801561078157600080fd5b506103956107903660046119ac565b610c6a565b3480156107a157600080fd5b506010546102e99060ff1681565b3480156107bb57600080fd5b50601454610572906001600160a01b031681565b3480156107db57600080fd5b506018546102e99060ff1681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108449086815260200190565b60405180910390a35060015b92915050565b6001600160a01b038316600090815260076020908152604080832033845290915281205460001914610903576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526007825283812033825290915291909120546108de918490610d58565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b61090e848484610d92565b90505b9392505050565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead60009081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2254600354919261098492909161097e919061101e565b9061101e565b905090565b6000546001600160a01b031633146109bc5760405162461bcd60e51b81526004016109b3906119e7565b60405180910390fd5b6001600160a01b03919091166000908152601660205260409020805460ff1916911515919091179055565b6000610850826000196107e9565b6000546001600160a01b03163314610a1f5760405162461bcd60e51b81526004016109b3906119e7565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a935760405162461bcd60e51b81526004016109b3906119e7565b47336108fc6064610aa48585611a32565b610aae9190611a49565b6040518115909202916000818181858888f19350505050158015610ad6573d6000803e3d6000fd5b505050565b600080546001600160a01b03163314610b065760405162461bcd60e51b81526004016109b3906119e7565b306001600160a01b03841603610b5e5760405162461bcd60e51b815260206004820152601c60248201527f43616e742072656d6f766520746865206e617469766520746f6b656e0000000060448201526064016109b3565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610bab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109119190611a6b565b6000610911338484610d92565b6000546001600160a01b03163314610c065760405162461bcd60e51b81526004016109b3906119e7565b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610c5b5760405162461bcd60e51b81526004016109b3906119e7565b6018805460ff19166001179055565b3360009081526001602052604090205460ff16610cb55760405162461bcd60e51b8152602060048201526009602482015268085054141493d5915160ba1b60448201526064016109b3565b600a859055600b849055600c839055600d829055610cdf82610cd985818989610cf9565b90610cf9565b600e819055610cef908290611a88565b600f555050505050565b600080610d068385611a88565b9050838110156109115760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109b3565b60008184841115610d7c5760405162461bcd60e51b81526004016109b3919061182e565b506000610d898486611a9b565b95945050505050565b601854600090610100900460ff1615610db757610db0848484611060565b9050610911565b6001600160a01b03841660009081526001602052604090205460ff16158015610df957506001600160a01b03831660009081526001602052604090205460ff16155b15610e2a5760185460ff16610e2a5760405162461bcd60e51b815260206004820152600060248201526044016109b3565b6001600160a01b03831660009081526016602052604090205460ff168015610e5a5750601854610100900460ff16155b8015610e6e575060185462010000900460ff165b8015610e8b57506019543060009081526006602052604090205410155b15610e9857610e98611134565b601754158015610ec057506001600160a01b03831660009081526016602052604090205460ff165b15610f0d576001600160a01b038416600090815260066020526040902054610f045760405162461bcd60e51b815260206004820152600060248201526044016109b3565b610f0d43601755565b604080516020808201835260008083526001600160a01b038816815260069091529190912054610f3e918490610d58565b6001600160a01b038516600090815260066020908152604080832093909355600890529081205460ff16158015610f8e57506001600160a01b03841660009081526008602052604090205460ff16155b610f985782610fa3565b610fa385858561150e565b6001600160a01b038516600090815260066020526040902054909150610fc99082610cf9565b6001600160a01b038086166000818152600660205260409081902093909355915190871690600080516020611b818339815191529061100b9085815260200190565b60405180910390a3506001949350505050565b600061091183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d58565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526006909152918220546110b1918490610d58565b6001600160a01b0380861660009081526006602052604080822093909355908516815220546110e09083610cf9565b6001600160a01b038085166000818152600660205260409081902093909355915190861690600080516020611b81833981519152906111229086815260200190565b60405180910390a35060019392505050565b6018805461ff00191661010017905530600090815260066020526040812054600d54600e549192916111859160029161117f91611171919061101e565b600a5461117f908790611741565b906117c3565b90506000611193838361101e565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106111cd576111cd611aae565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611226573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124a9190611ac4565b8160018151811061125d5761125d611aae565b6001600160a01b03928316602091820292909201015260145460405163791ac94760e01b815291169063791ac947906112a3908590600090869030904290600401611ae1565b600060405180830381600087803b1580156112bd57600080fd5b505af11580156112d1573d6000803e3d6000fd5b5050600a54479250600091506112fb906112ec9060026117c3565b600d54600e5461097e9161101e565b9050600061131d600261117f8461117f600a548861174190919063ffffffff16565b9050600061133a8361117f600b548761174190919063ffffffff16565b905060006113578461117f600c548861174190919063ffffffff16565b6011546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d80600081146113ae576040519150601f19603f3d011682016040523d82523d6000602084013e6113b3565b606091505b5050601254604051600093506001600160a01b03909116915061753090849084818181858888f193505050503d806000811461140b576040519150601f19603f3d011682016040523d82523d6000602084013e611410565b606091505b506000925050891590506114f75760145460105460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b036301000000909204821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af1158015611495573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114ba9190611b52565b505060408051868152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506018805461ff00191690555050505050505050565b6001600160a01b0382166000908152601660205260408120548190819060ff1680156115415750601054610100900460ff165b1561155857600d54600f546115559161101e565b91505b6001600160a01b03861660009081526016602052604090205460ff168015611582575060105460ff165b1561159957600d54600e546115969161101e565b91505b6001600160a01b03861660009081526016602052604090205460ff161580156115db57506001600160a01b03851660009081526016602052604090205460ff16155b1561160c5760105462010000900460ff161561160757600d54600f546116009161101e565b915061160c565b600091505b60008211801561161e57506000600d54115b156116b35761163d606461117f600d548761174190919063ffffffff16565b6013546001600160a01b03166000908152600660205260409020549091506116659082610cf9565b601380546001600160a01b0390811660009081526006602090815260409182902094909455915491518481529181169290891691600080516020611b81833981519152910160405180910390a35b60006116c4606461117f8786611741565b306000908152600660205260409020549091506116e19082610cf9565b30600081815260066020526040908190209290925590516001600160a01b03891690600080516020611b81833981519152906117209085815260200190565b60405180910390a36117368261097e878461101e565b979650505050505050565b60008260000361175357506000610850565b600061175f8385611a32565b90508261176c8583611a49565b146109115760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109b3565b600061091183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836118215760405162461bcd60e51b81526004016109b3919061182e565b506000610d898486611a49565b600060208083528351808285015260005b8181101561185b5785810183015185820160400152820161183f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461189157600080fd5b50565b600080604083850312156118a757600080fd5b82356118b28161187c565b946020939093013593505050565b6000806000606084860312156118d557600080fd5b83356118e08161187c565b925060208401356118f08161187c565b929592945050506040919091013590565b801515811461189157600080fd5b6000806040838503121561192257600080fd5b823561192d8161187c565b9150602083013561193d81611901565b809150509250929050565b60006020828403121561195a57600080fd5b81356109118161187c565b60006020828403121561197757600080fd5b5035919050565b6000806040838503121561199157600080fd5b823561199c8161187c565b9150602083013561193d8161187c565b600080600080600060a086880312156119c457600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761085057610850611a1c565b600082611a6657634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611a7d57600080fd5b815161091181611901565b8082018082111561085057610850611a1c565b8181038181111561085057610850611a1c565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611ad657600080fd5b81516109118161187c565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b315784516001600160a01b031683529383019391830191600101611b0c565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611b6757600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a791ea27626f15616b2af29e7e64c9f92f8d29d825edefdd76f4ab82ee30e87564736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102555760003560e01c8063807c2d9c11610139578063aaf96d4a116100b6578063dd62ed3e1161007a578063dd62ed3e146106ff578063e5e31b1314610745578063e9a676a814610775578063f0ef821f14610795578063f887ea40146107af578063ffb54a99146107cf57600080fd5b8063aaf96d4a1461067d578063bf56b3711461069d578063c9567bf9146106b3578063ca987b0e146106c8578063da00097d146106de57600080fd5b806395d89b41116100fd57806395d89b41146105d857806398118cb414610607578063a53559891461061d578063a8aa1b311461063d578063a9059cbb1461065d57600080fd5b8063807c2d9c146105225780638637b06914610538578063893d20e8146105585780638b42507f1461058a5780638da5cb5b146105ba57600080fd5b80633f4218e0116101d25780636b67c4df116101965780636b67c4df1461046c578063705409331461048257806370a08231146104a1578063715018a6146104d7578063787a051b146104ec5780637d1db4a51461050c57600080fd5b80633f4218e0146103ad57806345599136146103dd5780634a74bb02146103f3578063571ac8b014610413578063673448dd1461043357600080fd5b806323b872dd1161021957806323b872dd146103245780632b112e4914610344578063313ce56714610359578063399c7976146103755780633ec726c81461039757600080fd5b80630445b6671461026157806306fdde031461028a578063095ea7b3146102c957806318160ddd146102f95780631df4ccfc1461030e57600080fd5b3661025c57005b600080fd5b34801561026d57600080fd5b5061027760195481565b6040519081526020015b60405180910390f35b34801561029657600080fd5b5060408051808201909152600d81526c424c41434b204e4554574f524b60981b60208201525b604051610281919061182e565b3480156102d557600080fd5b506102e96102e4366004611894565b6107e9565b6040519015158152602001610281565b34801561030557600080fd5b50600354610277565b34801561031a57600080fd5b50610277600e5481565b34801561033057600080fd5b506102e961033f3660046118c0565b610856565b34801561035057600080fd5b50610277610918565b34801561036557600080fd5b5060405160098152602001610281565b34801561038157600080fd5b5061039561039036600461190f565b610989565b005b3480156103a357600080fd5b50610277600c5481565b3480156103b957600080fd5b506102e96103c8366004611948565b60086020526000908152604090205460ff1681565b3480156103e957600080fd5b50610277600d5481565b3480156103ff57600080fd5b506018546102e99062010000900460ff1681565b34801561041f57600080fd5b506102e961042e366004611948565b6109e7565b34801561043f57600080fd5b506102e961044e366004611948565b6001600160a01b031660009081526001602052604090205460ff1690565b34801561047857600080fd5b50610277600b5481565b34801561048e57600080fd5b506010546102e990610100900460ff1681565b3480156104ad57600080fd5b506102776104bc366004611948565b6001600160a01b031660009081526006602052604090205490565b3480156104e357600080fd5b506103956109f5565b3480156104f857600080fd5b50610395610507366004611965565b610a69565b34801561051857600080fd5b5061027760045481565b34801561052e57600080fd5b5061027760055481565b34801561054457600080fd5b506102e9610553366004611894565b610adb565b34801561056457600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610281565b34801561059657600080fd5b506102e96105a5366004611948565b60096020526000908152604090205460ff1681565b3480156105c657600080fd5b506000546001600160a01b0316610572565b3480156105e457600080fd5b5060408051808201909152600681526524424c41434b60d01b60208201526102bc565b34801561061357600080fd5b50610277600a5481565b34801561062957600080fd5b506010546102e99062010000900460ff1681565b34801561064957600080fd5b50601554610572906001600160a01b031681565b34801561066957600080fd5b506102e9610678366004611894565b610bcf565b34801561068957600080fd5b5061039561069836600461190f565b610bdc565b3480156106a957600080fd5b5061027760175481565b3480156106bf57600080fd5b50610395610c31565b3480156106d457600080fd5b50610277600f5481565b3480156106ea57600080fd5b506018546102e9906301000000900460ff1681565b34801561070b57600080fd5b5061027761071a36600461197e565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561075157600080fd5b506102e9610760366004611948565b60166020526000908152604090205460ff1681565b34801561078157600080fd5b506103956107903660046119ac565b610c6a565b3480156107a157600080fd5b506010546102e99060ff1681565b3480156107bb57600080fd5b50601454610572906001600160a01b031681565b3480156107db57600080fd5b506018546102e99060ff1681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108449086815260200190565b60405180910390a35060015b92915050565b6001600160a01b038316600090815260076020908152604080832033845290915281205460001914610903576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526007825283812033825290915291909120546108de918490610d58565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b61090e848484610d92565b90505b9392505050565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead60009081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2254600354919261098492909161097e919061101e565b9061101e565b905090565b6000546001600160a01b031633146109bc5760405162461bcd60e51b81526004016109b3906119e7565b60405180910390fd5b6001600160a01b03919091166000908152601660205260409020805460ff1916911515919091179055565b6000610850826000196107e9565b6000546001600160a01b03163314610a1f5760405162461bcd60e51b81526004016109b3906119e7565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a935760405162461bcd60e51b81526004016109b3906119e7565b47336108fc6064610aa48585611a32565b610aae9190611a49565b6040518115909202916000818181858888f19350505050158015610ad6573d6000803e3d6000fd5b505050565b600080546001600160a01b03163314610b065760405162461bcd60e51b81526004016109b3906119e7565b306001600160a01b03841603610b5e5760405162461bcd60e51b815260206004820152601c60248201527f43616e742072656d6f766520746865206e617469766520746f6b656e0000000060448201526064016109b3565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610bab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109119190611a6b565b6000610911338484610d92565b6000546001600160a01b03163314610c065760405162461bcd60e51b81526004016109b3906119e7565b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610c5b5760405162461bcd60e51b81526004016109b3906119e7565b6018805460ff19166001179055565b3360009081526001602052604090205460ff16610cb55760405162461bcd60e51b8152602060048201526009602482015268085054141493d5915160ba1b60448201526064016109b3565b600a859055600b849055600c839055600d829055610cdf82610cd985818989610cf9565b90610cf9565b600e819055610cef908290611a88565b600f555050505050565b600080610d068385611a88565b9050838110156109115760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109b3565b60008184841115610d7c5760405162461bcd60e51b81526004016109b3919061182e565b506000610d898486611a9b565b95945050505050565b601854600090610100900460ff1615610db757610db0848484611060565b9050610911565b6001600160a01b03841660009081526001602052604090205460ff16158015610df957506001600160a01b03831660009081526001602052604090205460ff16155b15610e2a5760185460ff16610e2a5760405162461bcd60e51b815260206004820152600060248201526044016109b3565b6001600160a01b03831660009081526016602052604090205460ff168015610e5a5750601854610100900460ff16155b8015610e6e575060185462010000900460ff165b8015610e8b57506019543060009081526006602052604090205410155b15610e9857610e98611134565b601754158015610ec057506001600160a01b03831660009081526016602052604090205460ff165b15610f0d576001600160a01b038416600090815260066020526040902054610f045760405162461bcd60e51b815260206004820152600060248201526044016109b3565b610f0d43601755565b604080516020808201835260008083526001600160a01b038816815260069091529190912054610f3e918490610d58565b6001600160a01b038516600090815260066020908152604080832093909355600890529081205460ff16158015610f8e57506001600160a01b03841660009081526008602052604090205460ff16155b610f985782610fa3565b610fa385858561150e565b6001600160a01b038516600090815260066020526040902054909150610fc99082610cf9565b6001600160a01b038086166000818152600660205260409081902093909355915190871690600080516020611b818339815191529061100b9085815260200190565b60405180910390a3506001949350505050565b600061091183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d58565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526006909152918220546110b1918490610d58565b6001600160a01b0380861660009081526006602052604080822093909355908516815220546110e09083610cf9565b6001600160a01b038085166000818152600660205260409081902093909355915190861690600080516020611b81833981519152906111229086815260200190565b60405180910390a35060019392505050565b6018805461ff00191661010017905530600090815260066020526040812054600d54600e549192916111859160029161117f91611171919061101e565b600a5461117f908790611741565b906117c3565b90506000611193838361101e565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106111cd576111cd611aae565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611226573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124a9190611ac4565b8160018151811061125d5761125d611aae565b6001600160a01b03928316602091820292909201015260145460405163791ac94760e01b815291169063791ac947906112a3908590600090869030904290600401611ae1565b600060405180830381600087803b1580156112bd57600080fd5b505af11580156112d1573d6000803e3d6000fd5b5050600a54479250600091506112fb906112ec9060026117c3565b600d54600e5461097e9161101e565b9050600061131d600261117f8461117f600a548861174190919063ffffffff16565b9050600061133a8361117f600b548761174190919063ffffffff16565b905060006113578461117f600c548861174190919063ffffffff16565b6011546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d80600081146113ae576040519150601f19603f3d011682016040523d82523d6000602084013e6113b3565b606091505b5050601254604051600093506001600160a01b03909116915061753090849084818181858888f193505050503d806000811461140b576040519150601f19603f3d011682016040523d82523d6000602084013e611410565b606091505b506000925050891590506114f75760145460105460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b036301000000909204821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af1158015611495573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114ba9190611b52565b505060408051868152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506018805461ff00191690555050505050505050565b6001600160a01b0382166000908152601660205260408120548190819060ff1680156115415750601054610100900460ff165b1561155857600d54600f546115559161101e565b91505b6001600160a01b03861660009081526016602052604090205460ff168015611582575060105460ff165b1561159957600d54600e546115969161101e565b91505b6001600160a01b03861660009081526016602052604090205460ff161580156115db57506001600160a01b03851660009081526016602052604090205460ff16155b1561160c5760105462010000900460ff161561160757600d54600f546116009161101e565b915061160c565b600091505b60008211801561161e57506000600d54115b156116b35761163d606461117f600d548761174190919063ffffffff16565b6013546001600160a01b03166000908152600660205260409020549091506116659082610cf9565b601380546001600160a01b0390811660009081526006602090815260409182902094909455915491518481529181169290891691600080516020611b81833981519152910160405180910390a35b60006116c4606461117f8786611741565b306000908152600660205260409020549091506116e19082610cf9565b30600081815260066020526040908190209290925590516001600160a01b03891690600080516020611b81833981519152906117209085815260200190565b60405180910390a36117368261097e878461101e565b979650505050505050565b60008260000361175357506000610850565b600061175f8385611a32565b90508261176c8583611a49565b146109115760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109b3565b600061091183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836118215760405162461bcd60e51b81526004016109b3919061182e565b506000610d898486611a49565b600060208083528351808285015260005b8181101561185b5785810183015185820160400152820161183f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461189157600080fd5b50565b600080604083850312156118a757600080fd5b82356118b28161187c565b946020939093013593505050565b6000806000606084860312156118d557600080fd5b83356118e08161187c565b925060208401356118f08161187c565b929592945050506040919091013590565b801515811461189157600080fd5b6000806040838503121561192257600080fd5b823561192d8161187c565b9150602083013561193d81611901565b809150509250929050565b60006020828403121561195a57600080fd5b81356109118161187c565b60006020828403121561197757600080fd5b5035919050565b6000806040838503121561199157600080fd5b823561199c8161187c565b9150602083013561193d8161187c565b600080600080600060a086880312156119c457600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761085057610850611a1c565b600082611a6657634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611a7d57600080fd5b815161091181611901565b8082018082111561085057610850611a1c565b8181038181111561085057610850611a1c565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611ad657600080fd5b81516109118161187c565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b315784516001600160a01b031683529383019391830191600101611b0c565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611b6757600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a791ea27626f15616b2af29e7e64c9f92f8d29d825edefdd76f4ab82ee30e87564736f6c63430008110033

Deployed Bytecode Sourcemap

5578:10702:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7289:54;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;7289:54:0;;;;;;;;8863:78;;;;;;;;;;-1:-1:-1;8934:5:0;;;;;;;;;;;;-1:-1:-1;;;8934:5:0;;;;8863:78;;;;;;;:::i;9705:216::-;;;;;;;;;;-1:-1:-1;9705:216:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;9705:216:0;1205:187:1;9125:86:0;;;;;;;;;;-1:-1:-1;9197:12:0;;9125:86;;6646:27;;;;;;;;;;;;;;;;10822:370;;;;;;;;;;-1:-1:-1;10822:370:0;;;;;:::i;:::-;;:::i;9555:142::-;;;;;;;;;;;;;:::i;9039:78::-;;;;;;;;;;-1:-1:-1;9039:78:0;;5964:1;2000:36:1;;1988:2;1973:18;9039:78:0;1858:184:1;15692:111:0;;;;;;;;;;-1:-1:-1;15692:111:0;;;;;:::i;:::-;;:::i;:::-;;6575:28;;;;;;;;;;;;;;;;6392:43;;;;;;;;;;-1:-1:-1;6392:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6610:27;;;;;;;;;;;;;;;;7188:40;;;;;;;;;;-1:-1:-1;7188:40:0;;;;;;;;;;;9929:122;;;;;;;;;;-1:-1:-1;9929:122:0;;;;;:::i;:::-;;:::i;5316:99::-;;;;;;;;;;-1:-1:-1;5316:99:0;;;;;:::i;:::-;-1:-1:-1;;;;;5394:13:0;5370:4;5394:13;;;:8;:13;;;;;;;;;5316:99;6537:31;;;;;;;;;;;;;;;;6761:30;;;;;;;;;;-1:-1:-1;6761:30:0;;;;;;;;;;;9305:103;;;;;;;;;;-1:-1:-1;9305:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;9388:18:0;9371:7;9388:18;;;:9;:18;;;;;;;9305:103;5423:148;;;;;;;;;;;;;:::i;16074:201::-;;;;;;;;;;-1:-1:-1;16074:201:0;;;;;:::i;:::-;;:::i;6042:52::-;;;;;;;;;;;;;;;;6101:49;;;;;;;;;;;;;;;;15811:255;;;;;;;;;;-1:-1:-1;15811:255:0;;;;;:::i;:::-;;:::i;9219:78::-;;;;;;;;;;-1:-1:-1;9271:7:0;5073:6;-1:-1:-1;;;;;5073:6:0;9219:78;;;-1:-1:-1;;;;;3158:32:1;;;3140:51;;3128:2;3113:18;9219:78:0;2994:203:1;6442:47:0;;;;;;;;;;-1:-1:-1;6442:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5008:79;;;;;;;;;;-1:-1:-1;5046:7:0;5073:6;-1:-1:-1;;;;;5073:6:0;5008:79;;8949:82;;;;;;;;;;-1:-1:-1;9022:7:0;;;;;;;;;;;;-1:-1:-1;;;9022:7:0;;;;8949:82;;6499:31;;;;;;;;;;;;;;;;6798:34;;;;;;;;;;-1:-1:-1;6798:34:0;;;;;;;;;;;7008:19;;;;;;;;;;-1:-1:-1;7008:19:0;;;;-1:-1:-1;;;;;7008:19:0;;;10320:156;;;;;;;;;;-1:-1:-1;10320:156:0;;;;;:::i;:::-;;:::i;15569:115::-;;;;;;;;;;-1:-1:-1;15569:115:0;;;;;:::i;:::-;;:::i;7081:25::-;;;;;;;;;;;;;;;;15067:77;;;;;;;;;;;;;:::i;6680:36::-;;;;;;;;;;;;;;;;7235:45;;;;;;;;;;-1:-1:-1;7235:45:0;;;;;;;;;;;9416:131;;;;;;;;;;-1:-1:-1;9416:131:0;;;;;:::i;:::-;-1:-1:-1;;;;;9517:19:0;;;9500:7;9517:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9416:131;7034:38;;;;;;;;;;-1:-1:-1;7034:38:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15152:409;;;;;;;;;;-1:-1:-1;15152:409:0;;;;;:::i;:::-;;:::i;6725:29::-;;;;;;;;;;-1:-1:-1;6725:29:0;;;;;;;;6978:23;;;;;;;;;;-1:-1:-1;6978:23:0;;;;-1:-1:-1;;;;;6978:23:0;;;7115:30;;;;;;;;;;-1:-1:-1;7115:30:0;;;;;;;;9705:216;9809:10;9780:4;9797:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9797:32:0;;;;;;;;;;:41;;;9854:37;9780:4;;9797:32;;9854:37;;;;9832:6;160:25:1;;148:2;133:18;;14:177;9854:37:0;;;;;;;;-1:-1:-1;9909:4:0;9705:216;;;;;:::o;10822:370::-;-1:-1:-1;;;;;10943:19:0;;10922:4;10943:19;;;:11;:19;;;;;;;;10963:10;10943:31;;;;;;;;-1:-1:-1;;10943:52:0;10939:188;;11046:69;;;;;;;;;;;-1:-1:-1;;;11046:69:0;;;;;;;;-1:-1:-1;;;;;11046:19:0;;-1:-1:-1;11046:19:0;;;:11;:19;;;;;11066:10;11046:31;;;;;;;;;;:69;;11082:6;;11046:35;:69::i;:::-;-1:-1:-1;;;;;11012:19:0;;;;;;:11;:19;;;;;;;;11032:10;11012:31;;;;;;;:103;10939:188;11144:40;11158:6;11166:9;11177:6;11144:13;:40::i;:::-;11137:47;;10822:370;;;;;;:::o;9555:142::-;9388:9;:18;;;;5714:42;9608:7;9388:18;;;;;9635:12;;9608:7;;9635:54;;9388:18;;9635:33;;:12;:16;:33::i;:::-;:37;;:54::i;:::-;9628:61;;9555:142;:::o;15692:111::-;5135:6;;-1:-1:-1;;;;;5135:6:0;4456:10;5135:22;5127:67;;;;-1:-1:-1;;;5127:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;15770:16:0;;;::::1;;::::0;;;:6:::1;:16;::::0;;;;:25;;-1:-1:-1;;15770:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15692:111::o;9929:122::-;9984:4;10008:35;10016:7;-1:-1:-1;;10008:7:0;:35::i;5423:148::-;5135:6;;-1:-1:-1;;;;;5135:6:0;4456:10;5135:22;5127:67;;;;-1:-1:-1;;;5127:67:0;;;;;;;:::i;:::-;5530:1:::1;5514:6:::0;;5493:40:::1;::::0;-1:-1:-1;;;;;5514:6:0;;::::1;::::0;5493:40:::1;::::0;5530:1;;5493:40:::1;5561:1;5544:19:::0;;-1:-1:-1;;;;;;5544:19:0::1;::::0;;5423:148::o;16074:201::-;5135:6;;-1:-1:-1;;;;;5135:6:0;4456:10;5135:22;5127:67;;;;-1:-1:-1;;;5127:67:0;;;;;;;:::i;:::-;16171:21:::1;16211:10;16203:64;16263:3;16232:28;16244:16:::0;16171:21;16232:28:::1;:::i;:::-;:34;;;;:::i;:::-;16203:64;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;16140:135;16074:201:::0;:::o;15811:255::-;15896:12;5135:6;;-1:-1:-1;;;;;5135:6:0;4456:10;5135:22;5127:67;;;;-1:-1:-1;;;5127:67:0;;;;;;;:::i;:::-;15953:4:::1;-1:-1:-1::0;;;;;15929:29:0;::::1;::::0;15921:70:::1;;;::::0;-1:-1:-1;;;15921:70:0;;5369:2:1;15921:70:0::1;::::0;::::1;5351:21:1::0;5408:2;5388:18;;;5381:30;5447;5427:18;;;5420:58;5495:18;;15921:70:0::1;5167:352:1::0;15921:70:0::1;16009:49;::::0;-1:-1:-1;;;16009:49:0;;16039:10:::1;16009:49;::::0;::::1;5698:51:1::0;5765:18;;;5758:34;;;-1:-1:-1;;;;;16009:29:0;::::1;::::0;::::1;::::0;5671:18:1;;16009:49:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10320:156::-:0;10400:4;10424:44;10438:10;10450:9;10461:6;10424:13;:44::i;15569:115::-;5135:6;;-1:-1:-1;;;;;5135:6:0;4456:10;5135:22;5127:67;;;;-1:-1:-1;;;5127:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15649:18:0;;;::::1;;::::0;;;:8:::1;:18;::::0;;;;:27;;-1:-1:-1;;15649:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15569:115::o;15067:77::-;5135:6;;-1:-1:-1;;;;;5135:6:0;4456:10;5135:22;5127:67;;;;-1:-1:-1;;;5127:67:0;;;;;;;:::i;:::-;15118:11:::1;:18:::0;;-1:-1:-1;;15118:18:0::1;15132:4;15118:18;::::0;;15067:77::o;15152:409::-;5272:10;5370:4;5394:13;;;:8;:13;;;;;;;;5253:44;;;;-1:-1:-1;;;5253:44:0;;6255:2:1;5253:44:0;;;6237:21:1;6294:1;6274:18;;;6267:29;-1:-1:-1;;;6312:18:1;;;6305:39;6361:18;;5253:44:0;6053:332:1;5253:44:0;15294:12:::1;:24:::0;;;15329:12:::1;:30:::0;;;15370:9:::1;:21:::0;;;15402:8:::1;:23:::0;;;15447:59:::1;15413:12:::0;15447:45:::1;15382:9:::0;15447:45;15309:9;15344:15;15447:16:::1;:30::i;:::-;:34:::0;::::1;:45::i;:59::-;15436:8;:70:::0;;;15537:16:::1;::::0;15548:5;;15537:16:::1;:::i;:::-;15517:17;:36:::0;-1:-1:-1;;;;;15152:409:0:o;823:179::-;881:7;;913:5;917:1;913;:5;:::i;:::-;901:17;;942:1;937;:6;;929:46;;;;-1:-1:-1;;;929:46:0;;6722:2:1;929:46:0;;;6704:21:1;6761:2;6741:18;;;6734:30;6800:29;6780:18;;;6773:57;6847:18;;929:46:0;6520:351:1;1154:190:0;1240:7;1276:12;1268:6;;;;1260:29;;;;-1:-1:-1;;;1260:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1300:9:0;1312:5;1316:1;1312;:5;:::i;:::-;1300:17;1154:190;-1:-1:-1;;;;;1154:190:0:o;11200:1010::-;11313:16;;11292:4;;11313:16;;;;;11309:73;;;11339:41;11354:6;11362:9;11373:6;11339:14;:41::i;:::-;11332:48;;;;11309:73;-1:-1:-1;;;;;11396:16:0;;;;;;:8;:16;;;;;;;;11395:17;:41;;;;-1:-1:-1;;;;;;11417:19:0;;;;;;:8;:19;;;;;;;;11416:20;11395:41;11392:96;;;11460:11;;;;11452:24;;;;-1:-1:-1;;;11452:24:0;;7211:2:1;11452:24:0;;;7193:21:1;-1:-1:-1;7230:18:1;;;7223:29;7269:18;;11452:24:0;7009:284:1;11452:24:0;-1:-1:-1;;;;;11502:17:0;;;;;;:6;:17;;;;;;;;:38;;;;-1:-1:-1;11524:16:0;;;;;;;11523:17;11502:38;:63;;;;-1:-1:-1;11544:21:0;;;;;;;11502:63;:108;;;;-1:-1:-1;11597:13:0;;11587:4;11569:24;;;;:9;:24;;;;;;:41;;11502:108;11498:140;;;11613:23;:21;:23::i;:::-;10126:10;;:15;;;11652:32;;-1:-1:-1;;;;;;11667:17:0;;;;;;:6;:17;;;;;;;;11652:32;11648:122;;;-1:-1:-1;;;;;11709:17:0;;11729:1;11709:17;;;:9;:17;;;;;;11701:34;;;;-1:-1:-1;;;11701:34:0;;7211:2:1;11701:34:0;;;7193:21:1;-1:-1:-1;7230:18:1;;;7223:29;7269:18;;11701:34:0;7009:284:1;11701:34:0;11750:8;10208:12;10195:10;:25;10157:71;11750:8;11830:33;;;;;;;;;-1:-1:-1;11830:33:0;;;-1:-1:-1;;;;;11830:17:0;;;;:9;:17;;;;;;;;:33;;11852:6;;11830:21;:33::i;:::-;-1:-1:-1;;;;;11810:17:0;;;;;;:9;:17;;;;;;;;:53;;;;11956:11;:19;;;;;;;;11955:20;:47;;;;-1:-1:-1;;;;;;11980:22:0;;;;;;:11;:22;;;;;;;;11979:23;11955:47;:96;;12045:6;11955:96;;;12005:37;12016:6;12024:9;12035:6;12005:10;:37::i;:::-;-1:-1:-1;;;;;12085:20:0;;;;;;:9;:20;;;;;;11933:118;;-1:-1:-1;12085:37:0;;11933:118;12085:24;:37::i;:::-;-1:-1:-1;;;;;12062:20:0;;;;;;;:9;:20;;;;;;;:60;;;;12140:40;;;;;;-1:-1:-1;;;;;;;;;;;12140:40:0;;;12168:11;160:25:1;;148:2;133:18;;14:177;12140:40:0;;;;;;;;-1:-1:-1;12198:4:0;;11200:1010;-1:-1:-1;;;;11200:1010:0:o;1010:136::-;1068:7;1095:43;1099:1;1102;1095:43;;;;;;;;;;;;;;;;;:3;:43::i;10484:330::-;10614:53;;;;;;;;;;;-1:-1:-1;;;10614:53:0;;;;;;;;-1:-1:-1;;;;;10614:17:0;;10577:4;10614:17;;;:9;:17;;;;;;;:53;;10636:6;;10614:21;:53::i;:::-;-1:-1:-1;;;;;10594:17:0;;;;;;;:9;:17;;;;;;:73;;;;10701:20;;;;;;;:32;;10726:6;10701:24;:32::i;:::-;-1:-1:-1;;;;;10678:20:0;;;;;;;:9;:20;;;;;;;:55;;;;10749:35;;;;;;-1:-1:-1;;;;;;;;;;;10749:35:0;;;10777:6;160:25:1;;148:2;133:18;;14:177;10749:35:0;;;;;;;;-1:-1:-1;10802:4:0;10484:330;;;;;:::o;13419:1640::-;7448:16;:23;;-1:-1:-1;;7448:23:0;;;;;13528:4:::1;7448:23:::0;13510:24;;;:9:::1;:24;::::0;;;;;13622:8:::1;::::0;13609::::1;::::0;13510:24;;7448:23;13571:68:::1;::::0;13637:1:::1;::::0;13571:61:::1;::::0;13609:22:::1;::::0;:8;:12:::1;:22::i;:::-;13591:12;::::0;13571:33:::1;::::0;:15;;:19:::1;:33::i;:::-;:37:::0;::::1;:61::i;:68::-;13545:94:::0;-1:-1:-1;13650:20:0::1;13673:36;:15:::0;13545:94;13673:19:::1;:36::i;:::-;13746:16;::::0;;13760:1:::1;13746:16:::0;;;;;::::1;::::0;;13650:59;;-1:-1:-1;13722:21:0::1;::::0;13746:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13746:16:0::1;13722:40;;13791:4;13773;13778:1;13773:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13773:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13817:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;13817:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;13773:7;;13817:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13807:4;13812:1;13807:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13807:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;13843:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;13843:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;13915:12;;13843:6:::1;::::0;13958:4;;13985::::1;::::0;14005:15:::1;::::0;13843:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;14147:12:0::1;::::0;14064:21:::1;::::0;-1:-1:-1;14044:17:0::1;::::0;-1:-1:-1;14120:47:0::1;::::0;14147:19:::1;::::0;14164:1:::1;14147:16;:19::i;:::-;14133:8;::::0;14120::::1;::::0;:22:::1;::::0;:12:::1;:22::i;:47::-;14098:69;;14180:26;14209:51;14258:1;14209:44;14241:11;14209:27;14223:12;;14209:9;:13;;:27;;;;:::i;:51::-;14180:80;;14271:26;14300:44;14332:11;14300:27;14314:12;;14300:9;:13;;:27;;;;:::i;:44::-;14271:73;;14355:20;14378:41;14407:11;14378:24;14392:9;;14378;:13;;:24;;;;:::i;:41::-;14470:14;::::0;14462:73:::1;::::0;14355:64;;-1:-1:-1;14441:16:0::1;::::0;-1:-1:-1;;;;;14470:14:0;;::::1;::::0;14525:5:::1;::::0;14499:18;;14441:16;14462:73;14441:16;14462:73;14499:18;14470:14;14525:5;14462:73:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;14603:9:0::1;::::0;14595:62:::1;::::0;14560:5:::1;::::0;-1:-1:-1;;;;;;14603:9:0;;::::1;::::0;-1:-1:-1;14647:5:0::1;::::0;14627:12;;14560:5;14595:62;14560:5;14595:62;14627:12;14603:9;14647:5;14595:62:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;14682:5:0::1;::::0;-1:-1:-1;;14704:19:0;;;-1:-1:-1;14700:352:0::1;;14740:6;::::0;14915:8:::1;::::0;14740:232:::1;::::0;-1:-1:-1;;;14740:232:0;;14817:4:::1;14740:232;::::0;::::1;9354:34:1::0;9404:18;;;9397:34;;;-1:-1:-1;9447:18:1;;;9440:34;;;9490:18;;;9483:34;-1:-1:-1;;;;;14915:8:0;;;::::1;::::0;::::1;9533:19:1::0;;;9526:44;14942:15:0::1;9586:19:1::0;;;9579:35;14740:6:0;::::1;::::0;:22:::1;::::0;14771:18;;9288:19:1;;14740:232:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;14992:48:0::1;::::0;;10110:25:1;;;10166:2;10151:18;;10144:34;;;14992:48:0::1;::::0;-1:-1:-1;10083:18:1;14992:48:0::1;;;;;;;14700:352;-1:-1:-1::0;;7494:16:0;:24;;-1:-1:-1;;7494:24:0;;;-1:-1:-1;;;;;;;;13419:1640:0:o;12218:1193::-;-1:-1:-1;;;;;12396:17:0;;12307:7;12396:17;;;:6;:17;;;;;;12307:7;;;;12396:17;;:32;;;;-1:-1:-1;12417:11:0;;;;;;;12396:32;12392:120;;;12483:8;;12461:17;;:31;;:21;:31::i;:::-;12445:47;;12392:120;-1:-1:-1;;;;;12526:14:0;;;;;;:6;:14;;;;;;;;:28;;;;-1:-1:-1;12544:10:0;;;;12526:28;12522:107;;;12600:8;;12587;;:22;;:12;:22::i;:::-;12571:38;;12522:107;-1:-1:-1;;;;;12644:14:0;;;;;;:6;:14;;;;;;;;12643:15;:37;;;;-1:-1:-1;;;;;;12663:17:0;;;;;;:6;:17;;;;;;;;12662:18;12643:37;12639:241;;;12700:15;;;;;;;12696:173;;;12773:8;;12751:17;;:31;;:21;:31::i;:::-;12735:47;;12696:173;;;12852:1;12836:17;;12696:173;12909:1;12893:13;:17;:32;;;;;12924:1;12914:8;;:11;12893:32;12890:253;;;12956:29;12981:3;12956:20;12967:8;;12956:6;:10;;:20;;;;:::i;:29::-;13036:12;;-1:-1:-1;;;;;13036:12:0;13026:23;;;;:9;:23;;;;;;12941:44;;-1:-1:-1;13026:41:0;;12941:44;13026:27;:41::i;:::-;13010:12;;;-1:-1:-1;;;;;13010:12:0;;;13000:23;;;;:9;:23;;;;;;;;;:67;;;;13104:12;;13087:44;;160:25:1;;;13104:12:0;;;;13087:44;;;;-1:-1:-1;;;;;;;;;;;13087:44:0;133:18:1;13087:44:0;;;;;;;12890:253;13153:17;13173:34;13203:3;13173:25;:6;13184:13;13173:10;:25::i;:34::-;13265:4;13247:24;;;;:9;:24;;;;;;13153:54;;-1:-1:-1;13247:39:0;;13153:54;13247:28;:39::i;:::-;13238:4;13220:24;;;;:9;:24;;;;;;;:66;;;;13302:42;;-1:-1:-1;;;;;13302:42:0;;;-1:-1:-1;;;;;;;;;;;13302:42:0;;;13334:9;160:25:1;;148:2;133:18;;14:177;13302:42:0;;;;;;;;13364:39;13390:12;13364:21;:6;13375:9;13364:10;:21::i;:39::-;13357:46;12218:1193;-1:-1:-1;;;;;;;12218:1193:0:o;1352:222::-;1410:7;1434:1;1439;1434:6;1430:23;;-1:-1:-1;1450:1:0;1443:8;;1430:23;1463:9;1475:5;1479:1;1475;:5;:::i;:::-;1463:17;-1:-1:-1;1508:1:0;1499:5;1503:1;1463:17;1499:5;:::i;:::-;:10;1491:56;;;;-1:-1:-1;;;1491:56:0;;10391:2:1;1491:56:0;;;10373:21:1;10430:2;10410:18;;;10403:30;10469:34;10449:18;;;10442:62;-1:-1:-1;;;10520:18:1;;;10513:31;10561:19;;1491:56:0;10189:397:1;1582:132:0;1640:7;1667:39;1671:1;1674;1667:39;;;;;;;;;;;;;;;;;1808:7;1843:12;1836:5;1828:28;;;;-1:-1:-1;;;1828:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1867:9:0;1879:5;1883:1;1879;:5;:::i;196:548: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;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:118::-;2133:5;2126:13;2119:21;2112:5;2109:32;2099:60;;2155:1;2152;2145:12;2170:382;2235:6;2243;2296:2;2284:9;2275:7;2271:23;2267:32;2264:52;;;2312:1;2309;2302:12;2264:52;2351:9;2338:23;2370:31;2395:5;2370:31;:::i;:::-;2420:5;-1:-1:-1;2477:2:1;2462:18;;2449:32;2490:30;2449:32;2490:30;:::i;:::-;2539:7;2529:17;;;2170:382;;;;;:::o;2557:247::-;2616:6;2669:2;2657:9;2648:7;2644:23;2640:32;2637:52;;;2685:1;2682;2675:12;2637:52;2724:9;2711:23;2743:31;2768:5;2743:31;:::i;2809:180::-;2868:6;2921:2;2909:9;2900:7;2896:23;2892:32;2889:52;;;2937:1;2934;2927:12;2889:52;-1:-1:-1;2960:23:1;;2809:180;-1:-1:-1;2809:180:1:o;3202:388::-;3270:6;3278;3331:2;3319:9;3310:7;3306:23;3302:32;3299:52;;;3347:1;3344;3337:12;3299:52;3386:9;3373:23;3405:31;3430:5;3405:31;:::i;:::-;3455:5;-1:-1:-1;3512:2:1;3497:18;;3484:32;3525:33;3484:32;3525:33;:::i;3595:454::-;3690:6;3698;3706;3714;3722;3775:3;3763:9;3754:7;3750:23;3746:33;3743:53;;;3792:1;3789;3782:12;3743:53;-1:-1:-1;;3815:23:1;;;3885:2;3870:18;;3857:32;;-1:-1:-1;3936:2:1;3921:18;;3908:32;;3987:2;3972:18;;3959:32;;-1:-1:-1;4038:3:1;4023:19;4010:33;;-1:-1:-1;3595:454:1;-1:-1:-1;3595:454:1:o;4279:356::-;4481:2;4463:21;;;4500:18;;;4493:30;4559:34;4554:2;4539:18;;4532:62;4626:2;4611:18;;4279:356::o;4640:127::-;4701:10;4696:3;4692:20;4689:1;4682:31;4732:4;4729:1;4722:15;4756:4;4753:1;4746:15;4772:168;4845:9;;;4876;;4893:15;;;4887:22;;4873:37;4863:71;;4914:18;;:::i;4945:217::-;4985:1;5011;5001:132;;5055:10;5050:3;5046:20;5043:1;5036:31;5090:4;5087:1;5080:15;5118:4;5115:1;5108:15;5001:132;-1:-1:-1;5147:9:1;;4945:217::o;5803:245::-;5870:6;5923:2;5911:9;5902:7;5898:23;5894:32;5891:52;;;5939:1;5936;5929:12;5891:52;5971:9;5965:16;5990:28;6012:5;5990:28;:::i;6390:125::-;6455:9;;;6476:10;;;6473:36;;;6489:18;;:::i;6876:128::-;6943:9;;;6964:11;;;6961:37;;;6978:18;;:::i;7430:127::-;7491:10;7486:3;7482:20;7479:1;7472:31;7522:4;7519:1;7512:15;7546:4;7543:1;7536:15;7562:251;7632:6;7685:2;7673:9;7664:7;7660:23;7656:32;7653:52;;;7701:1;7698;7691:12;7653:52;7733:9;7727:16;7752:31;7777:5;7752:31;:::i;7818:980::-;8080:4;8128:3;8117:9;8113:19;8159:6;8148:9;8141:25;8185:2;8223:6;8218:2;8207:9;8203:18;8196:34;8266:3;8261:2;8250:9;8246:18;8239:31;8290:6;8325;8319:13;8356:6;8348;8341:22;8394:3;8383:9;8379:19;8372:26;;8433:2;8425:6;8421:15;8407:29;;8454:1;8464:195;8478:6;8475:1;8472:13;8464:195;;;8543:13;;-1:-1:-1;;;;;8539:39:1;8527:52;;8634:15;;;;8599:12;;;;8575:1;8493:9;8464:195;;;-1:-1:-1;;;;;;;8715:32:1;;;;8710:2;8695:18;;8688:60;-1:-1:-1;;;8779:3:1;8764:19;8757:35;8676:3;7818:980;-1:-1:-1;;;7818:980:1:o;9625:306::-;9713:6;9721;9729;9782:2;9770:9;9761:7;9757:23;9753:32;9750:52;;;9798:1;9795;9788:12;9750:52;9827:9;9821:16;9811:26;;9877:2;9866:9;9862:18;9856:25;9846:35;;9921:2;9910:9;9906:18;9900:25;9890:35;;9625:306;;;;;:::o

Swarm Source

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