ERC-20
Source Code
Overview
Max Total Supply
11,874,335,009 KUI
Holders
21,529
Market
Price
$0.00 @ 0.000000 ETH
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
Diamond
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity Multiple files format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.13; pragma experimental ABIEncoderV2; /******************************************************************************\ * Author: Nick Mudge <[email protected]> (https://twitter.com/mudgen) * EIP-2535 Diamond Standard: https://eips.ethereum.org/EIPS/eip-2535 * * Implementation of a diamond. /******************************************************************************/ import "./LibDiamond.sol"; import "./LibDiamondOwnership.sol"; import "./LibERC20.sol"; import "./IDiamondLoupe.sol"; import "./IDiamondCut.sol"; import "./IERC173.sol"; import "./IERC165.sol"; import "./IERC20.sol"; contract Diamond { struct DiamondArgs { address contractOwner; string name_; string symbol_; uint8 decimal_; uint256 capSupply_; uint256 preMint; address preMintOwner; } constructor( IDiamondCut.FacetCut[] memory _diamondCut, DiamondArgs memory _args ) payable { LibDiamond.diamondCut(_diamondCut, address(0), new bytes(0)); LibDiamondOwnership.setContractOwner(_args.contractOwner); LibDiamondStorage.DiamondStorage storage ds = LibDiamondStorage.diamondStorage(); // adding ERC165 data ds.supportedInterfaces[type(IERC165).interfaceId] = true; ds.supportedInterfaces[type(IDiamondCut).interfaceId] = true; ds.supportedInterfaces[type(IDiamondLoupe).interfaceId] = true; ds.supportedInterfaces[type(IERC173).interfaceId] = true; ds.supportedInterfaces[type(IERC20).interfaceId] = true; ds._name = _args.name_; ds._symbol = _args.symbol_; ds._decimal = _args.decimal_; ds._capSupply = _args.capSupply_ * 10 **_args.decimal_; LibERC20._mint(_args.preMintOwner, _args.preMint * 10 ** _args.decimal_); } // Find facet for function that is called and execute the // function if a facet is found and return any value. fallback() external payable { LibDiamondStorage.DiamondStorage storage ds; bytes32 position = LibDiamondStorage.DIAMOND_STORAGE_POSITION; assembly { ds.slot := position } address facet = ds.selectorToFacetAndPosition[msg.sig].facetAddress; require(facet != address(0), "Diamond: Function does not exist"); assembly { calldatacopy(0, 0, calldatasize()) let result := delegatecall(gas(), facet, 0, calldatasize(), 0, 0) returndatacopy(0, 0, returndatasize()) switch result case 0 { revert(0, returndatasize()) } default { return(0, returndatasize()) } } } receive() external payable {} }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.13; pragma experimental ABIEncoderV2; /******************************************************************************\ * Author: Nick Mudge <[email protected]> (https://twitter.com/mudgen) * EIP-2535 Diamond Standard: https://eips.ethereum.org/EIPS/eip-2535 /******************************************************************************/ interface IDiamondCut { enum FacetCutAction {Add, Replace, Remove} // Add=0, Replace=1, Remove=2 struct FacetCut { address facetAddress; FacetCutAction action; bytes4[] functionSelectors; } /// @notice Add/replace/remove any number of functions and optionally execute /// a function with delegatecall /// @param _diamondCut Contains the facet addresses and function selectors /// @param _init The address of the contract or facet to execute _calldata /// @param _calldata A function call, including function selector and arguments /// _calldata is executed with delegatecall on _init function diamondCut( FacetCut[] calldata _diamondCut, address _init, bytes calldata _calldata ) external; event DiamondCut(FacetCut[] _diamondCut, address _init, bytes _calldata); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.13; pragma experimental ABIEncoderV2; /******************************************************************************\ * Author: Nick Mudge <[email protected]> (https://twitter.com/mudgen) * EIP-2535 Diamond Standard: https://eips.ethereum.org/EIPS/eip-2535 /******************************************************************************/ // A loupe is a small magnifying glass used to look at diamonds. // These functions look at diamonds interface IDiamondLoupe { /// These functions are expected to be called frequently /// by tools. struct Facet { address facetAddress; bytes4[] functionSelectors; } /// @notice Gets all facet addresses and their four byte function selectors. /// @return facets_ Facet function facets() external view returns (Facet[] memory facets_); /// @notice Gets all the function selectors supported by a specific facet. /// @param _facet The facet address. /// @return facetFunctionSelectors_ function facetFunctionSelectors(address _facet) external view returns (bytes4[] memory facetFunctionSelectors_); /// @notice Get all the facet addresses used by a diamond. /// @return facetAddresses_ function facetAddresses() external view returns (address[] memory facetAddresses_); /// @notice Gets the facet that supports the given selector. /// @dev If facet is not found return address(0). /// @param _functionSelector The function selector. /// @return facetAddress_ The facet address. function facetAddress(bytes4 _functionSelector) external view returns (address facetAddress_); }
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
pragma experimental ABIEncoderV2;
interface IERC165 {
/// @notice Query if a contract implements an interface
/// @param interfaceId The interface identifier, as specified in ERC-165
/// @dev Interface identification is specified in ERC-165. This function
/// uses less than 30,000 gas.
/// @return `true` if the contract implements `interfaceID` and
/// `interfaceID` is not 0xffffffff, `false` otherwise
function supportsInterface(bytes4 interfaceId) external view returns (bool);
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
/// @title ERC-173 Contract Ownership Standard
/// Note: the ERC-165 identifier for this interface is 0x7f5828d0
/* is ERC165 */
interface IERC173 {
/// @dev This emits when ownership of a contract changes.
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/// @notice Get the address of the owner
/// @return owner_ The address of the owner.
function owner() external view returns (address owner_);
/// @notice Set the address of the new owner of the contract
/// @dev Set _newOwner to address(0) to renounce any ownership.
/// @param _newOwner The address of the new owner of the contract
function transferOwnership(address _newOwner) external;
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)
pragma solidity ^0.8.0;
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
//event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
//event Approval(address indexed owner, address indexed spender, uint256 value);
/**
* @dev Returns the amount of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the amount of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves `amount` tokens from the caller's account to `to`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address to, uint256 amount) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transaction ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 amount) external returns (bool);
/**
* @dev Moves `amount` tokens from `from` to `to` using the
* allowance mechanism. `amount` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(address from, address to, uint256 amount) external returns (bool);
}// SPDX-License-Identifier: MIT pragma solidity ^0.8.13; pragma experimental ABIEncoderV2; /******************************************************************************\ * Author: Nick Mudge <[email protected]> (https://twitter.com/mudgen) * EIP-2535 Diamond Standard: https://eips.ethereum.org/EIPS/eip-2535 /******************************************************************************/ import "./IDiamondCut.sol"; import "./LibDiamondStorage.sol"; library LibDiamond { function enforceIsContractOwner() internal view { require(msg.sender == LibDiamondStorage.diamondStorage().contractOwner, "LibDiamond: Must be contract owner"); } event DiamondCut(IDiamondCut.FacetCut[] _diamondCut, address _init, bytes _calldata); // Internal function version of diamondCut function diamondCut( IDiamondCut.FacetCut[] memory _diamondCut, address _init, bytes memory _calldata ) internal { for (uint256 facetIndex; facetIndex < _diamondCut.length; facetIndex++) { IDiamondCut.FacetCutAction action = _diamondCut[facetIndex].action; if (action == IDiamondCut.FacetCutAction.Add) { addFunctions(_diamondCut[facetIndex].facetAddress, _diamondCut[facetIndex].functionSelectors); } else if (action == IDiamondCut.FacetCutAction.Replace) { replaceFunctions(_diamondCut[facetIndex].facetAddress, _diamondCut[facetIndex].functionSelectors); } else if (action == IDiamondCut.FacetCutAction.Remove) { removeFunctions(_diamondCut[facetIndex].facetAddress, _diamondCut[facetIndex].functionSelectors); } else { revert("LibDiamondCut: Incorrect FacetCutAction"); } } emit DiamondCut(_diamondCut, _init, _calldata); initializeDiamondCut(_init, _calldata); } function addFunctions(address _facetAddress, bytes4[] memory _functionSelectors) internal { require(_functionSelectors.length > 0, "LibDiamondCut: No selectors in facet to cut"); LibDiamondStorage.DiamondStorage storage ds = LibDiamondStorage.diamondStorage(); // uint16 selectorCount = uint16(diamondStorage().selectors.length); require(_facetAddress != address(0), "LibDiamondCut: Add facet can't be address(0)"); uint16 selectorPosition = uint16(ds.facetFunctionSelectors[_facetAddress].functionSelectors.length); // add new facet address if it does not exist if (selectorPosition == 0) { enforceHasContractCode(_facetAddress, "LibDiamondCut: New facet has no code"); ds.facetFunctionSelectors[_facetAddress].facetAddressPosition = uint16(ds.facetAddresses.length); ds.facetAddresses.push(_facetAddress); } for (uint256 selectorIndex; selectorIndex < _functionSelectors.length; selectorIndex++) { bytes4 selector = _functionSelectors[selectorIndex]; address oldFacetAddress = ds.selectorToFacetAndPosition[selector].facetAddress; require(oldFacetAddress == address(0), "LibDiamondCut: Can't add function that already exists"); ds.facetFunctionSelectors[_facetAddress].functionSelectors.push(selector); ds.selectorToFacetAndPosition[selector].facetAddress = _facetAddress; ds.selectorToFacetAndPosition[selector].functionSelectorPosition = selectorPosition; selectorPosition++; } } function replaceFunctions(address _facetAddress, bytes4[] memory _functionSelectors) internal { require(_functionSelectors.length > 0, "LibDiamondCut: No selectors in facet to cut"); LibDiamondStorage.DiamondStorage storage ds = LibDiamondStorage.diamondStorage(); require(_facetAddress != address(0), "LibDiamondCut: Add facet can't be address(0)"); uint16 selectorPosition = uint16(ds.facetFunctionSelectors[_facetAddress].functionSelectors.length); // add new facet address if it does not exist if (selectorPosition == 0) { enforceHasContractCode(_facetAddress, "LibDiamondCut: New facet has no code"); ds.facetFunctionSelectors[_facetAddress].facetAddressPosition = uint16(ds.facetAddresses.length); ds.facetAddresses.push(_facetAddress); } for (uint256 selectorIndex; selectorIndex < _functionSelectors.length; selectorIndex++) { bytes4 selector = _functionSelectors[selectorIndex]; address oldFacetAddress = ds.selectorToFacetAndPosition[selector].facetAddress; require(oldFacetAddress != _facetAddress, "LibDiamondCut: Can't replace function with same function"); removeFunction(oldFacetAddress, selector); // add function ds.selectorToFacetAndPosition[selector].functionSelectorPosition = selectorPosition; ds.facetFunctionSelectors[_facetAddress].functionSelectors.push(selector); ds.selectorToFacetAndPosition[selector].facetAddress = _facetAddress; selectorPosition++; } } function removeFunctions(address _facetAddress, bytes4[] memory _functionSelectors) internal { require(_functionSelectors.length > 0, "LibDiamondCut: No selectors in facet to cut"); LibDiamondStorage.DiamondStorage storage ds = LibDiamondStorage.diamondStorage(); // if function does not exist then do nothing and return require(_facetAddress == address(0), "LibDiamondCut: Remove facet address must be address(0)"); for (uint256 selectorIndex; selectorIndex < _functionSelectors.length; selectorIndex++) { bytes4 selector = _functionSelectors[selectorIndex]; address oldFacetAddress = ds.selectorToFacetAndPosition[selector].facetAddress; removeFunction(oldFacetAddress, selector); } } function removeFunction(address _facetAddress, bytes4 _selector) internal { LibDiamondStorage.DiamondStorage storage ds = LibDiamondStorage.diamondStorage(); require(_facetAddress != address(0), "LibDiamondCut: Can't remove function that doesn't exist"); // an immutable function is a function defined directly in a diamond require(_facetAddress != address(this), "LibDiamondCut: Can't remove immutable function"); // replace selector with last selector, then delete last selector uint256 selectorPosition = ds.selectorToFacetAndPosition[_selector].functionSelectorPosition; uint256 lastSelectorPosition = ds.facetFunctionSelectors[_facetAddress].functionSelectors.length - 1; // if not the same then replace _selector with lastSelector if (selectorPosition != lastSelectorPosition) { bytes4 lastSelector = ds.facetFunctionSelectors[_facetAddress].functionSelectors[lastSelectorPosition]; ds.facetFunctionSelectors[_facetAddress].functionSelectors[selectorPosition] = lastSelector; ds.selectorToFacetAndPosition[lastSelector].functionSelectorPosition = uint16(selectorPosition); } // delete the last selector ds.facetFunctionSelectors[_facetAddress].functionSelectors.pop(); delete ds.selectorToFacetAndPosition[_selector]; // if no more selectors for facet address then delete the facet address if (lastSelectorPosition == 0) { // replace facet address with last facet address and delete last facet address uint256 lastFacetAddressPosition = ds.facetAddresses.length - 1; uint256 facetAddressPosition = ds.facetFunctionSelectors[_facetAddress].facetAddressPosition; if (facetAddressPosition != lastFacetAddressPosition) { address lastFacetAddress = ds.facetAddresses[lastFacetAddressPosition]; ds.facetAddresses[facetAddressPosition] = lastFacetAddress; ds.facetFunctionSelectors[lastFacetAddress].facetAddressPosition = uint16(facetAddressPosition); } ds.facetAddresses.pop(); delete ds.facetFunctionSelectors[_facetAddress].facetAddressPosition; } } function initializeDiamondCut(address _init, bytes memory _calldata) internal { if (_init == address(0)) { require(_calldata.length == 0, "LibDiamondCut: _init is address(0) but_calldata is not empty"); } else { require(_calldata.length > 0, "LibDiamondCut: _calldata is empty but _init is not address(0)"); if (_init != address(this)) { enforceHasContractCode(_init, "LibDiamondCut: _init address has no code"); } (bool success, bytes memory error) = _init.delegatecall(_calldata); if (!success) { if (error.length > 0) { // bubble up the error revert(string(error)); } else { revert("LibDiamondCut: _init function reverted"); } } } } function enforceHasContractCode(address _contract, string memory _errorMessage) internal view { uint256 contractSize; assembly { contractSize := extcodesize(_contract) } require(contractSize > 0, _errorMessage); } }
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
import "./LibDiamondStorage.sol";
library LibDiamondOwnership {
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
function setContractOwner(address _newOwner) internal {
// DiamondStorage storage ds = diamondStorage();
LibDiamondStorage.DiamondStorage storage ds = LibDiamondStorage.diamondStorage();
address previousOwner = ds.contractOwner;
ds.contractOwner = _newOwner;
emit OwnershipTransferred(previousOwner, _newOwner);
}
function contractOwner() internal view returns (address contractOwner_) {
contractOwner_ = LibDiamondStorage.diamondStorage().contractOwner;
}
function enforceIsContractOwner() internal view {
require(msg.sender == LibDiamondStorage.diamondStorage().contractOwner, "LibDiamond: Must be contract owner");
}
modifier onlyContractOwner() {
enforceIsContractOwner();
_;
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;
library LibDiamondStorage{
bytes32 constant DIAMOND_STORAGE_POSITION = keccak256("diamond.standard.diamond.storage");
struct FacetAddressAndPosition {
address facetAddress;
uint16 functionSelectorPosition; // position in facetFunctionSelectors.functionSelectors array
}
struct FacetFunctionSelectors {
bytes4[] functionSelectors;
uint16 facetAddressPosition; // position of facetAddress in facetAddresses array
}
struct DiamondStorage {
/*Diamond*/
// maps function selector to the facet address and
// the position of the selector in the facetFunctionSelectors.selectors array
mapping(bytes4 => FacetAddressAndPosition) selectorToFacetAndPosition;
// maps facet addresses to function selectors
mapping(address => FacetFunctionSelectors) facetFunctionSelectors;
// facet addresses
address[] facetAddresses;
// Used to query if a contract implements an interface.
// Used to implement ERC-165.
mapping(bytes4 => bool) supportedInterfaces;
// owner of the contract
address contractOwner;
/*Diamond*/
/*erc20*/
mapping(address => uint256) _balances;
mapping(address => mapping(address => uint256)) _allowances;
uint256 _totalSupply;
uint256 _capSupply;
string _name;
string _symbol;
uint8 _decimal;
/*erc20*/
/*batchmint*/
/*
uint256 _idCounter;
mapping(address => uint256) _addressToID;
mapping(uint256 => address) _idToAddress;
*/
/*batchmint */
}
function diamondStorage() internal pure returns (DiamondStorage storage ds) {
bytes32 position = DIAMOND_STORAGE_POSITION;
assembly {
ds.slot := position
}
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
pragma experimental ABIEncoderV2;
import "./LibDiamondStorage.sol";
library LibERC20 {
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
/**
* @dev See {IERC20-allowance}.
*/
function _allowance(address owner, address spender) internal view returns (uint256) {
return LibDiamondStorage.diamondStorage()._allowances[owner][spender];
}
/**
* @dev Moves `amount` of tokens from `from` to `to`.
*
* This internal function is equivalent to {transfer}, and can be used to
* e.g. implement automatic token fees, slashing mechanisms, etc.
*
* Emits a {Transfer} event.
*
* Requirements:
*
* - `from` cannot be the zero address.
* - `to` cannot be the zero address.
* - `from` must have a balance of at least `amount`.
*/
function _transfer(
address from,
address to,
uint256 amount
) internal {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
_beforeTokenTransfer(from, to, amount);
LibDiamondStorage.DiamondStorage storage s = LibDiamondStorage.diamondStorage();
uint256 fromBalance = s._balances[from];
require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
unchecked {
s._balances[from] = fromBalance - amount;
// Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
// decrementing then incrementing.
s._balances[to] += amount;
}
emit Transfer(from, to, amount);
_afterTokenTransfer(from, to, amount);
}
/** @dev Creates `amount` tokens and assigns them to `account`, increasing
* the total supply.
*
* Emits a {Transfer} event with `from` set to the zero address.
*
* Requirements:
*
* - `account` cannot be the zero address.
*/
function _mint(address account, uint256 amount) internal {
require(account != address(0), "ERC20: mint to the zero address");
_beforeTokenTransfer(address(0), account, amount);
LibDiamondStorage.DiamondStorage storage s = LibDiamondStorage.diamondStorage();
s._totalSupply += amount;
unchecked {
// Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
s._balances[account] += amount;
}
emit Transfer(address(0), account, amount);
_afterTokenTransfer(address(0), account, amount);
}
/**
* @dev Destroys `amount` tokens from `account`, reducing the
* total supply.
*
* Emits a {Transfer} event with `to` set to the zero address.
*
* Requirements:
*
* - `account` cannot be the zero address.
* - `account` must have at least `amount` tokens.
*/
function _burn(address account, uint256 amount) internal {
require(account != address(0), "ERC20: burn from the zero address");
_beforeTokenTransfer(account, address(0), amount);
LibDiamondStorage.DiamondStorage storage s = LibDiamondStorage.diamondStorage();
uint256 accountBalance = s._balances[account];
require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
unchecked {
s._balances[account] = accountBalance - amount;
// Overflow not possible: amount <= accountBalance <= totalSupply.
s._totalSupply -= amount;
}
emit Transfer(account, address(0), amount);
_afterTokenTransfer(account, address(0), amount);
}
/**
* @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
*
* This internal function is equivalent to `approve`, and can be used to
* e.g. set automatic allowances for certain subsystems, etc.
*
* Emits an {Approval} event.
*
* Requirements:
*
* - `owner` cannot be the zero address.
* - `spender` cannot be the zero address.
*/
function _approve(
address owner,
address spender,
uint256 amount
) internal {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
LibDiamondStorage.DiamondStorage storage s = LibDiamondStorage.diamondStorage();
s._allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
/**
* @dev Updates `owner` s allowance for `spender` based on spent `amount`.
*
* Does not update the allowance amount in case of infinite allowance.
* Revert if not enough allowance is available.
*
* Might emit an {Approval} event.
*/
function _spendAllowance(
address owner,
address spender,
uint256 amount
) internal {
uint256 currentAllowance = _allowance(owner, spender);
if (currentAllowance != type(uint256).max) {
require(currentAllowance >= amount, "ERC20: insufficient allowance");
unchecked {
_approve(owner, spender, currentAllowance - amount);
}
}
}
/**
* @dev Hook that is called before any transfer of tokens. This includes
* minting and burning.
*
* Calling conditions:
*
* - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
* will be transferred to `to`.
* - when `from` is zero, `amount` tokens will be minted for `to`.
* - when `to` is zero, `amount` of ``from``'s tokens will be burned.
* - `from` and `to` are never both zero.
*
* To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
*/
function _beforeTokenTransfer(
address from,
address to,
uint256 amount
) internal {}
/**
* @dev Hook that is called after any transfer of tokens. This includes
* minting and burning.
*
* Calling conditions:
*
* - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
* has been transferred to `to`.
* - when `from` is zero, `amount` tokens have been minted for `to`.
* - when `to` is zero, `amount` of ``from``'s tokens have been burned.
* - `from` and `to` are never both zero.
*
* To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
*/
function _afterTokenTransfer(
address from,
address to,
uint256 amount
) internal {}
}
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamondCut.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"internalType":"struct IDiamondCut.FacetCut[]","name":"_diamondCut","type":"tuple[]"},{"components":[{"internalType":"address","name":"contractOwner","type":"address"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimal_","type":"uint8"},{"internalType":"uint256","name":"capSupply_","type":"uint256"},{"internalType":"uint256","name":"preMint","type":"uint256"},{"internalType":"address","name":"preMintOwner","type":"address"}],"internalType":"struct Diamond.DiamondArgs","name":"_args","type":"tuple"}],"stateMutability":"payable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
608060405260405162005f3c38038062005f3c8339818101604052810190620000299190620024b2565b620000928260008067ffffffffffffffff8111156200004d576200004c62001e77565b5b6040519080825280601f01601f191660200182016040528015620000805781602001600182028036833780820191505090505b506200044560201b620001671760201c565b620000ac8160000151620006c960201b620003961760201c565b6000620000c3620007ad60201b6200046d1760201c565b905060018160030160007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555060018160030160007f1f931c1c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555060018160030160007f48e2b093000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555060018160030160007f7f5828d0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555060018160030160007f36372b07000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff021916908315150217905550816020015181600901908162000398919062002778565b50816040015181600a019081620003b0919062002778565b50816060015181600b0160006101000a81548160ff021916908360ff1602179055508160600151600a620003e59190620029e2565b8260800151620003f6919062002a33565b81600801819055506200043c8260c001518360600151600a6200041a9190620029e2565b8460a001516200042b919062002a33565b620007da60201b6200049a1760201c565b50505062003713565b60005b8351811015620006745760008482815181106200046a576200046962002a7e565b5b6020026020010151602001519050600060028111156200048f576200048e62002aad565b5b816002811115620004a557620004a462002aad565b5b036200050557620004ff858381518110620004c557620004c462002a7e565b5b602002602001015160000151868481518110620004e757620004e662002a7e565b5b6020026020010151604001516200096660201b60201c565b6200065d565b600160028111156200051c576200051b62002aad565b5b81600281111562000532576200053162002aad565b5b0362000592576200058c85838151811062000552576200055162002a7e565b5b60200260200101516000015186848151811062000574576200057362002a7e565b5b60200260200101516040015162000e6660201b60201c565b6200065c565b600280811115620005a857620005a762002aad565b5b816002811115620005be57620005bd62002aad565b5b036200061e5762000618858381518110620005de57620005dd62002a7e565b5b6020026020010151600001518684815181106200060057620005ff62002a7e565b5b6020026020010151604001516200137760201b60201c565b6200065b565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006529062002b63565b60405180910390fd5b5b5b5080806200066b9062002b85565b91505062000448565b507f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673838383604051620006aa9392919062002e96565b60405180910390a1620006c482826200152360201b60201c565b505050565b6000620006e0620007ad60201b6200046d1760201c565b905060008160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200084c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008439062002f31565b60405180910390fd5b62000860600083836200175160201b60201c565b600062000877620007ad60201b6200046d1760201c565b9050818160070160008282546200088f919062002f53565b92505081905550818160050160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405162000945919062002f9f565b60405180910390a362000961600084846200175660201b60201c565b505050565b6000815111620009ad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009a49062003032565b60405180910390fd5b6000620009c4620007ad60201b6200046d1760201c565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000a38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a2f90620030ca565b60405180910390fd5b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050905060008161ffff160362000b885762000abc8460405180606001604052806024815260200162005f18602491396200175b60201b60201c565b81600201805490508260010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548161ffff021916908361ffff16021790555081600201849080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60005b835181101562000e5f57600084828151811062000bad5762000bac62002a7e565b5b602002602001015190506000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161462000ca4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c9b9062003162565b60405180910390fd5b8460010160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018290806001815401808255809150506001900390600052602060002090600891828204019190066004029091909190916101000a81548163ffffffff021916908360e01c021790555086856000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083856000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a81548161ffff021916908361ffff160217905550838062000e449062003192565b9450505050808062000e569062002b85565b91505062000b8b565b5050505050565b600081511162000ead576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ea49062003032565b60405180910390fd5b600062000ec4620007ad60201b6200046d1760201c565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000f38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000f2f90620030ca565b60405180910390fd5b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050905060008161ffff1603620010885762000fbc8460405180606001604052806024815260200162005f18602491396200175b60201b60201c565b81600201805490508260010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548161ffff021916908361ffff16021790555081600201849080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60005b835181101562001370576000848281518110620010ad57620010ac62002a7e565b5b602002602001015190506000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620011a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200119a9062003237565b60405180910390fd5b620011b58183620017b060201b60201c565b83856000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a81548161ffff021916908361ffff1602179055508460010160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018290806001815401808255809150506001900390600052602060002090600891828204019190066004029091909190916101000a81548163ffffffff021916908360e01c021790555086856000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508380620013559062003192565b94505050508080620013679062002b85565b9150506200108b565b5050505050565b6000815111620013be576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620013b59062003032565b60405180910390fd5b6000620013d5620007ad60201b6200046d1760201c565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161462001449576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200144090620032cf565b60405180910390fd5b60005b82518110156200151d5760008382815181106200146e576200146d62002a7e565b5b602002602001015190506000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050620015058183620017b060201b60201c565b50508080620015149062002b85565b9150506200144c565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620015a55760008151146200159f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620015969062003367565b60405180910390fd5b6200174d565b6000815111620015ec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620015e390620033ff565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146200164c576200164b8260405180606001604052806028815260200162005ef0602891396200175b60201b60201c565b5b6000808373ffffffffffffffffffffffffffffffffffffffff168360405162001676919062003463565b600060405180830381855af49150503d8060008114620016b3576040519150601f19603f3d011682016040523d82523d6000602084013e620016b8565b606091505b5091509150816200174a576000815111156200170d57806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620017049190620034bd565b60405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620017419062003557565b60405180910390fd5b50505b5050565b505050565b505050565b6000823b9050600081118290620017aa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620017a19190620034bd565b60405180910390fd5b50505050565b6000620017c7620007ad60201b6200046d1760201c565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200183b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200183290620035ef565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620018ac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620018a39062003687565b60405180910390fd5b6000816000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160149054906101000a900461ffff1661ffff169050600060018360010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050620019719190620036a9565b905080821462001af85760008360010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018281548110620019d657620019d562002a7e565b5b90600052602060002090600891828204019190066004029054906101000a900460e01b9050808460010160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001848154811062001a555762001a5462002a7e565b5b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908360e01c021790555082846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a81548161ffff021916908361ffff160217905550505b8260010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180548062001b4f5762001b4e620036e4565b5b60019003818190600052602060002090600891828204019190066004026101000a81549063ffffffff02191690559055826000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a81549061ffff021916905550506000810362001e465760006001846002018054905062001c329190620036a9565b905060008460010160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900461ffff1661ffff16905081811462001da257600085600201838154811062001cb25762001cb162002a7e565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508086600201838154811062001cf95762001cf862002a7e565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818660010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548161ffff021916908361ffff160217905550505b8460020180548062001db95762001db8620036e4565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590558460010160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81549061ffff021916905550505b5050505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62001eb18262001e66565b810181811067ffffffffffffffff8211171562001ed35762001ed262001e77565b5b80604052505050565b600062001ee862001e4d565b905062001ef6828262001ea6565b919050565b600067ffffffffffffffff82111562001f195762001f1862001e77565b5b602082029050602081019050919050565b600080fd5b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062001f668262001f39565b9050919050565b62001f788162001f59565b811462001f8457600080fd5b50565b60008151905062001f988162001f6d565b92915050565b6003811062001fac57600080fd5b50565b60008151905062001fc08162001f9e565b92915050565b600067ffffffffffffffff82111562001fe45762001fe362001e77565b5b602082029050602081019050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6200202c8162001ff5565b81146200203857600080fd5b50565b6000815190506200204c8162002021565b92915050565b600062002069620020638462001fc6565b62001edc565b905080838252602082019050602084028301858111156200208f576200208e62001f2a565b5b835b81811015620020bc5780620020a788826200203b565b84526020840193505060208101905062002091565b5050509392505050565b600082601f830112620020de57620020dd62001e61565b5b8151620020f084826020860162002052565b91505092915050565b60006060828403121562002112576200211162001f2f565b5b6200211e606062001edc565b90506000620021308482850162001f87565b6000830152506020620021468482850162001faf565b602083015250604082015167ffffffffffffffff8111156200216d576200216c62001f34565b5b6200217b84828501620020c6565b60408301525092915050565b60006200219e620021988462001efb565b62001edc565b90508083825260208201905060208402830185811115620021c457620021c362001f2a565b5b835b818110156200221257805167ffffffffffffffff811115620021ed57620021ec62001e61565b5b808601620021fc8982620020f9565b85526020850194505050602081019050620021c6565b5050509392505050565b600082601f83011262002234576200223362001e61565b5b81516200224684826020860162002187565b91505092915050565b600080fd5b600067ffffffffffffffff82111562002272576200227162001e77565b5b6200227d8262001e66565b9050602081019050919050565b60005b83811015620022aa5780820151818401526020810190506200228d565b60008484015250505050565b6000620022cd620022c78462002254565b62001edc565b905082815260208101848484011115620022ec57620022eb6200224f565b5b620022f98482856200228a565b509392505050565b600082601f83011262002319576200231862001e61565b5b81516200232b848260208601620022b6565b91505092915050565b600060ff82169050919050565b6200234c8162002334565b81146200235857600080fd5b50565b6000815190506200236c8162002341565b92915050565b6000819050919050565b620023878162002372565b81146200239357600080fd5b50565b600081519050620023a7816200237c565b92915050565b600060e08284031215620023c657620023c562001f2f565b5b620023d260e062001edc565b90506000620023e48482850162001f87565b600083015250602082015167ffffffffffffffff8111156200240b576200240a62001f34565b5b620024198482850162002301565b602083015250604082015167ffffffffffffffff81111562002440576200243f62001f34565b5b6200244e8482850162002301565b604083015250606062002464848285016200235b565b60608301525060806200247a8482850162002396565b60808301525060a0620024908482850162002396565b60a08301525060c0620024a68482850162001f87565b60c08301525092915050565b60008060408385031215620024cc57620024cb62001e57565b5b600083015167ffffffffffffffff811115620024ed57620024ec62001e5c565b5b620024fb858286016200221c565b925050602083015167ffffffffffffffff8111156200251f576200251e62001e5c565b5b6200252d85828601620023ad565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200258a57607f821691505b602082108103620025a0576200259f62002542565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200260a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620025cb565b620026168683620025cb565b95508019841693508086168417925050509392505050565b6000819050919050565b600062002659620026536200264d8462002372565b6200262e565b62002372565b9050919050565b6000819050919050565b620026758362002638565b6200268d620026848262002660565b848454620025d8565b825550505050565b600090565b620026a462002695565b620026b18184846200266a565b505050565b5b81811015620026d957620026cd6000826200269a565b600181019050620026b7565b5050565b601f8211156200272857620026f281620025a6565b620026fd84620025bb565b810160208510156200270d578190505b620027256200271c85620025bb565b830182620026b6565b50505b505050565b600082821c905092915050565b60006200274d600019846008026200272d565b1980831691505092915050565b60006200276883836200273a565b9150826002028217905092915050565b620027838262002537565b67ffffffffffffffff8111156200279f576200279e62001e77565b5b620027ab825462002571565b620027b8828285620026dd565b600060209050601f831160018114620027f05760008415620027db578287015190505b620027e785826200275a565b86555062002857565b601f1984166200280086620025a6565b60005b828110156200282a5784890151825560018201915060208501945060208101905062002803565b868310156200284a578489015162002846601f8916826200273a565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620028ed57808604811115620028c557620028c46200285f565b5b6001851615620028d55780820291505b8081029050620028e5856200288e565b9450620028a5565b94509492505050565b600082620029085760019050620029db565b81620029185760009050620029db565b81600181146200293157600281146200293c5762002972565b6001915050620029db565b60ff8411156200295157620029506200285f565b5b8360020a9150848211156200296b576200296a6200285f565b5b50620029db565b5060208310610133831016604e8410600b8410161715620029ac5782820a905083811115620029a657620029a56200285f565b5b620029db565b620029bb84848460016200289b565b92509050818404811115620029d557620029d46200285f565b5b81810290505b9392505050565b6000620029ef8262002372565b9150620029fc8362002334565b925062002a2b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620028f6565b905092915050565b600062002a408262002372565b915062002a4d8362002372565b925082820262002a5d8162002372565b9150828204841483151762002a775762002a766200285f565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600082825260208201905092915050565b7f4c69624469616d6f6e644375743a20496e636f7272656374204661636574437560008201527f74416374696f6e00000000000000000000000000000000000000000000000000602082015250565b600062002b4b60278362002adc565b915062002b588262002aed565b604082019050919050565b6000602082019050818103600083015262002b7e8162002b3c565b9050919050565b600062002b928262002372565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820362002bc75762002bc66200285f565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b62002c098162001f59565b82525050565b6003811062002c235762002c2262002aad565b5b50565b600081905062002c368262002c0f565b919050565b600062002c488262002c26565b9050919050565b62002c5a8162002c3b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b62002c978162001ff5565b82525050565b600062002cab838362002c8c565b60208301905092915050565b6000602082019050919050565b600062002cd18262002c60565b62002cdd818562002c6b565b935062002cea8362002c7c565b8060005b8381101562002d2157815162002d05888262002c9d565b975062002d128362002cb7565b92505060018101905062002cee565b5085935050505092915050565b600060608301600083015162002d48600086018262002bfe565b50602083015162002d5d602086018262002c4f565b506040830151848203604086015262002d77828262002cc4565b9150508091505092915050565b600062002d92838362002d2e565b905092915050565b6000602082019050919050565b600062002db48262002bd2565b62002dc0818562002bdd565b93508360208202850162002dd48562002bee565b8060005b8581101562002e16578484038952815162002df4858262002d84565b945062002e018362002d9a565b925060208a0199505060018101905062002dd8565b50829750879550505050505092915050565b62002e338162001f59565b82525050565b600081519050919050565b600082825260208201905092915050565b600062002e628262002e39565b62002e6e818562002e44565b935062002e808185602086016200228a565b62002e8b8162001e66565b840191505092915050565b6000606082019050818103600083015262002eb2818662002da7565b905062002ec3602083018562002e28565b818103604083015262002ed7818462002e55565b9050949350505050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062002f19601f8362002adc565b915062002f268262002ee1565b602082019050919050565b6000602082019050818103600083015262002f4c8162002f0a565b9050919050565b600062002f608262002372565b915062002f6d8362002372565b925082820190508082111562002f885762002f876200285f565b5b92915050565b62002f998162002372565b82525050565b600060208201905062002fb6600083018462002f8e565b92915050565b7f4c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e206660008201527f6163657420746f20637574000000000000000000000000000000000000000000602082015250565b60006200301a602b8362002adc565b9150620030278262002fbc565b604082019050919050565b600060208201905081810360008301526200304d816200300b565b9050919050565b7f4c69624469616d6f6e644375743a204164642066616365742063616e2774206260008201527f6520616464726573732830290000000000000000000000000000000000000000602082015250565b6000620030b2602c8362002adc565b9150620030bf8262003054565b604082019050919050565b60006020820190508181036000830152620030e581620030a3565b9050919050565b7f4c69624469616d6f6e644375743a2043616e2774206164642066756e6374696f60008201527f6e207468617420616c7265616479206578697374730000000000000000000000602082015250565b60006200314a60358362002adc565b91506200315782620030ec565b604082019050919050565b600060208201905081810360008301526200317d816200313b565b9050919050565b600061ffff82169050919050565b60006200319f8262003184565b915061ffff8203620031b657620031b56200285f565b5b600182019050919050565b7f4c69624469616d6f6e644375743a2043616e2774207265706c6163652066756e60008201527f6374696f6e20776974682073616d652066756e6374696f6e0000000000000000602082015250565b60006200321f60388362002adc565b91506200322c82620031c1565b604082019050919050565b60006020820190508181036000830152620032528162003210565b9050919050565b7f4c69624469616d6f6e644375743a2052656d6f7665206661636574206164647260008201527f657373206d757374206265206164647265737328302900000000000000000000602082015250565b6000620032b760368362002adc565b9150620032c48262003259565b604082019050919050565b60006020820190508181036000830152620032ea81620032a8565b9050919050565b7f4c69624469616d6f6e644375743a205f696e697420697320616464726573732860008201527f3029206275745f63616c6c64617461206973206e6f7420656d70747900000000602082015250565b60006200334f603c8362002adc565b91506200335c82620032f1565b604082019050919050565b60006020820190508181036000830152620033828162003340565b9050919050565b7f4c69624469616d6f6e644375743a205f63616c6c6461746120697320656d707460008201527f7920627574205f696e6974206973206e6f742061646472657373283029000000602082015250565b6000620033e7603d8362002adc565b9150620033f48262003389565b604082019050919050565b600060208201905081810360008301526200341a81620033d8565b9050919050565b600081905092915050565b6000620034398262002e39565b62003445818562003421565b9350620034578185602086016200228a565b80840191505092915050565b60006200347182846200342c565b915081905092915050565b6000620034898262002537565b62003495818562002adc565b9350620034a78185602086016200228a565b620034b28162001e66565b840191505092915050565b60006020820190508181036000830152620034d981846200347c565b905092915050565b7f4c69624469616d6f6e644375743a205f696e69742066756e6374696f6e20726560008201527f7665727465640000000000000000000000000000000000000000000000000000602082015250565b60006200353f60268362002adc565b91506200354c82620034e1565b604082019050919050565b60006020820190508181036000830152620035728162003530565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f76652066756e6360008201527f74696f6e207468617420646f65736e2774206578697374000000000000000000602082015250565b6000620035d760378362002adc565b9150620035e48262003579565b604082019050919050565b600060208201905081810360008301526200360a81620035c8565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f766520696d6d7560008201527f7461626c652066756e6374696f6e000000000000000000000000000000000000602082015250565b60006200366f602e8362002adc565b91506200367c8262003611565b604082019050919050565b60006020820190508181036000830152620036a28162003660565b9050919050565b6000620036b68262002372565b9150620036c38362002372565b9250828203905081811115620036de57620036dd6200285f565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6127cd80620037236000396000f3fe60806040523661000b57005b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c9050809150600082600001600080357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610141576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161013890611a7f565b60405180910390fd5b3660008037600080366000845af43d6000803e8060008114610162573d6000f35b3d6000fd5b60005b835181101561034b57600084828151811061018857610187611a9f565b5b6020026020010151602001519050600060028111156101aa576101a9611ace565b5b8160028111156101bd576101bc611ace565b5b0361020d576102088583815181106101d8576101d7611a9f565b5b6020026020010151600001518684815181106101f7576101f6611a9f565b5b602002602001015160400151610602565b610337565b6001600281111561022157610220611ace565b5b81600281111561023457610233611ace565b5b036102845761027f85838151811061024f5761024e611a9f565b5b60200260200101516000015186848151811061026e5761026d611a9f565b5b602002602001015160400151610ad9565b610336565b60028081111561029757610296611ace565b5b8160028111156102aa576102a9611ace565b5b036102fa576102f58583815181106102c5576102c4611a9f565b5b6020026020010151600001518684815181106102e4576102e3611a9f565b5b602002602001015160400151610fb9565b610335565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032c90611b6f565b60405180910390fd5b5b5b50808061034390611bc8565b91505061016a565b507f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67383838360405161037f93929190611f34565b60405180910390a16103918282611143565b505050565b60006103a061046d565b905060008160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050090611fc5565b60405180910390fd5b61051560008383611355565b600061051f61046d565b9050818160070160008282546105359190611fe5565b92505081905550818160050160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516105e99190612028565b60405180910390a36105fd6000848461135a565b505050565b6000815111610646576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063d906120b5565b60405180910390fd5b600061065061046d565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b890612147565b60405180910390fd5b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050905060008161ffff16036108075761073b846040518060600160405280602481526020016127746024913961135f565b81600201805490508260010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548161ffff021916908361ffff16021790555081600201849080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60005b8351811015610ad257600084828151811061082857610827611a9f565b5b602002602001015190506000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461091c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610913906121d9565b60405180910390fd5b8460010160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018290806001815401808255809150506001900390600052602060002090600891828204019190066004029091909190916101000a81548163ffffffff021916908360e01c021790555086856000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083856000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a81548161ffff021916908361ffff1602179055508380610aba90612207565b94505050508080610aca90611bc8565b91505061080a565b5050505050565b6000815111610b1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b14906120b5565b60405180910390fd5b6000610b2761046d565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8f90612147565b60405180910390fd5b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050905060008161ffff1603610cde57610c12846040518060600160405280602481526020016127746024913961135f565b81600201805490508260010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548161ffff021916908361ffff16021790555081600201849080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60005b8351811015610fb2576000848281518110610cff57610cfe611a9f565b5b602002602001015190506000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610df2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de9906122a3565b60405180910390fd5b610dfc81836113b1565b83856000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a81548161ffff021916908361ffff1602179055508460010160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018290806001815401808255809150506001900390600052602060002090600891828204019190066004029091909190916101000a81548163ffffffff021916908360e01c021790555086856000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508380610f9a90612207565b94505050508080610faa90611bc8565b915050610ce1565b5050505050565b6000815111610ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff4906120b5565b60405180910390fd5b600061100761046d565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611078576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106f90612335565b60405180910390fd5b60005b825181101561113d57600083828151811061109957611098611a9f565b5b602002602001015190506000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061112881836113b1565b5050808061113590611bc8565b91505061107b565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111c05760008151146111bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b2906123c7565b60405180910390fd5b611351565b6000815111611204576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fb90612459565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461125a576112598260405180606001604052806028815260200161274c6028913961135f565b5b6000808373ffffffffffffffffffffffffffffffffffffffff168360405161128291906124b5565b600060405180830381855af49150503d80600081146112bd576040519150601f19603f3d011682016040523d82523d6000602084013e6112c2565b606091505b50915091508161134e5760008151111561131357806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130a9190612510565b60405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611345906125a4565b60405180910390fd5b50505b5050565b505050565b505050565b6000823b90506000811182906113ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a29190612510565b60405180910390fd5b50505050565b60006113bb61046d565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361142c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142390612636565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361149a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611491906126c8565b60405180910390fd5b6000816000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160149054906101000a900461ffff1661ffff169050600060018360010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905061155d91906126e8565b90508082146116dd5760008360010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000182815481106115be576115bd611a9f565b5b90600052602060002090600891828204019190066004029054906101000a900460e01b9050808460010160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001848154811061163a57611639611a9f565b5b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908360e01c021790555082846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a81548161ffff021916908361ffff160217905550505b8260010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054806117315761173061271c565b5b60019003818190600052602060002090600891828204019190066004026101000a81549063ffffffff02191690559055826000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a81549061ffff0219169055505060008103611a1b5760006001846002018054905061181191906126e8565b905060008460010160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900461ffff1661ffff16905081811461197a57600085600201838154811061188d5761188c611a9f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050808660020183815481106118d1576118d0611a9f565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818660010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548161ffff021916908361ffff160217905550505b8460020180548061198e5761198d61271c565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590558460010160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81549061ffff021916905550505b5050505050565b600082825260208201905092915050565b7f4469616d6f6e643a2046756e6374696f6e20646f6573206e6f74206578697374600082015250565b6000611a69602083611a22565b9150611a7482611a33565b602082019050919050565b60006020820190508181036000830152611a9881611a5c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4c69624469616d6f6e644375743a20496e636f7272656374204661636574437560008201527f74416374696f6e00000000000000000000000000000000000000000000000000602082015250565b6000611b59602783611a22565b9150611b6482611afd565b604082019050919050565b60006020820190508181036000830152611b8881611b4c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000611bd382611bbe565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611c0557611c04611b8f565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611c6782611c3c565b9050919050565b611c7781611c5c565b82525050565b60038110611c8e57611c8d611ace565b5b50565b6000819050611c9f82611c7d565b919050565b6000611caf82611c91565b9050919050565b611cbf81611ca4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611d2681611cf1565b82525050565b6000611d388383611d1d565b60208301905092915050565b6000602082019050919050565b6000611d5c82611cc5565b611d668185611cd0565b9350611d7183611ce1565b8060005b83811015611da2578151611d898882611d2c565b9750611d9483611d44565b925050600181019050611d75565b5085935050505092915050565b6000606083016000830151611dc76000860182611c6e565b506020830151611dda6020860182611cb6565b5060408301518482036040860152611df28282611d51565b9150508091505092915050565b6000611e0b8383611daf565b905092915050565b6000602082019050919050565b6000611e2b82611c10565b611e358185611c1b565b935083602082028501611e4785611c2c565b8060005b85811015611e835784840389528151611e648582611dff565b9450611e6f83611e13565b925060208a01995050600181019050611e4b565b50829750879550505050505092915050565b611e9e81611c5c565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611ede578082015181840152602081019050611ec3565b60008484015250505050565b6000601f19601f8301169050919050565b6000611f0682611ea4565b611f108185611eaf565b9350611f20818560208601611ec0565b611f2981611eea565b840191505092915050565b60006060820190508181036000830152611f4e8186611e20565b9050611f5d6020830185611e95565b8181036040830152611f6f8184611efb565b9050949350505050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000611faf601f83611a22565b9150611fba82611f79565b602082019050919050565b60006020820190508181036000830152611fde81611fa2565b9050919050565b6000611ff082611bbe565b9150611ffb83611bbe565b925082820190508082111561201357612012611b8f565b5b92915050565b61202281611bbe565b82525050565b600060208201905061203d6000830184612019565b92915050565b7f4c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e206660008201527f6163657420746f20637574000000000000000000000000000000000000000000602082015250565b600061209f602b83611a22565b91506120aa82612043565b604082019050919050565b600060208201905081810360008301526120ce81612092565b9050919050565b7f4c69624469616d6f6e644375743a204164642066616365742063616e2774206260008201527f6520616464726573732830290000000000000000000000000000000000000000602082015250565b6000612131602c83611a22565b915061213c826120d5565b604082019050919050565b6000602082019050818103600083015261216081612124565b9050919050565b7f4c69624469616d6f6e644375743a2043616e2774206164642066756e6374696f60008201527f6e207468617420616c7265616479206578697374730000000000000000000000602082015250565b60006121c3603583611a22565b91506121ce82612167565b604082019050919050565b600060208201905081810360008301526121f2816121b6565b9050919050565b600061ffff82169050919050565b6000612212826121f9565b915061ffff820361222657612225611b8f565b5b600182019050919050565b7f4c69624469616d6f6e644375743a2043616e2774207265706c6163652066756e60008201527f6374696f6e20776974682073616d652066756e6374696f6e0000000000000000602082015250565b600061228d603883611a22565b915061229882612231565b604082019050919050565b600060208201905081810360008301526122bc81612280565b9050919050565b7f4c69624469616d6f6e644375743a2052656d6f7665206661636574206164647260008201527f657373206d757374206265206164647265737328302900000000000000000000602082015250565b600061231f603683611a22565b915061232a826122c3565b604082019050919050565b6000602082019050818103600083015261234e81612312565b9050919050565b7f4c69624469616d6f6e644375743a205f696e697420697320616464726573732860008201527f3029206275745f63616c6c64617461206973206e6f7420656d70747900000000602082015250565b60006123b1603c83611a22565b91506123bc82612355565b604082019050919050565b600060208201905081810360008301526123e0816123a4565b9050919050565b7f4c69624469616d6f6e644375743a205f63616c6c6461746120697320656d707460008201527f7920627574205f696e6974206973206e6f742061646472657373283029000000602082015250565b6000612443603d83611a22565b915061244e826123e7565b604082019050919050565b6000602082019050818103600083015261247281612436565b9050919050565b600081905092915050565b600061248f82611ea4565b6124998185612479565b93506124a9818560208601611ec0565b80840191505092915050565b60006124c18284612484565b915081905092915050565b600081519050919050565b60006124e2826124cc565b6124ec8185611a22565b93506124fc818560208601611ec0565b61250581611eea565b840191505092915050565b6000602082019050818103600083015261252a81846124d7565b905092915050565b7f4c69624469616d6f6e644375743a205f696e69742066756e6374696f6e20726560008201527f7665727465640000000000000000000000000000000000000000000000000000602082015250565b600061258e602683611a22565b915061259982612532565b604082019050919050565b600060208201905081810360008301526125bd81612581565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f76652066756e6360008201527f74696f6e207468617420646f65736e2774206578697374000000000000000000602082015250565b6000612620603783611a22565b915061262b826125c4565b604082019050919050565b6000602082019050818103600083015261264f81612613565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f766520696d6d7560008201527f7461626c652066756e6374696f6e000000000000000000000000000000000000602082015250565b60006126b2602e83611a22565b91506126bd82612656565b604082019050919050565b600060208201905081810360008301526126e1816126a5565b9050919050565b60006126f382611bbe565b91506126fe83611bbe565b925082820390508181111561271657612715611b8f565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfe4c69624469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f64654c69624469616d6f6e644375743a204e657720666163657420686173206e6f20636f6465a26469706673582212207b3b96784c1dd0a3cc59b51660077845077cdbdeef1657aee98ec90b15ba660b64736f6c634300081100334c69624469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f64654c69624469616d6f6e644375743a204e657720666163657420686173206e6f20636f646500000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000003400000000000000000000000000000000000000000000000000000000000000520000000000000000000000000d9acb07755309225208e64263d8ba4b601452a8e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000011f931c1c00000000000000000000000000000000000000000000000000000000000000000000000000000000390293ccb1eba3ef1c6be893d4d43dde635e7ed30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000057a0ed62700000000000000000000000000000000000000000000000000000000adfca15e0000000000000000000000000000000000000000000000000000000052ef6b2c00000000000000000000000000000000000000000000000000000000cdffacc60000000000000000000000000000000000000000000000000000000001ffc9a700000000000000000000000000000000000000000000000000000000000000000000000000000000e282313dfe39b6c2dbf6b5d69eda4c74d2688e49000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000003f2fde38b000000000000000000000000000000000000000000000000000000008da5cb5b00000000000000000000000000000000000000000000000000000000e0e3671c0000000000000000000000000000000000000000000000000000000000000000000000000000000082e166d8f431429b597bd4c2a3488eb719ab41e500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000b06fdde030000000000000000000000000000000000000000000000000000000095d89b4100000000000000000000000000000000000000000000000000000000313ce5670000000000000000000000000000000000000000000000000000000018160ddd0000000000000000000000000000000000000000000000000000000070a0823100000000000000000000000000000000000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000095ea7b300000000000000000000000000000000000000000000000000000000dd62ed3e0000000000000000000000000000000000000000000000000000000023b872dd000000000000000000000000000000000000000000000000000000003950935100000000000000000000000000000000000000000000000000000000a457c2d70000000000000000000000000000000000000000000000000000000000000000000000000000000093150a4988f2514a1a5b35b63586f764bd837aec000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001a4fbc6600000000000000000000000000000000000000000000000000000000000000000000000000000000003e819ebe0f0f89dddcb5516f9cb669cc33ddfc900000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000174876e8000000000000000000000000000000000000000000000000000000000181914ab000000000000000000000000003e819ebe0f0f89dddcb5516f9cb669cc33ddfc900000000000000000000000000000000000000000000000000000000000000076b75692e6574680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034b55490000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x60806040523661000b57005b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c9050809150600082600001600080357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610141576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161013890611a7f565b60405180910390fd5b3660008037600080366000845af43d6000803e8060008114610162573d6000f35b3d6000fd5b60005b835181101561034b57600084828151811061018857610187611a9f565b5b6020026020010151602001519050600060028111156101aa576101a9611ace565b5b8160028111156101bd576101bc611ace565b5b0361020d576102088583815181106101d8576101d7611a9f565b5b6020026020010151600001518684815181106101f7576101f6611a9f565b5b602002602001015160400151610602565b610337565b6001600281111561022157610220611ace565b5b81600281111561023457610233611ace565b5b036102845761027f85838151811061024f5761024e611a9f565b5b60200260200101516000015186848151811061026e5761026d611a9f565b5b602002602001015160400151610ad9565b610336565b60028081111561029757610296611ace565b5b8160028111156102aa576102a9611ace565b5b036102fa576102f58583815181106102c5576102c4611a9f565b5b6020026020010151600001518684815181106102e4576102e3611a9f565b5b602002602001015160400151610fb9565b610335565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032c90611b6f565b60405180910390fd5b5b5b50808061034390611bc8565b91505061016a565b507f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67383838360405161037f93929190611f34565b60405180910390a16103918282611143565b505050565b60006103a061046d565b905060008160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050090611fc5565b60405180910390fd5b61051560008383611355565b600061051f61046d565b9050818160070160008282546105359190611fe5565b92505081905550818160050160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516105e99190612028565b60405180910390a36105fd6000848461135a565b505050565b6000815111610646576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063d906120b5565b60405180910390fd5b600061065061046d565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b890612147565b60405180910390fd5b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050905060008161ffff16036108075761073b846040518060600160405280602481526020016127746024913961135f565b81600201805490508260010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548161ffff021916908361ffff16021790555081600201849080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60005b8351811015610ad257600084828151811061082857610827611a9f565b5b602002602001015190506000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461091c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610913906121d9565b60405180910390fd5b8460010160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018290806001815401808255809150506001900390600052602060002090600891828204019190066004029091909190916101000a81548163ffffffff021916908360e01c021790555086856000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083856000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a81548161ffff021916908361ffff1602179055508380610aba90612207565b94505050508080610aca90611bc8565b91505061080a565b5050505050565b6000815111610b1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b14906120b5565b60405180910390fd5b6000610b2761046d565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8f90612147565b60405180910390fd5b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050905060008161ffff1603610cde57610c12846040518060600160405280602481526020016127746024913961135f565b81600201805490508260010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548161ffff021916908361ffff16021790555081600201849080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60005b8351811015610fb2576000848281518110610cff57610cfe611a9f565b5b602002602001015190506000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610df2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de9906122a3565b60405180910390fd5b610dfc81836113b1565b83856000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a81548161ffff021916908361ffff1602179055508460010160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018290806001815401808255809150506001900390600052602060002090600891828204019190066004029091909190916101000a81548163ffffffff021916908360e01c021790555086856000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508380610f9a90612207565b94505050508080610faa90611bc8565b915050610ce1565b5050505050565b6000815111610ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff4906120b5565b60405180910390fd5b600061100761046d565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611078576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106f90612335565b60405180910390fd5b60005b825181101561113d57600083828151811061109957611098611a9f565b5b602002602001015190506000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061112881836113b1565b5050808061113590611bc8565b91505061107b565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111c05760008151146111bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b2906123c7565b60405180910390fd5b611351565b6000815111611204576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fb90612459565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461125a576112598260405180606001604052806028815260200161274c6028913961135f565b5b6000808373ffffffffffffffffffffffffffffffffffffffff168360405161128291906124b5565b600060405180830381855af49150503d80600081146112bd576040519150601f19603f3d011682016040523d82523d6000602084013e6112c2565b606091505b50915091508161134e5760008151111561131357806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130a9190612510565b60405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611345906125a4565b60405180910390fd5b50505b5050565b505050565b505050565b6000823b90506000811182906113ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a29190612510565b60405180910390fd5b50505050565b60006113bb61046d565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361142c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142390612636565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361149a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611491906126c8565b60405180910390fd5b6000816000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160149054906101000a900461ffff1661ffff169050600060018360010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905061155d91906126e8565b90508082146116dd5760008360010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000182815481106115be576115bd611a9f565b5b90600052602060002090600891828204019190066004029054906101000a900460e01b9050808460010160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001848154811061163a57611639611a9f565b5b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908360e01c021790555082846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a81548161ffff021916908361ffff160217905550505b8260010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054806117315761173061271c565b5b60019003818190600052602060002090600891828204019190066004026101000a81549063ffffffff02191690559055826000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a81549061ffff0219169055505060008103611a1b5760006001846002018054905061181191906126e8565b905060008460010160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900461ffff1661ffff16905081811461197a57600085600201838154811061188d5761188c611a9f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050808660020183815481106118d1576118d0611a9f565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818660010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548161ffff021916908361ffff160217905550505b8460020180548061198e5761198d61271c565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590558460010160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81549061ffff021916905550505b5050505050565b600082825260208201905092915050565b7f4469616d6f6e643a2046756e6374696f6e20646f6573206e6f74206578697374600082015250565b6000611a69602083611a22565b9150611a7482611a33565b602082019050919050565b60006020820190508181036000830152611a9881611a5c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4c69624469616d6f6e644375743a20496e636f7272656374204661636574437560008201527f74416374696f6e00000000000000000000000000000000000000000000000000602082015250565b6000611b59602783611a22565b9150611b6482611afd565b604082019050919050565b60006020820190508181036000830152611b8881611b4c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000611bd382611bbe565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611c0557611c04611b8f565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611c6782611c3c565b9050919050565b611c7781611c5c565b82525050565b60038110611c8e57611c8d611ace565b5b50565b6000819050611c9f82611c7d565b919050565b6000611caf82611c91565b9050919050565b611cbf81611ca4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611d2681611cf1565b82525050565b6000611d388383611d1d565b60208301905092915050565b6000602082019050919050565b6000611d5c82611cc5565b611d668185611cd0565b9350611d7183611ce1565b8060005b83811015611da2578151611d898882611d2c565b9750611d9483611d44565b925050600181019050611d75565b5085935050505092915050565b6000606083016000830151611dc76000860182611c6e565b506020830151611dda6020860182611cb6565b5060408301518482036040860152611df28282611d51565b9150508091505092915050565b6000611e0b8383611daf565b905092915050565b6000602082019050919050565b6000611e2b82611c10565b611e358185611c1b565b935083602082028501611e4785611c2c565b8060005b85811015611e835784840389528151611e648582611dff565b9450611e6f83611e13565b925060208a01995050600181019050611e4b565b50829750879550505050505092915050565b611e9e81611c5c565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611ede578082015181840152602081019050611ec3565b60008484015250505050565b6000601f19601f8301169050919050565b6000611f0682611ea4565b611f108185611eaf565b9350611f20818560208601611ec0565b611f2981611eea565b840191505092915050565b60006060820190508181036000830152611f4e8186611e20565b9050611f5d6020830185611e95565b8181036040830152611f6f8184611efb565b9050949350505050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000611faf601f83611a22565b9150611fba82611f79565b602082019050919050565b60006020820190508181036000830152611fde81611fa2565b9050919050565b6000611ff082611bbe565b9150611ffb83611bbe565b925082820190508082111561201357612012611b8f565b5b92915050565b61202281611bbe565b82525050565b600060208201905061203d6000830184612019565b92915050565b7f4c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e206660008201527f6163657420746f20637574000000000000000000000000000000000000000000602082015250565b600061209f602b83611a22565b91506120aa82612043565b604082019050919050565b600060208201905081810360008301526120ce81612092565b9050919050565b7f4c69624469616d6f6e644375743a204164642066616365742063616e2774206260008201527f6520616464726573732830290000000000000000000000000000000000000000602082015250565b6000612131602c83611a22565b915061213c826120d5565b604082019050919050565b6000602082019050818103600083015261216081612124565b9050919050565b7f4c69624469616d6f6e644375743a2043616e2774206164642066756e6374696f60008201527f6e207468617420616c7265616479206578697374730000000000000000000000602082015250565b60006121c3603583611a22565b91506121ce82612167565b604082019050919050565b600060208201905081810360008301526121f2816121b6565b9050919050565b600061ffff82169050919050565b6000612212826121f9565b915061ffff820361222657612225611b8f565b5b600182019050919050565b7f4c69624469616d6f6e644375743a2043616e2774207265706c6163652066756e60008201527f6374696f6e20776974682073616d652066756e6374696f6e0000000000000000602082015250565b600061228d603883611a22565b915061229882612231565b604082019050919050565b600060208201905081810360008301526122bc81612280565b9050919050565b7f4c69624469616d6f6e644375743a2052656d6f7665206661636574206164647260008201527f657373206d757374206265206164647265737328302900000000000000000000602082015250565b600061231f603683611a22565b915061232a826122c3565b604082019050919050565b6000602082019050818103600083015261234e81612312565b9050919050565b7f4c69624469616d6f6e644375743a205f696e697420697320616464726573732860008201527f3029206275745f63616c6c64617461206973206e6f7420656d70747900000000602082015250565b60006123b1603c83611a22565b91506123bc82612355565b604082019050919050565b600060208201905081810360008301526123e0816123a4565b9050919050565b7f4c69624469616d6f6e644375743a205f63616c6c6461746120697320656d707460008201527f7920627574205f696e6974206973206e6f742061646472657373283029000000602082015250565b6000612443603d83611a22565b915061244e826123e7565b604082019050919050565b6000602082019050818103600083015261247281612436565b9050919050565b600081905092915050565b600061248f82611ea4565b6124998185612479565b93506124a9818560208601611ec0565b80840191505092915050565b60006124c18284612484565b915081905092915050565b600081519050919050565b60006124e2826124cc565b6124ec8185611a22565b93506124fc818560208601611ec0565b61250581611eea565b840191505092915050565b6000602082019050818103600083015261252a81846124d7565b905092915050565b7f4c69624469616d6f6e644375743a205f696e69742066756e6374696f6e20726560008201527f7665727465640000000000000000000000000000000000000000000000000000602082015250565b600061258e602683611a22565b915061259982612532565b604082019050919050565b600060208201905081810360008301526125bd81612581565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f76652066756e6360008201527f74696f6e207468617420646f65736e2774206578697374000000000000000000602082015250565b6000612620603783611a22565b915061262b826125c4565b604082019050919050565b6000602082019050818103600083015261264f81612613565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f766520696d6d7560008201527f7461626c652066756e6374696f6e000000000000000000000000000000000000602082015250565b60006126b2602e83611a22565b91506126bd82612656565b604082019050919050565b600060208201905081810360008301526126e1816126a5565b9050919050565b60006126f382611bbe565b91506126fe83611bbe565b925082820390508181111561271657612715611b8f565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfe4c69624469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f64654c69624469616d6f6e644375743a204e657720666163657420686173206e6f20636f6465a26469706673582212207b3b96784c1dd0a3cc59b51660077845077cdbdeef1657aee98ec90b15ba660b64736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000003400000000000000000000000000000000000000000000000000000000000000520000000000000000000000000d9acb07755309225208e64263d8ba4b601452a8e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000011f931c1c00000000000000000000000000000000000000000000000000000000000000000000000000000000390293ccb1eba3ef1c6be893d4d43dde635e7ed30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000057a0ed62700000000000000000000000000000000000000000000000000000000adfca15e0000000000000000000000000000000000000000000000000000000052ef6b2c00000000000000000000000000000000000000000000000000000000cdffacc60000000000000000000000000000000000000000000000000000000001ffc9a700000000000000000000000000000000000000000000000000000000000000000000000000000000e282313dfe39b6c2dbf6b5d69eda4c74d2688e49000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000003f2fde38b000000000000000000000000000000000000000000000000000000008da5cb5b00000000000000000000000000000000000000000000000000000000e0e3671c0000000000000000000000000000000000000000000000000000000000000000000000000000000082e166d8f431429b597bd4c2a3488eb719ab41e500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000b06fdde030000000000000000000000000000000000000000000000000000000095d89b4100000000000000000000000000000000000000000000000000000000313ce5670000000000000000000000000000000000000000000000000000000018160ddd0000000000000000000000000000000000000000000000000000000070a0823100000000000000000000000000000000000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000095ea7b300000000000000000000000000000000000000000000000000000000dd62ed3e0000000000000000000000000000000000000000000000000000000023b872dd000000000000000000000000000000000000000000000000000000003950935100000000000000000000000000000000000000000000000000000000a457c2d70000000000000000000000000000000000000000000000000000000000000000000000000000000093150a4988f2514a1a5b35b63586f764bd837aec000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001a4fbc6600000000000000000000000000000000000000000000000000000000000000000000000000000000003e819ebe0f0f89dddcb5516f9cb669cc33ddfc900000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000174876e8000000000000000000000000000000000000000000000000000000000181914ab000000000000000000000000003e819ebe0f0f89dddcb5516f9cb669cc33ddfc900000000000000000000000000000000000000000000000000000000000000076b75692e6574680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034b55490000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _diamondCut (tuple[]):
Arg [1] : facetAddress (address): 0xd9aCb07755309225208E64263d8Ba4B601452A8e
Arg [2] : action (uint8): 0
Arg [3] : functionSelectors (bytes4[]): 0x1f931c1
Arg [1] : facetAddress (address): 0x390293cCb1EBA3EF1C6BE893d4d43dDE635e7eD3
Arg [2] : action (uint8): 0
Arg [3] : functionSelectors (bytes4[]): 0x01ffc9a
Arg [1] : facetAddress (address): 0xE282313dFe39B6C2DbF6B5D69Eda4C74D2688e49
Arg [2] : action (uint8): 0
Arg [3] : functionSelectors (bytes4[]): 0xe0e3671
Arg [1] : facetAddress (address): 0x82e166D8f431429b597BD4C2a3488EB719ab41e5
Arg [2] : action (uint8): 0
Arg [3] : functionSelectors (bytes4[]): 0xa457c2d
Arg [1] : facetAddress (address): 0x93150a4988F2514a1a5B35b63586f764bd837aec
Arg [2] : action (uint8): 0
Arg [3] : functionSelectors (bytes4[]): 0xa4fbc66
Arg [1] : _args (tuple):
Arg [1] : contractOwner (address): 0x03E819EBe0F0f89ddDcb5516F9Cb669CC33ddfc9
Arg [2] : name_ (string): kui.eth
Arg [3] : symbol_ (string): KUI
Arg [4] : decimal_ (uint8): 18
Arg [5] : capSupply_ (uint256): 100000000000
Arg [6] : preMint (uint256): 6468750000
Arg [7] : preMintOwner (address): 0x03E819EBe0F0f89ddDcb5516F9Cb669CC33ddfc9
-----Encoded View---------------
60 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000620
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [3] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000140
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000260
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000340
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000520
Arg [8] : 000000000000000000000000d9acb07755309225208e64263d8ba4b601452a8e
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [10] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [12] : 1f931c1c00000000000000000000000000000000000000000000000000000000
Arg [13] : 000000000000000000000000390293ccb1eba3ef1c6be893d4d43dde635e7ed3
Arg [14] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [15] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [16] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [17] : 7a0ed62700000000000000000000000000000000000000000000000000000000
Arg [18] : adfca15e00000000000000000000000000000000000000000000000000000000
Arg [19] : 52ef6b2c00000000000000000000000000000000000000000000000000000000
Arg [20] : cdffacc600000000000000000000000000000000000000000000000000000000
Arg [21] : 01ffc9a700000000000000000000000000000000000000000000000000000000
Arg [22] : 000000000000000000000000e282313dfe39b6c2dbf6b5d69eda4c74d2688e49
Arg [23] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [24] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [25] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [26] : f2fde38b00000000000000000000000000000000000000000000000000000000
Arg [27] : 8da5cb5b00000000000000000000000000000000000000000000000000000000
Arg [28] : e0e3671c00000000000000000000000000000000000000000000000000000000
Arg [29] : 00000000000000000000000082e166d8f431429b597bd4c2a3488eb719ab41e5
Arg [30] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [31] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [32] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [33] : 06fdde0300000000000000000000000000000000000000000000000000000000
Arg [34] : 95d89b4100000000000000000000000000000000000000000000000000000000
Arg [35] : 313ce56700000000000000000000000000000000000000000000000000000000
Arg [36] : 18160ddd00000000000000000000000000000000000000000000000000000000
Arg [37] : 70a0823100000000000000000000000000000000000000000000000000000000
Arg [38] : a9059cbb00000000000000000000000000000000000000000000000000000000
Arg [39] : 095ea7b300000000000000000000000000000000000000000000000000000000
Arg [40] : dd62ed3e00000000000000000000000000000000000000000000000000000000
Arg [41] : 23b872dd00000000000000000000000000000000000000000000000000000000
Arg [42] : 3950935100000000000000000000000000000000000000000000000000000000
Arg [43] : a457c2d700000000000000000000000000000000000000000000000000000000
Arg [44] : 00000000000000000000000093150a4988f2514a1a5b35b63586f764bd837aec
Arg [45] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [46] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [47] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [48] : a4fbc66000000000000000000000000000000000000000000000000000000000
Arg [49] : 00000000000000000000000003e819ebe0f0f89dddcb5516f9cb669cc33ddfc9
Arg [50] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [51] : 0000000000000000000000000000000000000000000000000000000000000120
Arg [52] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [53] : 000000000000000000000000000000000000000000000000000000174876e800
Arg [54] : 0000000000000000000000000000000000000000000000000000000181914ab0
Arg [55] : 00000000000000000000000003e819ebe0f0f89dddcb5516f9cb669cc33ddfc9
Arg [56] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [57] : 6b75692e65746800000000000000000000000000000000000000000000000000
Arg [58] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [59] : 4b55490000000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
657:2039:0:-:0;;;;;;;;1936:43;1989:16;134:45:8;1989:61:0;;2094:8;2083:19;;2121:13;2137:2;:29;;:38;2167:7;;;;2137:38;;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;2121:67;;2223:1;2206:19;;:5;:19;;;2198:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;2314:14;2311:1;2308;2295:34;2405:1;2402;2386:14;2383:1;2376:5;2369;2356:51;2441:16;2438:1;2435;2420:38;2478:6;2502:1;2497:66;;;;2612:16;2609:1;2602:27;2497:66;2532:16;2529:1;2522:27;812:1067:6;968:18;963:806;1001:11;:18;988:10;:31;963:806;;;1049:33;1085:11;1097:10;1085:23;;;;;;;;:::i;:::-;;;;;;;;:30;;;1049:66;;1143:30;1133:40;;;;;;;;:::i;:::-;;:6;:40;;;;;;;;:::i;:::-;;;1129:630;;1193:93;1206:11;1218:10;1206:23;;;;;;;;:::i;:::-;;;;;;;;:36;;;1244:11;1256:10;1244:23;;;;;;;;:::i;:::-;;;;;;;;:41;;;1193:12;:93::i;:::-;1129:630;;;1321:34;1311:44;;;;;;;;:::i;:::-;;:6;:44;;;;;;;;:::i;:::-;;;1307:452;;1375:97;1392:11;1404:10;1392:23;;;;;;;;:::i;:::-;;;;;;;;:36;;;1430:11;1442:10;1430:23;;;;;;;;:::i;:::-;;;;;;;;:41;;;1375:16;:97::i;:::-;1307:452;;;1507:33;1497:43;;;;;;;;:::i;:::-;;:6;:43;;;;;;;;:::i;:::-;;;1493:266;;1560:96;1576:11;1588:10;1576:23;;;;;;;;:::i;:::-;;;;;;;;:36;;;1614:11;1626:10;1614:23;;;;;;;;:::i;:::-;;;;;;;;:41;;;1560:15;:96::i;:::-;1493:266;;;1695:49;;;;;;;;;;:::i;:::-;;;;;;;;1493:266;1307:452;1129:630;1035:734;1021:12;;;;;:::i;:::-;;;;963:806;;;;1783:41;1794:11;1807:5;1814:9;1783:41;;;;;;;;:::i;:::-;;;;;;;;1834:38;1855:5;1862:9;1834:20;:38::i;:::-;812:1067;;;:::o;218:349:7:-;331:43;377:34;:32;:34::i;:::-;331:80;;421:21;445:2;:16;;;;;;;;;;;;421:40;;490:9;471:2;:16;;;:28;;;;;;;;;;;;;;;;;;550:9;514:46;;535:13;514:46;;;;;;;;;;;;272:295;;218:349;:::o;1613:197:8:-;1662:25;1699:16;134:45;1699:43;;1786:8;1775:19;;1761:43;1613:197;:::o;2141:613:9:-;2235:1;2216:21;;:7;:21;;;2208:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;2284:49;2313:1;2317:7;2326:6;2284:20;:49::i;:::-;2337:42;2382:34;:32;:34::i;:::-;2337:79;;2444:6;2426:1;:14;;;:24;;;;;;;:::i;:::-;;;;;;;;2620:6;2596:1;:11;;:20;2608:7;2596:20;;;;;;;;;;;;;;;;:30;;;;;;;;;;;2672:7;2651:37;;2668:1;2651:37;;;2681:6;2651:37;;;;;;:::i;:::-;;;;;;;;2699:48;2727:1;2731:7;2740:6;2699:19;:48::i;:::-;2198:556;2141:613;;:::o;1885:1587:6:-;2021:1;1993:18;:25;:29;1985:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;2080:43;2126:34;:32;:34::i;:::-;2080:80;;2280:1;2255:27;;:13;:27;;;2247:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;2341:23;2374:2;:25;;:40;2400:13;2374:40;;;;;;;;;;;;;;;:58;;:65;;;;2341:99;;2528:1;2508:16;:21;;;2504:290;;2545:77;2568:13;2545:77;;;;;;;;;;;;;;;;;:22;:77::i;:::-;2707:2;:17;;:24;;;;2636:2;:25;;:40;2662:13;2636:40;;;;;;;;;;;;;;;:61;;;:96;;;;;;;;;;;;;;;;;;2746:2;:17;;2769:13;2746:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2504:290;2808:21;2803:663;2847:18;:25;2831:13;:41;2803:663;;;2905:15;2923:18;2942:13;2923:33;;;;;;;;:::i;:::-;;;;;;;;2905:51;;2970:23;2996:2;:29;;:39;3026:8;2996:39;;;;;;;;;;;;;;;;;:52;;;;;;;;;;;;2970:78;;3097:1;3070:29;;:15;:29;;;3062:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;3171:2;:25;;:40;3197:13;3171:40;;;;;;;;;;;;;;;:58;;3235:8;3171:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3313:13;3258:2;:29;;:39;3288:8;3258:39;;;;;;;;;;;;;;;;;:52;;;:68;;;;;;;;;;;;;;;;;;3407:16;3340:2;:29;;:39;3370:8;3340:39;;;;;;;;;;;;;;;;;:64;;;:83;;;;;;;;;;;;;;;;;;3437:18;;;;;:::i;:::-;;;;2891:575;;2874:15;;;;;:::i;:::-;;;;2803:663;;;;1975:1497;;1885:1587;;:::o;3478:1603::-;3618:1;3590:18;:25;:29;3582:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;3677:43;3723:34;:32;:34::i;:::-;3677:80;;3800:1;3775:27;;:13;:27;;;3767:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;3861:23;3894:2;:25;;:40;3920:13;3894:40;;;;;;;;;;;;;;;:58;;:65;;;;3861:99;;4048:1;4028:16;:21;;;4024:290;;4065:77;4088:13;4065:77;;;;;;;;;;;;;;;;;:22;:77::i;:::-;4227:2;:17;;:24;;;;4156:2;:25;;:40;4182:13;4156:40;;;;;;;;;;;;;;;:61;;;:96;;;;;;;;;;;;;;;;;;4266:2;:17;;4289:13;4266:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4024:290;4328:21;4323:752;4367:18;:25;4351:13;:41;4323:752;;;4425:15;4443:18;4462:13;4443:33;;;;;;;;:::i;:::-;;;;;;;;4425:51;;4490:23;4516:2;:29;;:39;4546:8;4516:39;;;;;;;;;;;;;;;;;:52;;;;;;;;;;;;4490:78;;4609:13;4590:32;;:15;:32;;;4582:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;4697:41;4712:15;4729:8;4697:14;:41::i;:::-;4847:16;4780:2;:29;;:39;4810:8;4780:39;;;;;;;;;;;;;;;;;:64;;;:83;;;;;;;;;;;;;;;;;;4877:2;:25;;:40;4903:13;4877:40;;;;;;;;;;;;;;;:58;;4941:8;4877:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5019:13;4964:2;:29;;:39;4994:8;4964:39;;;;;;;;;;;;;;;;;:52;;;:68;;;;;;;;;;;;;;;;;;5046:18;;;;;:::i;:::-;;;;4411:664;;4394:15;;;;;:::i;:::-;;;;4323:752;;;;3572:1509;;3478:1603;;:::o;5087:774::-;5226:1;5198:18;:25;:29;5190:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;5285:43;5331:34;:32;:34::i;:::-;5285:80;;5473:1;5448:27;;:13;:27;;;5440:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;5549:21;5544:311;5588:18;:25;5572:13;:41;5544:311;;;5646:15;5664:18;5683:13;5664:33;;;;;;;;:::i;:::-;;;;;;;;5646:51;;5711:23;5737:2;:29;;:39;5767:8;5737:39;;;;;;;;;;;;;;;;;:52;;;;;;;;;;;;5711:78;;5803:41;5818:15;5835:8;5803:14;:41::i;:::-;5632:223;;5615:15;;;;;:::i;:::-;;;;5544:311;;;;5180:681;5087:774;;:::o;8126:871::-;8235:1;8218:19;;:5;:19;;;8214:777;;8281:1;8261:9;:16;:21;8253:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;8214:777;;;8405:1;8386:9;:16;:20;8378:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;8507:4;8490:22;;:5;:22;;;8486:134;;8532:73;8555:5;8532:73;;;;;;;;;;;;;;;;;:22;:73::i;:::-;8486:134;8634:12;8648:18;8670:5;:18;;8689:9;8670:29;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8633:66;;;;8718:7;8713:268;;8764:1;8749:5;:12;:16;8745:222;;;8846:5;8832:21;;;;;;;;;;;:::i;:::-;;;;;;;;8745:222;8900:48;;;;;;;;;;:::i;:::-;;;;;;;;8713:268;8364:627;;8214:777;8126:871;;:::o;5981:113:9:-;;;;:::o;6682:112::-;;;;:::o;9003:261:6:-;9107:20;9188:9;9176:22;9160:38;;9240:1;9225:12;:16;9243:13;9217:40;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;9097:167;9003:261;;:::o;5867:2253::-;5951:43;5997:34;:32;:34::i;:::-;5951:80;;6074:1;6049:27;;:13;:27;;;6041:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;6256:4;6231:30;;:13;:30;;;6223:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;6396:24;6423:2;:29;;:40;6453:9;6423:40;;;;;;;;;;;;;;;;;:65;;;;;;;;;;;;6396:92;;;;6498:28;6597:1;6529:2;:25;;:40;6555:13;6529:40;;;;;;;;;;;;;;;:58;;:65;;;;:69;;;;:::i;:::-;6498:100;;6700:20;6680:16;:40;6676:387;;6736:19;6758:2;:25;;:40;6784:13;6758:40;;;;;;;;;;;;;;;:58;;6817:20;6758:80;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6736:102;;6931:12;6852:2;:25;;:40;6878:13;6852:40;;;;;;;;;;;;;;;:58;;6911:16;6852:76;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:91;;;;;;;;;;;;;;;;;;7035:16;6957:2;:29;;:43;6987:12;6957:43;;;;;;;;;;;;;;;;;:68;;;:95;;;;;;;;;;;;;;;;;;6722:341;6676:387;7108:2;:25;;:40;7134:13;7108:40;;;;;;;;;;;;;;;:58;;:64;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7189:2;:29;;:40;7219:9;7189:40;;;;;;;;;;;;;;;;;;7182:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7348:1;7324:20;:25;7320:794;;7456:32;7518:1;7491:2;:17;;:24;;;;:28;;;;:::i;:::-;7456:63;;7533:28;7564:2;:25;;:40;7590:13;7564:40;;;;;;;;;;;;;;;:61;;;;;;;;;;;;7533:92;;;;7667:24;7643:20;:48;7639:346;;7711:24;7738:2;:17;;7756:24;7738:43;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7711:70;;7841:16;7799:2;:17;;7817:20;7799:39;;;;;;;;:::i;:::-;;;;;;;;;;:58;;;;;;;;;;;;;;;;;;7949:20;7875:2;:25;;:43;7901:16;7875:43;;;;;;;;;;;;;;;:64;;;:95;;;;;;;;;;;;;;;;;;7693:292;7639:346;7998:2;:17;;:23;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;8042:2;:25;;:40;8068:13;8042:40;;;;;;;;;;;;;;;:61;;;8035:68;;;;;;;;;;;7351:763;;7320:794;5941:2179;;;5867:2253;;:::o;7:169:10:-;91:11;125:6;120:3;113:19;165:4;160:3;156:14;141:29;;7:169;;;;:::o;182:182::-;322:34;318:1;310:6;306:14;299:58;182:182;:::o;370:366::-;512:3;533:67;597:2;592:3;533:67;:::i;:::-;526:74;;609:93;698:3;609:93;:::i;:::-;727:2;722:3;718:12;711:19;;370:366;;;:::o;742:419::-;908:4;946:2;935:9;931:18;923:26;;995:9;989:4;985:20;981:1;970:9;966:17;959:47;1023:131;1149:4;1023:131;:::i;:::-;1015:139;;742:419;;;:::o;1167:180::-;1215:77;1212:1;1205:88;1312:4;1309:1;1302:15;1336:4;1333:1;1326:15;1353:180;1401:77;1398:1;1391:88;1498:4;1495:1;1488:15;1522:4;1519:1;1512:15;1539:226;1679:34;1675:1;1667:6;1663:14;1656:58;1748:9;1743:2;1735:6;1731:15;1724:34;1539:226;:::o;1771:366::-;1913:3;1934:67;1998:2;1993:3;1934:67;:::i;:::-;1927:74;;2010:93;2099:3;2010:93;:::i;:::-;2128:2;2123:3;2119:12;2112:19;;1771:366;;;:::o;2143:419::-;2309:4;2347:2;2336:9;2332:18;2324:26;;2396:9;2390:4;2386:20;2382:1;2371:9;2367:17;2360:47;2424:131;2550:4;2424:131;:::i;:::-;2416:139;;2143:419;;;:::o;2568:180::-;2616:77;2613:1;2606:88;2713:4;2710:1;2703:15;2737:4;2734:1;2727:15;2754:77;2791:7;2820:5;2809:16;;2754:77;;;:::o;2837:233::-;2876:3;2899:24;2917:5;2899:24;:::i;:::-;2890:33;;2945:66;2938:5;2935:77;2932:103;;3015:18;;:::i;:::-;2932:103;3062:1;3055:5;3051:13;3044:20;;2837:233;;;:::o;3076:139::-;3168:6;3202:5;3196:12;3186:22;;3076:139;;;:::o;3221:209::-;3345:11;3379:6;3374:3;3367:19;3419:4;3414:3;3410:14;3395:29;;3221:209;;;;:::o;3436:157::-;3528:4;3551:3;3543:11;;3581:4;3576:3;3572:14;3564:22;;3436:157;;;:::o;3599:126::-;3636:7;3676:42;3669:5;3665:54;3654:65;;3599:126;;;:::o;3731:96::-;3768:7;3797:24;3815:5;3797:24;:::i;:::-;3786:35;;3731:96;;;:::o;3833:108::-;3910:24;3928:5;3910:24;:::i;:::-;3905:3;3898:37;3833:108;;:::o;3947:123::-;4038:1;4031:5;4028:12;4018:46;;4044:18;;:::i;:::-;4018:46;3947:123;:::o;4076:147::-;4131:7;4160:5;4149:16;;4166:51;4211:5;4166:51;:::i;:::-;4076:147;;;:::o;4229:::-;4295:9;4328:42;4364:5;4328:42;:::i;:::-;4315:55;;4229:147;;;:::o;4382:153::-;4475:53;4522:5;4475:53;:::i;:::-;4470:3;4463:66;4382:153;;:::o;4541:113::-;4607:6;4641:5;4635:12;4625:22;;4541:113;;;:::o;4660:173::-;4748:11;4782:6;4777:3;4770:19;4822:4;4817:3;4813:14;4798:29;;4660:173;;;;:::o;4839:131::-;4905:4;4928:3;4920:11;;4958:4;4953:3;4949:14;4941:22;;4839:131;;;:::o;4976:149::-;5012:7;5052:66;5045:5;5041:78;5030:89;;4976:149;;;:::o;5131:105::-;5206:23;5223:5;5206:23;:::i;:::-;5201:3;5194:36;5131:105;;:::o;5242:175::-;5309:10;5330:44;5370:3;5362:6;5330:44;:::i;:::-;5406:4;5401:3;5397:14;5383:28;;5242:175;;;;:::o;5423:112::-;5492:4;5524;5519:3;5515:14;5507:22;;5423:112;;;:::o;5569:704::-;5676:3;5705:53;5752:5;5705:53;:::i;:::-;5774:75;5842:6;5837:3;5774:75;:::i;:::-;5767:82;;5873:55;5922:5;5873:55;:::i;:::-;5951:7;5982:1;5967:281;5992:6;5989:1;5986:13;5967:281;;;6068:6;6062:13;6095:61;6152:3;6137:13;6095:61;:::i;:::-;6088:68;;6179:59;6231:6;6179:59;:::i;:::-;6169:69;;6027:221;6014:1;6011;6007:9;6002:14;;5967:281;;;5971:14;6264:3;6257:10;;5681:592;;;5569:704;;;;:::o;6345:837::-;6454:3;6490:4;6485:3;6481:14;6585:4;6578:5;6574:16;6568:23;6604:63;6661:4;6656:3;6652:14;6638:12;6604:63;:::i;:::-;6505:172;6761:4;6754:5;6750:16;6744:23;6780:79;6853:4;6848:3;6844:14;6830:12;6780:79;:::i;:::-;6687:182;6964:4;6957:5;6953:16;6947:23;7017:3;7011:4;7007:14;7000:4;6995:3;6991:14;6984:38;7043:101;7139:4;7125:12;7043:101;:::i;:::-;7035:109;;6879:276;7172:4;7165:11;;6459:723;6345:837;;;;:::o;7188:256::-;7307:10;7342:96;7434:3;7426:6;7342:96;:::i;:::-;7328:110;;7188:256;;;;:::o;7450:138::-;7545:4;7577;7572:3;7568:14;7560:22;;7450:138;;;:::o;7664:1111::-;7833:3;7862:79;7935:5;7862:79;:::i;:::-;7957:111;8061:6;8056:3;7957:111;:::i;:::-;7950:118;;8094:3;8139:4;8131:6;8127:17;8122:3;8118:27;8169:81;8244:5;8169:81;:::i;:::-;8273:7;8304:1;8289:441;8314:6;8311:1;8308:13;8289:441;;;8385:9;8379:4;8375:20;8370:3;8363:33;8436:6;8430:13;8464:114;8573:4;8558:13;8464:114;:::i;:::-;8456:122;;8601:85;8679:6;8601:85;:::i;:::-;8591:95;;8715:4;8710:3;8706:14;8699:21;;8349:381;8336:1;8333;8329:9;8324:14;;8289:441;;;8293:14;8746:4;8739:11;;8766:3;8759:10;;7838:937;;;;;7664:1111;;;;:::o;8781:118::-;8868:24;8886:5;8868:24;:::i;:::-;8863:3;8856:37;8781:118;;:::o;8905:98::-;8956:6;8990:5;8984:12;8974:22;;8905:98;;;:::o;9009:168::-;9092:11;9126:6;9121:3;9114:19;9166:4;9161:3;9157:14;9142:29;;9009:168;;;;:::o;9183:246::-;9264:1;9274:113;9288:6;9285:1;9282:13;9274:113;;;9373:1;9368:3;9364:11;9358:18;9354:1;9349:3;9345:11;9338:39;9310:2;9307:1;9303:10;9298:15;;9274:113;;;9421:1;9412:6;9407:3;9403:16;9396:27;9245:184;9183:246;;;:::o;9435:102::-;9476:6;9527:2;9523:7;9518:2;9511:5;9507:14;9503:28;9493:38;;9435:102;;;:::o;9543:373::-;9629:3;9657:38;9689:5;9657:38;:::i;:::-;9711:70;9774:6;9769:3;9711:70;:::i;:::-;9704:77;;9790:65;9848:6;9843:3;9836:4;9829:5;9825:16;9790:65;:::i;:::-;9880:29;9902:6;9880:29;:::i;:::-;9875:3;9871:39;9864:46;;9633:283;9543:373;;;;:::o;9922:780::-;10189:4;10227:2;10216:9;10212:18;10204:26;;10276:9;10270:4;10266:20;10262:1;10251:9;10247:17;10240:47;10304:158;10457:4;10448:6;10304:158;:::i;:::-;10296:166;;10472:72;10540:2;10529:9;10525:18;10516:6;10472:72;:::i;:::-;10591:9;10585:4;10581:20;10576:2;10565:9;10561:18;10554:48;10619:76;10690:4;10681:6;10619:76;:::i;:::-;10611:84;;9922:780;;;;;;:::o;10708:181::-;10848:33;10844:1;10836:6;10832:14;10825:57;10708:181;:::o;10895:366::-;11037:3;11058:67;11122:2;11117:3;11058:67;:::i;:::-;11051:74;;11134:93;11223:3;11134:93;:::i;:::-;11252:2;11247:3;11243:12;11236:19;;10895:366;;;:::o;11267:419::-;11433:4;11471:2;11460:9;11456:18;11448:26;;11520:9;11514:4;11510:20;11506:1;11495:9;11491:17;11484:47;11548:131;11674:4;11548:131;:::i;:::-;11540:139;;11267:419;;;:::o;11692:191::-;11732:3;11751:20;11769:1;11751:20;:::i;:::-;11746:25;;11785:20;11803:1;11785:20;:::i;:::-;11780:25;;11828:1;11825;11821:9;11814:16;;11849:3;11846:1;11843:10;11840:36;;;11856:18;;:::i;:::-;11840:36;11692:191;;;;:::o;11889:118::-;11976:24;11994:5;11976:24;:::i;:::-;11971:3;11964:37;11889:118;;:::o;12013:222::-;12106:4;12144:2;12133:9;12129:18;12121:26;;12157:71;12225:1;12214:9;12210:17;12201:6;12157:71;:::i;:::-;12013:222;;;;:::o;12241:230::-;12381:34;12377:1;12369:6;12365:14;12358:58;12450:13;12445:2;12437:6;12433:15;12426:38;12241:230;:::o;12477:366::-;12619:3;12640:67;12704:2;12699:3;12640:67;:::i;:::-;12633:74;;12716:93;12805:3;12716:93;:::i;:::-;12834:2;12829:3;12825:12;12818:19;;12477:366;;;:::o;12849:419::-;13015:4;13053:2;13042:9;13038:18;13030:26;;13102:9;13096:4;13092:20;13088:1;13077:9;13073:17;13066:47;13130:131;13256:4;13130:131;:::i;:::-;13122:139;;12849:419;;;:::o;13274:231::-;13414:34;13410:1;13402:6;13398:14;13391:58;13483:14;13478:2;13470:6;13466:15;13459:39;13274:231;:::o;13511:366::-;13653:3;13674:67;13738:2;13733:3;13674:67;:::i;:::-;13667:74;;13750:93;13839:3;13750:93;:::i;:::-;13868:2;13863:3;13859:12;13852:19;;13511:366;;;:::o;13883:419::-;14049:4;14087:2;14076:9;14072:18;14064:26;;14136:9;14130:4;14126:20;14122:1;14111:9;14107:17;14100:47;14164:131;14290:4;14164:131;:::i;:::-;14156:139;;13883:419;;;:::o;14308:240::-;14448:34;14444:1;14436:6;14432:14;14425:58;14517:23;14512:2;14504:6;14500:15;14493:48;14308:240;:::o;14554:366::-;14696:3;14717:67;14781:2;14776:3;14717:67;:::i;:::-;14710:74;;14793:93;14882:3;14793:93;:::i;:::-;14911:2;14906:3;14902:12;14895:19;;14554:366;;;:::o;14926:419::-;15092:4;15130:2;15119:9;15115:18;15107:26;;15179:9;15173:4;15169:20;15165:1;15154:9;15150:17;15143:47;15207:131;15333:4;15207:131;:::i;:::-;15199:139;;14926:419;;;:::o;15351:89::-;15387:7;15427:6;15420:5;15416:18;15405:29;;15351:89;;;:::o;15446:171::-;15484:3;15507:23;15524:5;15507:23;:::i;:::-;15498:32;;15552:6;15545:5;15542:17;15539:43;;15562:18;;:::i;:::-;15539:43;15609:1;15602:5;15598:13;15591:20;;15446:171;;;:::o;15623:243::-;15763:34;15759:1;15751:6;15747:14;15740:58;15832:26;15827:2;15819:6;15815:15;15808:51;15623:243;:::o;15872:366::-;16014:3;16035:67;16099:2;16094:3;16035:67;:::i;:::-;16028:74;;16111:93;16200:3;16111:93;:::i;:::-;16229:2;16224:3;16220:12;16213:19;;15872:366;;;:::o;16244:419::-;16410:4;16448:2;16437:9;16433:18;16425:26;;16497:9;16491:4;16487:20;16483:1;16472:9;16468:17;16461:47;16525:131;16651:4;16525:131;:::i;:::-;16517:139;;16244:419;;;:::o;16669:241::-;16809:34;16805:1;16797:6;16793:14;16786:58;16878:24;16873:2;16865:6;16861:15;16854:49;16669:241;:::o;16916:366::-;17058:3;17079:67;17143:2;17138:3;17079:67;:::i;:::-;17072:74;;17155:93;17244:3;17155:93;:::i;:::-;17273:2;17268:3;17264:12;17257:19;;16916:366;;;:::o;17288:419::-;17454:4;17492:2;17481:9;17477:18;17469:26;;17541:9;17535:4;17531:20;17527:1;17516:9;17512:17;17505:47;17569:131;17695:4;17569:131;:::i;:::-;17561:139;;17288:419;;;:::o;17713:247::-;17853:34;17849:1;17841:6;17837:14;17830:58;17922:30;17917:2;17909:6;17905:15;17898:55;17713:247;:::o;17966:366::-;18108:3;18129:67;18193:2;18188:3;18129:67;:::i;:::-;18122:74;;18205:93;18294:3;18205:93;:::i;:::-;18323:2;18318:3;18314:12;18307:19;;17966:366;;;:::o;18338:419::-;18504:4;18542:2;18531:9;18527:18;18519:26;;18591:9;18585:4;18581:20;18577:1;18566:9;18562:17;18555:47;18619:131;18745:4;18619:131;:::i;:::-;18611:139;;18338:419;;;:::o;18763:248::-;18903:34;18899:1;18891:6;18887:14;18880:58;18972:31;18967:2;18959:6;18955:15;18948:56;18763:248;:::o;19017:366::-;19159:3;19180:67;19244:2;19239:3;19180:67;:::i;:::-;19173:74;;19256:93;19345:3;19256:93;:::i;:::-;19374:2;19369:3;19365:12;19358:19;;19017:366;;;:::o;19389:419::-;19555:4;19593:2;19582:9;19578:18;19570:26;;19642:9;19636:4;19632:20;19628:1;19617:9;19613:17;19606:47;19670:131;19796:4;19670:131;:::i;:::-;19662:139;;19389:419;;;:::o;19814:147::-;19915:11;19952:3;19937:18;;19814:147;;;;:::o;19967:386::-;20071:3;20099:38;20131:5;20099:38;:::i;:::-;20153:88;20234:6;20229:3;20153:88;:::i;:::-;20146:95;;20250:65;20308:6;20303:3;20296:4;20289:5;20285:16;20250:65;:::i;:::-;20340:6;20335:3;20331:16;20324:23;;20075:278;19967:386;;;;:::o;20359:271::-;20489:3;20511:93;20600:3;20591:6;20511:93;:::i;:::-;20504:100;;20621:3;20614:10;;20359:271;;;;:::o;20636:99::-;20688:6;20722:5;20716:12;20706:22;;20636:99;;;:::o;20741:377::-;20829:3;20857:39;20890:5;20857:39;:::i;:::-;20912:71;20976:6;20971:3;20912:71;:::i;:::-;20905:78;;20992:65;21050:6;21045:3;21038:4;21031:5;21027:16;20992:65;:::i;:::-;21082:29;21104:6;21082:29;:::i;:::-;21077:3;21073:39;21066:46;;20833:285;20741:377;;;;:::o;21124:313::-;21237:4;21275:2;21264:9;21260:18;21252:26;;21324:9;21318:4;21314:20;21310:1;21299:9;21295:17;21288:47;21352:78;21425:4;21416:6;21352:78;:::i;:::-;21344:86;;21124:313;;;;:::o;21443:225::-;21583:34;21579:1;21571:6;21567:14;21560:58;21652:8;21647:2;21639:6;21635:15;21628:33;21443:225;:::o;21674:366::-;21816:3;21837:67;21901:2;21896:3;21837:67;:::i;:::-;21830:74;;21913:93;22002:3;21913:93;:::i;:::-;22031:2;22026:3;22022:12;22015:19;;21674:366;;;:::o;22046:419::-;22212:4;22250:2;22239:9;22235:18;22227:26;;22299:9;22293:4;22289:20;22285:1;22274:9;22270:17;22263:47;22327:131;22453:4;22327:131;:::i;:::-;22319:139;;22046:419;;;:::o;22471:242::-;22611:34;22607:1;22599:6;22595:14;22588:58;22680:25;22675:2;22667:6;22663:15;22656:50;22471:242;:::o;22719:366::-;22861:3;22882:67;22946:2;22941:3;22882:67;:::i;:::-;22875:74;;22958:93;23047:3;22958:93;:::i;:::-;23076:2;23071:3;23067:12;23060:19;;22719:366;;;:::o;23091:419::-;23257:4;23295:2;23284:9;23280:18;23272:26;;23344:9;23338:4;23334:20;23330:1;23319:9;23315:17;23308:47;23372:131;23498:4;23372:131;:::i;:::-;23364:139;;23091:419;;;:::o;23516:233::-;23656:34;23652:1;23644:6;23640:14;23633:58;23725:16;23720:2;23712:6;23708:15;23701:41;23516:233;:::o;23755:366::-;23897:3;23918:67;23982:2;23977:3;23918:67;:::i;:::-;23911:74;;23994:93;24083:3;23994:93;:::i;:::-;24112:2;24107:3;24103:12;24096:19;;23755:366;;;:::o;24127:419::-;24293:4;24331:2;24320:9;24316:18;24308:26;;24380:9;24374:4;24370:20;24366:1;24355:9;24351:17;24344:47;24408:131;24534:4;24408:131;:::i;:::-;24400:139;;24127:419;;;:::o;24552:194::-;24592:4;24612:20;24630:1;24612:20;:::i;:::-;24607:25;;24646:20;24664:1;24646:20;:::i;:::-;24641:25;;24690:1;24687;24683:9;24675:17;;24714:1;24708:4;24705:11;24702:37;;;24719:18;;:::i;:::-;24702:37;24552:194;;;;:::o;24752:180::-;24800:77;24797:1;24790:88;24897:4;24894:1;24887:15;24921:4;24918:1;24911:15
Swarm Source
ipfs://7b3b96784c1dd0a3cc59b51660077845077cdbdeef1657aee98ec90b15ba660b
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.
Add Token to MetaMask (Web3)