ETH Price: $2,356.09 (+7.50%)
 

Overview

Max Total Supply

55,555,555.555555555555555555 BZR

Holders

14 (0.00%)

Transfers

-
0

Market

Price

$68.06 @ 0.028887 ETH (+7.41%)

Onchain Market Cap

$3,781,111,111.11

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

A blockchain-powered P2P marketplace enabling secure, private, and transparent crypto-based trade, bridging traditional commerce with decentralization.

Market

Volume (24H):$418,126.00
Market Capitalization:$0.00
Circulating Supply:0.00 BZR
Market Data Source: Coinmarketcap

Contract Source Code Verified (Exact Match)

Contract Name:
BZR

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at basescan.org on 2025-08-07
*/

// SPDX-License-Identifier: MIT
// File: BZR.sol
// 
// Bazaars (BZR) Token - Flattened Version
// Website: https://bazaars.io
// GitHub: https://github.com/BazaarsBZR
//
// This is a flattened version combining all OpenZeppelin dependencies.
// For verification, you may need to use the original version with imports.

pragma solidity 0.8.26;

// OpenZeppelin Contracts (last updated v4.9.0) (utils/Context.sol)
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)
interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, 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 from, address to, uint256 amount) external returns (bool);
}

// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)
interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol)
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    uint256 private _totalSupply;
    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }
        return true;
    }

    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        _beforeTokenTransfer(from, to, amount);
        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }
        emit Transfer(from, to, amount);
        _afterTokenTransfer(from, to, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");
        _beforeTokenTransfer(address(0), account, amount);
        _totalSupply += amount;
        unchecked {
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);
        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");
        _beforeTokenTransfer(account, address(0), amount);
        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            _totalSupply -= amount;
        }
        emit Transfer(account, address(0), amount);
        _afterTokenTransfer(account, address(0), amount);
    }

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

    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

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

// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/extensions/ERC20Burnable.sol)
abstract contract ERC20Burnable is Context, ERC20 {
    function burn(uint256 amount) public virtual {
        _burn(_msgSender(), amount);
    }

    function burnFrom(address account, uint256 amount) public virtual {
        _spendAllowance(account, _msgSender(), amount);
        _burn(account, amount);
    }
}

// OpenZeppelin Contracts (last updated v4.9.0) (security/ReentrancyGuard.sol)
abstract contract ReentrancyGuard {
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;
    uint256 private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }

    modifier nonReentrant() {
        _nonReentrantBefore();
        _;
        _nonReentrantAfter();
    }

    function _nonReentrantBefore() private {
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");
        _status = _ENTERED;
    }

    function _nonReentrantAfter() private {
        _status = _NOT_ENTERED;
    }

    function _reentrancyGuardEntered() internal view returns (bool) {
        return _status == _ENTERED;
    }
}

// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)
interface IERC165 {
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)
abstract contract ERC165 is IERC165 {
    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
        return interfaceId == type(IERC165).interfaceId;
    }
}

/**
 * @title ERC-5267 Interface for Contract Metadata
 * @notice Enables on-chain contract introspection
 */
interface IERC5267 {
    /**
     * @notice Get contract metadata (ERC-5267)
     * @return tokenName Token name
     * @return versionString Contract version  
     * @return standard Token standard implemented
     * @return description Detailed description of the token
     * @return abiHash Hash of contract ABI for verification
     * @return features Array of security and functionality features
     * @dev Enables automated contract introspection by tools and dApps
     */
    function getContractMetadata() external view returns (
        string memory tokenName,
        string memory versionString,
        string memory standard,
        string memory description,
        bytes32 abiHash,
        string[] memory features
    );
}

/**
 * @title Bazaars (BZR) – ORC-55 Standard
 * @notice Production-ready deflationary token with military-grade security
 * @dev ORC-55: Zero-Admin, Race-Conditionless, Contractually Final Standard
 * @dev Built on OpenZeppelin's battle-tested security foundations
 * 
 * ██████╗ ███████╗██████╗ 
 * ██╔══██╗╚══███╔╝██╔══██╗
 * ██████╔╝  ███╔╝ ██████╔╝
 * ██╔══██╗ ███╔╝  ██╔══██╗
 * ██████╔╝███████╗██║  ██║
 * ╚═════╝ ╚══════╝╚═╝  ╚═╝
 * 
 * BAZAARS TOKEN - IMMUTABLE DIGITAL MONEY
 * 
 * KEY FEATURES:
 * ✓ Zero admin functions - truly decentralized
 * ✓ Race condition protection on approvals
 * ✓ Deflationary burn mechanism with OpenZeppelin ERC20Burnable
 * ✓ Multi-chain compatible
 * ✓ Revolutionary ORC-55 standard compliant
 * ✓ Gas optimized for minimal transaction costs
 * ✓ OpenZeppelin ReentrancyGuard for maximum security
 * ✓ Perfect ABI compatibility for all tooling
 * 
 * RACE CONDITION PROTECTION:
 * To prevent approval front-running attacks, this contract requires zeroing
 * existing allowances before setting new non-zero amounts. Use:
 * 1. approve(spender, 0) then approve(spender, newAmount), OR
 * 2. increaseAllowance() / decreaseAllowance() for atomic updates
 * 
 * DEFLATIONARY MECHANISM:
 * Token holders can permanently burn tokens to reduce circulating supply.
 * Burned tokens are tracked transparently and cannot be recovered.
 * Built on OpenZeppelin's ERC20Burnable for maximum compatibility.
 * 
 * SECURITY ENHANCEMENTS:
 * - OpenZeppelin ReentrancyGuard for proven reentrancy protection
 * - OpenZeppelin ERC20 base for battle-tested token functionality
 * - Contract is declared final to prevent inheritance-based vulnerabilities
 * - Perfect ABI compatibility for maximum tooling support
 * 
 * @author Bazaars Development Team
 * @custom:security-contact [email protected]
 * @custom:repository https://github.com/BazaarsBZR
 * @custom:version 5.5
 * @custom:implements ERC20, ERC20Metadata, ERC20Burnable
 * @custom:security OpenZeppelin-based with built-in reentrancy protection
 */
