More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 169 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim Tokens | 20092712 | 113 days ago | IN | 0 ETH | 0.000983 | ||||
Claim Tokens | 19837714 | 148 days ago | IN | 0 ETH | 0.00058501 | ||||
Claim Tokens | 19615657 | 179 days ago | IN | 0 ETH | 0.00211407 | ||||
Claim Tokens | 19297195 | 224 days ago | IN | 0 ETH | 0.0023964 | ||||
Claim Tokens | 19251703 | 231 days ago | IN | 0 ETH | 0.00175722 | ||||
Claim Tokens | 19242240 | 232 days ago | IN | 0 ETH | 0.00308476 | ||||
Claim Tokens | 19210913 | 236 days ago | IN | 0 ETH | 0.00179128 | ||||
Claim Tokens | 19142633 | 246 days ago | IN | 0 ETH | 0.00217916 | ||||
Claim Tokens | 19082825 | 254 days ago | IN | 0 ETH | 0.00431273 | ||||
Claim Tokens | 19082810 | 254 days ago | IN | 0 ETH | 0.00460405 | ||||
Claim Tokens | 19075544 | 255 days ago | IN | 0 ETH | 0.00109565 | ||||
Claim Tokens | 19069831 | 256 days ago | IN | 0 ETH | 0.00111608 | ||||
Claim Tokens | 19069824 | 256 days ago | IN | 0 ETH | 0.00195713 | ||||
Claim Tokens | 19059530 | 258 days ago | IN | 0 ETH | 0.00121595 | ||||
Claim Tokens | 19026332 | 262 days ago | IN | 0 ETH | 0.00385613 | ||||
Claim Tokens | 19024812 | 262 days ago | IN | 0 ETH | 0.00314268 | ||||
Claim Tokens | 19023879 | 263 days ago | IN | 0 ETH | 0.00386065 | ||||
Claim Tokens | 19022690 | 263 days ago | IN | 0 ETH | 0.00347277 | ||||
Claim Tokens | 19022402 | 263 days ago | IN | 0 ETH | 0.00296509 | ||||
Claim Tokens | 19021907 | 263 days ago | IN | 0 ETH | 0.00366636 | ||||
Claim Tokens | 19020944 | 263 days ago | IN | 0 ETH | 0.00449324 | ||||
Claim Tokens | 19019327 | 263 days ago | IN | 0 ETH | 0.0035681 | ||||
Claim Tokens | 19018930 | 263 days ago | IN | 0 ETH | 0.00381536 | ||||
Claim Tokens | 19018427 | 263 days ago | IN | 0 ETH | 0.00268449 | ||||
Claim Tokens | 19017940 | 263 days ago | IN | 0 ETH | 0.00062609 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
18456716 | 342 days ago | 76.81109286 ETH |
Loading...
Loading
Contract Name:
BuccaneerV3Crowdsale
Compiler Version
v0.8.18+commit.87f61d96
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/utils/math/SafeMath.sol"; /* ██████╗░██╗░░░██╗░█████╗░░█████╗░░█████╗░███╗░░██╗███████╗███████╗██████╗░ ██╗░░░██╗██████╗░ ██╔══██╗██║░░░██║██╔══██╗██╔══██╗██╔══██╗████╗░██║██╔════╝██╔════╝██╔══██╗ ██║░░░██║╚════██╗ ██████╦╝██║░░░██║██║░░╚═╝██║░░╚═╝███████║██╔██╗██║█████╗░░█████╗░░██████╔╝ ╚██╗░██╔╝░█████╔╝ ██╔══██╗██║░░░██║██║░░██╗██║░░██╗██╔══██║██║╚████║██╔══╝░░██╔══╝░░██╔══██╗ ░╚████╔╝░░╚═══██╗ ██████╦╝╚██████╔╝╚█████╔╝╚█████╔╝██║░░██║██║░╚███║███████╗███████╗██║░░██║ ░░╚██╔╝░░██████╔╝ ╚═════╝░░╚═════╝░░╚════╝░░╚════╝░╚═╝░░╚═╝╚═╝░░╚══╝╚══════╝╚══════╝╚═╝░░╚═╝ ░░░╚═╝░░░╚═════╝░ */ contract BuccaneerV3Crowdsale { using SafeMath for uint256; IERC20 private token; address private owner; uint256 private endTime; uint256 private raisedAmount = 0; uint256 private tokenPrice = 180; // 180 tokens per ETH, updated uint256 private goal = 280 ether; uint256 private maxLimit = 20 ether; uint256 private minLimit = 0.1 ether; uint256 private totalTokens = 50400000000000000000000; string private description = "Buccaneer V3 is an advanced on-chain privacy token that allows users to discreetly send BUCC tokens around privately. BUCC will be available approximately a month after the sale has concluded. IMPORTANT LEGAL NOTICE: This transaction is not available to residents, citizens, or green card holders of the United States of America or any of its territories or possessions, including Puerto Rico, the U.S. Virgin Islands, and Guam (collectively, 'US Persons'). The service offered in this transaction has not been registered under the United States Securities Act of 1933, as amended (the 'Securities Act'), or any state securities laws, and may not be offered, sold, pledged, or otherwise transferred within the United States or to or for the benefit of US Persons, except pursuant to an exemption from, or in a transaction not subject to, the registration requirements of the Securities Act and applicable state securities laws. US Persons are not permitted to participate in the transaction offered here. By participating in this transaction, you represent and warrant that you are not a US Person and that you are not purchasing on behalf of or for the benefit of a US Person. The Buccaneer team does not accept any responsibility or liability for any violation of local regulations by any user. All participants must ensure they are compliant with their local regulations and laws before participating. The user assumes all responsibility and risk associated with this transaction, and the Buccaneer team will not be held liable for any actions, claims, damages, costs, or liabilities arising from or related to this contract. It's imperative that participants conduct thorough research and consult with legal professionals where necessary. By interacting with this contract, you agree to these terms. Join https://t.me/BuccaneerV3 for more information."; //remember to fix bool private saleStarted = false; uint256 private tokensSold = 0; uint256 private startTime; struct Buyer { address buyerAddress; uint256 amountBought; } Buyer[] private buyers; mapping(address => uint256) private buyerIDs; mapping(address => uint256) private balances; mapping(address => bool) private userLock; mapping(address => uint256) private contributedEth; mapping(address => bool) private claimed; modifier onlyOwner() { require(msg.sender == owner, "Not the contract owner"); _; } modifier hasMinimumPurchase() { require(msg.value >= minLimit, "0.1 ETH is the minimum purchase limit"); _; } modifier hasMaximumPurchase() { require(contributedEth[msg.sender].add(msg.value) <= maxLimit, "20 ETH is the maximum total contribution per address"); _; } modifier saleHasStarted() { require(saleStarted, "Sale has not started yet"); _; } constructor() { owner = msg.sender; endTime = block.timestamp + 48 hours; } function VIII_startSale() external onlyOwner { startTime = block.timestamp; endTime = block.timestamp + 48 hours; saleStarted = true; } function VIII_setToken(address _token) external onlyOwner { //require(address(token) == address(0), "Token already set!"); token = IERC20(_token); } function buyTokensInternal() internal hasMinimumPurchase hasMaximumPurchase saleHasStarted { require(!userLock[msg.sender], "Reentrant call detected!"); userLock[msg.sender] = true; require(block.timestamp < endTime, "Sale ended"); uint256 tokensToBuy = msg.value.mul(tokenPrice); // Calculate the number of tokens left for sale uint256 tokensLeft = totalTokens.sub(tokensSold); require(tokensLeft >= tokensToBuy, "Not enough tokens left to buy"); // Assign ID if the buyer is new if(buyerIDs[msg.sender] == 0) { buyers.push(Buyer({ buyerAddress: msg.sender, amountBought: tokensToBuy })); buyerIDs[msg.sender] = buyers.length; // This will be the ID for the buyer } else { uint256 index = buyerIDs[msg.sender] - 1; buyers[index].amountBought = buyers[index].amountBought.add(tokensToBuy); } tokensSold = tokensSold.add(tokensToBuy); raisedAmount = raisedAmount.add(msg.value); balances[msg.sender] = balances[msg.sender].add(tokensToBuy); // Update the total ETH contributed by the sender contributedEth[msg.sender] = contributedEth[msg.sender].add(msg.value); userLock[msg.sender] = false; } function buyTokens() external payable hasMinimumPurchase hasMaximumPurchase saleHasStarted { buyTokensInternal(); } receive() external payable { buyTokensInternal(); } function claimTokens() external saleHasStarted { require(block.timestamp > endTime, "Sale not ended"); require(!claimed[msg.sender], "You have already claimed your tokens"); require(!userLock[msg.sender], "Reentrant call detected!"); userLock[msg.sender] = true; uint256 amount = balances[msg.sender]; require(amount > 0, "No tokens to claim"); balances[msg.sender] = 0; // Update the user's balance before the actual transfer for added security. require(token.transfer(msg.sender, amount), "Token transfer failed"); claimed[msg.sender] = true; userLock[msg.sender] = false; } function VIII_endSalePrematurely() external onlyOwner { require(saleStarted, "Sale hasn't started yet"); require(block.timestamp < endTime, "Sale has already ended"); endTime = block.timestamp; // Set endTime to the current time to end the sale } function VIII_withdrawETH() external onlyOwner { payable(owner).transfer(address(this).balance); } function VIII_emergencyPull(uint256 _amount) external onlyOwner { payable(owner).transfer(_amount); } function VIII_setTokenPrice_in_RATIO(uint256 _price) external onlyOwner { tokenPrice = _price; } function VIII_setGoal_in_WEI(uint256 _goal) external onlyOwner { goal = _goal; } function VIII_setTotalTokens_in_18_Decimal(uint256 _newTotal) external onlyOwner { totalTokens = _newTotal; } function A_Check_My_Balance() external view returns (string memory) { address user = msg.sender; uint256 userTokens = balances[user]; if (block.timestamp > endTime && claimed[user]) { return "You have already claimed your tokens."; } if (userTokens == 0) { return "You haven't sent any tokens."; } uint256 percentageOfTotal = (userTokens.mul(100)).div(totalTokens); string memory rank = getRank(contributedEth[user]); string memory baseString = "You are ranked as a "; string memory rankStr = rank; string memory claimString = ". You will be able to claim "; string memory tokensStr = _uintToString(userTokens.div(1e18)); // Displaying compact value string memory middleString = " tokens, which is "; string memory percentageStr = _uintToString(percentageOfTotal); string memory endString = "% of the total tokens. Remember this is a rounded estimate. Use your ID and to the G_getBalanceByBuyerID function and input your ID for the exact amount."; bytes memory b = new bytes(400); // estimation of space required, increased due to the addition of rank uint pos = 0; for (uint i = 0; i < bytes(baseString).length; i++) b[pos++] = bytes(baseString)[i]; for (uint i = 0; i < bytes(rankStr).length; i++) b[pos++] = bytes(rankStr)[i]; for (uint i = 0; i < bytes(claimString).length; i++) b[pos++] = bytes(claimString)[i]; for (uint i = 0; i < bytes(tokensStr).length; i++) b[pos++] = bytes(tokensStr)[i]; for (uint i = 0; i < bytes(middleString).length; i++) b[pos++] = bytes(middleString)[i]; for (uint i = 0; i < bytes(percentageStr).length; i++) b[pos++] = bytes(percentageStr)[i]; for (uint i = 0; i < bytes(endString).length; i++) b[pos++] = bytes(endString)[i]; string memory finalStr = new string(pos); for (uint i = 0; i < pos; i++) { bytes(finalStr)[i] = b[i]; } return finalStr; } function B_Show_What_Percentage_Sale_Is_Done() external view returns (string memory) { if (block.timestamp > endTime) { return "The sale is over."; } if (raisedAmount == 0) { return "The sale hasn't had any ETH sent to it yet."; } uint256 percentage = raisedAmount.mul(100).div(goal); if (percentage >= 995 && percentage < 1000) { // if it's close to 100% (>=99.5%) return "The sale is at 100% completion."; } return string(abi.encodePacked("The sale is at ", uint2str(percentage), " percentage towards completion.")); } function C_getSaleStatus() external view returns (string memory) { if (!saleStarted) { return "The sale has not started."; } else if (block.timestamp < endTime) { uint256 timeRemaining = endTime.sub(block.timestamp); uint256 U = timeRemaining.div(3600); uint256 Z = (timeRemaining.sub(U.mul(3600))).div(60); return string(abi.encodePacked("The sale is live, there are hours: ", _uintToString(U), " and ", _uintToString(Z), " minutes left.")); } else { return "The Sale is Over"; } } function D_Tokens_Left_in_the_Sale() external view returns (string memory) { if (block.timestamp > endTime) { return "The sale is over."; } uint256 tokensRemaining = totalTokens.sub(tokensSold).div(1e18); uint256 compactTokensSold = tokensSold.div(1e18); string memory tokensSoldStr = _uintToString(compactTokensSold); string memory tokensRemainingStr = _uintToString(tokensRemaining); // Constructing the status message bytes memory b = new bytes(200); // estimation of space string memory baseString = "A total of "; string memory middleString = " tokens have been sold and "; string memory endString = " are left."; uint pos = 0; for (uint i = 0; i < bytes(baseString).length; i++) b[pos++] = bytes(baseString)[i]; for (uint i = 0; i < bytes(tokensSoldStr).length; i++) b[pos++] = bytes(tokensSoldStr)[i]; for (uint i = 0; i < bytes(middleString).length; i++) b[pos++] = bytes(middleString)[i]; for (uint i = 0; i < bytes(tokensRemainingStr).length; i++) b[pos++] = bytes(tokensRemainingStr)[i]; for (uint i = 0; i < bytes(endString).length; i++) b[pos++] = bytes(endString)[i]; string memory finalStr = new string(pos); for (uint i = 0; i < pos; i++) { bytes(finalStr)[i] = b[i]; } return finalStr; } function E_What_is_the_Minimum_Send_in_Limit() external view returns (string memory) { if (block.timestamp > endTime) { return "The sale is over."; } return "The minimum send limit is 0.1 Ethereum. The maximum input is 20 Ethereum per address."; } function F_What_is_the_Price() external view returns (string memory) { return string(abi.encodePacked("The number of tokens per ETH is: ", uint2str(tokenPrice))); } function G_getBalanceByBuyerID(uint256 _buyerID) external view returns (string memory) { // Ensure the buyerID is valid require(_buyerID > 0 && _buyerID <= buyers.length, "Invalid buyerID"); // Retrieve the buyer's address using the buyerID address buyerAddress = buyers[_buyerID - 1].buyerAddress; // Convert the address to string string memory addressStr = _addrToString(buyerAddress); if (block.timestamp > endTime && claimed[buyerAddress]) { return "Address has already claimed their tokens."; } // Check if the user has a balance uint256 balance = balances[buyerAddress]; if (balance == 0) { return string(abi.encodePacked("Address: ", addressStr, " has not sent any ETH to the contract.")); } else { return string(abi.encodePacked("Address: ", addressStr, " has a balance of: ", uint2str(balance))); } } function H_getTotalBuyers() external view returns (string memory) { if (block.timestamp > endTime) { return string(abi.encodePacked("The sale is over. The final number of buyers was: ", uint2str(buyers.length))); } return string(abi.encodePacked("The total number of buyers is: ", uint2str(buyers.length))); } function I_getDescription() external view returns (string memory) { return description; } function J_estimatedTimeToEndSale() external view saleHasStarted returns (string memory) { if (block.timestamp >= endTime || tokensSold == totalTokens) { return "The sale has either ended or all tokens are sold."; } uint256 averageRate = tokensSold.div(block.timestamp.sub(startTime)); // Tokens per second if (averageRate == 0) { return "Not enough data to estimate time to end sale."; } uint256 estimatedSecondsToEnd = totalTokens.sub(tokensSold).div(averageRate); uint256 estimatedHoursToEnd = estimatedSecondsToEnd.div(3600); return string(abi.encodePacked("Estimated hours to end sale: ", uint2str(estimatedHoursToEnd))); } function K_getUserID() external view returns (uint256) { return buyerIDs[msg.sender]; } function L_getTokensLeft() external view returns (string memory) { uint256 tokensLeft = token.balanceOf(address(this)).div(1e18); return string(abi.encodePacked("Number of tokens left in the contract: ", uint2str(tokensLeft))); } function getRank(uint256 contribution) internal pure returns (string memory) { if (contribution < 0.3 ether) return "Slave"; if (contribution < 1.5 ether) return "Swab"; if (contribution < 3 ether) return "Cook"; if (contribution < 4.5 ether) return "Boatswain"; if (contribution < 5 ether) return "Carpenter"; if (contribution < 7.5 ether) return "Chaplain"; if (contribution < 10 ether) return "Quartermaster"; if (contribution < 12.5 ether) return "Master Gunner"; if (contribution < 15 ether) return "Sailmaster"; return "First Mate"; } //UTIL function uint2str(uint256 _i) internal pure returns (string memory) { if (_i == 0) { return "0"; } uint256 j = _i; uint256 length; while (j != 0) { length++; j /= 10; } bytes memory bstr = new bytes(length); uint256 k = length; while (_i != 0) { bstr[--k] = bytes1(uint8(48 + _i % 10)); _i /= 10; } return string(bstr); } function _uintToString(uint256 _i) internal pure returns (string memory) { if (_i == 0) { return "0"; } uint256 j = _i; uint256 length; while (j != 0) { length++; j /= 10; } bytes memory bstr = new bytes(length); uint256 k = length; j = _i; while (j != 0) { bstr[--k] = bytes1(uint8(48 + j % 10)); j /= 10; } return string(bstr); } function _addrToString(address _addr) internal pure returns(string memory) { bytes32 value = bytes32(uint256(uint160(_addr))); bytes memory alphabet = "0123456789abcdef"; bytes memory str = new bytes(42); str[0] = '0'; str[1] = 'x'; for (uint256 i = 0; i < 20; i++) { str[2+i*2] = alphabet[uint8(value[i + 12] >> 4)]; str[3+i*2] = alphabet[uint8(value[i + 12] & 0x0f)]; } return string(str); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (utils/math/SafeMath.sol) pragma solidity ^0.8.0; // CAUTION // This version of SafeMath should only be used with Solidity 0.8 or later, // because it relies on the compiler's built in overflow checks. /** * @dev Wrappers over Solidity's arithmetic operations. * * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler * now has built in overflow checking. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } /** * @dev Returns the subtraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } /** * @dev Returns the integer division of two unsigned integers, reverting on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address from, address to, uint256 amount) external returns (bool); }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"A_Check_My_Balance","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"B_Show_What_Percentage_Sale_Is_Done","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"C_getSaleStatus","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"D_Tokens_Left_in_the_Sale","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"E_What_is_the_Minimum_Send_in_Limit","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"F_What_is_the_Price","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyerID","type":"uint256"}],"name":"G_getBalanceByBuyerID","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"H_getTotalBuyers","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"I_getDescription","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"J_estimatedTimeToEndSale","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"K_getUserID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"L_getTokensLeft","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"VIII_emergencyPull","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"VIII_endSalePrematurely","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_goal","type":"uint256"}],"name":"VIII_setGoal_in_WEI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"VIII_setToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_price","type":"uint256"}],"name":"VIII_setTokenPrice_in_RATIO","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newTotal","type":"uint256"}],"name":"VIII_setTotalTokens_in_18_Decimal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"VIII_startSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"VIII_withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyTokens","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"claimTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600060035560b4600455680f2dc7d47f156000006005556801158e460913d0000060065567016345785d8a0000600755690aac3081695b0780000060085560405180610760016040528061073f815260200162004e9e61073f9139600990816200006f919062000376565b506000600a60006101000a81548160ff0219169083151502179055506000600b553480156200009d57600080fd5b5033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506202a30042620000f091906200048c565b600281905550620004c7565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200017e57607f821691505b60208210810362000194576200019362000136565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001bf565b6200020a8683620001bf565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000257620002516200024b8462000222565b6200022c565b62000222565b9050919050565b6000819050919050565b620002738362000236565b6200028b62000282826200025e565b848454620001cc565b825550505050565b600090565b620002a262000293565b620002af81848462000268565b505050565b5b81811015620002d757620002cb60008262000298565b600181019050620002b5565b5050565b601f8211156200032657620002f0816200019a565b620002fb84620001af565b810160208510156200030b578190505b620003236200031a85620001af565b830182620002b4565b50505b505050565b600082821c905092915050565b60006200034b600019846008026200032b565b1980831691505092915050565b600062000366838362000338565b9150826002028217905092915050565b6200038182620000fc565b67ffffffffffffffff8111156200039d576200039c62000107565b5b620003a9825462000165565b620003b6828285620002db565b600060209050601f831160018114620003ee5760008415620003d9578287015190505b620003e5858262000358565b86555062000455565b601f198416620003fe866200019a565b60005b82811015620004285784890151825560018201915060208501945060208101905062000401565b8683101562000448578489015162000444601f89168262000338565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620004998262000222565b9150620004a68362000222565b9250828201905080821115620004c157620004c06200045d565b5b92915050565b6149c780620004d76000396000f3fe6080604052600436106101395760003560e01c80638cd34885116100ab578063a9b1cb7c1161006f578063a9b1cb7c146103cb578063b6d46539146103f4578063d0febe4c1461041f578063e16d5c2014610429578063f7af63cc14610454578063fadcdaa01461047f57610148565b80638cd34885146102e45780638f587ff3146103215780639994e1e61461034a5780639d40433714610375578063a8ed1241146103a057610148565b80634434edb5116100fd5780634434edb51461022057806348c54b9d146102495780635c040e57146102605780635ef5d035146102775780636b8d6610146102a257806376e8cce7146102cd57610148565b80630902323a1461014d578063168062af1461017857806317657c5d146101a157806325dba88f146101cc578063341cec8b146101f557610148565b3661014857610146610496565b005b600080fd5b34801561015957600080fd5b50610162610b0d565b60405161016f9190613647565b60405180910390f35b34801561018457600080fd5b5061019f600480360381019061019a91906136a4565b610c52565b005b3480156101ad57600080fd5b506101b6610cec565b6040516101c39190613647565b60405180910390f35b3480156101d857600080fd5b506101f360048036038101906101ee91906136a4565b610dd4565b005b34801561020157600080fd5b5061020a610e6e565b6040516102179190613647565b60405180910390f35b34801561022c57600080fd5b506102476004803603810190610242919061372f565b6113c5565b005b34801561025557600080fd5b5061025e611498565b005b34801561026c57600080fd5b506102756118f9565b005b34801561028357600080fd5b5061028c6119c2565b604051610299919061376b565b60405180910390f35b3480156102ae57600080fd5b506102b7611a09565b6040516102c49190613647565b60405180910390f35b3480156102d957600080fd5b506102e2611b60565b005b3480156102f057600080fd5b5061030b600480360381019061030691906136a4565b611c5b565b6040516103189190613647565b60405180910390f35b34801561032d57600080fd5b50610348600480360381019061034391906136a4565b611e40565b005b34801561035657600080fd5b5061035f611f3c565b60405161036c9190613647565b60405180910390f35b34801561038157600080fd5b5061038a611faf565b6040516103979190613647565b60405180910390f35b3480156103ac57600080fd5b506103b5612041565b6040516103c29190613647565b60405180910390f35b3480156103d757600080fd5b506103f260048036038101906103ed91906136a4565b612167565b005b34801561040057600080fd5b50610409612201565b6040516104169190613647565b60405180910390f35b610427612269565b005b34801561043557600080fd5b5061043e61239d565b60405161044b9190613647565b60405180910390f35b34801561046057600080fd5b50610469612b39565b6040516104769190613647565b60405180910390f35b34801561048b57600080fd5b50610494612b6a565b005b6007543410156104db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d2906137f8565b60405180910390fd5b60065461053034601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c9690919063ffffffff16565b1115610571576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105689061388a565b60405180910390fd5b600a60009054906101000a900460ff166105c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b7906138f6565b60405180910390fd5b601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561064d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064490613962565b60405180910390fd5b6001601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060025442106106e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e0906139ce565b60405180910390fd5b600061070060045434612cac90919063ffffffff16565b9050600061071b600b54600854612cc290919063ffffffff16565b905081811015610760576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075790613a3a565b60405180910390fd5b6000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540361089e57600d60405180604001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200184815250908060018154018082558091505060019003906000526020600020906002020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101555050600d80549050600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610951565b60006001600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108ec9190613a89565b905061092683600d838154811061090657610905613abd565b5b906000526020600020906002020160010154612c9690919063ffffffff16565b600d828154811061093a57610939613abd565b5b906000526020600020906002020160010181905550505b61096682600b54612c9690919063ffffffff16565b600b8190555061098134600354612c9690919063ffffffff16565b6003819055506109d982600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c9690919063ffffffff16565b600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a6e34601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c9690919063ffffffff16565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6060600a60009054906101000a900460ff16610b60576040518060400160405280601981526020017f5468652073616c6520686173206e6f7420737461727465642e000000000000008152509050610c4f565b600254421015610c16576000610b8142600254612cc290919063ffffffff16565b90506000610b9a610e1083612cd890919063ffffffff16565b90506000610bd8603c610bca610bbb610e1086612cac90919063ffffffff16565b86612cc290919063ffffffff16565b612cd890919063ffffffff16565b9050610be382612cee565b610bec82612cee565b604051602001610bfd929190613c32565b6040516020818303038152906040529350505050610c4f565b6040518060400160405280601081526020017f5468652053616c65206973204f7665720000000000000000000000000000000081525090505b90565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ce2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd990613cc3565b60405180910390fd5b8060048190555050565b60606000610da4670de0b6b3a764000060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d559190613cf2565b602060405180830381865afa158015610d72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d969190613d22565b612cd890919063ffffffff16565b9050610daf81612e54565b604051602001610dbf9190613dc1565b60405160208183030381529060405291505090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5b90613cc3565b60405180910390fd5b8060088190555050565b6060600254421115610eb7576040518060400160405280601181526020017f5468652073616c65206973206f7665722e00000000000000000000000000000081525090506113c2565b6000610eea670de0b6b3a7640000610edc600b54600854612cc290919063ffffffff16565b612cd890919063ffffffff16565b90506000610f0b670de0b6b3a7640000600b54612cd890919063ffffffff16565b90506000610f1882612cee565b90506000610f2584612cee565b9050600060c867ffffffffffffffff811115610f4457610f43613de3565b5b6040519080825280601f01601f191660200182016040528015610f765781602001600182028036833780820191505090505b50905060006040518060400160405280600b81526020017f4120746f74616c206f6620000000000000000000000000000000000000000000815250905060006040518060400160405280601b81526020017f20746f6b656e732068617665206265656e20736f6c6420616e64200000000000815250905060006040518060400160405280600a81526020017f20617265206c6566742e0000000000000000000000000000000000000000000081525090506000805b84518110156110b35784818151811061104757611046613abd565b5b602001015160f81c60f81b86838061105e90613e12565b94508151811061107157611070613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806110ab90613e12565b91505061102b565b5060005b875181101561113f578781815181106110d3576110d2613abd565b5b602001015160f81c60f81b8683806110ea90613e12565b9450815181106110fd576110fc613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061113790613e12565b9150506110b7565b5060005b83518110156111cb5783818151811061115f5761115e613abd565b5b602001015160f81c60f81b86838061117690613e12565b94508151811061118957611188613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806111c390613e12565b915050611143565b5060005b8651811015611257578681815181106111eb576111ea613abd565b5b602001015160f81c60f81b86838061120290613e12565b94508151811061121557611214613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061124f90613e12565b9150506111cf565b5060005b82518110156112e35782818151811061127757611276613abd565b5b602001015160f81c60f81b86838061128e90613e12565b9450815181106112a1576112a0613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806112db90613e12565b91505061125b565b5060008167ffffffffffffffff811115611300576112ff613de3565b5b6040519080825280601f01601f1916602001820160405280156113325781602001600182028036833780820191505090505b50905060005b828110156113b35786818151811061135357611352613abd565b5b602001015160f81c60f81b82828151811061137157611370613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806113ab90613e12565b915050611338565b50809a50505050505050505050505b90565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144c90613cc3565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a60009054906101000a900460ff166114e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114de906138f6565b60405180910390fd5b600254421161152b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152290613ea6565b60405180910390fd5b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156115b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115af90613f38565b60405180910390fd5b601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163c90613962565b60405180910390fd5b6001601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111611724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171b90613fa4565b60405180910390fd5b6000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016117c4929190613fc4565b6020604051808303816000875af11580156117e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118079190614025565b611846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183d9061409e565b60405180910390fd5b6001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611989576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198090613cc3565b60405180910390fd5b42600c819055506202a3004261199f91906140be565b6002819055506001600a60006101000a81548160ff021916908315150217905550565b6000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b6060600a60009054906101000a900460ff16611a5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a51906138f6565b60405180910390fd5b60025442101580611a6e5750600854600b54145b15611a9357604051806060016040528060318152602001614891603191399050611b5d565b6000611abe611aad600c5442612cc290919063ffffffff16565b600b54612cd890919063ffffffff16565b905060008103611ae9576040518060600160405280602d81526020016148c2602d9139915050611b5d565b6000611b1482611b06600b54600854612cc290919063ffffffff16565b612cd890919063ffffffff16565b90506000611b2d610e1083612cd890919063ffffffff16565b9050611b3881612e54565b604051602001611b48919061413e565b60405160208183030381529060405293505050505b90565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611bf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be790613cc3565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611c58573d6000803e3d6000fd5b50565b6060600082118015611c725750600d805490508211155b611cb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca8906141ac565b60405180910390fd5b6000600d600184611cc29190613a89565b81548110611cd357611cd2613abd565b5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000611d1282612fb7565b905060025442118015611d6e5750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611d95576040518060600160405280602981526020016149146029913992505050611e3b565b6000600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008103611e0b5781604051602001611df2919061428a565b6040516020818303038152906040529350505050611e3b565b81611e1582612e54565b604051602001611e26929190614303565b60405160208183030381529060405293505050505b919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ed0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec790613cc3565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f38573d6000803e3d6000fd5b5050565b6060600254421115611f7c57611f56600d80549050612e54565b604051602001611f6691906143af565b6040516020818303038152906040529050611fac565b611f8a600d80549050612e54565b604051602001611f9a919061441d565b60405160208183030381529060405290505b90565b606060098054611fbe9061446e565b80601f0160208091040260200160405190810160405280929190818152602001828054611fea9061446e565b80156120375780601f1061200c57610100808354040283529160200191612037565b820191906000526020600020905b81548152906001019060200180831161201a57829003601f168201915b5050505050905090565b606060025442111561208a576040518060400160405280601181526020017f5468652073616c65206973206f7665722e0000000000000000000000000000008152509050612164565b6000600354036120b4576040518060600160405280602b81526020016147cd602b91399050612164565b60006120e06005546120d26064600354612cac90919063ffffffff16565b612cd890919063ffffffff16565b90506103e381101580156120f557506103e881105b15612138576040518060400160405280601f81526020017f5468652073616c65206973206174203130302520636f6d706c6574696f6e2e00815250915050612164565b61214181612e54565b6040516020016121519190614537565b6040516020818303038152906040529150505b90565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146121f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ee90613cc3565b60405180910390fd5b8060058190555050565b606060025442111561224a576040518060400160405280601181526020017f5468652073616c65206973206f7665722e0000000000000000000000000000008152509050612266565b60405180608001604052806055815260200161493d6055913990505b90565b6007543410156122ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a5906137f8565b60405180910390fd5b60065461230334601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c9690919063ffffffff16565b1115612344576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233b9061388a565b60405180910390fd5b600a60009054906101000a900460ff16612393576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238a906138f6565b60405180910390fd5b61239b610496565b565b606060003390506000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600254421180156124425750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612469576040518060600160405280602581526020016148ef6025913992505050612b36565b600081036124b0576040518060400160405280601c81526020017f596f7520686176656e27742073656e7420616e7920746f6b656e732e0000000081525092505050612b36565b60006124da6008546124cc606485612cac90919063ffffffff16565b612cd890919063ffffffff16565b90506000612526601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132c2565b905060006040518060400160405280601481526020017f596f75206172652072616e6b65642061732061200000000000000000000000008152509050600082905060006040518060400160405280601c81526020017f2e20596f752077696c6c2062652061626c6520746f20636c61696d2000000000815250905060006125c66125c1670de0b6b3a764000089612cd890919063ffffffff16565b612cee565b905060006040518060400160405280601281526020017f20746f6b656e732c2077686963682069732000000000000000000000000000008152509050600061260d88612cee565b905060006040518060c00160405280609981526020016147f8609991399050600061019067ffffffffffffffff81111561264a57612649613de3565b5b6040519080825280601f01601f19166020018201604052801561267c5781602001600182028036833780820191505090505b5090506000805b895181101561270b5789818151811061269f5761269e613abd565b5b602001015160f81c60f81b8383806126b690613e12565b9450815181106126c9576126c8613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061270390613e12565b915050612683565b5060005b88518110156127975788818151811061272b5761272a613abd565b5b602001015160f81c60f81b83838061274290613e12565b94508151811061275557612754613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061278f90613e12565b91505061270f565b5060005b8751811015612823578781815181106127b7576127b6613abd565b5b602001015160f81c60f81b8383806127ce90613e12565b9450815181106127e1576127e0613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061281b90613e12565b91505061279b565b5060005b86518110156128af5786818151811061284357612842613abd565b5b602001015160f81c60f81b83838061285a90613e12565b94508151811061286d5761286c613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806128a790613e12565b915050612827565b5060005b855181101561293b578581815181106128cf576128ce613abd565b5b602001015160f81c60f81b8383806128e690613e12565b9450815181106128f9576128f8613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061293390613e12565b9150506128b3565b5060005b84518110156129c75784818151811061295b5761295a613abd565b5b602001015160f81c60f81b83838061297290613e12565b94508151811061298557612984613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806129bf90613e12565b91505061293f565b5060005b8351811015612a53578381815181106129e7576129e6613abd565b5b602001015160f81c60f81b8383806129fe90613e12565b945081518110612a1157612a10613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080612a4b90613e12565b9150506129cb565b5060008167ffffffffffffffff811115612a7057612a6f613de3565b5b6040519080825280601f01601f191660200182016040528015612aa25781602001600182028036833780820191505090505b50905060005b82811015612b2357838181518110612ac357612ac2613abd565b5b602001015160f81c60f81b828281518110612ae157612ae0613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080612b1b90613e12565b915050612aa8565b50809e5050505050505050505050505050505b90565b6060612b46600454612e54565b604051602001612b5691906145d6565b604051602081830303815290604052905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612bfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf190613cc3565b60405180910390fd5b600a60009054906101000a900460ff16612c49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4090614644565b60405180910390fd5b6002544210612c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c84906146b0565b60405180910390fd5b42600281905550565b60008183612ca491906140be565b905092915050565b60008183612cba91906146d0565b905092915050565b60008183612cd09190613a89565b905092915050565b60008183612ce69190614741565b905092915050565b606060008203612d35576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612e4f565b600082905060005b60008214612d67578080612d5090613e12565b915050600a82612d609190614741565b9150612d3d565b60008167ffffffffffffffff811115612d8357612d82613de3565b5b6040519080825280601f01601f191660200182016040528015612db55781602001600182028036833780820191505090505b50905060008290508593505b60008414612e4757600a84612dd69190614772565b6030612de291906140be565b60f81b8282612df0906147a3565b92508281518110612e0457612e03613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84612e409190614741565b9350612dc1565b819450505050505b919050565b606060008203612e9b576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612fb2565b600082905060005b60008214612ecd578080612eb690613e12565b915050600a82612ec69190614741565b9150612ea3565b60008167ffffffffffffffff811115612ee957612ee8613de3565b5b6040519080825280601f01601f191660200182016040528015612f1b5781602001600182028036833780820191505090505b50905060008290505b60008614612faa57600a86612f399190614772565b6030612f4591906140be565b60f81b8282612f53906147a3565b92508281518110612f6757612f66613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a86612fa39190614741565b9550612f24565b819450505050505b919050565b606060008273ffffffffffffffffffffffffffffffffffffffff1660001b905060006040518060400160405280601081526020017f303132333435363738396162636465660000000000000000000000000000000081525090506000602a67ffffffffffffffff81111561302e5761302d613de3565b5b6040519080825280601f01601f1916602001820160405280156130605781602001600182028036833780820191505090505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061309857613097613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106130fc576130fb613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060005b60148110156132b65782600485600c8461314891906140be565b6020811061315957613158613abd565b5b1a60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916901c60f81c60ff168151811061319857613197613abd565b5b602001015160f81c60f81b826002836131b191906146d0565b60026131bd91906140be565b815181106131ce576131cd613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535082600f60f81b85600c8461321191906140be565b6020811061322257613221613abd565b5b1a60f81b1660f81c60ff168151811061323e5761323d613abd565b5b602001015160f81c60f81b8260028361325791906146d0565b600361326391906140be565b8151811061327457613273613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806132ae90613e12565b91505061312e565b50809350505050919050565b6060670429d069189e0000821015613311576040518060400160405280600581526020017f536c61766500000000000000000000000000000000000000000000000000000081525090506135b2565b6714d1120d7b16000082101561335e576040518060400160405280600481526020017f537761620000000000000000000000000000000000000000000000000000000081525090506135b2565b6729a2241af62c00008210156133ab576040518060400160405280600481526020017f436f6f6b0000000000000000000000000000000000000000000000000000000081525090506135b2565b673e733628714200008210156133f8576040518060400160405280600981526020017f426f6174737761696e000000000000000000000000000000000000000000000081525090506135b2565b674563918244f40000821015613445576040518060400160405280600981526020017f43617270656e746572000000000000000000000000000000000000000000000081525090506135b2565b6768155a43676e0000821015613492576040518060400160405280600881526020017f436861706c61696e00000000000000000000000000000000000000000000000081525090506135b2565b678ac7230489e800008210156134df576040518060400160405280600d81526020017f517561727465726d61737465720000000000000000000000000000000000000081525090506135b2565b67ad78ebc5ac62000082101561352c576040518060400160405280600d81526020017f4d61737465722047756e6e65720000000000000000000000000000000000000081525090506135b2565b67d02ab486cedc0000821015613579576040518060400160405280600a81526020017f5361696c6d61737465720000000000000000000000000000000000000000000081525090506135b2565b6040518060400160405280600a81526020017f4669727374204d6174650000000000000000000000000000000000000000000081525090505b919050565b600081519050919050565b600082825260208201905092915050565b60005b838110156135f15780820151818401526020810190506135d6565b60008484015250505050565b6000601f19601f8301169050919050565b6000613619826135b7565b61362381856135c2565b93506136338185602086016135d3565b61363c816135fd565b840191505092915050565b60006020820190508181036000830152613661818461360e565b905092915050565b600080fd5b6000819050919050565b6136818161366e565b811461368c57600080fd5b50565b60008135905061369e81613678565b92915050565b6000602082840312156136ba576136b9613669565b5b60006136c88482850161368f565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006136fc826136d1565b9050919050565b61370c816136f1565b811461371757600080fd5b50565b60008135905061372981613703565b92915050565b60006020828403121561374557613744613669565b5b60006137538482850161371a565b91505092915050565b6137658161366e565b82525050565b6000602082019050613780600083018461375c565b92915050565b7f302e312045544820697320746865206d696e696d756d2070757263686173652060008201527f6c696d6974000000000000000000000000000000000000000000000000000000602082015250565b60006137e26025836135c2565b91506137ed82613786565b604082019050919050565b60006020820190508181036000830152613811816137d5565b9050919050565b7f32302045544820697320746865206d6178696d756d20746f74616c20636f6e7460008201527f7269627574696f6e207065722061646472657373000000000000000000000000602082015250565b60006138746034836135c2565b915061387f82613818565b604082019050919050565b600060208201905081810360008301526138a381613867565b9050919050565b7f53616c6520686173206e6f742073746172746564207965740000000000000000600082015250565b60006138e06018836135c2565b91506138eb826138aa565b602082019050919050565b6000602082019050818103600083015261390f816138d3565b9050919050565b7f5265656e7472616e742063616c6c206465746563746564210000000000000000600082015250565b600061394c6018836135c2565b915061395782613916565b602082019050919050565b6000602082019050818103600083015261397b8161393f565b9050919050565b7f53616c6520656e64656400000000000000000000000000000000000000000000600082015250565b60006139b8600a836135c2565b91506139c382613982565b602082019050919050565b600060208201905081810360008301526139e7816139ab565b9050919050565b7f4e6f7420656e6f75676820746f6b656e73206c65667420746f20627579000000600082015250565b6000613a24601d836135c2565b9150613a2f826139ee565b602082019050919050565b60006020820190508181036000830152613a5381613a17565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613a948261366e565b9150613a9f8361366e565b9250828203905081811115613ab757613ab6613a5a565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081905092915050565b7f5468652073616c65206973206c6976652c2074686572652061726520686f757260008201527f733a200000000000000000000000000000000000000000000000000000000000602082015250565b6000613b53602383613aec565b9150613b5e82613af7565b602382019050919050565b6000613b74826135b7565b613b7e8185613aec565b9350613b8e8185602086016135d3565b80840191505092915050565b7f20616e6420000000000000000000000000000000000000000000000000000000600082015250565b6000613bd0600583613aec565b9150613bdb82613b9a565b600582019050919050565b7f206d696e75746573206c6566742e000000000000000000000000000000000000600082015250565b6000613c1c600e83613aec565b9150613c2782613be6565b600e82019050919050565b6000613c3d82613b46565b9150613c498285613b69565b9150613c5482613bc3565b9150613c608284613b69565b9150613c6b82613c0f565b91508190509392505050565b7f4e6f742074686520636f6e7472616374206f776e657200000000000000000000600082015250565b6000613cad6016836135c2565b9150613cb882613c77565b602082019050919050565b60006020820190508181036000830152613cdc81613ca0565b9050919050565b613cec816136f1565b82525050565b6000602082019050613d076000830184613ce3565b92915050565b600081519050613d1c81613678565b92915050565b600060208284031215613d3857613d37613669565b5b6000613d4684828501613d0d565b91505092915050565b7f4e756d626572206f6620746f6b656e73206c65667420696e2074686520636f6e60008201527f74726163743a2000000000000000000000000000000000000000000000000000602082015250565b6000613dab602783613aec565b9150613db682613d4f565b602782019050919050565b6000613dcc82613d9e565b9150613dd88284613b69565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000613e1d8261366e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613e4f57613e4e613a5a565b5b600182019050919050565b7f53616c65206e6f7420656e646564000000000000000000000000000000000000600082015250565b6000613e90600e836135c2565b9150613e9b82613e5a565b602082019050919050565b60006020820190508181036000830152613ebf81613e83565b9050919050565b7f596f75206861766520616c726561647920636c61696d656420796f757220746f60008201527f6b656e7300000000000000000000000000000000000000000000000000000000602082015250565b6000613f226024836135c2565b9150613f2d82613ec6565b604082019050919050565b60006020820190508181036000830152613f5181613f15565b9050919050565b7f4e6f20746f6b656e7320746f20636c61696d0000000000000000000000000000600082015250565b6000613f8e6012836135c2565b9150613f9982613f58565b602082019050919050565b60006020820190508181036000830152613fbd81613f81565b9050919050565b6000604082019050613fd96000830185613ce3565b613fe6602083018461375c565b9392505050565b60008115159050919050565b61400281613fed565b811461400d57600080fd5b50565b60008151905061401f81613ff9565b92915050565b60006020828403121561403b5761403a613669565b5b600061404984828501614010565b91505092915050565b7f546f6b656e207472616e73666572206661696c65640000000000000000000000600082015250565b60006140886015836135c2565b915061409382614052565b602082019050919050565b600060208201905081810360008301526140b78161407b565b9050919050565b60006140c98261366e565b91506140d48361366e565b92508282019050808211156140ec576140eb613a5a565b5b92915050565b7f457374696d6174656420686f75727320746f20656e642073616c653a20000000600082015250565b6000614128601d83613aec565b9150614133826140f2565b601d82019050919050565b60006141498261411b565b91506141558284613b69565b915081905092915050565b7f496e76616c696420627579657249440000000000000000000000000000000000600082015250565b6000614196600f836135c2565b91506141a182614160565b602082019050919050565b600060208201905081810360008301526141c581614189565b9050919050565b7f416464726573733a200000000000000000000000000000000000000000000000600082015250565b6000614202600983613aec565b915061420d826141cc565b600982019050919050565b7f20686173206e6f742073656e7420616e792045544820746f2074686520636f6e60008201527f74726163742e0000000000000000000000000000000000000000000000000000602082015250565b6000614274602683613aec565b915061427f82614218565b602682019050919050565b6000614295826141f5565b91506142a18284613b69565b91506142ac82614267565b915081905092915050565b7f2068617320612062616c616e6365206f663a2000000000000000000000000000600082015250565b60006142ed601383613aec565b91506142f8826142b7565b601382019050919050565b600061430e826141f5565b915061431a8285613b69565b9150614325826142e0565b91506143318284613b69565b91508190509392505050565b7f5468652073616c65206973206f7665722e205468652066696e616c206e756d6260008201527f6572206f6620627579657273207761733a200000000000000000000000000000602082015250565b6000614399603283613aec565b91506143a48261433d565b603282019050919050565b60006143ba8261438c565b91506143c68284613b69565b915081905092915050565b7f54686520746f74616c206e756d626572206f66206275796572732069733a2000600082015250565b6000614407601f83613aec565b9150614412826143d1565b601f82019050919050565b6000614428826143fa565b91506144348284613b69565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061448657607f821691505b6020821081036144995761449861443f565b5b50919050565b7f5468652073616c65206973206174200000000000000000000000000000000000600082015250565b60006144d5600f83613aec565b91506144e08261449f565b600f82019050919050565b7f2070657263656e7461676520746f776172647320636f6d706c6574696f6e2e00600082015250565b6000614521601f83613aec565b915061452c826144eb565b601f82019050919050565b6000614542826144c8565b915061454e8284613b69565b915061455982614514565b915081905092915050565b7f546865206e756d626572206f6620746f6b656e7320706572204554482069733a60008201527f2000000000000000000000000000000000000000000000000000000000000000602082015250565b60006145c0602183613aec565b91506145cb82614564565b602182019050919050565b60006145e1826145b3565b91506145ed8284613b69565b915081905092915050565b7f53616c65206861736e2774207374617274656420796574000000000000000000600082015250565b600061462e6017836135c2565b9150614639826145f8565b602082019050919050565b6000602082019050818103600083015261465d81614621565b9050919050565b7f53616c652068617320616c726561647920656e64656400000000000000000000600082015250565b600061469a6016836135c2565b91506146a582614664565b602082019050919050565b600060208201905081810360008301526146c98161468d565b9050919050565b60006146db8261366e565b91506146e68361366e565b92508282026146f48161366e565b9150828204841483151761470b5761470a613a5a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061474c8261366e565b91506147578361366e565b92508261476757614766614712565b5b828204905092915050565b600061477d8261366e565b91506147888361366e565b92508261479857614797614712565b5b828206905092915050565b60006147ae8261366e565b9150600082036147c1576147c0613a5a565b5b60018203905091905056fe5468652073616c65206861736e27742068616420616e79204554482073656e7420746f206974207965742e25206f662074686520746f74616c20746f6b656e732e2052656d656d6265722074686973206973206120726f756e64656420657374696d6174652e2055736520796f757220494420616e6420746f2074686520475f67657442616c616e63654279427579657249442066756e6374696f6e20616e6420696e70757420796f757220494420666f722074686520657861637420616d6f756e742e5468652073616c65206861732065697468657220656e646564206f7220616c6c20746f6b656e732061726520736f6c642e4e6f7420656e6f756768206461746120746f20657374696d6174652074696d6520746f20656e642073616c652e596f75206861766520616c726561647920636c61696d656420796f757220746f6b656e732e416464726573732068617320616c726561647920636c61696d656420746865697220746f6b656e732e546865206d696e696d756d2073656e64206c696d697420697320302e3120457468657265756d2e20546865206d6178696d756d20696e70757420697320323020457468657265756d2070657220616464726573732ea2646970667358221220de5b87b3ae770246d6e3df8b77ae33c3783fb6b8f6604ffb41609625cf981c0464736f6c6343000812003342756363616e65657220563320697320616e20616476616e636564206f6e2d636861696e207072697661637920746f6b656e207468617420616c6c6f777320757365727320746f2064697363726565746c792073656e64204255434320746f6b656e732061726f756e6420707269766174656c792e20425543432077696c6c20626520617661696c61626c6520617070726f78696d6174656c792061206d6f6e7468206166746572207468652073616c652068617320636f6e636c756465642e20494d504f5254414e54204c4547414c204e4f544943453a2054686973207472616e73616374696f6e206973206e6f7420617661696c61626c6520746f207265736964656e74732c20636974697a656e732c206f7220677265656e206361726420686f6c64657273206f662074686520556e6974656420537461746573206f6620416d6572696361206f7220616e79206f6620697473207465727269746f72696573206f7220706f7373657373696f6e732c20696e636c7564696e672050756572746f205269636f2c2074686520552e532e2056697267696e2049736c616e64732c20616e64204775616d2028636f6c6c6563746976656c792c2027555320506572736f6e7327292e205468652073657276696365206f66666572656420696e2074686973207472616e73616374696f6e20686173206e6f74206265656e207265676973746572656420756e6465722074686520556e6974656420537461746573205365637572697469657320416374206f6620313933332c20617320616d656e64656420287468652027536563757269746965732041637427292c206f7220616e792073746174652073656375726974696573206c6177732c20616e64206d6179206e6f74206265206f6666657265642c20736f6c642c20706c65646765642c206f72206f7468657277697365207472616e736665727265642077697468696e2074686520556e6974656420537461746573206f7220746f206f7220666f72207468652062656e65666974206f6620555320506572736f6e732c20657863657074207075727375616e7420746f20616e206578656d7074696f6e2066726f6d2c206f7220696e2061207472616e73616374696f6e206e6f74207375626a65637420746f2c2074686520726567697374726174696f6e20726571756972656d656e7473206f662074686520536563757269746965732041637420616e64206170706c696361626c652073746174652073656375726974696573206c6177732e20555320506572736f6e7320617265206e6f74207065726d697474656420746f20706172746963697061746520696e20746865207472616e73616374696f6e206f66666572656420686572652e2042792070617274696369706174696e6720696e2074686973207472616e73616374696f6e2c20796f7520726570726573656e7420616e642077617272616e74207468617420796f7520617265206e6f74206120555320506572736f6e20616e64207468617420796f7520617265206e6f742070757263686173696e67206f6e20626568616c66206f66206f7220666f72207468652062656e65666974206f66206120555320506572736f6e2e205468652042756363616e656572207465616d20646f6573206e6f742061636365707420616e7920726573706f6e736962696c697479206f72206c696162696c69747920666f7220616e792076696f6c6174696f6e206f66206c6f63616c20726567756c6174696f6e7320627920616e7920757365722e20416c6c207061727469636970616e7473206d75737420656e7375726520746865792061726520636f6d706c69616e742077697468207468656972206c6f63616c20726567756c6174696f6e7320616e64206c617773206265666f72652070617274696369706174696e672e20546865207573657220617373756d657320616c6c20726573706f6e736962696c69747920616e64207269736b206173736f63696174656420776974682074686973207472616e73616374696f6e2c20616e64207468652042756363616e656572207465616d2077696c6c206e6f742062652068656c64206c6961626c6520666f7220616e7920616374696f6e732c20636c61696d732c2064616d616765732c20636f7374732c206f72206c696162696c69746965732061726973696e672066726f6d206f722072656c6174656420746f207468697320636f6e74726163742e204974277320696d70657261746976652074686174207061727469636970616e747320636f6e647563742074686f726f75676820726573656172636820616e6420636f6e73756c742077697468206c6567616c2070726f66657373696f6e616c73207768657265206e65636573736172792e20427920696e746572616374696e672077697468207468697320636f6e74726163742c20796f7520616772656520746f207468657365207465726d732e204a6f696e2068747470733a2f2f742e6d652f42756363616e656572563320666f72206d6f726520696e666f726d6174696f6e2e
Deployed Bytecode
0x6080604052600436106101395760003560e01c80638cd34885116100ab578063a9b1cb7c1161006f578063a9b1cb7c146103cb578063b6d46539146103f4578063d0febe4c1461041f578063e16d5c2014610429578063f7af63cc14610454578063fadcdaa01461047f57610148565b80638cd34885146102e45780638f587ff3146103215780639994e1e61461034a5780639d40433714610375578063a8ed1241146103a057610148565b80634434edb5116100fd5780634434edb51461022057806348c54b9d146102495780635c040e57146102605780635ef5d035146102775780636b8d6610146102a257806376e8cce7146102cd57610148565b80630902323a1461014d578063168062af1461017857806317657c5d146101a157806325dba88f146101cc578063341cec8b146101f557610148565b3661014857610146610496565b005b600080fd5b34801561015957600080fd5b50610162610b0d565b60405161016f9190613647565b60405180910390f35b34801561018457600080fd5b5061019f600480360381019061019a91906136a4565b610c52565b005b3480156101ad57600080fd5b506101b6610cec565b6040516101c39190613647565b60405180910390f35b3480156101d857600080fd5b506101f360048036038101906101ee91906136a4565b610dd4565b005b34801561020157600080fd5b5061020a610e6e565b6040516102179190613647565b60405180910390f35b34801561022c57600080fd5b506102476004803603810190610242919061372f565b6113c5565b005b34801561025557600080fd5b5061025e611498565b005b34801561026c57600080fd5b506102756118f9565b005b34801561028357600080fd5b5061028c6119c2565b604051610299919061376b565b60405180910390f35b3480156102ae57600080fd5b506102b7611a09565b6040516102c49190613647565b60405180910390f35b3480156102d957600080fd5b506102e2611b60565b005b3480156102f057600080fd5b5061030b600480360381019061030691906136a4565b611c5b565b6040516103189190613647565b60405180910390f35b34801561032d57600080fd5b50610348600480360381019061034391906136a4565b611e40565b005b34801561035657600080fd5b5061035f611f3c565b60405161036c9190613647565b60405180910390f35b34801561038157600080fd5b5061038a611faf565b6040516103979190613647565b60405180910390f35b3480156103ac57600080fd5b506103b5612041565b6040516103c29190613647565b60405180910390f35b3480156103d757600080fd5b506103f260048036038101906103ed91906136a4565b612167565b005b34801561040057600080fd5b50610409612201565b6040516104169190613647565b60405180910390f35b610427612269565b005b34801561043557600080fd5b5061043e61239d565b60405161044b9190613647565b60405180910390f35b34801561046057600080fd5b50610469612b39565b6040516104769190613647565b60405180910390f35b34801561048b57600080fd5b50610494612b6a565b005b6007543410156104db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d2906137f8565b60405180910390fd5b60065461053034601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c9690919063ffffffff16565b1115610571576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105689061388a565b60405180910390fd5b600a60009054906101000a900460ff166105c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b7906138f6565b60405180910390fd5b601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561064d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064490613962565b60405180910390fd5b6001601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060025442106106e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e0906139ce565b60405180910390fd5b600061070060045434612cac90919063ffffffff16565b9050600061071b600b54600854612cc290919063ffffffff16565b905081811015610760576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075790613a3a565b60405180910390fd5b6000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540361089e57600d60405180604001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200184815250908060018154018082558091505060019003906000526020600020906002020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101555050600d80549050600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610951565b60006001600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108ec9190613a89565b905061092683600d838154811061090657610905613abd565b5b906000526020600020906002020160010154612c9690919063ffffffff16565b600d828154811061093a57610939613abd565b5b906000526020600020906002020160010181905550505b61096682600b54612c9690919063ffffffff16565b600b8190555061098134600354612c9690919063ffffffff16565b6003819055506109d982600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c9690919063ffffffff16565b600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a6e34601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c9690919063ffffffff16565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6060600a60009054906101000a900460ff16610b60576040518060400160405280601981526020017f5468652073616c6520686173206e6f7420737461727465642e000000000000008152509050610c4f565b600254421015610c16576000610b8142600254612cc290919063ffffffff16565b90506000610b9a610e1083612cd890919063ffffffff16565b90506000610bd8603c610bca610bbb610e1086612cac90919063ffffffff16565b86612cc290919063ffffffff16565b612cd890919063ffffffff16565b9050610be382612cee565b610bec82612cee565b604051602001610bfd929190613c32565b6040516020818303038152906040529350505050610c4f565b6040518060400160405280601081526020017f5468652053616c65206973204f7665720000000000000000000000000000000081525090505b90565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ce2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd990613cc3565b60405180910390fd5b8060048190555050565b60606000610da4670de0b6b3a764000060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d559190613cf2565b602060405180830381865afa158015610d72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d969190613d22565b612cd890919063ffffffff16565b9050610daf81612e54565b604051602001610dbf9190613dc1565b60405160208183030381529060405291505090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5b90613cc3565b60405180910390fd5b8060088190555050565b6060600254421115610eb7576040518060400160405280601181526020017f5468652073616c65206973206f7665722e00000000000000000000000000000081525090506113c2565b6000610eea670de0b6b3a7640000610edc600b54600854612cc290919063ffffffff16565b612cd890919063ffffffff16565b90506000610f0b670de0b6b3a7640000600b54612cd890919063ffffffff16565b90506000610f1882612cee565b90506000610f2584612cee565b9050600060c867ffffffffffffffff811115610f4457610f43613de3565b5b6040519080825280601f01601f191660200182016040528015610f765781602001600182028036833780820191505090505b50905060006040518060400160405280600b81526020017f4120746f74616c206f6620000000000000000000000000000000000000000000815250905060006040518060400160405280601b81526020017f20746f6b656e732068617665206265656e20736f6c6420616e64200000000000815250905060006040518060400160405280600a81526020017f20617265206c6566742e0000000000000000000000000000000000000000000081525090506000805b84518110156110b35784818151811061104757611046613abd565b5b602001015160f81c60f81b86838061105e90613e12565b94508151811061107157611070613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806110ab90613e12565b91505061102b565b5060005b875181101561113f578781815181106110d3576110d2613abd565b5b602001015160f81c60f81b8683806110ea90613e12565b9450815181106110fd576110fc613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061113790613e12565b9150506110b7565b5060005b83518110156111cb5783818151811061115f5761115e613abd565b5b602001015160f81c60f81b86838061117690613e12565b94508151811061118957611188613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806111c390613e12565b915050611143565b5060005b8651811015611257578681815181106111eb576111ea613abd565b5b602001015160f81c60f81b86838061120290613e12565b94508151811061121557611214613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061124f90613e12565b9150506111cf565b5060005b82518110156112e35782818151811061127757611276613abd565b5b602001015160f81c60f81b86838061128e90613e12565b9450815181106112a1576112a0613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806112db90613e12565b91505061125b565b5060008167ffffffffffffffff811115611300576112ff613de3565b5b6040519080825280601f01601f1916602001820160405280156113325781602001600182028036833780820191505090505b50905060005b828110156113b35786818151811061135357611352613abd565b5b602001015160f81c60f81b82828151811061137157611370613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806113ab90613e12565b915050611338565b50809a50505050505050505050505b90565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144c90613cc3565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a60009054906101000a900460ff166114e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114de906138f6565b60405180910390fd5b600254421161152b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152290613ea6565b60405180910390fd5b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156115b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115af90613f38565b60405180910390fd5b601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163c90613962565b60405180910390fd5b6001601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111611724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171b90613fa4565b60405180910390fd5b6000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016117c4929190613fc4565b6020604051808303816000875af11580156117e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118079190614025565b611846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183d9061409e565b60405180910390fd5b6001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611989576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198090613cc3565b60405180910390fd5b42600c819055506202a3004261199f91906140be565b6002819055506001600a60006101000a81548160ff021916908315150217905550565b6000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b6060600a60009054906101000a900460ff16611a5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a51906138f6565b60405180910390fd5b60025442101580611a6e5750600854600b54145b15611a9357604051806060016040528060318152602001614891603191399050611b5d565b6000611abe611aad600c5442612cc290919063ffffffff16565b600b54612cd890919063ffffffff16565b905060008103611ae9576040518060600160405280602d81526020016148c2602d9139915050611b5d565b6000611b1482611b06600b54600854612cc290919063ffffffff16565b612cd890919063ffffffff16565b90506000611b2d610e1083612cd890919063ffffffff16565b9050611b3881612e54565b604051602001611b48919061413e565b60405160208183030381529060405293505050505b90565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611bf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be790613cc3565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611c58573d6000803e3d6000fd5b50565b6060600082118015611c725750600d805490508211155b611cb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca8906141ac565b60405180910390fd5b6000600d600184611cc29190613a89565b81548110611cd357611cd2613abd565b5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000611d1282612fb7565b905060025442118015611d6e5750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611d95576040518060600160405280602981526020016149146029913992505050611e3b565b6000600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008103611e0b5781604051602001611df2919061428a565b6040516020818303038152906040529350505050611e3b565b81611e1582612e54565b604051602001611e26929190614303565b60405160208183030381529060405293505050505b919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ed0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec790613cc3565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f38573d6000803e3d6000fd5b5050565b6060600254421115611f7c57611f56600d80549050612e54565b604051602001611f6691906143af565b6040516020818303038152906040529050611fac565b611f8a600d80549050612e54565b604051602001611f9a919061441d565b60405160208183030381529060405290505b90565b606060098054611fbe9061446e565b80601f0160208091040260200160405190810160405280929190818152602001828054611fea9061446e565b80156120375780601f1061200c57610100808354040283529160200191612037565b820191906000526020600020905b81548152906001019060200180831161201a57829003601f168201915b5050505050905090565b606060025442111561208a576040518060400160405280601181526020017f5468652073616c65206973206f7665722e0000000000000000000000000000008152509050612164565b6000600354036120b4576040518060600160405280602b81526020016147cd602b91399050612164565b60006120e06005546120d26064600354612cac90919063ffffffff16565b612cd890919063ffffffff16565b90506103e381101580156120f557506103e881105b15612138576040518060400160405280601f81526020017f5468652073616c65206973206174203130302520636f6d706c6574696f6e2e00815250915050612164565b61214181612e54565b6040516020016121519190614537565b6040516020818303038152906040529150505b90565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146121f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ee90613cc3565b60405180910390fd5b8060058190555050565b606060025442111561224a576040518060400160405280601181526020017f5468652073616c65206973206f7665722e0000000000000000000000000000008152509050612266565b60405180608001604052806055815260200161493d6055913990505b90565b6007543410156122ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a5906137f8565b60405180910390fd5b60065461230334601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c9690919063ffffffff16565b1115612344576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233b9061388a565b60405180910390fd5b600a60009054906101000a900460ff16612393576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238a906138f6565b60405180910390fd5b61239b610496565b565b606060003390506000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600254421180156124425750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612469576040518060600160405280602581526020016148ef6025913992505050612b36565b600081036124b0576040518060400160405280601c81526020017f596f7520686176656e27742073656e7420616e7920746f6b656e732e0000000081525092505050612b36565b60006124da6008546124cc606485612cac90919063ffffffff16565b612cd890919063ffffffff16565b90506000612526601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132c2565b905060006040518060400160405280601481526020017f596f75206172652072616e6b65642061732061200000000000000000000000008152509050600082905060006040518060400160405280601c81526020017f2e20596f752077696c6c2062652061626c6520746f20636c61696d2000000000815250905060006125c66125c1670de0b6b3a764000089612cd890919063ffffffff16565b612cee565b905060006040518060400160405280601281526020017f20746f6b656e732c2077686963682069732000000000000000000000000000008152509050600061260d88612cee565b905060006040518060c00160405280609981526020016147f8609991399050600061019067ffffffffffffffff81111561264a57612649613de3565b5b6040519080825280601f01601f19166020018201604052801561267c5781602001600182028036833780820191505090505b5090506000805b895181101561270b5789818151811061269f5761269e613abd565b5b602001015160f81c60f81b8383806126b690613e12565b9450815181106126c9576126c8613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061270390613e12565b915050612683565b5060005b88518110156127975788818151811061272b5761272a613abd565b5b602001015160f81c60f81b83838061274290613e12565b94508151811061275557612754613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061278f90613e12565b91505061270f565b5060005b8751811015612823578781815181106127b7576127b6613abd565b5b602001015160f81c60f81b8383806127ce90613e12565b9450815181106127e1576127e0613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061281b90613e12565b91505061279b565b5060005b86518110156128af5786818151811061284357612842613abd565b5b602001015160f81c60f81b83838061285a90613e12565b94508151811061286d5761286c613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806128a790613e12565b915050612827565b5060005b855181101561293b578581815181106128cf576128ce613abd565b5b602001015160f81c60f81b8383806128e690613e12565b9450815181106128f9576128f8613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061293390613e12565b9150506128b3565b5060005b84518110156129c75784818151811061295b5761295a613abd565b5b602001015160f81c60f81b83838061297290613e12565b94508151811061298557612984613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806129bf90613e12565b91505061293f565b5060005b8351811015612a53578381815181106129e7576129e6613abd565b5b602001015160f81c60f81b8383806129fe90613e12565b945081518110612a1157612a10613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080612a4b90613e12565b9150506129cb565b5060008167ffffffffffffffff811115612a7057612a6f613de3565b5b6040519080825280601f01601f191660200182016040528015612aa25781602001600182028036833780820191505090505b50905060005b82811015612b2357838181518110612ac357612ac2613abd565b5b602001015160f81c60f81b828281518110612ae157612ae0613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080612b1b90613e12565b915050612aa8565b50809e5050505050505050505050505050505b90565b6060612b46600454612e54565b604051602001612b5691906145d6565b604051602081830303815290604052905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612bfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf190613cc3565b60405180910390fd5b600a60009054906101000a900460ff16612c49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4090614644565b60405180910390fd5b6002544210612c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c84906146b0565b60405180910390fd5b42600281905550565b60008183612ca491906140be565b905092915050565b60008183612cba91906146d0565b905092915050565b60008183612cd09190613a89565b905092915050565b60008183612ce69190614741565b905092915050565b606060008203612d35576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612e4f565b600082905060005b60008214612d67578080612d5090613e12565b915050600a82612d609190614741565b9150612d3d565b60008167ffffffffffffffff811115612d8357612d82613de3565b5b6040519080825280601f01601f191660200182016040528015612db55781602001600182028036833780820191505090505b50905060008290508593505b60008414612e4757600a84612dd69190614772565b6030612de291906140be565b60f81b8282612df0906147a3565b92508281518110612e0457612e03613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84612e409190614741565b9350612dc1565b819450505050505b919050565b606060008203612e9b576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612fb2565b600082905060005b60008214612ecd578080612eb690613e12565b915050600a82612ec69190614741565b9150612ea3565b60008167ffffffffffffffff811115612ee957612ee8613de3565b5b6040519080825280601f01601f191660200182016040528015612f1b5781602001600182028036833780820191505090505b50905060008290505b60008614612faa57600a86612f399190614772565b6030612f4591906140be565b60f81b8282612f53906147a3565b92508281518110612f6757612f66613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a86612fa39190614741565b9550612f24565b819450505050505b919050565b606060008273ffffffffffffffffffffffffffffffffffffffff1660001b905060006040518060400160405280601081526020017f303132333435363738396162636465660000000000000000000000000000000081525090506000602a67ffffffffffffffff81111561302e5761302d613de3565b5b6040519080825280601f01601f1916602001820160405280156130605781602001600182028036833780820191505090505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061309857613097613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106130fc576130fb613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060005b60148110156132b65782600485600c8461314891906140be565b6020811061315957613158613abd565b5b1a60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916901c60f81c60ff168151811061319857613197613abd565b5b602001015160f81c60f81b826002836131b191906146d0565b60026131bd91906140be565b815181106131ce576131cd613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535082600f60f81b85600c8461321191906140be565b6020811061322257613221613abd565b5b1a60f81b1660f81c60ff168151811061323e5761323d613abd565b5b602001015160f81c60f81b8260028361325791906146d0565b600361326391906140be565b8151811061327457613273613abd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806132ae90613e12565b91505061312e565b50809350505050919050565b6060670429d069189e0000821015613311576040518060400160405280600581526020017f536c61766500000000000000000000000000000000000000000000000000000081525090506135b2565b6714d1120d7b16000082101561335e576040518060400160405280600481526020017f537761620000000000000000000000000000000000000000000000000000000081525090506135b2565b6729a2241af62c00008210156133ab576040518060400160405280600481526020017f436f6f6b0000000000000000000000000000000000000000000000000000000081525090506135b2565b673e733628714200008210156133f8576040518060400160405280600981526020017f426f6174737761696e000000000000000000000000000000000000000000000081525090506135b2565b674563918244f40000821015613445576040518060400160405280600981526020017f43617270656e746572000000000000000000000000000000000000000000000081525090506135b2565b6768155a43676e0000821015613492576040518060400160405280600881526020017f436861706c61696e00000000000000000000000000000000000000000000000081525090506135b2565b678ac7230489e800008210156134df576040518060400160405280600d81526020017f517561727465726d61737465720000000000000000000000000000000000000081525090506135b2565b67ad78ebc5ac62000082101561352c576040518060400160405280600d81526020017f4d61737465722047756e6e65720000000000000000000000000000000000000081525090506135b2565b67d02ab486cedc0000821015613579576040518060400160405280600a81526020017f5361696c6d61737465720000000000000000000000000000000000000000000081525090506135b2565b6040518060400160405280600a81526020017f4669727374204d6174650000000000000000000000000000000000000000000081525090505b919050565b600081519050919050565b600082825260208201905092915050565b60005b838110156135f15780820151818401526020810190506135d6565b60008484015250505050565b6000601f19601f8301169050919050565b6000613619826135b7565b61362381856135c2565b93506136338185602086016135d3565b61363c816135fd565b840191505092915050565b60006020820190508181036000830152613661818461360e565b905092915050565b600080fd5b6000819050919050565b6136818161366e565b811461368c57600080fd5b50565b60008135905061369e81613678565b92915050565b6000602082840312156136ba576136b9613669565b5b60006136c88482850161368f565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006136fc826136d1565b9050919050565b61370c816136f1565b811461371757600080fd5b50565b60008135905061372981613703565b92915050565b60006020828403121561374557613744613669565b5b60006137538482850161371a565b91505092915050565b6137658161366e565b82525050565b6000602082019050613780600083018461375c565b92915050565b7f302e312045544820697320746865206d696e696d756d2070757263686173652060008201527f6c696d6974000000000000000000000000000000000000000000000000000000602082015250565b60006137e26025836135c2565b91506137ed82613786565b604082019050919050565b60006020820190508181036000830152613811816137d5565b9050919050565b7f32302045544820697320746865206d6178696d756d20746f74616c20636f6e7460008201527f7269627574696f6e207065722061646472657373000000000000000000000000602082015250565b60006138746034836135c2565b915061387f82613818565b604082019050919050565b600060208201905081810360008301526138a381613867565b9050919050565b7f53616c6520686173206e6f742073746172746564207965740000000000000000600082015250565b60006138e06018836135c2565b91506138eb826138aa565b602082019050919050565b6000602082019050818103600083015261390f816138d3565b9050919050565b7f5265656e7472616e742063616c6c206465746563746564210000000000000000600082015250565b600061394c6018836135c2565b915061395782613916565b602082019050919050565b6000602082019050818103600083015261397b8161393f565b9050919050565b7f53616c6520656e64656400000000000000000000000000000000000000000000600082015250565b60006139b8600a836135c2565b91506139c382613982565b602082019050919050565b600060208201905081810360008301526139e7816139ab565b9050919050565b7f4e6f7420656e6f75676820746f6b656e73206c65667420746f20627579000000600082015250565b6000613a24601d836135c2565b9150613a2f826139ee565b602082019050919050565b60006020820190508181036000830152613a5381613a17565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613a948261366e565b9150613a9f8361366e565b9250828203905081811115613ab757613ab6613a5a565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081905092915050565b7f5468652073616c65206973206c6976652c2074686572652061726520686f757260008201527f733a200000000000000000000000000000000000000000000000000000000000602082015250565b6000613b53602383613aec565b9150613b5e82613af7565b602382019050919050565b6000613b74826135b7565b613b7e8185613aec565b9350613b8e8185602086016135d3565b80840191505092915050565b7f20616e6420000000000000000000000000000000000000000000000000000000600082015250565b6000613bd0600583613aec565b9150613bdb82613b9a565b600582019050919050565b7f206d696e75746573206c6566742e000000000000000000000000000000000000600082015250565b6000613c1c600e83613aec565b9150613c2782613be6565b600e82019050919050565b6000613c3d82613b46565b9150613c498285613b69565b9150613c5482613bc3565b9150613c608284613b69565b9150613c6b82613c0f565b91508190509392505050565b7f4e6f742074686520636f6e7472616374206f776e657200000000000000000000600082015250565b6000613cad6016836135c2565b9150613cb882613c77565b602082019050919050565b60006020820190508181036000830152613cdc81613ca0565b9050919050565b613cec816136f1565b82525050565b6000602082019050613d076000830184613ce3565b92915050565b600081519050613d1c81613678565b92915050565b600060208284031215613d3857613d37613669565b5b6000613d4684828501613d0d565b91505092915050565b7f4e756d626572206f6620746f6b656e73206c65667420696e2074686520636f6e60008201527f74726163743a2000000000000000000000000000000000000000000000000000602082015250565b6000613dab602783613aec565b9150613db682613d4f565b602782019050919050565b6000613dcc82613d9e565b9150613dd88284613b69565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000613e1d8261366e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613e4f57613e4e613a5a565b5b600182019050919050565b7f53616c65206e6f7420656e646564000000000000000000000000000000000000600082015250565b6000613e90600e836135c2565b9150613e9b82613e5a565b602082019050919050565b60006020820190508181036000830152613ebf81613e83565b9050919050565b7f596f75206861766520616c726561647920636c61696d656420796f757220746f60008201527f6b656e7300000000000000000000000000000000000000000000000000000000602082015250565b6000613f226024836135c2565b9150613f2d82613ec6565b604082019050919050565b60006020820190508181036000830152613f5181613f15565b9050919050565b7f4e6f20746f6b656e7320746f20636c61696d0000000000000000000000000000600082015250565b6000613f8e6012836135c2565b9150613f9982613f58565b602082019050919050565b60006020820190508181036000830152613fbd81613f81565b9050919050565b6000604082019050613fd96000830185613ce3565b613fe6602083018461375c565b9392505050565b60008115159050919050565b61400281613fed565b811461400d57600080fd5b50565b60008151905061401f81613ff9565b92915050565b60006020828403121561403b5761403a613669565b5b600061404984828501614010565b91505092915050565b7f546f6b656e207472616e73666572206661696c65640000000000000000000000600082015250565b60006140886015836135c2565b915061409382614052565b602082019050919050565b600060208201905081810360008301526140b78161407b565b9050919050565b60006140c98261366e565b91506140d48361366e565b92508282019050808211156140ec576140eb613a5a565b5b92915050565b7f457374696d6174656420686f75727320746f20656e642073616c653a20000000600082015250565b6000614128601d83613aec565b9150614133826140f2565b601d82019050919050565b60006141498261411b565b91506141558284613b69565b915081905092915050565b7f496e76616c696420627579657249440000000000000000000000000000000000600082015250565b6000614196600f836135c2565b91506141a182614160565b602082019050919050565b600060208201905081810360008301526141c581614189565b9050919050565b7f416464726573733a200000000000000000000000000000000000000000000000600082015250565b6000614202600983613aec565b915061420d826141cc565b600982019050919050565b7f20686173206e6f742073656e7420616e792045544820746f2074686520636f6e60008201527f74726163742e0000000000000000000000000000000000000000000000000000602082015250565b6000614274602683613aec565b915061427f82614218565b602682019050919050565b6000614295826141f5565b91506142a18284613b69565b91506142ac82614267565b915081905092915050565b7f2068617320612062616c616e6365206f663a2000000000000000000000000000600082015250565b60006142ed601383613aec565b91506142f8826142b7565b601382019050919050565b600061430e826141f5565b915061431a8285613b69565b9150614325826142e0565b91506143318284613b69565b91508190509392505050565b7f5468652073616c65206973206f7665722e205468652066696e616c206e756d6260008201527f6572206f6620627579657273207761733a200000000000000000000000000000602082015250565b6000614399603283613aec565b91506143a48261433d565b603282019050919050565b60006143ba8261438c565b91506143c68284613b69565b915081905092915050565b7f54686520746f74616c206e756d626572206f66206275796572732069733a2000600082015250565b6000614407601f83613aec565b9150614412826143d1565b601f82019050919050565b6000614428826143fa565b91506144348284613b69565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061448657607f821691505b6020821081036144995761449861443f565b5b50919050565b7f5468652073616c65206973206174200000000000000000000000000000000000600082015250565b60006144d5600f83613aec565b91506144e08261449f565b600f82019050919050565b7f2070657263656e7461676520746f776172647320636f6d706c6574696f6e2e00600082015250565b6000614521601f83613aec565b915061452c826144eb565b601f82019050919050565b6000614542826144c8565b915061454e8284613b69565b915061455982614514565b915081905092915050565b7f546865206e756d626572206f6620746f6b656e7320706572204554482069733a60008201527f2000000000000000000000000000000000000000000000000000000000000000602082015250565b60006145c0602183613aec565b91506145cb82614564565b602182019050919050565b60006145e1826145b3565b91506145ed8284613b69565b915081905092915050565b7f53616c65206861736e2774207374617274656420796574000000000000000000600082015250565b600061462e6017836135c2565b9150614639826145f8565b602082019050919050565b6000602082019050818103600083015261465d81614621565b9050919050565b7f53616c652068617320616c726561647920656e64656400000000000000000000600082015250565b600061469a6016836135c2565b91506146a582614664565b602082019050919050565b600060208201905081810360008301526146c98161468d565b9050919050565b60006146db8261366e565b91506146e68361366e565b92508282026146f48161366e565b9150828204841483151761470b5761470a613a5a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061474c8261366e565b91506147578361366e565b92508261476757614766614712565b5b828204905092915050565b600061477d8261366e565b91506147888361366e565b92508261479857614797614712565b5b828206905092915050565b60006147ae8261366e565b9150600082036147c1576147c0613a5a565b5b60018203905091905056fe5468652073616c65206861736e27742068616420616e79204554482073656e7420746f206974207965742e25206f662074686520746f74616c20746f6b656e732e2052656d656d6265722074686973206973206120726f756e64656420657374696d6174652e2055736520796f757220494420616e6420746f2074686520475f67657442616c616e63654279427579657249442066756e6374696f6e20616e6420696e70757420796f757220494420666f722074686520657861637420616d6f756e742e5468652073616c65206861732065697468657220656e646564206f7220616c6c20746f6b656e732061726520736f6c642e4e6f7420656e6f756768206461746120746f20657374696d6174652074696d6520746f20656e642073616c652e596f75206861766520616c726561647920636c61696d656420796f757220746f6b656e732e416464726573732068617320616c726561647920636c61696d656420746865697220746f6b656e732e546865206d696e696d756d2073656e64206c696d697420697320302e3120457468657265756d2e20546865206d6178696d756d20696e70757420697320323020457468657265756d2070657220616464726573732ea2646970667358221220de5b87b3ae770246d6e3df8b77ae33c3783fb6b8f6604ffb41609625cf981c0464736f6c63430008120033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ARB | 100.00% | $2,420.54 | 0.2 | $484.11 |
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.