More Info
Private Name Tags
ContractCreator
TokenTracker
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Latest 1 internal transaction
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
826005 | 24 days ago | Contract Creation | 0 ETH |
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 Source Code Verified (Exact Match)
Contract Name:
Alpha
Compiler Version
v0.8.24+commit.e11b9ed9
ZkSolc Version
v1.5.7
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.24; import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/utils/math/SafeMath.sol"; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; // Custom errors for gas optimization error TradingDisabled(); error MaxTxExceeded(); error MaxWalletExceeded(); error InvalidAddress(); error TransferFailed(); error SwapAmountInvalid(); error TradingAlreadyEnabled(); interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } contract Alpha is ERC20, Ownable { // Immutable addresses IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; address public constant deadAddress = address(0x000000000000000000000000000000000000dEaD); address public constant developerWallet = 0xFD93f9d518286066241539396234348445d10F44; // Strings string public constant exchangeLink = "https://app.uniswap.or/swap"; string public constant websiteLink = "https://AbstractALPHA.xyz"; // Addresses address public communityWallet; address public marketingWallet; // Pack booleans together in a single storage slot bool public tradable; bool public swappable; bool public restrictions = true; bool public taxation = true; bool public taxLopsided = true; bool private swapping; // Use uint8 for small numbers to pack variables uint8 private immutable communityTax = 1; uint8 private immutable marketingTax = 1; uint8 private immutable developerTax = 1; uint8 private immutable communityLopsidedSellTax = 6; uint8 private immutable marketingLopsidedSellTax = 6; uint8 private immutable developerLopsidedSellTax = 4; // Public variables uint256 public swapTokenAmount; uint256 public restrictMaxTransaction; uint256 public restrictMaxWallet; uint256 public immutable totalBuyTax; uint256 public immutable totalSellTax; uint256 public immutable totalLopsidedSellTax; // Private accounting uint256 private communityTokens; uint256 private marketingTokens; uint256 private developerTokens; // Mappings mapping(address => bool) private automatedMarketMakerPairs; // Events event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event WalletUpdated(address indexed newWallet, address indexed oldWallet, uint8 walletType); constructor() ERC20("Abstract ALPHA", "ALPHA") { address _uniswapV2Router = 0xad1eCa41E6F772bE3cb5A48A6141f9bcc1AF9F7c; // Calculate total taxes once totalBuyTax = communityTax + marketingTax + developerTax; totalSellTax = totalBuyTax; totalLopsidedSellTax = communityLopsidedSellTax + marketingLopsidedSellTax + developerLopsidedSellTax; // Initialize wallets first communityWallet = 0x1f9aA613658dDb40910BDcaD1E235Fc1d98e7F17; marketingWallet = 0x9de74AB6116cF298C99C934292BA64b5E064d44d; // Deploy with initial supply uint256 totalSupply = 100_000_000 * 10**decimals(); // Use decimals() function _mint(address(this), totalSupply); // Set initial parameters swapTokenAmount = totalSupply / 2000; restrictMaxTransaction = totalSupply / 100; restrictMaxWallet = totalSupply / 20; // Initialize router first uniswapV2Router = IUniswapV2Router02(_uniswapV2Router); // Approve before creating pair _approve(address(this), _uniswapV2Router, type(uint256).max); // Create pair after approvals uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()) .createPair(address(this), uniswapV2Router.WETH()); // Set pair _setAutomatedMarketMakerPair(uniswapV2Pair, true); } receive() external payable {} function enableTrading() external onlyOwner { require(!tradable, "Trading already enabled"); uint256 tokensInWallet = balanceOf(address(this)); uniswapV2Router.addLiquidityETH{value: address(this).balance}( address(this), tokensInWallet, 0, 0, owner(), block.timestamp ); tradable = true; swappable = true; } function updateSwapTokenAmount(uint256 newAmount) external onlyOwner returns (bool) { require(newAmount >= totalSupply() / 100000, "Swap amount too low"); require(newAmount <= totalSupply() / 200, "Swap amount too high"); swapTokenAmount = newAmount; return true; } function updateCommunityWallet(address _communityWallet) external onlyOwner { require(_communityWallet != address(0), "Invalid address"); emit WalletUpdated(_communityWallet, communityWallet, 0); communityWallet = _communityWallet; } function updateMarketingWallet(address _marketingWallet) external onlyOwner { require(_marketingWallet != address(0), "Invalid address"); emit WalletUpdated(_marketingWallet, marketingWallet, 1); marketingWallet = _marketingWallet; } function removeRestrictions() external onlyOwner { restrictions = false; } function resetTax() external onlyOwner { taxation = true; taxLopsided = true; } function reduceSellTax() external onlyOwner { taxLopsided = false; } function removeTax() external onlyOwner { taxation = false; } function withdrawStuckETH() public onlyOwner { (bool success, ) = msg.sender.call{value: address(this).balance}(""); require(success, "Transfer failed"); } function withdrawStuckTokens(address tkn) public onlyOwner { uint256 amount = IERC20(tkn).balanceOf(address(this)); require(amount > 0, "No tokens"); IERC20(tkn).transfer(msg.sender, amount); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function _transfer(address from, address to, uint256 amount) internal override { require(from != address(0), "ERC20: transfer from zero address"); require(to != address(0), "ERC20: transfer to zero address"); if (amount == 0) { super._transfer(from, to, 0); return; } if (!tradable) { require(_isWhitelisted(from) || _isWhitelisted(to), "Trading disabled"); } if (restrictions) { _validateTransferLimits(from, to, amount); } if (_shouldSwap(from, to)) { swapping = true; distributeTax(); swapping = false; } uint256 fees = _calculateFees(from, to, amount); if (fees > 0) { super._transfer(from, address(this), fees); amount -= fees; } super._transfer(from, to, amount); } function _isWhitelisted(address account) private view returns (bool) { return account == owner() || account == address(this) || account == deadAddress || account == communityWallet || account == marketingWallet || account == developerWallet; } function _validateTransferLimits(address from, address to, uint256 amount) private view { if (automatedMarketMakerPairs[from] && !_isWhitelisted(to)) { require(amount <= restrictMaxTransaction, "Max tx exceeded"); require(balanceOf(to) + amount <= restrictMaxWallet, "Max wallet exceeded"); } else if (automatedMarketMakerPairs[to] && !_isWhitelisted(from)) { require(amount <= restrictMaxTransaction, "Max tx exceeded"); } else if (!_isWhitelisted(to)) { require(balanceOf(to) + amount <= restrictMaxWallet, "Max wallet exceeded"); } } function _shouldSwap(address from, address to) private view returns (bool) { return swappable && !swapping && balanceOf(address(this)) >= swapTokenAmount && !automatedMarketMakerPairs[from] && !_isWhitelisted(from) && !_isWhitelisted(to); } function _calculateFees(address from, address to, uint256 amount) private view returns (uint256) { if (!taxation || swapping) return 0; unchecked { if (automatedMarketMakerPairs[to]) { if (taxLopsided) { return (amount * totalLopsidedSellTax) / 100; } else { return (amount * totalSellTax) / 100; } } else if (automatedMarketMakerPairs[from]) { return (amount * totalBuyTax) / 100; } return 0; } } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function distributeTax() private { uint256 contractBalance = balanceOf(address(this)); if (contractBalance == 0) return; uint256 totalTokens = communityTokens + marketingTokens + developerTokens; if (totalTokens == 0) return; uint256 maxSwap = swapTokenAmount * 20; uint256 swapAmount = contractBalance > maxSwap ? maxSwap : contractBalance; swapTokensForEth(swapAmount); uint256 ethBalance = address(this).balance; if (ethBalance == 0) return; uint256 ethForCommunity = ethBalance * communityTokens / totalTokens; uint256 ethForMarketing = ethBalance * marketingTokens / totalTokens; uint256 ethForDeveloper = ethBalance - ethForCommunity - ethForMarketing; if (ethForCommunity > 0) { (bool success,) = communityWallet.call{value: ethForCommunity}(""); require(success, "Community transfer failed"); } if (ethForMarketing > 0) { (bool success,) = marketingWallet.call{value: ethForMarketing}(""); require(success, "Marketing transfer failed"); } if (ethForDeveloper > 0) { (bool success,) = developerWallet.call{value: ethForDeveloper}(""); require(success, "Developer transfer failed"); } communityTokens = 0; marketingTokens = 0; developerTokens = 0; } }
// 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.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 (last updated v4.6.0) (utils/math/SafeMath.sol) pragma solidity ^0.8.0; // CAUTION // This version of SafeMath should only be used with Solidity 0.8 or later, // because it relies on the compiler's built in overflow checks. /** * @dev Wrappers over Solidity's arithmetic operations. * * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler * now has built in overflow checking. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } /** * @dev Returns the subtraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } /** * @dev Returns the integer division of two unsigned integers, reverting on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } }
// 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", "metadata" ], "": [ "ast" ] } }, "detectMissingLibraries": false, "forceEVMLA": false, "enableEraVMExtensions": false, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"},{"indexed":false,"internalType":"uint8","name":"walletType","type":"uint8"}],"name":"WalletUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"communityWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"developerWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"exchangeLink","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"reduceSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeRestrictions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resetTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restrictMaxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"restrictMaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"restrictions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokenAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swappable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxLopsided","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalLopsidedSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradable","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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_communityWallet","type":"address"}],"name":"updateCommunityWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokenAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"websiteLink","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tkn","type":"address"}],"name":"withdrawStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
9c4d535b00000000000000000000000000000000000000000000000000000000000000000100042f30fb8fc558052aa88f032bb9288b06f15c61c49746e56319530e6e7100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x0004000000000002000d000000000002000000000401034f00000060011002700000037f03100197000300000034035500020000000403550000037f0010019d00000001002001900000005d0000c13d0000008001000039000000400010043f000000040030008c0000007c0000413d000000000104043b000000e001100270000003a20010009c000000a70000a13d000003a30010009c000000ba0000213d000003b20010009c000001230000a13d000003b30010009c0000017a0000213d000003b70010009c000002300000613d000003b80010009c000002370000613d000003b90010009c000005e70000c13d000000440030008c000005e70000413d0000000001000416000000000001004b000005e70000c13d0000000401400370000000000101043b000300000001001d000003860010009c000005e70000213d0000002401400370000000000101043b000200000001001d0000000001000411000000000010043f0000000101000039000000200010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f0000000100200190000005e70000613d000000000101043b0000000302000029000000000020043f000000200010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f0000000100200190000005e70000613d000000000101043b000000000101041a000000020310006c0000032d0000813d000000400100043d0000006402100039000003f00300004100000000003204350000004402100039000003f1030000410000000000320435000000240210003900000025030000390000000000320435000003a00200004100000000002104350000000402100039000000200300003900000000003204350000037f0010009c0000037f010080410000004001100210000003f2011001c700000df800010430000001e001000039000000400010043f0000000001000416000000000001004b000005e70000c13d0000000e01000039000001e00010043f0000038001000041000002000010043f0000026001000039000000400010043f0000000504000039000002200040043f0000038101000041000002400010043f0000000303000039000000000103041a000000010210019000000001051002700000007f0550618f0000001f0050008c00000000010000390000000101002039000000000012004b000000800000613d0000040001000041000000000010043f0000002201000039000000040010043f000004010100004100000df800010430000000000003004b000005e70000c13d000000000100001900000df70001042e000000200050008c0000009a0000413d000300000005001d000000000030043f00000000010004140000037f0010009c0000037f01008041000000c00110021000000382011001c700008010020000390df60df10000040f0000000100200190000005e70000613d000000000101043b00000003020000290000001f0220003900000005022002700000000002210019000000000021004b000000050400003900000003030000390000009a0000813d000000000001041b0000000101100039000000000021004b000000960000413d000002000100043d00000383011001970000001c011001bf000000000013041b000002200600043d000003840060009c000000e40000413d0000040001000041000000000010043f0000004101000039000000040010043f000004010100004100000df800010430000003c00010009c000000d50000a13d000003c10010009c0000014b0000a13d000003c20010009c000001ab0000213d000003c60010009c0000023e0000613d000003c70010009c000002490000613d000003c80010009c000005e70000c13d0000000001000416000000000001004b000005e70000c13d0000000701000039000000000101041a00000405001001980000048d0000013d000003a40010009c0000015e0000a13d000003a50010009c000001b60000213d000003a90010009c000002500000613d000003aa0010009c000002550000613d000003ab0010009c000005e70000c13d0000000001000416000000000001004b000005e70000c13d0000000501000039000000000101041a00000386011001970000000002000411000000000021004b000000000100003900000001010060390df608760000040f0000000701000039000000000201041a000003e402200197000000000021041b000000000100001900000df70001042e000003cf0010009c0000016b0000213d000003d60010009c000001da0000a13d000003d70010009c0000026f0000613d000003d80010009c0000027d0000613d000003d90010009c000005e70000c13d0000000001000416000000000001004b000005e70000c13d0000000201000039000003de0000013d0000000405000039000000000105041a000000010010019000000001031002700000007f0330618f0000001f0030008c00000000020000390000000102002039000000000121013f0000000100100190000000760000c13d000000200030008c000001100000413d000200000003001d000300000006001d000000000050043f00000000010004140000037f0010009c0000037f01008041000000c00110021000000382011001c700008010020000390df60df10000040f0000000100200190000005e70000613d00000003060000290000001f026000390000000502200270000000200060008c0000000002004019000000000301043b00000002010000290000001f01100039000000050110027000000000011300190000000002230019000000000012004b00000005040000390000000405000039000001100000813d000000000002041b0000000102200039000000000012004b0000010c0000413d0000001f0060008c000002250000a13d000300000006001d000000000050043f00000000010004140000037f0010009c0000037f01008041000000c00110021000000382011001c700008010020000390df60df10000040f0000000100200190000005e70000613d00000003060000290000041002600198000000000101043b000004920000c13d00000020030000390000049e0000013d000003ba0010009c000001e70000a13d000003bb0010009c0000028b0000613d000003bc0010009c000002ee0000613d000003bd0010009c000005e70000c13d0000000001000416000000000001004b000005e70000c13d0000000403000039000000000203041a000000010520019000000001012002700000007f0410018f00000000010460190000001f0010008c00000000060000390000000106002039000000000662013f0000000100600190000000760000c13d000000800010043f000000000005004b0000043b0000613d000000000030043f000000020020008c000005120000413d000003f50200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000014004b000001420000413d000005f30000013d000003c90010009c000001fc0000a13d000003ca0010009c000002f70000613d000003cb0010009c000002fe0000613d000003cc0010009c000005e70000c13d0000000001000416000000000001004b000005e70000c13d0000000001000412000900000001001d000801000000003d000080050100003900000044030000390000000004000415000000090440008a000004810000013d000003ac0010009c000002110000a13d000003ad0010009c000003380000613d000003ae0010009c0000033d0000613d000003af0010009c000005e70000c13d0000000001000416000000000001004b000005e70000c13d0000000901000039000003de0000013d000003d00010009c0000021a0000a13d000003d10010009c0000035a0000613d000003d20010009c000003650000613d000003d30010009c000005e70000c13d0000000001000416000000000001004b000005e70000c13d0000dead01000039000000800010043f000003e50100004100000df70001042e000003b40010009c0000039e0000613d000003b50010009c000003bb0000613d000003b60010009c000005e70000c13d000000240030008c000005e70000413d0000000001000416000000000001004b000005e70000c13d0000000401400370000000000101043b000300000001001d000003860010009c000005e70000213d0000000501000039000000000101041a00000386011001970000000002000411000000000021004b0000046e0000c13d0000000305000029000000000005004b000003b10000613d0000000701000039000000000201041a0000000101000039000000800010043f00000000010004140000037f0010009c0000037f01008041000000c001100210000003eb011001c7000200000002001d00000386062001970000800d020000390000000303000039000003ec040000410df60dec0000040f0000000100200190000005e70000613d0000000201000029000003850110019700000003011001af0000000702000039000000000012041b000000000100001900000df70001042e000003c30010009c000003d00000613d000003c40010009c000003e20000613d000003c50010009c000005e70000c13d0000000001000416000000000001004b000005e70000c13d0000000701000039000002f20000013d000003a60010009c000003fa0000613d000003a70010009c000004170000613d000003a80010009c000005e70000c13d0000000001000416000000000001004b000005e70000c13d0000000501000039000000000101041a00000386011001970000000002000411000000000021004b0000046e0000c13d000003dc0100004100000000001004430000000001000410000000040010044300000000010004140000037f0010009c0000037f01008041000000c001100210000003dd011001c70000800a020000390df60df10000040f0000000100200190000005040000613d000000000301043b00000000010004140000000004000411000000040040008c0000057d0000c13d00000001020000390000000101000031000006130000013d000003da0010009c000004290000613d000003db0010009c000005e70000c13d0000000001000416000000000001004b000005e70000c13d000000c001000039000000400010043f0000001902000039000000800020043f0000040e02000041000004490000013d000003be0010009c000004410000613d000003bf0010009c000005e70000c13d0000000001000416000000000001004b000005e70000c13d0000000501000039000000000101041a00000386011001970000000002000411000000000021004b000000000100003900000001010060390df608760000040f0000000701000039000000000201041a0000040202200197000000000021041b000000000100001900000df70001042e000003cd0010009c000004520000613d000003ce0010009c000005e70000c13d0000000001000416000000000001004b000005e70000c13d0000000501000039000000000101041a00000386011001970000000002000411000000000021004b000000000100003900000001010060390df608760000040f0000000701000039000000000201041a0000040602200197000000000021041b000000000100001900000df70001042e000003b00010009c000004770000613d000003b10010009c000005e70000c13d0000000001000416000000000001004b000005e70000c13d0000000601000039000002f20000013d000003d40010009c000004870000613d000003d50010009c000005e70000c13d0000000001000416000000000001004b000005e70000c13d0000040c01000041000000800010043f000003e50100004100000df70001042e000000000006004b0000000001000019000002290000613d000002400100043d0000000302600210000004110220027f0000041102200167000000000121016f0000000102600210000000000121019f000004ac0000013d0000000001000416000000000001004b000005e70000c13d0000000701000039000000000101041a000003f4001001980000048d0000013d0000000001000416000000000001004b000005e70000c13d0000000701000039000000000101041a000003f3001001980000048d0000013d0000000001000416000000000001004b000005e70000c13d0000000001000412000700000001001d000600200000003d000080050100003900000044030000390000000004000415000000070440008a000002870000013d0000000001000416000000000001004b000005e70000c13d0000000701000039000000000101041a000003f6001001980000048d0000013d0000000001000416000000000001004b000005e70000c13d0000000a01000039000003de0000013d000000440030008c000005e70000413d0000000001000416000000000001004b000005e70000c13d0000000401400370000000000101043b000003860010009c000005e70000213d0000002402400370000000000202043b000300000002001d000003860020009c000005e70000213d000000000010043f0000000101000039000000200010043f000000400200003900000000010000190df60db90000040f0000000302000029000000000020043f000000200010043f00000000010000190000004002000039000003dd0000013d000000440030008c000005e70000413d0000000001000416000000000001004b000005e70000c13d0000000401400370000000000201043b000003860020009c000005e70000213d0000002401400370000000000301043b00000000010004110df608890000040f000003c80000013d0000000001000416000000000001004b000005e70000c13d0000000001000412000d00000001001d000c00000000003d0000800501000039000000440300003900000000040004150000000d0440008a0000000504400210000003ea020000410df60dce0000040f000002f30000013d0000000001000416000000000001004b000005e70000c13d0000000501000039000000000101041a00000386011001970000000002000411000000000021004b0000046e0000c13d0000000701000039000000000101041a000003f600100198000005050000c13d0000000001000410000000000010043f000000200000043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f0000000100200190000005e70000613d000000000101043b000000000101041a000300000001001d000003dc0100004100000000001004430000000001000410000000040010044300000000010004140000037f0010009c0000037f01008041000000c001100210000003dd011001c70000800a020000390df60df10000040f0000000100200190000005040000613d000000000101043b000100000001001d000000400300043d000000840130003900000000020004110000000000210435000000240130003900000003020000290000000000210435000003f801000041000000000013043500000004013000390000000002000410000000000021043500000064013000390000000000010435000200000003001d00000044013000390000000000010435000003f901000041000000000010044300000000010004140000037f0010009c0000037f01008041000000c001100210000003fa011001c70000800b020000390df60df10000040f0000000100200190000005040000613d000000000101043b0000000202000029000000a4022000390000000000120435000003ea01000041000000000010044300000000010004120000000400100443000000240000044300000000010004140000037f0010009c0000037f01008041000000c001100210000003fb011001c700008005020000390df60df10000040f0000000100200190000005040000613d000000000201043b00000000010004140000038604200197000000040040008c000006ba0000c13d0000000103000031000000600030008c00000060040000390000000004034019000007a10000013d0000000001000416000000000001004b000005e70000c13d0000000501000039000000000101041a0000038601100197000000800010043f000003e50100004100000df70001042e0000000001000416000000000001004b000005e70000c13d0000001201000039000000800010043f000003e50100004100000df70001042e000000440030008c000005e70000413d0000000001000416000000000001004b000005e70000c13d0000000401400370000000000101043b000300000001001d000003860010009c000005e70000213d0000000001000411000000000010043f0000000101000039000000200010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c7000080100200003900020000000403530df60df10000040f000000020300035f0000000100200190000005e70000613d000000000101043b0000000302000029000000000020043f000000200010043f0000002401300370000000000101043b000200000001001d00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f0000000100200190000005e70000613d000000000101043b000000000101041a0000000202000029000000000021001a000004fe0000413d0000000003210019000000000100041100000003020000290df608890000040f000000400100043d000000010200003900000000002104350000037f0010009c0000037f010080410000004001100210000003ed011001c700000df70001042e0000000001000416000000000001004b000005e70000c13d0000000801000039000003de0000013d000000240030008c000005e70000413d0000000001000416000000000001004b000005e70000c13d0000000401400370000000000101043b000300000001001d000003860010009c000005e70000213d0000000501000039000000000101041a00000386011001970000000002000411000000000021004b0000046e0000c13d000003e601000041000000800010043f0000000001000410000000840010043f00000000010004140000000302000029000000040020008c000005840000c13d0000000103000031000000200030008c00000020040000390000000004034019000005a90000013d0000000001000416000000000001004b000005e70000c13d0000000001000412000b00000001001d000a01200000003d0000800501000039000000440300003900000000040004150000000b0440008a000004810000013d000000640030008c000005e70000413d0000000001000416000000000001004b000005e70000c13d0000000401400370000000000101043b000300000001001d000003860010009c000005e70000213d0000002401400370000000000101043b000200000001001d000003860010009c000005e70000213d0000004401400370000000000101043b000100000001001d0000000301000029000000000010043f0000000101000039000000200010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f0000000100200190000005e70000613d000000000101043b0000000002000411000000000020043f000000200010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f0000000100200190000005e70000613d000000000101043b000000000101041a000004110010009c000006a90000613d000000010310006c000006a60000813d000000400100043d00000044021000390000040b03000041000000000032043500000024021000390000001d03000039000004de0000013d000000240030008c000005e70000413d0000000001000416000000000001004b000005e70000c13d0000000401400370000000000101043b000300000001001d000003860010009c000005e70000213d0000000501000039000000000101041a00000386011001970000000002000411000000000021004b0000046e0000c13d0000000305000029000000000005004b000005c20000c13d000003a001000041000000800010043f0000002001000039000000840010043f0000000f01000039000000a40010043f000003ee01000041000000c40010043f000003ef0100004100000df800010430000000440030008c000005e70000413d0000000001000416000000000001004b000005e70000c13d0000000401400370000000000201043b000003860020009c000005e70000213d0000002401400370000000000301043b00000000010004110df608e00000040f0000000101000039000000400200043d00000000001204350000037f0020009c0000037f020080410000004001200210000003ed011001c700000df70001042e000000240030008c000005e70000413d0000000001000416000000000001004b000005e70000c13d0000000401400370000000000101043b000003860010009c000005e70000213d000000000010043f000000200000043f000000400200003900000000010000190df60db90000040f000000000101041a000000800010043f000003e50100004100000df70001042e0000000001000416000000000001004b000005e70000c13d0000000501000039000000000201041a00000386032001970000000005000411000000000053004b0000046e0000c13d0000038502200197000000000021041b00000000010004140000037f0010009c0000037f01008041000000c00110021000000387011001c70000800d020000390000000303000039000003880400004100000000060000190df60dec0000040f00000001002001900000007e0000c13d000005e70000013d000000240030008c000005e70000413d0000000001000416000000000001004b000005e70000c13d0000000401400370000000000601043b000003860060009c000005e70000213d0000000501000039000000000201041a00000386032001970000000005000411000000000053004b0000046e0000c13d000000000006004b000005d90000c13d000003a001000041000000800010043f0000002001000039000000840010043f0000002601000039000000a40010043f000003e101000041000000c40010043f000003e201000041000000e40010043f000003e30100004100000df8000104300000000001000416000000000001004b000005e70000c13d0000000501000039000000000101041a00000386011001970000000002000411000000000021004b000000000100003900000001010060390df608760000040f0000000701000039000000000201041a000003df02200197000003e0022001c7000000000021041b000000000100001900000df70001042e0000000001000416000000000001004b000005e70000c13d0000000303000039000000000203041a000000010520019000000001012002700000007f0410018f00000000010460190000001f0010008c00000000060000390000000106002039000000000662013f0000000100600190000000760000c13d000000800010043f000000000005004b0000050f0000c13d0000041201200197000000a00010043f000000000004004b000000c001000039000000a001006039000005f40000013d0000000001000416000000000001004b000005e70000c13d000000c001000039000000400010043f0000001b02000039000000800020043f0000040302000041000000a00020043f00000080020000390df6084f0000040f000000c00110008a0000037f0010009c0000037f01008041000000600110021000000404011001c700000df70001042e000000240030008c000005e70000413d0000000001000416000000000001004b000005e70000c13d0000000401400370000000000101043b0000000502000039000000000202041a00000386022001970000000003000411000000000032004b0000046e0000c13d0000000202000039000000000202041a000004080320012a000000000031004b000005140000813d000003a001000041000000800010043f0000002001000039000000840010043f0000001301000039000000a40010043f0000040a01000041000000c40010043f000003ef0100004100000df800010430000003a001000041000000800010043f0000002001000039000000840010043f000000a40010043f0000040701000041000000c40010043f000003ef0100004100000df8000104300000000001000416000000000001004b000005e70000c13d0000000001000412000500000001001d000401400000003d000080050100003900000044030000390000000004000415000000050440008a0000000504400210000003ea020000410df60dce0000040f000000800010043f000003e50100004100000df70001042e0000000001000416000000000001004b000005e70000c13d0000000701000039000000000101041a0000040d001001980000000001000039000000010100c039000000800010043f000003e50100004100000df70001042e000000010320008a000000050330027000000000043100190000002003000039000000010440003900000220053000390000000005050433000000000051041b00000020033000390000000101100039000000000041004b000004970000c13d000000000062004b000004a80000813d0000000302600210000000f80220018f000004110220027f000004110220016700000220033000390000000003030433000000000223016f000000000021041b000000010160021000000001011001bf00000005040000390000000405000039000000000015041b000000000104041a00000385021001970000000006000411000000000226019f000000000024041b000000000200041400000386051001970000037f0020009c0000037f02008041000000c00120021000000387011001c70000800d02000039000000030300003900000388040000410df60dec0000040f0000000100200190000005e70000613d0000000701000039000000000201041a0000000103000039000000c00030043f000000e00030043f000001000030043f0000000603000039000001200030043f000001400030043f0000000404000039000001600040043f0000000304000039000001800040043f000001a00040043f0000001004000039000001c00040043f000000000403041a000003850440019700000389044001c7000000000043041b0000038a022001970000038b022001c7000000000021041b0000000003000410000000000003004b000004e90000c13d000000400100043d00000044021000390000039f03000041000000000032043500000024021000390000001f030000390000000000320435000003a00200004100000000002104350000000402100039000000200300003900000000003204350000037f0010009c0000037f010080410000004001100210000003a1011001c700000df8000104300000000201000039000000000201041a0000038c0220009c000004fe0000813d000000000021041b000000000030043f000000200000043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f0000000100200190000005e70000613d000000000101043b000000000201041a0000038c0220009c0000000006000410000005210000413d0000040001000041000000000010043f0000001101000039000000040010043f000004010100004100000df800010430000000000001042f000003a001000041000000800010043f0000002001000039000000840010043f0000001701000039000000a40010043f000003f701000041000000c40010043f000003ef0100004100000df800010430000000000030043f000000020020008c000005e90000813d000000a001000039000005f40000013d000000c80220011a000000000021004b000006050000a13d000003a001000041000000800010043f0000002001000039000000840010043f0000001401000039000000a40010043f0000040901000041000000c40010043f000003ef0100004100000df800010430000000000021041b0000038f01000041000000400200043d00000000001204350000037f0020009c0000037f02008041000000400120021000000000020004140000037f0020009c0000037f02008041000000c002200210000000000112019f00000382011001c70000800d020000390000000303000039000003900400004100000000050000190df60dec0000040f0000000100200190000005e70000613d00000391010000410000000802000039000000000012041b00000392010000410000000902000039000000000012041b00000393010000410000000a02000039000000000012041b0000039401000041000000800010043f0000000001000410000000000010043f0000000101000039000000200010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f0000000100200190000005e70000613d000000000101043b0000039402000041000000000020043f000000200010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f0000000100200190000005e70000613d000000000101043b000000010200008a000000000021041b000000400100043d00000000002104350000037f0010009c0000037f01008041000000400110021000000000020004140000037f0020009c0000037f02008041000000c002200210000000000112019f00000382011001c70000800d0200003900000003030000390000039504000041000000000500041000000394060000410df60dec0000040f0000000100200190000005e70000613d000000800200043d000000400300043d0000039601000041000300000003001d000000000013043500000000010004140000038602200197000000040020008c000006c70000c13d0000000104000031000000200040008c0000002004008039000006f10000013d0000037f0010009c0000037f01008041000000c001100210000000000003004b0000060b0000c13d00000000020400190000060e0000013d0000037f0010009c0000037f01008041000000c001100210000003e7011001c70df60df10000040f00000060031002700000037f03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000000800a000039000005980000613d000000000801034f000000008908043c000000000a9a043600000000005a004b000005940000c13d000000000006004b000005a50000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000006450000613d0000001f01400039000000600110018f00000080021001bf000200000002001d000000400020043f000000200030008c000005e70000413d000000a40210003900000084031001bf000000800400043d000000000004004b000006630000c13d000003a004000041000000020500002900000000004504350000002004000039000000000043043500000009030000390000000000320435000000c401100039000003e90200004100000000002104350000004001500210000003a1011001c700000df8000104300000000601000039000000000201041a000000800000043f00000000010004140000037f0010009c0000037f01008041000000c001100210000003eb011001c7000200000002001d00000386062001970000800d020000390000000303000039000003ec040000410df60dec0000040f0000000100200190000005e70000613d0000000201000029000003850110019700000003011001af0000000602000039000000000012041b000000000100001900000df70001042e0000038502200197000000000262019f000000000021041b00000000010004140000037f0010009c0000037f01008041000000c00110021000000387011001c70000800d02000039000000030300003900000388040000410df60dec0000040f00000001002001900000007e0000c13d000000000100001900000df8000104300000040f0200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000014004b000005eb0000413d000000c001300039000000800210008a00000080010000390df608640000040f000000400100043d000300000001001d00000080020000390df6084f0000040f000000030200002900000000012100490000037f0010009c0000037f0100804100000060011002100000037f0020009c0000037f020080410000004002200210000000000121019f00000df70001042e0000000802000039000000000012041b0000000101000039000000800010043f000003e50100004100000df70001042e00000387011001c7000080090200003900000000050000190df60dec0000040f000300000001035500000060011002700001037f0010019d0000037f01100197000000000001004b0000061e0000c13d00000001002001900000007e0000c13d000000400100043d0000004402100039000003de03000041000000000032043500000024021000390000000f03000039000004de0000013d0000001f0410003900000410044001970000003f044000390000041005400197000000400400043d0000000005540019000000000045004b00000000060000390000000106004039000003990050009c000000a10000213d0000000100600190000000a10000c13d000000400050043f000000000614043600000410031001980000001f0410018f00000000013600190000000305000367000006370000613d000000000705034f000000007807043c0000000006860436000000000016004b000006330000c13d000000000004004b000006150000613d000000000335034f0000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f0000000000310435000006150000013d0000001f0530018f0000039806300198000000400200043d0000000004620019000006500000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000064c0000c13d000000000005004b0000065d0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000037f0020009c0000037f020080410000004002200210000000000112019f00000df800010430000003e80500004100000002060000290000000000560435000000000506001900000000060004110000000000630435000000000042043500000000030004140000000302000029000000040020008c000006710000c13d0000000001150019000000400010043f0000069e0000013d0000037f0030009c0000037f03008041000000c0013002100000004003500210000000000131019f0000039c011001c70df60dec0000040f00000060031002700000037f03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000205700029000006870000613d000000000801034f0000000209000029000000008a08043c0000000009a90436000000000059004b000006830000c13d000000000006004b000006940000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000006ae0000613d0000001f01400039000000600110018f0000000201100029000000400010043f000000200030008c000005e70000413d00000002010000290000000001010433000000000001004b0000000002000039000000010200c039000000000021004b0000007e0000613d000005e70000013d000000030100002900000000020004110df608890000040f0000000301000029000000020200002900000001030000290df608e00000040f000003300000013d0000001f0530018f0000039806300198000000400200043d0000000004620019000006500000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000006b50000c13d000006500000013d00000002020000290000037f0020009c0000037f0200804100000040022002100000037f0010009c0000037f01008041000000c001100210000000000121019f000000010000006b0000077c0000c13d000003fd011001c70000000002040019000007800000013d00000003030000290000037f0030009c0000037f0300804100000040033002100000037f0010009c0000037f01008041000000c001100210000000000131019f00000397011001c70df60df10000040f00000060031002700000037f03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000305700029000006e00000613d000000000801034f0000000309000029000000008a08043c0000000009a90436000000000059004b000006dc0000c13d000000000006004b000006ed0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000007c10000613d0000001f01400039000000600110018f0000000303100029000000000013004b00000000020000390000000102004039000200000003001d000003990030009c000000a10000213d0000000100200190000000a10000c13d0000000202000029000000400020043f000000200040008c000005e70000413d00000003020000290000000002020433000300000002001d000003860020009c000005e70000213d000000800200043d0000039a030000410000000204000029000000000034043500000000030004140000038602200197000000040020008c000007cd0000c13d0000000202100029000100000002001d000003990020009c000000a10000213d0000000102000029000000400020043f00000002020000290000000002020433000003860020009c000005e70000213d0000000104000029000000240340003900000000002304350000039b02000041000000000024043500000004024000390000000003000410000000000032043500000000020004140000000303000029000000040030008c0000080e0000c13d0000000101100029000003990010009c000000a10000213d000000400010043f00000001010000290000000001010433000300000001001d000003860010009c000005e70000213d0000000301000029000000a00010043f000000000010043f0000000e01000039000000200010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f0000000100200190000005e70000613d000000000101043b000000000201041a000004120220019700000001022001bf000000000021041b00000000010004140000037f0010009c0000037f01008041000000c00110021000000387011001c70000800d02000039000000030300003900000001060000390000039d0400004100000003050000290df60dec0000040f0000000100200190000005e70000613d000000800100043d00000140000004430000016000100443000000a00200043d00000020010000390000018000100443000001a000200443000000c00200043d0000004003000039000001c000300443000001e0002004430000006002000039000000e00300043d000002000020044300000220003004430000008002000039000001000300043d00000240002004430000026000300443000000a002000039000001200300043d0000028000200443000002a000300443000000c002000039000001400300043d000002c000200443000002e000300443000000e002000039000001600300043d000003000020044300000320003004430000010002000039000001800300043d000003400020044300000360003004430000012002000039000001a00300043d0000038000200443000003a0003004430000014002000039000001c00300043d000003c000200443000003e00030044300000100001004430000000b0100003900000120001004430000039e0100004100000df70001042e000003fc011001c70000800902000039000000010300002900000000050000190df60dec0000040f00000060031002700000037f03300197000000600030008c000000600400003900000000040340190000001f0640018f00000060074001900000000205700029000007900000613d000000000801034f0000000209000029000000008a08043c0000000009a90436000000000059004b0000078c0000c13d000000000006004b0000079d0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000007b50000613d0000001f01400039000000e00210018f0000000201200029000000000021004b00000000020000390000000102004039000003990010009c000000a10000213d0000000100200190000000a10000c13d000000400010043f000000600030008c000005e70000413d0000000702000039000000000102041a000003fe01100197000003ff011001c7000000000012041b000000000100001900000df70001042e0000001f0530018f0000039806300198000000400200043d0000000004620019000006500000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000007bc0000c13d000006500000013d0000001f0530018f0000039806300198000000400200043d0000000004620019000006500000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000007c80000c13d000006500000013d00000002010000290000037f0010009c0000037f0100804100000040011002100000037f0030009c0000037f03008041000000c003300210000000000113019f00000397011001c70df60df10000040f00000060031002700000037f03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000205700029000007e60000613d000000000801034f0000000209000029000000008a08043c0000000009a90436000000000059004b000007e20000c13d000000000006004b000007f30000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000008020000613d0000001f01400039000000600110018f0000000202100029000100000002001d000003990020009c000000a10000213d0000000102000029000000400020043f000000200030008c000005e70000413d000007130000013d0000001f0530018f0000039806300198000000400200043d0000000004620019000006500000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000008090000c13d000006500000013d0000000101000029000100000001001d0000037f0010009c0000037f0100804100000040011002100000037f0020009c0000037f02008041000000c002200210000000000112019f0000039c011001c700000003020000290df60dec0000040f00000060031002700000037f03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000105700029000008290000613d000000000801034f0000000109000029000000008a08043c0000000009a90436000000000059004b000008250000c13d000000000006004b000008360000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000008430000613d0000001f01400039000000600110018f0000000101100029000003990010009c000000a10000213d000000400010043f000000200030008c000005e70000413d000007270000013d0000001f0530018f0000039806300198000000400200043d0000000004620019000006500000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000084a0000c13d000006500000013d00000020030000390000000004310436000000003202043400000000002404350000004001100039000000000002004b0000085e0000613d000000000400001900000000054100190000000006430019000000000606043300000000006504350000002004400039000000000024004b000008570000413d000000000321001900000000000304350000001f0220003900000410022001970000000001210019000000000001042d0000001f0220003900000410022001970000000001120019000000000021004b00000000020000390000000102004039000003990010009c000008700000213d0000000100200190000008700000c13d000000400010043f000000000001042d0000040001000041000000000010043f0000004101000039000000040010043f000004010100004100000df800010430000000000001004b000008790000613d000000000001042d000000400100043d000000440210003900000407030000410000000000320435000003a0020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000000003204350000037f0010009c0000037f010080410000004001100210000003a1011001c700000df80001043000030000000000020000038601100198000008c20000613d000200000003001d000303860020019c000008cc0000613d000100000001001d000000000010043f0000000101000039000000200010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f00000001002001900000000303000029000008c00000613d000000000101043b000000000030043f000000200010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f00000003060000290000000100200190000008c00000613d000000000101043b0000000202000029000000000021041b000000400100043d00000000002104350000037f0010009c0000037f01008041000000400110021000000000020004140000037f0020009c0000037f02008041000000c002200210000000000112019f00000382011001c70000800d020000390000000303000039000003950400004100000001050000290df60dec0000040f0000000100200190000008c00000613d000000000001042d000000000100001900000df800010430000000400100043d00000064021000390000041503000041000000000032043500000044021000390000041603000041000000000032043500000024021000390000002403000039000008d50000013d000000400100043d000000640210003900000413030000410000000000320435000000440210003900000414030000410000000000320435000000240210003900000022030000390000000000320435000003a00200004100000000002104350000000402100039000000200300003900000000003204350000037f0010009c0000037f010080410000004001100210000003f2011001c700000df800010430000a000000000002000a03860010019c00000d1e0000613d000003860620019800000d280000613d000000000003004b000009820000613d0000000701000039000000000801041a000003f600800198000008f00000c13d0000000501000039000000000101041a00000386011001970000000a0010006b000009e10000c13d000800000003001d000003f400800198000900000006001d000700000008001d000009310000613d0000000a01000029000000000010043f0000000e01000039000000200010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f000000010020019000000d1c0000613d000000000101043b000000000101041a000000ff00100190000000050100003900000009020000290000090c0000613d000000000101041a0000038601100197000000000012004b000009ab0000c13d000000000020043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f000000010020019000000d1c0000613d0000000502000039000000000202041a0000038602200197000000000101043b000000000101041a000000ff001001900000092d0000613d0000000a0020006b0000092d0000613d00000000010004100000000a03000029000000000013004b000000000100003900000001010060390000dead0030008c0000092d0000613d00000001001001900000092d0000c13d0000000601000039000000000101041a00000386011001970000000a0010006b00000ac50000c13d0000000906000029000000000026004b0000000708000029000009940000c13d0000040d00800198000009600000613d0000041a00800198000009600000c13d0000000001000410000000000010043f000000200000043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f000000010020019000000d1c0000613d0000000802000039000000000202041a000000000101043b000000000101041a000000000021004b0000000906000029000009600000413d0000000a01000029000000000010043f0000000e01000039000000200010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f000000010020019000000d1c0000613d000000000101043b000000000101041a000000ff0010019000000009060000290000000705000029000009600000c13d0000000501000039000000000101041a00000386011001970000000a0010006b00000ada0000c13d0000000701000039000000000101041a000004050010019800000a800000613d0000041a0010019800000a800000c13d000700000001001d000000000060043f0000000e01000039000000200010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f000000010020019000000d1c0000613d000000000101043b000000000101041a000000ff0010019000000a0b0000613d000003ea010000410000000000100443000000000100041200000004001004430000000701000029000003f30010019800000a220000613d00000140010000390000002400100443000000000100041400000a250000013d000000200000043f000000000060043f000000400100043d00000000000104350000037f0010009c0000037f01008041000000400110021000000000020004140000037f0020009c0000037f02008041000000c002200210000000000112019f00000382011001c70000800d02000039000000030300003900000390040000410000000a0500002900000ac10000013d0000000001000410000000000016004b000000000100003900000001010060390000dead0060008c000009310000613d0000000100100190000009310000c13d0000000601000039000000000101041a0000038601100197000000000016004b000009310000613d0000040c0060009c000009310000613d0000000701000039000000000101041a0000038601100197000000000016004b000009310000613d000000200000043f0000000001000414000009c60000013d0000000001000410000000000012004b000000000100003900000001010060390000dead0020008c0000090c0000613d00000001001001900000090c0000c13d0000000601000039000000000101041a0000038601100197000000000012004b0000090c0000613d0000040c0020009c0000090c0000613d0000000701000039000000000101041a0000038601100197000000000012004b0000090c0000613d0000000901000039000000000101041a000000080010006c00000ad30000413d000000000020043f000000200000043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f000000010020019000000d1c0000613d000000000101043b000000000101041a0000000802000029000000000021001a00000d4e0000413d00000000012100190000000a02000039000000000202041a000000000021004b00000009060000290000000708000029000009310000a13d000000400100043d0000004402100039000004190300004100000000003204350000002402100039000000130300003900000d2e0000013d00000000020004100000000a04000029000000000024004b000000000500003900000001050060390000dead0040008c000008f00000613d0000000100500190000008f00000c13d0000000604000039000000000404041a00000386074001970000000a0070006b000008f00000613d0000000a040000290000040c0040009c000008f00000613d00000386048001970000000a0040006b000008f00000613d000000000016004b000008f00000613d000000000026004b000000000100003900000001010060390000dead0060008c000008f00000613d0000000100100190000008f00000c13d000000000076004b000008f00000613d0000040c0060009c000008f00000613d000000000046004b000008f00000613d000000400100043d0000004402100039000004170300004100000000003204350000002402100039000000100300003900000d2e0000013d0000000a01000029000000000010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f000000010020019000000d1c0000613d000000000101043b000000000101041a000000ff0010019000000a800000613d000003ea0100004100000000001004430000000001000412000000040010044300000100010000390000002400100443000000000100041400000a250000013d0000012001000039000000240010044300000000010004140000037f0010009c0000037f01008041000000c001100210000003fb011001c700008005020000390df60df10000040f000000010020019000000d4d0000613d000000000101043b00000008011000b9000000640010008c00000a800000413d000600000001001d0000000001000410000703860010019c00000d540000613d0000000a01000029000000000010043f000000200000043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f000000010020019000000d1c0000613d00000006020000290006006400200122000000000101043b000000000101041a000000060110006c000500000001001d00000d390000413d0000000a01000029000000000010043f000000200000043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f000000010020019000000d1c0000613d000000000101043b0000000502000029000000000021041b0000000701000029000000000010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f000000010020019000000d1c0000613d000000000101043b000000000201041a0000000603000029000000000032001a00000d4e0000413d0000000002320019000000000021041b000000400100043d00000000003104350000037f0010009c0000037f01008041000000400110021000000000020004140000037f0020009c0000037f02008041000000c002200210000000000112019f00000382011001c70000800d02000039000000030300003900000390040000410000000a0500002900000007060000290df60dec0000040f000000010020019000000d1c0000613d0000000602000029000000080120006b00000d4e0000413d000800000001001d0000000a01000029000000000010043f000000200000043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f000000010020019000000d1c0000613d000000000101043b000000000101041a000700080010007400000d390000413d0000000a01000029000000000010043f000000200000043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f000000010020019000000d1c0000613d000000000101043b0000000702000029000000000021041b0000000901000029000000000010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f000000010020019000000d1c0000613d000000000101043b000000000201041a0000000803000029000000000032001a00000d4e0000413d0000000002320019000000000021041b000000400100043d00000000003104350000037f0010009c0000037f01008041000000400110021000000000020004140000037f0020009c0000037f02008041000000c002200210000000000112019f00000382011001c70000800d02000039000000030300003900000390040000410000000a0500002900000009060000290df60dec0000040f000000010020019000000d1c0000613d000000000001042d0000000a010000290000040c0010009c0000092d0000613d0000000701000039000000000101041a00000386011001970000000a0010006b0000092d0000613d0000000901000039000000000101041a000000080010006c00000009060000290000000708000029000009310000813d000000400100043d00000044021000390000041803000041000000000032043500000024021000390000000f0300003900000d2e0000013d0000000a030000290000000002000410000000000023004b000000000200003900000001020060390000dead0030008c000009600000613d0000000100200190000009600000c13d0000000602000039000000000202041a00000386022001970000000a0020006b000009600000613d0000000a030000290000040c0030009c000009600000613d0000000703000039000000000303041a00000386033001970000000a0030006b000009600000613d000000000016004b000009600000613d0000000001000410000000000016004b000000000100003900000001010060390000dead0060008c000009600000613d0000000100100190000009600000c13d000000000026004b000009600000613d0000040c0060009c000009600000613d000000000036004b000009600000613d0000041b015001970000041c011001c70000000702000039000000000012041b0000000001000410000000000010043f000000200000043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f000000010020019000000d1c0000613d000000000101043b000000000401041a000000000004004b00000d160000613d0000000b01000039000000000101041a0000000c02000039000000000202041a000000000012001a00000d4e0000413d00000000011200190000000d02000039000000000202041a000000000012001a00000d4e0000413d000000000312001a00000d160000613d0000000801000039000000000201041a00000014012000c9000000000002004b00000b290000613d00000000022100d9000000140020008c00000d4e0000c13d000300000003001d000000000014004b0000000004018019000500000004001d000000400300043d0000041d0030009c00000d5e0000813d0000006001300039000000400010043f0000000202000039000600000003001d0000000005230436000000000200003100000002022003670000000003050019000000002402043c0000000003430436000000000013004b00000b380000c13d0000000001000410000200000005001d0000000000150435000003ea01000041000000000010044300000000010004120000000400100443000000240000044300000000010004140000037f0010009c0000037f01008041000000c001100210000003fb011001c700008005020000390df60df10000040f000000010020019000000d4d0000613d000000000201043b000000400500043d0000039a01000041000000000015043500000000010004140000038602200197000000040020008c000700000002001d00000b5b0000c13d0000000103000031000000200030008c0000002004000039000000000403401900000b870000013d0000037f0050009c0000037f03000041000000000305401900000040033002100000037f0010009c0000037f01008041000000c001100210000000000131019f00000397011001c7000400000005001d0df60df10000040f000000040900002900000060031002700000037f03300197000000200030008c000000200400003900000000040340190000001f0640018f0000002007400190000000000579001900000b750000613d000000000801034f000000008a08043c0000000009a90436000000000059004b00000b710000c13d000000000006004b00000b820000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000000d7e0000613d00000004050000290000001f01400039000000600210018f0000000001520019000000000021004b00000000020000390000000102004039000003990010009c00000d5e0000213d000000010020019000000d5e0000c13d000000400010043f000000200030008c00000d1c0000413d00000000010504330000041e0010009c00000d1c0000813d00000006030000290000000002030433000000020020008c00000d640000413d0000004002300039000000000012043500000000010004100000038602100198000000070100002900000d6a0000613d000000000001004b00000d740000613d000400000002001d000000000020043f0000000101000039000100000001001d000000200010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f000000010020019000000d1c0000613d000000000101043b0000000702000029000000000020043f000000200010043f00000000010004140000037f0010009c0000037f01008041000000c0011002100000038d011001c700008010020000390df60df10000040f000000010020019000000d1c0000613d000000000101043b0000000502000029000000000021041b000000400100043d00000000002104350000037f0010009c0000037f01008041000000400110021000000000020004140000037f0020009c0000037f02008041000000c002200210000000000112019f00000382011001c70000800d0200003900000003030000390000039504000041000000040500002900000007060000290df60dec0000040f000000010020019000000d1c0000613d0000041f0100004100000000001004430000000701000029000000040010044300000000010004140000037f0010009c0000037f01008041000000c001100210000003dd011001c700008002020000390df60df10000040f000000010020019000000d4d0000613d000000000101043b000000000001004b00000d1c0000613d000000400500043d0000004401500039000000a0020000390000000000210435000004200100004100000000001504350000000401500039000000050200002900000000002104350000002401500039000000000001043500000006010000290000000001010433000000a4025000390000000000120435000000c406500039000000000001004b00000bfe0000613d000000000200001900000002040000290000000043040434000003860330019700000000063604360000000102200039000000000012004b00000bf80000413d000600000006001d000000640150003900000000020004100000000000210435000003f901000041000000000010044300000000010004140000037f0010009c0000037f01008041000000c001100210000003fa011001c70000800b02000039000400000005001d0df60df10000040f000000010020019000000d4d0000613d000000000101043b00000004050000290000008402500039000000000012043500000000010004140000000702000029000000040020008c00000c2a0000613d00000006035000690000037f0030009c0000037f0300804100000060043002100000037f0050009c0000037f0300004100000000030540190000004003300210000000000334019f0000037f0010009c0000037f01008041000000c001100210000000000131019f0df60dec0000040f000000040500002900000060031002700001037f0030019d0003000000010355000000010020019000000d8a0000613d000003990050009c00000d5e0000213d000000400050043f000003dc0100004100000000001004430000000001000410000000040010044300000000010004140000037f0010009c0000037f01008041000000c001100210000003dd011001c70000800a020000390df60df10000040f000000010020019000000d4d0000613d000000000201043b000000000002004b000000030500002900000d160000613d0000000b01000039000000000301041a00000000012300a900000000042100d9000000000034004b00000d4e0000c13d0000000c03000039000000000303041a00000000062300a900000000042600d9000000000034004b00000d4e0000c13d00000000035100d9000000000432004b00000d4e0000413d00070000005600e1000000070240006c000500000002001d00000d4e0000413d000600000004001d000000000015004b00000c950000213d000400000006001d0000000601000039000000000201041a00000000010004140000038604200197000000040040008c00000c5d0000c13d000000010100003100000c690000013d0000037f0010009c0000037f01008041000000c00110021000000387011001c7000080090200003900000000050000190df60dec0000040f0001000100200193000300000001035500000060011002700001037f0010019d0000037f01100197000000000001004b00000c910000613d0000001f0310003900000410033001970000003f033000390000041004300197000000400300043d0000000004430019000000000034004b00000000050000390000000105004039000003990040009c00000d5e0000213d000000010050019000000d5e0000c13d000000400040043f000000000513043600000410021001980000001f0310018f0000000001250019000000030400036700000c840000613d000000000604034f000000006706043c0000000005750436000000000015004b00000c800000c13d000000000003004b00000c910000613d000000000224034f0000000303300210000000000401043300000000043401cf000000000434022f000000000202043b0000010003300089000000000232022f00000000023201cf000000000242019f0000000000210435000000010000006b0000000305000029000000040600002900000da90000613d000000000065004b00000cd70000213d0000000701000039000000000201041a00000000010004140000038604200197000000040040008c00000ca00000c13d0000000102000039000000010100003100000cad0000013d0000037f0010009c0000037f01008041000000c00110021000000387011001c70000800902000039000000070300002900000000050000190df60dec0000040f000000010220018f000300000001035500000060011002700001037f0010019d0000037f01100197000000000001004b00000cd50000613d0000001f0410003900000410044001970000003f044000390000041005400197000000400400043d0000000005540019000000000045004b00000000060000390000000106004039000003990050009c00000d5e0000213d000000010060019000000d5e0000c13d000000400050043f000000000614043600000410031001980000001f0410018f0000000001360019000000030500036700000cc80000613d000000000705034f000000007807043c0000000006860436000000000016004b00000cc40000c13d000000000004004b00000cd50000613d000000000335034f0000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f0000000000310435000000000002004b00000dad0000613d0000000702000029000000060020006b00000d100000613d00000000010004140000037f0010009c0000037f01008041000000c00110021000000387011001c7000080090200003900000005030000290000040c0400004100000000050000190df60dec0000040f000300000001035500000060031002700001037f0030019d0000037f0330019800000d0e0000613d0000001f0430003900000423044001970000003f044000390000042404400197000000400500043d0000000004450019000000000054004b00000000060000390000000106004039000003990040009c00000d5e0000213d000000010060019000000d5e0000c13d000000400040043f0000001f0430018f00000000063504360000039805300198000000000356001900000d010000613d000000000701034f000000007807043c0000000006860436000000000036004b00000cfd0000c13d000000000004004b00000d0e0000613d000000000151034f0000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000000010020019000000db10000613d0000000b01000039000000000001041b0000000c01000039000000000001041b0000000d01000039000000000001041b0000000702000039000000000102041a0000041b01100197000000000012041b0000000906000029000009600000013d000000000100001900000df800010430000000400100043d00000064021000390000042b03000041000000000032043500000044021000390000042c0300004100000000003204350000002402100039000000210300003900000d420000013d000000400100043d00000044021000390000042a03000041000000000032043500000024021000390000001f030000390000000000320435000003a00200004100000000002104350000000402100039000000200300003900000000003204350000037f0010009c0000037f010080410000004001100210000003a1011001c700000df800010430000000400100043d000000640210003900000428030000410000000000320435000000440210003900000429030000410000000000320435000000240210003900000026030000390000000000320435000003a00200004100000000002104350000000402100039000000200300003900000000003204350000037f0010009c0000037f010080410000004001100210000003f2011001c700000df800010430000000000001042f0000040001000041000000000010043f0000001101000039000000040010043f000004010100004100000df800010430000000400100043d0000006402100039000004260300004100000000003204350000004402100039000004270300004100000000003204350000002402100039000000230300003900000d420000013d0000040001000041000000000010043f0000004101000039000000040010043f000004010100004100000df8000104300000040001000041000000000010043f0000003201000039000000040010043f000004010100004100000df800010430000000400100043d0000006402100039000004150300004100000000003204350000004402100039000004160300004100000000003204350000002402100039000000240300003900000d420000013d000000400100043d0000006402100039000004130300004100000000003204350000004402100039000004140300004100000000003204350000002402100039000000220300003900000d420000013d0000001f0530018f0000039806300198000000400200043d000000000462001900000d960000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000d850000c13d00000d960000013d0000037f033001970000001f0530018f0000039806300198000000400200043d000000000462001900000d960000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000d920000c13d000000000005004b00000da30000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000037f0020009c0000037f020080410000004002200210000000000112019f00000df800010430000000400100043d0000004402100039000004210300004100000db40000013d000000400100043d0000004402100039000004220300004100000db40000013d000000400100043d0000004402100039000004250300004100000000003204350000002402100039000000190300003900000d2e0000013d000000000001042f0000037f0010009c0000037f0100804100000040011002100000037f0020009c0000037f020080410000006002200210000000000112019f00000000020004140000037f0020009c0000037f02008041000000c002200210000000000112019f00000387011001c700008010020000390df60df10000040f000000010020019000000dcc0000613d000000000101043b000000000001042d000000000100001900000df80001043000000000050100190000000000200443000000050030008c00000ddc0000413d000000040100003900000000020000190000000506200210000000000664001900000005066002700000000006060031000000000161043a0000000102200039000000000031004b00000dd40000413d0000037f0030009c0000037f03008041000000600130021000000000020004140000037f0020009c0000037f02008041000000c002200210000000000112019f0000042d011001c700000000020500190df60df10000040f000000010020019000000deb0000613d000000000101043b000000000001042d000000000001042f00000def002104210000000102000039000000000001042d0000000002000019000000000001042d00000df4002104230000000102000039000000000001042d0000000002000019000000000001042d00000df60000043200000df70001042e00000df80001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff416273747261637420414c504841000000000000000000000000000000000000414c5048410000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000020000000000000000000000000ffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff02000000000000000000000000000000000000000000000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e00000000000000000000000001f9aa613658ddb40910bdcad1e235fc1d98e7f17ffffffffffffff000000ffff00000000000000000000000000000000000000000000000000000001010100009de74ab6116cf298c99c934292ba64b5e064d44dffffffffffffffffffffffffffffffffffffffffffad482d2337f32d1c0000000200000000000000000000000000000000000040000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffad482d2337f32d1bffffff00000000000000000000000000000000000000000052b7d2dcc80cd2e4000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef000000000000000000000000000000000000000000000a968163f0a57b40000000000000000000000000000000000000000000000000d3c21bcecceda10000000000000000000000000000000000000000000000000422ca8b0a00a425000000000000000000000000000000ad1eca41e6f772be3cb5a48a6141f9bcc1af9f7c8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925c45a015500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000000000000000000000000000ffffffffffffffffad5c464800000000000000000000000000000000000000000000000000000000c9c65396000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000000000000000000000ffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab000000020000000000000000000000000000030000000100000000000000000045524332303a206d696e7420746f20746865207a65726f20616464726573730008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000000000000000000000076a2262200000000000000000000000000000000000000000000000000000000ab3f39a700000000000000000000000000000000000000000000000000000000d8066a8500000000000000000000000000000000000000000000000000000000f2fde38a00000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000f32383e900000000000000000000000000000000000000000000000000000000f5648a4f00000000000000000000000000000000000000000000000000000000d8066a8600000000000000000000000000000000000000000000000000000000dd62ed3e00000000000000000000000000000000000000000000000000000000eab15e4300000000000000000000000000000000000000000000000000000000c95714e200000000000000000000000000000000000000000000000000000000c95714e300000000000000000000000000000000000000000000000000000000cb96372800000000000000000000000000000000000000000000000000000000d2dc0fd700000000000000000000000000000000000000000000000000000000ab3f39a800000000000000000000000000000000000000000000000000000000c757483900000000000000000000000000000000000000000000000000000000a077b29700000000000000000000000000000000000000000000000000000000a6ce120900000000000000000000000000000000000000000000000000000000a6ce120a00000000000000000000000000000000000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000aacebbe300000000000000000000000000000000000000000000000000000000a077b29800000000000000000000000000000000000000000000000000000000a0b0e4b800000000000000000000000000000000000000000000000000000000a457c2d7000000000000000000000000000000000000000000000000000000008a8c523b000000000000000000000000000000000000000000000000000000008a8c523c000000000000000000000000000000000000000000000000000000008da5cb5b0000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000076a22623000000000000000000000000000000000000000000000000000000007b311a0d000000000000000000000000000000000000000000000000000000002e8210ac0000000000000000000000000000000000000000000000000000000049bd5a5d0000000000000000000000000000000000000000000000000000000070a082300000000000000000000000000000000000000000000000000000000070a0823100000000000000000000000000000000000000000000000000000000715018a60000000000000000000000000000000000000000000000000000000075f0a8740000000000000000000000000000000000000000000000000000000049bd5a5e0000000000000000000000000000000000000000000000000000000054840c6e000000000000000000000000000000000000000000000000000000006b195db300000000000000000000000000000000000000000000000000000000313ce56600000000000000000000000000000000000000000000000000000000313ce56700000000000000000000000000000000000000000000000000000000395093510000000000000000000000000000000000000000000000000000000046469afb000000000000000000000000000000000000000000000000000000002e8210ad000000000000000000000000000000000000000000000000000000002f5f2572000000000000000000000000000000000000000000000000000000001857aead000000000000000000000000000000000000000000000000000000001bff7897000000000000000000000000000000000000000000000000000000001bff78980000000000000000000000000000000000000000000000000000000023b872dd0000000000000000000000000000000000000000000000000000000027c8f835000000000000000000000000000000000000000000000000000000001857aeae00000000000000000000000000000000000000000000000000000000185870f900000000000000000000000000000000000000000000000000000000095ea7b200000000000000000000000000000000000000000000000000000000095ea7b3000000000000000000000000000000000000000000000000000000001694505e0000000000000000000000000000000000000000000000000000000018160ddd0000000000000000000000000000000000000000000000000000000006fdde0300000000000000000000000000000000000000000000000000000000079219d59cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f3902000002000000000000000000000000000000240000000000000000000000005472616e73666572206661696c65640000000000000000000000000000000000ffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffff00000000000000010100000000000000000000000000000000000000000000004f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084000000800000000000000000ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000002000000080000000000000000070a08231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000800000000000000000a9059cbb000000000000000000000000000000000000000000000000000000004e6f20746f6b656e730000000000000000000000000000000000000000000000310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e020000000000000000000000000000000000002000000080000000000000000023da297b7b4ada8bc00cbea5a89072d204b631fafb384876278fd613292d3bff0000000000000000000000000000000000000020000000000000000000000000496e76616c6964206164647265737300000000000000000000000000000000000000000000000000000000000000000000000064000000800000000000000000207a65726f00000000000000000000000000000000000000000000000000000045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77000000000000000000000000000000000000008400000000000000000000000000000000000000ff000000000000000000000000000000000000000000000000000000000000000000ff000000000000000000000000000000000000000000008a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0000000000000000000000ff000000000000000000000000000000000000000054726164696e6720616c726561647920656e61626c6564000000000000000000f305d71900000000000000000000000000000000000000000000000000000000796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d955391320200000200000000000000000000000000000004000000000000000000000000020000020000000000000000000000000000004400000000000000000000000002000000000000000000000000000000000000c400000000000000000000000000000000000000000000000000000000000000c4000000000000000000000000ffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff00000000000000000000010100000000000000000000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff68747470733a2f2f6170702e756e69737761702e6f722f7377617000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000ff0000000000000000000000000000000000000000000000ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657200000000000000000000000000000000000000000000000000000000000186a05377617020616d6f756e7420746f6f20686967680000000000000000000000005377617020616d6f756e7420746f6f206c6f770000000000000000000000000045524332303a20696e73756666696369656e7420616c6c6f77616e6365000000000000000000000000000000fd93f9d518286066241539396234348445d10f4400000000000000000000ff00000000000000000000000000000000000000000068747470733a2f2f4162737472616374414c5048412e78797a00000000000000c2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00737300000000000000000000000000000000000000000000000000000000000045524332303a20617070726f766520746f20746865207a65726f206164647265726573730000000000000000000000000000000000000000000000000000000045524332303a20617070726f76652066726f6d20746865207a65726f2061646454726164696e672064697361626c6564000000000000000000000000000000004d617820747820657863656564656400000000000000000000000000000000004d61782077616c6c657420657863656564656400000000000000000000000000000000000000ff00000000000000000000000000000000000000000000000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffa000000000000000000000000100000000000000000000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83791ac94700000000000000000000000000000000000000000000000000000000436f6d6d756e697479207472616e73666572206661696c6564000000000000004d61726b6574696e67207472616e73666572206661696c65640000000000000000000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000003ffffffe0446576656c6f706572207472616e73666572206661696c656400000000000000657373000000000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220746f20746865207a65726f2061646472616c616e6365000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220616d6f756e742065786365656473206245524332303a207472616e7366657220746f207a65726f206164647265737300730000000000000000000000000000000000000000000000000000000000000045524332303a207472616e736665722066726f6d207a65726f206164647265730200000200000000000000000000000000000000000000000000000000000000d5376c747be15ee2a6d460d6350c0848f672d77571843a45f56f9ba48b561427
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.