ETH Price: $3,475.42 (-1.69%)
Gas: 4 Gwei

Token

Evire (EVIRE)
 

Overview

Max Total Supply

800,000,000 EVIRE

Holders

416

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0 EVIRE

Value
$0.00
0x8148b3278e8fd7610a35390d943430b662b45a70
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:
Evire

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 2024-06-15
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.20;

interface IERC20 {
    event Transfer(address indexed sender, address indexed recipient, uint256 amount);
    event Approval(address indexed owner, address indexed spender, uint256 amount);

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

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

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

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

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

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

    function transferOwnership(address newOwner) public onlyOwner {
        _updateOwnership(newOwner);
    }

    function _updateOwnership(address newOwner) internal {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_contractOwner, newOwner);
        _contractOwner = newOwner;
    }

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 tokenAmount,
        uint256 minETHAmount,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint tokenDesired,
        uint tokenMin,
        uint ethMin,
        address to,
        uint deadline
    ) external payable returns (uint tokenAmount, uint ethAmount, uint liquidity);
}

contract Evire is Context, IERC20, Ownable {
    string private constant _tokenName = "Evire";
    string private constant _tokenSymbol = "EVIRE";
    uint8 private constant _tokenDecimals = 18;
    uint256 private constant _totalSupply = 800000000 * 10**_tokenDecimals;

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

    uint256 private constant _minimumSwapAmount = 100000 * 10**_tokenDecimals;
    uint256 private _maxSwapAmount = 5000000 * 10**_tokenDecimals;

    uint256 public maxTransactionAmount = 800000 * 10**_tokenDecimals;
    uint256 public maxWalletAmount = 1600000 * 10**_tokenDecimals;

    uint256 private _initialBlockNumber;
    uint256 buyTaxRate = 30;
    uint256 sellTaxRate = 30;

    IUniswapV2Router02 private _uniswapV2Router;
    address public uniswapV2Pair;
    address reserveWallet;
    address infrastructureWallet;
    address operationalWallet;
    address developmentWallet;

    bool private _tradingEnabled = false;

    constructor() {
        reserveWallet = 0xfCcA9Aea46E1cc5f8DFc2Eb827e6549f4Ea0bDAf;
        infrastructureWallet = 0x0255319419559741B27512425a3f78CD2e5890EC;
        operationalWallet = 0xE8d9B892400cDEF7Fa10275a35e5A7f7d4FFb207;
        developmentWallet = 0x69C7D8c4f174426666414B46271a836b6f2BE24B;

        _balances[msg.sender] = _totalSupply;
        _excludedAccounts[msg.sender] = 1;
        _excludedAccounts[address(this)] = 1;

        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

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

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

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

    function getTaxes() external view returns (uint256 buyTax, uint256 sellTax) {
        buyTax = buyTaxRate;
        sellTax = sellTaxRate;
    }

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _executeTransfer(_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) {
        _setAllowance(_msgSender(), spender, amount);
        return true;
    }

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

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _setAllowance(sender, _msgSender(), currentAllowance - amount);
            }
        }
        return true;
    }

    function _setAllowance(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 enableTrading() external onlyOwner {
        require(!_tradingEnabled, "Trading is already enabled");
        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        _setAllowance(address(this), address(_uniswapV2Router), _totalSupply);
        
        _uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );

        IERC20(uniswapV2Pair).approve(address(_uniswapV2Router), type(uint).max);
        _tradingEnabled = true;
        _initialBlockNumber = block.number;
    }

    function updateExcludedAccount(address account, uint256 value) external onlyOwner {
        _excludedAccounts[account] = value;
    }

    function removeLimits() external onlyOwner {
        maxTransactionAmount = _totalSupply;
        maxWalletAmount = _totalSupply;
    }

    function updateTaxes(uint256 newTaxRate) external onlyOwner {
        require(newTaxRate <= buyTaxRate && newTaxRate <= sellTaxRate, "Tax cannot be increased");
        buyTaxRate = newTaxRate;
        sellTaxRate = newTaxRate;
    }

    function _executeTokenTransfer(address from, address to, uint256 amount, uint256 taxRate) private {
        uint256 taxAmount = (amount * taxRate) / 100;
        uint256 transferAmount = amount - taxAmount;

        _balances[from] -= amount;
        _balances[to] += transferAmount;
        _balances[address(this)] += taxAmount;

        emit Transfer(from, to, transferAmount);
    }

    function _executeTransfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(amount > 0, "ERC20: transfer amount must be greater than zero");

        uint256 taxRate = 0;

        if (_excludedAccounts[from] == 0 && _excludedAccounts[to] == 0) {
            require(_tradingEnabled, "Trading is not enabled yet");
            require(amount <= maxTransactionAmount, "Transaction amount exceeds the maximum limit");
            
            if (to != uniswapV2Pair && to != address(0xdead)) {
                require(balanceOf(to) + amount <= maxWalletAmount, "Recipient wallet exceeds the maximum limit");
            }

            if (block.number < _initialBlockNumber + 3) {
                taxRate = (from == uniswapV2Pair) ? 30 : 30;
            } else {
                if (from == uniswapV2Pair) {
                    taxRate = buyTaxRate;
                } else if (to == uniswapV2Pair) {
                    uint256 contractTokenBalance = balanceOf(address(this));
                    if (contractTokenBalance > _minimumSwapAmount) {
                        uint256 swapAmount = _maxSwapAmount;
                        if (contractTokenBalance > amount) contractTokenBalance = amount;
                        if (contractTokenBalance > swapAmount) contractTokenBalance = swapAmount;
                        _swapTokensForEth(contractTokenBalance);
                    }
                    taxRate = sellTaxRate;
                }
            }
        }
        _executeTokenTransfer(from, to, amount, taxRate);
    }

    function rescueEth() external onlyOwner {
        (bool success, ) = owner().call{value: address(this).balance}("");
        require(success, "Rescue ETH failed");
    }

    function rescueTokens() external onlyOwner {
        uint256 contractTokenBalance = balanceOf(address(this));
        require(contractTokenBalance > 0, "No tokens to rescue");

        _executeTokenTransfer(address(this), owner(), contractTokenBalance, 0);
    }

    function manualSwap(uint256 percent) external onlyOwner {
        uint256 contractTokenBalance = balanceOf(address(this));
        uint256 swapAmount = (percent * contractTokenBalance) / 100;
        _swapTokensForEth(swapAmount);
    }

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

        _setAllowance(address(this), address(_uniswapV2Router), tokenAmount);

        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 contractEthBalance = address(this).balance;
        uint256 reserveTax = (contractEthBalance * 10) / 100;
        uint256 infrastructureTax = (contractEthBalance * 30) / 100;
        uint256 operationalTax = (contractEthBalance * 30) / 100;
        uint256 developmentTax = (contractEthBalance * 30) / 100;

        (bool success, ) = reserveWallet.call{value: reserveTax}("");
        (success, ) = infrastructureWallet.call{value: infrastructureTax}("");
        (success, ) = operationalWallet.call{value: operationalTax}("");
        (success, ) = developmentWallet.call{value: developmentTax}("");
        

        require(success, "Transfer failed");
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getTaxes","outputs":[{"internalType":"uint256","name":"buyTax","type":"uint256"},{"internalType":"uint256","name":"sellTax","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":[],"name":"rescueEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueTokens","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"updateExcludedAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTaxRate","type":"uint256"}],"name":"updateTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126012600a62000307565b6200002190624c4b406200031e565b600455620000326012600a62000307565b6200004190620c35006200031e565b600555620000526012600a62000307565b620000619062186a006200031e565b600655601e6008819055600955600f805460ff60a01b1916905534801562000087575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c80546001600160a01b031990811673fcca9aea46e1cc5f8dfc2eb827e6549f4ea0bdaf17909155600d80548216730255319419559741b27512425a3f78cd2e5890ec179055600e8054821673e8d9b892400cdef7fa10275a35e5a7f7d4ffb207179055600f80549091167369c7d8c4f174426666414b46271a836b6f2be24b1790556200015a6012600a62000307565b6200016a90632faf08006200031e565b335f908152600160208181526040808420949094556003905282822081905530825291902055620001983390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001d16012600a62000307565b620001e190632faf08006200031e565b60405190815260200160405180910390a362000338565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200024c57815f1904821115620002305762000230620001f8565b808516156200023e57918102915b93841c939080029062000211565b509250929050565b5f82620002645750600162000301565b816200027257505f62000301565b81600181146200028b57600281146200029657620002b6565b600191505062000301565b60ff841115620002aa57620002aa620001f8565b50506001821b62000301565b5060208310610133831016604e8410600b8410161715620002db575081810a62000301565b620002e783836200020c565b805f1904821115620002fd57620002fd620001f8565b0290505b92915050565b5f6200031760ff84168362000254565b9392505050565b8082028115828204841417620003015762000301620001f8565b611a0780620003465f395ff3fe60806040526004361061013f575f3560e01c80638a8c523c116100b3578063c8c8ebe41161006d578063c8c8ebe41461039f578063ce31a06b146103b4578063d0f157a6146103c8578063dd62ed3e146103e7578063dd8c2e0f1461042b578063f2fde38b1461043f575f80fd5b80638a8c523c146102ef5780638da5cb5b1461030357806395d89b411461031f578063a9059cbb1461034c578063aa4bde281461036b578063b70143c914610380575f80fd5b8063313ce56711610104578063313ce5671461022057806349bd5a5e1461023b5780635a0ad0071461027257806370a0823114610293578063715018a6146102c7578063751039fc146102db575f80fd5b806306fdde031461014a578063095ea7b31461018957806318160ddd146101b857806323b872dd146101da5780632973ef2d146101f9575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b50604080518082019091526005815264457669726560d81b60208201525b604051610180919061161f565b60405180910390f35b348015610194575f80fd5b506101a86101a336600461167e565b61045e565b6040519015158152602001610180565b3480156101c3575f80fd5b506101cc610474565b604051908152602001610180565b3480156101e5575f80fd5b506101a86101f43660046116a8565b610494565b348015610204575f80fd5b5060085460095460408051928352602083019190915201610180565b34801561022b575f80fd5b5060405160128152602001610180565b348015610246575f80fd5b50600b5461025a906001600160a01b031681565b6040516001600160a01b039091168152602001610180565b34801561027d575f80fd5b5061029161028c3660046116e6565b610549565b005b34801561029e575f80fd5b506101cc6102ad3660046116fd565b6001600160a01b03165f9081526001602052604090205490565b3480156102d2575f80fd5b506102916105dc565b3480156102e6575f80fd5b5061029161064d565b3480156102fa575f80fd5b506102916106b2565b34801561030e575f80fd5b505f546001600160a01b031661025a565b34801561032a575f80fd5b50604080518082019091526005815264455649524560d81b6020820152610173565b348015610357575f80fd5b506101a861036636600461167e565b610a56565b348015610376575f80fd5b506101cc60065481565b34801561038b575f80fd5b5061029161039a3660046116e6565b610a62565b3480156103aa575f80fd5b506101cc60055481565b3480156103bf575f80fd5b50610291610ac1565b3480156103d3575f80fd5b506102916103e236600461167e565b610b81565b3480156103f2575f80fd5b506101cc61040136600461171f565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610436575f80fd5b50610291610bc5565b34801561044a575f80fd5b506102916104593660046116fd565b610c5c565b5f61046a338484610c8e565b5060015b92915050565b5f6104816012600a61184a565b61048f90632faf0800611858565b905090565b5f6104a0848484610db1565b6001600160a01b0384165f9081526002602090815260408083203384529091529020545f19811461053e57828110156105315760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61053e8533858403610c8e565b506001949350505050565b5f546001600160a01b031633146105725760405162461bcd60e51b81526004016105289061186f565b600854811115801561058657506009548111155b6105d25760405162461bcd60e51b815260206004820152601760248201527f5461782063616e6e6f7420626520696e637265617365640000000000000000006044820152606401610528565b6008819055600955565b5f546001600160a01b031633146106055760405162461bcd60e51b81526004016105289061186f565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106765760405162461bcd60e51b81526004016105289061186f565b6106826012600a61184a565b61069090632faf0800611858565b60055561069f6012600a61184a565b6106ad90632faf0800611858565b600655565b5f546001600160a01b031633146106db5760405162461bcd60e51b81526004016105289061186f565b600f54600160a01b900460ff16156107355760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c65640000000000006044820152606401610528565b600a80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610797573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107bb91906118a4565b6001600160a01b031663c9c6539630600a5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561081a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083e91906118a4565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610888573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ac91906118a4565b600b80546001600160a01b0319166001600160a01b03928316179055600a80546108f49230929116906108e19060129061184a565b6108ef90632faf0800611858565b610c8e565b600a546001600160a01b031663f305d7194730610925816001600160a01b03165f9081526001602052604090205490565b5f806109385f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561099e573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109c391906118bf565b5050600b54600a5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610a18573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a3c91906118ea565b50600f805460ff60a01b1916600160a01b17905543600755565b5f61046a338484610db1565b5f546001600160a01b03163314610a8b5760405162461bcd60e51b81526004016105289061186f565b305f90815260016020526040812054906064610aa78385611858565b610ab19190611909565b9050610abc81611117565b505050565b5f546001600160a01b03163314610aea5760405162461bcd60e51b81526004016105289061186f565b5f80546040516001600160a01b039091169047908381818185875af1925050503d805f8114610b34576040519150601f19603f3d011682016040523d82523d5f602084013e610b39565b606091505b5050905080610b7e5760405162461bcd60e51b815260206004820152601160248201527014995cd8dd59481155120819985a5b1959607a1b6044820152606401610528565b50565b5f546001600160a01b03163314610baa5760405162461bcd60e51b81526004016105289061186f565b6001600160a01b039091165f90815260036020526040902055565b5f546001600160a01b03163314610bee5760405162461bcd60e51b81526004016105289061186f565b305f9081526001602052604090205480610c405760405162461bcd60e51b81526020600482015260136024820152724e6f20746f6b656e7320746f2072657363756560681b6044820152606401610528565b610b7e30610c555f546001600160a01b031690565b835f611466565b5f546001600160a01b03163314610c855760405162461bcd60e51b81526004016105289061186f565b610b7e81611561565b6001600160a01b038316610cf05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610528565b6001600160a01b038216610d515760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610528565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e155760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610528565b5f8111610e7d5760405162461bcd60e51b815260206004820152603060248201527f45524332303a207472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b6064820152608401610528565b6001600160a01b0383165f90815260036020526040812054158015610eb757506001600160a01b0383165f90815260036020526040902054155b1561110557600f54600160a01b900460ff16610f155760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c6564207965740000000000006044820152606401610528565b600554821115610f7c5760405162461bcd60e51b815260206004820152602c60248201527f5472616e73616374696f6e20616d6f756e74206578636565647320746865206d60448201526b185e1a5b5d5b481b1a5b5a5d60a21b6064820152608401610528565b600b546001600160a01b03848116911614801590610fa557506001600160a01b03831661dead14155b156110375760065482610fcc856001600160a01b03165f9081526001602052604090205490565b610fd69190611928565b11156110375760405162461bcd60e51b815260206004820152602a60248201527f526563697069656e742077616c6c6574206578636565647320746865206d61786044820152691a5b5d5b481b1a5b5a5d60b21b6064820152608401610528565b600754611045906003611928565b43101561107557600b546001600160a01b0385811691161461106857601e61106b565b601e5b60ff169050611105565b600b546001600160a01b03908116908516036110945750600854611105565b600b546001600160a01b039081169084160361110557305f908152600160205260409020546110c56012600a61184a565b6110d290620186a0611858565b8111156110ff57600454838211156110e8578391505b808211156110f4578091505b6110fd82611117565b505b50506009545b61111184848484611466565b50505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061114a5761114a61193b565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156111a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111c591906118a4565b816001815181106111d8576111d861193b565b6001600160a01b039283166020918202929092010152600a546111fe9130911684610c8e565b600a5460405163791ac94760e01b81526001600160a01b039091169063791ac947906112369085905f9086903090429060040161194f565b5f604051808303815f87803b15801561124d575f80fd5b505af115801561125f573d5f803e3d5ffd5b504792505f91506064905061127583600a611858565b61127f9190611909565b90505f606461128f84601e611858565b6112999190611909565b90505f60646112a985601e611858565b6112b39190611909565b90505f60646112c386601e611858565b6112cd9190611909565b600c546040519192505f916001600160a01b039091169086908381818185875af1925050503d805f811461131c576040519150601f19603f3d011682016040523d82523d5f602084013e611321565b606091505b5050600d546040519192506001600160a01b03169085905f81818185875af1925050503d805f811461136e576040519150601f19603f3d011682016040523d82523d5f602084013e611373565b606091505b5050600e546040519192506001600160a01b03169084905f81818185875af1925050503d805f81146113c0576040519150601f19603f3d011682016040523d82523d5f602084013e6113c5565b606091505b5050600f546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611412576040519150601f19603f3d011682016040523d82523d5f602084013e611417565b606091505b5050809150508061145c5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610528565b5050505050505050565b5f60646114738385611858565b61147d9190611909565b90505f61148a82856119be565b6001600160a01b0387165f908152600160205260408120805492935086929091906114b69084906119be565b90915550506001600160a01b0385165f90815260016020526040812080548392906114e2908490611928565b9091555050305f9081526001602052604081208054849290611505908490611928565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161155191815260200190565b60405180910390a3505050505050565b6001600160a01b0381166115c65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610528565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f6020808352835180828501525f5b8181101561164a5785810183015185820160400152820161162e565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610b7e575f80fd5b5f806040838503121561168f575f80fd5b823561169a8161166a565b946020939093013593505050565b5f805f606084860312156116ba575f80fd5b83356116c58161166a565b925060208401356116d58161166a565b929592945050506040919091013590565b5f602082840312156116f6575f80fd5b5035919050565b5f6020828403121561170d575f80fd5b81356117188161166a565b9392505050565b5f8060408385031215611730575f80fd5b823561173b8161166a565b9150602083013561174b8161166a565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156117a457815f190482111561178a5761178a611756565b8085161561179757918102915b93841c939080029061176f565b509250929050565b5f826117ba5750600161046e565b816117c657505f61046e565b81600181146117dc57600281146117e657611802565b600191505061046e565b60ff8411156117f7576117f7611756565b50506001821b61046e565b5060208310610133831016604e8410600b8410161715611825575081810a61046e565b61182f838361176a565b805f190482111561184257611842611756565b029392505050565b5f61171860ff8416836117ac565b808202811582820484141761046e5761046e611756565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156118b4575f80fd5b81516117188161166a565b5f805f606084860312156118d1575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156118fa575f80fd5b81518015158114611718575f80fd5b5f8261192357634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561046e5761046e611756565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561199d5784516001600160a01b031683529383019391830191600101611978565b50506001600160a01b03969096166060850152505050608001529392505050565b8181038181111561046e5761046e61175656fea264697066735822122020df44fb2f8b2817e13ba8371e827dbe8a64624a05d059be68dec4beaedf85b064736f6c63430008140033

