More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 48,444 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Purchase Token W... | 19900366 | 332 days ago | IN | 0.005 ETH | 0.00007161 | ||||
Purchase Token W... | 19784239 | 348 days ago | IN | 0.02 ETH | 0.00213897 | ||||
Purchase Token W... | 19451703 | 395 days ago | IN | 0.0193 ETH | 0.0006119 | ||||
Purchase Token W... | 19393434 | 403 days ago | IN | 0.13 ETH | 0.00281762 | ||||
Purchase Token W... | 19386252 | 404 days ago | IN | 0.26 ETH | 0.00185048 | ||||
Purchase Token W... | 19386211 | 404 days ago | IN | 0.088 ETH | 0.00162066 | ||||
Purchase Token W... | 19384303 | 404 days ago | IN | 0.3 ETH | 0.00321912 | ||||
Purchase Token W... | 19384053 | 404 days ago | IN | 0.11 ETH | 0.00371048 | ||||
Purchase Token W... | 19384050 | 404 days ago | IN | 0 ETH | 0.01009364 | ||||
Purchase Token W... | 19384050 | 404 days ago | IN | 0.31 ETH | 0.00915563 | ||||
Purchase Token W... | 19384050 | 404 days ago | IN | 0.03 ETH | 0.01119721 | ||||
Purchase Token W... | 19384049 | 404 days ago | IN | 0.4 ETH | 0.00870281 | ||||
Purchase Token W... | 19384049 | 404 days ago | IN | 0.001 ETH | 0.01042944 | ||||
Purchase Token W... | 19384049 | 404 days ago | IN | 0.12 ETH | 0.01043164 | ||||
Purchase Token W... | 19384049 | 404 days ago | IN | 0.9 ETH | 0.00885912 | ||||
Purchase Token W... | 19384049 | 404 days ago | IN | 0.37 ETH | 0.01043164 | ||||
Purchase Token W... | 19384047 | 404 days ago | IN | 0.01 ETH | 0.00837535 | ||||
Purchase Token W... | 19384047 | 404 days ago | IN | 0.05 ETH | 0.01057907 | ||||
Purchase Token W... | 19384047 | 404 days ago | IN | 0.21 ETH | 0.01058131 | ||||
Purchase Token W... | 19384046 | 404 days ago | IN | 0.075 ETH | 0.00986791 | ||||
Purchase Token W... | 19384046 | 404 days ago | IN | 0.259 ETH | 0.00989688 | ||||
Purchase Token W... | 19384046 | 404 days ago | IN | 0.4 ETH | 0.01079652 | ||||
Purchase Token W... | 19384045 | 404 days ago | IN | 0.032 ETH | 0.00850323 | ||||
Purchase Token W... | 19384045 | 404 days ago | IN | 6 ETH | 0.00920971 | ||||
Purchase Token W... | 19384044 | 404 days ago | IN | 0.01 ETH | 0.0091309 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Method | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|---|
Transfer | 19523735 | 385 days ago | 0.59376 ETH | ||||
Purchase With Cl... | 19523735 | 385 days ago | 0.59376 ETH | ||||
Transfer | 19507240 | 387 days ago | 0.015 ETH | ||||
Purchase With Cl... | 19507240 | 387 days ago | 0.015 ETH | ||||
Transfer | 19481639 | 391 days ago | 0.01 ETH | ||||
Purchase With Cl... | 19481639 | 391 days ago | 0.01 ETH | ||||
Transfer | 19481635 | 391 days ago | 0.06154 ETH | ||||
Purchase With Cl... | 19481635 | 391 days ago | 0.06154 ETH | ||||
Transfer | 19475392 | 392 days ago | 0.174 ETH | ||||
Purchase With Cl... | 19475392 | 392 days ago | 0.174 ETH | ||||
Transfer | 19466795 | 393 days ago | 0.40768 ETH | ||||
Purchase With Cl... | 19466795 | 393 days ago | 0.40768 ETH | ||||
Transfer | 19465380 | 393 days ago | 0.01745 ETH | ||||
Purchase With Cl... | 19465380 | 393 days ago | 0.01745 ETH | ||||
Transfer | 19465377 | 393 days ago | 0.04127 ETH | ||||
Purchase With Cl... | 19465377 | 393 days ago | 0.04127 ETH | ||||
Transfer | 19457039 | 394 days ago | 0.21105 ETH | ||||
Purchase With Cl... | 19457039 | 394 days ago | 0.21105 ETH | ||||
Transfer | 19452718 | 395 days ago | 0.03633 ETH | ||||
Purchase With Cl... | 19452718 | 395 days ago | 0.03633 ETH | ||||
Transfer | 19448963 | 395 days ago | 0.08265 ETH | ||||
Purchase With Cl... | 19448963 | 395 days ago | 0.08265 ETH | ||||
Transfer | 19447991 | 396 days ago | 0.0865 ETH | ||||
Purchase With Cl... | 19447991 | 396 days ago | 0.0865 ETH | ||||
Transfer | 19447859 | 396 days ago | 0.30588 ETH |
Loading...
Loading
Contract Name:
PreSaleDop
Compiler Version
v0.8.22+commit.4fc1097e
Optimization Enabled:
Yes with 1000000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.8.22;import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";import {ECDSA} from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";import {MessageHashUtils} from "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol";import {Address} from "@openzeppelin/contracts/utils/Address.sol";import {ReentrancyGuard} from "@openzeppelin/contracts/utils/ReentrancyGuard.sol";import {Rounds, Ownable} from "./Rounds.sol";import {IPreSaleDop} from "./IPreSaleDop.sol";import "./Common.sol";/// @title PreSaleDop contract/// @notice Implements the preSale of Dop Token/// @dev The presale contract allows you to purchase dop token with allowed tokens,/// and there will be certain rounds./// @dev The recorded DOP tokens and NFT claims will be distributed later using another distributor contract.contract PreSaleDop is IPreSaleDop, Rounds, ReentrancyGuard {using SafeERC20 for IERC20;using Address for address payable;/// @notice Thrown when address is blacklisted
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.0;interface AggregatorV3Interface {function decimals() external view returns (uint8);function description() external view returns (string memory);function version() external view returns (uint256);function getRoundData(uint80 _roundId)externalviewreturns (uint80 roundId,int256 answer,uint256 startedAt,uint256 updatedAt,uint80 answeredInRound);function latestRoundData()externalviewreturns (uint80 roundId,
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)pragma solidity ^0.8.20;import {Context} from "../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.** The initial owner is set to the address provided by the deployer. 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;/*** @dev The caller account is not authorized to perform an operation.*/error OwnableUnauthorizedAccount(address account);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Permit.sol)pragma solidity ^0.8.20;/*** @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in* https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].** Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by* presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't* need to send a transaction, and thus is not required to hold Ether at all.** ==== Security Considerations** There are two important considerations concerning the use of `permit`. The first is that a valid permit signature* expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be* considered as an intention to spend the allowance in any specific way. The second is that because permits have* built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should* take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be* generally recommended is:** ```solidity* function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {* try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}* doThing(..., value);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)pragma solidity ^0.8.20;/*** @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 value of tokens in existence.*/
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/utils/SafeERC20.sol)pragma solidity ^0.8.20;import {IERC20} from "../IERC20.sol";import {IERC20Permit} from "../extensions/IERC20Permit.sol";import {Address} from "../../../utils/Address.sol";/*** @title SafeERC20* @dev Wrappers around ERC20 operations that throw on failure (when the token* contract returns false). Tokens that return no value (and instead revert or* throw on failure) are also supported, non-reverting calls are assumed to be* successful.* To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,* which allows you to call the safe operations as `token.safeTransfer(...)`, etc.*/library SafeERC20 {using Address for address;/*** @dev An operation with an ERC20 token failed.*/error SafeERC20FailedOperation(address token);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (utils/Address.sol)pragma solidity ^0.8.20;/*** @dev Collection of functions related to the address type*/library Address {/*** @dev The ETH balance of the account is not enough to perform the operation.*/error AddressInsufficientBalance(address account);/*** @dev There's no code at `target` (it is not a contract).*/error AddressEmptyCode(address target);/*** @dev A call to an address target failed. The target may have reverted.*/error FailedInnerCall();/*** @dev Replacement for Solidity's `transfer`: sends `amount` wei to
123456789101112131415161718192021222324// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (utils/Context.sol)pragma solidity ^0.8.20;/*** @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;}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (utils/cryptography/ECDSA.sol)pragma solidity ^0.8.20;/*** @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.** These functions can be used to verify that a message was signed by the holder* of the private keys of a given address.*/library ECDSA {enum RecoverError {NoError,InvalidSignature,InvalidSignatureLength,InvalidSignatureS}/*** @dev The signature derives the `address(0)`.*/error ECDSAInvalidSignature();/*** @dev The signature has an invalid length.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (utils/cryptography/MessageHashUtils.sol)pragma solidity ^0.8.20;import {Strings} from "../Strings.sol";/*** @dev Signature message hash utilities for producing digests to be consumed by {ECDSA} recovery or signing.** The library provides methods for generating a hash of a message that conforms to the* https://eips.ethereum.org/EIPS/eip-191[EIP 191] and https://eips.ethereum.org/EIPS/eip-712[EIP 712]* specifications.*/library MessageHashUtils {/*** @dev Returns the keccak256 digest of an EIP-191 signed data with version* `0x45` (`personal_sign` messages).** The digest is calculated by prefixing a bytes32 `messageHash` with* `"\x19Ethereum Signed Message:\n32"` and hashing the result. It corresponds with the* hash signed when using the https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] JSON-RPC method.** NOTE: The `messageHash` parameter is intended to be the result of hashing a raw message with* keccak256, although any bytes32 value can be safely used because the final digest will* be re-hashed.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/Math.sol)pragma solidity ^0.8.20;/*** @dev Standard math utilities missing in the Solidity language.*/library Math {/*** @dev Muldiv operation overflow.*/error MathOverflowedMulDiv();enum Rounding {Floor, // Toward negative infinityCeil, // Toward positive infinityTrunc, // Toward zeroExpand // Away from zero}/*** @dev Returns the addition of two unsigned integers, with an overflow flag.*/function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {unchecked {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SignedMath.sol)pragma solidity ^0.8.20;/*** @dev Standard signed math utilities missing in the Solidity language.*/library SignedMath {/*** @dev Returns the largest of two signed numbers.*/function max(int256 a, int256 b) internal pure returns (int256) {return a > b ? a : b;}/*** @dev Returns the smallest of two signed numbers.*/function min(int256 a, int256 b) internal pure returns (int256) {return a < b ? a : b;}/*** @dev Returns the average of two signed numbers without overflow.* The result is rounded towards zero.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (utils/ReentrancyGuard.sol)pragma solidity ^0.8.20;/*** @dev Contract module that helps prevent reentrant calls to a function.** Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier* available, which can be applied to functions to make sure there are no nested* (reentrant) calls to them.** Note that because there is a single `nonReentrant` guard, functions marked as* `nonReentrant` may not call one another. This can be worked around by making* those functions `private`, and then adding `external` `nonReentrant` entry* points to them.** TIP: If you would like to learn more about reentrancy and alternative ways* to protect against it, check out our blog post* https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].*/abstract contract ReentrancyGuard {// Booleans are more expensive than uint256 or any type that takes up a full// word because each write operation emits an extra SLOAD to first read the// slot's contents, replace the bits taken up by the boolean, and then write// back. This is the compiler's defense against contract upgrades and
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (utils/Strings.sol)pragma solidity ^0.8.20;import {Math} from "./math/Math.sol";import {SignedMath} from "./math/SignedMath.sol";/*** @dev String operations.*/library Strings {bytes16 private constant HEX_DIGITS = "0123456789abcdef";uint8 private constant ADDRESS_LENGTH = 20;/*** @dev The `value` string doesn't fit in the specified `length`.*/error StringsInsufficientHexLength(uint256 value, uint256 length);/*** @dev Converts a `uint256` to its ASCII `string` decimal representation.*/function toString(uint256 value) internal pure returns (string memory) {unchecked {uint256 length = Math.log10(value) + 1;
123456789101112131415161718// SPDX-License-Identifier: MITpragma solidity 0.8.22;import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";/// @notice Thrown when updating an address with zero addresserror ZeroAddress();/// @notice Thrown when updating with an array of no valueserror ZeroLengthArray();/// @notice Thrown when updating with the same value as previously storederror IdenticalValue();/// @notice Thrown when two array lengths does not matcherror ArrayLengthMismatch();/// @dev The address of the EthereumIERC20 constant ETH = IERC20(0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.8.22;import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";import {IRounds} from "./IRounds.sol";interface IPreSaleDop is IRounds {/// @notice Purchases Dop token with claim amount/// @param token The address of investment token/// @param tokenPrice The current price of token in 10 decimals/// @param referenceNormalizationFactor The value to handle decimals/// @param amount The investment amount/// @param minAmountDop The minimum amount of dop recipient will get/// @param recipient The address of the recipient/// @param round The round in which user will purchasefunction purchaseWithClaim(IERC20 token,uint256 tokenPrice,uint8 referenceNormalizationFactor,uint256 amount,uint256 minAmountDop,address recipient,uint32 round) external payable;/// @notice The helper function which verifies signature, signed by signerWallet, reverts if invalidSignature
123456789// SPDX-License-Identifier: MITpragma solidity 0.8.22;interface IRounds {/// @notice Returns the round details of the round numberzfunction rounds(uint32 round) external view returns (uint256 startTime, uint256 endTime, uint256 price);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.8.22;import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";import {TokensRegistry} from "./TokensRegistry.sol";import {IRounds} from "./IRounds.sol";import {ZeroAddress, ArrayLengthMismatch, ZeroLengthArray} from "./Common.sol";/// @title Rounds contract/// @notice Implements the Round creation and updating of presale/// @dev The Rounds contract allows you to create a round, update a roundabstract contract Rounds is IRounds, Ownable, TokensRegistry {/// @notice Thrown when round time is not startederror RoundNotStarted();/// @notice Thrown when round time is endederror RoundEnded();/// @notice Thrown when Round is not createderror IncorrectRound();/// @notice Thrown when new round price is less than previous round price
12345678910111213141516171819202122232425// SPDX-License-Identifier: MITpragma solidity 0.8.22;import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol";import {ZeroAddress, ArrayLengthMismatch, ZeroLengthArray, IdenticalValue} from "./Common.sol";/// @title TokensRegistry contract/// @notice Implements the pricefeed of the tokensabstract contract TokensRegistry is Ownable {/// @notice The USDT normalization factor between DOP and USDTuint256 internal constant NORMALIZATION_FACTOR_DOP_USDT = 1e30;/// @notice Gives us onchain price oracle address of the tokenmapping(IERC20 => PriceFeedData) public tokenData;/// @dev Emitted when address of Chainlink priceFeed contract is added for the tokenevent TokenDataAdded(IERC20 token, AggregatorV3Interface priceFeed);/// @member priceFeed The Chainlink priceFeed address/// @member normalizationFactorForToken The normalization factor to achieve return value of 18 decimals ,while calculating dop token purchases andalways with different token decimals
1234567891011121314151617181920{"viaIR": true,"optimizer": {"enabled": true,"runs": 1000000},"outputSelection": {"*": {"*": ["evm.bytecode","evm.deployedBytecode","devdoc","userdoc","metadata","abi"]}},"libraries": {}}
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"fundsWalletAddress","type":"address"},{"internalType":"address","name":"signerAddress","type":"address"},{"internalType":"address","name":"claimsContractAddress","type":"address"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint32","name":"lastRound","type":"uint32"},{"internalType":"uint256[]","name":"nftPrices","type":"uint256[]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"AddressInsufficientBalance","type":"error"},{"inputs":[],"name":"ArrayLengthMismatch","type":"error"},{"inputs":[],"name":"Blacklisted","type":"error"},{"inputs":[],"name":"BuyNotEnable","type":"error"},{"inputs":[],"name":"CodeSyncIssue","type":"error"},{"inputs":[],"name":"DeadlineExpired","type":"error"},{"inputs":[],"name":"ECDSAInvalidSignature","type":"error"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"name":"ECDSAInvalidSignatureLength","type":"error"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"ECDSAInvalidSignatureS","type":"error"},{"inputs":[],"name":"FailedInnerCall","type":"error"},{"inputs":[],"name":"IdenticalValue","type":"error"},{"inputs":[],"name":"IncorrectEndTime","type":"error"},{"inputs":[],"name":"IncorrectRound","type":"error"},{"inputs":[],"name":"IncorrectStartTime","type":"error"},{"inputs":[],"name":"InvalidEndTime","type":"error"},{"inputs":[],"name":"InvalidInvestment","type":"error"},{"inputs":[],"name":"InvalidSignature","type":"error"},{"inputs":[],"name":"InvalidStartTime","type":"error"},{"inputs":[],"name":"OnlyClaims","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"PriceGreaterThanNextRound","type":"error"},{"inputs":[],"name":"PriceInvalid","type":"error"},{"inputs":[],"name":"PriceLessThanOldRound","type":"error"},{"inputs":[],"name":"PriceNotFound","type":"error"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"inputs":[],"name":"RoundEnded","type":"error"},{"inputs":[],"name":"RoundNotStarted","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"inputs":[],"name":"TokenDisallowed","type":"error"},{"inputs":[],"name":"UnexpectedPriceDifference","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"inputs":[],"name":"ZeroLengthArray","type":"error"},{"inputs":[],"name":"ZeroValue","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"which","type":"address"},{"indexed":false,"internalType":"bool","name":"accessNow","type":"bool"}],"name":"BlacklistUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"oldAccess","type":"bool"},{"indexed":false,"internalType":"bool","name":"newAccess","type":"bool"}],"name":"BuyEnableUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAddress","type":"address"},{"indexed":false,"internalType":"address","name":"newAddress","type":"address"}],"name":"FundsWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"by","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"contract IERC20","name":"token","type":"address"},{"indexed":true,"internalType":"uint32","name":"round","type":"uint32"},{"indexed":true,"internalType":"uint256","name":"tokenPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"dopPurchased","type":"uint256"}],"name":"InvestedWithClaimAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"by","type":"address"},{"indexed":false,"internalType":"string","name":"code","type":"string"},{"indexed":false,"internalType":"uint256","name":"amountInvestedEth","type":"uint256"},{"indexed":true,"internalType":"uint32","name":"round","type":"uint32"},{"indexed":true,"internalType":"uint256","name":"roundPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"dopPurchased","type":"uint256"}],"name":"InvestedWithETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"by","type":"address"},{"indexed":false,"internalType":"string","name":"code","type":"string"},{"indexed":false,"internalType":"uint256","name":"amountInEth","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethPrice","type":"uint256"},{"indexed":true,"internalType":"uint32","name":"round","type":"uint32"},{"indexed":false,"internalType":"uint256","name":"roundPrice","type":"uint256"},{"indexed":false,"internalType":"uint256[]","name":"nftAmounts","type":"uint256[]"}],"name":"InvestedWithETHForNFT","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract IERC20","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenPrice","type":"uint256"},{"indexed":true,"internalType":"address","name":"by","type":"address"},{"indexed":false,"internalType":"string","name":"code","type":"string"},{"indexed":false,"internalType":"uint256","name":"amountInvested","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"dopPurchased","type":"uint256"},{"indexed":true,"internalType":"uint32","name":"round","type":"uint32"}],"name":"InvestedWithToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract IERC20","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenPrice","type":"uint256"},{"indexed":true,"internalType":"address","name":"by","type":"address"},{"indexed":false,"internalType":"string","name":"code","type":"string"},{"indexed":false,"internalType":"uint256","name":"amountInvested","type":"uint256"},{"indexed":true,"internalType":"uint32","name":"round","type":"uint32"},{"indexed":false,"internalType":"uint256","name":"roundPrice","type":"uint256"},{"indexed":false,"internalType":"uint256[]","name":"nftAmounts","type":"uint256[]"}],"name":"InvestedWithTokenForNFT","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":false,"internalType":"uint256","name":"oldPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newPrice","type":"uint256"}],"name":"PricingUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint32","name":"newRound","type":"uint32"},{"components":[{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"}],"indexed":false,"internalType":"struct Rounds.RoundData","name":"roundData","type":"tuple"}],"name":"RoundCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint32","name":"round","type":"uint32"},{"components":[{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"}],"indexed":false,"internalType":"struct Rounds.RoundData","name":"roundData","type":"tuple"}],"name":"RoundUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldSigner","type":"address"},{"indexed":false,"internalType":"address","name":"newSigner","type":"address"}],"name":"SignerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"contract IERC20","name":"token","type":"address"},{"indexed":false,"internalType":"contract AggregatorV3Interface","name":"priceFeed","type":"address"}],"name":"TokenDataAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint32","name":"round","type":"uint32"},{"indexed":true,"internalType":"contract IERC20","name":"token","type":"address"},{"indexed":true,"internalType":"bool","name":"access","type":"bool"},{"indexed":false,"internalType":"uint256","name":"customPrice","type":"uint256"}],"name":"TokensAccessUpdated","type":"event"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"contract IERC20","name":"","type":"address"}],"name":"allowedTokens","outputs":[{"internalType":"bool","name":"access","type":"bool"},{"internalType":"uint256","name":"customPrice","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklistAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newFundsWallet","type":"address"}],"name":"changeFundsWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newSigner","type":"address"}],"name":"changeSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"claimNFT","outputs":[{"internalType":"uint256","name":"roundPrice","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint32","name":"","type":"uint32"}],"name":"claims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimsContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"}],"name":"createNewRound","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"enableBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fundsWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"name":"getLatestPrice","outputs":[{"components":[{"internalType":"uint256","name":"latestPrice","type":"uint256"},{"internalType":"uint8","name":"normalizationFactorForToken","type":"uint8"},{"internalType":"uint8","name":"normalizationFactorForNFT","type":"uint8"}],"internalType":"struct PreSaleDop.TokenInfo","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRoundCount","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"nftPricing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"code","type":"string"},{"internalType":"uint32","name":"round","type":"uint32"},{"internalType":"uint256[]","name":"nftAmounts","type":"uint256[]"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"purchaseNFTWithEth","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"referenceTokenPrice","type":"uint256"},{"internalType":"uint8","name":"referenceNormalizationFactor","type":"uint8"},{"internalType":"string","name":"code","type":"string"},{"internalType":"uint32","name":"round","type":"uint32"},{"internalType":"uint256[]","name":"nftAmounts","type":"uint256[]"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"purchaseNFTWithToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"code","type":"string"},{"internalType":"uint32","name":"round","type":"uint32"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint256","name":"minAmountDop","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"purchaseTokenWithEth","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint8","name":"referenceNormalizationFactor","type":"uint8"},{"internalType":"uint256","name":"referenceTokenPrice","type":"uint256"},{"internalType":"uint256","name":"investment","type":"uint256"},{"internalType":"uint256","name":"minAmountDop","type":"uint256"},{"internalType":"string","name":"code","type":"string"},{"internalType":"uint32","name":"round","type":"uint32"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"purchaseTokenWithToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"referenceTokenPrice","type":"uint256"},{"internalType":"uint8","name":"referenceNormalizationFactor","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minAmountDop","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint32","name":"round","type":"uint32"}],"name":"purchaseWithClaim","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"}],"name":"rounds","outputs":[{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20[]","name":"tokens","type":"address[]"},{"components":[{"internalType":"contract AggregatorV3Interface","name":"priceFeed","type":"address"},{"internalType":"uint8","name":"normalizationFactorForToken","type":"uint8"},{"internalType":"uint8","name":"normalizationFactorForNFT","type":"uint8"}],"internalType":"struct TokensRegistry.PriceFeedData[]","name":"priceFeedData","type":"tuple[]"}],"name":"setTokenPriceFeed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"signerWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"name":"tokenData","outputs":[{"internalType":"contract AggregatorV3Interface","name":"priceFeed","type":"address"},{"internalType":"uint8","name":"normalizationFactorForToken","type":"uint8"},{"internalType":"uint8","name":"normalizationFactorForNFT","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"round","type":"uint32"},{"internalType":"contract IERC20[]","name":"tokens","type":"address[]"},{"internalType":"bool[]","name":"accesses","type":"bool[]"},{"internalType":"uint256[]","name":"customPrices","type":"uint256[]"}],"name":"updateAllowedTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"which","type":"address"},{"internalType":"bool","name":"access","type":"bool"}],"name":"updateBlackListedUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"newPrices","type":"uint256[]"}],"name":"updatePricing","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"round","type":"uint32"},{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"}],"name":"updateRound","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint32","name":"round","type":"uint32"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint256[]","name":"tokenPrices","type":"uint256[]"},{"internalType":"uint8[]","name":"normalizationFactors","type":"uint8[]"},{"internalType":"contract IERC20[]","name":"tokens","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"verifyPurchaseWithClaim","outputs":[],"stateMutability":"view","type":"function"}]
Contract Creation Code
604060a08152346200030c5762003e80803803806200001e8162000310565b92833981019060c0818303126200030c576200003a8162000336565b6020906200004a82840162000336565b906200005886850162000336565b94620000676060860162000336565b9560808601519263ffffffff8416948585036200030c5760a08801516001600160401b03988982116200030c57019584601f880112156200030c578651958987116200025a576005958760051b988a620000c3818c0162000310565b809a815201908b829b8201019283116200030c578b809101915b838310620002fb57506001600160a01b039d8e1692505081159050620002e457918c9593918c95935f549d8e988260018060a01b0319809b16175f55519e167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a360805263ffffffff19600254161760025560019a8b6005558460065493169081158015620002d9575b8015620002ce575b8015620002c6575b620002b7575060088054871690911781556001600160a81b0319909216911b610100600160a81b0316178917600655600780549093169116179055815115620002a6575f865b6200026e575b5050519283116200025a576801000000000000000083116200025a57600954836009558084106200022f575b509060095f52805f20905f5b8481106200021d578651613b3490816200034c823960805181611e070152f35b835183820155928101928501620001fd565b60095f528484845f2092830192015b8281106200024e575050620001f1565b5f81550185906200023e565b634e487b7160e01b5f52604160045260245ffd5b8251811015620002a0578481831b84010151156200028f57860186620001bf565b8751637c946ed760e01b8152600490fd5b620001c5565b8651630f59b9ff60e01b8152600490fd5b63d92e233d60e01b8152600490fd5b505f62000179565b508585161562000171565b508583161562000169565b8c51631e4fbdf760e01b81525f6004820152602490fd5b82518152918101918c9101620000dd565b5f80fd5b6040519190601f01601f191682016001600160401b038111838210176200025a57604052565b51906001600160a01b03821682036200030c5756fe604060808152600480361015610013575f80fd5b5f3560e01c80630a7e0c561461275e578063161c9d01146125b757806316345f18146125545780632194f3a21461250257806327824e53146122c257806327e45c2c146122465780632a253026146120b45780632d55e7df14611dae5780633d389faf14611d6d57806340c8e8921461194157806341e7e3411461188a57806364f0d35e146118355780636de7da78146117f3578063715018a61461175957806379a6d51f146116f25780637bc2d710146115065780637d6f0d5f146113ff5780637fcb0972146113ad5780638da5cb5b1461135c57806392f58881146112d257806395f002401461123c578063a77188f314611006578063aad2b72314610eb6578063aae0977114610cae578063cc73a94d14610952578063e09590d114610813578063e9f8958f1461079b578063f2fde38b146106ba578063f3290d7514610653578063f4648ae2146101e05763fc7a822d14610170575f80fd5b346101dc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5735906009548210156101dc5760209160095f527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af01549051908152f35b5f80fd5b5060e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5767ffffffffffffffff9080358281116101dc5761022b9036908301612c0a565b91610234612a01565b926044358281116101dc5761024c9036908501612a14565b90610255612bb2565b9260ff600654161561062b576102696130ea565b610293610274612cdb565b94610280865186613503565b60c4359060a43590846064358c346137b3565b61029b612dbe565b908151156106035781519660ff8a84015116965f9a5f9b5b88518d10156103135761030b6001916103058f6103008f918f908f8f908f836102e66102fa956102f4956102ed94612c96565b3592612cc7565b5190612d49565b9161326d565b90612d49565b61327b565b90612f87565b9c019b6102b3565b9063ffffffff8c98949596981697885f5260209560038752825f2073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee5f5287526001835f2001548015155f146105ef57945b83519061036582612a45565b61037036898d612b03565b825288820190878252335f52600c8a52855f208d5f528a52855f2080546801000000000000000091828210156105c357906103b091600182018155612c50565b949094610598575190815192831161056c578211610540578a908454838655808410610518575b5001835f528a5f205f5b8381106105065750505050600190519101558334106104df57610403846130b9565b833403903482116104b35750927ff491b2ce492077dad65774a3004bf521f1a24c4355392c2f32161db477b2c306979592610499959261047e98958334036104a3575b506104698373ffffffffffffffffffffffffffffffffffffffff600854166133e1565b5191815198899860a08a5260a08a0190612fb5565b95880152860152606085015283820360808501523396612ff8565b0390a36001600555005b6104ad90336133e1565b8c610446565b6011907f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b82517f26d748d6000000000000000000000000000000000000000000000000000000008152fd5b825182820155918c01916001016103e1565b855f5283835f2091820191015b81811061053257506103d7565b5f81558d9350600101610525565b6041857f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b6041867f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b5f867f4e487b710000000000000000000000000000000000000000000000000000000082525260245ffd5b6041877f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b50895f528087526002835f20015494610359565b8689517f358e2ce7000000000000000000000000000000000000000000000000000000008152fd5b8588517f46b57c6f000000000000000000000000000000000000000000000000000000008152fd5b82346101dc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5760209073ffffffffffffffffffffffffffffffffffffffff6106a3612b6f565b165f52600b825260ff815f20541690519015158152f35b50346101dc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc576106f2612b6f565b906106fb613069565b73ffffffffffffffffffffffffffffffffffffffff80921692831561076c5750505f54827fffffffffffffffffffffffff00000000000000000000000000000000000000008216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b905f60249251917f1e4fbdf7000000000000000000000000000000000000000000000000000000008352820152fd5b82346101dc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc576020906107d5612b6f565b73ffffffffffffffffffffffffffffffffffffffff6107f2612a01565b91165f52600a835263ffffffff825f2091165f528252805f20549051908152f35b50346101dc57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5761084a612b6f565b9160243591821515938484036101dc5773ffffffffffffffffffffffffffffffffffffffff1690811561092b5761087f613069565b815f52600b6020528460ff845f20541615151461090457507f6a12b3df6cba4203bd7fd06b816789f87de8c594299aed5717ae070fac781bac82610902958151908482526020820152a15f52600b6020525f209060ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0083541691151516179055565b005b82517f2620eb3a000000000000000000000000000000000000000000000000000000008152fd5b82517fd92e233d000000000000000000000000000000000000000000000000000000008152fd5b50346101dc57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5767ffffffffffffffff9080358281116101dc576109a19036908301612a14565b602492602435958587116101dc57366023880112156101dc57868201359586116101dc5760609636602460608902830101116101dc576109df613069565b8315610c8757868403610c60575f5b8481106109f757005b87811015610c35578881028201897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc82360301126101dc57835190610a3b82612a8e565b8881013573ffffffffffffffffffffffffffffffffffffffff80821682036101dc5786818592610a9f610a9a898f978f908852610a8e6064610a7f60448d01612bc2565b9b6020809b019c8d5201612bc2565b98878c01998a52612c96565b612ca6565b1692835f52600190818152835f2094845195610aba87612a8e565b5495848716815260ff60a0978483019282828b1c1684528260a8998201928a1c16825284158015610c2a575b610c015787905116878d5116149283610bf0575b5082610bdf575b5050610bb7578375ff000000000000000000000000000000000000000000938a999897969374ff0000000000000000000000000000000000000000938f7f05a55041f547bc02746ecf7b080f4a090ea42e2a9e0b0c0b151f939cd74d81829060019f9e997fffffffffffffffffffff000000000000000000000000000000000000000000009a511681519084825285820152a15f52528c5f209851169488549751901b169451901b1693161717179055016109ee565b8c8c517f2620eb3a000000000000000000000000000000000000000000000000000000008152fd5b819250511690885116145f80610b01565b518b5183169083161492505f610afa565b508f8f517fd92e233d000000000000000000000000000000000000000000000000000000008152fd5b50878d511615610ae6565b866032857f4e487b71000000000000000000000000000000000000000000000000000000005f52525ffd5b50517fa24a13a6000000000000000000000000000000000000000000000000000000008152fd5b50517f0f59b9ff000000000000000000000000000000000000000000000000000000008152fd5b5060e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc57803567ffffffffffffffff81116101dc57610cf79036908301612c0a565b90610d00612a01565b610d08612bb2565b60ff6006541615610e8e5790610d3063ffffffff9260c4359060a435908760443586346137b3565b1691825f5260209160038352845f2073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee5f5283526001855f2001548015155f14610e7a57945b610d72612dbe565b805115610e535786610300826102fa6102f460ff8a610d979751940151169234612d49565b916064358310610e2c5750907faa0444f72596a225170908d940d0111cb9af5ba71d3c4be91b6812e7dc5f88d69291335f52600a8552805f20865f528552805f20610de3838254612f87565b9055610e073473ffffffffffffffffffffffffffffffffffffffff600854166133e1565b610e1b815193606085526060850190612fb5565b9434908401528201528033930390a4005b90517fbde82093000000000000000000000000000000000000000000000000000000008152fd5b50517f358e2ce7000000000000000000000000000000000000000000000000000000008152fd5b50835f528083526002855f20015494610d6a565b8285517f46b57c6f000000000000000000000000000000000000000000000000000000008152fd5b50346101dc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc57610eee612b6f565b9073ffffffffffffffffffffffffffffffffffffffff92838316918215610fdf57610f17613069565b600654948560081c16928314610fb857505173ffffffffffffffffffffffffffffffffffffffff918216815290821660208201527fffffffffffffffffffffff0000000000000000000000000000000000000000ff9174ffffffffffffffffffffffffffffffffffffffff00917f2d025324f0a785e8c12d0a0d91a9caa49df4ef20ff87e0df7213a1d4f3157beb90604090a160081b169116176006555f80f35b90517f2620eb3a000000000000000000000000000000000000000000000000000000008152fd5b90517fd92e233d000000000000000000000000000000000000000000000000000000008152fd5b50346101dc576101407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5761103f612b6f565b90611048612a01565b67ffffffffffffffff93906064358581116101dc5761106a9036908501612a14565b936084358781116101dc576110829036908301612a14565b93909160a4358981116101dc5761109c9036908301612a14565b93909960c4359081116101dc576110b69036908401612a14565b9690956110c1612ba2565b9873ffffffffffffffffffffffffffffffffffffffff94856007541633036112155750959493955199602094858c019c60601b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000168d5260e01b7fffffffff000000000000000000000000000000000000000000000000000000001660348c015260388b019061115092613035565b91905f5b8181106111ec575050506044358152810198925f905b8382106111c6575050505050611188610902966111b4938693613035565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101845283612aaa565b61012435926101043592519020613720565b90919293998a35908282168092036101dc5790815283019983019392916001019061116a565b909192848060019260ff611203889b999a9b612bc2565b16815296989796019401929101611154565b90517f049809b1000000000000000000000000000000000000000000000000000000008152fd5b82346101dc5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc57611274612b6f565b9061127d612a01565b73ffffffffffffffffffffffffffffffffffffffff60443593165f52600c60205263ffffffff825f2091165f52602052805f209182548110156101dc576112c8600191602094612c50565b5001549051908152f35b82346101dc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc576113096129db565b6024359073ffffffffffffffffffffffffffffffffffffffff82168092036101dc5763ffffffff165f526003602052815f20905f52602052805f20600160ff825416910154825191151582526020820152f35b82346101dc575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5760209073ffffffffffffffffffffffffffffffffffffffff5f54169051908152f35b82346101dc575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5760209073ffffffffffffffffffffffffffffffffffffffff600754169051908152f35b50346101dc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc57611437612b6f565b73ffffffffffffffffffffffffffffffffffffffff918282169384156114e05761145f613069565b60085493841691858314610fb857505173ffffffffffffffffffffffffffffffffffffffff9182168152911660208201527fffffffffffffffffffffffff000000000000000000000000000000000000000091907fe22b566ac7db56412e2e041c88a7fd3151151ad6c6647e954f9bdc054bcb780e90604090a11617600855005b517fd92e233d000000000000000000000000000000000000000000000000000000008152fd5b5090346101dc576101607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc57611540612b6f565b6024359160ff8316928381036101dc5760643560443560a43567ffffffffffffffff81116101dc576115759036908901612c0a565b9261157e6129ee565b96610104359060ff821682036101dc5760ff60065416156116ca576115f3926115c9898b6103009897956115e3956115b46130ea565b878c6101443595610124359560e43591613564565b6115d2856130b9565b6115dc898b61317a565b92896131d3565b6102fa6102f48387989498612d49565b60843581106116a257907fc550025edff4b03b80afe475299833a5a79a49cf86b746a3e525030355b9a622939291335f52600a60205263ffffffff865f20981697885f52602052855f20611648828254612f87565b905573ffffffffffffffffffffffffffffffffffffffff91611670818460085416338b6132b2565b61168b87519586958652608060208701526080860190612fb5565b968401526060830152339516930390a46001600555005b8785517fbde82093000000000000000000000000000000000000000000000000000000008152fd5b8987517f46b57c6f000000000000000000000000000000000000000000000000000000008152fd5b5090346101dc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5760609163ffffffff6117336129db565b165f52602052805f20805491600260018301549201549181519384526020840152820152f35b346101dc575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5761178f613069565b5f73ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b82346101dc575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5760209063ffffffff600254169051908152f35b82346101dc575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5760209073ffffffffffffffffffffffffffffffffffffffff60065460081c169051908152f35b5090346101dc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc578135908115158092036101dc576118d0613069565b6006549260ff84161515908382146109045750917fe557486689c0bf71dde8cb27e7e87ed23badcf92ea724f4a0368676720d416f6827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009460ff9451908152836020820152a1169116176006555f80f35b5090346101dc576101407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5761197b612b6f565b9060243590611988612b92565b67ffffffffffffffff906064358281116101dc576119a99036908801612c0a565b956084359563ffffffff8716908188036101dc5760a4358581116101dc576119d49036908501612a14565b9390996119df612ba2565b60ff6006541615611d45576119f26130ea565b611a258a8c60ff611a01612cdb565b9a611a0d8c518c613503565b169384610124359387610104359460c435908c613564565b611a2e84612f23565b998a51611d05575b8a5115611cbb575b505088519760ff818b015116975f9a5f9b5b89518d1015611a8a57611a828f916103058f8f908f8f8f6102fa916102ed856102e6610300976102f49560019e612c96565b9c019b611a50565b86979892918f978f90611a9c9161317a565b92855190611aa982612a45565b611ab436878c612b03565b825260209889830191868352335f52600c8b528d895f20905f528b52885f2091825490680100000000000000009182811015611c6457611afc90600195600182018155612c50565b969096611c905751918251938411611c64578311611c3857508b908554838755808410611c0e575b50908e989796959493929101845f528c5f205f5b838110611be7575050505050611bdd9694927f95ad5726302123e85b4b1858ca3676b75b71bb88ddab4c7b181b3787122133889a99989694926001611bc39351910155611b84836130b9565b611bab8373ffffffffffffffffffffffffffffffffffffffff9687600854169033906132b2565b519760a087519a8b9a8b528a015260a0890190612fb5565b948701526060860152848303608086015233981696612ff8565b0390a46001600555005b8495969798999a508e8394959293519401938184015501908f999897969594939291611b38565b865f528484845f2092830192015b828110611c2a575050611b24565b5f81558f9450869101611c1c565b6041907f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b6041827f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b5f827f4e487b710000000000000000000000000000000000000000000000000000000082525260245ffd5b80158015611cfd575b611cd5578a52888a01525f80611a3e565b838a517f7c946ed7000000000000000000000000000000000000000000000000000000008152fd5b508115611cc4565b8015801590611d3c575b15611a3657838a517ff443cb16000000000000000000000000000000000000000000000000000000008152fd5b50811515611d0f565b8289517f46b57c6f000000000000000000000000000000000000000000000000000000008152fd5b82346101dc575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5760209060ff6006541690519015158152f35b5090346101dc5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc57611de76129db565b906024356044359260643591611dfb613069565b63ffffffff80921695827f00000000000000000000000000000000000000000000000000000000000000001687118015906120a7575b612080577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff87018381116120545783165f52602092818452855f208651611e7781612a8e565b815481528760026001840154938884019485520154910190815260018a018381116120285783165f52838652875f20926002895194611eb586612a8e565b8054865260018101548987015201549289850193845251861061200057600254168a141580938194611ff5575b50611fcd57518610611fa55781611f9a575b50611f735792600292828795611f2f847fcf17268674ed4ffa34a117862c7b380287afb4c202e842a5f391b92219c0e02a9a60609a97613470565b845191611f3b83612a8e565b8252828201968752848201938452895f528252835f2090519586825551928360018301555194859101558251948552840152820152a2005b84517fecdcda19000000000000000000000000000000000000000000000000000000008152fd5b90505184115f611ef4565b8287517f434c92c9000000000000000000000000000000000000000000000000000000008152fd5b8388517f649bb635000000000000000000000000000000000000000000000000000000008152fd5b90505189115f611ee2565b8489517f442db2a5000000000000000000000000000000000000000000000000000000008152fd5b6011857f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b6011827f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b84517f82a99657000000000000000000000000000000000000000000000000000000008152fd5b5082600254168711611e31565b5090346101dc5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc578135906044356024356120f6613069565b6002549463ffffffff9586811696875f5282602052855f209186519161211b83612a8e565b835483528760026001860154956020860196875201549301928352808a146120285760017fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000009a0116988991161760025551841061221e575185106121f757918185936121ac83606097957f6877931d901fa420de6b1b5c5b565c4422ab189963a871c828e7b992220e95e399613470565b8351946121b886612a8e565b855260208501918252838501928352875f52602052825f20935193848155815160018201556002835191015582519384525160208401525190820152a2005b83517fb290253c000000000000000000000000000000000000000000000000000000008152fd5b5083517f434c92c9000000000000000000000000000000000000000000000000000000008152fd5b82346101dc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5760609073ffffffffffffffffffffffffffffffffffffffff9081612298612b6f565b165f52600160205260ff815f205482519381168452818160a01c16602085015260a81c1690820152f35b509060e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc576122f6612b6f565b906122ff612b92565b926064359060a4359273ffffffffffffffffffffffffffffffffffffffff93848116948582036101dc576123316129ee565b9160ff60065416156124d9576123456130ea565b816007541633036124b05761235990613125565b63ffffffff821696875f526003602052835f209282821693845f5260205260ff855f20541615612488576102fa996103006102f46123a761239d866123b19661317a565b93602435876131d3565b91819e918c612d49565b9460843586106124615750918593917fc79c5d6f2d27aee6474296eafbd08c97d8991c729c7b986e7bd076931c92fcb89660609694895f52600a602052845f208b5f52602052845f20612405878254612f87565b905573eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee8403612448575050612433906008541634906133e1565b81519384526020840152820152a46001600555005b8261245c93600754169060085416916132b2565b612433565b84517fbde82093000000000000000000000000000000000000000000000000000000008152fd5b8585517f49a8defd000000000000000000000000000000000000000000000000000000008152fd5b505050517f049809b1000000000000000000000000000000000000000000000000000000008152fd5b505050517f46b57c6f000000000000000000000000000000000000000000000000000000008152fd5b82346101dc575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5760209073ffffffffffffffffffffffffffffffffffffffff600854169051908152f35b82346101dc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc57606090612597612592612b6f565b612f23565b9060ff818051938051855282602082015116602086015201511690820152f35b50346101dc5760209160207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5767ffffffffffffffff82358181116101dc576126099036908501612b51565b612611613069565b612619612cdb565b918151835103612735575f5b825181101561268357807f335f5afc83fe8c5a011a96dc39bcce9fb9d46fb5986502f7040e76e28b0361238661265d60019487612cc7565b51612667816130b9565b6126718489612cc7565b519082519182528b820152a101612625565b508591858151928311611c3857680100000000000000008311611c385750600954826009558083106126f5575b5060200160095f525f5b8281106126c357005b81517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af820155908301906001016126ba565b827f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af91820191015b81811061272a57506126b0565b5f815560010161271d565b505050517fa24a13a6000000000000000000000000000000000000000000000000000000008152fd5b5090346101dc5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc576127976129db565b67ffffffffffffffff926024358481116101dc576127b89036908301612a14565b929093604435918683116101dc57366023840112156101dc5782840135966127df88612aeb565b936127ec84519586612aaa565b88855260209860248a87019160051b830101913683116101dc57602401905b8282106129c3575050506064359081116101dc5761282c9036908601612b51565b90612835613069565b851561299b5783518087149081159161298f575b506129675763ffffffff1692835f5260038852825f20955f5b81811061286b57005b73ffffffffffffffffffffffffffffffffffffffff61288e610a9a83858d612c96565b16801561293f579088600192887fc1a8d3b5c8695d3120c5ea6e6afca4fd990747cccf9c4513cbc02baf1c32e40d8e866128c8878b612cc7565b5115156128d5888d612cc7565b51968d51916128e383612a45565b8252838201978852865f5283528c5f20905115159661292d88839060ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0083541691151516179055565b5191829101558b51908152a401612862565b8786517fd92e233d000000000000000000000000000000000000000000000000000000008152fd5b8483517fa24a13a6000000000000000000000000000000000000000000000000000000008152fd5b9050825114155f612849565b8483517f0f59b9ff000000000000000000000000000000000000000000000000000000008152fd5b813580151581036101dc578152908a01908a0161280b565b6004359063ffffffff821682036101dc57565b60c4359063ffffffff821682036101dc57565b6024359063ffffffff821682036101dc57565b9181601f840112156101dc5782359167ffffffffffffffff83116101dc576020808501948460051b0101116101dc57565b6040810190811067ffffffffffffffff821117612a6157604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6060810190811067ffffffffffffffff821117612a6157604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117612a6157604052565b67ffffffffffffffff8111612a615760051b60200190565b9291612b0e82612aeb565b91612b1c6040519384612aaa565b829481845260208094019160051b81019283116101dc57905b828210612b425750505050565b81358152908301908301612b35565b9080601f830112156101dc57816020612b6c93359101612b03565b90565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036101dc57565b6044359060ff821682036101dc57565b60e4359060ff821682036101dc57565b6084359060ff821682036101dc57565b359060ff821682036101dc57565b67ffffffffffffffff8111612a6157601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b81601f820112156101dc57803590612c2182612bd0565b92612c2f6040519485612aaa565b828452602083830101116101dc57815f926020809301838601378301015290565b8054821015612c69575f5260205f209060011b01905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b9190811015612c695760051b0190565b3573ffffffffffffffffffffffffffffffffffffffff811681036101dc5790565b8051821015612c695760209160051b010190565b6040519060095480835282602091602082019060095f527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af935f905b828210612d2f57505050612d2d92500383612aaa565b565b855484526001958601958895509381019390910190612d17565b81810292918115918404141715612d5c57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60405190612d9682612a8e565b5f6040838281528260208201520152565b519069ffffffffffffffffffff821682036101dc57565b612dc6612d89565b5073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee5f52600160205260408051907fde3e59ea0eeb6a65f16dd826b7bdfb53723c09ad80c81d458bbf2e138d918523612e1283612a8e565b549073ffffffffffffffffffffffffffffffffffffffff8083168452602084019060ff8460a01c16825260ff8386019460a81c168452612e50612d89565b945116938415612f1b575060a06004948351958680927ffeaf968c0000000000000000000000000000000000000000000000000000000082525afa938415612f11575f94612ebd575b5060ff8091511692511691815193612eb085612a8e565b8452602084015282015290565b90935060a0813d60a011612f09575b81612ed960a09383612aaa565b810103126101dc5760ff81612eee8293612da7565b50612f00608060208301519201612da7565b50949150612e99565b3d9150612ecc565b82513d5f823e3d90fd5b935050505090565b612f2b612d89565b5073ffffffffffffffffffffffffffffffffffffffff8091165f526001602052604090815f2091805192612f5e84612a8e565b54918083168452602084019060ff8460a01c16825260ff8386019460a81c168452612e50612d89565b91908201809211612d5c57565b5f5b838110612fa55750505f910152565b8181015183820152602001612f96565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602093612ff181518092818752878088019101612f94565b0116010190565b90918281527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83116101dc5760209260051b809284830137010190565b91907f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81116101dc5760051b809282370190565b73ffffffffffffffffffffffffffffffffffffffff5f5416330361308957565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b156130c057565b60046040517f7c946ed7000000000000000000000000000000000000000000000000000000008152fd5b6002600554146130fb576002600555565b60046040517f3ee5aeb5000000000000000000000000000000000000000000000000000000008152fd5b73ffffffffffffffffffffffffffffffffffffffff165f52600b60205260ff60405f20541661315057565b60046040517f09550c77000000000000000000000000000000000000000000000000000000008152fd5b63ffffffff1690815f52600360205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052600160405f200154908115155f146131bf575090565b90505f526004602052600260405f20015490565b6131df90939293612f23565b928351613228575b8351156131fe575b505060ff602083519301511690565b8115801561321d575b6130c05760ff9184521660208301525f806131ef565b5060ff811615613207565b8115801590613261575b156131e75760046040517ff443cb16000000000000000000000000000000000000000000000000000000008152fd5b5060ff81161515613232565b604d8111612d5c57600a0a90565b8115613285570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b906040519360208501917f23b872dd00000000000000000000000000000000000000000000000000000000835273ffffffffffffffffffffffffffffffffffffffff9485809216602488015216604486015260648501526064845260a084019084821067ffffffffffffffff831117612a6157613347935f9384936040521694519082865af16133406133b2565b9083613a88565b805190811515918261338e575b505061335d5750565b602490604051907f5274afe70000000000000000000000000000000000000000000000000000000082526004820152fd5b81925090602091810103126101dc57602001518015908115036101dc575f80613354565b3d156133dc573d906133c382612bd0565b916133d16040519384612aaa565b82523d5f602084013e565b606090565b814710613440575f80809373ffffffffffffffffffffffffffffffffffffffff8294165af161340e6133b2565b501561341657565b60046040517f1425ea42000000000000000000000000000000000000000000000000000000008152fd5b60246040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152fd5b904282106134d95711156134af571561348557565b60046040517f2013535a000000000000000000000000000000000000000000000000000000008152fd5b60046040517f38af65f7000000000000000000000000000000000000000000000000000000008152fd5b60046040517fb290253c000000000000000000000000000000000000000000000000000000008152fd5b801561353a570361351057565b60046040517fa24a13a6000000000000000000000000000000000000000000000000000000008152fd5b60046040517f0f59b9ff000000000000000000000000000000000000000000000000000000008152fd5b93909897969594989291928342116136f65763ffffffff9061358533613125565b1698895f526020946003865260409a8b5f2073ffffffffffffffffffffffffffffffffffffffff83165f52875260ff8c5f205416156136cd575f52600486528a5f208b516135d281612a8e565b8154908181528d60026001850154948b8401958652015491015242106136a4575142101561367b579161367393917fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060a894612d2d9c9d5197889561364a8b88019b3360601b8d52825192839160348b019101612f94565b8601946034860152605485015260601b1660748301526088820152036088810184520182612aaa565b519020613720565b60048b517f6b5fd31b000000000000000000000000000000000000000000000000000000008152fd5b60048c517f8e9c6e1c000000000000000000000000000000000000000000000000000000008152fd5b60048c517f49a8defd000000000000000000000000000000000000000000000000000000008152fd5b60046040517f1ab7da6b000000000000000000000000000000000000000000000000000000008152fd5b9261377890613781929373ffffffffffffffffffffffffffffffffffffffff948560065460081c16967f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f52601c52603c5f20613909565b909291926139a3565b160361378957565b60046040517f8baa579f000000000000000000000000000000000000000000000000000000008152fd5b6137c390979695949392976130b9565b8642116136f65763ffffffff906137d933613125565b1695865f5260209160038352604097885f2073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee5f52845260ff895f205416156138e0575f5260048352875f20885161382481612a8e565b8154908181528a6002600185015494888401958652015491015242106138b7575142101561388e57605461367391612d2d989951938491613878878401973360601b89528251928391603487019101612f94565b8201906034820152036034810184520182612aaa565b600488517f6b5fd31b000000000000000000000000000000000000000000000000000000008152fd5b600489517f8e9c6e1c000000000000000000000000000000000000000000000000000000008152fd5b600489517f49a8defd000000000000000000000000000000000000000000000000000000008152fd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411613998579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561398d575f5173ffffffffffffffffffffffffffffffffffffffff81161561398357905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b6004811015613a5b57806139b5575050565b600181036139e75760046040517ff645eedf000000000000000000000000000000000000000000000000000000008152fd5b60028103613a2057602482604051907ffce698f70000000000000000000000000000000000000000000000000000000082526004820152fd5b600314613a2a5750565b602490604051907fd78bce0c0000000000000000000000000000000000000000000000000000000082526004820152fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b90613a9d575080511561341657805190602001fd5b81511580613af5575b613aae575090565b60249073ffffffffffffffffffffffffffffffffffffffff604051917f9996b315000000000000000000000000000000000000000000000000000000008352166004820152fd5b50803b15613aa656fea2646970667358221220e6b863aa97cda840206a914f8d8d9c3d9aaa9e024a29d341af10f5a24b42cc5464736f6c63430008160033000000000000000000000000a22bac86e8f721875c6be26c1fc0b021442f7279000000000000000000000000ec38df358d2cb3557cb6cb9ebdb43a35891f48260000000000000000000000002cb197409ae65b344a611e2ab99a0e864ef28d4c0000000000000000000000009d0cf00f85015567084e79a76a65d6f5e912b8d2000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000001dcd6500000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000012a05f20000000000000000000000000000000000000000000000000000000002540be40000000000000000000000000000000000000000000000000000000006fc23ac000000000000000000000000000000000000000000000000000000001176592e00
Deployed Bytecode
0x604060808152600480361015610013575f80fd5b5f3560e01c80630a7e0c561461275e578063161c9d01146125b757806316345f18146125545780632194f3a21461250257806327824e53146122c257806327e45c2c146122465780632a253026146120b45780632d55e7df14611dae5780633d389faf14611d6d57806340c8e8921461194157806341e7e3411461188a57806364f0d35e146118355780636de7da78146117f3578063715018a61461175957806379a6d51f146116f25780637bc2d710146115065780637d6f0d5f146113ff5780637fcb0972146113ad5780638da5cb5b1461135c57806392f58881146112d257806395f002401461123c578063a77188f314611006578063aad2b72314610eb6578063aae0977114610cae578063cc73a94d14610952578063e09590d114610813578063e9f8958f1461079b578063f2fde38b146106ba578063f3290d7514610653578063f4648ae2146101e05763fc7a822d14610170575f80fd5b346101dc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5735906009548210156101dc5760209160095f527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af01549051908152f35b5f80fd5b5060e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5767ffffffffffffffff9080358281116101dc5761022b9036908301612c0a565b91610234612a01565b926044358281116101dc5761024c9036908501612a14565b90610255612bb2565b9260ff600654161561062b576102696130ea565b610293610274612cdb565b94610280865186613503565b60c4359060a43590846064358c346137b3565b61029b612dbe565b908151156106035781519660ff8a84015116965f9a5f9b5b88518d10156103135761030b6001916103058f6103008f918f908f8f908f836102e66102fa956102f4956102ed94612c96565b3592612cc7565b5190612d49565b9161326d565b90612d49565b61327b565b90612f87565b9c019b6102b3565b9063ffffffff8c98949596981697885f5260209560038752825f2073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee5f5287526001835f2001548015155f146105ef57945b83519061036582612a45565b61037036898d612b03565b825288820190878252335f52600c8a52855f208d5f528a52855f2080546801000000000000000091828210156105c357906103b091600182018155612c50565b949094610598575190815192831161056c578211610540578a908454838655808410610518575b5001835f528a5f205f5b8381106105065750505050600190519101558334106104df57610403846130b9565b833403903482116104b35750927ff491b2ce492077dad65774a3004bf521f1a24c4355392c2f32161db477b2c306979592610499959261047e98958334036104a3575b506104698373ffffffffffffffffffffffffffffffffffffffff600854166133e1565b5191815198899860a08a5260a08a0190612fb5565b95880152860152606085015283820360808501523396612ff8565b0390a36001600555005b6104ad90336133e1565b8c610446565b6011907f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b82517f26d748d6000000000000000000000000000000000000000000000000000000008152fd5b825182820155918c01916001016103e1565b855f5283835f2091820191015b81811061053257506103d7565b5f81558d9350600101610525565b6041857f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b6041867f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b5f867f4e487b710000000000000000000000000000000000000000000000000000000082525260245ffd5b6041877f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b50895f528087526002835f20015494610359565b8689517f358e2ce7000000000000000000000000000000000000000000000000000000008152fd5b8588517f46b57c6f000000000000000000000000000000000000000000000000000000008152fd5b82346101dc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5760209073ffffffffffffffffffffffffffffffffffffffff6106a3612b6f565b165f52600b825260ff815f20541690519015158152f35b50346101dc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc576106f2612b6f565b906106fb613069565b73ffffffffffffffffffffffffffffffffffffffff80921692831561076c5750505f54827fffffffffffffffffffffffff00000000000000000000000000000000000000008216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b905f60249251917f1e4fbdf7000000000000000000000000000000000000000000000000000000008352820152fd5b82346101dc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc576020906107d5612b6f565b73ffffffffffffffffffffffffffffffffffffffff6107f2612a01565b91165f52600a835263ffffffff825f2091165f528252805f20549051908152f35b50346101dc57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5761084a612b6f565b9160243591821515938484036101dc5773ffffffffffffffffffffffffffffffffffffffff1690811561092b5761087f613069565b815f52600b6020528460ff845f20541615151461090457507f6a12b3df6cba4203bd7fd06b816789f87de8c594299aed5717ae070fac781bac82610902958151908482526020820152a15f52600b6020525f209060ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0083541691151516179055565b005b82517f2620eb3a000000000000000000000000000000000000000000000000000000008152fd5b82517fd92e233d000000000000000000000000000000000000000000000000000000008152fd5b50346101dc57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5767ffffffffffffffff9080358281116101dc576109a19036908301612a14565b602492602435958587116101dc57366023880112156101dc57868201359586116101dc5760609636602460608902830101116101dc576109df613069565b8315610c8757868403610c60575f5b8481106109f757005b87811015610c35578881028201897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc82360301126101dc57835190610a3b82612a8e565b8881013573ffffffffffffffffffffffffffffffffffffffff80821682036101dc5786818592610a9f610a9a898f978f908852610a8e6064610a7f60448d01612bc2565b9b6020809b019c8d5201612bc2565b98878c01998a52612c96565b612ca6565b1692835f52600190818152835f2094845195610aba87612a8e565b5495848716815260ff60a0978483019282828b1c1684528260a8998201928a1c16825284158015610c2a575b610c015787905116878d5116149283610bf0575b5082610bdf575b5050610bb7578375ff000000000000000000000000000000000000000000938a999897969374ff0000000000000000000000000000000000000000938f7f05a55041f547bc02746ecf7b080f4a090ea42e2a9e0b0c0b151f939cd74d81829060019f9e997fffffffffffffffffffff000000000000000000000000000000000000000000009a511681519084825285820152a15f52528c5f209851169488549751901b169451901b1693161717179055016109ee565b8c8c517f2620eb3a000000000000000000000000000000000000000000000000000000008152fd5b819250511690885116145f80610b01565b518b5183169083161492505f610afa565b508f8f517fd92e233d000000000000000000000000000000000000000000000000000000008152fd5b50878d511615610ae6565b866032857f4e487b71000000000000000000000000000000000000000000000000000000005f52525ffd5b50517fa24a13a6000000000000000000000000000000000000000000000000000000008152fd5b50517f0f59b9ff000000000000000000000000000000000000000000000000000000008152fd5b5060e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc57803567ffffffffffffffff81116101dc57610cf79036908301612c0a565b90610d00612a01565b610d08612bb2565b60ff6006541615610e8e5790610d3063ffffffff9260c4359060a435908760443586346137b3565b1691825f5260209160038352845f2073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee5f5283526001855f2001548015155f14610e7a57945b610d72612dbe565b805115610e535786610300826102fa6102f460ff8a610d979751940151169234612d49565b916064358310610e2c5750907faa0444f72596a225170908d940d0111cb9af5ba71d3c4be91b6812e7dc5f88d69291335f52600a8552805f20865f528552805f20610de3838254612f87565b9055610e073473ffffffffffffffffffffffffffffffffffffffff600854166133e1565b610e1b815193606085526060850190612fb5565b9434908401528201528033930390a4005b90517fbde82093000000000000000000000000000000000000000000000000000000008152fd5b50517f358e2ce7000000000000000000000000000000000000000000000000000000008152fd5b50835f528083526002855f20015494610d6a565b8285517f46b57c6f000000000000000000000000000000000000000000000000000000008152fd5b50346101dc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc57610eee612b6f565b9073ffffffffffffffffffffffffffffffffffffffff92838316918215610fdf57610f17613069565b600654948560081c16928314610fb857505173ffffffffffffffffffffffffffffffffffffffff918216815290821660208201527fffffffffffffffffffffff0000000000000000000000000000000000000000ff9174ffffffffffffffffffffffffffffffffffffffff00917f2d025324f0a785e8c12d0a0d91a9caa49df4ef20ff87e0df7213a1d4f3157beb90604090a160081b169116176006555f80f35b90517f2620eb3a000000000000000000000000000000000000000000000000000000008152fd5b90517fd92e233d000000000000000000000000000000000000000000000000000000008152fd5b50346101dc576101407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5761103f612b6f565b90611048612a01565b67ffffffffffffffff93906064358581116101dc5761106a9036908501612a14565b936084358781116101dc576110829036908301612a14565b93909160a4358981116101dc5761109c9036908301612a14565b93909960c4359081116101dc576110b69036908401612a14565b9690956110c1612ba2565b9873ffffffffffffffffffffffffffffffffffffffff94856007541633036112155750959493955199602094858c019c60601b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000168d5260e01b7fffffffff000000000000000000000000000000000000000000000000000000001660348c015260388b019061115092613035565b91905f5b8181106111ec575050506044358152810198925f905b8382106111c6575050505050611188610902966111b4938693613035565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101845283612aaa565b61012435926101043592519020613720565b90919293998a35908282168092036101dc5790815283019983019392916001019061116a565b909192848060019260ff611203889b999a9b612bc2565b16815296989796019401929101611154565b90517f049809b1000000000000000000000000000000000000000000000000000000008152fd5b82346101dc5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc57611274612b6f565b9061127d612a01565b73ffffffffffffffffffffffffffffffffffffffff60443593165f52600c60205263ffffffff825f2091165f52602052805f209182548110156101dc576112c8600191602094612c50565b5001549051908152f35b82346101dc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc576113096129db565b6024359073ffffffffffffffffffffffffffffffffffffffff82168092036101dc5763ffffffff165f526003602052815f20905f52602052805f20600160ff825416910154825191151582526020820152f35b82346101dc575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5760209073ffffffffffffffffffffffffffffffffffffffff5f54169051908152f35b82346101dc575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5760209073ffffffffffffffffffffffffffffffffffffffff600754169051908152f35b50346101dc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc57611437612b6f565b73ffffffffffffffffffffffffffffffffffffffff918282169384156114e05761145f613069565b60085493841691858314610fb857505173ffffffffffffffffffffffffffffffffffffffff9182168152911660208201527fffffffffffffffffffffffff000000000000000000000000000000000000000091907fe22b566ac7db56412e2e041c88a7fd3151151ad6c6647e954f9bdc054bcb780e90604090a11617600855005b517fd92e233d000000000000000000000000000000000000000000000000000000008152fd5b5090346101dc576101607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc57611540612b6f565b6024359160ff8316928381036101dc5760643560443560a43567ffffffffffffffff81116101dc576115759036908901612c0a565b9261157e6129ee565b96610104359060ff821682036101dc5760ff60065416156116ca576115f3926115c9898b6103009897956115e3956115b46130ea565b878c6101443595610124359560e43591613564565b6115d2856130b9565b6115dc898b61317a565b92896131d3565b6102fa6102f48387989498612d49565b60843581106116a257907fc550025edff4b03b80afe475299833a5a79a49cf86b746a3e525030355b9a622939291335f52600a60205263ffffffff865f20981697885f52602052855f20611648828254612f87565b905573ffffffffffffffffffffffffffffffffffffffff91611670818460085416338b6132b2565b61168b87519586958652608060208701526080860190612fb5565b968401526060830152339516930390a46001600555005b8785517fbde82093000000000000000000000000000000000000000000000000000000008152fd5b8987517f46b57c6f000000000000000000000000000000000000000000000000000000008152fd5b5090346101dc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5760609163ffffffff6117336129db565b165f52602052805f20805491600260018301549201549181519384526020840152820152f35b346101dc575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5761178f613069565b5f73ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b82346101dc575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5760209063ffffffff600254169051908152f35b82346101dc575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5760209073ffffffffffffffffffffffffffffffffffffffff60065460081c169051908152f35b5090346101dc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc578135908115158092036101dc576118d0613069565b6006549260ff84161515908382146109045750917fe557486689c0bf71dde8cb27e7e87ed23badcf92ea724f4a0368676720d416f6827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009460ff9451908152836020820152a1169116176006555f80f35b5090346101dc576101407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5761197b612b6f565b9060243590611988612b92565b67ffffffffffffffff906064358281116101dc576119a99036908801612c0a565b956084359563ffffffff8716908188036101dc5760a4358581116101dc576119d49036908501612a14565b9390996119df612ba2565b60ff6006541615611d45576119f26130ea565b611a258a8c60ff611a01612cdb565b9a611a0d8c518c613503565b169384610124359387610104359460c435908c613564565b611a2e84612f23565b998a51611d05575b8a5115611cbb575b505088519760ff818b015116975f9a5f9b5b89518d1015611a8a57611a828f916103058f8f908f8f8f6102fa916102ed856102e6610300976102f49560019e612c96565b9c019b611a50565b86979892918f978f90611a9c9161317a565b92855190611aa982612a45565b611ab436878c612b03565b825260209889830191868352335f52600c8b528d895f20905f528b52885f2091825490680100000000000000009182811015611c6457611afc90600195600182018155612c50565b969096611c905751918251938411611c64578311611c3857508b908554838755808410611c0e575b50908e989796959493929101845f528c5f205f5b838110611be7575050505050611bdd9694927f95ad5726302123e85b4b1858ca3676b75b71bb88ddab4c7b181b3787122133889a99989694926001611bc39351910155611b84836130b9565b611bab8373ffffffffffffffffffffffffffffffffffffffff9687600854169033906132b2565b519760a087519a8b9a8b528a015260a0890190612fb5565b948701526060860152848303608086015233981696612ff8565b0390a46001600555005b8495969798999a508e8394959293519401938184015501908f999897969594939291611b38565b865f528484845f2092830192015b828110611c2a575050611b24565b5f81558f9450869101611c1c565b6041907f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b6041827f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b5f827f4e487b710000000000000000000000000000000000000000000000000000000082525260245ffd5b80158015611cfd575b611cd5578a52888a01525f80611a3e565b838a517f7c946ed7000000000000000000000000000000000000000000000000000000008152fd5b508115611cc4565b8015801590611d3c575b15611a3657838a517ff443cb16000000000000000000000000000000000000000000000000000000008152fd5b50811515611d0f565b8289517f46b57c6f000000000000000000000000000000000000000000000000000000008152fd5b82346101dc575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5760209060ff6006541690519015158152f35b5090346101dc5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc57611de76129db565b906024356044359260643591611dfb613069565b63ffffffff80921695827f00000000000000000000000000000000000000000000000000000000000000061687118015906120a7575b612080577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff87018381116120545783165f52602092818452855f208651611e7781612a8e565b815481528760026001840154938884019485520154910190815260018a018381116120285783165f52838652875f20926002895194611eb586612a8e565b8054865260018101548987015201549289850193845251861061200057600254168a141580938194611ff5575b50611fcd57518610611fa55781611f9a575b50611f735792600292828795611f2f847fcf17268674ed4ffa34a117862c7b380287afb4c202e842a5f391b92219c0e02a9a60609a97613470565b845191611f3b83612a8e565b8252828201968752848201938452895f528252835f2090519586825551928360018301555194859101558251948552840152820152a2005b84517fecdcda19000000000000000000000000000000000000000000000000000000008152fd5b90505184115f611ef4565b8287517f434c92c9000000000000000000000000000000000000000000000000000000008152fd5b8388517f649bb635000000000000000000000000000000000000000000000000000000008152fd5b90505189115f611ee2565b8489517f442db2a5000000000000000000000000000000000000000000000000000000008152fd5b6011857f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b6011827f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b84517f82a99657000000000000000000000000000000000000000000000000000000008152fd5b5082600254168711611e31565b5090346101dc5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc578135906044356024356120f6613069565b6002549463ffffffff9586811696875f5282602052855f209186519161211b83612a8e565b835483528760026001860154956020860196875201549301928352808a146120285760017fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000009a0116988991161760025551841061221e575185106121f757918185936121ac83606097957f6877931d901fa420de6b1b5c5b565c4422ab189963a871c828e7b992220e95e399613470565b8351946121b886612a8e565b855260208501918252838501928352875f52602052825f20935193848155815160018201556002835191015582519384525160208401525190820152a2005b83517fb290253c000000000000000000000000000000000000000000000000000000008152fd5b5083517f434c92c9000000000000000000000000000000000000000000000000000000008152fd5b82346101dc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5760609073ffffffffffffffffffffffffffffffffffffffff9081612298612b6f565b165f52600160205260ff815f205482519381168452818160a01c16602085015260a81c1690820152f35b509060e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc576122f6612b6f565b906122ff612b92565b926064359060a4359273ffffffffffffffffffffffffffffffffffffffff93848116948582036101dc576123316129ee565b9160ff60065416156124d9576123456130ea565b816007541633036124b05761235990613125565b63ffffffff821696875f526003602052835f209282821693845f5260205260ff855f20541615612488576102fa996103006102f46123a761239d866123b19661317a565b93602435876131d3565b91819e918c612d49565b9460843586106124615750918593917fc79c5d6f2d27aee6474296eafbd08c97d8991c729c7b986e7bd076931c92fcb89660609694895f52600a602052845f208b5f52602052845f20612405878254612f87565b905573eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee8403612448575050612433906008541634906133e1565b81519384526020840152820152a46001600555005b8261245c93600754169060085416916132b2565b612433565b84517fbde82093000000000000000000000000000000000000000000000000000000008152fd5b8585517f49a8defd000000000000000000000000000000000000000000000000000000008152fd5b505050517f049809b1000000000000000000000000000000000000000000000000000000008152fd5b505050517f46b57c6f000000000000000000000000000000000000000000000000000000008152fd5b82346101dc575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5760209073ffffffffffffffffffffffffffffffffffffffff600854169051908152f35b82346101dc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc57606090612597612592612b6f565b612f23565b9060ff818051938051855282602082015116602086015201511690820152f35b50346101dc5760209160207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc5767ffffffffffffffff82358181116101dc576126099036908501612b51565b612611613069565b612619612cdb565b918151835103612735575f5b825181101561268357807f335f5afc83fe8c5a011a96dc39bcce9fb9d46fb5986502f7040e76e28b0361238661265d60019487612cc7565b51612667816130b9565b6126718489612cc7565b519082519182528b820152a101612625565b508591858151928311611c3857680100000000000000008311611c385750600954826009558083106126f5575b5060200160095f525f5b8281106126c357005b81517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af820155908301906001016126ba565b827f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af91820191015b81811061272a57506126b0565b5f815560010161271d565b505050517fa24a13a6000000000000000000000000000000000000000000000000000000008152fd5b5090346101dc5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101dc576127976129db565b67ffffffffffffffff926024358481116101dc576127b89036908301612a14565b929093604435918683116101dc57366023840112156101dc5782840135966127df88612aeb565b936127ec84519586612aaa565b88855260209860248a87019160051b830101913683116101dc57602401905b8282106129c3575050506064359081116101dc5761282c9036908601612b51565b90612835613069565b851561299b5783518087149081159161298f575b506129675763ffffffff1692835f5260038852825f20955f5b81811061286b57005b73ffffffffffffffffffffffffffffffffffffffff61288e610a9a83858d612c96565b16801561293f579088600192887fc1a8d3b5c8695d3120c5ea6e6afca4fd990747cccf9c4513cbc02baf1c32e40d8e866128c8878b612cc7565b5115156128d5888d612cc7565b51968d51916128e383612a45565b8252838201978852865f5283528c5f20905115159661292d88839060ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0083541691151516179055565b5191829101558b51908152a401612862565b8786517fd92e233d000000000000000000000000000000000000000000000000000000008152fd5b8483517fa24a13a6000000000000000000000000000000000000000000000000000000008152fd5b9050825114155f612849565b8483517f0f59b9ff000000000000000000000000000000000000000000000000000000008152fd5b813580151581036101dc578152908a01908a0161280b565b6004359063ffffffff821682036101dc57565b60c4359063ffffffff821682036101dc57565b6024359063ffffffff821682036101dc57565b9181601f840112156101dc5782359167ffffffffffffffff83116101dc576020808501948460051b0101116101dc57565b6040810190811067ffffffffffffffff821117612a6157604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6060810190811067ffffffffffffffff821117612a6157604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117612a6157604052565b67ffffffffffffffff8111612a615760051b60200190565b9291612b0e82612aeb565b91612b1c6040519384612aaa565b829481845260208094019160051b81019283116101dc57905b828210612b425750505050565b81358152908301908301612b35565b9080601f830112156101dc57816020612b6c93359101612b03565b90565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036101dc57565b6044359060ff821682036101dc57565b60e4359060ff821682036101dc57565b6084359060ff821682036101dc57565b359060ff821682036101dc57565b67ffffffffffffffff8111612a6157601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b81601f820112156101dc57803590612c2182612bd0565b92612c2f6040519485612aaa565b828452602083830101116101dc57815f926020809301838601378301015290565b8054821015612c69575f5260205f209060011b01905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b9190811015612c695760051b0190565b3573ffffffffffffffffffffffffffffffffffffffff811681036101dc5790565b8051821015612c695760209160051b010190565b6040519060095480835282602091602082019060095f527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af935f905b828210612d2f57505050612d2d92500383612aaa565b565b855484526001958601958895509381019390910190612d17565b81810292918115918404141715612d5c57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60405190612d9682612a8e565b5f6040838281528260208201520152565b519069ffffffffffffffffffff821682036101dc57565b612dc6612d89565b5073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee5f52600160205260408051907fde3e59ea0eeb6a65f16dd826b7bdfb53723c09ad80c81d458bbf2e138d918523612e1283612a8e565b549073ffffffffffffffffffffffffffffffffffffffff8083168452602084019060ff8460a01c16825260ff8386019460a81c168452612e50612d89565b945116938415612f1b575060a06004948351958680927ffeaf968c0000000000000000000000000000000000000000000000000000000082525afa938415612f11575f94612ebd575b5060ff8091511692511691815193612eb085612a8e565b8452602084015282015290565b90935060a0813d60a011612f09575b81612ed960a09383612aaa565b810103126101dc5760ff81612eee8293612da7565b50612f00608060208301519201612da7565b50949150612e99565b3d9150612ecc565b82513d5f823e3d90fd5b935050505090565b612f2b612d89565b5073ffffffffffffffffffffffffffffffffffffffff8091165f526001602052604090815f2091805192612f5e84612a8e565b54918083168452602084019060ff8460a01c16825260ff8386019460a81c168452612e50612d89565b91908201809211612d5c57565b5f5b838110612fa55750505f910152565b8181015183820152602001612f96565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602093612ff181518092818752878088019101612f94565b0116010190565b90918281527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83116101dc5760209260051b809284830137010190565b91907f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81116101dc5760051b809282370190565b73ffffffffffffffffffffffffffffffffffffffff5f5416330361308957565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b156130c057565b60046040517f7c946ed7000000000000000000000000000000000000000000000000000000008152fd5b6002600554146130fb576002600555565b60046040517f3ee5aeb5000000000000000000000000000000000000000000000000000000008152fd5b73ffffffffffffffffffffffffffffffffffffffff165f52600b60205260ff60405f20541661315057565b60046040517f09550c77000000000000000000000000000000000000000000000000000000008152fd5b63ffffffff1690815f52600360205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052600160405f200154908115155f146131bf575090565b90505f526004602052600260405f20015490565b6131df90939293612f23565b928351613228575b8351156131fe575b505060ff602083519301511690565b8115801561321d575b6130c05760ff9184521660208301525f806131ef565b5060ff811615613207565b8115801590613261575b156131e75760046040517ff443cb16000000000000000000000000000000000000000000000000000000008152fd5b5060ff81161515613232565b604d8111612d5c57600a0a90565b8115613285570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b906040519360208501917f23b872dd00000000000000000000000000000000000000000000000000000000835273ffffffffffffffffffffffffffffffffffffffff9485809216602488015216604486015260648501526064845260a084019084821067ffffffffffffffff831117612a6157613347935f9384936040521694519082865af16133406133b2565b9083613a88565b805190811515918261338e575b505061335d5750565b602490604051907f5274afe70000000000000000000000000000000000000000000000000000000082526004820152fd5b81925090602091810103126101dc57602001518015908115036101dc575f80613354565b3d156133dc573d906133c382612bd0565b916133d16040519384612aaa565b82523d5f602084013e565b606090565b814710613440575f80809373ffffffffffffffffffffffffffffffffffffffff8294165af161340e6133b2565b501561341657565b60046040517f1425ea42000000000000000000000000000000000000000000000000000000008152fd5b60246040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152fd5b904282106134d95711156134af571561348557565b60046040517f2013535a000000000000000000000000000000000000000000000000000000008152fd5b60046040517f38af65f7000000000000000000000000000000000000000000000000000000008152fd5b60046040517fb290253c000000000000000000000000000000000000000000000000000000008152fd5b801561353a570361351057565b60046040517fa24a13a6000000000000000000000000000000000000000000000000000000008152fd5b60046040517f0f59b9ff000000000000000000000000000000000000000000000000000000008152fd5b93909897969594989291928342116136f65763ffffffff9061358533613125565b1698895f526020946003865260409a8b5f2073ffffffffffffffffffffffffffffffffffffffff83165f52875260ff8c5f205416156136cd575f52600486528a5f208b516135d281612a8e565b8154908181528d60026001850154948b8401958652015491015242106136a4575142101561367b579161367393917fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060a894612d2d9c9d5197889561364a8b88019b3360601b8d52825192839160348b019101612f94565b8601946034860152605485015260601b1660748301526088820152036088810184520182612aaa565b519020613720565b60048b517f6b5fd31b000000000000000000000000000000000000000000000000000000008152fd5b60048c517f8e9c6e1c000000000000000000000000000000000000000000000000000000008152fd5b60048c517f49a8defd000000000000000000000000000000000000000000000000000000008152fd5b60046040517f1ab7da6b000000000000000000000000000000000000000000000000000000008152fd5b9261377890613781929373ffffffffffffffffffffffffffffffffffffffff948560065460081c16967f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f52601c52603c5f20613909565b909291926139a3565b160361378957565b60046040517f8baa579f000000000000000000000000000000000000000000000000000000008152fd5b6137c390979695949392976130b9565b8642116136f65763ffffffff906137d933613125565b1695865f5260209160038352604097885f2073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee5f52845260ff895f205416156138e0575f5260048352875f20885161382481612a8e565b8154908181528a6002600185015494888401958652015491015242106138b7575142101561388e57605461367391612d2d989951938491613878878401973360601b89528251928391603487019101612f94565b8201906034820152036034810184520182612aaa565b600488517f6b5fd31b000000000000000000000000000000000000000000000000000000008152fd5b600489517f8e9c6e1c000000000000000000000000000000000000000000000000000000008152fd5b600489517f49a8defd000000000000000000000000000000000000000000000000000000008152fd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411613998579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561398d575f5173ffffffffffffffffffffffffffffffffffffffff81161561398357905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b6004811015613a5b57806139b5575050565b600181036139e75760046040517ff645eedf000000000000000000000000000000000000000000000000000000008152fd5b60028103613a2057602482604051907ffce698f70000000000000000000000000000000000000000000000000000000082526004820152fd5b600314613a2a5750565b602490604051907fd78bce0c0000000000000000000000000000000000000000000000000000000082526004820152fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b90613a9d575080511561341657805190602001fd5b81511580613af5575b613aae575090565b60249073ffffffffffffffffffffffffffffffffffffffff604051917f9996b315000000000000000000000000000000000000000000000000000000008352166004820152fd5b50803b15613aa656fea2646970667358221220e6b863aa97cda840206a914f8d8d9c3d9aaa9e024a29d341af10f5a24b42cc5464736f6c63430008160033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000a22bac86e8f721875c6be26c1fc0b021442f7279000000000000000000000000ec38df358d2cb3557cb6cb9ebdb43a35891f48260000000000000000000000002cb197409ae65b344a611e2ab99a0e864ef28d4c0000000000000000000000009d0cf00f85015567084e79a76a65d6f5e912b8d2000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000001dcd6500000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000012a05f20000000000000000000000000000000000000000000000000000000002540be40000000000000000000000000000000000000000000000000000000006fc23ac000000000000000000000000000000000000000000000000000000001176592e00
-----Decoded View---------------
Arg [0] : fundsWalletAddress (address): 0xA22baC86E8F721875C6BE26C1Fc0B021442f7279
Arg [1] : signerAddress (address): 0xeC38Df358d2CB3557Cb6Cb9ebdB43a35891F4826
Arg [2] : claimsContractAddress (address): 0x2cb197409ae65b344a611E2ab99A0E864EF28d4c
Arg [3] : owner (address): 0x9D0CF00f85015567084E79A76a65D6F5e912b8d2
Arg [4] : lastRound (uint32): 6
Arg [5] : nftPrices (uint256[]): 500000000,1000000000,5000000000,10000000000,30000000000,75000000000
-----Encoded View---------------
13 Constructor Arguments found :
Arg [0] : 000000000000000000000000a22bac86e8f721875c6be26c1fc0b021442f7279
Arg [1] : 000000000000000000000000ec38df358d2cb3557cb6cb9ebdb43a35891f4826
Arg [2] : 0000000000000000000000002cb197409ae65b344a611e2ab99a0e864ef28d4c
Arg [3] : 0000000000000000000000009d0cf00f85015567084e79a76a65d6f5e912b8d2
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [5] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [7] : 000000000000000000000000000000000000000000000000000000001dcd6500
Arg [8] : 000000000000000000000000000000000000000000000000000000003b9aca00
Arg [9] : 000000000000000000000000000000000000000000000000000000012a05f200
Arg [10] : 00000000000000000000000000000000000000000000000000000002540be400
Arg [11] : 00000000000000000000000000000000000000000000000000000006fc23ac00
Arg [12] : 0000000000000000000000000000000000000000000000000000001176592e00
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
BLAST | 40.82% | $1,591.16 | 1.5367 | $2,445.2 | |
ZKSYNC | 16.76% | $1,591.28 | 0.631 | $1,004.1 | |
ARB | 13.57% | $1,591.18 | 0.511 | $813.1 | |
BSC | 11.62% | $582.82 | 1.1938 | $695.75 | |
LINEA | 7.97% | $1,591.28 | 0.3 | $477.38 | |
OP | 4.24% | $1,592.26 | 0.1595 | $253.89 | |
POL | 4.07% | $0.181475 | 1,344.7904 | $244.05 | |
BASE | 0.88% | $1,592.17 | 0.0331 | $52.7 | |
OPBNB | 0.04% | $582.74 | 0.0044 | $2.56 | |
AVAX | 0.02% | $19.14 | 0.0494 | $0.945627 | |
CELO | <0.01% | $0.285308 | 0.501 | $0.142939 |
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.