Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 114 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw All Fun... | 12951970 | 1284 days ago | IN | 0 ETH | 0.00144612 | ||||
Swap | 12929907 | 1288 days ago | IN | 0.55 ETH | 0.00350022 | ||||
Swap | 12929883 | 1288 days ago | IN | 0.55 ETH | 0.00379013 | ||||
Swap | 12927960 | 1288 days ago | IN | 1 ETH | 0.00548863 | ||||
Swap | 12927906 | 1288 days ago | IN | 0.5 ETH | 0.00390264 | ||||
Swap | 12927648 | 1288 days ago | IN | 0.5 ETH | 0.00487303 | ||||
Swap | 12927640 | 1288 days ago | IN | 1 ETH | 0.00455335 | ||||
Swap | 12927623 | 1288 days ago | IN | 0.5 ETH | 0.00455335 | ||||
Swap | 12927592 | 1288 days ago | IN | 0.5 ETH | 0.00393775 | ||||
Swap | 12927488 | 1288 days ago | IN | 0.5 ETH | 0.00500839 | ||||
Swap | 12927435 | 1288 days ago | IN | 0.5 ETH | 0.004967 | ||||
Swap | 12927263 | 1288 days ago | IN | 0.57 ETH | 0.00579355 | ||||
Swap | 12927088 | 1288 days ago | IN | 0.78 ETH | 0.00371898 | ||||
Swap | 12927056 | 1288 days ago | IN | 0.6 ETH | 0.00276736 | ||||
Swap | 12926869 | 1288 days ago | IN | 0.5 ETH | 0.00262516 | ||||
Swap | 12926848 | 1288 days ago | IN | 0.6 ETH | 0.00251578 | ||||
Swap | 12926840 | 1288 days ago | IN | 0.64 ETH | 0.00365908 | ||||
Swap | 12926794 | 1288 days ago | IN | 1.5 ETH | 0.00341112 | ||||
Swap | 12926626 | 1288 days ago | IN | 0.5 ETH | 0.00328853 | ||||
Swap | 12926624 | 1288 days ago | IN | 0.7 ETH | 0.00328853 | ||||
Swap | 12926612 | 1288 days ago | IN | 1 ETH | 0.00396401 | ||||
Swap | 12926446 | 1288 days ago | IN | 0.5 ETH | 0.00379013 | ||||
Swap | 12925939 | 1289 days ago | IN | 0.5 ETH | 0.00366797 | ||||
Swap | 12925746 | 1289 days ago | IN | 1.5 ETH | 0.00265612 | ||||
Swap | 12925539 | 1289 days ago | IN | 0.5 ETH | 0.00350662 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
12929907 | 1288 days ago | 0.55 ETH | ||||
12929883 | 1288 days ago | 0.55 ETH | ||||
12927960 | 1288 days ago | 1 ETH | ||||
12927906 | 1288 days ago | 0.5 ETH | ||||
12927648 | 1288 days ago | 0.5 ETH | ||||
12927640 | 1288 days ago | 1 ETH | ||||
12927623 | 1288 days ago | 0.5 ETH | ||||
12927592 | 1288 days ago | 0.5 ETH | ||||
12927488 | 1288 days ago | 0.5 ETH | ||||
12927435 | 1288 days ago | 0.5 ETH | ||||
12927263 | 1288 days ago | 0.57 ETH | ||||
12927088 | 1288 days ago | 0.78 ETH | ||||
12927056 | 1288 days ago | 0.6 ETH | ||||
12926869 | 1288 days ago | 0.5 ETH | ||||
12926848 | 1288 days ago | 0.6 ETH | ||||
12926840 | 1288 days ago | 0.64 ETH | ||||
12926794 | 1288 days ago | 1.5 ETH | ||||
12926626 | 1288 days ago | 0.5 ETH | ||||
12926624 | 1288 days ago | 0.7 ETH | ||||
12926612 | 1288 days ago | 1 ETH | ||||
12926446 | 1288 days ago | 0.5 ETH | ||||
12925939 | 1289 days ago | 0.5 ETH | ||||
12925746 | 1289 days ago | 1.5 ETH | ||||
12925539 | 1289 days ago | 0.5 ETH | ||||
12925484 | 1289 days ago | 0.65 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
TokenSwapV2
Compiler Version
v0.8.3+commit.8d00100c
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-07-11 */ // File: node_modules\@openzeppelin\contracts\utils\Context.sol // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } // File: @openzeppelin\contracts\access\Ownable.sol pragma solidity ^0.8.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } // File: @openzeppelin\contracts\token\ERC20\IERC20.sol pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @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 `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, 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 `sender` to `recipient` 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 sender, address recipient, uint256 amount) external returns (bool); /** * @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); } // File: @chainlink\contracts\src\v0.8\interfaces\AggregatorV3Interface.sol pragma solidity ^0.8.0; interface AggregatorV3Interface { function decimals() external view returns ( uint8 ); function description() external view returns ( string memory ); function version() external view returns ( uint256 ); // getRoundData and latestRoundData should both raise "No data present" // if they do not have data to report, instead of returning unset values // which could be misinterpreted as actual reported values. function getRoundData( uint80 _roundId ) external view returns ( uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound ); function latestRoundData() external view returns ( uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound ); } // File: contracts\TokenSwapV2.sol pragma solidity ^0.8.0; contract TokenSwapV2 is Ownable { event PriceFeedUpdated(address addr); event AdminWalletUpdated(address addr); event TokenWithdrawed(uint256 amount); event PhaseCreated(uint256 phaseId, uint256 lockPercentage, uint256 lockReleaseTime, uint256 minDeposit, uint256 totalSupply, uint256 pricePerToken, uint256 startTime, uint256 endTime); event PhaseTimeUpdated(uint256 phaseId, uint256 startTime, uint256 endTime); event LockInfoUpdated(uint256 phaseId, uint256 lockPercentage, uint256 lockReleaseTime); event SaleInfoUpdated(uint256 phaseId, uint256 minDeposit, uint256 totalSupply, uint256 pricePerToken); event Swapped(uint256 phaseId, address account, uint256 ethDeposited, uint256 ethRefunded, uint256 tokenSold, uint256 tokenLocked, int ethPrice); event TokenClaimed(uint256 phaseId, address account, uint256 amount); uint256 private constant ONE_HUNDRED_PERCENT = 10000; // 100% IERC20 private _token; AggregatorV3Interface private _priceFeed; address private _adminWallet; struct ReferralCodeInfo { uint128 amount; // ETH uint128 numSwap; } // Mapping referral code to statistics information mapping(string => ReferralCodeInfo) private _referralCodes; struct PhaseInfo { uint128 lockPercentage; uint128 lockReleaseTime; uint128 minDeposit; uint128 pricePerToken; // 100000000 <=> 1 USD uint128 startTime; uint128 endTime; uint128 totalLocked; uint128 totalSold; uint128 totalSupply; } uint256 private _totalPhases; // Mapping phase id to phase information mapping(uint256 => PhaseInfo) private _phases; uint256 private _totalLockBalance; // Mapping phase id to user address and locked balance information mapping(uint256 => mapping(address => uint256)) private _lockBalances; /** * @dev Throws if phase doesn't exist */ modifier phaseExist(uint256 phaseId) { require(_phases[phaseId].totalSupply > 0, "TokenSwapV2: phase doesn't exist"); _; } /** * @dev Sets initial values */ constructor(address token, address priceFeed, address adminWallet) { _token = IERC20(token); _priceFeed = AggregatorV3Interface(priceFeed); _adminWallet = adminWallet; } /** * @dev Returns smart contract information */ function getContractInfo() external view returns (address, address, uint256, uint256, uint256) { return ( _adminWallet, address(_token), _token.balanceOf(address(this)), _totalPhases, _totalLockBalance ); } /** * @dev Updates price feed */ function updatePriceFeed(address priceFeed) external onlyOwner { require(priceFeed != address(0), "TokenSwapV2: address is invalid"); _priceFeed = AggregatorV3Interface(priceFeed); emit PriceFeedUpdated(priceFeed); } /** * @dev Updates admin wallet address where contains ETH user deposited * to smart contract for swapping */ function updateAdminWallet(address adminWallet) external onlyOwner { require(adminWallet != address(0), "TokenSwapV2: address is invalid"); _adminWallet = adminWallet; emit AdminWalletUpdated(adminWallet); } /** * @dev Withdraws token out of this smart contract and transfer to * admin wallet * * Admin can withdraw all tokens that includes locked token of user in case emergency */ function withdrawAllFund(uint256 amount) external onlyOwner { require(amount > 0, "TokenSwapV2: amount is invalid"); _token.transfer(_adminWallet, amount); emit TokenWithdrawed(amount); } /** * @dev Creates new phase */ function createPhase(uint128 lockPercentage, uint128 lockReleaseTime, uint128 minDeposit, uint128 totalSupply, uint128 pricePerToken, uint128 startTime, uint128 endTime) external onlyOwner { require(lockPercentage <= ONE_HUNDRED_PERCENT, "TokenSwapV2: percentage is invalid"); require(minDeposit > 0 && totalSupply > 0 && pricePerToken > 0, "TokenSwapV2: value must be greater than zero"); require(startTime > block.timestamp && startTime < endTime, "TokenSwapV2: time is invalid"); uint256 id = ++_totalPhases; PhaseInfo storage phase = _phases[id]; phase.lockPercentage = lockPercentage; phase.lockReleaseTime = lockReleaseTime; phase.minDeposit = minDeposit; phase.pricePerToken = pricePerToken; phase.startTime = startTime; phase.endTime = endTime; phase.totalSupply = totalSupply; emit PhaseCreated(id, lockPercentage, lockReleaseTime, minDeposit, totalSupply, pricePerToken, startTime, endTime); } /** * @dev Updates lock information */ function updateLockInfo(uint256 phaseId, uint128 lockPercentage, uint128 lockReleaseTime) external onlyOwner phaseExist(phaseId) { require(lockPercentage <= ONE_HUNDRED_PERCENT, "TokenSwapV2: percentage is invalid"); PhaseInfo storage phase = _phases[phaseId]; require(phase.totalSold == 0, "TokenSwapV2: can't update"); phase.lockPercentage = lockPercentage; phase.lockReleaseTime = lockReleaseTime; emit LockInfoUpdated(phaseId, lockPercentage, lockReleaseTime); } /** * @dev Updates sale information */ function updateSaleInfo(uint256 phaseId, uint128 minDeposit, uint128 totalSupply, uint128 pricePerToken) external onlyOwner phaseExist(phaseId) { PhaseInfo storage phase = _phases[phaseId]; if (minDeposit != 0) { phase.minDeposit = minDeposit; } if (totalSupply != 0) { phase.totalSupply = totalSupply; } if (pricePerToken != 0) { phase.pricePerToken = pricePerToken; } if (totalSupply != 0 || pricePerToken != 0) { require(phase.totalSold == 0, "TokenSwapV2: can't update"); } emit SaleInfoUpdated(phaseId, minDeposit, totalSupply, pricePerToken); } /** * @dev Updates phase time */ function updatePhaseTime(uint256 phaseId, uint128 startTime, uint128 endTime) external onlyOwner phaseExist(phaseId) { PhaseInfo storage phase = _phases[phaseId]; if (startTime != 0) { phase.startTime = startTime; } if (endTime != 0) { phase.endTime = endTime; } require((startTime == 0 || startTime > block.timestamp) && phase.startTime < phase.endTime, "TokenSwapV2: time is invalid"); emit PhaseTimeUpdated(phaseId, startTime, endTime); } /** * @dev Returns phase information */ function getPhase(uint256 phaseId) external view returns (PhaseInfo memory) { return _phases[phaseId]; } /** * @dev Returns phases information * @param filter 1: active, 2: ended, 3: all */ function getPhases(uint256 phaseFrom, uint256 phaseTo, uint256 filter) external view returns (uint256[] memory, PhaseInfo[] memory) { uint256 cnt = 0; uint256 size = phaseTo - phaseFrom + 1; uint256 currentTime = block.timestamp; uint256[] memory tmpIds = new uint256[](size); PhaseInfo[] memory tmpPhases = new PhaseInfo[](size); for (uint256 i = phaseFrom; i <= phaseTo; i++) { PhaseInfo memory phase = _phases[i]; if (phase.totalSupply == 0 || (filter == 1 && currentTime >= phase.endTime) || (filter == 2 && currentTime < phase.endTime)) { continue; } tmpIds[cnt] = i; tmpPhases[cnt] = phase; cnt++; } uint256[] memory ids = new uint256[](cnt); PhaseInfo[] memory phases = new PhaseInfo[](cnt); for (uint256 i = 0; i < cnt; i++) { ids[i] = tmpIds[i]; phases[i] = tmpPhases[i]; } return (ids, phases); } /** * @dev Swaps ETH to token */ function swap(uint256 phaseId, string memory referralCode) external payable { PhaseInfo storage phase = _phases[phaseId]; require(block.timestamp >= phase.startTime && block.timestamp < phase.endTime, "TokenSwapV2: not in swapping time"); require(msg.value >= phase.minDeposit, "TokenSwapV2: deposit amount isn't enough"); uint256 remain = phase.totalSupply - phase.totalSold; require(remain > 0, "TokenSwapV2: total supply isn't enough"); (, int ethPrice,,,) = _priceFeed.latestRoundData(); uint256 amount = msg.value * uint256(ethPrice) / phase.pricePerToken; uint refund; // Calculates redundant money if (amount > remain) { refund = (amount - remain) * phase.pricePerToken / uint256(ethPrice); amount = remain; } require(amount <= (_token.balanceOf(address(this)) - _totalLockBalance), "TokenSwapV2: balance isn't enough"); // Refunds redundant money for user if (refund > 0) { payable(_msgSender()).transfer(refund); } // Transfers money to admin wallet payable(_adminWallet).transfer(msg.value - refund); // Calculates number of tokens that will be locked uint256 locked = amount * phase.lockPercentage / ONE_HUNDRED_PERCENT; // Transfers token for user _token.transfer(_msgSender(), amount - locked); if (locked > 0) { _totalLockBalance += locked; _lockBalances[phaseId][_msgSender()] += locked; phase.totalLocked += uint128(locked); } phase.totalSold += uint128(amount); // Manages referral codes ReferralCodeInfo storage referral = _referralCodes[referralCode]; referral.amount += uint128(msg.value - refund); referral.numSwap++; emit Swapped(phaseId, _msgSender(), msg.value, refund, amount, locked, ethPrice); } /** * @dev Returns token balance of user in smart contract that includes * claimable and unclaimable */ function getUserBalance(address account, uint256 phaseFrom, uint256 phaseTo) external view returns (uint256, uint256) { uint256 currentTime = block.timestamp; uint256 balance; uint256 lockBalance; for (uint256 i = phaseFrom; i <= phaseTo; i++) { uint256 amount = _lockBalances[i][account]; if (amount == 0) { continue; } if (_phases[i].lockReleaseTime <= currentTime) { balance += amount; } else { lockBalance += amount; } } return (balance, lockBalance); } /** * @dev Claims the remainning token after lock time end */ function claimToken(uint256 phaseFrom, uint256 phaseTo) external { address msgSender = _msgSender(); uint256 currentTime = block.timestamp; uint256 balance; for (uint256 i = phaseFrom; i <= phaseTo; i++) { uint256 amount = _lockBalances[i][msgSender]; if (amount == 0) { continue; } if (_phases[i].lockReleaseTime <= currentTime) { balance += amount; _phases[i].totalLocked -= uint128(amount); emit TokenClaimed(i, msgSender, amount); delete _lockBalances[i][msgSender]; } } require(balance > 0, "TokenSwapV2: amount must be greater than zero"); _totalLockBalance -= balance; _token.transfer(msgSender, balance); } /** * @dev Returns referral code information */ function getReferralCodeInfo(string memory referralCode) external view returns (ReferralCodeInfo memory) { return _referralCodes[referralCode]; } /** * @dev Returns ETH/USD price */ function getEtherPrice() external view returns (int) { (, int price,,,) = _priceFeed.latestRoundData(); return price; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"priceFeed","type":"address"},{"internalType":"address","name":"adminWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"addr","type":"address"}],"name":"AdminWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"phaseId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lockPercentage","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lockReleaseTime","type":"uint256"}],"name":"LockInfoUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"phaseId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lockPercentage","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lockReleaseTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"minDeposit","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalSupply","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"pricePerToken","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"startTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endTime","type":"uint256"}],"name":"PhaseCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"phaseId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"startTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endTime","type":"uint256"}],"name":"PhaseTimeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"addr","type":"address"}],"name":"PriceFeedUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"phaseId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"minDeposit","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalSupply","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"pricePerToken","type":"uint256"}],"name":"SaleInfoUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"phaseId","type":"uint256"},{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"ethDeposited","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethRefunded","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokenSold","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokenLocked","type":"uint256"},{"indexed":false,"internalType":"int256","name":"ethPrice","type":"int256"}],"name":"Swapped","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"phaseId","type":"uint256"},{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokenClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokenWithdrawed","type":"event"},{"inputs":[{"internalType":"uint256","name":"phaseFrom","type":"uint256"},{"internalType":"uint256","name":"phaseTo","type":"uint256"}],"name":"claimToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128","name":"lockPercentage","type":"uint128"},{"internalType":"uint128","name":"lockReleaseTime","type":"uint128"},{"internalType":"uint128","name":"minDeposit","type":"uint128"},{"internalType":"uint128","name":"totalSupply","type":"uint128"},{"internalType":"uint128","name":"pricePerToken","type":"uint128"},{"internalType":"uint128","name":"startTime","type":"uint128"},{"internalType":"uint128","name":"endTime","type":"uint128"}],"name":"createPhase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getContractInfo","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEtherPrice","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"phaseId","type":"uint256"}],"name":"getPhase","outputs":[{"components":[{"internalType":"uint128","name":"lockPercentage","type":"uint128"},{"internalType":"uint128","name":"lockReleaseTime","type":"uint128"},{"internalType":"uint128","name":"minDeposit","type":"uint128"},{"internalType":"uint128","name":"pricePerToken","type":"uint128"},{"internalType":"uint128","name":"startTime","type":"uint128"},{"internalType":"uint128","name":"endTime","type":"uint128"},{"internalType":"uint128","name":"totalLocked","type":"uint128"},{"internalType":"uint128","name":"totalSold","type":"uint128"},{"internalType":"uint128","name":"totalSupply","type":"uint128"}],"internalType":"struct TokenSwapV2.PhaseInfo","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"phaseFrom","type":"uint256"},{"internalType":"uint256","name":"phaseTo","type":"uint256"},{"internalType":"uint256","name":"filter","type":"uint256"}],"name":"getPhases","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"},{"components":[{"internalType":"uint128","name":"lockPercentage","type":"uint128"},{"internalType":"uint128","name":"lockReleaseTime","type":"uint128"},{"internalType":"uint128","name":"minDeposit","type":"uint128"},{"internalType":"uint128","name":"pricePerToken","type":"uint128"},{"internalType":"uint128","name":"startTime","type":"uint128"},{"internalType":"uint128","name":"endTime","type":"uint128"},{"internalType":"uint128","name":"totalLocked","type":"uint128"},{"internalType":"uint128","name":"totalSold","type":"uint128"},{"internalType":"uint128","name":"totalSupply","type":"uint128"}],"internalType":"struct TokenSwapV2.PhaseInfo[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"referralCode","type":"string"}],"name":"getReferralCodeInfo","outputs":[{"components":[{"internalType":"uint128","name":"amount","type":"uint128"},{"internalType":"uint128","name":"numSwap","type":"uint128"}],"internalType":"struct TokenSwapV2.ReferralCodeInfo","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"phaseFrom","type":"uint256"},{"internalType":"uint256","name":"phaseTo","type":"uint256"}],"name":"getUserBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"phaseId","type":"uint256"},{"internalType":"string","name":"referralCode","type":"string"}],"name":"swap","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adminWallet","type":"address"}],"name":"updateAdminWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"phaseId","type":"uint256"},{"internalType":"uint128","name":"lockPercentage","type":"uint128"},{"internalType":"uint128","name":"lockReleaseTime","type":"uint128"}],"name":"updateLockInfo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"phaseId","type":"uint256"},{"internalType":"uint128","name":"startTime","type":"uint128"},{"internalType":"uint128","name":"endTime","type":"uint128"}],"name":"updatePhaseTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"priceFeed","type":"address"}],"name":"updatePriceFeed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"phaseId","type":"uint256"},{"internalType":"uint128","name":"minDeposit","type":"uint128"},{"internalType":"uint128","name":"totalSupply","type":"uint128"},{"internalType":"uint128","name":"pricePerToken","type":"uint128"}],"name":"updateSaleInfo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawAllFund","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162002786380380620027868339810160408190526200003491620000d5565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b039485166001600160a01b0319918216179091556002805493851693821693909317909255600380549190931691161790556200011e565b80516001600160a01b0381168114620000d057600080fd5b919050565b600080600060608486031215620000ea578283fd5b620000f584620000b8565b92506200010560208501620000b8565b91506200011560408501620000b8565b90509250925092565b612658806200012e6000396000f3fe6080604052600436106101095760003560e01c80637cc1f8671161009557806395877f781161006457806395877f7814610331578063ca7c4dba14610351578063deb4a6d214610374578063e24a1aa014610387578063f2fde38b146103a757610109565b80637cc1f867146102815780637f63ab94146102c957806384204ea4146102e95780638da5cb5b1461030957610109565b8063351179b5116100dc578063351179b5146101c9578063593f4242146101fe5780635eec08701461022c5780636af8711b1461024c578063715018a61461026c57610109565b80630faa45611461010e5780631202022514610130578063140361c61461017c57806316ef376b1461019c575b600080fd5b34801561011a57600080fd5b5061012e61012936600461218f565b6103c7565b005b34801561013c57600080fd5b5061015061014b36600461205a565b61057a565b6040805182516001600160801b0390811682526020938401511692810192909252015b60405180910390f35b34801561018857600080fd5b5061012e610197366004612095565b6105da565b3480156101a857600080fd5b506101bc6101b736600461211a565b610847565b60405161017391906124de565b3480156101d557600080fd5b506101e96101e4366004612008565b6108e3565b60408051928352602083019190915201610173565b34801561020a57600080fd5b5061021e610219366004612237565b610985565b6040516101739291906123ad565b34801561023857600080fd5b5061012e610247366004611fe7565b610d56565b34801561025857600080fd5b5061012e61026736600461218f565b610e2b565b34801561027857600080fd5b5061012e610f7b565b34801561028d57600080fd5b50610296610fef565b604080516001600160a01b039687168152959094166020860152928401919091526060830152608082015260a001610173565b3480156102d557600080fd5b5061012e6102e4366004612216565b611094565b3480156102f557600080fd5b5061012e61030436600461211a565b6112ea565b34801561031557600080fd5b506000546040516001600160a01b039091168152602001610173565b34801561033d57600080fd5b5061012e61034c366004611fe7565b61141d565b34801561035d57600080fd5b506103666114eb565b604051908152602001610173565b61012e61038236600461214a565b61157f565b34801561039357600080fd5b5061012e6103a23660046121ca565b611c10565b3480156103b357600080fd5b5061012e6103c2366004611fe7565b611de2565b6000546001600160a01b031633146103fa5760405162461bcd60e51b81526004016103f190612432565b60405180910390fd5b60008381526006602052604090206004015483906001600160801b03166104335760405162461bcd60e51b81526004016103f190612467565b60008481526006602052604090206001600160801b0384161561046e576002810180546001600160801b0319166001600160801b0386161790555b6001600160801b0383161561049a576002810180546001600160801b03808616600160801b0291161790555b6001600160801b03841615806104b8575042846001600160801b0316115b80156104d9575060028101546001600160801b03600160801b820481169116105b6105255760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e5377617056323a2074696d6520697320696e76616c69640000000060448201526064016103f1565b604080518681526001600160801b0380871660208301528516918101919091527f494c3ab2d43cf7ce6bb919f2625cdb4168ddaa686dd2daaad1c48705eee1de81906060015b60405180910390a15050505050565b604080518082019091526000808252602082015260048260405161059e9190612374565b90815260408051918290036020908101832083830190925290546001600160801b038082168452600160801b909104169082015290505b919050565b6000546001600160a01b031633146106045760405162461bcd60e51b81526004016103f190612432565b612710876001600160801b0316111561062f5760405162461bcd60e51b81526004016103f19061249c565b6000856001600160801b031611801561065157506000846001600160801b0316115b801561066657506000836001600160801b0316115b6106c75760405162461bcd60e51b815260206004820152602c60248201527f546f6b656e5377617056323a2076616c7565206d75737420626520677265617460448201526b6572207468616e207a65726f60a01b60648201526084016103f1565b42826001600160801b03161180156106f05750806001600160801b0316826001600160801b0316105b61073c5760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e5377617056323a2074696d6520697320696e76616c69640000000060448201526064016103f1565b600060056000815461074d906125db565b9182905550600081815260066020526040908190206001600160801b038a8116600160801b908102828e1617835588821681028b831617600184015586821602878216176002830155600482018054918a166001600160801b0319929092169190911790559051919250907fef75f7982151d6665ab6b11df67c019ab8bd873d52ebba636f127b80ac5a2ee8906108349084908c908c908c908c908c908c908c909788526001600160801b039687166020890152948616604088015292851660608701529084166080860152831660a0850152821660c08401521660e08201526101000190565b60405180910390a1505050505050505050565b61084f611ecc565b5060009081526006602090815260409182902082516101208101845281546001600160801b038082168352600160801b91829004811694830194909452600183015480851695830195909552938490048316606082015260028201548084166080830152849004831660a0820152600382015480841660c083015293909304821660e0840152600401541661010082015290565b600080428180865b8681116109775760008181526008602090815260408083206001600160a01b038d168452909152902054806109205750610965565b600082815260066020526040902054600160801b90046001600160801b031685106109565761094f818561251e565b9350610963565b610960818461251e565b92505b505b8061096f816125db565b9150506108eb565b509097909650945050505050565b606080600080610995878761259d565b6109a090600161251e565b90504260008267ffffffffffffffff8111156109cc57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156109f5578160200160208202803683370190505b50905060008367ffffffffffffffff811115610a2157634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610a5a57816020015b610a47611ecc565b815260200190600190039081610a3f5790505b509050895b898111610bc45760008181526006602090815260409182902082516101208101845281546001600160801b038082168352600160801b91829004811694830194909452600183015480851695830195909552938490048316606082015260028201548084166080830152849004831660a0820152600382015480841660c083015293909304821660e0840152600401541661010082018190521580610b1c5750896001148015610b1c57508060a001516001600160801b03168510155b80610b3e5750896002148015610b3e57508060a001516001600160801b031685105b15610b495750610bb2565b81848881518110610b6a57634e487b7160e01b600052603260045260246000fd5b60200260200101818152505080838881518110610b9757634e487b7160e01b600052603260045260246000fd5b60200260200101819052508680610bad906125db565b975050505b80610bbc816125db565b915050610a5f565b5060008567ffffffffffffffff811115610bee57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610c17578160200160208202803683370190505b50905060008667ffffffffffffffff811115610c4357634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610c7c57816020015b610c69611ecc565b815260200190600190039081610c615790505b50905060005b87811015610d4457848181518110610caa57634e487b7160e01b600052603260045260246000fd5b6020026020010151838281518110610cd257634e487b7160e01b600052603260045260246000fd5b602002602001018181525050838181518110610cfe57634e487b7160e01b600052603260045260246000fd5b6020026020010151828281518110610d2657634e487b7160e01b600052603260045260246000fd5b60200260200101819052508080610d3c906125db565b915050610c82565b50909b909a5098505050505050505050565b6000546001600160a01b03163314610d805760405162461bcd60e51b81526004016103f190612432565b6001600160a01b038116610dd65760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e5377617056323a206164647265737320697320696e76616c69640060448201526064016103f1565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f65ef617d87f7e47ab080058ac1d5ebf06817bbd817e49898ab9f9532405ecd9b906020015b60405180910390a150565b6000546001600160a01b03163314610e555760405162461bcd60e51b81526004016103f190612432565b60008381526006602052604090206004015483906001600160801b0316610e8e5760405162461bcd60e51b81526004016103f190612467565b612710836001600160801b03161115610eb95760405162461bcd60e51b81526004016103f19061249c565b60008481526006602052604090206003810154600160801b90046001600160801b031615610f255760405162461bcd60e51b8152602060048201526019602482015278546f6b656e5377617056323a2063616e27742075706461746560381b60448201526064016103f1565b6001600160801b03838116600160801b810291861691821783556040805188815260208101939093528201527fae3718e3f6f7f05f677d2728a0fd2f88be9c1d284631ee2ae3bf1b553f2090e09060600161056b565b6000546001600160a01b03163314610fa55760405162461bcd60e51b81526004016103f190612432565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6003546001546040516370a0823160e01b815230600482015260009283928392839283926001600160a01b039182169291169081906370a082319060240160206040518083038186803b15801561104557600080fd5b505afa158015611059573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107d9190612132565b600554600754945094509450945094509091929394565b33426000845b8481116111de5760008181526008602090815260408083206001600160a01b0388168452909152902054806110cf57506111cc565b600082815260066020526040902054600160801b90046001600160801b031684106111ca576110fe818461251e565b60008381526006602052604081206003018054929550839290919061112d9084906001600160801b0316612575565b92506101000a8154816001600160801b0302191690836001600160801b031602179055507f7ebec69a24f70f6adc732c5d495ea40faf1248f959f11feafe0f9bbdc4e07b5a82868360405161119e939291909283526001600160a01b03919091166020830152604082015260600190565b60405180910390a160008281526008602090815260408083206001600160a01b03891684529091528120555b505b806111d6816125db565b91505061109a565b50600081116112455760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e5377617056323a20616d6f756e74206d757374206265206772656160448201526c746572207468616e207a65726f60981b60648201526084016103f1565b8060076000828254611257919061259d565b909155505060015460405163a9059cbb60e01b81526001600160a01b038581166004830152602482018490529091169063a9059cbb90604401602060405180830381600087803b1580156112aa57600080fd5b505af11580156112be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e2919061203a565b505050505050565b6000546001600160a01b031633146113145760405162461bcd60e51b81526004016103f190612432565b600081116113645760405162461bcd60e51b815260206004820152601e60248201527f546f6b656e5377617056323a20616d6f756e7420697320696e76616c6964000060448201526064016103f1565b60015460035460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905291169063a9059cbb90604401602060405180830381600087803b1580156113b457600080fd5b505af11580156113c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ec919061203a565b506040518181527fc033002f8a408f3cf1d6d61fc9ce9b4940481aecb1a2c853ec4ff9d6bb55656890602001610e20565b6000546001600160a01b031633146114475760405162461bcd60e51b81526004016103f190612432565b6001600160a01b03811661149d5760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e5377617056323a206164647265737320697320696e76616c69640060448201526064016103f1565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fe5b20b8497e4f3e2435ef9c20e2e26b47497ee13745ce1c681ad6640653119e690602001610e20565b600080600260009054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b15801561153c57600080fd5b505afa158015611550573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115749190612262565b509194505050505090565b600082815260066020526040902060028101546001600160801b031642108015906115bd57506002810154600160801b90046001600160801b031642105b6116135760405162461bcd60e51b815260206004820152602160248201527f546f6b656e5377617056323a206e6f7420696e207377617070696e672074696d6044820152606560f81b60648201526084016103f1565b60018101546001600160801b03163410156116815760405162461bcd60e51b815260206004820152602860248201527f546f6b656e5377617056323a206465706f73697420616d6f756e742069736e276044820152670e840cadcdeeaced60c31b60648201526084016103f1565b600381015460048201546000916116ab916001600160801b03600160801b90920482169116612575565b6001600160801b03169050600081116117155760405162461bcd60e51b815260206004820152602660248201527f546f6b656e5377617056323a20746f74616c20737570706c792069736e2774206044820152650cadcdeeaced60d31b60648201526084016103f1565b60025460408051633fabe5a360e21b815290516000926001600160a01b03169163feaf968c9160048083019260a0929190829003018186803b15801561175a57600080fd5b505afa15801561176e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117929190612262565b505050600185015490925060009150600160801b90046001600160801b03166117bb8334612556565b6117c59190612536565b905060008382111561180c5760018501548390600160801b90046001600160801b03166117f2868561259d565b6117fc9190612556565b6118069190612536565b90508391505b6007546001546040516370a0823160e01b81523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b15801561185257600080fd5b505afa158015611866573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061188a9190612132565b611894919061259d565b8211156118ed5760405162461bcd60e51b815260206004820152602160248201527f546f6b656e5377617056323a2062616c616e63652069736e277420656e6f75676044820152600d60fb1b60648201526084016103f1565b801561192257604051339082156108fc029083906000818181858888f19350505050158015611920573d6000803e3d6000fd5b505b6003546001600160a01b03166108fc61193b833461259d565b6040518115909202916000818181858888f19350505050158015611963573d6000803e3d6000fd5b50845460009061271090611980906001600160801b031685612556565b61198a9190612536565b6001549091506001600160a01b031663a9059cbb336119a9848761259d565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b1580156119ef57600080fd5b505af1158015611a03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a27919061203a565b508015611ab8578060076000828254611a40919061251e565b9091555050600088815260086020908152604080832033845290915281208054839290611a6e90849061251e565b9091555050600386018054829190600090611a939084906001600160801b03166124f3565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b828660030160108282829054906101000a90046001600160801b0316611ade91906124f3565b92506101000a8154816001600160801b0302191690836001600160801b031602179055506000600488604051611b149190612374565b9081526040519081900360200190209050611b2f833461259d565b81548290600090611b4a9084906001600160801b03166124f3565b82546101009290920a6001600160801b038181021990931691831602179091558254600160801b9004169050816010611b82836125b4565b91906101000a8154816001600160801b0302191690836001600160801b03160217905550507f9ec75bd71d378011edf2a1c3c8649ed5b8ac31a866e81f960d79882f2b6fa88b89611bd03390565b604080519283526001600160a01b0390911660208301523490820152606081018590526080810186905260a0810184905260c0810187905260e001610834565b6000546001600160a01b03163314611c3a5760405162461bcd60e51b81526004016103f190612432565b60008481526006602052604090206004015484906001600160801b0316611c735760405162461bcd60e51b81526004016103f190612467565b60008581526006602052604090206001600160801b03851615611cae576001810180546001600160801b0319166001600160801b0387161790555b6001600160801b03841615611cdb576004810180546001600160801b0319166001600160801b0386161790555b6001600160801b03831615611d07576001810180546001600160801b03808616600160801b0291161790555b6001600160801b038416151580611d2657506001600160801b03831615155b15611d89576003810154600160801b90046001600160801b031615611d895760405162461bcd60e51b8152602060048201526019602482015278546f6b656e5377617056323a2063616e27742075706461746560381b60448201526064016103f1565b604080518781526001600160801b038781166020830152868116828401528516606082015290517f6a2093120cdb90f6077cd2f94f47c8d723862b09502f5b39593bc56b073809929181900360800190a1505050505050565b6000546001600160a01b03163314611e0c5760405162461bcd60e51b81526004016103f190612432565b6001600160a01b038116611e715760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103f1565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081019190915290565b80356001600160a01b03811681146105d557600080fd5b600082601f830112611f3f578081fd5b813567ffffffffffffffff80821115611f5a57611f5a61260c565b604051601f8301601f19908116603f01168101908282118183101715611f8257611f8261260c565b81604052838152866020858801011115611f9a578485fd5b8360208701602083013792830160200193909352509392505050565b80356001600160801b03811681146105d557600080fd5b805169ffffffffffffffffffff811681146105d557600080fd5b600060208284031215611ff8578081fd5b61200182611f18565b9392505050565b60008060006060848603121561201c578182fd5b61202584611f18565b95602085013595506040909401359392505050565b60006020828403121561204b578081fd5b81518015158114612001578182fd5b60006020828403121561206b578081fd5b813567ffffffffffffffff811115612081578182fd5b61208d84828501611f2f565b949350505050565b600080600080600080600060e0888a0312156120af578283fd5b6120b888611fb6565b96506120c660208901611fb6565b95506120d460408901611fb6565b94506120e260608901611fb6565b93506120f060808901611fb6565b92506120fe60a08901611fb6565b915061210c60c08901611fb6565b905092959891949750929550565b60006020828403121561212b578081fd5b5035919050565b600060208284031215612143578081fd5b5051919050565b6000806040838503121561215c578182fd5b82359150602083013567ffffffffffffffff811115612179578182fd5b61218585828601611f2f565b9150509250929050565b6000806000606084860312156121a3578283fd5b833592506121b360208501611fb6565b91506121c160408501611fb6565b90509250925092565b600080600080608085870312156121df578384fd5b843593506121ef60208601611fb6565b92506121fd60408601611fb6565b915061220b60608601611fb6565b905092959194509250565b60008060408385031215612228578182fd5b50508035926020909101359150565b60008060006060848603121561224b578283fd5b505081359360208301359350604090920135919050565b600080600080600060a08688031215612279578283fd5b61228286611fcd565b94506020860151935060408601519250606086015191506122a560808701611fcd565b90509295509295909350565b6001600160801b038082511683528060208301511660208401528060408301511660408401525060608101516122f260608401826001600160801b03169052565b50608081015161230d60808401826001600160801b03169052565b5060a081015161232860a08401826001600160801b03169052565b5060c081015161234360c08401826001600160801b03169052565b5060e081015161235e60e08401826001600160801b03169052565b50610100908101516001600160801b0316910152565b60008251815b81811015612394576020818601810151858301520161237a565b818111156123a25782828501525b509190910192915050565b604080825283519082018190526000906020906060840190828701845b828110156123e6578151845292840192908401906001016123ca565b50505083810382850152845180825285830191830190845b81811015612425576124118385516122b1565b9284019261012092909201916001016123fe565b5090979650505050505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252818101527f546f6b656e5377617056323a20706861736520646f65736e2774206578697374604082015260600190565b60208082526022908201527f546f6b656e5377617056323a2070657263656e7461676520697320696e76616c6040820152611a5960f21b606082015260800190565b61012081016124ed82846122b1565b92915050565b60006001600160801b03808316818516808303821115612515576125156125f6565b01949350505050565b60008219821115612531576125316125f6565b500190565b60008261255157634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612570576125706125f6565b500290565b60006001600160801b0383811690831681811015612595576125956125f6565b039392505050565b6000828210156125af576125af6125f6565b500390565b60006001600160801b03808316818114156125d1576125d16125f6565b6001019392505050565b60006000198214156125ef576125ef6125f6565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220b65c2928a9fead629287e9c9ac5fa84053cfd6534599bef43c5bd50dad79a85f64736f6c63430008030033000000000000000000000000692accdd8b86692427e0aa4752ae917df01cc56f0000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b8419000000000000000000000000930c2ef8a91e7c2d9703a14cfe612c8af0f970bf
Deployed Bytecode
0x6080604052600436106101095760003560e01c80637cc1f8671161009557806395877f781161006457806395877f7814610331578063ca7c4dba14610351578063deb4a6d214610374578063e24a1aa014610387578063f2fde38b146103a757610109565b80637cc1f867146102815780637f63ab94146102c957806384204ea4146102e95780638da5cb5b1461030957610109565b8063351179b5116100dc578063351179b5146101c9578063593f4242146101fe5780635eec08701461022c5780636af8711b1461024c578063715018a61461026c57610109565b80630faa45611461010e5780631202022514610130578063140361c61461017c57806316ef376b1461019c575b600080fd5b34801561011a57600080fd5b5061012e61012936600461218f565b6103c7565b005b34801561013c57600080fd5b5061015061014b36600461205a565b61057a565b6040805182516001600160801b0390811682526020938401511692810192909252015b60405180910390f35b34801561018857600080fd5b5061012e610197366004612095565b6105da565b3480156101a857600080fd5b506101bc6101b736600461211a565b610847565b60405161017391906124de565b3480156101d557600080fd5b506101e96101e4366004612008565b6108e3565b60408051928352602083019190915201610173565b34801561020a57600080fd5b5061021e610219366004612237565b610985565b6040516101739291906123ad565b34801561023857600080fd5b5061012e610247366004611fe7565b610d56565b34801561025857600080fd5b5061012e61026736600461218f565b610e2b565b34801561027857600080fd5b5061012e610f7b565b34801561028d57600080fd5b50610296610fef565b604080516001600160a01b039687168152959094166020860152928401919091526060830152608082015260a001610173565b3480156102d557600080fd5b5061012e6102e4366004612216565b611094565b3480156102f557600080fd5b5061012e61030436600461211a565b6112ea565b34801561031557600080fd5b506000546040516001600160a01b039091168152602001610173565b34801561033d57600080fd5b5061012e61034c366004611fe7565b61141d565b34801561035d57600080fd5b506103666114eb565b604051908152602001610173565b61012e61038236600461214a565b61157f565b34801561039357600080fd5b5061012e6103a23660046121ca565b611c10565b3480156103b357600080fd5b5061012e6103c2366004611fe7565b611de2565b6000546001600160a01b031633146103fa5760405162461bcd60e51b81526004016103f190612432565b60405180910390fd5b60008381526006602052604090206004015483906001600160801b03166104335760405162461bcd60e51b81526004016103f190612467565b60008481526006602052604090206001600160801b0384161561046e576002810180546001600160801b0319166001600160801b0386161790555b6001600160801b0383161561049a576002810180546001600160801b03808616600160801b0291161790555b6001600160801b03841615806104b8575042846001600160801b0316115b80156104d9575060028101546001600160801b03600160801b820481169116105b6105255760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e5377617056323a2074696d6520697320696e76616c69640000000060448201526064016103f1565b604080518681526001600160801b0380871660208301528516918101919091527f494c3ab2d43cf7ce6bb919f2625cdb4168ddaa686dd2daaad1c48705eee1de81906060015b60405180910390a15050505050565b604080518082019091526000808252602082015260048260405161059e9190612374565b90815260408051918290036020908101832083830190925290546001600160801b038082168452600160801b909104169082015290505b919050565b6000546001600160a01b031633146106045760405162461bcd60e51b81526004016103f190612432565b612710876001600160801b0316111561062f5760405162461bcd60e51b81526004016103f19061249c565b6000856001600160801b031611801561065157506000846001600160801b0316115b801561066657506000836001600160801b0316115b6106c75760405162461bcd60e51b815260206004820152602c60248201527f546f6b656e5377617056323a2076616c7565206d75737420626520677265617460448201526b6572207468616e207a65726f60a01b60648201526084016103f1565b42826001600160801b03161180156106f05750806001600160801b0316826001600160801b0316105b61073c5760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e5377617056323a2074696d6520697320696e76616c69640000000060448201526064016103f1565b600060056000815461074d906125db565b9182905550600081815260066020526040908190206001600160801b038a8116600160801b908102828e1617835588821681028b831617600184015586821602878216176002830155600482018054918a166001600160801b0319929092169190911790559051919250907fef75f7982151d6665ab6b11df67c019ab8bd873d52ebba636f127b80ac5a2ee8906108349084908c908c908c908c908c908c908c909788526001600160801b039687166020890152948616604088015292851660608701529084166080860152831660a0850152821660c08401521660e08201526101000190565b60405180910390a1505050505050505050565b61084f611ecc565b5060009081526006602090815260409182902082516101208101845281546001600160801b038082168352600160801b91829004811694830194909452600183015480851695830195909552938490048316606082015260028201548084166080830152849004831660a0820152600382015480841660c083015293909304821660e0840152600401541661010082015290565b600080428180865b8681116109775760008181526008602090815260408083206001600160a01b038d168452909152902054806109205750610965565b600082815260066020526040902054600160801b90046001600160801b031685106109565761094f818561251e565b9350610963565b610960818461251e565b92505b505b8061096f816125db565b9150506108eb565b509097909650945050505050565b606080600080610995878761259d565b6109a090600161251e565b90504260008267ffffffffffffffff8111156109cc57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156109f5578160200160208202803683370190505b50905060008367ffffffffffffffff811115610a2157634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610a5a57816020015b610a47611ecc565b815260200190600190039081610a3f5790505b509050895b898111610bc45760008181526006602090815260409182902082516101208101845281546001600160801b038082168352600160801b91829004811694830194909452600183015480851695830195909552938490048316606082015260028201548084166080830152849004831660a0820152600382015480841660c083015293909304821660e0840152600401541661010082018190521580610b1c5750896001148015610b1c57508060a001516001600160801b03168510155b80610b3e5750896002148015610b3e57508060a001516001600160801b031685105b15610b495750610bb2565b81848881518110610b6a57634e487b7160e01b600052603260045260246000fd5b60200260200101818152505080838881518110610b9757634e487b7160e01b600052603260045260246000fd5b60200260200101819052508680610bad906125db565b975050505b80610bbc816125db565b915050610a5f565b5060008567ffffffffffffffff811115610bee57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610c17578160200160208202803683370190505b50905060008667ffffffffffffffff811115610c4357634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610c7c57816020015b610c69611ecc565b815260200190600190039081610c615790505b50905060005b87811015610d4457848181518110610caa57634e487b7160e01b600052603260045260246000fd5b6020026020010151838281518110610cd257634e487b7160e01b600052603260045260246000fd5b602002602001018181525050838181518110610cfe57634e487b7160e01b600052603260045260246000fd5b6020026020010151828281518110610d2657634e487b7160e01b600052603260045260246000fd5b60200260200101819052508080610d3c906125db565b915050610c82565b50909b909a5098505050505050505050565b6000546001600160a01b03163314610d805760405162461bcd60e51b81526004016103f190612432565b6001600160a01b038116610dd65760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e5377617056323a206164647265737320697320696e76616c69640060448201526064016103f1565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f65ef617d87f7e47ab080058ac1d5ebf06817bbd817e49898ab9f9532405ecd9b906020015b60405180910390a150565b6000546001600160a01b03163314610e555760405162461bcd60e51b81526004016103f190612432565b60008381526006602052604090206004015483906001600160801b0316610e8e5760405162461bcd60e51b81526004016103f190612467565b612710836001600160801b03161115610eb95760405162461bcd60e51b81526004016103f19061249c565b60008481526006602052604090206003810154600160801b90046001600160801b031615610f255760405162461bcd60e51b8152602060048201526019602482015278546f6b656e5377617056323a2063616e27742075706461746560381b60448201526064016103f1565b6001600160801b03838116600160801b810291861691821783556040805188815260208101939093528201527fae3718e3f6f7f05f677d2728a0fd2f88be9c1d284631ee2ae3bf1b553f2090e09060600161056b565b6000546001600160a01b03163314610fa55760405162461bcd60e51b81526004016103f190612432565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6003546001546040516370a0823160e01b815230600482015260009283928392839283926001600160a01b039182169291169081906370a082319060240160206040518083038186803b15801561104557600080fd5b505afa158015611059573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107d9190612132565b600554600754945094509450945094509091929394565b33426000845b8481116111de5760008181526008602090815260408083206001600160a01b0388168452909152902054806110cf57506111cc565b600082815260066020526040902054600160801b90046001600160801b031684106111ca576110fe818461251e565b60008381526006602052604081206003018054929550839290919061112d9084906001600160801b0316612575565b92506101000a8154816001600160801b0302191690836001600160801b031602179055507f7ebec69a24f70f6adc732c5d495ea40faf1248f959f11feafe0f9bbdc4e07b5a82868360405161119e939291909283526001600160a01b03919091166020830152604082015260600190565b60405180910390a160008281526008602090815260408083206001600160a01b03891684529091528120555b505b806111d6816125db565b91505061109a565b50600081116112455760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e5377617056323a20616d6f756e74206d757374206265206772656160448201526c746572207468616e207a65726f60981b60648201526084016103f1565b8060076000828254611257919061259d565b909155505060015460405163a9059cbb60e01b81526001600160a01b038581166004830152602482018490529091169063a9059cbb90604401602060405180830381600087803b1580156112aa57600080fd5b505af11580156112be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e2919061203a565b505050505050565b6000546001600160a01b031633146113145760405162461bcd60e51b81526004016103f190612432565b600081116113645760405162461bcd60e51b815260206004820152601e60248201527f546f6b656e5377617056323a20616d6f756e7420697320696e76616c6964000060448201526064016103f1565b60015460035460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905291169063a9059cbb90604401602060405180830381600087803b1580156113b457600080fd5b505af11580156113c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ec919061203a565b506040518181527fc033002f8a408f3cf1d6d61fc9ce9b4940481aecb1a2c853ec4ff9d6bb55656890602001610e20565b6000546001600160a01b031633146114475760405162461bcd60e51b81526004016103f190612432565b6001600160a01b03811661149d5760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e5377617056323a206164647265737320697320696e76616c69640060448201526064016103f1565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fe5b20b8497e4f3e2435ef9c20e2e26b47497ee13745ce1c681ad6640653119e690602001610e20565b600080600260009054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b15801561153c57600080fd5b505afa158015611550573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115749190612262565b509194505050505090565b600082815260066020526040902060028101546001600160801b031642108015906115bd57506002810154600160801b90046001600160801b031642105b6116135760405162461bcd60e51b815260206004820152602160248201527f546f6b656e5377617056323a206e6f7420696e207377617070696e672074696d6044820152606560f81b60648201526084016103f1565b60018101546001600160801b03163410156116815760405162461bcd60e51b815260206004820152602860248201527f546f6b656e5377617056323a206465706f73697420616d6f756e742069736e276044820152670e840cadcdeeaced60c31b60648201526084016103f1565b600381015460048201546000916116ab916001600160801b03600160801b90920482169116612575565b6001600160801b03169050600081116117155760405162461bcd60e51b815260206004820152602660248201527f546f6b656e5377617056323a20746f74616c20737570706c792069736e2774206044820152650cadcdeeaced60d31b60648201526084016103f1565b60025460408051633fabe5a360e21b815290516000926001600160a01b03169163feaf968c9160048083019260a0929190829003018186803b15801561175a57600080fd5b505afa15801561176e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117929190612262565b505050600185015490925060009150600160801b90046001600160801b03166117bb8334612556565b6117c59190612536565b905060008382111561180c5760018501548390600160801b90046001600160801b03166117f2868561259d565b6117fc9190612556565b6118069190612536565b90508391505b6007546001546040516370a0823160e01b81523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b15801561185257600080fd5b505afa158015611866573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061188a9190612132565b611894919061259d565b8211156118ed5760405162461bcd60e51b815260206004820152602160248201527f546f6b656e5377617056323a2062616c616e63652069736e277420656e6f75676044820152600d60fb1b60648201526084016103f1565b801561192257604051339082156108fc029083906000818181858888f19350505050158015611920573d6000803e3d6000fd5b505b6003546001600160a01b03166108fc61193b833461259d565b6040518115909202916000818181858888f19350505050158015611963573d6000803e3d6000fd5b50845460009061271090611980906001600160801b031685612556565b61198a9190612536565b6001549091506001600160a01b031663a9059cbb336119a9848761259d565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b1580156119ef57600080fd5b505af1158015611a03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a27919061203a565b508015611ab8578060076000828254611a40919061251e565b9091555050600088815260086020908152604080832033845290915281208054839290611a6e90849061251e565b9091555050600386018054829190600090611a939084906001600160801b03166124f3565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b828660030160108282829054906101000a90046001600160801b0316611ade91906124f3565b92506101000a8154816001600160801b0302191690836001600160801b031602179055506000600488604051611b149190612374565b9081526040519081900360200190209050611b2f833461259d565b81548290600090611b4a9084906001600160801b03166124f3565b82546101009290920a6001600160801b038181021990931691831602179091558254600160801b9004169050816010611b82836125b4565b91906101000a8154816001600160801b0302191690836001600160801b03160217905550507f9ec75bd71d378011edf2a1c3c8649ed5b8ac31a866e81f960d79882f2b6fa88b89611bd03390565b604080519283526001600160a01b0390911660208301523490820152606081018590526080810186905260a0810184905260c0810187905260e001610834565b6000546001600160a01b03163314611c3a5760405162461bcd60e51b81526004016103f190612432565b60008481526006602052604090206004015484906001600160801b0316611c735760405162461bcd60e51b81526004016103f190612467565b60008581526006602052604090206001600160801b03851615611cae576001810180546001600160801b0319166001600160801b0387161790555b6001600160801b03841615611cdb576004810180546001600160801b0319166001600160801b0386161790555b6001600160801b03831615611d07576001810180546001600160801b03808616600160801b0291161790555b6001600160801b038416151580611d2657506001600160801b03831615155b15611d89576003810154600160801b90046001600160801b031615611d895760405162461bcd60e51b8152602060048201526019602482015278546f6b656e5377617056323a2063616e27742075706461746560381b60448201526064016103f1565b604080518781526001600160801b038781166020830152868116828401528516606082015290517f6a2093120cdb90f6077cd2f94f47c8d723862b09502f5b39593bc56b073809929181900360800190a1505050505050565b6000546001600160a01b03163314611e0c5760405162461bcd60e51b81526004016103f190612432565b6001600160a01b038116611e715760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103f1565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081019190915290565b80356001600160a01b03811681146105d557600080fd5b600082601f830112611f3f578081fd5b813567ffffffffffffffff80821115611f5a57611f5a61260c565b604051601f8301601f19908116603f01168101908282118183101715611f8257611f8261260c565b81604052838152866020858801011115611f9a578485fd5b8360208701602083013792830160200193909352509392505050565b80356001600160801b03811681146105d557600080fd5b805169ffffffffffffffffffff811681146105d557600080fd5b600060208284031215611ff8578081fd5b61200182611f18565b9392505050565b60008060006060848603121561201c578182fd5b61202584611f18565b95602085013595506040909401359392505050565b60006020828403121561204b578081fd5b81518015158114612001578182fd5b60006020828403121561206b578081fd5b813567ffffffffffffffff811115612081578182fd5b61208d84828501611f2f565b949350505050565b600080600080600080600060e0888a0312156120af578283fd5b6120b888611fb6565b96506120c660208901611fb6565b95506120d460408901611fb6565b94506120e260608901611fb6565b93506120f060808901611fb6565b92506120fe60a08901611fb6565b915061210c60c08901611fb6565b905092959891949750929550565b60006020828403121561212b578081fd5b5035919050565b600060208284031215612143578081fd5b5051919050565b6000806040838503121561215c578182fd5b82359150602083013567ffffffffffffffff811115612179578182fd5b61218585828601611f2f565b9150509250929050565b6000806000606084860312156121a3578283fd5b833592506121b360208501611fb6565b91506121c160408501611fb6565b90509250925092565b600080600080608085870312156121df578384fd5b843593506121ef60208601611fb6565b92506121fd60408601611fb6565b915061220b60608601611fb6565b905092959194509250565b60008060408385031215612228578182fd5b50508035926020909101359150565b60008060006060848603121561224b578283fd5b505081359360208301359350604090920135919050565b600080600080600060a08688031215612279578283fd5b61228286611fcd565b94506020860151935060408601519250606086015191506122a560808701611fcd565b90509295509295909350565b6001600160801b038082511683528060208301511660208401528060408301511660408401525060608101516122f260608401826001600160801b03169052565b50608081015161230d60808401826001600160801b03169052565b5060a081015161232860a08401826001600160801b03169052565b5060c081015161234360c08401826001600160801b03169052565b5060e081015161235e60e08401826001600160801b03169052565b50610100908101516001600160801b0316910152565b60008251815b81811015612394576020818601810151858301520161237a565b818111156123a25782828501525b509190910192915050565b604080825283519082018190526000906020906060840190828701845b828110156123e6578151845292840192908401906001016123ca565b50505083810382850152845180825285830191830190845b81811015612425576124118385516122b1565b9284019261012092909201916001016123fe565b5090979650505050505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252818101527f546f6b656e5377617056323a20706861736520646f65736e2774206578697374604082015260600190565b60208082526022908201527f546f6b656e5377617056323a2070657263656e7461676520697320696e76616c6040820152611a5960f21b606082015260800190565b61012081016124ed82846122b1565b92915050565b60006001600160801b03808316818516808303821115612515576125156125f6565b01949350505050565b60008219821115612531576125316125f6565b500190565b60008261255157634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612570576125706125f6565b500290565b60006001600160801b0383811690831681811015612595576125956125f6565b039392505050565b6000828210156125af576125af6125f6565b500390565b60006001600160801b03808316818114156125d1576125d16125f6565b6001019392505050565b60006000198214156125ef576125ef6125f6565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220b65c2928a9fead629287e9c9ac5fa84053cfd6534599bef43c5bd50dad79a85f64736f6c63430008030033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000692accdd8b86692427e0aa4752ae917df01cc56f0000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b8419000000000000000000000000930c2ef8a91e7c2d9703a14cfe612c8af0f970bf
-----Decoded View---------------
Arg [0] : token (address): 0x692aCCdD8b86692427E0aa4752AE917Df01CC56F
Arg [1] : priceFeed (address): 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419
Arg [2] : adminWallet (address): 0x930c2ef8a91e7c2d9703A14cFe612c8aF0f970BF
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000692accdd8b86692427e0aa4752ae917df01cc56f
Arg [1] : 0000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b8419
Arg [2] : 000000000000000000000000930c2ef8a91e7c2d9703a14cfe612c8af0f970bf
Deployed Bytecode Sourcemap
7256:12959:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13846:575;;;;;;;;;;-1:-1:-1;13846:575:0;;;;;:::i;:::-;;:::i;:::-;;19782:191;;;;;;;;;;-1:-1:-1;19782:191:0;;;;;:::i;:::-;;:::i;:::-;;;;15731:13:1;;-1:-1:-1;;;;;15727:22:1;;;15709:41;;15810:4;15798:17;;;15792:24;15788:33;15766:20;;;15759:63;;;;15629:18;19782:191:0;;;;;;;;11298:1058;;;;;;;;;;-1:-1:-1;11298:1058:0;;;;;:::i;:::-;;:::i;14486:150::-;;;;;;;;;;-1:-1:-1;14486:150:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;18062:687::-;;;;;;;;;;-1:-1:-1;18062:687:0;;;;;:::i;:::-;;:::i;:::-;;;;18846:25:1;;;18902:2;18887:18;;18880:34;;;;18819:18;18062:687:0;18801:119:1;14752:1090:0;;;;;;;;;;-1:-1:-1;14752:1090:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;10510:266::-;;;;;;;;;;-1:-1:-1;10510:266:0;;;;;:::i;:::-;;:::i;12420:565::-;;;;;;;;;;-1:-1:-1;12420:565:0;;;;;:::i;:::-;;:::i;2761:148::-;;;;;;;;;;;;;:::i;9749:287::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;7871:15:1;;;7853:34;;7923:15;;;;7918:2;7903:18;;7896:43;7955:18;;;7948:34;;;;8013:2;7998:18;;7991:34;8056:3;8041:19;;8034:35;7802:3;7787:19;9749:287:0;7769:306:1;18836:873:0;;;;;;;;;;-1:-1:-1;18836:873:0;;;;;:::i;:::-;;:::i;10995:246::-;;;;;;;;;;-1:-1:-1;10995:246:0;;;;;:::i;:::-;;:::i;2110:87::-;;;;;;;;;;-1:-1:-1;2156:7:0;2183:6;2110:87;;-1:-1:-1;;;;;2183:6:0;;;7494:51:1;;7482:2;7467:18;2110:87:0;7449:102:1;10094:275:0;;;;;;;;;;-1:-1:-1;10094:275:0;;;;;:::i;:::-;;:::i;20034:176::-;;;;;;;;;;;;;:::i;:::-;;;9743:25:1;;;9731:2;9716:18;20034:176:0;9698:76:1;15900:2027:0;;;;;;:::i;:::-;;:::i;13049:739::-;;;;;;;;;;-1:-1:-1;13049:739:0;;;;;:::i;:::-;;:::i;3064:244::-;;;;;;;;;;-1:-1:-1;3064:244:0;;;;;:::i;:::-;;:::i;13846:575::-;2156:7;2183:6;-1:-1:-1;;;;;2183:6:0;748:10;2330:23;2322:68;;;;-1:-1:-1;;;2322:68:0;;;;;;;:::i;:::-;;;;;;;;;9348:1:::1;9317:16:::0;;;:7:::1;:16;::::0;;;;:28:::1;;::::0;13981:7;;-1:-1:-1;;;;;9317:28:0::1;9309:77;;;;-1:-1:-1::0;;;9309:77:0::1;;;;;;;:::i;:::-;14006:23:::2;14032:16:::0;;;:7:::2;:16;::::0;;;;-1:-1:-1;;;;;14065:14:0;::::2;::::0;14061:74:::2;;14096:15;::::0;::::2;:27:::0;;-1:-1:-1;;;;;;14096:27:0::2;-1:-1:-1::0;;;;;14096:27:0;::::2;;::::0;;14061:74:::2;-1:-1:-1::0;;;;;14151:12:0;::::2;::::0;14147:68:::2;;14180:13;::::0;::::2;:23:::0;;-1:-1:-1;;;;;14180:23:0;;::::2;-1:-1:-1::0;;;14180:23:0::2;::::0;::::2;;::::0;;14147:68:::2;-1:-1:-1::0;;;;;14236:14:0;::::2;::::0;;:45:::2;;;14266:15;14254:9;-1:-1:-1::0;;;;;14254:27:0::2;;14236:45;14235:82;;;;-1:-1:-1::0;14304:13:0::2;::::0;::::2;::::0;-1:-1:-1;;;;;;;;14304:13:0;::::2;::::0;::::2;14286:15:::0;::::2;:31;14235:82;14227:123;;;::::0;-1:-1:-1;;;14227:123:0;;14265:2:1;14227:123:0::2;::::0;::::2;14247:21:1::0;14304:2;14284:18;;;14277:30;14343;14323:18;;;14316:58;14391:18;;14227:123:0::2;14237:178:1::0;14227:123:0::2;14368:45;::::0;;17203:25:1;;;-1:-1:-1;;;;;17317:15:1;;;17312:2;17297:18;;17290:43;17369:15;;17349:18;;;17342:43;;;;14368:45:0::2;::::0;17191:2:1;17176:18;14368:45:0::2;;;;;;;;9397:1;2401::::1;13846:575:::0;;;:::o;19782:191::-;-1:-1:-1;;;;;;;;;;;;;;;;;19937:14:0;19952:12;19937:28;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;19930:35;;;;;;;;-1:-1:-1;;;;;19930:35:0;;;;;-1:-1:-1;;;19930:35:0;;;;;;;;19937:28;-1:-1:-1;19782:191:0;;;;:::o;11298:1058::-;2156:7;2183:6;-1:-1:-1;;;;;2183:6:0;748:10;2330:23;2322:68;;;;-1:-1:-1;;;2322:68:0;;;;;;;:::i;:::-;8186:5:::1;11529:14;-1:-1:-1::0;;;;;11529:37:0::1;;;11521:84;;;;-1:-1:-1::0;;;11521:84:0::1;;;;;;;:::i;:::-;11639:1;11626:10;-1:-1:-1::0;;;;;11626:14:0::1;;:33;;;;;11658:1;11644:11;-1:-1:-1::0;;;;;11644:15:0::1;;11626:33;:54;;;;;11679:1;11663:13;-1:-1:-1::0;;;;;11663:17:0::1;;11626:54;11618:111;;;::::0;-1:-1:-1;;;11618:111:0;;10341:2:1;11618:111:0::1;::::0;::::1;10323:21:1::0;10380:2;10360:18;;;10353:30;10419:34;10399:18;;;10392:62;-1:-1:-1;;;10470:18:1;;;10463:42;10522:19;;11618:111:0::1;10313:234:1::0;11618:111:0::1;11762:15;11750:9;-1:-1:-1::0;;;;;11750:27:0::1;;:50;;;;;11793:7;-1:-1:-1::0;;;;;11781:19:0::1;:9;-1:-1:-1::0;;;;;11781:19:0::1;;11750:50;11742:91;;;::::0;-1:-1:-1;;;11742:91:0;;14265:2:1;11742:91:0::1;::::0;::::1;14247:21:1::0;14304:2;14284:18;;;14277:30;14343;14323:18;;;14316:58;14391:18;;11742:91:0::1;14237:178:1::0;11742:91:0::1;11846:10;11861:12;;11859:14;;;;;:::i;:::-;::::0;;;;-1:-1:-1;11886:23:0::1;11912:11:::0;;;:7:::1;:11;::::0;;;;;;-1:-1:-1;;;;;11982:39:0;;::::1;-1:-1:-1::0;;;11982:39:0;;::::1;11934:37:::0;;::::1;11982:39;::::0;;12072:35;;::::1;::::0;::::1;12032:29:::0;;::::1;12072:35;11934:37:::0;12032:16;::::1;12072:35:::0;12156:23;;::::1;;12118:27:::0;;::::1;12156:23;12118:15;::::0;::::1;12156:23:::0;12190:17:::1;::::0;::::1;:31:::0;;;;::::1;-1:-1:-1::0;;;;;;12190:31:0;;;::::1;::::0;;;::::1;::::0;;12239:109;;11859:14;;-1:-1:-1;11912:11:0;12239:109:::1;::::0;::::1;::::0;11859:14;;11957;;12006:15;;12051:10;;12210:11;;12094:13;;12136:9;;12172:7;;18215:25:1;;;-1:-1:-1;;;;;18329:15:1;;;18324:2;18309:18;;18302:43;18381:15;;;18376:2;18361:18;;18354:43;18433:15;;;18428:2;18413:18;;18406:43;18486:15;;;18480:3;18465:19;;18458:44;18539:15;;18533:3;18518:19;;18511:44;18592:15;;18586:3;18571:19;;18564:44;18645:15;18639:3;18624:19;;18617:44;18202:3;18187:19;;18169:498;12239:109:0::1;;;;;;;;2401:1;;11298:1058:::0;;;;;;;:::o;14486:150::-;14571:16;;:::i;:::-;-1:-1:-1;14612:16:0;;;;:7;:16;;;;;;;;;14605:23;;;;;;;;;-1:-1:-1;;;;;14605:23:0;;;;;-1:-1:-1;;;14605:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14486:150::o;18062:687::-;18189:7;;18245:15;18189:7;;18346:9;18329:371;18362:7;18357:1;:12;18329:371;;18391:14;18408:16;;;:13;:16;;;;;;;;-1:-1:-1;;;;;18408:25:0;;;;;;;;;;18454:11;18450:60;;18486:8;;;18450:60;18530:10;;;;:7;:10;;;;;:26;-1:-1:-1;;;18530:26:0;;-1:-1:-1;;;;;18530:26:0;-1:-1:-1;;18526:163:0;;18592:17;18603:6;18592:17;;:::i;:::-;;;18526:163;;;18652:21;18667:6;18652:21;;:::i;:::-;;;18526:163;18329:371;;18371:3;;;;:::i;:::-;;;;18329:371;;;-1:-1:-1;18720:7:0;;;;-1:-1:-1;18062:687:0;-1:-1:-1;;;;;18062:687:0:o;14752:1090::-;14873:16;;14927:11;;14968:19;14978:9;14968:7;:19;:::i;:::-;:23;;14990:1;14968:23;:::i;:::-;14953:38;-1:-1:-1;15024:15:0;15002:19;14953:38;15078:19;;;;;;-1:-1:-1;;;15078:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15078:19:0;;15052:45;;15110:28;15157:4;15141:21;;;;;;-1:-1:-1;;;15141:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;15110:52:0;-1:-1:-1;15192:9:0;15175:382;15208:7;15203:1;:12;15175:382;;15237:22;15262:10;;;:7;:10;;;;;;;;;15237:35;;;;;;;;;-1:-1:-1;;;;;15237:35:0;;;;;-1:-1:-1;;;15237:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15293:22;;:71;;;15320:6;15330:1;15320:11;:43;;;;;15350:5;:13;;;-1:-1:-1;;;;;15335:28:0;:11;:28;;15320:43;15293:119;;;;15369:6;15379:1;15369:11;:42;;;;;15398:5;:13;;;-1:-1:-1;;;;;15384:27:0;:11;:27;15369:42;15289:168;;;15433:8;;;15289:168;15487:1;15473:6;15480:3;15473:11;;;;;;-1:-1:-1;;;15473:11:0;;;;;;;;;;;;;;:15;;;;;15520:5;15503:9;15513:3;15503:14;;;;;;-1:-1:-1;;;15503:14:0;;;;;;;;;;;;;;:22;;;;15540:5;;;;;:::i;:::-;;;;15175:382;;15217:3;;;;:::i;:::-;;;;15175:382;;;;15569:20;15606:3;15592:18;;;;;;-1:-1:-1;;;15592:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15592:18:0;;15569:41;;15623:25;15667:3;15651:20;;;;;;-1:-1:-1;;;15651:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;15623:48;;15689:9;15684:118;15708:3;15704:1;:7;15684:118;;;15742:6;15749:1;15742:9;;;;;;-1:-1:-1;;;15742:9:0;;;;;;;;;;;;;;;15733:3;15737:1;15733:6;;;;;;-1:-1:-1;;;15733:6:0;;;;;;;;;;;;;;:18;;;;;15778:9;15788:1;15778:12;;;;;;-1:-1:-1;;;15778:12:0;;;;;;;;;;;;;;;15766:6;15773:1;15766:9;;;;;;-1:-1:-1;;;15766:9:0;;;;;;;;;;;;;;:24;;;;15713:3;;;;;:::i;:::-;;;;15684:118;;;-1:-1:-1;15822:3:0;;;;-1:-1:-1;14752:1090:0;-1:-1:-1;;;;;;;;;14752:1090:0:o;10510:266::-;2156:7;2183:6;-1:-1:-1;;;;;2183:6:0;748:10;2330:23;2322:68;;;;-1:-1:-1;;;2322:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10619:25:0;::::1;10611:69;;;::::0;-1:-1:-1;;;10611:69:0;;9981:2:1;10611:69:0::1;::::0;::::1;9963:21:1::0;10020:2;10000:18;;;9993:30;10059:33;10039:18;;;10032:61;10110:18;;10611:69:0::1;9953:181:1::0;10611:69:0::1;10693:12;:26:::0;;-1:-1:-1;;;;;;10693:26:0::1;-1:-1:-1::0;;;;;10693:26:0;::::1;::::0;;::::1;::::0;;;10737:31:::1;::::0;7494:51:1;;;10737:31:0::1;::::0;7482:2:1;7467:18;10737:31:0::1;;;;;;;;10510:266:::0;:::o;12420:565::-;2156:7;2183:6;-1:-1:-1;;;;;2183:6:0;748:10;2330:23;2322:68;;;;-1:-1:-1;;;2322:68:0;;;;;;;:::i;:::-;9348:1:::1;9317:16:::0;;;:7:::1;:16;::::0;;;;:28:::1;;::::0;12567:7;;-1:-1:-1;;;;;9317:28:0::1;9309:77;;;;-1:-1:-1::0;;;9309:77:0::1;;;;;;;:::i;:::-;8186:5:::2;12600:14;-1:-1:-1::0;;;;;12600:37:0::2;;;12592:84;;;;-1:-1:-1::0;;;12592:84:0::2;;;;;;;:::i;:::-;12689:23;12715:16:::0;;;:7:::2;:16;::::0;;;;12752:15:::2;::::0;::::2;::::0;-1:-1:-1;;;12752:15:0;::::2;-1:-1:-1::0;;;;;12752:15:0::2;:20:::0;12744:58:::2;;;::::0;-1:-1:-1;;;12744:58:0;;14622:2:1;12744:58:0::2;::::0;::::2;14604:21:1::0;14661:2;14641:18;;;14634:30;-1:-1:-1;;;14680:18:1;;;14673:55;14745:18;;12744:58:0::2;14594:175:1::0;12744:58:0::2;-1:-1:-1::0;;;;;12863:39:0;;::::2;-1:-1:-1::0;;;12863:39:0;::::2;12815:37:::0;;::::2;12863:39:::0;;::::2;::::0;;12920:57:::2;::::0;;17203:25:1;;;17312:2;17297:18;;17290:43;;;;17349:18;;17342:43;12920:57:0::2;::::0;17191:2:1;17176:18;12920:57:0::2;17158:233:1::0;2761:148:0;2156:7;2183:6;-1:-1:-1;;;;;2183:6:0;748:10;2330:23;2322:68;;;;-1:-1:-1;;;2322:68:0;;;;;;;:::i;:::-;2868:1:::1;2852:6:::0;;2831:40:::1;::::0;-1:-1:-1;;;;;2852:6:0;;::::1;::::0;2831:40:::1;::::0;2868:1;;2831:40:::1;2899:1;2882:19:::0;;-1:-1:-1;;;;;;2882:19:0::1;::::0;;2761:148::o;9749:287::-;9909:12;;;9931:6;9953:31;;-1:-1:-1;;;9953:31:0;;9978:4;9953:31;;;7494:51:1;9826:7:0;;;;;;;;;;-1:-1:-1;;;;;9909:12:0;;;;9931:6;;;;;9953:16;;7467:18:1;;9953:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9986:12;;10000:17;;9887:141;;;;;;;;;;9749:287;;;;;:::o;18836:873::-;748:10;18991:15;18926:17;19062:9;19045:486;19078:7;19073:1;:12;19045:486;;19107:14;19124:16;;;:13;:16;;;;;;;;-1:-1:-1;;;;;19124:27:0;;;;;;;;;;19172:11;19168:60;;19204:8;;;19168:60;19248:10;;;;:7;:10;;;;;:26;-1:-1:-1;;;19248:26:0;;-1:-1:-1;;;;;19248:26:0;-1:-1:-1;;19244:276:0;;19310:17;19321:6;19310:17;;:::i;:::-;19348:10;;;;:7;:10;;;;;:22;;:41;;19310:17;;-1:-1:-1;19382:6:0;;19348:22;;:10;:41;;19382:6;;-1:-1:-1;;;;;19348:41:0;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;19348:41:0;;;;;-1:-1:-1;;;;;19348:41:0;;;;;;19415:34;19428:1;19431:9;19442:6;19415:34;;;;;;;16217:25:1;;;-1:-1:-1;;;;;16278:32:1;;;;16273:2;16258:18;;16251:60;16342:2;16327:18;;16320:34;16205:2;16190:18;;16172:188;19415:34:0;;;;;;;;19477:16;;;;:13;:16;;;;;;;;-1:-1:-1;;;;;19477:27:0;;;;;;;;;19470:34;19244:276;19045:486;;19087:3;;;;:::i;:::-;;;;19045:486;;;;19561:1;19551:7;:11;19543:69;;;;-1:-1:-1;;;19543:69:0;;14976:2:1;19543:69:0;;;14958:21:1;15015:2;14995:18;;;14988:30;15054:34;15034:18;;;15027:62;-1:-1:-1;;;15105:18:1;;;15098:43;15158:19;;19543:69:0;14948:235:1;19543:69:0;19646:7;19625:17;;:28;;;;;;;:::i;:::-;;;;-1:-1:-1;;19666:6:0;;:35;;-1:-1:-1;;;19666:35:0;;-1:-1:-1;;;;;8272:32:1;;;19666:35:0;;;8254:51:1;8321:18;;;8314:34;;;19666:6:0;;;;:15;;8227:18:1;;19666:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18836:873;;;;;:::o;10995:246::-;2156:7;2183:6;-1:-1:-1;;;;;2183:6:0;748:10;2330:23;2322:68;;;;-1:-1:-1;;;2322:68:0;;;;;;;:::i;:::-;11106:1:::1;11097:6;:10;11089:53;;;::::0;-1:-1:-1;;;11089:53:0;;13906:2:1;11089:53:0::1;::::0;::::1;13888:21:1::0;13945:2;13925:18;;;13918:30;13984:32;13964:18;;;13957:60;14034:18;;11089:53:0::1;13878:180:1::0;11089:53:0::1;11155:6;::::0;11171:12:::1;::::0;11155:37:::1;::::0;-1:-1:-1;;;11155:37:0;;-1:-1:-1;;;;;11171:12:0;;::::1;11155:37;::::0;::::1;8254:51:1::0;8321:18;;;8314:34;;;11155:6:0;::::1;::::0;:15:::1;::::0;8227:18:1;;11155:37:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11210:23:0::1;::::0;9743:25:1;;;11210:23:0::1;::::0;9731:2:1;9716:18;11210:23:0::1;9698:76:1::0;10094:275:0;2156:7;2183:6;-1:-1:-1;;;;;2183:6:0;748:10;2330:23;2322:68;;;;-1:-1:-1;;;2322:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10199:23:0;::::1;10191:67;;;::::0;-1:-1:-1;;;10191:67:0;;9981:2:1;10191:67:0::1;::::0;::::1;9963:21:1::0;10020:2;10000:18;;;9993:30;10059:33;10039:18;;;10032:61;10110:18;;10191:67:0::1;9953:181:1::0;10191:67:0::1;10271:10;:45:::0;;-1:-1:-1;;;;;;10271:45:0::1;-1:-1:-1::0;;;;;10271:45:0;::::1;::::0;;::::1;::::0;;;10334:27:::1;::::0;7494:51:1;;;10334:27:0::1;::::0;7482:2:1;7467:18;10334:27:0::1;7449:102:1::0;20034:176:0;20109:3;20133:9;20149:10;;;;;;;;;-1:-1:-1;;;;;20149:10:0;-1:-1:-1;;;;;20149:26:0;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;20130:47:0;;-1:-1:-1;;;;;20034:176:0;:::o;15900:2027::-;16010:23;16036:16;;;:7;:16;;;;;16092:15;;;;-1:-1:-1;;;;;16092:15:0;16073;:34;;;;:69;;-1:-1:-1;16129:13:0;;;;-1:-1:-1;;;16129:13:0;;-1:-1:-1;;;;;16129:13:0;16111:15;:31;16073:69;16065:115;;;;-1:-1:-1;;;16065:115:0;;11570:2:1;16065:115:0;;;11552:21:1;11609:2;11589:18;;;11582:30;11648:34;11628:18;;;11621:62;-1:-1:-1;;;11699:18:1;;;11692:31;11740:19;;16065:115:0;11542:223:1;16065:115:0;16214:16;;;;-1:-1:-1;;;;;16214:16:0;16201:9;:29;;16193:82;;;;-1:-1:-1;;;16193:82:0;;10754:2:1;16193:82:0;;;10736:21:1;10793:2;10773:18;;;10766:30;10832:34;10812:18;;;10805:62;-1:-1:-1;;;10883:18:1;;;10876:38;10931:19;;16193:82:0;10726:230:1;16193:82:0;16325:15;;;;16305:17;;;;16288:14;;16305:35;;-1:-1:-1;;;;;;;;16325:15:0;;;;;;16305:17;:35;:::i;:::-;-1:-1:-1;;;;;16288:52:0;;;16370:1;16361:6;:10;16353:61;;;;-1:-1:-1;;;16353:61:0;;11972:2:1;16353:61:0;;;11954:21:1;12011:2;11991:18;;;11984:30;12050:34;12030:18;;;12023:62;-1:-1:-1;;;12101:18:1;;;12094:36;12147:19;;16353:61:0;11944:228:1;16353:61:0;16449:10;;:28;;;-1:-1:-1;;;16449:28:0;;;;16430:12;;-1:-1:-1;;;;;16449:10:0;;:26;;:28;;;;;;;;;;;;;;:10;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;16539:19:0;;;;16427:50;;-1:-1:-1;16490:14:0;;-1:-1:-1;;;;16539:19:0;;-1:-1:-1;;;;;16539:19:0;16507:29;16427:50;16507:9;:29;:::i;:::-;:51;;;;:::i;:::-;16490:68;;16571:11;16647:6;16638;:15;16634:146;;;16699:19;;;;16729:8;;-1:-1:-1;;;16699:19:0;;-1:-1:-1;;;;;16699:19:0;16680:15;16689:6;16680;:15;:::i;:::-;16679:39;;;;:::i;:::-;:59;;;;:::i;:::-;16670:68;;16762:6;16753:15;;16634:146;16845:17;;16811:6;;:31;;-1:-1:-1;;;16811:31:0;;16836:4;16811:31;;;7494:51:1;-1:-1:-1;;;;;16811:6:0;;;;:16;;7467:18:1;;16811:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:51;;;;:::i;:::-;16800:6;:63;;16792:109;;;;-1:-1:-1;;;16792:109:0;;12740:2:1;16792:109:0;;;12722:21:1;12779:2;12759:18;;;12752:30;12818:34;12798:18;;;12791:62;-1:-1:-1;;;12869:18:1;;;12862:31;12910:19;;16792:109:0;12712:223:1;16792:109:0;16963:10;;16959:81;;16990:38;;748:10;;16990:38;;;;;17021:6;;16990:38;;;;17021:6;748:10;16990:38;;;;;;;;;;;;;;;;;;;;;16959:81;17104:12;;-1:-1:-1;;;;;17104:12:0;17096:50;17127:18;17139:6;17127:9;:18;:::i;:::-;17096:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17245:20:0;;17219:14;;8186:5;;17236:29;;-1:-1:-1;;;;;17245:20:0;17236:6;:29;:::i;:::-;:51;;;;:::i;:::-;17337:6;;17219:68;;-1:-1:-1;;;;;;17337:6:0;:15;748:10;17367:15;17376:6;17367;:15;:::i;:::-;17337:46;;-1:-1:-1;;;;;;17337:46:0;;;;;;;-1:-1:-1;;;;;8272:32:1;;;17337:46:0;;;8254:51:1;8321:18;;;8314:34;8227:18;;17337:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;17400:10:0;;17396:186;;17448:6;17427:17;;:27;;;;;;;:::i;:::-;;;;-1:-1:-1;;17471:22:0;;;;:13;:22;;;;;;;;748:10;17471:36;;;;;;;:46;;17511:6;;17471:22;:46;;17511:6;;17471:46;:::i;:::-;;;;-1:-1:-1;;17534:17:0;;;:36;;17563:6;;17534:17;;;:36;;17563:6;;-1:-1:-1;;;;;17534:36:0;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;17534:36:0;;;;;-1:-1:-1;;;;;17534:36:0;;;;;;17396:186;17621:6;17594:5;:15;;;:34;;;;;;;;;;-1:-1:-1;;;;;17594:34:0;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;17594:34:0;;;;;-1:-1:-1;;;;;17594:34:0;;;;;;17676:33;17712:14;17727:12;17712:28;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;17778:18:0;17790:6;17778:9;:18;:::i;:::-;17751:46;;:8;;:15;;:46;;;;-1:-1:-1;;;;;17751:46:0;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;17751:46:0;;;;;;;;;;;;;;;17808:18;;-1:-1:-1;;;17808:18:0;;;;-1:-1:-1;17808:18:0;:16;:18;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;17808:18:0;;;;;-1:-1:-1;;;;;17808:18:0;;;;;;;17844:75;17852:7;17861:12;748:10;668:98;;17861:12;17844:75;;;16678:25:1;;;-1:-1:-1;;;;;16739:32:1;;;16734:2;16719:18;;16712:60;17875:9:0;16788:18:1;;;16781:34;16846:2;16831:18;;16824:34;;;16889:3;16874:19;;16867:35;;;16759:3;16918:19;;16911:35;;;16977:3;16962:19;;16955:35;;;16665:3;16650:19;17844:75:0;16632:364:1;13049:739:0;2156:7;2183:6;-1:-1:-1;;;;;2183:6:0;748:10;2330:23;2322:68;;;;-1:-1:-1;;;2322:68:0;;;;;;;:::i;:::-;9348:1:::1;9317:16:::0;;;:7:::1;:16;::::0;;;;:28:::1;;::::0;13211:7;;-1:-1:-1;;;;;9317:28:0::1;9309:77;;;;-1:-1:-1::0;;;9309:77:0::1;;;;;;;:::i;:::-;13236:23:::2;13262:16:::0;;;:7:::2;:16;::::0;;;;-1:-1:-1;;;;;13295:15:0;::::2;::::0;13291:77:::2;;13327:16;::::0;::::2;:29:::0;;-1:-1:-1;;;;;;13327:29:0::2;-1:-1:-1::0;;;;;13327:29:0;::::2;;::::0;;13291:77:::2;-1:-1:-1::0;;;;;13384:16:0;::::2;::::0;13380:80:::2;;13417:17;::::0;::::2;:31:::0;;-1:-1:-1;;;;;;13417:31:0::2;-1:-1:-1::0;;;;;13417:31:0;::::2;;::::0;;13380:80:::2;-1:-1:-1::0;;;;;13476:18:0;::::2;::::0;13472:86:::2;;13511:19;::::0;::::2;:35:::0;;-1:-1:-1;;;;;13511:35:0;;::::2;-1:-1:-1::0;;;13511:35:0::2;::::0;::::2;;::::0;;13472:86:::2;-1:-1:-1::0;;;;;13574:16:0;::::2;::::0;::::2;::::0;:38:::2;;-1:-1:-1::0;;;;;;13594:18:0;::::2;::::0;::::2;13574:38;13570:129;;;13637:15;::::0;::::2;::::0;-1:-1:-1;;;13637:15:0;::::2;-1:-1:-1::0;;;;;13637:15:0::2;:20:::0;13629:58:::2;;;::::0;-1:-1:-1;;;13629:58:0;;14622:2:1;13629:58:0::2;::::0;::::2;14604:21:1::0;14661:2;14641:18;;;14634:30;-1:-1:-1;;;14680:18:1;;;14673:55;14745:18;;13629:58:0::2;14594:175:1::0;13629:58:0::2;13716:64;::::0;;17627:25:1;;;-1:-1:-1;;;;;17741:15:1;;;17736:2;17721:18;;17714:43;17793:15;;;17773:18;;;17766:43;17845:15;;17840:2;17825:18;;17818:43;13716:64:0;;::::2;::::0;;;;17614:3:1;13716:64:0;;::::2;9397:1;2401::::1;13049:739:::0;;;;:::o;3064:244::-;2156:7;2183:6;-1:-1:-1;;;;;2183:6:0;748:10;2330:23;2322:68;;;;-1:-1:-1;;;2322:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3153:22:0;::::1;3145:73;;;::::0;-1:-1:-1;;;3145:73:0;;11163:2:1;3145:73:0::1;::::0;::::1;11145:21:1::0;11202:2;11182:18;;;11175:30;11241:34;11221:18;;;11214:62;-1:-1:-1;;;11292:18:1;;;11285:36;11338:19;;3145:73:0::1;11135:228:1::0;3145:73:0::1;3255:6;::::0;;3234:38:::1;::::0;-1:-1:-1;;;;;3234:38:0;;::::1;::::0;3255:6;::::1;::::0;3234:38:::1;::::0;::::1;3283:6;:17:::0;;-1:-1:-1;;;;;;3283:17:0::1;-1:-1:-1::0;;;;;3283:17:0;;;::::1;::::0;;;::::1;::::0;;3064:244::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:2;;177:1;174;167:12;192:739;;288:3;281:4;273:6;269:17;265:27;255:2;;310:5;303;296:20;255:2;350:6;337:20;376:18;413:2;409;406:10;403:2;;;419:18;;:::i;:::-;494:2;488:9;462:2;548:13;;-1:-1:-1;;544:22:1;;;568:2;540:31;536:40;524:53;;;592:18;;;612:22;;;589:46;586:2;;;638:18;;:::i;:::-;678:10;674:2;667:22;713:2;705:6;698:18;759:3;752:4;747:2;739:6;735:15;731:26;728:35;725:2;;;780:5;773;766:20;725:2;848;841:4;833:6;829:17;822:4;814:6;810:17;797:54;871:15;;;888:4;867:26;860:41;;;;-1:-1:-1;875:6:1;245:686;-1:-1:-1;;;245:686:1:o;936:188::-;1004:20;;-1:-1:-1;;;;;1053:46:1;;1043:57;;1033:2;;1114:1;1111;1104:12;1129:179;1207:13;;1260:22;1249:34;;1239:45;;1229:2;;1298:1;1295;1288:12;1313:196;;1425:2;1413:9;1404:7;1400:23;1396:32;1393:2;;;1446:6;1438;1431:22;1393:2;1474:29;1493:9;1474:29;:::i;:::-;1464:39;1383:126;-1:-1:-1;;;1383:126:1:o;1514:332::-;;;;1660:2;1648:9;1639:7;1635:23;1631:32;1628:2;;;1681:6;1673;1666:22;1628:2;1709:29;1728:9;1709:29;:::i;:::-;1699:39;1785:2;1770:18;;1757:32;;-1:-1:-1;1836:2:1;1821:18;;;1808:32;;1618:228;-1:-1:-1;;;1618:228:1:o;1851:297::-;;1971:2;1959:9;1950:7;1946:23;1942:32;1939:2;;;1992:6;1984;1977:22;1939:2;2029:9;2023:16;2082:5;2075:13;2068:21;2061:5;2058:32;2048:2;;2109:6;2101;2094:22;2153:342;;2275:2;2263:9;2254:7;2250:23;2246:32;2243:2;;;2296:6;2288;2281:22;2243:2;2341:9;2328:23;2374:18;2366:6;2363:30;2360:2;;;2411:6;2403;2396:22;2360:2;2439:50;2481:7;2472:6;2461:9;2457:22;2439:50;:::i;:::-;2429:60;2233:262;-1:-1:-1;;;;2233:262:1:o;2500:644::-;;;;;;;;2714:3;2702:9;2693:7;2689:23;2685:33;2682:2;;;2736:6;2728;2721:22;2682:2;2764:29;2783:9;2764:29;:::i;:::-;2754:39;;2812:38;2846:2;2835:9;2831:18;2812:38;:::i;:::-;2802:48;;2869:38;2903:2;2892:9;2888:18;2869:38;:::i;:::-;2859:48;;2926:38;2960:2;2949:9;2945:18;2926:38;:::i;:::-;2916:48;;2983:39;3017:3;3006:9;3002:19;2983:39;:::i;:::-;2973:49;;3041:39;3075:3;3064:9;3060:19;3041:39;:::i;:::-;3031:49;;3099:39;3133:3;3122:9;3118:19;3099:39;:::i;:::-;3089:49;;2672:472;;;;;;;;;;:::o;3149:190::-;;3261:2;3249:9;3240:7;3236:23;3232:32;3229:2;;;3282:6;3274;3267:22;3229:2;-1:-1:-1;3310:23:1;;3219:120;-1:-1:-1;3219:120:1:o;3344:194::-;;3467:2;3455:9;3446:7;3442:23;3438:32;3435:2;;;3488:6;3480;3473:22;3435:2;-1:-1:-1;3516:16:1;;3425:113;-1:-1:-1;3425:113:1:o;3543:410::-;;;3682:2;3670:9;3661:7;3657:23;3653:32;3650:2;;;3703:6;3695;3688:22;3650:2;3744:9;3731:23;3721:33;;3805:2;3794:9;3790:18;3777:32;3832:18;3824:6;3821:30;3818:2;;;3869:6;3861;3854:22;3818:2;3897:50;3939:7;3930:6;3919:9;3915:22;3897:50;:::i;:::-;3887:60;;;3640:313;;;;;:::o;3958:338::-;;;;4104:2;4092:9;4083:7;4079:23;4075:32;4072:2;;;4125:6;4117;4110:22;4072:2;4166:9;4153:23;4143:33;;4195:38;4229:2;4218:9;4214:18;4195:38;:::i;:::-;4185:48;;4252:38;4286:2;4275:9;4271:18;4252:38;:::i;:::-;4242:48;;4062:234;;;;;:::o;4301:413::-;;;;;4464:3;4452:9;4443:7;4439:23;4435:33;4432:2;;;4486:6;4478;4471:22;4432:2;4527:9;4514:23;4504:33;;4556:38;4590:2;4579:9;4575:18;4556:38;:::i;:::-;4546:48;;4613:38;4647:2;4636:9;4632:18;4613:38;:::i;:::-;4603:48;;4670:38;4704:2;4693:9;4689:18;4670:38;:::i;:::-;4660:48;;4422:292;;;;;;;:::o;4719:258::-;;;4848:2;4836:9;4827:7;4823:23;4819:32;4816:2;;;4869:6;4861;4854:22;4816:2;-1:-1:-1;;4897:23:1;;;4967:2;4952:18;;;4939:32;;-1:-1:-1;4806:171:1:o;4982:326::-;;;;5128:2;5116:9;5107:7;5103:23;5099:32;5096:2;;;5149:6;5141;5134:22;5096:2;-1:-1:-1;;5177:23:1;;;5247:2;5232:18;;5219:32;;-1:-1:-1;5298:2:1;5283:18;;;5270:32;;5086:222;-1:-1:-1;5086:222:1:o;5313:483::-;;;;;;5501:3;5489:9;5480:7;5476:23;5472:33;5469:2;;;5523:6;5515;5508:22;5469:2;5551:39;5580:9;5551:39;:::i;:::-;5541:49;;5630:2;5619:9;5615:18;5609:25;5599:35;;5674:2;5663:9;5659:18;5653:25;5643:35;;5718:2;5707:9;5703:18;5697:25;5687:35;;5741:49;5785:3;5774:9;5770:19;5741:49;:::i;:::-;5731:59;;5459:337;;;;;;;;:::o;5801:981::-;-1:-1:-1;;;;;5947:2:1;5939:5;5933:12;5929:21;5924:3;5917:34;6012:2;6004:4;5997:5;5993:16;5987:23;5983:32;5976:4;5971:3;5967:14;5960:56;6077:2;6069:4;6062:5;6058:16;6052:23;6048:32;6041:4;6036:3;6032:14;6025:56;;6127:4;6120:5;6116:16;6110:23;6142:48;6184:4;6179:3;6175:14;6161:12;-1:-1:-1;;;;;6853:46:1;6841:59;;6831:75;6142:48;;6238:4;6231:5;6227:16;6221:23;6253:50;6297:4;6292:3;6288:14;6272;-1:-1:-1;;;;;6853:46:1;6841:59;;6831:75;6253:50;;6351:4;6344:5;6340:16;6334:23;6366:50;6410:4;6405:3;6401:14;6385;-1:-1:-1;;;;;6853:46:1;6841:59;;6831:75;6366:50;;6464:4;6457:5;6453:16;6447:23;6479:50;6523:4;6518:3;6514:14;6498;-1:-1:-1;;;;;6853:46:1;6841:59;;6831:75;6479:50;;6577:4;6570:5;6566:16;6560:23;6592:50;6636:4;6631:3;6627:14;6611;-1:-1:-1;;;;;6853:46:1;6841:59;;6831:75;6592:50;-1:-1:-1;6661:6:1;6704:14;;;6698:21;-1:-1:-1;;;;;6853:46:1;6763:12;;6841:59;5854:928::o;6911:432::-;;7080:6;7074:13;7105:3;7117:129;7131:6;7128:1;7125:13;7117:129;;;7229:4;7213:14;;;7209:25;;7203:32;7190:11;;;7183:53;7146:12;7117:129;;;7264:6;7261:1;7258:13;7255:2;;;7299:3;7290:6;7285:3;7281:16;7274:29;7255:2;-1:-1:-1;7321:16:1;;;;;7050:293;-1:-1:-1;;7050:293:1:o;8359:1235::-;8679:2;8691:21;;;8761:13;;8664:18;;;8783:22;;;8359:1235;;8858:4;;8836:2;8821:18;;;8885:15;;;8359:1235;8931:169;8945:6;8942:1;8939:13;8931:169;;;9006:13;;8994:26;;9040:12;;;;9075:15;;;;8967:1;8960:9;8931:169;;;-1:-1:-1;;;9136:19:1;;;9116:18;;;9109:47;9206:13;;9228:21;;;9304:15;;;;9267:12;;;9339:4;9352:214;9368:8;9363:3;9360:17;9352:214;;;9423:51;9468:5;9457:8;9451:15;9423:51;:::i;:::-;9539:17;;;;9507:6;9496:18;;;;;9396:1;9387:11;9352:214;;;-1:-1:-1;9583:5:1;;8640:954;-1:-1:-1;;;;;;;8640:954:1:o;12177:356::-;12379:2;12361:21;;;12398:18;;;12391:30;12457:34;12452:2;12437:18;;12430:62;12524:2;12509:18;;12351:182::o;12940:356::-;13142:2;13124:21;;;13161:18;;;13154:30;13220:34;13215:2;13200:18;;13193:62;13287:2;13272:18;;13114:182::o;13301:398::-;13503:2;13485:21;;;13542:2;13522:18;;;13515:30;13581:34;13576:2;13561:18;;13554:62;-1:-1:-1;;;13647:2:1;13632:18;;13625:32;13689:3;13674:19;;13475:224::o;15188:251::-;15374:3;15359:19;;15387:46;15363:9;15415:6;15387:46;:::i;:::-;15341:98;;;;:::o;18925:253::-;;-1:-1:-1;;;;;19054:2:1;19051:1;19047:10;19084:2;19081:1;19077:10;19115:3;19111:2;19107:12;19102:3;19099:21;19096:2;;;19123:18;;:::i;:::-;19159:13;;18973:205;-1:-1:-1;;;;18973:205:1:o;19183:128::-;;19254:1;19250:6;19247:1;19244:13;19241:2;;;19260:18;;:::i;:::-;-1:-1:-1;19296:9:1;;19231:80::o;19316:217::-;;19382:1;19372:2;;-1:-1:-1;;;19407:31:1;;19461:4;19458:1;19451:15;19489:4;19414:1;19479:15;19372:2;-1:-1:-1;19518:9:1;;19362:171::o;19538:168::-;;19644:1;19640;19636:6;19632:14;19629:1;19626:21;19621:1;19614:9;19607:17;19603:45;19600:2;;;19651:18;;:::i;:::-;-1:-1:-1;19691:9:1;;19590:116::o;19711:246::-;;-1:-1:-1;;;;;19864:10:1;;;;19834;;19886:12;;;19883:2;;;19901:18;;:::i;:::-;19938:13;;19760:197;-1:-1:-1;;;19760:197:1:o;19962:125::-;;20030:1;20027;20024:8;20021:2;;;20035:18;;:::i;:::-;-1:-1:-1;20072:9:1;;20011:76::o;20092:226::-;;-1:-1:-1;;;;;20228:2:1;20221:5;20217:14;20255:2;20246:7;20243:15;20240:2;;;20261:18;;:::i;:::-;20310:1;20297:15;;20139:179;-1:-1:-1;;;20139:179:1:o;20323:135::-;;-1:-1:-1;;20383:17:1;;20380:2;;;20403:18;;:::i;:::-;-1:-1:-1;20450:1:1;20439:13;;20370:88::o;20463:127::-;20524:10;20519:3;20515:20;20512:1;20505:31;20555:4;20552:1;20545:15;20579:4;20576:1;20569:15;20595:127;20656:10;20651:3;20647:20;20644:1;20637:31;20687:4;20684:1;20677:15;20711:4;20708:1;20701:15
Swarm Source
ipfs://b65c2928a9fead629287e9c9ac5fa84053cfd6534599bef43c5bd50dad79a85f
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.