Deployed Bytecode

0x60806040526004361061013f575f3560e01c80638a8c523c116100b3578063c8c8ebe41161006d578063c8c8ebe41461039f578063ce31a06b146103b4578063d0f157a6146103c8578063dd62ed3e146103e7578063dd8c2e0f1461042b578063f2fde38b1461043f575f80fd5b80638a8c523c146102ef5780638da5cb5b1461030357806395d89b411461031f578063a9059cbb1461034c578063aa4bde281461036b578063b70143c914610380575f80fd5b8063313ce56711610104578063313ce5671461022057806349bd5a5e1461023b5780635a0ad0071461027257806370a0823114610293578063715018a6146102c7578063751039fc146102db575f80fd5b806306fdde031461014a578063095ea7b31461018957806318160ddd146101b857806323b872dd146101da5780632973ef2d146101f9575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b50604080518082019091526005815264457669726560d81b60208201525b604051610180919061161f565b60405180910390f35b348015610194575f80fd5b506101a86101a336600461167e565b61045e565b6040519015158152602001610180565b3480156101c3575f80fd5b506101cc610474565b604051908152602001610180565b3480156101e5575f80fd5b506101a86101f43660046116a8565b610494565b348015610204575f80fd5b5060085460095460408051928352602083019190915201610180565b34801561022b575f80fd5b5060405160128152602001610180565b348015610246575f80fd5b50600b5461025a906001600160a01b031681565b6040516001600160a01b039091168152602001610180565b34801561027d575f80fd5b5061029161028c3660046116e6565b610549565b005b34801561029e575f80fd5b506101cc6102ad3660046116fd565b6001600160a01b03165f9081526001602052604090205490565b3480156102d2575f80fd5b506102916105dc565b3480156102e6575f80fd5b5061029161064d565b3480156102fa575f80fd5b506102916106b2565b34801561030e575f80fd5b505f546001600160a01b031661025a565b34801561032a575f80fd5b50604080518082019091526005815264455649524560d81b6020820152610173565b348015610357575f80fd5b506101a861036636600461167e565b610a56565b348015610376575f80fd5b506101cc60065481565b34801561038b575f80fd5b5061029161039a3660046116e6565b610a62565b3480156103aa575f80fd5b506101cc60055481565b3480156103bf575f80fd5b50610291610ac1565b3480156103d3575f80fd5b506102916103e236600461167e565b610b81565b3480156103f2575f80fd5b506101cc61040136600461171f565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610436575f80fd5b50610291610bc5565b34801561044a575f80fd5b506102916104593660046116fd565b610c5c565b5f61046a338484610c8e565b5060015b92915050565b5f6104816012600a61184a565b61048f90632faf0800611858565b905090565b5f6104a0848484610db1565b6001600160a01b0384165f9081526002602090815260408083203384529091529020545f19811461053e57828110156105315760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61053e8533858403610c8e565b506001949350505050565b5f546001600160a01b031633146105725760405162461bcd60e51b81526004016105289061186f565b600854811115801561058657506009548111155b6105d25760405162461bcd60e51b815260206004820152601760248201527f5461782063616e6e6f7420626520696e637265617365640000000000000000006044820152606401610528565b6008819055600955565b5f546001600160a01b031633146106055760405162461bcd60e51b81526004016105289061186f565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106765760405162461bcd60e51b81526004016105289061186f565b6106826012600a61184a565b61069090632faf0800611858565b60055561069f6012600a61184a565b6106ad90632faf0800611858565b600655565b5f546001600160a01b031633146106db5760405162461bcd60e51b81526004016105289061186f565b600f54600160a01b900460ff16156107355760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c65640000000000006044820152606401610528565b600a80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610797573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107bb91906118a4565b6001600160a01b031663c9c6539630600a5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561081a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083e91906118a4565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610888573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ac91906118a4565b600b80546001600160a01b0319166001600160a01b03928316179055600a80546108f49230929116906108e19060129061184a565b6108ef90632faf0800611858565b610c8e565b600a546001600160a01b031663f305d7194730610925816001600160a01b03165f9081526001602052604090205490565b5f806109385f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561099e573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109c391906118bf565b5050600b54600a5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610a18573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a3c91906118ea565b50600f805460ff60a01b1916600160a01b17905543600755565b5f61046a338484610db1565b5f546001600160a01b03163314610a8b5760405162461bcd60e51b81526004016105289061186f565b305f90815260016020526040812054906064610aa78385611858565b610ab19190611909565b9050610abc81611117565b505050565b5f546001600160a01b03163314610aea5760405162461bcd60e51b81526004016105289061186f565b5f80546040516001600160a01b039091169047908381818185875af1925050503d805f8114610b34576040519150601f19603f3d011682016040523d82523d5f602084013e610b39565b606091505b5050905080610b7e5760405162461bcd60e51b815260206004820152601160248201527014995cd8dd59481155120819985a5b1959607a1b6044820152606401610528565b50565b5f546001600160a01b03163314610baa5760405162461bcd60e51b81526004016105289061186f565b6001600160a01b039091165f90815260036020526040902055565b5f546001600160a01b03163314610bee5760405162461bcd60e51b81526004016105289061186f565b305f9081526001602052604090205480610c405760405162461bcd60e51b81526020600482015260136024820152724e6f20746f6b656e7320746f2072657363756560681b6044820152606401610528565b610b7e30610c555f546001600160a01b031690565b835f611466565b5f546001600160a01b03163314610c855760405162461bcd60e51b81526004016105289061186f565b610b7e81611561565b6001600160a01b038316610cf05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610528565b6001600160a01b038216610d515760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610528565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e155760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610528565b5f8111610e7d5760405162461bcd60e51b815260206004820152603060248201527f45524332303a207472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b6064820152608401610528565b6001600160a01b0383165f90815260036020526040812054158015610eb757506001600160a01b0383165f90815260036020526040902054155b1561110557600f54600160a01b900460ff16610f155760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c6564207965740000000000006044820152606401610528565b600554821115610f7c5760405162461bcd60e51b815260206004820152602c60248201527f5472616e73616374696f6e20616d6f756e74206578636565647320746865206d60448201526b185e1a5b5d5b481b1a5b5a5d60a21b6064820152608401610528565b600b546001600160a01b03848116911614801590610fa557506001600160a01b03831661dead14155b156110375760065482610fcc856001600160a01b03165f9081526001602052604090205490565b610fd69190611928565b11156110375760405162461bcd60e51b815260206004820152602a60248201527f526563697069656e742077616c6c6574206578636565647320746865206d61786044820152691a5b5d5b481b1a5b5a5d60b21b6064820152608401610528565b600754611045906003611928565b43101561107557600b546001600160a01b0385811691161461106857601e61106b565b601e5b60ff169050611105565b600b546001600160a01b03908116908516036110945750600854611105565b600b546001600160a01b039081169084160361110557305f908152600160205260409020546110c56012600a61184a565b6110d290620186a0611858565b8111156110ff57600454838211156110e8578391505b808211156110f4578091505b6110fd82611117565b505b50506009545b61111184848484611466565b50505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061114a5761114a61193b565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156111a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111c591906118a4565b816001815181106111d8576111d861193b565b6001600160a01b039283166020918202929092010152600a546111fe9130911684610c8e565b600a5460405163791ac94760e01b81526001600160a01b039091169063791ac947906112369085905f9086903090429060040161194f565b5f604051808303815f87803b15801561124d575f80fd5b505af115801561125f573d5f803e3d5ffd5b504792505f91506064905061127583600a611858565b61127f9190611909565b90505f606461128f84601e611858565b6112999190611909565b90505f60646112a985601e611858565b6112b39190611909565b90505f60646112c386601e611858565b6112cd9190611909565b600c546040519192505f916001600160a01b039091169086908381818185875af1925050503d805f811461131c576040519150601f19603f3d011682016040523d82523d5f602084013e611321565b606091505b5050600d546040519192506001600160a01b03169085905f81818185875af1925050503d805f811461136e576040519150601f19603f3d011682016040523d82523d5f602084013e611373565b606091505b5050600e546040519192506001600160a01b03169084905f81818185875af1925050503d805f81146113c0576040519150601f19603f3d011682016040523d82523d5f602084013e6113c5565b606091505b5050600f546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611412576040519150601f19603f3d011682016040523d82523d5f602084013e611417565b606091505b5050809150508061145c5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610528565b5050505050505050565b5f60646114738385611858565b61147d9190611909565b90505f61148a82856119be565b6001600160a01b0387165f908152600160205260408120805492935086929091906114b69084906119be565b90915550506001600160a01b0385165f90815260016020526040812080548392906114e2908490611928565b9091555050305f9081526001602052604081208054849290611505908490611928565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161155191815260200190565b60405180910390a3505050505050565b6001600160a01b0381166115c65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610528565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f6020808352835180828501525f5b8181101561164a5785810183015185820160400152820161162e565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610b7e575f80fd5b5f806040838503121561168f575f80fd5b823561169a8161166a565b946020939093013593505050565b5f805f606084860312156116ba575f80fd5b83356116c58161166a565b925060208401356116d58161166a565b929592945050506040919091013590565b5f602082840312156116f6575f80fd5b5035919050565b5f6020828403121561170d575f80fd5b81356117188161166a565b9392505050565b5f8060408385031215611730575f80fd5b823561173b8161166a565b9150602083013561174b8161166a565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156117a457815f190482111561178a5761178a611756565b8085161561179757918102915b93841c939080029061176f565b509250929050565b5f826117ba5750600161046e565b816117c657505f61046e565b81600181146117dc57600281146117e657611802565b600191505061046e565b60ff8411156117f7576117f7611756565b50506001821b61046e565b5060208310610133831016604e8410600b8410161715611825575081810a61046e565b61182f838361176a565b805f190482111561184257611842611756565b029392505050565b5f61171860ff8416836117ac565b808202811582820484141761046e5761046e611756565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156118b4575f80fd5b81516117188161166a565b5f805f606084860312156118d1575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156118fa575f80fd5b81518015158114611718575f80fd5b5f8261192357634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561046e5761046e611756565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561199d5784516001600160a01b031683529383019391830191600101611978565b50506001600160a01b03969096166060850152505050608001529392505050565b8181038181111561046e5761046e61175656fea264697066735822122020df44fb2f8b2817e13ba8371e827dbe8a64624a05d059be68dec4beaedf85b064736f6c63430008140033

