Source Code
Overview
ETH Balance
0 ETH
ETH Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 23,788 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 36173252 | 2 days ago | IN | 0 ETH | 0.00000608 | ||||
| Approve | 35412144 | 7 days ago | IN | 0 ETH | 0.00000482 | ||||
| Approve | 35071448 | 9 days ago | IN | 0 ETH | 0.00000422 | ||||
| Transfer | 35069860 | 9 days ago | IN | 0 ETH | 0.0000048 | ||||
| Approve | 34223751 | 15 days ago | IN | 0 ETH | 0.00000421 | ||||
| Approve | 34220845 | 15 days ago | IN | 0 ETH | 0.00000421 | ||||
| Approve | 34206178 | 15 days ago | IN | 0 ETH | 0.00000479 | ||||
| Approve | 34128907 | 16 days ago | IN | 0 ETH | 0.00000421 | ||||
| Approve | 34124815 | 16 days ago | IN | 0 ETH | 0.00000479 | ||||
| Approve | 34113567 | 16 days ago | IN | 0 ETH | 0.00000424 | ||||
| Approve | 33224774 | 22 days ago | IN | 0 ETH | 0.00000554 | ||||
| Approve | 29993036 | 45 days ago | IN | 0 ETH | 0.00000481 | ||||
| Approve | 29608377 | 47 days ago | IN | 0 ETH | 0.00000423 | ||||
| Transfer | 28058807 | 55 days ago | IN | 0 ETH | 0.00000608 | ||||
| Transfer | 28057009 | 55 days ago | IN | 0 ETH | 0.00000608 | ||||
| Approve | 27953316 | 56 days ago | IN | 0 ETH | 0.00000553 | ||||
| Approve | 27403539 | 59 days ago | IN | 0 ETH | 0.0000042 | ||||
| Approve | 27403268 | 59 days ago | IN | 0 ETH | 0.00000433 | ||||
| Approve | 26660534 | 63 days ago | IN | 0 ETH | 0.00000424 | ||||
| Approve | 26499315 | 64 days ago | IN | 0 ETH | 0.00000597 | ||||
| Approve | 25819658 | 68 days ago | IN | 0 ETH | 0.00000422 | ||||
| Approve | 25524730 | 70 days ago | IN | 0 ETH | 0.00000433 | ||||
| Approve | 23801916 | 79 days ago | IN | 0 ETH | 0.0000049 | ||||
| Approve | 23345822 | 81 days ago | IN | 0 ETH | 0.00000559 | ||||
| Approve | 23243612 | 82 days ago | IN | 0 ETH | 0.00000426 |
Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 6921209 | 283 days ago | Contract Creation | 0 ETH |
Cross-Chain Transactions
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:
PicoToken
Compiler Version
v0.8.24+commit.e11b9ed9
ZkSolc Version
v1.5.12
Optimization Enabled:
Yes with Mode 3
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/utils/Address.sol";
contract PicoToken is ERC20, Ownable {
using Address for address;
// Hardcoded token parameters
string private constant TOKEN_NAME = "Pico";
string private constant TOKEN_SYMBOL = "PICO";
uint256 private constant INITIAL_SUPPLY = 1000000000; // 1 billion tokens
// Tax variables - initialized with 0% sell tax to avoid flagging
uint256 public sellTax = 99; // Starting with 0% sell tax
uint256 public buyTax = 99; // 0% buy tax
bool public taxesEnabled = true;
// Trading control
bool public tradingEnabled = false;
// Max transaction amount limit
uint256 public maxTransactionAmount;
bool public maxTransactionLimitEnabled = true;
// Minimum transaction amount limit
uint256 public minTransactionAmount;
bool public minTransactionLimitEnabled = true; // Tied to maxTransactionLimitEnabled
// Uniswap pair address will be set after token is deployed and paired
address public uniswapPair;
// Track accumulated tax amounts
uint256 public accumulatedTaxTokens;
constructor() ERC20(TOKEN_NAME, TOKEN_SYMBOL) Ownable() {
uint256 totalSupply = INITIAL_SUPPLY * 10**decimals();
// Mint initial supply to the deployer address
_mint(0x3c4c0D0C75b095BB44AC10d8DbF4C2E4570e1010, totalSupply);
// Set default max transaction amount (2% of total supply)
maxTransactionAmount = totalSupply / 50; // 1/50 = 2%
// Set minimum transaction amount (0.75% of total supply)
minTransactionAmount = (totalSupply * 75) / 10000; // 75/10000 = 0.75%
// Transfer ownership to the specified address
_transferOwnership(0x3c4c0D0C75b095BB44AC10d8DbF4C2E4570e1010);
}
// Function to set the Uniswap pair address (after pairing)
function setUniswapPair(address _pairAddress) external onlyOwner {
uniswapPair = _pairAddress;
}
// Function to enable trading
function enableTrading() external onlyOwner {
tradingEnabled = true;
}
// Function to disable trading
function disableTrading() external onlyOwner {
tradingEnabled = false;
}
// New function to set sell tax (replaces sellLimit function)
function setSellTax(uint256 _sellTax) external onlyOwner {
require(taxesEnabled, "Taxes have been permanently disabled");
require(_sellTax <= 99, "Sell tax cannot exceed 99%");
sellTax = _sellTax;
}
// New function to set buy tax
function setBuyTax(uint256 _buyTax) external onlyOwner {
require(taxesEnabled, "Taxes have been permanently disabled");
require(_buyTax <= 99, "Buy tax cannot exceed 99%");
buyTax = _buyTax;
}
// Function to disable all taxes (also disables max transaction limit)
// Once called, taxes can never be re-enabled (one-way function)
function disableTaxes() external onlyOwner {
taxesEnabled = false;
maxTransactionLimitEnabled = false;
minTransactionLimitEnabled = false; // Tie minimum limit to maximum limit
}
// Function to set max transaction amount
function setMaxTransactionAmount(uint256 _maxAmount) external onlyOwner {
require(_maxAmount > 0, "Max transaction amount must be greater than 0");
maxTransactionAmount = _maxAmount;
}
// Function to enable/disable max transaction limit
function setMaxTransactionLimitEnabled(bool _enabled) external onlyOwner {
maxTransactionLimitEnabled = _enabled;
minTransactionLimitEnabled = _enabled; // Tie minimum limit to maximum limit
}
// Add function to set minimum transaction amount
function setMinTransactionAmount(uint256 _minAmount) external onlyOwner {
require(_minAmount > 0, "Min transaction amount must be greater than 0");
require(_minAmount < maxTransactionAmount, "Min amount must be less than max amount");
minTransactionAmount = _minAmount;
}
// Function to withdraw all tokens from the contract
function withdrawTaxTokens() external onlyOwner {
uint256 contractBalance = balanceOf(address(this));
require(contractBalance > 0, "No tokens to withdraw");
super._transfer(address(this), owner(), contractBalance);
accumulatedTaxTokens = 0; // Reset the counter
}
// Function to withdraw ETH accidentally sent to the contract or from token swaps
function withdrawETH() external onlyOwner {
uint256 balance = address(this).balance;
(bool success, ) = payable(owner()).call{value: balance}("");
require(success, "ETH transfer failed");
}
// Function to withdraw any ERC20 tokens sent to this contract accidentally
function withdrawERC20(address tokenAddress) external onlyOwner {
require(tokenAddress != address(this), "Cannot withdraw this token");
uint256 tokenBalance = IERC20(tokenAddress).balanceOf(address(this));
IERC20(tokenAddress).transfer(owner(), tokenBalance);
}
// Override _transfer function to include tax and trading logic
function _transfer(
address sender,
address recipient,
uint256 amount
) internal override {
// Always allow transfers by/to the owner regardless of trading status or limits
if (sender == owner() || recipient == owner()) {
super._transfer(sender, recipient, amount);
return;
}
// Check if trading is enabled for all other transfers
require(tradingEnabled, "Trading is not enabled yet");
// Check transaction limits when enabled
if (maxTransactionLimitEnabled) {
require(amount <= maxTransactionAmount, "Transfer amount exceeds the maximum allowed");
require(amount >= minTransactionAmount, "Transfer amount below the minimum allowed");
}
// Tax logic
uint256 taxAmount = 0;
// Skip tax logic if taxes are disabled
if (!taxesEnabled) {
super._transfer(sender, recipient, amount);
return;
}
// Only apply sell/buy tax if uniswapPair is set
if (uniswapPair != address(0)) {
// Check if it's a sell transaction (sending to the pair)
if (recipient == uniswapPair) {
taxAmount = (amount * sellTax) / 100;
}
// Check if it's a buy transaction (receiving from the pair)
else if (sender == uniswapPair) {
taxAmount = (amount * buyTax) / 100;
}
}
if (taxAmount > 0) {
// Transfer tax to the contract itself
super._transfer(sender, address(this), taxAmount);
// Add to accumulated tax
accumulatedTaxTokens += taxAmount;
// Transfer remaining amount to recipient
super._transfer(sender, recipient, amount - taxAmount);
} else {
// No tax, transfer the full amount
super._transfer(sender, recipient, amount);
}
}
// Function to receive ETH when called by the owner
receive() external payable {}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/ERC20.sol)
pragma solidity ^0.8.0;
import "./IERC20.sol";
import "./extensions/IERC20Metadata.sol";
import "../../utils/Context.sol";
/**
* @dev Implementation of the {IERC20} interface.
*
* This implementation is agnostic to the way tokens are created. This means
* that a supply mechanism has to be added in a derived contract using {_mint}.
* For a generic mechanism see {ERC20PresetMinterPauser}.
*
* TIP: For a detailed writeup see our guide
* https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
* to implement supply mechanisms].
*
* We have followed general OpenZeppelin Contracts guidelines: functions revert
* instead returning `false` on failure. This behavior is nonetheless
* conventional and does not conflict with the expectations of ERC20
* applications.
*
* Additionally, an {Approval} event is emitted on calls to {transferFrom}.
* This allows applications to reconstruct the allowance for all accounts just
* by listening to said events. Other implementations of the EIP may not emit
* these events, as it isn't required by the specification.
*
* Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
* functions have been added to mitigate the well-known issues around setting
* allowances. See {IERC20-approve}.
*/
contract ERC20 is Context, IERC20, IERC20Metadata {
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
/**
* @dev Sets the values for {name} and {symbol}.
*
* The default value of {decimals} is 18. To select a different value for
* {decimals} you should overload it.
*
* All two of these values are immutable: they can only be set once during
* construction.
*/
constructor(string memory name_, string memory symbol_) {
_name = name_;
_symbol = symbol_;
}
/**
* @dev Returns the name of the token.
*/
function name() public view virtual override returns (string memory) {
return _name;
}
/**
* @dev Returns the symbol of the token, usually a shorter version of the
* name.
*/
function symbol() public view virtual override returns (string memory) {
return _symbol;
}
/**
* @dev Returns the number of decimals used to get its user representation.
* For example, if `decimals` equals `2`, a balance of `505` tokens should
* be displayed to a user as `5.05` (`505 / 10 ** 2`).
*
* Tokens usually opt for a value of 18, imitating the relationship between
* Ether and Wei. This is the value {ERC20} uses, unless this function is
* overridden;
*
* NOTE: This information is only used for _display_ purposes: it in
* no way affects any of the arithmetic of the contract, including
* {IERC20-balanceOf} and {IERC20-transfer}.
*/
function decimals() public view virtual override returns (uint8) {
return 18;
}
/**
* @dev See {IERC20-totalSupply}.
*/
function totalSupply() public view virtual override returns (uint256) {
return _totalSupply;
}
/**
* @dev See {IERC20-balanceOf}.
*/
function balanceOf(address account) public view virtual override returns (uint256) {
return _balances[account];
}
/**
* @dev See {IERC20-transfer}.
*
* Requirements:
*
* - `to` cannot be the zero address.
* - the caller must have a balance of at least `amount`.
*/
function transfer(address to, uint256 amount) public virtual override returns (bool) {
address owner = _msgSender();
_transfer(owner, to, amount);
return true;
}
/**
* @dev See {IERC20-allowance}.
*/
function allowance(address owner, address spender) public view virtual override returns (uint256) {
return _allowances[owner][spender];
}
/**
* @dev See {IERC20-approve}.
*
* NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
* `transferFrom`. This is semantically equivalent to an infinite approval.
*
* Requirements:
*
* - `spender` cannot be the zero address.
*/
function approve(address spender, uint256 amount) public virtual override returns (bool) {
address owner = _msgSender();
_approve(owner, spender, amount);
return true;
}
/**
* @dev See {IERC20-transferFrom}.
*
* Emits an {Approval} event indicating the updated allowance. This is not
* required by the EIP. See the note at the beginning of {ERC20}.
*
* NOTE: Does not update the allowance if the current allowance
* is the maximum `uint256`.
*
* Requirements:
*
* - `from` and `to` cannot be the zero address.
* - `from` must have a balance of at least `amount`.
* - the caller must have allowance for ``from``'s tokens of at least
* `amount`.
*/
function transferFrom(
address from,
address to,
uint256 amount
) public virtual override returns (bool) {
address spender = _msgSender();
_spendAllowance(from, spender, amount);
_transfer(from, to, amount);
return true;
}
/**
* @dev Atomically increases the allowance granted to `spender` by the caller.
*
* This is an alternative to {approve} that can be used as a mitigation for
* problems described in {IERC20-approve}.
*
* Emits an {Approval} event indicating the updated allowance.
*
* Requirements:
*
* - `spender` cannot be the zero address.
*/
function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
address owner = _msgSender();
_approve(owner, spender, allowance(owner, spender) + addedValue);
return true;
}
/**
* @dev Atomically decreases the allowance granted to `spender` by the caller.
*
* This is an alternative to {approve} that can be used as a mitigation for
* problems described in {IERC20-approve}.
*
* Emits an {Approval} event indicating the updated allowance.
*
* Requirements:
*
* - `spender` cannot be the zero address.
* - `spender` must have allowance for the caller of at least
* `subtractedValue`.
*/
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
address owner = _msgSender();
uint256 currentAllowance = allowance(owner, spender);
require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
unchecked {
_approve(owner, spender, currentAllowance - subtractedValue);
}
return true;
}
/**
* @dev Moves `amount` of tokens from `sender` to `recipient`.
*
* 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 virtual {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
_beforeTokenTransfer(from, to, amount);
uint256 fromBalance = _balances[from];
require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
unchecked {
_balances[from] = fromBalance - amount;
}
_balances[to] += amount;
emit Transfer(from, to, amount);
_afterTokenTransfer(from, to, amount);
}
/** @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 virtual {
require(account != address(0), "ERC20: mint to the zero address");
_beforeTokenTransfer(address(0), account, amount);
_totalSupply += amount;
_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 virtual {
require(account != address(0), "ERC20: burn from the zero address");
_beforeTokenTransfer(account, address(0), amount);
uint256 accountBalance = _balances[account];
require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
unchecked {
_balances[account] = accountBalance - amount;
}
_totalSupply -= amount;
emit Transfer(account, address(0), amount);
_afterTokenTransfer(account, address(0), amount);
}
/**
* @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 virtual {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
/**
* @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 virtual {
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 virtual {}
/**
* @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 virtual {}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)
pragma solidity ^0.8.0;
import "../utils/Context.sol";
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* By default, the owner account will be the one that deploys the contract. This
* can later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor() {
_transferOwnership(_msgSender());
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.5.0) (utils/Address.sol)
pragma solidity ^0.8.1;
/**
* @dev Collection of functions related to the address type
*/
library Address {
/**
* @dev Returns true if `account` is a contract.
*
* [IMPORTANT]
* ====
* It is unsafe to assume that an address for which this function returns
* false is an externally-owned account (EOA) and not a contract.
*
* Among others, `isContract` will return false for the following
* types of addresses:
*
* - an externally-owned account
* - a contract in construction
* - an address where a contract will be created
* - an address where a contract lived, but was destroyed
* ====
*
* [IMPORTANT]
* ====
* You shouldn't rely on `isContract` to protect against flash loan attacks!
*
* Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets
* like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract
* constructor.
* ====
*/
function isContract(address account) internal view returns (bool) {
// This method relies on extcodesize/address.code.length, which returns 0
// for contracts in construction, since the code is only stored at the end
// of the constructor execution.
return account.code.length > 0;
}
/**
* @dev Replacement for Solidity's `transfer`: sends `amount` wei to
* `recipient`, forwarding all available gas and reverting on errors.
*
* https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
* of certain opcodes, possibly making contracts go over the 2300 gas limit
* imposed by `transfer`, making them unable to receive funds via
* `transfer`. {sendValue} removes this limitation.
*
* https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
*
* IMPORTANT: because control is transferred to `recipient`, care must be
* taken to not create reentrancy vulnerabilities. Consider using
* {ReentrancyGuard} or the
* https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
*/
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
(bool success, ) = recipient.call{value: amount}("");
require(success, "Address: unable to send value, recipient may have reverted");
}
/**
* @dev Performs a Solidity function call using a low level `call`. A
* plain `call` is an unsafe replacement for a function call: use this
* function instead.
*
* If `target` reverts with a revert reason, it is bubbled up by this
* function (like regular Solidity function calls).
*
* Returns the raw returned data. To convert to the expected return value,
* use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
*
* Requirements:
*
* - `target` must be a contract.
* - calling `target` with `data` must not revert.
*
* _Available since v3.1._
*/
function functionCall(address target, bytes memory data) internal returns (bytes memory) {
return functionCall(target, data, "Address: low-level call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
* `errorMessage` as a fallback revert reason when `target` reverts.
*
* _Available since v3.1._
*/
function functionCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but also transferring `value` wei to `target`.
*
* Requirements:
*
* - the calling contract must have an ETH balance of at least `value`.
* - the called Solidity function must be `payable`.
*
* _Available since v3.1._
*/
function functionCallWithValue(
address target,
bytes memory data,
uint256 value
) internal returns (bytes memory) {
return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
}
/**
* @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
* with `errorMessage` as a fallback revert reason when `target` reverts.
*
* _Available since v3.1._
*/
function functionCallWithValue(
address target,
bytes memory data,
uint256 value,
string memory errorMessage
) internal returns (bytes memory) {
require(address(this).balance >= value, "Address: insufficient balance for call");
require(isContract(target), "Address: call to non-contract");
(bool success, bytes memory returndata) = target.call{value: value}(data);
return verifyCallResult(success, returndata, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a static call.
*
* _Available since v3.3._
*/
function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
return functionStaticCall(target, data, "Address: low-level static call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
* but performing a static call.
*
* _Available since v3.3._
*/
function functionStaticCall(
address target,
bytes memory data,
string memory errorMessage
) internal view returns (bytes memory) {
require(isContract(target), "Address: static call to non-contract");
(bool success, bytes memory returndata) = target.staticcall(data);
return verifyCallResult(success, returndata, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a delegate call.
*
* _Available since v3.4._
*/
function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
return functionDelegateCall(target, data, "Address: low-level delegate call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
* but performing a delegate call.
*
* _Available since v3.4._
*/
function functionDelegateCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
require(isContract(target), "Address: delegate call to non-contract");
(bool success, bytes memory returndata) = target.delegatecall(data);
return verifyCallResult(success, returndata, errorMessage);
}
/**
* @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the
* revert reason using the provided one.
*
* _Available since v4.3._
*/
function verifyCallResult(
bool success,
bytes memory returndata,
string memory errorMessage
) internal pure returns (bytes memory) {
if (success) {
return returndata;
} else {
// Look for revert reason and bubble it up if present
if (returndata.length > 0) {
// The easiest way to bubble the revert reason is using memory via assembly
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
}// 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
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)
pragma solidity ^0.8.0;
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)
pragma solidity ^0.8.0;
import "../IERC20.sol";
/**
* @dev Interface for the optional metadata functions from the ERC20 standard.
*
* _Available since v4.1._
*/
interface IERC20Metadata is IERC20 {
/**
* @dev Returns the name of the token.
*/
function name() external view returns (string memory);
/**
* @dev Returns the symbol of the token.
*/
function symbol() external view returns (string memory);
/**
* @dev Returns the decimals places of the token.
*/
function decimals() external view returns (uint8);
}{
"evmVersion": "paris",
"optimizer": {
"enabled": true,
"mode": "3"
},
"outputSelection": {
"*": {
"*": [
"abi"
]
}
},
"detectMissingLibraries": false,
"forceEVMLA": false,
"enableEraVMExtensions": true,
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"accumulatedTaxTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionLimitEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minTransactionLimitEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyTax","type":"uint256"}],"name":"setBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxAmount","type":"uint256"}],"name":"setMaxTransactionAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setMaxTransactionLimitEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minAmount","type":"uint256"}],"name":"setMinTransactionAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellTax","type":"uint256"}],"name":"setSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pairAddress","type":"address"}],"name":"setUniswapPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxesEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"withdrawERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawTaxTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Deployed Bytecode
0x0003000000000002000000000301034f0000008001000039000000400010043f00000001002001900000001f0000c13d00000060013002700000023a01100197000000040010008c0000003b0000413d000000000203043b000000e0022002700000024e0020009c0000003f0000213d000002680020009c000000790000213d000002750020009c000000fb0000a13d000002760020009c000001360000a13d000002770020009c000002490000613d000002780020009c000002600000613d000002790020009c000004d60000c13d0000000001000416000000000001004b000004d60000c13d0000000a010000390000035a0000013d0000000001000416000000000001004b000004d60000c13d0000000406000039000000800060043f0000023b01000041000000a00010043f0000010001000039000000400010043f000000c00060043f0000023c01000041000000e00010043f0000000303000039000000000103041a000000010210019000000001041002700000007f0440618f0000001f0040008c00000000010000390000000101002039000000000012004b000000520000613d0000029101000041000000000010043f0000002201000039000000040010043f0000029201000041000008e700010430000000000001004b000004d60000c13d0000000001000019000008e60001042e0000024f0020009c000000950000213d0000025c0020009c0000010f0000a13d0000025d0020009c0000015b0000a13d0000025e0020009c000002990000613d0000025f0020009c000002b40000613d000002600020009c000004d60000c13d0000000001000416000000000001004b000004d60000c13d0000000c01000039000000000101041a00000008011002700000011a0000013d000000200040008c0000006c0000413d000300000004001d000000000030043f00000000010004140000023a0010009c0000023a01008041000000c0011002100000023d011001c7000080100200003908e508e00000040f0000000100200190000004d60000613d000000000101043b00000003020000290000001f0220003900000005022002700000000002210019000000000021004b000000040600003900000003030000390000006c0000813d000000000001041b0000000101100039000000000021004b000000680000413d000000a00100043d0000023e0110019700000008011001bf000000000013041b000000c00400043d0000023f0040009c000000bd0000413d0000029101000041000000000010043f0000004101000039000000040010043f0000029201000041000008e700010430000002690020009c0000011e0000a13d0000026a0020009c000001740000a13d0000026b0020009c000002b90000613d0000026c0020009c000002c80000613d0000026d0020009c000004d60000c13d0000000001000416000000000001004b000004d60000c13d0000000501000039000000000101041a00000241011001970000000002000411000000000021004b0000000001000039000000010100603908e506010000040f0000000801000039000000000201041a000002aa0220019700000100022001bf000000000021041b0000000001000019000008e60001042e000002500020009c0000012b0000a13d000002510020009c0000017d0000a13d000002520020009c000002dd0000613d000002530020009c000002fc0000613d000002540020009c000004d60000c13d000000240010008c000004d60000413d0000000001000416000000000001004b000004d60000c13d0000000401300370000000000101043b000300000001001d000002410010009c000004d60000213d0000000501000039000000000101041a00000241011001970000000002000411000000000021004b000003de0000c13d00000000010004100000000302000029000000000012004b000005290000c13d0000028601000041000000800010043f0000002001000039000000840010043f0000001a01000039000000a40010043f0000028701000041000000c40010043f0000028801000041000008e700010430000000000106041a000000010010019000000001031002700000007f0330618f0000001f0030008c00000000020000390000000102002039000000000121013f0000000100100190000000350000c13d000000200030008c000000e70000413d000200000003001d000300000004001d000000000060043f00000000010004140000023a0010009c0000023a01008041000000c0011002100000023d011001c7000080100200003908e508e00000040f0000000100200190000004d60000613d00000003040000290000001f024000390000000502200270000000200040008c0000000002004019000000000301043b00000002010000290000001f01100039000000050110027000000000011300190000000002230019000000000012004b0000000406000039000000e70000813d000000000002041b0000000102200039000000000012004b000000e30000413d0000001f0040008c0000023e0000a13d000300000004001d000000000060043f00000000010004140000023a0010009c0000023a01008041000000c0011002100000023d011001c7000080100200003908e508e00000040f0000000100200190000004d60000613d0000000307000029000002ab02700198000000000101043b000004010000c13d000000e0030000390000000406000039000004100000013d0000027c0020009c0000019b0000213d0000027f0020009c000003190000613d000002800020009c000004d60000c13d000000440010008c000004d60000413d0000000001000416000000000001004b000004d60000c13d0000000401300370000000000201043b000002410020009c000004d60000213d0000002401300370000000000301043b000000000100041108e506140000040f0000016c0000013d000002630020009c000001a40000213d000002660020009c000003390000613d000002670020009c000004d60000c13d0000000001000416000000000001004b000004d60000c13d0000000501000039000000000101041a0000024101100197000000800010043f0000029501000041000008e60001042e000002700020009c000001e70000213d000002730020009c000003560000613d000002740020009c000004d60000c13d0000000001000416000000000001004b000004d60000c13d0000001201000039000000800010043f0000029501000041000008e60001042e000002570020009c0000021e0000213d0000025a0020009c0000035d0000613d0000025b0020009c000004d60000c13d0000000001000416000000000001004b000004d60000c13d00000006010000390000036b0000013d0000027a0020009c000003620000613d0000027b0020009c000004d60000c13d000000240010008c000004d60000413d0000000001000416000000000001004b000004d60000c13d0000000401300370000000000201043b000000000002004b0000000001000039000000010100c039000300000002001d000000000012004b000004d60000c13d0000000501000039000000000101041a00000241011001970000000002000411000000000021004b0000000001000039000000010100603908e506010000040f0000000a01000039000000000201041a000002ac0220019700000003022001af000000000021041b0000000c01000039000000000201041a000002ac0220019700000003022001af000000000021041b0000000001000019000008e60001042e000002610020009c000003670000613d000002620020009c000004d60000c13d000000440010008c000004d60000413d0000000001000416000000000001004b000004d60000c13d0000000401300370000000000201043b000002410020009c000004d60000213d0000002401300370000000000301043b000000000100041108e5066b0000040f0000000101000039000000400200043d00000000001204350000023a0020009c0000023a0200804100000040012002100000029d011001c7000008e60001042e0000026e0020009c0000036f0000613d0000026f0020009c000004d60000c13d0000000001000416000000000001004b000004d60000c13d00000007010000390000036b0000013d000002550020009c0000037a0000613d000002560020009c000004d60000c13d000000440010008c000004d60000413d0000000001000416000000000001004b000004d60000c13d0000000401300370000000000101043b000002410010009c000004d60000213d0000002402300370000000000202043b000300000002001d000002410020009c000004d60000213d000000000010043f0000000101000039000000200010043f0000004002000039000000000100001908e508c60000040f0000000302000029000000000020043f000000200010043f00000000010000190000004002000039000002c60000013d0000027d0020009c000003970000613d0000027e0020009c000004d60000c13d0000000001000416000000000001004b000004d60000c13d0000000b010000390000036b0000013d000002640020009c000003a60000613d000002650020009c000004d60000c13d000000440010008c000004d60000413d0000000001000416000000000001004b000004d60000c13d0000000401300370000000000101043b000300000001001d000002410010009c000004d60000213d0000002401300370000000000101043b000200000001001d0000000001000411000000000010043f0000000101000039000000200010043f00000000010004140000023a0010009c0000023a01008041000000c00110021000000247011001c7000080100200003908e508e00000040f0000000100200190000004d60000613d000000000101043b0000000302000029000000000020043f000000200010043f00000000010004140000023a0010009c0000023a01008041000000c00110021000000247011001c7000080100200003908e508e00000040f0000000100200190000004d60000613d000000000101043b000000000101041a000000020310006c0000021a0000813d000000400100043d00000064021000390000029e03000041000000000032043500000044021000390000029f030000410000000000320435000000240210003900000025030000390000000000320435000002860200004100000000002104350000000402100039000000200300003900000000003204350000023a0010009c0000023a010080410000004001100210000002a0011001c7000008e700010430000002710020009c000003be0000613d000002720020009c000004d60000c13d000000440010008c000004d60000413d0000000001000416000000000001004b000004d60000c13d0000000401300370000000000101043b000300000001001d000002410010009c000004d60000213d0000000001000411000000000010043f0000000101000039000000200010043f00000000010004140000023a0010009c0000023a01008041000000c00110021000000247011001c70000801002000039000200000003035308e508e00000040f000000020300035f0000000100200190000004d60000613d000000000101043b0000000302000029000000000020043f000000200010043f0000002401300370000000000101043b000200000001001d00000000010004140000023a0010009c0000023a01008041000000c00110021000000247011001c7000080100200003908e508e00000040f0000000100200190000004d60000613d000000000101043b000000000101041a0000000202000029000000000021001a000004570000413d00000000032100190000000001000411000000030200002908e506140000040f000005c60000013d000002580020009c000003e70000613d000002590020009c000004d60000c13d000000240010008c000004d60000413d0000000001000416000000000001004b000004d60000c13d0000000401300370000000000101043b000300000001001d000002410010009c000004d60000213d0000000501000039000000000101041a00000241011001970000000002000411000000000021004b0000000001000039000000010100603908e506010000040f0000000301000029000000080110021000000297011001970000000c02000039000000000302041a0000029803300197000000000113019f000000000012041b0000000001000019000008e60001042e000000000004004b0000000001000019000002420000613d000000e00100043d0000000302400210000002ad0220027f000002ad02200167000000000121016f0000000102400210000000000121019f0000041b0000013d000000240010008c000004d60000413d0000000001000416000000000001004b000004d60000c13d0000000401300370000000000101043b0000000502000039000000000202041a00000241022001970000000003000411000000000032004b000003de0000c13d000000000001004b0000046f0000c13d0000028601000041000000800010043f0000002001000039000000840010043f0000002d01000039000000a40010043f000002a801000041000002af0000013d000000640010008c000004d60000413d0000000001000416000000000001004b000004d60000c13d0000000401300370000000000101043b000300000001001d000002410010009c000004d60000213d0000002401300370000000000101043b000200000001001d000002410010009c000004d60000213d0000004401300370000000000101043b000100000001001d0000000301000029000000000010043f0000000101000039000000200010043f00000000010004140000023a0010009c0000023a01008041000000c00110021000000247011001c7000080100200003908e508e00000040f0000000100200190000004d60000613d000000000101043b0000000002000411000000000020043f000000200010043f00000000010004140000023a0010009c0000023a01008041000000c00110021000000247011001c7000080100200003908e508e00000040f0000000100200190000004d60000613d000000000101043b000000000101041a000002ad0010009c000005c20000613d000000010310006c000005bf0000813d000000400100043d0000004402100039000002a603000041000000000032043500000024021000390000001d03000039000004bd0000013d000000240010008c000004d60000413d0000000001000416000000000001004b000004d60000c13d0000000401300370000000000101043b0000000502000039000000000202041a00000241022001970000000003000411000000000032004b000003de0000c13d000000000001004b000004730000c13d0000028601000041000000800010043f0000002001000039000000840010043f0000002d01000039000000a40010043f0000029b01000041000000c40010043f0000029c01000041000000e40010043f0000028b01000041000008e7000104300000000001000416000000000001004b000004d60000c13d00000008010000390000035a0000013d000000240010008c000004d60000413d0000000001000416000000000001004b000004d60000c13d0000000401300370000000000101043b000002410010009c000004d60000213d000000000010043f000000200000043f0000004002000039000000000100001908e508c60000040f0000036b0000013d0000000001000416000000000001004b000004d60000c13d0000000501000039000000000201041a00000241032001970000000005000411000000000053004b000003de0000c13d0000024002200197000000000021041b00000000010004140000023a0010009c0000023a01008041000000c00110021000000242011001c70000800d02000039000000030300003900000243040000410000000006000019000004d30000013d0000000001000416000000000001004b000004d60000c13d0000000501000039000000000101041a00000241011001970000000002000411000000000021004b000003de0000c13d0000028c0100004100000000001004430000000001000410000000040010044300000000010004140000023a0010009c0000023a01008041000000c0011002100000028d011001c70000800a0200003908e508e00000040f00000001002001900000045d0000613d000000000301043b00000000010004140000023a0010009c0000023a01008041000000c001100210000000000003004b000004ad0000c13d0000000002000411000004b10000013d000000240010008c000004d60000413d0000000001000416000000000001004b000004d60000c13d0000000401300370000000000601043b000002410060009c000004d60000213d0000000501000039000000000201041a00000241032001970000000005000411000000000053004b000003de0000c13d000000000006004b000004c80000c13d0000028601000041000000800010043f0000002001000039000000840010043f0000002601000039000000a40010043f0000028901000041000000c40010043f0000028a01000041000000e40010043f0000028b01000041000008e7000104300000000001000416000000000001004b000004d60000c13d0000000303000039000000000203041a000000010520019000000001012002700000007f0410018f00000000010460190000001f0010008c00000000060000390000000106002039000000000662013f0000000100600190000000350000c13d000000800010043f000000000005004b000003b80000613d000000000030043f000000020020008c0000046d0000413d000002a90200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000014004b000003300000413d000004f10000013d000000240010008c000004d60000413d0000000001000416000000000001004b000004d60000c13d0000000401300370000000000101043b0000000502000039000000000202041a00000241022001970000000003000411000000000032004b000003de0000c13d0000000802000039000000000202041a000000ff002001900000038b0000613d000000640010008c000004d80000413d0000028601000041000000800010043f0000002001000039000000840010043f0000001a01000039000000a40010043f000002a201000041000000c40010043f0000028801000041000008e7000104300000000001000416000000000001004b000004d60000c13d0000000c01000039000000000101041a000000ff00100190000003750000013d0000000001000416000000000001004b000004d60000c13d00000009010000390000036b0000013d0000000001000416000000000001004b000004d60000c13d00000002010000390000036b0000013d0000000001000416000000000001004b000004d60000c13d0000000d01000039000000000101041a000000800010043f0000029501000041000008e60001042e0000000001000416000000000001004b000004d60000c13d0000000801000039000000000101041a0000ff00001001900000000001000039000000010100c039000000800010043f0000029501000041000008e60001042e000000240010008c000004d60000413d0000000001000416000000000001004b000004d60000c13d0000000401300370000000000101043b0000000502000039000000000202041a00000241022001970000000003000411000000000032004b000003de0000c13d0000000802000039000000000202041a000000ff002001900000045e0000c13d0000028601000041000000800010043f0000002001000039000000840010043f0000002401000039000000a40010043f000002a301000041000000c40010043f000002a401000041000000e40010043f0000028b01000041000008e7000104300000000001000416000000000001004b000004d60000c13d0000000501000039000000000101041a00000241011001970000000002000411000000000021004b0000000001000039000000010100603908e506010000040f0000000801000039000000000201041a0000ff010300008a000003fd0000013d0000000001000416000000000001004b000004d60000c13d0000000403000039000000000203041a000000010520019000000001012002700000007f0410018f00000000010460190000001f0010008c00000000060000390000000106002039000000000662013f0000000100600190000000350000c13d000000800010043f000000000005004b0000046a0000c13d000002ac01200197000000a00010043f000000000004004b000000c001000039000000a001006039000004f20000013d0000000001000416000000000001004b000004d60000c13d0000000501000039000000000101041a00000241011001970000000002000411000000000021004b000003de0000c13d0000000001000410000000000010043f000000200000043f00000000010004140000023a0010009c0000023a01008041000000c00110021000000247011001c7000080100200003908e508e00000040f0000000100200190000004d60000613d000000000101043b000000000301041a000000000003004b000004dc0000c13d000000400100043d0000004402100039000002a503000041000000000032043500000024021000390000001503000039000004bd0000013d0000028601000041000000800010043f0000002001000039000000840010043f000000a40010043f000002a701000041000000c40010043f0000028801000041000008e7000104300000000001000416000000000001004b000004d60000c13d0000000501000039000000000101041a00000241011001970000000002000411000000000021004b0000000001000039000000010100603908e506010000040f0000000801000039000000000201041a000001000300008a000000000232016f000000000021041b0000000a01000039000000000201041a000000000232016f000000000021041b0000000c01000039000000000201041a000000000232016f000000000021041b0000000001000019000008e60001042e000000010320008a000000050330027000000000033100190000002004000039000000010330003900000004060000390000000005040019000000c0044000390000000004040433000000000041041b00000020045000390000000101100039000000000031004b000004070000c13d000000e003500039000000000072004b000004190000813d0000000302700210000000f80220018f000002ad0220027f000002ad022001670000000003030433000000000223016f000000000021041b000000010170021000000001011001bf000000000016041b0000000503000039000000000103041a00000240021001970000000006000411000000000262019f000000000023041b000000000200041400000241051001970000023a0020009c0000023a02008041000000c00120021000000242011001c70000800d020000390000000303000039000002430400004108e508db0000040f0000000100200190000004d60000613d00000063010000390000000602000039000000000012041b0000000702000039000000000012041b0000000801000039000000000201041a000002440220019700000001022001bf000000000021041b0000000a02000039000000000302041a000002ac0330019700000001033001bf000000000032041b0000000c02000039000000000302041a000002ac0130019700000001011001bf000000000012041b0000000201000039000000000201041a000002450220009c000004570000813d000000000021041b0000024601000041000000000010043f000000200000043f00000000010004140000023a0010009c0000023a01008041000000c00110021000000247011001c7000080100200003908e508e00000040f0000000100200190000004d60000613d000000000101043b000000000201041a000002450220009c0000047b0000413d0000029101000041000000000010043f0000001101000039000000040010043f0000029201000041000008e700010430000000000001042f000000640010008c000004e30000413d0000028601000041000000800010043f0000002001000039000000840010043f0000001901000039000000a40010043f0000029601000041000000c40010043f0000028801000041000008e700010430000000000030043f000000020020008c000004e70000813d000000a001000039000004f20000013d0000000902000039000000000012041b0000000001000019000008e60001042e0000000902000039000000000202041a000000000021004b000005950000813d0000000b02000039000000000012041b0000000001000019000008e60001042e000000000021041b0000024901000041000000400200043d00000000001204350000023a0020009c0000023a02008041000000400120021000000000020004140000023a0020009c0000023a02008041000000c002200210000000000121019f0000023d011001c70000800d0200003900000003030000390000024a040000410000000005000019000002460600004108e508db0000040f0000000100200190000004d60000613d0000024b010000410000000902000039000000000012041b0000024c010000410000000b02000039000000000012041b0000000503000039000000000103041a000002400210019700000246022001c7000000000023041b00000000020004140000023a0020009c0000023a020080410000024105100197000000c00120021000000242011001c70000800d0200003900000003030000390000024304000041000002460600004108e508db0000040f0000000100200190000004d60000613d0000002001000039000001000010044300000120000004430000024d01000041000008e60001042e00000242011001c700008009020000390000000004000411000000000500001908e508db0000040f00000060031002700000023a03300198000005030000c13d00000001002001900000003d0000c13d000000400100043d000000440210003900000293030000410000000000320435000000240210003900000013030000390000000000320435000002860200004100000000002104350000000402100039000000200300003900000000003204350000023a0010009c0000023a01008041000000400110021000000294011001c7000008e7000104300000024002200197000000000262019f000000000021041b00000000010004140000023a0010009c0000023a01008041000000c00110021000000242011001c70000800d020000390000000303000039000002430400004108e508db0000040f00000001002001900000003d0000c13d0000000001000019000008e7000104300000000602000039000000000012041b0000000001000019000008e60001042e0000000001000410000000000200041108e5084a0000040f0000000d01000039000000000001041b0000000001000019000008e60001042e0000000702000039000000000012041b0000000001000019000008e60001042e000002a10200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000014004b000004e90000413d000000c001300039000000800210008a000000800100003908e505ef0000040f000000400100043d000300000001001d000000800200003908e505da0000040f000000030200002900000000012100490000023a0010009c0000023a0100804100000060011002100000023a0020009c0000023a020080410000004002200210000000000121019f000008e60001042e0000001f043000390000028e044001970000003f044000390000028f04400197000000400500043d0000000004450019000000000054004b00000000060000390000000106004039000002900040009c000000730000213d0000000100600190000000730000c13d000000400040043f0000001f0430018f0000000006350436000002830530019800000000035600190000051b0000613d000000000701034f000000007807043c0000000006860436000000000036004b000005170000c13d000000000004004b000004b50000613d000000000151034f0000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000004b50000013d0000028103000041000000800030043f000000840010043f00000000010004140000023a0010009c0000023a01008041000000c00110021000000282011001c708e508e00000040f00000060031002700000023a03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000000800a000039000005410000613d000000000801034f000000008908043c000000000a9a043600000000005a004b0000053d0000c13d000000000006004b0000054e0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f00000000006504350000000100200190000005a10000613d0000001f01400039000000600110018f00000080021001bf000200000002001d000000400020043f000000200030008c000004d60000413d000000800200043d00000284030000410000000205000029000000000035043500000084031001bf00000000040004110000000000430435000000a401100039000000000021043500000000010004140000023a0010009c0000023a01008041000000c0011002100000004002500210000000000121019f00000285011001c7000000030200002908e508db0000040f00000060031002700000023a03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000205700029000005780000613d000000000801034f0000000209000029000000008a08043c0000000009a90436000000000059004b000005740000c13d000000000006004b000005850000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f00000000006504350000000100200190000005ce0000613d0000001f01400039000000600110018f0000000201100029000000400010043f000000200030008c000004d60000413d00000002010000290000000001010433000000000001004b0000000002000039000000010200c039000000000021004b0000003d0000613d000004d60000013d0000028601000041000000800010043f0000002001000039000000840010043f0000002701000039000000a40010043f0000029901000041000000c40010043f0000029a01000041000000e40010043f0000028b01000041000008e7000104300000001f0530018f0000028306300198000000400200043d0000000004620019000005ac0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000005a80000c13d000000000005004b000005b90000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000023a0020009c0000023a020080410000004002200210000000000112019f000008e7000104300000000301000029000000000200041108e506140000040f00000003010000290000000202000029000000010300002908e5066b0000040f000000400100043d000000010200003900000000002104350000023a0010009c0000023a0100804100000040011002100000029d011001c7000008e60001042e0000001f0530018f0000028306300198000000400200043d0000000004620019000005ac0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000005d50000c13d000005ac0000013d00000020030000390000000004310436000000003202043400000000002404350000004001100039000000000002004b000005e90000613d000000000400001900000000054100190000000006430019000000000606043300000000006504350000002004400039000000000024004b000005e20000413d000000000321001900000000000304350000001f02200039000002ab022001970000000001210019000000000001042d0000001f02200039000002ab022001970000000001120019000000000021004b00000000020000390000000102004039000002900010009c000005fb0000213d0000000100200190000005fb0000c13d000000400010043f000000000001042d0000029101000041000000000010043f0000004101000039000000040010043f0000029201000041000008e700010430000000000001004b000006040000613d000000000001042d000000400100043d0000004402100039000002a703000041000000000032043500000286020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000000003204350000023a0010009c0000023a01008041000000400110021000000294011001c7000008e700010430000300000000000200000241011001980000064d0000613d000200000003001d000302410020019c000006570000613d000100000001001d000000000010043f0000000101000039000000200010043f00000000010004140000023a0010009c0000023a01008041000000c00110021000000247011001c7000080100200003908e508e00000040f000000010020019000000003030000290000064b0000613d000000000101043b000000000030043f000000200010043f00000000010004140000023a0010009c0000023a01008041000000c00110021000000247011001c7000080100200003908e508e00000040f000000030600002900000001002001900000064b0000613d000000000101043b0000000202000029000000000021041b000000400100043d00000000002104350000023a0010009c0000023a01008041000000400110021000000000020004140000023a0020009c0000023a02008041000000c002200210000000000112019f0000023d011001c70000800d020000390000000303000039000002ae04000041000000010500002908e508db0000040f00000001002001900000064b0000613d000000000001042d0000000001000019000008e700010430000000400100043d0000006402100039000002b10300004100000000003204350000004402100039000002b203000041000000000032043500000024021000390000002403000039000006600000013d000000400100043d0000006402100039000002af0300004100000000003204350000004402100039000002b0030000410000000000320435000000240210003900000022030000390000000000320435000002860200004100000000002104350000000402100039000000200300003900000000003204350000023a0010009c0000023a010080410000004001100210000002a0011001c7000008e7000104300006000000000002000002410520019700000241041001970000000501000039000000000101041a0000024101100197000000000014004b000500000005001d000600000004001d000400000003001d000006930000613d000000000015004b000006930000613d0000000801000039000000000101041a0000ff0000100190000008150000613d0000000a02000039000000000202041a000000ff00200190000006880000613d0000000902000039000000000202041a000000000032004b000008260000413d0000000b02000039000000000202041a000000000032004b000008300000213d000000ff00100190000006d00000613d0000000c01000039000000000101041a00000008011002700000024101100198000007190000613d000000000015004b0000070d0000c13d0000000601000039000007100000013d000000000004004b0000080b0000613d000000000005004b000007f70000613d000000000040043f000000200000043f00000000010004140000023a0010009c0000023a01008041000000c00110021000000247011001c7000080100200003908e508e00000040f0000000100200190000007f50000613d000000000101043b000000000101041a0003000400100074000008010000413d0000000601000029000000000010043f000000200000043f00000000010004140000023a0010009c0000023a01008041000000c00110021000000247011001c7000080100200003908e508e00000040f0000000100200190000007f50000613d000000000101043b0000000302000029000000000021041b0000000501000029000000000010043f00000000010004140000023a0010009c0000023a01008041000000c00110021000000247011001c7000080100200003908e508e00000040f0000000100200190000007f50000613d000000000101043b000000000201041a0000000403000029000000000032001a00000005060000290000000605000029000008440000413d0000000002320019000000000021041b000000400100043d00000000003104350000023a0010009c0000023a0100804100000040011002100000000002000414000007e90000013d000000000004004b0000080b0000613d000000000005004b000007f70000613d000000000040043f000000200000043f00000000010004140000023a0010009c0000023a01008041000000c00110021000000247011001c7000080100200003908e508e00000040f0000000100200190000007f50000613d000000000101043b000000000101041a0003000400100074000008010000413d0000000601000029000000000010043f000000200000043f00000000010004140000023a0010009c0000023a01008041000000c00110021000000247011001c7000080100200003908e508e00000040f0000000100200190000007f50000613d000000000101043b0000000302000029000000000021041b0000000501000029000000000010043f00000000010004140000023a0010009c0000023a01008041000000c00110021000000247011001c7000080100200003908e508e00000040f0000000100200190000007f50000613d000000000101043b000000000201041a0000000403000029000000000032001a00000005060000290000000605000029000008440000413d0000000002320019000000000021041b000000400100043d00000000003104350000023a0010009c0000023a0100804100000040011002100000000002000414000007e90000013d000000000014004b000007190000c13d0000000701000039000000000101041a00000000063100a9000000000003004b000007170000613d00000000023600d9000000000012004b000008440000c13d000000640060008c000007560000813d000000000004004b0000080b0000613d000000000005004b000007f70000613d000000000040043f000000200000043f00000000010004140000023a0010009c0000023a01008041000000c00110021000000247011001c7000080100200003908e508e00000040f0000000100200190000007f50000613d000000000101043b000000000101041a0003000400100074000008010000413d0000000601000029000000000010043f000000200000043f00000000010004140000023a0010009c0000023a01008041000000c00110021000000247011001c7000080100200003908e508e00000040f0000000100200190000007f50000613d000000000101043b0000000302000029000000000021041b0000000501000029000000000010043f00000000010004140000023a0010009c0000023a01008041000000c00110021000000247011001c7000080100200003908e508e00000040f0000000100200190000007f50000613d000000000101043b000000000201041a0000000403000029000000000032001a00000005060000290000000605000029000008440000413d0000000002320019000000000021041b000000400100043d00000000003104350000023a0010009c0000023a0100804100000040011002100000000002000414000007e90000013d000000000004004b0000080b0000613d000200000006001d0000000001000410000302410010019c000007f70000613d000000000040043f000000200000043f00000000010004140000023a0010009c0000023a01008041000000c00110021000000247011001c7000080100200003908e508e00000040f0000000100200190000007f50000613d00000002020000290002006400200122000000000101043b000000000101041a000000020110006c000100000001001d000008010000413d0000000601000029000000000010043f000000200000043f00000000010004140000023a0010009c0000023a01008041000000c00110021000000247011001c7000080100200003908e508e00000040f0000000100200190000007f50000613d000000000101043b0000000102000029000000000021041b0000000301000029000000000010043f00000000010004140000023a0010009c0000023a01008041000000c00110021000000247011001c7000080100200003908e508e00000040f0000000100200190000007f50000613d000000000101043b000000000201041a0000000203000029000000000032001a0000000605000029000008440000413d0000000002320019000000000021041b000000400100043d00000000003104350000023a0010009c0000023a01008041000000400110021000000000020004140000023a0020009c0000023a02008041000000c002200210000000000112019f0000023d011001c70000800d0200003900000003030000390000024a04000041000000030600002908e508db0000040f0000000100200190000007f50000613d0000000d01000039000000000201041a0000000206000029000000000062001a000000050300002900000006040000290000000405000029000008440000413d0000000002620019000000000021041b000000000165004b000008440000413d000400000001001d000000000003004b000007f70000613d000000000040043f000000200000043f00000000010004140000023a0010009c0000023a01008041000000c00110021000000247011001c7000080100200003908e508e00000040f0000000100200190000007f50000613d000000000101043b000000000101041a0003000400100074000008010000413d0000000601000029000000000010043f000000200000043f00000000010004140000023a0010009c0000023a01008041000000c00110021000000247011001c7000080100200003908e508e00000040f0000000100200190000007f50000613d000000000101043b0000000302000029000000000021041b0000000501000029000000000010043f00000000010004140000023a0010009c0000023a01008041000000c00110021000000247011001c7000080100200003908e508e00000040f0000000100200190000007f50000613d000000000101043b000000000201041a0000000403000029000000000032001a00000005060000290000000605000029000008440000413d0000000002320019000000000021041b000000400100043d00000000003104350000023a0010009c0000023a01008041000000400110021000000000020004140000023a0020009c0000023a02008041000000c002200210000000000112019f0000023d011001c70000800d0200003900000003030000390000024a0400004108e508db0000040f0000000100200190000007f50000613d000000000001042d0000000001000019000008e700010430000000400100043d0000006402100039000002b90300004100000000003204350000004402100039000002ba03000041000000000032043500000024021000390000002303000039000008390000013d000000400100043d0000006402100039000002b70300004100000000003204350000004402100039000002b803000041000000000032043500000024021000390000002603000039000008390000013d000000400100043d0000006402100039000002bb0300004100000000003204350000004402100039000002bc03000041000000000032043500000024021000390000002503000039000008390000013d000000400100043d0000004402100039000002bd03000041000000000032043500000024021000390000001a030000390000000000320435000002860200004100000000002104350000000402100039000000200300003900000000003204350000023a0010009c0000023a01008041000000400110021000000294011001c7000008e700010430000000400100043d0000006402100039000002b50300004100000000003204350000004402100039000002b603000041000000000032043500000024021000390000002b03000039000008390000013d000000400100043d0000006402100039000002b30300004100000000003204350000004402100039000002b4030000410000000000320435000000240210003900000029030000390000000000320435000002860200004100000000002104350000000402100039000000200300003900000000003204350000023a0010009c0000023a010080410000004001100210000002a0011001c7000008e7000104300000029101000041000000000010043f0000001101000039000000040010043f0000029201000041000008e70001043000040000000000020000024101100198000008970000613d000400000003001d000202410020019c000008a10000613d000300000001001d000000000010043f000000200000043f00000000010004140000023a0010009c0000023a01008041000000c00110021000000247011001c7000080100200003908e508e00000040f0000000100200190000008950000613d000000000101043b000000000101041a0001000400100074000008ab0000413d0000000301000029000000000010043f000000200000043f00000000010004140000023a0010009c0000023a01008041000000c00110021000000247011001c7000080100200003908e508e00000040f0000000100200190000008950000613d000000000101043b0000000102000029000000000021041b0000000201000029000000000010043f00000000010004140000023a0010009c0000023a01008041000000c00110021000000247011001c7000080100200003908e508e00000040f0000000100200190000008950000613d000000000101043b000000000201041a0000000403000029000000000032001a000008bf0000413d0000000002320019000000000021041b000000400100043d00000000003104350000023a0010009c0000023a01008041000000400110021000000000020004140000023a0020009c0000023a02008041000000c002200210000000000112019f0000023d011001c70000800d0200003900000003030000390000024a040000410000000305000029000000020600002908e508db0000040f0000000100200190000008950000613d000000000001042d0000000001000019000008e700010430000000400100043d0000006402100039000002bb0300004100000000003204350000004402100039000002bc03000041000000000032043500000024021000390000002503000039000008b40000013d000000400100043d0000006402100039000002b90300004100000000003204350000004402100039000002ba03000041000000000032043500000024021000390000002303000039000008b40000013d000000400100043d0000006402100039000002b70300004100000000003204350000004402100039000002b8030000410000000000320435000000240210003900000026030000390000000000320435000002860200004100000000002104350000000402100039000000200300003900000000003204350000023a0010009c0000023a010080410000004001100210000002a0011001c7000008e7000104300000029101000041000000000010043f0000001101000039000000040010043f0000029201000041000008e700010430000000000001042f0000023a0010009c0000023a0100804100000040011002100000023a0020009c0000023a020080410000006002200210000000000112019f00000000020004140000023a0020009c0000023a02008041000000c002200210000000000112019f00000242011001c7000080100200003908e508e00000040f0000000100200190000008d90000613d000000000101043b000000000001042d0000000001000019000008e700010430000008de002104210000000102000039000000000001042d0000000002000019000000000001042d000008e3002104230000000102000039000000000001042d0000000002000019000000000001042d000008e500000432000008e60001042e000008e70001043000000000000000000000000000000000000000000000000000000000ffffffff5069636f000000000000000000000000000000000000000000000000000000005049434f000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000020000000000000000000000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff02000000000000000000000000000000000000000000000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000fffffffffffffffffffffffffffffffffffffffffcc4d1c3602f7fc3180000000000000000000000000000003c4c0d0c75b095bb44ac10d8dbf4c2e4570e10100200000000000000000000000000000000000040000000000000000000000000fffffffffffffffffffffffffffffffffffffffffcc4d1c3602f7fc317ffffff0000000000000000000000000000000000000000033b2e3c9fd0803ce8000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef000000000000000000000000000000000000000000108b2a2c2802909400000000000000000000000000000000000000000000000006342fd08f00f6378000000000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000008cd09d4f00000000000000000000000000000000000000000000000000000000c8c8ebe300000000000000000000000000000000000000000000000000000000dc1052e100000000000000000000000000000000000000000000000000000000e086e5eb00000000000000000000000000000000000000000000000000000000e086e5ec00000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000f4f3b20000000000000000000000000000000000000000000000000000000000dc1052e200000000000000000000000000000000000000000000000000000000dd62ed3e00000000000000000000000000000000000000000000000000000000d523e09100000000000000000000000000000000000000000000000000000000d523e09200000000000000000000000000000000000000000000000000000000d5aed6bf00000000000000000000000000000000000000000000000000000000c8c8ebe400000000000000000000000000000000000000000000000000000000cc1776d300000000000000000000000000000000000000000000000000000000a798e41a00000000000000000000000000000000000000000000000000000000bfed5ce200000000000000000000000000000000000000000000000000000000bfed5ce300000000000000000000000000000000000000000000000000000000bff51ef800000000000000000000000000000000000000000000000000000000c816841b00000000000000000000000000000000000000000000000000000000a798e41b00000000000000000000000000000000000000000000000000000000a9059cbb0000000000000000000000000000000000000000000000000000000095d89b400000000000000000000000000000000000000000000000000000000095d89b4100000000000000000000000000000000000000000000000000000000a457c2d7000000000000000000000000000000000000000000000000000000008cd09d50000000000000000000000000000000000000000000000000000000008da5cb5b00000000000000000000000000000000000000000000000000000000305c784d000000000000000000000000000000000000000000000000000000004ada218a0000000000000000000000000000000000000000000000000000000070a082300000000000000000000000000000000000000000000000000000000070a0823100000000000000000000000000000000000000000000000000000000715018a6000000000000000000000000000000000000000000000000000000008a8c523c000000000000000000000000000000000000000000000000000000004ada218b000000000000000000000000000000000000000000000000000000004f7041a50000000000000000000000000000000000000000000000000000000033f702690000000000000000000000000000000000000000000000000000000033f7026a000000000000000000000000000000000000000000000000000000003950935100000000000000000000000000000000000000000000000000000000305c784e00000000000000000000000000000000000000000000000000000000313ce5670000000000000000000000000000000000000000000000000000000018160ddc000000000000000000000000000000000000000000000000000000001e293c0f000000000000000000000000000000000000000000000000000000001e293c100000000000000000000000000000000000000000000000000000000023b872dd000000000000000000000000000000000000000000000000000000002ba86bf20000000000000000000000000000000000000000000000000000000018160ddd000000000000000000000000000000000000000000000000000000001a2a15250000000000000000000000000000000000000000000000000000000017700f000000000000000000000000000000000000000000000000000000000017700f010000000000000000000000000000000000000000000000000000000017a5d4df0000000000000000000000000000000000000000000000000000000006fdde0300000000000000000000000000000000000000000000000000000000095ea7b370a0823100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000080000000000000000000000000000000000000000000000000000000000000000000000000ffffffe0a9059cbb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004400000000000000000000000008c379a00000000000000000000000000000000000000000000000000000000043616e6e6f74207769746864726177207468697320746f6b656e00000000000000000000000000000000000000000000000000640000008000000000000000004f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000008000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f39020000020000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000003ffffffe0000000000000000000000000000000000000000000000000ffffffffffffffff4e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000455448207472616e73666572206661696c65640000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000020000000800000000000000000427579207461782063616e6e6f742065786365656420393925000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff0000000000000000000000000000000000000000ff4d696e20616d6f756e74206d757374206265206c657373207468616e206d617820616d6f756e74000000000000000000000000000000000000000000000000004d696e207472616e73616374696f6e20616d6f756e74206d7573742062652067726561746572207468616e2030000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000207a65726f00000000000000000000000000000000000000000000000000000045524332303a2064656372656173656420616c6c6f77616e63652062656c6f7700000000000000000000000000000000000000840000000000000000000000008a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b53656c6c207461782063616e6e6f74206578636565642039392500000000000054617865732068617665206265656e207065726d616e656e746c792064697361626c6564000000000000000000000000000000000000000000000000000000004e6f20746f6b656e7320746f207769746864726177000000000000000000000045524332303a20696e73756666696369656e7420616c6c6f77616e63650000004f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65724d6178207472616e73616374696f6e20616d6f756e74206d7573742062652067c2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925737300000000000000000000000000000000000000000000000000000000000045524332303a20617070726f766520746f20746865207a65726f206164647265726573730000000000000000000000000000000000000000000000000000000045524332303a20617070726f76652066726f6d20746865207a65726f206164646d20616c6c6f77656400000000000000000000000000000000000000000000005472616e7366657220616d6f756e742062656c6f7720746865206d696e696d756d756d20616c6c6f7765640000000000000000000000000000000000000000005472616e7366657220616d6f756e74206578636565647320746865206d617869616c616e6365000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220616d6f756e7420657863656564732062657373000000000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220746f20746865207a65726f2061646472647265737300000000000000000000000000000000000000000000000000000045524332303a207472616e736665722066726f6d20746865207a65726f20616454726164696e67206973206e6f7420656e61626c656420796574000000000000651d71346473867390abb42dbe4575fade994098c825f1707ba24bd237ce065c
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$3,578.02
Net Worth in ETH
1.216509
Token Allocations
ETH
100.00%
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $2,935.21 | 1.219 | $3,578.02 |
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.