contract BZR is ERC20, ERC20Burnable, ReentrancyGuard, ERC165, IERC5267 {
    
    /*//////////////////////////////////////////////////////////////
                                ERRORS
    //////////////////////////////////////////////////////////////*/
    
    /// @notice Thrown when trying to initialize with zero address
    error ZeroAddress();
    
    /// @notice Thrown when trying to initialize with zero amount
    error ZeroAmount();
    
    /// @notice Thrown when trying to set non-zero allowance over existing non-zero allowance
    error MustZeroAllowanceFirst();
    
    /// @notice Thrown when trying to decrease allowance below zero
    error AllowanceUnderflow();
    
    /// @notice Thrown when trying to approve to zero address
    error ApproveToZeroAddress();
    
    /*//////////////////////////////////////////////////////////////
                            CONSTANTS & IMMUTABLES
    //////////////////////////////////////////////////////////////*/
    
    /// @notice Initial token supply at deployment (immutable)
    uint256 public immutable INITIAL_SUPPLY;
    
    /// @notice Contract deployment timestamp
    uint256 public immutable DEPLOYMENT_TIME;
    
    /// @notice Deployment chain ID for multi-chain verification
    uint256 public immutable DEPLOYMENT_CHAIN_ID;
    
    /*//////////////////////////////////////////////////////////////
                                STORAGE
    //////////////////////////////////////////////////////////////*/
    
    /// @notice Multi-chain deployment tracking
    /// @dev Maps chain ID to deployment hash for cross-chain verification
    mapping(uint256 => bytes32) public chainDeployments;
    
    /// @notice Supported chain IDs for official deployments
    uint256[] public supportedChains;
    
    /*//////////////////////////////////////////////////////////////
                                EVENTS
    //////////////////////////////////////////////////////////////*/
    
    /// @notice Emitted once at deployment with contract metadata
    /// @param version Contract version
    /// @param standard Token standard implemented
    /// @param abiHash Hash of contract ABI for verification
    /// @param features Security and functionality features
    event ContractDeployed(
        string indexed version,
        string indexed standard,
        bytes32 indexed abiHash,
        string features
    );
    
    /// @notice Emitted when a new chain deployment is registered
    /// @param chainId Chain ID where contract was deployed
    /// @param deploymentHash Hash of the deployment for verification
    event ChainDeploymentRegistered(uint256 indexed chainId, bytes32 indexed deploymentHash);
    
    /*//////////////////////////////////////////////////////////////
                              CONSTRUCTOR
    //////////////////////////////////////////////////////////////*/
    
    /**
     * @notice Deploy BZR token with initial supply
     * @param initialHolder Address to receive initial token supply
     * @param totalInitialSupply Total token supply for this deployment
     * @dev initialHolder cannot be zero address, totalInitialSupply must be > 0
     */
    constructor(address initialHolder, uint256 totalInitialSupply) 
        ERC20("Bazaars", "BZR") 
    {
        if (initialHolder == address(0)) revert ZeroAddress();
        if (totalInitialSupply == 0) revert ZeroAmount();
        
        INITIAL_SUPPLY = totalInitialSupply;
        DEPLOYMENT_TIME = block.timestamp;
        DEPLOYMENT_CHAIN_ID = block.chainid;
        
        _mint(initialHolder, totalInitialSupply);
        
        // Register this chain deployment
        bytes32 deploymentHash = keccak256(abi.encodePacked(
            INITIAL_SUPPLY,
            initialHolder,
            DEPLOYMENT_TIME,
            block.chainid
        ));
        
        chainDeployments[block.chainid] = deploymentHash;
        supportedChains.push(block.chainid);
        
        // Emit deployment metadata for indexers
        bytes32 abiHash = keccak256(abi.encodePacked(
            "BZR",
            "5.5",
            "ORC-55",
            "openzeppelin+reentrancy"
        ));
        
        emit ContractDeployed(
            "5.5",
            "ORC-55",
            abiHash,
            "Final,OpenZeppelin-ReentrancyGuard,Deflationary,ORC-55"
        );
        
        emit ChainDeploymentRegistered(block.chainid, deploymentHash);
    }
    
    /*//////////////////////////////////////////////////////////////
                          ENHANCED ERC-20 FUNCTIONS
    //////////////////////////////////////////////////////////////*/
    
    /**
     * @notice Get current circulating token supply (alias for totalSupply)
     * @return Current circulating supply (initial supply minus burned tokens)
     * @dev Alias function for better semantic clarity in DeFi applications
     */
    function circulatingSupply() external view returns (uint256) {
        return totalSupply();
    }
    
    /**
     * @notice Set allowance for spender with race condition protection
     * @param spender Address to approve
     * @param amount Amount to approve
     * @return True if approval succeeded
     * @dev Must zero existing allowance before setting new non-zero amount
     * @dev Overrides OpenZeppelin's approve to add race condition protection
     */
    function approve(address spender, uint256 amount) public override returns (bool) {
        if (spender == address(0)) revert ApproveToZeroAddress();
        
        // Race condition protection: must zero existing allowance first
        if (amount != 0 && allowance(msg.sender, spender) != 0) {
            revert MustZeroAllowanceFirst();
        }
        
        return super.approve(spender, amount);
    }
    
    /**
     * @notice Transfer tokens from approved account with reentrancy protection
     * @param from Source address
     * @param to Destination address
     * @param amount Amount to transfer
     * @return True if transfer succeeded
     * @dev Protected against reentrancy attacks using OpenZeppelin's ReentrancyGuard
     */
    function transferFrom(address from, address to, uint256 amount) 
        public 
        override 
        nonReentrant 
        returns (bool) 
    {
        return super.transferFrom(from, to, amount);
    }
    
    /*//////////////////////////////////////////////////////////////
                          ENHANCED ALLOWANCE FUNCTIONS
    //////////////////////////////////////////////////////////////*/
    
    /**
     * @notice Atomically increase allowance (recommended over approve)
     * @param spender Address to increase allowance for
     * @param addedValue Amount to add to current allowance
     * @return True if operation succeeded
     * @dev Uses OpenZeppelin's increaseAllowance implementation
     */
    function increaseAllowance(address spender, uint256 addedValue) 
        public 
        override 
        returns (bool) 
    {
        return super.increaseAllowance(spender, addedValue);
    }
    
    /**
     * @notice Atomically decrease allowance with underflow protection
     * @param spender Address to decrease allowance for
     * @param subtractedValue Amount to subtract from current allowance
     * @return True if operation succeeded
     * @dev Enhanced version with explicit underflow check
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) 
        public 
        override 
        returns (bool) 
    {
        uint256 currentAllowance = allowance(msg.sender, spender);
        if (currentAllowance < subtractedValue) {
            revert AllowanceUnderflow();
        }
        
        return super.decreaseAllowance(spender, subtractedValue);
    }
    
    /*//////////////////////////////////////////////////////////////
                          ENHANCED BURN FUNCTIONALITY
    //////////////////////////////////////////////////////////////*/
    
    /**
     * @notice Get total tokens burned
     * @return Total amount of tokens burned
     * @dev Calculated as initial supply minus current total supply
     */
    function totalBurned() public view returns (uint256) {
        return INITIAL_SUPPLY - totalSupply();
    }
    
    /**
     * @notice Burn tokens from your own balance
     * @param amount Amount of tokens to burn permanently
     * @dev Burned tokens are permanently removed from circulation
     * @dev Uses OpenZeppelin's burn implementation with Transfer event to address(0)
     */
    function burn(uint256 amount) public override {
        super.burn(amount);
        // No additional event needed - OpenZeppelin emits Transfer(from, address(0), amount)
    }
    
    /**
     * @notice Burn tokens from approved allowance with reentrancy protection
     * @param account Address to burn tokens from
     * @param amount Amount of tokens to burn
     * @dev Requires sufficient allowance from token owner
     * @dev Protected against reentrancy attacks using OpenZeppelin's ReentrancyGuard
     */
    function burnFrom(address account, uint256 amount) 
        public 
        override 
        nonReentrant 
    {
        super.burnFrom(account, amount);
        // No additional event needed - OpenZeppelin emits Transfer(from, address(0), amount)
    }
    
    /*//////////////////////////////////////////////////////////////
                        CONTRACT METADATA (ERC-5267)
    //////////////////////////////////////////////////////////////*/
    
    /**
     * @notice Get contract metadata (ERC-5267)
     * @return tokenName Token name
     * @return versionString Contract version  
     * @return standard Token standard implemented
     * @return description Detailed description of the token
     * @return abiHash Hash of contract ABI for verification
     * @return features Array of security and functionality features
     * @dev Implements ERC-5267 for automated contract introspection
     */
    function getContractMetadata() external view override returns (
        string memory tokenName,
        string memory versionString,
        string memory standard,
        string memory description,
        bytes32 abiHash,
        string[] memory features
    ) {
        tokenName = name();
        versionString = "5.5";
        standard = "ORC-55";
        description = "Bazaars (BZR) - The first token implementing the revolutionary ORC-55 standard: Zero-Admin, Race-Conditionless, Contractually Final. Built with military-grade security on OpenZeppelin foundations, featuring deflationary mechanics, advanced reentrancy protection, and immutable decentralization for the future of digital money.";
        abiHash = keccak256(abi.encodePacked(
            "BZR",
            "5.5", 
            "ORC-55",
            "openzeppelin+reentrancy"
        ));
        
        features = new string[](7);
        features[0] = "Final";
        features[1] = "OpenZeppelin-ReentrancyGuard";
        features[2] = "Deflationary";
        features[3] = "ORC-55";
        features[4] = "ERC20Burnable";
        features[5] = "Race-Condition-Safe";
        features[6] = "Multi-Chain-Ready";
    }
    
    /*//////////////////////////////////////////////////////////////
                        INTERFACE SUPPORT
    //////////////////////////////////////////////////////////////*/
    
    /**
     * @notice Check if contract supports a specific interface
     * @param interfaceId Interface identifier to check
     * @return True if interface is supported
     * @dev Supports ERC-165, ERC-20, ERC-20 Metadata, ERC-5267, and ERC20Burnable interfaces
     */
    function supportsInterface(bytes4 interfaceId) 
        public 
        view 
        virtual 
        override(ERC165) 
        returns (bool) 
    {
        return
            interfaceId == type(IERC20).interfaceId ||
            interfaceId == type(IERC20Metadata).interfaceId ||
            interfaceId == type(IERC5267).interfaceId ||
            interfaceId == 0x3b5a0bf8 || // ERC20Burnable interface ID
            super.supportsInterface(interfaceId);
    }
    
    /*//////////////////////////////////////////////////////////////
                            UTILITY FUNCTIONS
    //////////////////////////////////////////////////////////////*/
    
    /**
     * @notice Get comprehensive token statistics
     * @return initialSupplyValue The initial token supply at deployment
     * @return currentSupply The current circulating supply (same as totalSupply)
     * @return burnedTokens Total tokens burned
     * @return burnRate Burn rate in basis points (10000 = 100%)
     * @dev Provides all key supply metrics in a single call for efficiency
     */
    function getTokenStats() external view returns (
        uint256 initialSupplyValue,
        uint256 currentSupply,
        uint256 burnedTokens,
        uint256 burnRate
    ) {
        initialSupplyValue = INITIAL_SUPPLY;
        currentSupply = totalSupply();
        burnedTokens = INITIAL_SUPPLY - currentSupply;
        burnRate = initialSupplyValue == 0 ? 0 : (burnedTokens * 10000) / initialSupplyValue;
    }
    
    /**
     * @notice Get initial token supply (before any burns)
     * @return The initial total token supply at deployment
     * @dev Useful for calculating burn percentages and historical analysis
     */
    function initialSupply() external view returns (uint256) {
        return INITIAL_SUPPLY;
    }
    
    /**
     * @notice Get deployment information with ABI verification
     * @return deploymentTime Timestamp when contract was deployed
     * @return chainId Chain ID where contract was deployed
     * @return deploymentHash Hash of deployment parameters
     * @return abiHash Hash of contract ABI for verification
     */
    function getDeploymentInfo() external view returns (
        uint256 deploymentTime,
        uint256 chainId,
        bytes32 deploymentHash,
        bytes32 abiHash
    ) {
        deploymentTime = DEPLOYMENT_TIME;
        chainId = DEPLOYMENT_CHAIN_ID;
        deploymentHash = keccak256(abi.encodePacked(
            INITIAL_SUPPLY,
            name(),
            symbol(),
            decimals(),
            DEPLOYMENT_TIME
        ));
        // ABI hash for automated verification by dApps and explorers
        abiHash = keccak256(abi.encodePacked(
            "BZR",
            "5.5",
            "ORC-55",
            "openzeppelin+reentrancy"
        ));
    }
    
    /**
     * @notice Check if address is a token holder
     * @param account Address to check
     * @return True if account holds any tokens
     */
    function isTokenHolder(address account) external view returns (bool) {
        return balanceOf(account) > 0;
    }
    
    /**
     * @notice Calculate burn rate with custom precision
     * @param precision Decimal places for precision (e.g., 100 for 2 decimals)
     * @return Burn rate with specified precision
     */
    function getBurnRate(uint256 precision) external view returns (uint256) {
        if (INITIAL_SUPPLY == 0 || precision == 0) return 0;
        return (totalBurned() * precision) / INITIAL_SUPPLY;
    }
    
    /**
     * @notice Get multi-chain deployment information
     * @return currentChainId Current chain ID
     * @return currentDeploymentHash Deployment hash for current chain
     * @return totalChains Total number of supported chains
     * @return allChains Array of all supported chain IDs
     * @dev Provides comprehensive multi-chain deployment tracking
     */
    function getMultiChainInfo() external view returns (
        uint256 currentChainId,
        bytes32 currentDeploymentHash,
        uint256 totalChains,
        uint256[] memory allChains
    ) {
        currentChainId = block.chainid;
        currentDeploymentHash = chainDeployments[block.chainid];
        totalChains = supportedChains.length;
        allChains = supportedChains;
    }
    
    /**
     * @notice Verify if a chain has an official BZR deployment
     * @param chainId Chain ID to check
     * @return isDeployed True if chain has official deployment
     * @return deploymentHash Deployment hash for verification
     */
    function verifyChainDeployment(uint256 chainId) external view returns (
        bool isDeployed,
        bytes32 deploymentHash
    ) {
        deploymentHash = chainDeployments[chainId];
        isDeployed = deploymentHash != bytes32(0);
    }
    
    /**
     * @notice Get the canonical chain name for official BZR deployments
     * @param chainId Chain ID to get name for
     * @return Chain name string
     * @dev Supports all 10 official BZR deployment chains
     */
    function getChainName(uint256 chainId) external pure returns (string memory) {
        if (chainId == 1) return "Ethereum";
        if (chainId == 56) return "BNB Chain";
        if (chainId == 137) return "Polygon";
        if (chainId == 5000) return "Mantle";
        if (chainId == 8453) return "Base";
        if (chainId == 42161) return "Arbitrum";
        if (chainId == 10) return "Optimism";
        if (chainId == 43114) return "Avalanche";
        if (chainId == 324) return "zkSync Era";
        if (chainId == 25) return "Cronos";
        return "Unsupported Chain";
    }
    
    /**
     * @notice Get contract version for dashboard display
     * @return Contract version string
     * @dev Helps dashboards and UIs display version information
     */
    function version() external pure returns (string memory) {
        return "5.5";
    }
    
    /**
     * @notice Identify this contract as BZR token
     * @return Always returns true
     * @dev Helps block explorers and tools identify BZR tokens
     */
    function isBZR() external pure returns (bool) {
        return true;
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"initialHolder","type":"address"},{"internalType":"uint256","name":"totalInitialSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AllowanceUnderflow","type":"error"},{"inputs":[],"name":"ApproveToZeroAddress","type":"error"},{"inputs":[],"name":"MustZeroAllowanceFirst","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"inputs":[],"name":"ZeroAmount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"chainId","type":"uint256"},{"indexed":true,"internalType":"bytes32","name":"deploymentHash","type":"bytes32"}],"name":"ChainDeploymentRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"version","type":"string"},{"indexed":true,"internalType":"string","name":"standard","type":"string"},{"indexed":true,"internalType":"bytes32","name":"abiHash","type":"bytes32"},{"indexed":false,"internalType":"string","name":"features","type":"string"}],"name":"ContractDeployed","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":"DEPLOYMENT_CHAIN_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPLOYMENT_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"INITIAL_SUPPLY","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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"chainDeployments","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"precision","type":"uint256"}],"name":"getBurnRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"chainId","type":"uint256"}],"name":"getChainName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getContractMetadata","outputs":[{"internalType":"string","name":"tokenName","type":"string"},{"internalType":"string","name":"versionString","type":"string"},{"internalType":"string","name":"standard","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"bytes32","name":"abiHash","type":"bytes32"},{"internalType":"string[]","name":"features","type":"string[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDeploymentInfo","outputs":[{"internalType":"uint256","name":"deploymentTime","type":"uint256"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"bytes32","name":"deploymentHash","type":"bytes32"},{"internalType":"bytes32","name":"abiHash","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMultiChainInfo","outputs":[{"internalType":"uint256","name":"currentChainId","type":"uint256"},{"internalType":"bytes32","name":"currentDeploymentHash","type":"bytes32"},{"internalType":"uint256","name":"totalChains","type":"uint256"},{"internalType":"uint256[]","name":"allChains","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTokenStats","outputs":[{"internalType":"uint256","name":"initialSupplyValue","type":"uint256"},{"internalType":"uint256","name":"currentSupply","type":"uint256"},{"internalType":"uint256","name":"burnedTokens","type":"uint256"},{"internalType":"uint256","name":"burnRate","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isBZR","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isTokenHolder","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"supportedChains","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"chainId","type":"uint256"}],"name":"verifyChainDeployment","outputs":[{"internalType":"bool","name":"isDeployed","type":"bool"},{"internalType":"bytes32","name":"deploymentHash","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"}]

60e060405234801561000f575f80fd5b50604051613c92380380613c92833981810160405281019061003191906104af565b6040518060400160405280600781526020017f42617a61617273000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f425a52000000000000000000000000000000000000000000000000000000000081525081600390816100ac919061071e565b5080600490816100bc919061071e565b50505060016005819055505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361012c576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8103610165576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80608081815250504260a081815250504660c0818152505061018d82826102ba60201b60201c565b5f6080518360a051466040516020016101a99493929190610852565b6040516020818303038152906040528051906020012090508060065f4681526020019081526020015f2081905550600746908060018154018082558091505060019003905f5260205f20015f90919091909150555f60405160200161020d906109d1565b6040516020818303038152906040528051906020012090508060405161023290610a06565b604051809103902060405161024690610a1a565b60405180910390207f4f3080d2c14696e3c9561e555536794b1e4223b537641790d2eefb3448033abb60405161027b90610aae565b60405180910390a481467fdc644cd5d1d1143e7a98fe54293496af207fd1e5e8aa778d368e584941299c6160405160405180910390a350505050610bbc565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161031f90610b16565b60405180910390fd5b6103395f838361041460201b60201c565b8060025f82825461034a9190610b61565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516103f79190610ba3565b60405180910390a36104105f838361041960201b60201c565b5050565b505050565b505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61044b82610422565b9050919050565b61045b81610441565b8114610465575f80fd5b50565b5f8151905061047681610452565b92915050565b5f819050919050565b61048e8161047c565b8114610498575f80fd5b50565b5f815190506104a981610485565b92915050565b5f80604083850312156104c5576104c461041e565b5b5f6104d285828601610468565b92505060206104e38582860161049b565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061056857607f821691505b60208210810361057b5761057a610524565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026105dd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826105a2565b6105e786836105a2565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61062261061d6106188461047c565b6105ff565b61047c565b9050919050565b5f819050919050565b61063b83610608565b61064f61064782610629565b8484546105ae565b825550505050565b5f90565b610663610657565b61066e818484610632565b505050565b5b81811015610691576106865f8261065b565b600181019050610674565b5050565b601f8211156106d6576106a781610581565b6106b084610593565b810160208510156106bf578190505b6106d36106cb85610593565b830182610673565b50505b505050565b5f82821c905092915050565b5f6106f65f19846008026106db565b1980831691505092915050565b5f61070e83836106e7565b9150826002028217905092915050565b610727826104ed565b67ffffffffffffffff8111156107405761073f6104f7565b5b61074a8254610551565b610755828285610695565b5f60209050601f831160018114610786575f8415610774578287015190505b61077e8582610703565b8655506107e5565b601f19841661079486610581565b5f5b828110156107bb57848901518255600182019150602085019450602081019050610796565b868310156107d857848901516107d4601f8916826106e7565b8355505b6001600288020188555050505b505050505050565b5f819050919050565b6108076108028261047c565b6107ed565b82525050565b5f8160601b9050919050565b5f6108238261080d565b9050919050565b5f61083482610819565b9050919050565b61084c61084782610441565b61082a565b82525050565b5f61085d82876107f6565b60208201915061086d828661083b565b60148201915061087d82856107f6565b60208201915061088d82846107f6565b60208201915081905095945050505050565b5f81905092915050565b7f425a5200000000000000000000000000000000000000000000000000000000005f82015250565b5f6108dd60038361089f565b91506108e8826108a9565b600382019050919050565b7f352e3500000000000000000000000000000000000000000000000000000000005f82015250565b5f61092760038361089f565b9150610932826108f3565b600382019050919050565b7f4f52432d353500000000000000000000000000000000000000000000000000005f82015250565b5f61097160068361089f565b915061097c8261093d565b600682019050919050565b7f6f70656e7a657070656c696e2b7265656e7472616e63790000000000000000005f82015250565b5f6109bb60178361089f565b91506109c682610987565b601782019050919050565b5f6109db826108d1565b91506109e68261091b565b91506109f182610965565b91506109fc826109af565b9150819050919050565b5f610a1082610965565b9150819050919050565b5f610a248261091b565b9150819050919050565b5f82825260208201905092915050565b7f46696e616c2c4f70656e5a657070656c696e2d5265656e7472616e63794775615f8201527f72642c4465666c6174696f6e6172792c4f52432d353500000000000000000000602082015250565b5f610a98603683610a2e565b9150610aa382610a3e565b604082019050919050565b5f6020820190508181035f830152610ac581610a8c565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610b00601f83610a2e565b9150610b0b82610acc565b602082019050919050565b5f6020820190508181035f830152610b2d81610af4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610b6b8261047c565b9150610b768361047c565b9250828201905080821115610b8e57610b8d610b34565b5b92915050565b610b9d8161047c565b82525050565b5f602082019050610bb65f830184610b94565b92915050565b60805160a05160c051613066610c2c5f395f818161117e015261125401525f818161115b015281816111da015261162a01525f8181610990015281816109be01528181610a8001528181610aad01528181610b5101528181610b8a015281816111a1015261157801526130665ff3fe608060405234801561000f575f80fd5b50600436106101ee575f3560e01c806365731fe91161010d578063a457c2d7116100a0578063bbce148c1161006f578063bbce148c1461061d578063d89135cd1461064d578063dd62ed3e1461066b578063e84721cb1461069b576101ee565b8063a457c2d71461057e578063a9059cbb146105ae578063aeefffad146105de578063b0d9b2e5146105ff576101ee565b80637a21bcea116100dc5780637a21bcea146105035780639358928b1461052157806395d89b411461053f578063967266131461055d576101ee565b806365731fe91461046457806370a082311461049457806372b44b52146104c457806379cc6790146104e7576101ee565b80632ff2e9dc1161018557806342966c681161015457806342966c68146103ca578063548d496f146103e657806354fd4d50146104165780635ad7eb9e14610434576101ee565b80632ff2e9dc14610340578063313ce5671461035e578063378dc3dc1461037c578063395093511461039a576101ee565b806318160ddd116101c157806318160ddd146102915780632084d52f146102af57806323b872dd146102e057806327b7e04614610310576101ee565b806301ffc9a7146101f257806306fdde0314610222578063095ea7b314610240578063097cd9bf14610270575b5f80fd5b61020c60048036038101906102079190611f24565b6106b9565b6040516102199190611f69565b60405180910390f35b61022a610832565b6040516102379190611ff2565b60405180910390f35b61025a6004803603810190610255919061209f565b6108c2565b6040516102679190611f69565b60405180910390f35b61027861098a565b60405161028894939291906120ec565b60405180910390f35b610299610a18565b6040516102a6919061212f565b60405180910390f35b6102c960048036038101906102c49190612148565b610a21565b6040516102d792919061218b565b60405180910390f35b6102fa60048036038101906102f591906121b2565b610a44565b6040516103079190611f69565b60405180910390f35b61032a60048036038101906103259190612148565b610a69565b6040516103379190612202565b60405180910390f35b610348610a7e565b604051610355919061212f565b60405180910390f35b610366610aa2565b6040516103739190612236565b60405180910390f35b610384610aaa565b604051610391919061212f565b60405180910390f35b6103b460048036038101906103af919061209f565b610ad1565b6040516103c19190611f69565b60405180910390f35b6103e460048036038101906103df9190612148565b610ae4565b005b61040060048036038101906103fb9190612148565b610af0565b60405161040d919061212f565b60405180910390f35b61041e610b10565b60405161042b9190611ff2565b60405180910390f35b61044e60048036038101906104499190612148565b610b4d565b60405161045b919061212f565b60405180910390f35b61047e6004803603810190610479919061224f565b610bce565b60405161048b9190611f69565b60405180910390f35b6104ae60048036038101906104a9919061224f565b610be1565b6040516104bb919061212f565b60405180910390f35b6104cc610c26565b6040516104de9695949392919061237d565b60405180910390f35b61050160048036038101906104fc919061209f565b610f99565b005b61050b610fb7565b6040516105189190611f69565b60405180910390f35b610529610fbf565b604051610536919061212f565b60405180910390f35b610547610fcd565b6040516105549190611ff2565b60405180910390f35b61056561105d565b60405161057594939291906124b6565b60405180910390f35b6105986004803603810190610593919061209f565b6110d8565b6040516105a59190611f69565b60405180910390f35b6105c860048036038101906105c3919061209f565b611133565b6040516105d59190611f69565b60405180910390f35b6105e6611155565b6040516105f69493929190612500565b60405180910390f35b610607611252565b604051610614919061212f565b60405180910390f35b61063760048036038101906106329190612148565b611276565b6040516106449190611ff2565b60405180910390f35b61065561156d565b604051610662919061212f565b60405180910390f35b61068560048036038101906106809190612543565b6115a6565b604051610692919061212f565b60405180910390f35b6106a3611628565b6040516106b0919061212f565b60405180910390f35b5f7f36372b07000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061078357507fa219a025000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107eb57507f72b44b52000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061081b5750633b5a0bf860e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061082b575061082a8261164c565b5b9050919050565b606060038054610841906125ae565b80601f016020809104026020016040519081016040528092919081815260200182805461086d906125ae565b80156108b85780601f1061088f576101008083540402835291602001916108b8565b820191905f5260205f20905b81548152906001019060200180831161089b57829003601f168201915b5050505050905090565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610928576040517f3b719e1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f821415801561094157505f61093e33856115a6565b14155b15610978576040517feba4654800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61098283836116b5565b905092915050565b5f805f807f000000000000000000000000000000000000000000000000000000000000000093506109b9610a18565b9250827f00000000000000000000000000000000000000000000000000000000000000006109e7919061260b565b91505f8414610a0e5783612710836109ff919061263e565b610a0991906126ac565b610a10565b5f5b905090919293565b5f600254905090565b5f8060065f8481526020019081526020015f205490505f801b8114159150915091565b5f610a4d6116d7565b610a58848484611726565b9050610a62611754565b9392505050565b6006602052805f5260405f205f915090505481565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f6012905090565b5f7f0000000000000000000000000000000000000000000000000000000000000000905090565b5f610adc838361175e565b905092915050565b610aed81611794565b50565b60078181548110610aff575f80fd5b905f5260205f20015f915090505481565b60606040518060400160405280600381526020017f352e350000000000000000000000000000000000000000000000000000000000815250905090565b5f807f00000000000000000000000000000000000000000000000000000000000000001480610b7b57505f82145b15610b88575f9050610bc9565b7f000000000000000000000000000000000000000000000000000000000000000082610bb261156d565b610bbc919061263e565b610bc691906126ac565b90505b919050565b5f80610bd983610be1565b119050919050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6060806060805f6060610c37610832565b95506040518060400160405280600381526020017f352e35000000000000000000000000000000000000000000000000000000000081525094506040518060400160405280600681526020017f4f52432d3535000000000000000000000000000000000000000000000000000081525093506040518061018001604052806101468152602001612eeb61014691399250604051602001610cd69061280e565b604051602081830303815290604052805190602001209150600767ffffffffffffffff811115610d0957610d08612843565b5b604051908082528060200260200182016040528015610d3c57816020015b6060815260200190600190039081610d275790505b5090506040518060400160405280600581526020017f46696e616c000000000000000000000000000000000000000000000000000000815250815f81518110610d8857610d87612870565b5b60200260200101819052506040518060400160405280601c81526020017f4f70656e5a657070656c696e2d5265656e7472616e637947756172640000000081525081600181518110610ddd57610ddc612870565b5b60200260200101819052506040518060400160405280600c81526020017f4465666c6174696f6e617279000000000000000000000000000000000000000081525081600281518110610e3257610e31612870565b5b60200260200101819052506040518060400160405280600681526020017f4f52432d3535000000000000000000000000000000000000000000000000000081525081600381518110610e8757610e86612870565b5b60200260200101819052506040518060400160405280600d81526020017f45524332304275726e61626c650000000000000000000000000000000000000081525081600481518110610edc57610edb612870565b5b60200260200101819052506040518060400160405280601381526020017f526163652d436f6e646974696f6e2d536166650000000000000000000000000081525081600581518110610f3157610f30612870565b5b60200260200101819052506040518060400160405280601181526020017f4d756c74692d436861696e2d526561647900000000000000000000000000000081525081600681518110610f8657610f85612870565b5b6020026020010181905250909192939495565b610fa16116d7565b610fab82826117a8565b610fb3611754565b5050565b5f6001905090565b5f610fc8610a18565b905090565b606060048054610fdc906125ae565b80601f0160208091040260200160405190810160405280929190818152602001828054611008906125ae565b80156110535780601f1061102a57610100808354040283529160200191611053565b820191905f5260205f20905b81548152906001019060200180831161103657829003601f168201915b5050505050905090565b5f805f606046935060065f4681526020019081526020015f20549250600780549050915060078054806020026020016040519081016040528092919081815260200182805480156110cb57602002820191905f5260205f20905b8154815260200190600101908083116110b7575b5050505050905090919293565b5f806110e433856115a6565b905082811015611120576040517f8301ab3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61112a84846117c8565b91505092915050565b5f8061113d61183d565b905061114a818585611844565b600191505092915050565b5f805f807f000000000000000000000000000000000000000000000000000000000000000093507f000000000000000000000000000000000000000000000000000000000000000092507f00000000000000000000000000000000000000000000000000000000000000006111c8610832565b6111d0610fcd565b6111d8610aa2565b7f000000000000000000000000000000000000000000000000000000000000000060405160200161120d959493929190612921565b6040516020818303038152906040528051906020012091506040516020016112349061280e565b60405160208183030381529060405280519060200120905090919293565b7f000000000000000000000000000000000000000000000000000000000000000081565b6060600182036112bd576040518060400160405280600881526020017f457468657265756d0000000000000000000000000000000000000000000000008152509050611568565b60388203611302576040518060400160405280600981526020017f424e4220436861696e00000000000000000000000000000000000000000000008152509050611568565b60898203611347576040518060400160405280600781526020017f506f6c79676f6e000000000000000000000000000000000000000000000000008152509050611568565b611388820361138d576040518060400160405280600681526020017f4d616e746c6500000000000000000000000000000000000000000000000000008152509050611568565b61210582036113d3576040518060400160405280600481526020017f42617365000000000000000000000000000000000000000000000000000000008152509050611568565b61a4b18203611419576040518060400160405280600881526020017f417262697472756d0000000000000000000000000000000000000000000000008152509050611568565b600a820361145e576040518060400160405280600881526020017f4f7074696d69736d0000000000000000000000000000000000000000000000008152509050611568565b61a86a82036114a4576040518060400160405280600981526020017f4176616c616e63686500000000000000000000000000000000000000000000008152509050611568565b61014482036114ea576040518060400160405280600a81526020017f7a6b53796e6320457261000000000000000000000000000000000000000000008152509050611568565b6019820361152f576040518060400160405280600681526020017f43726f6e6f7300000000000000000000000000000000000000000000000000008152509050611568565b6040518060400160405280601181526020017f556e737570706f7274656420436861696e00000000000000000000000000000081525090505b919050565b5f611576610a18565b7f00000000000000000000000000000000000000000000000000000000000000006115a1919061260b565b905090565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f806116bf61183d565b90506116cc818585611ab0565b600191505092915050565b60026005540361171c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611713906129c1565b60405180910390fd5b6002600581905550565b5f8061173061183d565b905061173d858285611c73565b611748858585611844565b60019150509392505050565b6001600581905550565b5f8061176861183d565b905061178981858561177a85896115a6565b61178491906129df565b611ab0565b600191505092915050565b6117a561179f61183d565b82611cfe565b50565b6117ba826117b461183d565b83611c73565b6117c48282611cfe565b5050565b5f806117d261183d565b90505f6117df82866115a6565b905083811015611824576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181b90612a82565b60405180910390fd5b6118318286868403611ab0565b60019250505092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a990612b10565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611920576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191790612b9e565b60405180910390fd5b61192b838383611ec1565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156119ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a590612c2c565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a97919061212f565b60405180910390a3611aaa848484611ec6565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1590612cba565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8390612d48565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c66919061212f565b60405180910390a3505050565b5f611c7e84846115a6565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611cf85781811015611cea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce190612db0565b60405180910390fd5b611cf78484848403611ab0565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6390612e3e565b60405180910390fd5b611d77825f83611ec1565b5f805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611dfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df190612ecc565b60405180910390fd5b8181035f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f82825403925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ea9919061212f565b60405180910390a3611ebc835f84611ec6565b505050565b505050565b505050565b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611f0381611ecf565b8114611f0d575f80fd5b50565b5f81359050611f1e81611efa565b92915050565b5f60208284031215611f3957611f38611ecb565b5b5f611f4684828501611f10565b91505092915050565b5f8115159050919050565b611f6381611f4f565b82525050565b5f602082019050611f7c5f830184611f5a565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611fc482611f82565b611fce8185611f8c565b9350611fde818560208601611f9c565b611fe781611faa565b840191505092915050565b5f6020820190508181035f83015261200a8184611fba565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61203b82612012565b9050919050565b61204b81612031565b8114612055575f80fd5b50565b5f8135905061206681612042565b92915050565b5f819050919050565b61207e8161206c565b8114612088575f80fd5b50565b5f8135905061209981612075565b92915050565b5f80604083850312156120b5576120b4611ecb565b5b5f6120c285828601612058565b92505060206120d38582860161208b565b9150509250929050565b6120e68161206c565b82525050565b5f6080820190506120ff5f8301876120dd565b61210c60208301866120dd565b61211960408301856120dd565b61212660608301846120dd565b95945050505050565b5f6020820190506121425f8301846120dd565b92915050565b5f6020828403121561215d5761215c611ecb565b5b5f61216a8482850161208b565b91505092915050565b5f819050919050565b61218581612173565b82525050565b5f60408201905061219e5f830185611f5a565b6121ab602083018461217c565b9392505050565b5f805f606084860312156121c9576121c8611ecb565b5b5f6121d686828701612058565b93505060206121e786828701612058565b92505060406121f88682870161208b565b9150509250925092565b5f6020820190506122155f83018461217c565b92915050565b5f60ff82169050919050565b6122308161221b565b82525050565b5f6020820190506122495f830184612227565b92915050565b5f6020828403121561226457612263611ecb565b5b5f61227184828501612058565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f82825260208201905092915050565b5f6122bd82611f82565b6122c781856122a3565b93506122d7818560208601611f9c565b6122e081611faa565b840191505092915050565b5f6122f683836122b3565b905092915050565b5f602082019050919050565b5f6123148261227a565b61231e8185612284565b93508360208202850161233085612294565b805f5b8581101561236b578484038952815161234c85826122eb565b9450612357836122fe565b925060208a01995050600181019050612333565b50829750879550505050505092915050565b5f60c0820190508181035f8301526123958189611fba565b905081810360208301526123a98188611fba565b905081810360408301526123bd8187611fba565b905081810360608301526123d18186611fba565b90506123e0608083018561217c565b81810360a08301526123f2818461230a565b9050979650505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6124318161206c565b82525050565b5f6124428383612428565b60208301905092915050565b5f602082019050919050565b5f612464826123ff565b61246e8185612409565b935061247983612419565b805f5b838110156124a95781516124908882612437565b975061249b8361244e565b92505060018101905061247c565b5085935050505092915050565b5f6080820190506124c95f8301876120dd565b6124d6602083018661217c565b6124e360408301856120dd565b81810360608301526124f5818461245a565b905095945050505050565b5f6080820190506125135f8301876120dd565b61252060208301866120dd565b61252d604083018561217c565b61253a606083018461217c565b95945050505050565b5f806040838503121561255957612558611ecb565b5b5f61256685828601612058565b925050602061257785828601612058565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806125c557607f821691505b6020821081036125d8576125d7612581565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6126158261206c565b91506126208361206c565b9250828203905081811115612638576126376125de565b5b92915050565b5f6126488261206c565b91506126538361206c565b92508282026126618161206c565b91508282048414831517612678576126776125de565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6126b68261206c565b91506126c18361206c565b9250826126d1576126d061267f565b5b828204905092915050565b5f81905092915050565b7f425a5200000000000000000000000000000000000000000000000000000000005f82015250565b5f61271a6003836126dc565b9150612725826126e6565b600382019050919050565b7f352e3500000000000000000000000000000000000000000000000000000000005f82015250565b5f6127646003836126dc565b915061276f82612730565b600382019050919050565b7f4f52432d353500000000000000000000000000000000000000000000000000005f82015250565b5f6127ae6006836126dc565b91506127b98261277a565b600682019050919050565b7f6f70656e7a657070656c696e2b7265656e7472616e63790000000000000000005f82015250565b5f6127f86017836126dc565b9150612803826127c4565b601782019050919050565b5f6128188261270e565b915061282382612758565b915061282e826127a2565b9150612839826127ec565b9150819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b6128b76128b28261206c565b61289d565b82525050565b5f6128c782611f82565b6128d181856126dc565b93506128e1818560208601611f9c565b80840191505092915050565b5f8160f81b9050919050565b5f612903826128ed565b9050919050565b61291b6129168261221b565b6128f9565b82525050565b5f61292c82886128a6565b60208201915061293c82876128bd565b915061294882866128bd565b9150612954828561290a565b60018201915061296482846128a6565b6020820191508190509695505050505050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f6129ab601f83611f8c565b91506129b682612977565b602082019050919050565b5f6020820190508181035f8301526129d88161299f565b9050919050565b5f6129e98261206c565b91506129f48361206c565b9250828201905080821115612a0c57612a0b6125de565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612a6c602583611f8c565b9150612a7782612a12565b604082019050919050565b5f6020820190508181035f830152612a9981612a60565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612afa602583611f8c565b9150612b0582612aa0565b604082019050919050565b5f6020820190508181035f830152612b2781612aee565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612b88602383611f8c565b9150612b9382612b2e565b604082019050919050565b5f6020820190508181035f830152612bb581612b7c565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f612c16602683611f8c565b9150612c2182612bbc565b604082019050919050565b5f6020820190508181035f830152612c4381612c0a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612ca4602483611f8c565b9150612caf82612c4a565b604082019050919050565b5f6020820190508181035f830152612cd181612c98565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d32602283611f8c565b9150612d3d82612cd8565b604082019050919050565b5f6020820190508181035f830152612d5f81612d26565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612d9a601d83611f8c565b9150612da582612d66565b602082019050919050565b5f6020820190508181035f830152612dc781612d8e565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e28602183611f8c565b9150612e3382612dce565b604082019050919050565b5f6020820190508181035f830152612e5581612e1c565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f612eb6602283611f8c565b9150612ec182612e5c565b604082019050919050565b5f6020820190508181035f830152612ee381612eaa565b905091905056fe42617a616172732028425a5229202d2054686520666972737420746f6b656e20696d706c656d656e74696e6720746865207265766f6c7574696f6e617279204f52432d3535207374616e646172643a205a65726f2d41646d696e2c20526163652d436f6e646974696f6e6c6573732c20436f6e747261637475616c6c792046696e616c2e204275696c742077697468206d696c69746172792d6772616465207365637572697479206f6e204f70656e5a657070656c696e20666f756e646174696f6e732c20666561747572696e67206465666c6174696f6e617279206d656368616e6963732c20616476616e636564207265656e7472616e63792070726f74656374696f6e2c20616e6420696d6d757461626c6520646563656e7472616c697a6174696f6e20666f722074686520667574757265206f66206469676974616c206d6f6e65792ea264697066735822122056e4522d93c58ff8566d4c6f4f9070bb8bc85e977e7ffe27ff0192a3517754b464736f6c634300081a00330000000000000000000000006e1ef85cce7ec4b422f6a634d7924e77b9fb37a50000000000000000000000000000000000000000002df458b38b9558b78e38e3

Deployed Bytecode

0x608060405234801561000f575f80fd5b50600436106101ee575f3560e01c806365731fe91161010d578063a457c2d7116100a0578063bbce148c1161006f578063bbce148c1461061d578063d89135cd1461064d578063dd62ed3e1461066b578063e84721cb1461069b576101ee565b8063a457c2d71461057e578063a9059cbb146105ae578063aeefffad146105de578063b0d9b2e5146105ff576101ee565b80637a21bcea116100dc5780637a21bcea146105035780639358928b1461052157806395d89b411461053f578063967266131461055d576101ee565b806365731fe91461046457806370a082311461049457806372b44b52146104c457806379cc6790146104e7576101ee565b80632ff2e9dc1161018557806342966c681161015457806342966c68146103ca578063548d496f146103e657806354fd4d50146104165780635ad7eb9e14610434576101ee565b80632ff2e9dc14610340578063313ce5671461035e578063378dc3dc1461037c578063395093511461039a576101ee565b806318160ddd116101c157806318160ddd146102915780632084d52f146102af57806323b872dd146102e057806327b7e04614610310576101ee565b806301ffc9a7146101f257806306fdde0314610222578063095ea7b314610240578063097cd9bf14610270575b5f80fd5b61020c60048036038101906102079190611f24565b6106b9565b6040516102199190611f69565b60405180910390f35b61022a610832565b6040516102379190611ff2565b60405180910390f35b61025a6004803603810190610255919061209f565b6108c2565b6040516102679190611f69565b60405180910390f35b61027861098a565b60405161028894939291906120ec565b60405180910390f35b610299610a18565b6040516102a6919061212f565b60405180910390f35b6102c960048036038101906102c49190612148565b610a21565b6040516102d792919061218b565b60405180910390f35b6102fa60048036038101906102f591906121b2565b610a44565b6040516103079190611f69565b60405180910390f35b61032a60048036038101906103259190612148565b610a69565b6040516103379190612202565b60405180910390f35b610348610a7e565b604051610355919061212f565b60405180910390f35b610366610aa2565b6040516103739190612236565b60405180910390f35b610384610aaa565b604051610391919061212f565b60405180910390f35b6103b460048036038101906103af919061209f565b610ad1565b6040516103c19190611f69565b60405180910390f35b6103e460048036038101906103df9190612148565b610ae4565b005b61040060048036038101906103fb9190612148565b610af0565b60405161040d919061212f565b60405180910390f35b61041e610b10565b60405161042b9190611ff2565b60405180910390f35b61044e60048036038101906104499190612148565b610b4d565b60405161045b919061212f565b60405180910390f35b61047e6004803603810190610479919061224f565b610bce565b60405161048b9190611f69565b60405180910390f35b6104ae60048036038101906104a9919061224f565b610be1565b6040516104bb919061212f565b60405180910390f35b6104cc610c26565b6040516104de9695949392919061237d565b60405180910390f35b61050160048036038101906104fc919061209f565b610f99565b005b61050b610fb7565b6040516105189190611f69565b60405180910390f35b610529610fbf565b604051610536919061212f565b60405180910390f35b610547610fcd565b6040516105549190611ff2565b60405180910390f35b61056561105d565b60405161057594939291906124b6565b60405180910390f35b6105986004803603810190610593919061209f565b6110d8565b6040516105a59190611f69565b60405180910390f35b6105c860048036038101906105c3919061209f565b611133565b6040516105d59190611f69565b60405180910390f35b6105e6611155565b6040516105f69493929190612500565b60405180910390f35b610607611252565b604051610614919061212f565b60405180910390f35b61063760048036038101906106329190612148565b611276565b6040516106449190611ff2565b60405180910390f35b61065561156d565b604051610662919061212f565b60405180910390f35b61068560048036038101906106809190612543565b6115a6565b604051610692919061212f565b60405180910390f35b6106a3611628565b6040516106b0919061212f565b60405180910390f35b5f7f36372b07000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061078357507fa219a025000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107eb57507f72b44b52000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061081b5750633b5a0bf860e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061082b575061082a8261164c565b5b9050919050565b606060038054610841906125ae565b80601f016020809104026020016040519081016040528092919081815260200182805461086d906125ae565b80156108b85780601f1061088f576101008083540402835291602001916108b8565b820191905f5260205f20905b81548152906001019060200180831161089b57829003601f168201915b5050505050905090565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610928576040517f3b719e1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f821415801561094157505f61093e33856115a6565b14155b15610978576040517feba4654800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61098283836116b5565b905092915050565b5f805f807f0000000000000000000000000000000000000000002df458b38b9558b78e38e393506109b9610a18565b9250827f0000000000000000000000000000000000000000002df458b38b9558b78e38e36109e7919061260b565b91505f8414610a0e5783612710836109ff919061263e565b610a0991906126ac565b610a10565b5f5b905090919293565b5f600254905090565b5f8060065f8481526020019081526020015f205490505f801b8114159150915091565b5f610a4d6116d7565b610a58848484611726565b9050610a62611754565b9392505050565b6006602052805f5260405f205f915090505481565b7f0000000000000000000000000000000000000000002df458b38b9558b78e38e381565b5f6012905090565b5f7f0000000000000000000000000000000000000000002df458b38b9558b78e38e3905090565b5f610adc838361175e565b905092915050565b610aed81611794565b50565b60078181548110610aff575f80fd5b905f5260205f20015f915090505481565b60606040518060400160405280600381526020017f352e350000000000000000000000000000000000000000000000000000000000815250905090565b5f807f0000000000000000000000000000000000000000002df458b38b9558b78e38e31480610b7b57505f82145b15610b88575f9050610bc9565b7f0000000000000000000000000000000000000000002df458b38b9558b78e38e382610bb261156d565b610bbc919061263e565b610bc691906126ac565b90505b919050565b5f80610bd983610be1565b119050919050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6060806060805f6060610c37610832565b95506040518060400160405280600381526020017f352e35000000000000000000000000000000000000000000000000000000000081525094506040518060400160405280600681526020017f4f52432d3535000000000000000000000000000000000000000000000000000081525093506040518061018001604052806101468152602001612eeb61014691399250604051602001610cd69061280e565b604051602081830303815290604052805190602001209150600767ffffffffffffffff811115610d0957610d08612843565b5b604051908082528060200260200182016040528015610d3c57816020015b6060815260200190600190039081610d275790505b5090506040518060400160405280600581526020017f46696e616c000000000000000000000000000000000000000000000000000000815250815f81518110610d8857610d87612870565b5b60200260200101819052506040518060400160405280601c81526020017f4f70656e5a657070656c696e2d5265656e7472616e637947756172640000000081525081600181518110610ddd57610ddc612870565b5b60200260200101819052506040518060400160405280600c81526020017f4465666c6174696f6e617279000000000000000000000000000000000000000081525081600281518110610e3257610e31612870565b5b60200260200101819052506040518060400160405280600681526020017f4f52432d3535000000000000000000000000000000000000000000000000000081525081600381518110610e8757610e86612870565b5b60200260200101819052506040518060400160405280600d81526020017f45524332304275726e61626c650000000000000000000000000000000000000081525081600481518110610edc57610edb612870565b5b60200260200101819052506040518060400160405280601381526020017f526163652d436f6e646974696f6e2d536166650000000000000000000000000081525081600581518110610f3157610f30612870565b5b60200260200101819052506040518060400160405280601181526020017f4d756c74692d436861696e2d526561647900000000000000000000000000000081525081600681518110610f8657610f85612870565b5b6020026020010181905250909192939495565b610fa16116d7565b610fab82826117a8565b610fb3611754565b5050565b5f6001905090565b5f610fc8610a18565b905090565b606060048054610fdc906125ae565b80601f0160208091040260200160405190810160405280929190818152602001828054611008906125ae565b80156110535780601f1061102a57610100808354040283529160200191611053565b820191905f5260205f20905b81548152906001019060200180831161103657829003601f168201915b5050505050905090565b5f805f606046935060065f4681526020019081526020015f20549250600780549050915060078054806020026020016040519081016040528092919081815260200182805480156110cb57602002820191905f5260205f20905b8154815260200190600101908083116110b7575b5050505050905090919293565b5f806110e433856115a6565b905082811015611120576040517f8301ab3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61112a84846117c8565b91505092915050565b5f8061113d61183d565b905061114a818585611844565b600191505092915050565b5f805f807f000000000000000000000000000000000000000000000000000000006894e35193507f000000000000000000000000000000000000000000000000000000000000210592507f0000000000000000000000000000000000000000002df458b38b9558b78e38e36111c8610832565b6111d0610fcd565b6111d8610aa2565b7f000000000000000000000000000000000000000000000000000000006894e35160405160200161120d959493929190612921565b6040516020818303038152906040528051906020012091506040516020016112349061280e565b60405160208183030381529060405280519060200120905090919293565b7f000000000000000000000000000000000000000000000000000000000000210581565b6060600182036112bd576040518060400160405280600881526020017f457468657265756d0000000000000000000000000000000000000000000000008152509050611568565b60388203611302576040518060400160405280600981526020017f424e4220436861696e00000000000000000000000000000000000000000000008152509050611568565b60898203611347576040518060400160405280600781526020017f506f6c79676f6e000000000000000000000000000000000000000000000000008152509050611568565b611388820361138d576040518060400160405280600681526020017f4d616e746c6500000000000000000000000000000000000000000000000000008152509050611568565b61210582036113d3576040518060400160405280600481526020017f42617365000000000000000000000000000000000000000000000000000000008152509050611568565b61a4b18203611419576040518060400160405280600881526020017f417262697472756d0000000000000000000000000000000000000000000000008152509050611568565b600a820361145e576040518060400160405280600881526020017f4f7074696d69736d0000000000000000000000000000000000000000000000008152509050611568565b61a86a82036114a4576040518060400160405280600981526020017f4176616c616e63686500000000000000000000000000000000000000000000008152509050611568565b61014482036114ea576040518060400160405280600a81526020017f7a6b53796e6320457261000000000000000000000000000000000000000000008152509050611568565b6019820361152f576040518060400160405280600681526020017f43726f6e6f7300000000000000000000000000000000000000000000000000008152509050611568565b6040518060400160405280601181526020017f556e737570706f7274656420436861696e00000000000000000000000000000081525090505b919050565b5f611576610a18565b7f0000000000000000000000000000000000000000002df458b38b9558b78e38e36115a1919061260b565b905090565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b7f000000000000000000000000000000000000000000000000000000006894e35181565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f806116bf61183d565b90506116cc818585611ab0565b600191505092915050565b60026005540361171c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611713906129c1565b60405180910390fd5b6002600581905550565b5f8061173061183d565b905061173d858285611c73565b611748858585611844565b60019150509392505050565b6001600581905550565b5f8061176861183d565b905061178981858561177a85896115a6565b61178491906129df565b611ab0565b600191505092915050565b6117a561179f61183d565b82611cfe565b50565b6117ba826117b461183d565b83611c73565b6117c48282611cfe565b5050565b5f806117d261183d565b90505f6117df82866115a6565b905083811015611824576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181b90612a82565b60405180910390fd5b6118318286868403611ab0565b60019250505092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a990612b10565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611920576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191790612b9e565b60405180910390fd5b61192b838383611ec1565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156119ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a590612c2c565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a97919061212f565b60405180910390a3611aaa848484611ec6565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1590612cba565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8390612d48565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c66919061212f565b60405180910390a3505050565b5f611c7e84846115a6565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611cf85781811015611cea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce190612db0565b60405180910390fd5b611cf78484848403611ab0565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6390612e3e565b60405180910390fd5b611d77825f83611ec1565b5f805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611dfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df190612ecc565b60405180910390fd5b8181035f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f82825403925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ea9919061212f565b60405180910390a3611ebc835f84611ec6565b505050565b505050565b505050565b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611f0381611ecf565b8114611f0d575f80fd5b50565b5f81359050611f1e81611efa565b92915050565b5f60208284031215611f3957611f38611ecb565b5b5f611f4684828501611f10565b91505092915050565b5f8115159050919050565b611f6381611f4f565b82525050565b5f602082019050611f7c5f830184611f5a565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611fc482611f82565b611fce8185611f8c565b9350611fde818560208601611f9c565b611fe781611faa565b840191505092915050565b5f6020820190508181035f83015261200a8184611fba565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61203b82612012565b9050919050565b61204b81612031565b8114612055575f80fd5b50565b5f8135905061206681612042565b92915050565b5f819050919050565b61207e8161206c565b8114612088575f80fd5b50565b5f8135905061209981612075565b92915050565b5f80604083850312156120b5576120b4611ecb565b5b5f6120c285828601612058565b92505060206120d38582860161208b565b9150509250929050565b6120e68161206c565b82525050565b5f6080820190506120ff5f8301876120dd565b61210c60208301866120dd565b61211960408301856120dd565b61212660608301846120dd565b95945050505050565b5f6020820190506121425f8301846120dd565b92915050565b5f6020828403121561215d5761215c611ecb565b5b5f61216a8482850161208b565b91505092915050565b5f819050919050565b61218581612173565b82525050565b5f60408201905061219e5f830185611f5a565b6121ab602083018461217c565b9392505050565b5f805f606084860312156121c9576121c8611ecb565b5b5f6121d686828701612058565b93505060206121e786828701612058565b92505060406121f88682870161208b565b9150509250925092565b5f6020820190506122155f83018461217c565b92915050565b5f60ff82169050919050565b6122308161221b565b82525050565b5f6020820190506122495f830184612227565b92915050565b5f6020828403121561226457612263611ecb565b5b5f61227184828501612058565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f82825260208201905092915050565b5f6122bd82611f82565b6122c781856122a3565b93506122d7818560208601611f9c565b6122e081611faa565b840191505092915050565b5f6122f683836122b3565b905092915050565b5f602082019050919050565b5f6123148261227a565b61231e8185612284565b93508360208202850161233085612294565b805f5b8581101561236b578484038952815161234c85826122eb565b9450612357836122fe565b925060208a01995050600181019050612333565b50829750879550505050505092915050565b5f60c0820190508181035f8301526123958189611fba565b905081810360208301526123a98188611fba565b905081810360408301526123bd8187611fba565b905081810360608301526123d18186611fba565b90506123e0608083018561217c565b81810360a08301526123f2818461230a565b9050979650505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6124318161206c565b82525050565b5f6124428383612428565b60208301905092915050565b5f602082019050919050565b5f612464826123ff565b61246e8185612409565b935061247983612419565b805f5b838110156124a95781516124908882612437565b975061249b8361244e565b92505060018101905061247c565b5085935050505092915050565b5f6080820190506124c95f8301876120dd565b6124d6602083018661217c565b6124e360408301856120dd565b81810360608301526124f5818461245a565b905095945050505050565b5f6080820190506125135f8301876120dd565b61252060208301866120dd565b61252d604083018561217c565b61253a606083018461217c565b95945050505050565b5f806040838503121561255957612558611ecb565b5b5f61256685828601612058565b925050602061257785828601612058565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806125c557607f821691505b6020821081036125d8576125d7612581565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6126158261206c565b91506126208361206c565b9250828203905081811115612638576126376125de565b5b92915050565b5f6126488261206c565b91506126538361206c565b92508282026126618161206c565b91508282048414831517612678576126776125de565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6126b68261206c565b91506126c18361206c565b9250826126d1576126d061267f565b5b828204905092915050565b5f81905092915050565b7f425a5200000000000000000000000000000000000000000000000000000000005f82015250565b5f61271a6003836126dc565b9150612725826126e6565b600382019050919050565b7f352e3500000000000000000000000000000000000000000000000000000000005f82015250565b5f6127646003836126dc565b915061276f82612730565b600382019050919050565b7f4f52432d353500000000000000000000000000000000000000000000000000005f82015250565b5f6127ae6006836126dc565b91506127b98261277a565b600682019050919050565b7f6f70656e7a657070656c696e2b7265656e7472616e63790000000000000000005f82015250565b5f6127f86017836126dc565b9150612803826127c4565b601782019050919050565b5f6128188261270e565b915061282382612758565b915061282e826127a2565b9150612839826127ec565b9150819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b6128b76128b28261206c565b61289d565b82525050565b5f6128c782611f82565b6128d181856126dc565b93506128e1818560208601611f9c565b80840191505092915050565b5f8160f81b9050919050565b5f612903826128ed565b9050919050565b61291b6129168261221b565b6128f9565b82525050565b5f61292c82886128a6565b60208201915061293c82876128bd565b915061294882866128bd565b9150612954828561290a565b60018201915061296482846128a6565b6020820191508190509695505050505050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f6129ab601f83611f8c565b91506129b682612977565b602082019050919050565b5f6020820190508181035f8301526129d88161299f565b9050919050565b5f6129e98261206c565b91506129f48361206c565b9250828201905080821115612a0c57612a0b6125de565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612a6c602583611f8c565b9150612a7782612a12565b604082019050919050565b5f6020820190508181035f830152612a9981612a60565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612afa602583611f8c565b9150612b0582612aa0565b604082019050919050565b5f6020820190508181035f830152612b2781612aee565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612b88602383611f8c565b9150612b9382612b2e565b604082019050919050565b5f6020820190508181035f830152612bb581612b7c565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f612c16602683611f8c565b9150612c2182612bbc565b604082019050919050565b5f6020820190508181035f830152612c4381612c0a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612ca4602483611f8c565b9150612caf82612c4a565b604082019050919050565b5f6020820190508181035f830152612cd181612c98565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d32602283611f8c565b9150612d3d82612cd8565b604082019050919050565b5f6020820190508181035f830152612d5f81612d26565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612d9a601d83611f8c565b9150612da582612d66565b602082019050919050565b5f6020820190508181035f830152612dc781612d8e565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e28602183611f8c565b9150612e3382612dce565b604082019050919050565b5f6020820190508181035f830152612e5581612e1c565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f612eb6602283611f8c565b9150612ec182612e5c565b604082019050919050565b5f6020820190508181035f830152612ee381612eaa565b905091905056fe42617a616172732028425a5229202d2054686520666972737420746f6b656e20696d706c656d656e74696e6720746865207265766f6c7574696f6e617279204f52432d3535207374616e646172643a205a65726f2d41646d696e2c20526163652d436f6e646974696f6e6c6573732c20436f6e747261637475616c6c792046696e616c2e204275696c742077697468206d696c69746172792d6772616465207365637572697479206f6e204f70656e5a657070656c696e20666f756e646174696f6e732c20666561747572696e67206465666c6174696f6e617279206d656368616e6963732c20616476616e636564207265656e7472616e63792070726f74656374696f6e2c20616e6420696d6d757461626c6520646563656e7472616c697a6174696f6e20666f722074686520667574757265206f66206469676974616c206d6f6e65792ea264697066735822122056e4522d93c58ff8566d4c6f4f9070bb8bc85e977e7ffe27ff0192a3517754b464736f6c634300081a0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000006e1ef85cce7ec4b422f6a634d7924e77b9fb37a50000000000000000000000000000000000000000002df458b38b9558b78e38e3

-----Decoded View---------------
Arg [0] : initialHolder (address): 0x6e1ef85ccE7Ec4B422F6a634D7924E77B9Fb37a5
Arg [1] : totalInitialSupply (uint256): 55555555555555555555555555

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000006e1ef85cce7ec4b422f6a634d7924e77b9fb37a5
Arg [1] : 0000000000000000000000000000000000000000002df458b38b9558b78e38e3


Deployed Bytecode Sourcemap

11823:18235:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23754:480;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2180:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17330:422;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24857:427;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;2501:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28419:250;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;18107:216;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13491:51;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12904:39;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2400:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25512:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18856:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20575:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13617:32;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29708:88;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27158:204;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26821:117;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2617:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22049:1223;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;21107:261;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;29979:76;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16846:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2288:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27755:399;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;19393:393;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2752:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25956:695;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;13122:44;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28915:598;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20172:109;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2953:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13003:40;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23754:480;23897:4;23955:24;23940:39;;;:11;:39;;;;:103;;;;24011:32;23996:47;;;:11;:47;;;;23940:103;:161;;;;24075:26;24060:41;;;:11;:41;;;;23940:161;:203;;;;24133:10;24118:25;;:11;:25;;;;23940:203;:286;;;;24190:36;24214:11;24190:23;:36::i;:::-;23940:286;23920:306;;23754:480;;;:::o;2180:100::-;2234:13;2267:5;2260:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2180:100;:::o;17330:422::-;17405:4;17445:1;17426:21;;:7;:21;;;17422:56;;17456:22;;;;;;;;;;;;;;17422:56;17587:1;17577:6;:11;;:50;;;;;17626:1;17592:30;17602:10;17614:7;17592:9;:30::i;:::-;:35;;17577:50;17573:114;;;17651:24;;;;;;;;;;;;;;17573:114;17714:30;17728:7;17737:6;17714:13;:30::i;:::-;17707:37;;17330:422;;;;:::o;24857:427::-;24915:26;24952:21;24984:20;25015:16;25071:14;25050:35;;25112:13;:11;:13::i;:::-;25096:29;;25168:13;25151:14;:30;;;;:::i;:::-;25136:45;;25225:1;25203:18;:23;:73;;25258:18;25249:5;25234:12;:20;;;;:::i;:::-;25233:43;;;;:::i;:::-;25203:73;;;25229:1;25203:73;25192:84;;24857:427;;;;:::o;2501:108::-;2562:7;2589:12;;2582:19;;2501:108;:::o;28419:250::-;28500:15;28526:22;28584:16;:25;28601:7;28584:25;;;;;;;;;;;;28567:42;;28659:1;28651:10;;28633:14;:28;;28620:41;;28419:250;;;:::o;18107:216::-;18249:4;7686:21;:19;:21::i;:::-;18279:36:::1;18298:4;18304:2;18308:6;18279:18;:36::i;:::-;18272:43;;7730:20:::0;:18;:20::i;:::-;18107:216;;;;;:::o;13491:51::-;;;;;;;;;;;;;;;;;:::o;12904:39::-;;;:::o;2400:93::-;2458:5;2483:2;2476:9;;2400:93;:::o;25512:97::-;25560:7;25587:14;25580:21;;25512:97;:::o;18856:201::-;18975:4;19005:44;19029:7;19038:10;19005:23;:44::i;:::-;18998:51;;18856:201;;;;:::o;20575:178::-;20632:18;20643:6;20632:10;:18::i;:::-;20575:178;:::o;13617:32::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;29708:88::-;29750:13;29776:12;;;;;;;;;;;;;;;;;;;29708:88;:::o;27158:204::-;27221:7;27263:1;27245:14;:19;:37;;;;27281:1;27268:9;:14;27245:37;27241:51;;;27291:1;27284:8;;;;27241:51;27340:14;27327:9;27311:13;:11;:13::i;:::-;:25;;;;:::i;:::-;27310:44;;;;:::i;:::-;27303:51;;27158:204;;;;:::o;26821:117::-;26884:4;26929:1;26908:18;26918:7;26908:9;:18::i;:::-;:22;26901:29;;26821:117;;;:::o;2617:127::-;2691:7;2718:9;:18;2728:7;2718:18;;;;;;;;;;;;;;;;2711:25;;2617:127;;;:::o;22049:1223::-;22122:23;22156:27;22194:22;22227:25;22263:15;22289:24;22344:6;:4;:6::i;:::-;22332:18;;22361:21;;;;;;;;;;;;;;;;;;;22393:19;;;;;;;;;;;;;;;;;;;22423:342;;;;;;;;;;;;;;;;;;;22796:131;;;;;;;:::i;:::-;;;;;;;;;;;;;22786:142;;;;;;22776:152;;22973:1;22960:15;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22949:26;;22986:21;;;;;;;;;;;;;;;;;:8;22995:1;22986:11;;;;;;;;:::i;:::-;;;;;;;:21;;;;23018:44;;;;;;;;;;;;;;;;;:8;23027:1;23018:11;;;;;;;;:::i;:::-;;;;;;;:44;;;;23073:28;;;;;;;;;;;;;;;;;:8;23082:1;23073:11;;;;;;;;:::i;:::-;;;;;;;:28;;;;23112:22;;;;;;;;;;;;;;;;;:8;23121:1;23112:11;;;;;;;;:::i;:::-;;;;;;;:22;;;;23145:29;;;;;;;;;;;;;;;;;:8;23154:1;23145:11;;;;;;;;:::i;:::-;;;;;;;:29;;;;23185:35;;;;;;;;;;;;;;;;;:8;23194:1;23185:11;;;;;;;;:::i;:::-;;;;;;;:35;;;;23231:33;;;;;;;;;;;;;;;;;:8;23240:1;23231:11;;;;;;;;:::i;:::-;;;;;;;:33;;;;22049:1223;;;;;;:::o;21107:261::-;7686:21;:19;:21::i;:::-;21234:31:::1;21249:7;21258:6;21234:14;:31::i;:::-;7730:20:::0;:18;:20::i;:::-;21107:261;;:::o;29979:76::-;30019:4;30043;30036:11;;29979:76;:::o;16846:100::-;16898:7;16925:13;:11;:13::i;:::-;16918:20;;16846:100;:::o;2288:104::-;2344:13;2377:7;2370:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2288:104;:::o;27755:399::-;27817:22;27850:29;27890:19;27920:26;27982:13;27965:30;;28030:16;:31;28047:13;28030:31;;;;;;;;;;;;28006:55;;28086:15;:22;;;;28072:36;;28131:15;28119:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27755:399;;;;:::o;19393:393::-;19517:4;19540:24;19567:30;19577:10;19589:7;19567:9;:30::i;:::-;19540:57;;19631:15;19612:16;:34;19608:94;;;19670:20;;;;;;;;;;;;;;19608:94;19729:49;19753:7;19762:15;19729:23;:49::i;:::-;19722:56;;;19393:393;;;;:::o;2752:193::-;2831:4;2848:13;2864:12;:10;:12::i;:::-;2848:28;;2887;2897:5;2904:2;2908:6;2887:9;:28::i;:::-;2933:4;2926:11;;;2752:193;;;;:::o;25956:695::-;26018:22;26051:15;26077:22;26110:15;26161;26144:32;;26197:19;26187:29;;26285:14;26314:6;:4;:6::i;:::-;26335:8;:6;:8::i;:::-;26358:10;:8;:10::i;:::-;26383:15;26254:155;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;26244:166;;;;;;26227:183;;26512:130;;;;;;;:::i;:::-;;;;;;;;;;;;;26502:141;;;;;;26492:151;;25956:695;;;;:::o;13122:44::-;;;:::o;28915:598::-;28977:13;29018:1;29007:7;:12;29003:35;;29021:17;;;;;;;;;;;;;;;;;;;;;29003:35;29064:2;29053:7;:13;29049:37;;29068:18;;;;;;;;;;;;;;;;;;;;;29049:37;29112:3;29101:7;:14;29097:36;;29117:16;;;;;;;;;;;;;;;;;;;;;29097:36;29159:4;29148:7;:15;29144:36;;29165:15;;;;;;;;;;;;;;;;;;;;;29144:36;29206:4;29195:7;:15;29191:34;;29212:13;;;;;;;;;;;;;;;;;;;;;29191:34;29251:5;29240:7;:16;29236:39;;29258:17;;;;;;;;;;;;;;;;;;;;;29236:39;29301:2;29290:7;:13;29286:36;;29305:17;;;;;;;;;;;;;;;;;;;;;29286:36;29348:5;29337:7;:16;29333:40;;29355:18;;;;;;;;;;;;;;;;;;;;;29333:40;29399:3;29388:7;:14;29384:39;;29404:19;;;;;;;;;;;;;;;;;;;;;29384:39;29449:2;29438:7;:13;29434:34;;29453:15;;;;;;;;;;;;;;;;;;;;;29434:34;29479:26;;;;;;;;;;;;;;;;;;;28915:598;;;;:::o;20172:109::-;20216:7;20260:13;:11;:13::i;:::-;20243:14;:30;;;;:::i;:::-;20236:37;;20172:109;:::o;2953:151::-;3042:7;3069:11;:18;3081:5;3069:18;;;;;;;;;;;;;;;:27;3088:7;3069:27;;;;;;;;;;;;;;;;3062:34;;2953:151;;;;:::o;13003:40::-;;;:::o;8413:157::-;8498:4;8537:25;8522:40;;;:11;:40;;;;8515:47;;8413:157;;;:::o;3112:201::-;3195:4;3212:13;3228:12;:10;:12::i;:::-;3212:28;;3251:32;3260:5;3267:7;3276:6;3251:8;:32::i;:::-;3301:4;3294:11;;;3112:201;;;;:::o;7766:150::-;7548:1;7824:7;;:19;7816:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;7548:1;7890:7;:18;;;;7766:150::o;3321:261::-;3418:4;3435:15;3453:12;:10;:12::i;:::-;3435:30;;3476:38;3492:4;3498:7;3507:6;3476:15;:38::i;:::-;3525:27;3535:4;3541:2;3545:6;3525:9;:27::i;:::-;3570:4;3563:11;;;3321:261;;;;;:::o;7924:79::-;7504:1;7973:7;:22;;;;7924:79::o;3590:238::-;3678:4;3695:13;3711:12;:10;:12::i;:::-;3695:28;;3734:64;3743:5;3750:7;3787:10;3759:25;3769:5;3776:7;3759:9;:25::i;:::-;:38;;;;:::i;:::-;3734:8;:64::i;:::-;3816:4;3809:11;;;3590:238;;;;:::o;7073:91::-;7129:27;7135:12;:10;:12::i;:::-;7149:6;7129:5;:27::i;:::-;7073:91;:::o;7172:164::-;7249:46;7265:7;7274:12;:10;:12::i;:::-;7288:6;7249:15;:46::i;:::-;7306:22;7312:7;7321:6;7306:5;:22::i;:::-;7172:164;;:::o;3836:434::-;3929:4;3946:13;3962:12;:10;:12::i;:::-;3946:28;;3985:24;4012:25;4022:5;4029:7;4012:9;:25::i;:::-;3985:52;;4076:15;4056:16;:35;;4048:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;4169:60;4178:5;4185:7;4213:15;4194:16;:34;4169:8;:60::i;:::-;4258:4;4251:11;;;;3836:434;;;;:::o;459:98::-;512:7;539:10;532:17;;459:98;:::o;4278:633::-;4391:1;4375:18;;:4;:18;;;4367:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4468:1;4454:16;;:2;:16;;;4446:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;4521:38;4542:4;4548:2;4552:6;4521:20;:38::i;:::-;4570:19;4592:9;:15;4602:4;4592:15;;;;;;;;;;;;;;;;4570:37;;4641:6;4626:11;:21;;4618:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;4758:6;4744:11;:20;4726:9;:15;4736:4;4726:15;;;;;;;;;;;;;;;:38;;;;4796:6;4779:9;:13;4789:2;4779:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;4844:2;4829:26;;4838:4;4829:26;;;4848:6;4829:26;;;;;;:::i;:::-;;;;;;;;4866:37;4886:4;4892:2;4896:6;4866:19;:37::i;:::-;4356:555;4278:633;;;:::o;5951:344::-;6070:1;6053:19;;:5;:19;;;6045:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6151:1;6132:21;;:7;:21;;;6124:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6233:6;6203:11;:18;6215:5;6203:18;;;;;;;;;;;;;;;:27;6222:7;6203:27;;;;;;;;;;;;;;;:36;;;;6271:7;6255:32;;6264:5;6255:32;;;6280:6;6255:32;;;;;;:::i;:::-;;;;;;;;5951:344;;;:::o;6303:419::-;6404:24;6431:25;6441:5;6448:7;6431:9;:25::i;:::-;6404:52;;6491:17;6471:16;:37;6467:248;;6553:6;6533:16;:26;;6525:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6637:51;6646:5;6653:7;6681:6;6662:16;:25;6637:8;:51::i;:::-;6467:248;6393:329;6303:419;;;:::o;5356:587::-;5459:1;5440:21;;:7;:21;;;5432:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5510:49;5531:7;5548:1;5552:6;5510:20;:49::i;:::-;5570:22;5595:9;:18;5605:7;5595:18;;;;;;;;;;;;;;;;5570:43;;5650:6;5632:14;:24;;5624:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5769:6;5752:14;:23;5731:9;:18;5741:7;5731:18;;;;;;;;;;;;;;;:44;;;;5806:6;5790:12;;:22;;;;;;;;;;;5865:1;5839:37;;5848:7;5839:37;;;5869:6;5839:37;;;;;;:::i;:::-;;;;;;;;5887:48;5907:7;5924:1;5928:6;5887:19;:48::i;:::-;5421:522;5356:587;;:::o;6730:91::-;;;;:::o;6827:90::-;;;;:::o;88:117:1:-;197:1;194;187:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:139::-;1887:6;1882:3;1877;1871:23;1928:1;1919:6;1914:3;1910:16;1903:27;1798:139;;;:::o;1943:102::-;1984:6;2035:2;2031:7;2026:2;2019:5;2015:14;2011:28;2001:38;;1943:102;;;:::o;2051:377::-;2139:3;2167:39;2200:5;2167:39;:::i;:::-;2222:71;2286:6;2281:3;2222:71;:::i;:::-;2215:78;;2302:65;2360:6;2355:3;2348:4;2341:5;2337:16;2302:65;:::i;:::-;2392:29;2414:6;2392:29;:::i;:::-;2387:3;2383:39;2376:46;;2143:285;2051:377;;;;:::o;2434:313::-;2547:4;2585:2;2574:9;2570:18;2562:26;;2634:9;2628:4;2624:20;2620:1;2609:9;2605:17;2598:47;2662:78;2735:4;2726:6;2662:78;:::i;:::-;2654:86;;2434:313;;;;:::o;2753:126::-;2790:7;2830:42;2823:5;2819:54;2808:65;;2753:126;;;:::o;2885:96::-;2922:7;2951:24;2969:5;2951:24;:::i;:::-;2940:35;;2885:96;;;:::o;2987:122::-;3060:24;3078:5;3060:24;:::i;:::-;3053:5;3050:35;3040:63;;3099:1;3096;3089:12;3040:63;2987:122;:::o;3115:139::-;3161:5;3199:6;3186:20;3177:29;;3215:33;3242:5;3215:33;:::i;:::-;3115:139;;;;:::o;3260:77::-;3297:7;3326:5;3315:16;;3260:77;;;:::o;3343:122::-;3416:24;3434:5;3416:24;:::i;:::-;3409:5;3406:35;3396:63;;3455:1;3452;3445:12;3396:63;3343:122;:::o;3471:139::-;3517:5;3555:6;3542:20;3533:29;;3571:33;3598:5;3571:33;:::i;:::-;3471:139;;;;:::o;3616:474::-;3684:6;3692;3741:2;3729:9;3720:7;3716:23;3712:32;3709:119;;;3747:79;;:::i;:::-;3709:119;3867:1;3892:53;3937:7;3928:6;3917:9;3913:22;3892:53;:::i;:::-;3882:63;;3838:117;3994:2;4020:53;4065:7;4056:6;4045:9;4041:22;4020:53;:::i;:::-;4010:63;;3965:118;3616:474;;;;;:::o;4096:118::-;4183:24;4201:5;4183:24;:::i;:::-;4178:3;4171:37;4096:118;;:::o;4220:553::-;4397:4;4435:3;4424:9;4420:19;4412:27;;4449:71;4517:1;4506:9;4502:17;4493:6;4449:71;:::i;:::-;4530:72;4598:2;4587:9;4583:18;4574:6;4530:72;:::i;:::-;4612;4680:2;4669:9;4665:18;4656:6;4612:72;:::i;:::-;4694;4762:2;4751:9;4747:18;4738:6;4694:72;:::i;:::-;4220:553;;;;;;;:::o;4779:222::-;4872:4;4910:2;4899:9;4895:18;4887:26;;4923:71;4991:1;4980:9;4976:17;4967:6;4923:71;:::i;:::-;4779:222;;;;:::o;5007:329::-;5066:6;5115:2;5103:9;5094:7;5090:23;5086:32;5083:119;;;5121:79;;:::i;:::-;5083:119;5241:1;5266:53;5311:7;5302:6;5291:9;5287:22;5266:53;:::i;:::-;5256:63;;5212:117;5007:329;;;;:::o;5342:77::-;5379:7;5408:5;5397:16;;5342:77;;;:::o;5425:118::-;5512:24;5530:5;5512:24;:::i;:::-;5507:3;5500:37;5425:118;;:::o;5549:320::-;5664:4;5702:2;5691:9;5687:18;5679:26;;5715:65;5777:1;5766:9;5762:17;5753:6;5715:65;:::i;:::-;5790:72;5858:2;5847:9;5843:18;5834:6;5790:72;:::i;:::-;5549:320;;;;;:::o;5875:619::-;5952:6;5960;5968;6017:2;6005:9;5996:7;5992:23;5988:32;5985:119;;;6023:79;;:::i;:::-;5985:119;6143:1;6168:53;6213:7;6204:6;6193:9;6189:22;6168:53;:::i;:::-;6158:63;;6114:117;6270:2;6296:53;6341:7;6332:6;6321:9;6317:22;6296:53;:::i;:::-;6286:63;;6241:118;6398:2;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6369:118;5875:619;;;;;:::o;6500:222::-;6593:4;6631:2;6620:9;6616:18;6608:26;;6644:71;6712:1;6701:9;6697:17;6688:6;6644:71;:::i;:::-;6500:222;;;;:::o;6728:86::-;6763:7;6803:4;6796:5;6792:16;6781:27;;6728:86;;;:::o;6820:112::-;6903:22;6919:5;6903:22;:::i;:::-;6898:3;6891:35;6820:112;;:::o;6938:214::-;7027:4;7065:2;7054:9;7050:18;7042:26;;7078:67;7142:1;7131:9;7127:17;7118:6;7078:67;:::i;:::-;6938:214;;;;:::o;7158:329::-;7217:6;7266:2;7254:9;7245:7;7241:23;7237:32;7234:119;;;7272:79;;:::i;:::-;7234:119;7392:1;7417:53;7462:7;7453:6;7442:9;7438:22;7417:53;:::i;:::-;7407:63;;7363:117;7158:329;;;;:::o;7493:124::-;7570:6;7604:5;7598:12;7588:22;;7493:124;;;:::o;7623:194::-;7732:11;7766:6;7761:3;7754:19;7806:4;7801:3;7797:14;7782:29;;7623:194;;;;:::o;7823:142::-;7900:4;7923:3;7915:11;;7953:4;7948:3;7944:14;7936:22;;7823:142;;;:::o;7971:159::-;8045:11;8079:6;8074:3;8067:19;8119:4;8114:3;8110:14;8095:29;;7971:159;;;;:::o;8136:357::-;8214:3;8242:39;8275:5;8242:39;:::i;:::-;8297:61;8351:6;8346:3;8297:61;:::i;:::-;8290:68;;8367:65;8425:6;8420:3;8413:4;8406:5;8402:16;8367:65;:::i;:::-;8457:29;8479:6;8457:29;:::i;:::-;8452:3;8448:39;8441:46;;8218:275;8136:357;;;;:::o;8499:196::-;8588:10;8623:66;8685:3;8677:6;8623:66;:::i;:::-;8609:80;;8499:196;;;;:::o;8701:123::-;8781:4;8813;8808:3;8804:14;8796:22;;8701:123;;;:::o;8858:991::-;8997:3;9026:64;9084:5;9026:64;:::i;:::-;9106:96;9195:6;9190:3;9106:96;:::i;:::-;9099:103;;9228:3;9273:4;9265:6;9261:17;9256:3;9252:27;9303:66;9363:5;9303:66;:::i;:::-;9392:7;9423:1;9408:396;9433:6;9430:1;9427:13;9408:396;;;9504:9;9498:4;9494:20;9489:3;9482:33;9555:6;9549:13;9583:84;9662:4;9647:13;9583:84;:::i;:::-;9575:92;;9690:70;9753:6;9690:70;:::i;:::-;9680:80;;9789:4;9784:3;9780:14;9773:21;;9468:336;9455:1;9452;9448:9;9443:14;;9408:396;;;9412:14;9820:4;9813:11;;9840:3;9833:10;;9002:847;;;;;8858:991;;;;:::o;9855:1330::-;10238:4;10276:3;10265:9;10261:19;10253:27;;10326:9;10320:4;10316:20;10312:1;10301:9;10297:17;10290:47;10354:78;10427:4;10418:6;10354:78;:::i;:::-;10346:86;;10479:9;10473:4;10469:20;10464:2;10453:9;10449:18;10442:48;10507:78;10580:4;10571:6;10507:78;:::i;:::-;10499:86;;10632:9;10626:4;10622:20;10617:2;10606:9;10602:18;10595:48;10660:78;10733:4;10724:6;10660:78;:::i;:::-;10652:86;;10785:9;10779:4;10775:20;10770:2;10759:9;10755:18;10748:48;10813:78;10886:4;10877:6;10813:78;:::i;:::-;10805:86;;10901:73;10969:3;10958:9;10954:19;10945:6;10901:73;:::i;:::-;11022:9;11016:4;11012:20;11006:3;10995:9;10991:19;10984:49;11050:128;11173:4;11164:6;11050:128;:::i;:::-;11042:136;;9855:1330;;;;;;;;;:::o;11191:114::-;11258:6;11292:5;11286:12;11276:22;;11191:114;;;:::o;11311:184::-;11410:11;11444:6;11439:3;11432:19;11484:4;11479:3;11475:14;11460:29;;11311:184;;;;:::o;11501:132::-;11568:4;11591:3;11583:11;;11621:4;11616:3;11612:14;11604:22;;11501:132;;;:::o;11639:108::-;11716:24;11734:5;11716:24;:::i;:::-;11711:3;11704:37;11639:108;;:::o;11753:179::-;11822:10;11843:46;11885:3;11877:6;11843:46;:::i;:::-;11921:4;11916:3;11912:14;11898:28;;11753:179;;;;:::o;11938:113::-;12008:4;12040;12035:3;12031:14;12023:22;;11938:113;;;:::o;12087:732::-;12206:3;12235:54;12283:5;12235:54;:::i;:::-;12305:86;12384:6;12379:3;12305:86;:::i;:::-;12298:93;;12415:56;12465:5;12415:56;:::i;:::-;12494:7;12525:1;12510:284;12535:6;12532:1;12529:13;12510:284;;;12611:6;12605:13;12638:63;12697:3;12682:13;12638:63;:::i;:::-;12631:70;;12724:60;12777:6;12724:60;:::i;:::-;12714:70;;12570:224;12557:1;12554;12550:9;12545:14;;12510:284;;;12514:14;12810:3;12803:10;;12211:608;;;12087:732;;;;:::o;12825:704::-;13052:4;13090:3;13079:9;13075:19;13067:27;;13104:71;13172:1;13161:9;13157:17;13148:6;13104:71;:::i;:::-;13185:72;13253:2;13242:9;13238:18;13229:6;13185:72;:::i;:::-;13267;13335:2;13324:9;13320:18;13311:6;13267:72;:::i;:::-;13386:9;13380:4;13376:20;13371:2;13360:9;13356:18;13349:48;13414:108;13517:4;13508:6;13414:108;:::i;:::-;13406:116;;12825:704;;;;;;;:::o;13535:553::-;13712:4;13750:3;13739:9;13735:19;13727:27;;13764:71;13832:1;13821:9;13817:17;13808:6;13764:71;:::i;:::-;13845:72;13913:2;13902:9;13898:18;13889:6;13845:72;:::i;:::-;13927;13995:2;13984:9;13980:18;13971:6;13927:72;:::i;:::-;14009;14077:2;14066:9;14062:18;14053:6;14009:72;:::i;:::-;13535:553;;;;;;;:::o;14094:474::-;14162:6;14170;14219:2;14207:9;14198:7;14194:23;14190:32;14187:119;;;14225:79;;:::i;:::-;14187:119;14345:1;14370:53;14415:7;14406:6;14395:9;14391:22;14370:53;:::i;:::-;14360:63;;14316:117;14472:2;14498:53;14543:7;14534:6;14523:9;14519:22;14498:53;:::i;:::-;14488:63;;14443:118;14094:474;;;;;:::o;14574:180::-;14622:77;14619:1;14612:88;14719:4;14716:1;14709:15;14743:4;14740:1;14733:15;14760:320;14804:6;14841:1;14835:4;14831:12;14821:22;;14888:1;14882:4;14878:12;14909:18;14899:81;;14965:4;14957:6;14953:17;14943:27;;14899:81;15027:2;15019:6;15016:14;14996:18;14993:38;14990:84;;15046:18;;:::i;:::-;14990:84;14811:269;14760:320;;;:::o;15086:180::-;15134:77;15131:1;15124:88;15231:4;15228:1;15221:15;15255:4;15252:1;15245:15;15272:194;15312:4;15332:20;15350:1;15332:20;:::i;:::-;15327:25;;15366:20;15384:1;15366:20;:::i;:::-;15361:25;;15410:1;15407;15403:9;15395:17;;15434:1;15428:4;15425:11;15422:37;;;15439:18;;:::i;:::-;15422:37;15272:194;;;;:::o;15472:410::-;15512:7;15535:20;15553:1;15535:20;:::i;:::-;15530:25;;15569:20;15587:1;15569:20;:::i;:::-;15564:25;;15624:1;15621;15617:9;15646:30;15664:11;15646:30;:::i;:::-;15635:41;;15825:1;15816:7;15812:15;15809:1;15806:22;15786:1;15779:9;15759:83;15736:139;;15855:18;;:::i;:::-;15736:139;15520:362;15472:410;;;;:::o;15888:180::-;15936:77;15933:1;15926:88;16033:4;16030:1;16023:15;16057:4;16054:1;16047:15;16074:185;16114:1;16131:20;16149:1;16131:20;:::i;:::-;16126:25;;16165:20;16183:1;16165:20;:::i;:::-;16160:25;;16204:1;16194:35;;16209:18;;:::i;:::-;16194:35;16251:1;16248;16244:9;16239:14;;16074:185;;;;:::o;16265:148::-;16367:11;16404:3;16389:18;;16265:148;;;;:::o;16419:153::-;16559:5;16555:1;16547:6;16543:14;16536:29;16419:153;:::o;16578:400::-;16738:3;16759:84;16841:1;16836:3;16759:84;:::i;:::-;16752:91;;16852:93;16941:3;16852:93;:::i;:::-;16970:1;16965:3;16961:11;16954:18;;16578:400;;;:::o;16984:153::-;17124:5;17120:1;17112:6;17108:14;17101:29;16984:153;:::o;17143:400::-;17303:3;17324:84;17406:1;17401:3;17324:84;:::i;:::-;17317:91;;17417:93;17506:3;17417:93;:::i;:::-;17535:1;17530:3;17526:11;17519:18;;17143:400;;;:::o;17549:156::-;17689:8;17685:1;17677:6;17673:14;17666:32;17549:156;:::o;17711:400::-;17871:3;17892:84;17974:1;17969:3;17892:84;:::i;:::-;17885:91;;17985:93;18074:3;17985:93;:::i;:::-;18103:1;18098:3;18094:11;18087:18;;17711:400;;;:::o;18117:173::-;18257:25;18253:1;18245:6;18241:14;18234:49;18117:173;:::o;18296:402::-;18456:3;18477:85;18559:2;18554:3;18477:85;:::i;:::-;18470:92;;18571:93;18660:3;18571:93;:::i;:::-;18689:2;18684:3;18680:12;18673:19;;18296:402;;;:::o;18704:1179::-;19192:3;19214:148;19358:3;19214:148;:::i;:::-;19207:155;;19379:148;19523:3;19379:148;:::i;:::-;19372:155;;19544:148;19688:3;19544:148;:::i;:::-;19537:155;;19709:148;19853:3;19709:148;:::i;:::-;19702:155;;19874:3;19867:10;;18704:1179;;;:::o;19889:180::-;19937:77;19934:1;19927:88;20034:4;20031:1;20024:15;20058:4;20055:1;20048:15;20075:180;20123:77;20120:1;20113:88;20220:4;20217:1;20210:15;20244:4;20241:1;20234:15;20261:79;20300:7;20329:5;20318:16;;20261:79;;;:::o;20346:157::-;20451:45;20471:24;20489:5;20471:24;:::i;:::-;20451:45;:::i;:::-;20446:3;20439:58;20346:157;;:::o;20509:390::-;20615:3;20643:39;20676:5;20643:39;:::i;:::-;20698:89;20780:6;20775:3;20698:89;:::i;:::-;20691:96;;20796:65;20854:6;20849:3;20842:4;20835:5;20831:16;20796:65;:::i;:::-;20886:6;20881:3;20877:16;20870:23;;20619:280;20509:390;;;;:::o;20905:96::-;20939:8;20988:5;20983:3;20979:15;20958:36;;20905:96;;;:::o;21007:93::-;21044:7;21073:21;21088:5;21073:21;:::i;:::-;21062:32;;21007:93;;;:::o;21106:149::-;21207:41;21225:22;21241:5;21225:22;:::i;:::-;21207:41;:::i;:::-;21202:3;21195:54;21106:149;;:::o;21261:849::-;21521:3;21536:75;21607:3;21598:6;21536:75;:::i;:::-;21636:2;21631:3;21627:12;21620:19;;21656:95;21747:3;21738:6;21656:95;:::i;:::-;21649:102;;21768:95;21859:3;21850:6;21768:95;:::i;:::-;21761:102;;21873:71;21940:3;21931:6;21873:71;:::i;:::-;21969:1;21964:3;21960:11;21953:18;;21981:75;22052:3;22043:6;21981:75;:::i;:::-;22081:2;22076:3;22072:12;22065:19;;22101:3;22094:10;;21261:849;;;;;;;;:::o;22116:181::-;22256:33;22252:1;22244:6;22240:14;22233:57;22116:181;:::o;22303:366::-;22445:3;22466:67;22530:2;22525:3;22466:67;:::i;:::-;22459:74;;22542:93;22631:3;22542:93;:::i;:::-;22660:2;22655:3;22651:12;22644:19;;22303:366;;;:::o;22675:419::-;22841:4;22879:2;22868:9;22864:18;22856:26;;22928:9;22922:4;22918:20;22914:1;22903:9;22899:17;22892:47;22956:131;23082:4;22956:131;:::i;:::-;22948:139;;22675:419;;;:::o;23100:191::-;23140:3;23159:20;23177:1;23159:20;:::i;:::-;23154:25;;23193:20;23211:1;23193:20;:::i;:::-;23188:25;;23236:1;23233;23229:9;23222:16;;23257:3;23254:1;23251:10;23248:36;;;23264:18;;:::i;:::-;23248:36;23100:191;;;;:::o;23297:224::-;23437:34;23433:1;23425:6;23421:14;23414:58;23506:7;23501:2;23493:6;23489:15;23482:32;23297:224;:::o;23527:366::-;23669:3;23690:67;23754:2;23749:3;23690:67;:::i;:::-;23683:74;;23766:93;23855:3;23766:93;:::i;:::-;23884:2;23879:3;23875:12;23868:19;;23527:366;;;:::o;23899:419::-;24065:4;24103:2;24092:9;24088:18;24080:26;;24152:9;24146:4;24142:20;24138:1;24127:9;24123:17;24116:47;24180:131;24306:4;24180:131;:::i;:::-;24172:139;;23899:419;;;:::o;24324:224::-;24464:34;24460:1;24452:6;24448:14;24441:58;24533:7;24528:2;24520:6;24516:15;24509:32;24324:224;:::o;24554:366::-;24696:3;24717:67;24781:2;24776:3;24717:67;:::i;:::-;24710:74;;24793:93;24882:3;24793:93;:::i;:::-;24911:2;24906:3;24902:12;24895:19;;24554:366;;;:::o;24926:419::-;25092:4;25130:2;25119:9;25115:18;25107:26;;25179:9;25173:4;25169:20;25165:1;25154:9;25150:17;25143:47;25207:131;25333:4;25207:131;:::i;:::-;25199:139;;24926:419;;;:::o;25351:222::-;25491:34;25487:1;25479:6;25475:14;25468:58;25560:5;25555:2;25547:6;25543:15;25536:30;25351:222;:::o;25579:366::-;25721:3;25742:67;25806:2;25801:3;25742:67;:::i;:::-;25735:74;;25818:93;25907:3;25818:93;:::i;:::-;25936:2;25931:3;25927:12;25920:19;;25579:366;;;:::o;25951:419::-;26117:4;26155:2;26144:9;26140:18;26132:26;;26204:9;26198:4;26194:20;26190:1;26179:9;26175:17;26168:47;26232:131;26358:4;26232:131;:::i;:::-;26224:139;;25951:419;;;:::o;26376:225::-;26516:34;26512:1;26504:6;26500:14;26493:58;26585:8;26580:2;26572:6;26568:15;26561:33;26376:225;:::o;26607:366::-;26749:3;26770:67;26834:2;26829:3;26770:67;:::i;:::-;26763:74;;26846:93;26935:3;26846:93;:::i;:::-;26964:2;26959:3;26955:12;26948:19;;26607:366;;;:::o;26979:419::-;27145:4;27183:2;27172:9;27168:18;27160:26;;27232:9;27226:4;27222:20;27218:1;27207:9;27203:17;27196:47;27260:131;27386:4;27260:131;:::i;:::-;27252:139;;26979:419;;;:::o;27404:223::-;27544:34;27540:1;27532:6;27528:14;27521:58;27613:6;27608:2;27600:6;27596:15;27589:31;27404:223;:::o;27633:366::-;27775:3;27796:67;27860:2;27855:3;27796:67;:::i;:::-;27789:74;;27872:93;27961:3;27872:93;:::i;:::-;27990:2;27985:3;27981:12;27974:19;;27633:366;;;:::o;28005:419::-;28171:4;28209:2;28198:9;28194:18;28186:26;;28258:9;28252:4;28248:20;28244:1;28233:9;28229:17;28222:47;28286:131;28412:4;28286:131;:::i;:::-;28278:139;;28005:419;;;:::o;28430:221::-;28570:34;28566:1;28558:6;28554:14;28547:58;28639:4;28634:2;28626:6;28622:15;28615:29;28430:221;:::o;28657:366::-;28799:3;28820:67;28884:2;28879:3;28820:67;:::i;:::-;28813:74;;28896:93;28985:3;28896:93;:::i;:::-;29014:2;29009:3;29005:12;28998:19;;28657:366;;;:::o;29029:419::-;29195:4;29233:2;29222:9;29218:18;29210:26;;29282:9;29276:4;29272:20;29268:1;29257:9;29253:17;29246:47;29310:131;29436:4;29310:131;:::i;:::-;29302:139;;29029:419;;;:::o;29454:179::-;29594:31;29590:1;29582:6;29578:14;29571:55;29454:179;:::o;29639:366::-;29781:3;29802:67;29866:2;29861:3;29802:67;:::i;:::-;29795:74;;29878:93;29967:3;29878:93;:::i;:::-;29996:2;29991:3;29987:12;29980:19;;29639:366;;;:::o;30011:419::-;30177:4;30215:2;30204:9;30200:18;30192:26;;30264:9;30258:4;30254:20;30250:1;30239:9;30235:17;30228:47;30292:131;30418:4;30292:131;:::i;:::-;30284:139;;30011:419;;;:::o;30436:220::-;30576:34;30572:1;30564:6;30560:14;30553:58;30645:3;30640:2;30632:6;30628:15;30621:28;30436:220;:::o;30662:366::-;30804:3;30825:67;30889:2;30884:3;30825:67;:::i;:::-;30818:74;;30901:93;30990:3;30901:93;:::i;:::-;31019:2;31014:3;31010:12;31003:19;;30662:366;;;:::o;31034:419::-;31200:4;31238:2;31227:9;31223:18;31215:26;;31287:9;31281:4;31277:20;31273:1;31262:9;31258:17;31251:47;31315:131;31441:4;31315:131;:::i;:::-;31307:139;;31034:419;;;:::o;31459:221::-;31599:34;31595:1;31587:6;31583:14;31576:58;31668:4;31663:2;31655:6;31651:15;31644:29;31459:221;:::o;31686:366::-;31828:3;31849:67;31913:2;31908:3;31849:67;:::i;:::-;31842:74;;31925:93;32014:3;31925:93;:::i;:::-;32043:2;32038:3;32034:12;32027:19;;31686:366;;;:::o;32058:419::-;32224:4;32262:2;32251:9;32247:18;32239:26;;32311:9;32305:4;32301:20;32297:1;32286:9;32282:17;32275:47;32339:131;32465:4;32339:131;:::i;:::-;32331:139;;32058:419;;;:::o

Swarm Source

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