Deployed Bytecode Sourcemap

2750:9084:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4403:88;;;;;;;;;;-1:-1:-1;4473:10:0;;;;;;;;;;;;-1:-1:-1;;;4473:10:0;;;;4403:88;;;;;;;:::i;:::-;;;;;;;;5417:166;;;;;;;;;;-1:-1:-1;5417:166:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;5417:166:0;1023:187:1;4695:100:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;4695:100:0;1215:177:1;5591:541:0;;;;;;;;;;-1:-1:-1;5591:541:0;;;;;:::i;:::-;;:::i;4803:146::-;;;;;;;;;;-1:-1:-1;4899:10:0;;4930:11;;4803:146;;;2032:25:1;;;2088:2;2073:18;;2066:34;;;;2005:18;4803:146:0;1858:248:1;4599:88:0;;;;;;;;;;-1:-1:-1;4599:88:0;;2944:2;2253:36:1;;2241:2;2226:18;4599:88:0;2111:184:1;3667:28:0;;;;;;;;;;-1:-1:-1;3667:28:0;;;;-1:-1:-1;;;;;3667:28:0;;;;;;-1:-1:-1;;;;;2464:32:1;;;2446:51;;2434:2;2419:18;3667:28:0;2300:203:1;7606:237:0;;;;;;;;;;-1:-1:-1;7606:237:0;;;;;:::i;:::-;;:::i;:::-;;4957:119;;;;;;;;;;-1:-1:-1;4957:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;5050:18:0;5023:7;5050:18;;;:9;:18;;;;;;;4957:119;1819:164;;;;;;;;;;;;;:::i;7460:138::-;;;;;;;;;;;;;:::i;6488:821::-;;;;;;;;;;;;;:::i;1223:87::-;;;;;;;;;;-1:-1:-1;1261:7:0;1288:14;-1:-1:-1;;;;;1288:14:0;1223:87;;4499:92;;;;;;;;;;-1:-1:-1;4571:12:0;;;;;;;;;;;;-1:-1:-1;;;4571:12:0;;;;4499:92;;5084:174;;;;;;;;;;-1:-1:-1;5084:174:0;;;;;:::i;:::-;;:::i;3442:61::-;;;;;;;;;;;;;;;;10373:240;;;;;;;;;;-1:-1:-1;10373:240:0;;;;;:::i;:::-;;:::i;3370:65::-;;;;;;;;;;;;;;;;9918:172;;;;;;;;;;;;;:::i;7317:135::-;;;;;;;;;;-1:-1:-1;7317:135:0;;;;;:::i;:::-;;:::i;5266:143::-;;;;;;;;;;-1:-1:-1;5266:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;5374:18:0;;;5347:7;5374:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5266:143;10098:267;;;;;;;;;;;;;:::i;1453:107::-;;;;;;;;;;-1:-1:-1;1453:107:0;;;;;:::i;:::-;;:::i;5417:166::-;5492:4;5509:44;865:10;5537:7;5546:6;5509:13;:44::i;:::-;-1:-1:-1;5571:4:0;5417:166;;;;;:::o;4695:100::-;4748:7;3005:18;2944:2;3005;:18;:::i;:::-;2993:30;;:9;:30;:::i;:::-;4768:19;;4695:100;:::o;5591:541::-;5689:4;5706:43;5723:6;5731:9;5742:6;5706:16;:43::i;:::-;-1:-1:-1;;;;;5789:19:0;;5762:24;5789:19;;;:11;:19;;;;;;;;865:10;5789:33;;;;;;;;-1:-1:-1;;5837:37:0;;5833:270;;5919:6;5899:16;:26;;5891:79;;;;-1:-1:-1;;;5891:79:0;;5228:2:1;5891:79:0;;;5210:21:1;5267:2;5247:18;;;5240:30;5306:34;5286:18;;;5279:62;-1:-1:-1;;;5357:18:1;;;5350:38;5405:19;;5891:79:0;;;;;;;;;6014:62;6028:6;865:10;6069:6;6050:16;:25;6014:13;:62::i;:::-;-1:-1:-1;6120:4:0;;5591:541;-1:-1:-1;;;;5591:541:0:o;7606:237::-;1358:14;;-1:-1:-1;;;;;1358:14:0;865:10;1358:30;1350:75;;;;-1:-1:-1;;;1350:75:0;;;;;;;:::i;:::-;7699:10:::1;;7685;:24;;:53;;;;;7727:11;;7713:10;:25;;7685:53;7677:89;;;::::0;-1:-1:-1;;;7677:89:0;;5998:2:1;7677:89:0::1;::::0;::::1;5980:21:1::0;6037:2;6017:18;;;6010:30;6076:25;6056:18;;;6049:53;6119:18;;7677:89:0::1;5796:347:1::0;7677:89:0::1;7777:10;:23:::0;;;7811:11:::1;:24:::0;7606:237::o;1819:164::-;1358:14;;-1:-1:-1;;;;;1358:14:0;865:10;1358:30;1350:75;;;;-1:-1:-1;;;1350:75:0;;;;;;;:::i;:::-;1934:1:::1;1910:14:::0;;1889:48:::1;::::0;-1:-1:-1;;;;;1910:14:0;;::::1;::::0;1889:48:::1;::::0;1934:1;;1889:48:::1;1973:1;1948:27:::0;;-1:-1:-1;;;;;;1948:27:0::1;::::0;;1819:164::o;7460:138::-;1358:14;;-1:-1:-1;;;;;1358:14:0;865:10;1358:30;1350:75;;;;-1:-1:-1;;;1350:75:0;;;;;;;:::i;:::-;3005:18:::1;2944:2;3005;:18;:::i;:::-;2993:30;::::0;:9:::1;:30;:::i;:::-;7514:20;:35:::0;3005:18:::1;2944:2;3005;:18;:::i;:::-;2993:30;::::0;:9:::1;:30;:::i;:::-;7560:15;:30:::0;7460:138::o;6488:821::-;1358:14;;-1:-1:-1;;;;;1358:14:0;865:10;1358:30;1350:75;;;;-1:-1:-1;;;1350:75:0;;;;;;;:::i;:::-;6552:15:::1;::::0;-1:-1:-1;;;6552:15:0;::::1;;;6551:16;6543:55;;;::::0;-1:-1:-1;;;6543:55:0;;6350:2:1;6543:55:0::1;::::0;::::1;6332:21:1::0;6389:2;6369:18;;;6362:30;6428:28;6408:18;;;6401:56;6474:18;;6543:55:0::1;6148:350:1::0;6543:55:0::1;6609:16;:81:::0;;-1:-1:-1;;;;;;6609:81:0::1;6647:42;6609:81:::0;;::::1;::::0;;;6735:26:::1;::::0;;-1:-1:-1;;;6735:26:0;;;;:24:::1;::::0;:26:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;6647:42;6735:26:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6717:56:0::1;;6782:4;6789:16;;;;;;;;;-1:-1:-1::0;;;;;6789:16:0::1;-1:-1:-1::0;;;;;6789:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6717:96;::::0;-1:-1:-1;;;;;;6717:96:0::1;::::0;;;;;;-1:-1:-1;;;;;6989:15:1;;;6717:96:0::1;::::0;::::1;6971:34:1::0;7041:15;;7021:18;;;7014:43;6906:18;;6717:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6701:13;:112:::0;;-1:-1:-1;;;;;;6701:112:0::1;-1:-1:-1::0;;;;;6701:112:0;;::::1;;::::0;;6861:16:::1;::::0;;6824:69:::1;::::0;6846:4:::1;::::0;6861:16;::::1;::::0;3005:18:::1;::::0;2944:2:::1;::::0;3005:18:::1;:::i;:::-;2993:30;::::0;:9:::1;:30;:::i;:::-;6824:13;:69::i;:::-;6914:16;::::0;-1:-1:-1;;;;;6914:16:0::1;:32;6954:21;6999:4;7019:24;6999:4:::0;-1:-1:-1;;;;;5050:18:0;5023:7;5050:18;;;:9;:18;;;;;;;4957:119;7019:24:::1;7058:1;7074::::0;7090:7:::1;1261::::0;1288:14;-1:-1:-1;;;;;1288:14:0;;1223:87;7090:7:::1;6914:224;::::0;::::1;::::0;;;-1:-1:-1;;;;;;6914:224:0;;;-1:-1:-1;;;;;7427:15:1;;;6914:224:0::1;::::0;::::1;7409:34:1::0;7459:18;;;7452:34;;;;7502:18;;;7495:34;;;;7545:18;;;7538:34;7609:15;;;7588:19;;;7581:44;7112:15:0::1;7641:19:1::0;;;7634:35;7343:19;;6914:224:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;7158:13:0::1;::::0;7189:16:::1;::::0;7151:72:::1;::::0;-1:-1:-1;;;7151:72:0;;-1:-1:-1;;;;;7189:16:0;;::::1;7151:72;::::0;::::1;8165:51:1::0;-1:-1:-1;;8232:18:1;;;8225:34;7158:13:0;::::1;::::0;-1:-1:-1;7151:29:0::1;::::0;8138:18:1;;7151:72:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;7234:15:0::1;:22:::0;;-1:-1:-1;;;;7234:22:0::1;-1:-1:-1::0;;;7234:22:0::1;::::0;;7289:12:::1;7267:19;:34:::0;6488:821::o;5084:174::-;5162:4;5179:49;865:10;5210:9;5221:6;5179:16;:49::i;10373:240::-;1358:14;;-1:-1:-1;;;;;1358:14:0;865:10;1358:30;1350:75;;;;-1:-1:-1;;;1350:75:0;;;;;;;:::i;:::-;10489:4:::1;10440:28;5050:18:::0;;;:9;:18;;;;;;;10562:3:::1;10528:30;5050:18:::0;10528:7;:30:::1;:::i;:::-;10527:38;;;;:::i;:::-;10506:59;;10576:29;10594:10;10576:17;:29::i;:::-;10429:184;;10373:240:::0;:::o;9918:172::-;1358:14;;-1:-1:-1;;;;;1358:14:0;865:10;1358:30;1350:75;;;;-1:-1:-1;;;1350:75:0;;;;;;;:::i;:::-;9970:12:::1;1288:14:::0;;9988:46:::1;::::0;-1:-1:-1;;;;;1288:14:0;;;;10008:21:::1;::::0;9970:12;9988:46;9970:12;9988:46;10008:21;1288:14;9988:46:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9969:65;;;10053:7;10045:37;;;::::0;-1:-1:-1;;;10045:37:0;;9186:2:1;10045:37:0::1;::::0;::::1;9168:21:1::0;9225:2;9205:18;;;9198:30;-1:-1:-1;;;9244:18:1;;;9237:47;9301:18;;10045:37:0::1;8984:341:1::0;10045:37:0::1;9958:132;9918:172::o:0;7317:135::-;1358:14;;-1:-1:-1;;;;;1358:14:0;865:10;1358:30;1350:75;;;;-1:-1:-1;;;1350:75:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7410:26:0;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:34;7317:135::o;10098:267::-;1358:14;;-1:-1:-1;;;;;1358:14:0;865:10;1358:30;1350:75;;;;-1:-1:-1;;;1350:75:0;;;;;;;:::i;:::-;10201:4:::1;10152:28;5050:18:::0;;;:9;:18;;;;;;10226:24;10218:56:::1;;;::::0;-1:-1:-1;;;10218:56:0;;9532:2:1;10218:56:0::1;::::0;::::1;9514:21:1::0;9571:2;9551:18;;;9544:30;-1:-1:-1;;;9590:18:1;;;9583:49;9649:18;;10218:56:0::1;9330:343:1::0;10218:56:0::1;10287:70;10317:4;10324:7;1261::::0;1288:14;-1:-1:-1;;;;;1288:14:0;;1223:87;10324:7:::1;10333:20;10355:1;10287:21;:70::i;1453:107::-:0;1358:14;;-1:-1:-1;;;;;1358:14:0;865:10;1358:30;1350:75;;;;-1:-1:-1;;;1350:75:0;;;;;;;:::i;:::-;1526:26:::1;1543:8;1526:16;:26::i;6140:340::-:0;-1:-1:-1;;;;;6238:19:0;;6230:68;;;;-1:-1:-1;;;6230:68:0;;9880:2:1;6230:68:0;;;9862:21:1;9919:2;9899:18;;;9892:30;9958:34;9938:18;;;9931:62;-1:-1:-1;;;10009:18:1;;;10002:34;10053:19;;6230:68:0;9678:400:1;6230:68:0;-1:-1:-1;;;;;6317:21:0;;6309:68;;;;-1:-1:-1;;;6309:68:0;;10285:2:1;6309:68:0;;;10267:21:1;10324:2;10304:18;;;10297:30;10363:34;10343:18;;;10336:62;-1:-1:-1;;;10414:18:1;;;10407:32;10456:19;;6309:68:0;10083:398:1;6309:68:0;-1:-1:-1;;;;;6388:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6440:32;;1361:25:1;;;6440:32:0;;1334:18:1;6440:32:0;;;;;;;6140:340;;;:::o;8254:1656::-;-1:-1:-1;;;;;8349:18:0;;8341:68;;;;-1:-1:-1;;;8341:68:0;;10688:2:1;8341:68:0;;;10670:21:1;10727:2;10707:18;;;10700:30;10766:34;10746:18;;;10739:62;-1:-1:-1;;;10817:18:1;;;10810:35;10862:19;;8341:68:0;10486:401:1;8341:68:0;8437:1;8428:6;:10;8420:71;;;;-1:-1:-1;;;8420:71:0;;11094:2:1;8420:71:0;;;11076:21:1;11133:2;11113:18;;;11106:30;11172:34;11152:18;;;11145:62;-1:-1:-1;;;11223:18:1;;;11216:46;11279:19;;8420:71:0;10892:412:1;8420:71:0;-1:-1:-1;;;;;8540:23:0;;8504:15;8540:23;;;:17;:23;;;;;;:28;:58;;;;-1:-1:-1;;;;;;8572:21:0;;;;;;:17;:21;;;;;;:26;8540:58;8536:1308;;;8623:15;;-1:-1:-1;;;8623:15:0;;;;8615:54;;;;-1:-1:-1;;;8615:54:0;;11511:2:1;8615:54:0;;;11493:21:1;11550:2;11530:18;;;11523:30;11589:28;11569:18;;;11562:56;11635:18;;8615:54:0;11309:350:1;8615:54:0;8702:20;;8692:6;:30;;8684:87;;;;-1:-1:-1;;;8684:87:0;;11866:2:1;8684:87:0;;;11848:21:1;11905:2;11885:18;;;11878:30;11944:34;11924:18;;;11917:62;-1:-1:-1;;;11995:18:1;;;11988:42;12047:19;;8684:87:0;11664:408:1;8684:87:0;8810:13;;-1:-1:-1;;;;;8804:19:0;;;8810:13;;8804:19;;;;:44;;-1:-1:-1;;;;;;8827:21:0;;8841:6;8827:21;;8804:44;8800:181;;;8903:15;;8893:6;8877:13;8887:2;-1:-1:-1;;;;;5050:18:0;5023:7;5050:18;;;:9;:18;;;;;;;4957:119;8877:13;:22;;;;:::i;:::-;:41;;8869:96;;;;-1:-1:-1;;;8869:96:0;;12409:2:1;8869:96:0;;;12391:21:1;12448:2;12428:18;;;12421:30;12487:34;12467:18;;;12460:62;-1:-1:-1;;;12538:18:1;;;12531:40;12588:19;;8869:96:0;12207:406:1;8869:96:0;9016:19;;:23;;9038:1;9016:23;:::i;:::-;9001:12;:38;8997:836;;;9079:13;;-1:-1:-1;;;;;9071:21:0;;;9079:13;;9071:21;9070:33;;9101:2;9070:33;;;9096:2;9070:33;9060:43;;;;8997:836;;;9156:13;;-1:-1:-1;;;;;9156:13:0;;;9148:21;;;;9144:674;;-1:-1:-1;9204:10:0;;9144:674;;;9250:13;;-1:-1:-1;;;;;9250:13:0;;;9244:19;;;;9240:578;;9337:4;9288:28;5050:18;;;:9;:18;;;;;;3275;2944:2;3275;:18;:::i;:::-;3266:27;;:6;:27;:::i;:::-;9370:20;:41;9366:389;;;9461:14;;9506:29;;;9502:64;;;9560:6;9537:29;;9502:64;9620:10;9597:20;:33;9593:72;;;9655:10;9632:33;;9593:72;9692:39;9710:20;9692:17;:39::i;:::-;9413:342;9366:389;-1:-1:-1;;9787:11:0;;9240:578;9854:48;9876:4;9882:2;9886:6;9894:7;9854:21;:48::i;:::-;8330:1580;8254:1656;;;:::o;10621:1173::-;10712:16;;;10726:1;10712:16;;;;;;;;10688:21;;10712:16;;;;;;;;;;-1:-1:-1;10712:16:0;10688:40;;10757:4;10739;10744:1;10739:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10739:23:0;;;:7;;;;;;;;;;:23;;;;10783:16;;:23;;;-1:-1:-1;;;10783:23:0;;;;:16;;;;;:21;;:23;;;;;10739:7;;10783:23;;;;;:16;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10773:4;10778:1;10773:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10773:33:0;;;:7;;;;;;;;;:33;10856:16;;10819:68;;10841:4;;10856:16;10875:11;10819:13;:68::i;:::-;10900:16;;:197;;-1:-1:-1;;;10900:197:0;;-1:-1:-1;;;;;10900:16:0;;;;:67;;:197;;10982:11;;10900:16;;11024:4;;11051;;11071:15;;10900:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11139:21:0;;-1:-1:-1;11110:26:0;;-1:-1:-1;11220:3:0;;-1:-1:-1;11193:23:0;11139:21;11214:2;11193:23;:::i;:::-;11192:31;;;;:::i;:::-;11171:52;-1:-1:-1;11234:25:0;11290:3;11263:23;:18;11284:2;11263:23;:::i;:::-;11262:31;;;;:::i;:::-;11234:59;-1:-1:-1;11304:22:0;11357:3;11330:23;:18;11351:2;11330:23;:::i;:::-;11329:31;;;;:::i;:::-;11304:56;-1:-1:-1;11371:22:0;11424:3;11397:23;:18;11418:2;11397:23;:::i;:::-;11396:31;;;;:::i;:::-;11459:13;;:41;;11371:56;;-1:-1:-1;11441:12:0;;-1:-1:-1;;;;;11459:13:0;;;;11485:10;;11441:12;11459:41;11441:12;11459:41;11485:10;11459:13;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11525:20:0;;:55;;11440:60;;-1:-1:-1;;;;;;11525:20:0;;11558:17;;11525:55;;;;11558:17;11525:20;:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11605:17:0;;:49;;11511:69;;-1:-1:-1;;;;;;11605:17:0;;11635:14;;11605:49;;;;11635:14;11605:17;:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11679:17:0;;:49;;11591:63;;-1:-1:-1;;;;;;11679:17:0;;11709:14;;11679:49;;;;11709:14;11679:17;:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11665:63;;;;;11759:7;11751:35;;;;-1:-1:-1;;;11751:35:0;;14069:2:1;11751:35:0;;;14051:21:1;14108:2;14088:18;;;14081:30;-1:-1:-1;;;14127:18:1;;;14120:45;14182:18;;11751:35:0;13867:339:1;11751:35:0;10677:1117;;;;;;;10621:1173;:::o;7851:395::-;7960:17;8001:3;7981:16;7990:7;7981:6;:16;:::i;:::-;7980:24;;;;:::i;:::-;7960:44;-1:-1:-1;8015:22:0;8040:18;7960:44;8040:6;:18;:::i;:::-;-1:-1:-1;;;;;8071:15:0;;;;;;:9;:15;;;;;:25;;8015:43;;-1:-1:-1;8090:6:0;;8071:15;;;:25;;8090:6;;8071:25;:::i;:::-;;;;-1:-1:-1;;;;;;;8107:13:0;;;;;;:9;:13;;;;;:31;;8124:14;;8107:13;:31;;8124:14;;8107:31;:::i;:::-;;;;-1:-1:-1;;8167:4:0;8149:24;;;;:9;:24;;;;;:37;;8177:9;;8149:24;:37;;8177:9;;8149:37;:::i;:::-;;;;;;;;8219:2;-1:-1:-1;;;;;8204:34:0;8213:4;-1:-1:-1;;;;;8204:34:0;;8223:14;8204:34;;;;1361:25:1;;1349:2;1334:18;;1215:177;8204:34:0;;;;;;;;7949:297;;7851:395;;;;:::o;1568:243::-;-1:-1:-1;;;;;1640:22:0;;1632:73;;;;-1:-1:-1;;;1632:73:0;;14546:2:1;1632:73:0;;;14528:21:1;14585:2;14565:18;;;14558:30;14624:34;14604:18;;;14597:62;-1:-1:-1;;;14675:18:1;;;14668:36;14721:19;;1632:73:0;14344:402:1;1632:73:0;1742:14;;;1721:46;;-1:-1:-1;;;;;1721:46:0;;;;1742:14;;;1721:46;;;1778:14;:25;;-1:-1:-1;;;;;;1778:25:0;-1:-1:-1;;;;;1778:25:0;;;;;;;;;;1568:243::o;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;2508:180::-;2567:6;2620:2;2608:9;2599:7;2595:23;2591:32;2588:52;;;2636:1;2633;2626:12;2588:52;-1:-1:-1;2659:23:1;;2508:180;-1:-1:-1;2508:180:1:o;2693:247::-;2752:6;2805:2;2793:9;2784:7;2780:23;2776:32;2773:52;;;2821:1;2818;2811:12;2773:52;2860:9;2847:23;2879:31;2904:5;2879:31;:::i;:::-;2929:5;2693:247;-1:-1:-1;;;2693:247:1:o;2945:388::-;3013:6;3021;3074:2;3062:9;3053:7;3049:23;3045:32;3042:52;;;3090:1;3087;3080:12;3042:52;3129:9;3116:23;3148:31;3173:5;3148:31;:::i;:::-;3198:5;-1:-1:-1;3255:2:1;3240:18;;3227:32;3268:33;3227:32;3268:33;:::i;:::-;3320:7;3310:17;;;2945:388;;;;;:::o;3338:127::-;3399:10;3394:3;3390:20;3387:1;3380:31;3430:4;3427:1;3420:15;3454:4;3451:1;3444:15;3470:422;3559:1;3602:5;3559:1;3616:270;3637:7;3627:8;3624:21;3616:270;;;3696:4;3692:1;3688:6;3684:17;3678:4;3675:27;3672:53;;;3705:18;;:::i;:::-;3755:7;3745:8;3741:22;3738:55;;;3775:16;;;;3738:55;3854:22;;;;3814:15;;;;3616:270;;;3620:3;3470:422;;;;;:::o;3897:806::-;3946:5;3976:8;3966:80;;-1:-1:-1;4017:1:1;4031:5;;3966:80;4065:4;4055:76;;-1:-1:-1;4102:1:1;4116:5;;4055:76;4147:4;4165:1;4160:59;;;;4233:1;4228:130;;;;4140:218;;4160:59;4190:1;4181:10;;4204:5;;;4228:130;4265:3;4255:8;4252:17;4249:43;;;4272:18;;:::i;:::-;-1:-1:-1;;4328:1:1;4314:16;;4343:5;;4140:218;;4442:2;4432:8;4429:16;4423:3;4417:4;4414:13;4410:36;4404:2;4394:8;4391:16;4386:2;4380:4;4377:12;4373:35;4370:77;4367:159;;;-1:-1:-1;4479:19:1;;;4511:5;;4367:159;4558:34;4583:8;4577:4;4558:34;:::i;:::-;4628:6;4624:1;4620:6;4616:19;4607:7;4604:32;4601:58;;;4639:18;;:::i;:::-;4677:20;;3897:806;-1:-1:-1;;;3897:806:1:o;4708:140::-;4766:5;4795:47;4836:4;4826:8;4822:19;4816:4;4795:47;:::i;4853:168::-;4926:9;;;4957;;4974:15;;;4968:22;;4954:37;4944:71;;4995:18;;:::i;5435:356::-;5637:2;5619:21;;;5656:18;;;5649:30;5715:34;5710:2;5695:18;;5688:62;5782:2;5767:18;;5435:356::o;6503:251::-;6573:6;6626:2;6614:9;6605:7;6601:23;6597:32;6594:52;;;6642:1;6639;6632:12;6594:52;6674:9;6668:16;6693:31;6718:5;6693:31;:::i;7680:306::-;7768:6;7776;7784;7837:2;7825:9;7816:7;7812:23;7808:32;7805:52;;;7853:1;7850;7843:12;7805:52;7882:9;7876:16;7866:26;;7932:2;7921:9;7917:18;7911:25;7901:35;;7976:2;7965:9;7961:18;7955:25;7945:35;;7680:306;;;;;:::o;8270:277::-;8337:6;8390:2;8378:9;8369:7;8365:23;8361:32;8358:52;;;8406:1;8403;8396:12;8358:52;8438:9;8432:16;8491:5;8484:13;8477:21;8470:5;8467:32;8457:60;;8513:1;8510;8503:12;8552:217;8592:1;8618;8608:132;;8662:10;8657:3;8653:20;8650:1;8643:31;8697:4;8694:1;8687:15;8725:4;8722:1;8715:15;8608:132;-1:-1:-1;8754:9:1;;8552:217::o;12077:125::-;12142:9;;;12163:10;;;12160:36;;;12176:18;;:::i;12750:127::-;12811:10;12806:3;12802:20;12799:1;12792:31;12842:4;12839:1;12832:15;12866:4;12863:1;12856:15;12882:980;13144:4;13192:3;13181:9;13177:19;13223:6;13212:9;13205:25;13249:2;13287:6;13282:2;13271:9;13267:18;13260:34;13330:3;13325:2;13314:9;13310:18;13303:31;13354:6;13389;13383:13;13420:6;13412;13405:22;13458:3;13447:9;13443:19;13436:26;;13497:2;13489:6;13485:15;13471:29;;13518:1;13528:195;13542:6;13539:1;13536:13;13528:195;;;13607:13;;-1:-1:-1;;;;;13603:39:1;13591:52;;13698:15;;;;13663:12;;;;13639:1;13557:9;13528:195;;;-1:-1:-1;;;;;;;13779:32:1;;;;13774:2;13759:18;;13752:60;-1:-1:-1;;;13843:3:1;13828:19;13821:35;13740:3;12882:980;-1:-1:-1;;;12882:980:1:o;14211:128::-;14278:9;;;14299:11;;;14296:37;;;14313:18;;:::i

Swarm Source

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