Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 146 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Withdraw | 7521045 | 2519 days ago | IN | 0 ETH | 0.00171698 | ||||
| Withdraw | 7521014 | 2519 days ago | IN | 0 ETH | 0.00171698 | ||||
| Withdraw | 7404527 | 2537 days ago | IN | 0 ETH | 0.00079636 | ||||
| Withdraw | 7404192 | 2537 days ago | IN | 0 ETH | 0.00026545 | ||||
| Withdraw | 7404055 | 2537 days ago | IN | 0 ETH | 0.00026545 | ||||
| Withdraw | 7011540 | 2612 days ago | IN | 0 ETH | 0.00032759 | ||||
| Withdraw | 7005454 | 2613 days ago | IN | 0 ETH | 0.00044521 | ||||
| Withdraw | 7005440 | 2613 days ago | IN | 0 ETH | 0.00067332 | ||||
| Withdraw | 6943547 | 2623 days ago | IN | 0 ETH | 0.00044521 | ||||
| Withdraw | 6937793 | 2624 days ago | IN | 0 ETH | 0.00067803 | ||||
| Withdraw | 6932829 | 2625 days ago | IN | 0 ETH | 0.00058521 | ||||
| Withdraw | 6932728 | 2625 days ago | IN | 0 ETH | 0.00111869 | ||||
| Withdraw | 6932715 | 2625 days ago | IN | 0 ETH | 0.00079802 | ||||
| Withdraw | 6932634 | 2625 days ago | IN | 0 ETH | 0.00061528 | ||||
| Withdraw | 6932553 | 2625 days ago | IN | 0 ETH | 0.00097885 | ||||
| Withdraw | 6932499 | 2625 days ago | IN | 0 ETH | 0.00119735 | ||||
| Withdraw | 6932335 | 2625 days ago | IN | 0 ETH | 0.00079802 | ||||
| Withdraw | 6932315 | 2625 days ago | IN | 0 ETH | 0.0009469 | ||||
| Withdraw | 6932299 | 2625 days ago | IN | 0 ETH | 0.0007776 | ||||
| Withdraw | 6932282 | 2625 days ago | IN | 0 ETH | 0.00081842 | ||||
| Withdraw | 6932188 | 2625 days ago | IN | 0 ETH | 0.00052339 | ||||
| Withdraw | 6916838 | 2628 days ago | IN | 0 ETH | 0.00064694 | ||||
| Withdraw | 6844161 | 2640 days ago | IN | 0 ETH | 0.00143933 | ||||
| Deposit | 6726541 | 2659 days ago | IN | 2 ETH | 0.00118816 | ||||
| Deposit | 6690482 | 2665 days ago | IN | 0.15 ETH | 0.0013918 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 24180027 | 53 days ago | 3.7804555 ETH | ||||
| Transfer | 24180027 | 53 days ago | 0.02805551 ETH | ||||
| Deposit | 24180027 | 53 days ago | 3.74302524 ETH | ||||
| Transfer | 24171330 | 54 days ago | 3.7804555 ETH | ||||
| Deposit | 24171330 | 54 days ago | 3.74302524 ETH | ||||
| Transfer | 24171329 | 54 days ago | 3.7804555 ETH | ||||
| Deposit | 24171329 | 54 days ago | 3.74302524 ETH | ||||
| Transfer | 24171329 | 54 days ago | 3.7804555 ETH | ||||
| Deposit | 24171329 | 54 days ago | 3.74302524 ETH | ||||
| Transfer | 24171329 | 54 days ago | 3.7804555 ETH | ||||
| Deposit | 24171329 | 54 days ago | 3.74302524 ETH | ||||
| Transfer | 24171329 | 54 days ago | 3.7804555 ETH | ||||
| Deposit | 24171329 | 54 days ago | 3.74302524 ETH | ||||
| Transfer | 24171329 | 54 days ago | 3.7804555 ETH | ||||
| Deposit | 24171329 | 54 days ago | 3.74302524 ETH | ||||
| Transfer | 24171329 | 54 days ago | 3.7804555 ETH | ||||
| Deposit | 24171329 | 54 days ago | 3.74302524 ETH | ||||
| Transfer | 24171329 | 54 days ago | 3.7804555 ETH | ||||
| Deposit | 24171329 | 54 days ago | 3.74302524 ETH | ||||
| Transfer | 24171329 | 54 days ago | 3.7804555 ETH | ||||
| Deposit | 24171329 | 54 days ago | 3.74302524 ETH | ||||
| Transfer | 24171329 | 54 days ago | 3.7804555 ETH | ||||
| Deposit | 24171329 | 54 days ago | 3.74302524 ETH | ||||
| Transfer | 24171329 | 54 days ago | 3.7804555 ETH | ||||
| Deposit | 24171329 | 54 days ago | 3.74302524 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
MUSystem
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2018-08-23
*/
// MUSystem is based of the mathematical algorithm created
// by the Mavrodi brothers - Sergey and Vyacheslav.
// The solidity code was written by the enthusiast and devoted MMM participant Andrew from Russia.
// According to these rules MMM worked in Russia in the nineties.
// Today you help someone — Tomorrow you will be helped out!
// Mutual Uniting System (MUSystem) email: mutualunitingsystem@gmail.com
// http:// Musystem.online
// Hello from Russia with love! ;) Привет из России! ;)
// "MMM IS A FINANCIAL NUCLEAR WEAPON.
// They say Baba Vanga predicted, “Pyramid from Russia will travel the world.”
// When Sergey Mavrodi passed away, many people thought this prediction
// wasn't going to come true. What if it's just started to materialize?"
// Financial apocalypse is inevitable! Together we can do a lot!
// Thank you Sergey Mavrodi. You've opened my eyes.
pragma solidity ^0.4.21;
library SafeMath {
function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
if (a == 0) {
return 0;
}
c = a * b;
assert(c / a == b);
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256 c) {
c = a / b;
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
assert(b <= a);
return a - b;
}
function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
c = a + b;
assert(c >= a);
return c;
}
}
contract MUSystem {
using SafeMath for uint;
string public constant name = "Mutual Uniting System";
string public constant symbol = "MUS";
uint public constant decimals = 15;
uint public totalSupply;
address private creatorOwner;
address private userAddr;
mapping (address => uint) balances;
struct UserWhoBuy {
uint UserAmt;
uint UserTokenObtain;
uint UserBuyDate;
uint UserBuyFirstDate;
uint UserBuyTokenPackNum;
uint UserFirstAmt;
uint UserContinued;
uint UserTotalAmtDepositCurrentPack;
}
mapping (address => UserWhoBuy) usersWhoBuy;
address[] private userWhoBuyDatas;
struct UserWhoSell {
uint UserAmtWithdrawal;
uint UserTokenSell;
uint UserSellDate;
uint UserSellTokenPackNum;
uint UserTotalAmtWithdrawal;
uint UserTotalAmtWithdrawalCurrentPack;
}
mapping (address => UserWhoSell) usersWhoSell;
address[] private userWhoSellDatas;
// The basic parameters of MUSystem that determine
// the participant's income per package,
// the initial price of one token,
// the number of tokens in pack, Disparity mode percentage
// and another internal constants.
uint private CoMargin = 101;
uint private CoOverlap = 110;
uint private Disparity = 70;
bool private DisparityMode;
uint private RestartModeDate;
bool private RestartMode;
uint private PackVolume = 50;
uint private FirstPackTokenPriceSellout = 50;
uint private BigAmt = 250 * 1 ether;
bool private feeTransfered;
uint private PrevPrevPackTokenPriceSellout;
uint private PrevPackTokenPriceSellout;
uint private PrevPackTokenPriceBuyout;
uint private PrevPackDelta;
uint private PrevPackCost;
uint private PrevPackTotalAmt;
uint private CurrentPackYield;
uint private CurrentPackDelta;
uint private CurrentPackCost;
uint private CurrentPackTotalToPay;
uint private CurrentPackTotalAmt;
uint private CurrentPackRestAmt;
uint private CurrentPackFee;
uint private CurrentPackTotalToPayDisparity;
uint private CurrentPackNumber;
uint private CurrentPackStartDate;
uint private CurrentPackTokenPriceSellout;
uint private CurrentPackTokenPriceBuyout;
uint private CurrentPackTokenAvailablePercent;
uint private NextPackTokenPriceBuyout;
uint private NextPackYield;
uint private NextPackDelta;
uint private userContinued;
uint private userAmt;
uint private userFirstAmt;
uint private userTotalAmtDepositCurrentPack;
uint private userBuyFirstDate;
uint private userTotalAmtWithdrawal;
uint private userTotalAmtWithdrawalCurrentPack;
uint private UserTokensReturn;
bool private returnTokenInCurrentPack;
uint private withdrawAmtToCurrentPack;
uint private withdrawAmtAboveCurrentPack;
uint private UserTokensReturnToCurrentPack;
uint private UserTokensReturnAboveCurrentPack;
uint private bonus;
uint private userAmtOverloadToSend;
// MUSystem is launched at the time of the contract deployment.
// It all starts with the first package.
// Settings are applied and the number of tokens is released.
constructor () public payable {
creatorOwner = msg.sender;
PackVolume = (10 ** decimals).mul(PackVolume);
DisparityMode = false;
RestartMode = false;
CurrentPackNumber = 1;
CurrentPackStartDate = now;
mint(PackVolume);
packSettings(CurrentPackNumber);
}
// Write down participants who make deposits.
function addUserWhoBuy (
address _address,
uint _UserAmt,
uint _UserTokenObtain,
uint _UserBuyDate,
uint _UserBuyFirstDate,
uint _UserBuyTokenPackNum,
uint _UserFirstAmt,
uint _UserContinued,
uint _UserTotalAmtDepositCurrentPack) internal {
UserWhoBuy storage userWhoBuy = usersWhoBuy[_address];
userWhoBuy.UserAmt = _UserAmt;
userWhoBuy.UserTokenObtain = _UserTokenObtain;
userWhoBuy.UserBuyDate = _UserBuyDate;
userWhoBuy.UserBuyFirstDate = _UserBuyFirstDate;
userWhoBuy.UserBuyTokenPackNum = _UserBuyTokenPackNum;
userWhoBuy.UserFirstAmt = _UserFirstAmt;
userWhoBuy.UserContinued = _UserContinued;
userWhoBuy.UserTotalAmtDepositCurrentPack = _UserTotalAmtDepositCurrentPack;
userWhoBuyDatas.push(_address) -1;
}
// Write down also participants who make withdrawals.
function addUserWhoSell (
address _address,
uint _UserAmtWithdrawal,
uint _UserTokenSell,
uint _UserSellDate,
uint _UserSellTokenPackNum,
uint _UserTotalAmtWithdrawal,
uint _UserTotalAmtWithdrawalCurrentPack) internal {
UserWhoSell storage userWhoSell = usersWhoSell[_address];
userWhoSell.UserAmtWithdrawal = _UserAmtWithdrawal;
userWhoSell.UserTokenSell = _UserTokenSell;
userWhoSell.UserSellDate = _UserSellDate;
userWhoSell.UserSellTokenPackNum = _UserSellTokenPackNum;
userWhoSell.UserTotalAmtWithdrawal = _UserTotalAmtWithdrawal;
userWhoSell.UserTotalAmtWithdrawalCurrentPack = _UserTotalAmtWithdrawalCurrentPack;
userWhoSellDatas.push(_address) -1;
}
// Calculation of pack's parameters "on the fly".
// Course (price) of tokens is growing by a special technique,
// which designed increases with the passage of time the size
// of a possible return donations for the participants,
// subject to a maximum system stability.
function packSettings (uint _currentPackNumber) internal {
CurrentPackNumber = _currentPackNumber;
if(CurrentPackNumber == 1){
PrevPackDelta = 0;
PrevPackCost = 0;
PrevPackTotalAmt = 0;
CurrentPackStartDate = now;
CurrentPackTokenPriceSellout = FirstPackTokenPriceSellout;
CurrentPackTokenPriceBuyout = FirstPackTokenPriceSellout;
CurrentPackCost = PackVolume.mul(CurrentPackTokenPriceSellout);
CurrentPackTotalToPay = 0;
CurrentPackTotalToPayDisparity = 0;
CurrentPackYield = 0;
CurrentPackDelta = 0;
CurrentPackTotalAmt = CurrentPackCost;
CurrentPackFee = 0;
CurrentPackRestAmt = CurrentPackCost.sub(CurrentPackTotalToPay);
if (FirstPackTokenPriceSellout == 50){NextPackTokenPriceBuyout = 60;}else{NextPackTokenPriceBuyout = FirstPackTokenPriceSellout+5;}
}
if(CurrentPackNumber == 2){
PrevPrevPackTokenPriceSellout = 0;
PrevPackTokenPriceSellout = CurrentPackTokenPriceSellout;
PrevPackTokenPriceBuyout = CurrentPackTokenPriceBuyout;
PrevPackDelta = CurrentPackDelta;
PrevPackCost = CurrentPackCost;
PrevPackTotalAmt = CurrentPackTotalAmt;
CurrentPackYield = 0;
CurrentPackDelta = 0;
NextPackTokenPriceBuyout = PrevPackTokenPriceSellout.mul(CoOverlap).div(100);
NextPackYield = NextPackTokenPriceBuyout.sub(PrevPackTokenPriceSellout);
NextPackDelta = NextPackYield;
CurrentPackTokenPriceSellout = NextPackTokenPriceBuyout.add(NextPackDelta);
CurrentPackTokenPriceBuyout = CurrentPackTokenPriceSellout;
CurrentPackCost = PackVolume.mul(CurrentPackTokenPriceSellout);
CurrentPackTotalToPay = 0;
CurrentPackTotalAmt = CurrentPackCost.add(PrevPackTotalAmt);
CurrentPackFee = 0;
CurrentPackTotalToPayDisparity = PrevPackCost.mul(Disparity).div(100);
CurrentPackRestAmt = CurrentPackCost.sub(CurrentPackTotalToPay);
}
if(CurrentPackNumber > 2){
PrevPackTokenPriceSellout = CurrentPackTokenPriceSellout;
PrevPackTokenPriceBuyout = CurrentPackTokenPriceBuyout;
PrevPackDelta = CurrentPackDelta;
PrevPackCost = CurrentPackCost;
PrevPackTotalAmt = CurrentPackTotalAmt;
CurrentPackYield = NextPackYield;
CurrentPackDelta = NextPackDelta;
CurrentPackTokenPriceBuyout = NextPackTokenPriceBuyout;
NextPackTokenPriceBuyout = PrevPackTokenPriceSellout.mul(CoOverlap);
if(NextPackTokenPriceBuyout<=100){
NextPackTokenPriceBuyout=PrevPackTokenPriceSellout.mul(CoOverlap).div(100);
}
if(NextPackTokenPriceBuyout>100){
NextPackTokenPriceBuyout=NextPackTokenPriceBuyout*10**3;
NextPackTokenPriceBuyout=((NextPackTokenPriceBuyout/10000)+5)/10;
}
NextPackYield = NextPackTokenPriceBuyout.sub(PrevPackTokenPriceSellout);
NextPackDelta = NextPackYield.mul(CoMargin);
if(NextPackDelta <= 100){
NextPackDelta = CurrentPackDelta.add(NextPackYield.mul(CoMargin).div(100));
}
if(NextPackDelta > 100){
NextPackDelta = NextPackDelta*10**3;
NextPackDelta = ((NextPackDelta/10000)+5)/10;
NextPackDelta = CurrentPackDelta.add(NextPackDelta);
}
CurrentPackTokenPriceSellout = NextPackTokenPriceBuyout.add(NextPackDelta);
CurrentPackCost = PackVolume.mul(CurrentPackTokenPriceSellout);
CurrentPackTotalToPay = PackVolume.mul(CurrentPackTokenPriceBuyout);
CurrentPackTotalToPayDisparity = PrevPackCost.mul(Disparity).div(100);
CurrentPackRestAmt = CurrentPackCost.sub(CurrentPackTotalToPay);
CurrentPackTotalAmt = CurrentPackRestAmt.add(PrevPackTotalAmt);
CurrentPackFee = PrevPackTotalAmt.sub(CurrentPackTotalToPay).sub(CurrentPackTotalToPayDisparity);
}
CurrentPackTokenAvailablePercent = balances[address(this)].mul(100).div(PackVolume);
emit NextPack(CurrentPackTokenPriceSellout, CurrentPackTokenPriceBuyout);
}
// The data of the current package can be obtained
// by performing this function.
// Available tokens - the remaining number of available
// tokens in the current package.
// At onetime you can not buy more than this number of tokens.
// Available tokens in percentage - the percentage of
// remaining available tokens in the current package.
// Available amount to deposit in wei - the maximum amount
// that can be deposited in the current package.
// Attempt to exceed this amount too much
// (i.e., an attempt to buy more tokens than the Available tokens
// in the current package) will be rejected.
// In case of a small excess of the amount, the unused leftover
// will return to your Ethereum account.
// Current pack token price sellout - the price at which
// tokens are bought by a participant.
// Current pack token price buyout - the price at which
// tokens are sold by a participant (are bought by the system).
function aboutCurrentPack () public constant returns (uint availableTokens, uint availableTokensInPercentage, uint availableAmountToDepositInWei, uint tokenPriceSellout, uint tokenPriceBuyout){
uint _availableTokens = balances[address(this)];
uint _availableAmountToDepositInWei = _availableTokens.mul(CurrentPackTokenPriceSellout);
return (_availableTokens, CurrentPackTokenAvailablePercent, _availableAmountToDepositInWei, CurrentPackTokenPriceSellout, CurrentPackTokenPriceBuyout);
}
// Move to the next package. Sending a reward to the owner.
// Minting of new tokens.
function nextPack (uint _currentPackNumber) internal {
transferFee();
feeTransfered = false;
CurrentPackNumber=_currentPackNumber.add(1);
CurrentPackStartDate = now;
mint(PackVolume);
packSettings(CurrentPackNumber);
}
// Restart occurs if the Disparity mode is enabled and
// there were no new donations within 14 days.
// Everything will start with the first package.
// After restart, the system saves the participant's tokens.
// Moreover, by participating from the very beginning
// (starting from the first package of the new cycle),
// the participant can easily compensate for his
// insignificant losses. And quickly achieve a good profit!
function restart(bool _dm)internal{
if(_dm==true){if(RestartMode==false){RestartMode=true;RestartModeDate=now;}
else{if(now>RestartModeDate+14*1 days){RestartMode=false;DisparityMode=false;nextPack(0);}}}
else{if(RestartMode==true){RestartMode=false;RestartModeDate=0;}}
}
// Sending reward to the owner.
// No more and no less - just as much as it does not hurt.
// Exactly as much as provided by the algorithm.
function transferFee()internal{
if(CurrentPackNumber > 2 && feeTransfered == false){
if(address(this).balance>=CurrentPackFee){
creatorOwner.transfer(CurrentPackFee);
feeTransfered = true;
}
}
}
// Receiving a donation and calculating the number of participant tokens.
// Bonuses, penalties.
function deposit() public payable returns (uint UserTokenObtain){
require(msg.sender != 0x0 && msg.sender != 0);
require(msg.value < BigAmt);
uint availableTokens = balances[address(this)];
require(msg.value <= availableTokens.mul(CurrentPackTokenPriceSellout).add(availableTokens.mul(CurrentPackTokenPriceSellout).mul(10).div(100)).add(10*1 finney));
require(msg.value.div(CurrentPackTokenPriceSellout) > 0);
userAddr = msg.sender;
userAmt = msg.value;
if(usersWhoBuy[userAddr].UserBuyTokenPackNum == CurrentPackNumber){
userTotalAmtDepositCurrentPack = usersWhoBuy[userAddr].UserTotalAmtDepositCurrentPack;
}
else{
userTotalAmtDepositCurrentPack = 0;
}
if(usersWhoBuy[userAddr].UserBuyTokenPackNum == CurrentPackNumber){
require(userTotalAmtDepositCurrentPack.add(userAmt) < BigAmt);
}
// If the participant making a donation in the current package
// has already received a backward donation in the same package,
// the amount of the new donation is reduced by 5% of the amount
// of the received donation; a kind of "penalty" is imposed in
// the amount of 5% of the amount received earlier
// by the participant in the same package.
if(usersWhoSell[userAddr].UserSellTokenPackNum == CurrentPackNumber){
uint penalty = usersWhoSell[userAddr].UserTotalAmtWithdrawalCurrentPack.mul(5).div(100);
userAmt = userAmt.sub(penalty);
require(userAmt.div(CurrentPackTokenPriceSellout) > 0);
penalty=0;
}
UserTokenObtain = userAmt.div(CurrentPackTokenPriceSellout);
bonus = 0;
// Participants who made donation amounting to at least 0.1 ether:
// In the 1st day of the current package is entitled to receive
// the amount of possible backward donation to 0.75% more than usual.
// In the 2nd day of the current package - 0.5% more than usual.
// In the 3rd day of the current package - 0.25% more than usual.
if(userAmt >= 100*1 finney){
if(now <= (CurrentPackStartDate + 1*1 days)){
bonus = UserTokenObtain.mul(75).div(10000);
}
if(now > (CurrentPackStartDate + 1*1 days) && now <= (CurrentPackStartDate + 2*1 days)){
bonus = UserTokenObtain.mul(50).div(10000);
}
if(now > (CurrentPackStartDate + 2*1 days) && now <= (CurrentPackStartDate + 3*1 days)){
bonus = UserTokenObtain.mul(25).div(10000);
}
}
// For continuous long-time participation,
// starting from the second week of participation
// (starting from the 4th participation package),
// bonus incentives for the continuous participation
// of 1% of the contributed amount for each subsequent
// "own" package are accrued for the participant.
if(userContinued > 4 && now > (userBuyFirstDate + 1 * 1 weeks)){
bonus = bonus.add(UserTokenObtain.mul(1).div(100));
}
UserTokenObtain = UserTokenObtain.add(bonus);
if(UserTokenObtain > availableTokens){
userAmtOverloadToSend = CurrentPackTokenPriceSellout.mul(UserTokenObtain.sub(availableTokens));
transfer(address(this), userAddr, availableTokens);
UserTokenObtain = availableTokens;
if(address(this).balance>=userAmtOverloadToSend){
userAddr.transfer(userAmtOverloadToSend);
}
}
else{
transfer(address(this), userAddr, UserTokenObtain);
}
if(usersWhoBuy[userAddr].UserBuyTokenPackNum == 0){
userFirstAmt = userAmt;
userBuyFirstDate = now;
}
else{
userFirstAmt = usersWhoBuy[userAddr].UserFirstAmt;
userBuyFirstDate = usersWhoBuy[userAddr].UserBuyFirstDate;
}
if(usersWhoBuy[userAddr].UserContinued == 0){
userContinued = 1;
}
else{
if(usersWhoBuy[userAddr].UserBuyTokenPackNum == CurrentPackNumber.sub(1)){
userContinued = userContinued.add(1);
}
else{
userContinued = 1;
}
}
userTotalAmtDepositCurrentPack = userTotalAmtDepositCurrentPack.add(userAmt);
addUserWhoBuy(userAddr, userAmt, UserTokenObtain, now, userBuyFirstDate, CurrentPackNumber, userFirstAmt, userContinued, userTotalAmtDepositCurrentPack);
CurrentPackTokenAvailablePercent = balances[address(this)].mul(100).div(PackVolume);
bonus = 0;
availableTokens = 0;
userAmtOverloadToSend = 0;
userAddr = 0;
userAmt = 0;
restart(false);
DisparityMode = false;
// Move to the next pack, if all the tokens of the current one are over.
if(balances[address(this)] == 0){nextPack(CurrentPackNumber);}
return UserTokenObtain;
}
// And here the participant decided to sell his tokens (some or all at once) and sends us his withdrawal request.
function withdraw(uint WithdrawAmount, uint WithdrawTokens) public returns (uint withdrawAmt){
require(msg.sender != 0x0 && msg.sender != 0);
require(WithdrawTokens > 0 || WithdrawAmount > 0);
require(WithdrawTokens<=balances[msg.sender]);
require(WithdrawAmount.mul(1 finney)<=balances[msg.sender].mul(CurrentPackTokenPriceSellout).add(balances[msg.sender].mul(CurrentPackTokenPriceSellout).mul(5).div(100)));
// If the normal work is braked then Disparity mode is turning on.
// If Disparity mode is already enabled, then we check whether it's time to restart.
if(RestartMode==true){restart(true);}
if(address(this).balance<=CurrentPackTotalToPayDisparity){
DisparityMode=true;}else{DisparityMode=false;}
// The participant can apply at any time for the selling
// his tokens at the buyout price of the last realized (current) package.
// Let calculate how much tokens are returned in the current package,
// and how much was purchased earlier.
userTotalAmtWithdrawal = usersWhoSell[msg.sender].UserTotalAmtWithdrawal;
if(usersWhoSell[msg.sender].UserSellTokenPackNum == CurrentPackNumber){
userTotalAmtWithdrawalCurrentPack = usersWhoSell[msg.sender].UserTotalAmtWithdrawalCurrentPack;
}
else{
userTotalAmtWithdrawalCurrentPack = 0;
}
if(usersWhoBuy[msg.sender].UserBuyTokenPackNum == CurrentPackNumber && userTotalAmtWithdrawalCurrentPack < usersWhoBuy[msg.sender].UserTotalAmtDepositCurrentPack){
returnTokenInCurrentPack = true;
withdrawAmtToCurrentPack = usersWhoBuy[msg.sender].UserTotalAmtDepositCurrentPack.sub(userTotalAmtWithdrawalCurrentPack);
}
else{
returnTokenInCurrentPack = false;
}
if(WithdrawAmount > 0){
withdrawAmt = WithdrawAmount.mul(1 finney);
if(returnTokenInCurrentPack == true){
UserTokensReturnToCurrentPack = withdrawAmtToCurrentPack.div(CurrentPackTokenPriceSellout);
if(withdrawAmt>withdrawAmtToCurrentPack){
withdrawAmtAboveCurrentPack = withdrawAmt.sub(withdrawAmtToCurrentPack);
UserTokensReturnAboveCurrentPack = withdrawAmtAboveCurrentPack.div(CurrentPackTokenPriceBuyout);
}
else{
withdrawAmtToCurrentPack = withdrawAmt;
UserTokensReturnToCurrentPack = withdrawAmtToCurrentPack.div(CurrentPackTokenPriceSellout);
withdrawAmtAboveCurrentPack = 0;
UserTokensReturnAboveCurrentPack = 0;
}
}
else{
withdrawAmtToCurrentPack = 0;
UserTokensReturnToCurrentPack = 0;
withdrawAmtAboveCurrentPack = withdrawAmt;
UserTokensReturnAboveCurrentPack = withdrawAmtAboveCurrentPack.div(CurrentPackTokenPriceBuyout);
}
}
else{
UserTokensReturn = WithdrawTokens;
if(returnTokenInCurrentPack == true){
UserTokensReturnToCurrentPack = withdrawAmtToCurrentPack.div(CurrentPackTokenPriceSellout);
if(UserTokensReturn>UserTokensReturnToCurrentPack){
UserTokensReturnAboveCurrentPack = UserTokensReturn.sub(UserTokensReturnToCurrentPack);
withdrawAmtAboveCurrentPack = UserTokensReturnAboveCurrentPack.mul(CurrentPackTokenPriceBuyout);
}
else{
withdrawAmtToCurrentPack = UserTokensReturn.mul(CurrentPackTokenPriceSellout);
UserTokensReturnToCurrentPack = UserTokensReturn;
withdrawAmtAboveCurrentPack = 0;
UserTokensReturnAboveCurrentPack = 0;
}
}
else{
withdrawAmtToCurrentPack = 0;
UserTokensReturnToCurrentPack = 0;
UserTokensReturnAboveCurrentPack = UserTokensReturn;
withdrawAmtAboveCurrentPack = UserTokensReturnAboveCurrentPack.mul(CurrentPackTokenPriceBuyout);
}
}
withdrawAmt = withdrawAmtToCurrentPack.add(withdrawAmtAboveCurrentPack);
// When applying for a donation, if the remaining number
// of available tokens of the current package is less than 10%,
// participants are entitled to withdraw of 1% more than usual.
if(balances[address(this)]<=(PackVolume.mul(10).div(100))){
withdrawAmtAboveCurrentPack = withdrawAmtAboveCurrentPack.add(withdrawAmt.mul(1).div(100));
}
// With each withdrawal, the system checks the total balance
// and if the system is on the verge, when it can pay to each participant
// 70% of his initial donation, the protection mode called "Disparity mode" is activated.
// In disparity mode: participant who made a donation in the current package
// can withdraw up to 100% of his initial donation amount,
// participant who made a donation earlier (in previous packs)
// can withdraw up to 70% of his initial donation amount.
if(address(this).balance<CurrentPackTotalToPayDisparity || withdrawAmt > address(this).balance || DisparityMode == true){
uint disparityAmt = usersWhoBuy[msg.sender].UserFirstAmt.mul(Disparity).div(100);
if(userTotalAmtWithdrawal >= disparityAmt){
withdrawAmtAboveCurrentPack = 0;
UserTokensReturnAboveCurrentPack = 0;
}
else{
if(withdrawAmtAboveCurrentPack.add(userTotalAmtWithdrawal) >= disparityAmt){
withdrawAmtAboveCurrentPack = disparityAmt.sub(userTotalAmtWithdrawal);
UserTokensReturnAboveCurrentPack = withdrawAmtAboveCurrentPack.div(CurrentPackTokenPriceBuyout);
}
}
DisparityMode = true;
if(CurrentPackNumber>2){restart(true);}
}
if(withdrawAmt>address(this).balance){
withdrawAmt = address(this).balance;
withdrawAmtAboveCurrentPack = address(this).balance.sub(withdrawAmtToCurrentPack);
UserTokensReturnAboveCurrentPack = withdrawAmtAboveCurrentPack.div(CurrentPackTokenPriceBuyout);
if(CurrentPackNumber>2){restart(true);}
}
withdrawAmt = withdrawAmtToCurrentPack.add(withdrawAmtAboveCurrentPack);
UserTokensReturn = UserTokensReturnToCurrentPack.add(UserTokensReturnAboveCurrentPack);
require(UserTokensReturn<=balances[msg.sender]);
transfer(msg.sender, address(this), UserTokensReturn);
msg.sender.transfer(withdrawAmt);
userTotalAmtWithdrawal = userTotalAmtWithdrawal.add(withdrawAmt);
userTotalAmtWithdrawalCurrentPack = userTotalAmtWithdrawalCurrentPack.add(withdrawAmt);
addUserWhoSell(msg.sender, withdrawAmt, UserTokensReturn, now, CurrentPackNumber, userTotalAmtWithdrawal, userTotalAmtWithdrawalCurrentPack);
CurrentPackTokenAvailablePercent = balances[address(this)].mul(100).div(PackVolume);
withdrawAmtToCurrentPack = 0;
withdrawAmtAboveCurrentPack = 0;
UserTokensReturnToCurrentPack = 0;
UserTokensReturnAboveCurrentPack = 0;
return withdrawAmt;
}
// If tokens purchased in the current package are returned,
// they are again available for purchase by other participants.
// If tokens purchased in previous packages are returned,
// then such tokens are no longer available to anyone.
function transfer(address _from, address _to, uint _value) internal returns (bool success) {
balances[_from] = balances[_from].sub(_value);
if(_to == address(this)){
if(returnTokenInCurrentPack == true){
balances[_to] = balances[_to].add(UserTokensReturnToCurrentPack);
}
else{
balances[_to] = balances[_to];
}
totalSupply = totalSupply.sub(UserTokensReturnAboveCurrentPack);
}
else{
balances[_to] = balances[_to].add(_value);
}
emit Transfer(_from, _to, _value);
return true;
}
// BalanceOf — get balance of tokens.
function balanceOf(address tokenOwner) public constant returns (uint balance) {
return balances[tokenOwner];
}
// Minting new tokens if the moving to a new package occurred.
function mint(uint _value) internal returns (bool) {
balances[address(this)] = balances[address(this)].add(_value);
totalSupply = totalSupply.add(_value);
return true;
}
event Transfer(address indexed _from, address indexed _to, uint _value);
event NextPack(uint indexed CurrentPackTokenPriceSellout, uint indexed CurrentPackTokenPriceBuyout);
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"WithdrawAmount","type":"uint256"},{"name":"WithdrawTokens","type":"uint256"}],"name":"withdraw","outputs":[{"name":"withdrawAmt","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"deposit","outputs":[{"name":"UserTokenObtain","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"aboutCurrentPack","outputs":[{"name":"availableTokens","type":"uint256"},{"name":"availableTokensInPercentage","type":"uint256"},{"name":"availableAmountToDepositInWei","type":"uint256"},{"name":"tokenPriceSellout","type":"uint256"},{"name":"tokenPriceBuyout","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":true,"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"CurrentPackTokenPriceSellout","type":"uint256"},{"indexed":true,"name":"CurrentPackTokenPriceBuyout","type":"uint256"}],"name":"NextPack","type":"event"}]Contract Creation Code
60806040526065600855606e6009556046600a556032600e556032600f55680d8d726b7177a8000060105533600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000094600e54600f600a0a6200011e6401000000000262001a98179091906401000000009004565b600e819055506000600b60006101000a81548160ff0219169083151502179055506000600d60006101000a81548160ff021916908315150217905550600160208190555042602181905550620000fb600e546200015a640100000000026401000000009004565b506200011860205462000235640100000000026401000000009004565b62000a21565b60008083141562000133576000905062000154565b81830290508183828115156200014557fe5b041415156200015057fe5b8090505b92915050565b6000620001be82600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620009d06401000000000262001ae9179091906401000000009004565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200022682600054620009d06401000000000262001ae9179091906401000000009004565b60008190555060019050919050565b80602081905550600160205414156200032c5760006015819055506000601681905550600060178190555042602181905550600f54602281905550600f54602381905550620002a0602254600e546200011e6401000000000262001a98179091906401000000009004565b601a819055506000601b819055506000601f8190555060006018819055506000601981905550601a54601c819055506000601e81905550620002fe601b54601a54620009ed6401000000000262001bef179091906401000000009004565b601d819055506032600f5414156200031e57603c6025819055506200032b565b6005600f54016025819055505b5b6002602054141562000521576000601281905550602254601381905550602354601481905550601954601581905550601a54601681905550601c5460178190555060006018819055506000601981905550620003c76064620003aa6009546013546200011e6401000000000262001a98179091906401000000009004565b62000a076401000000000262001ad0179091906401000000009004565b602581905550620003f4601354602554620009ed6401000000000262001bef179091906401000000009004565b6026819055506026546027819055506200042a602754602554620009d06401000000000262001ae9179091906401000000009004565b60228190555060225460238190555062000460602254600e546200011e6401000000000262001a98179091906401000000009004565b601a819055506000601b8190555062000495601754601a54620009d06401000000000262001ae9179091906401000000009004565b601c819055506000601e81905550620004ed6064620004d0600a546016546200011e6401000000000262001a98179091906401000000009004565b62000a076401000000000262001ad0179091906401000000009004565b601f819055506200051a601b54601a54620009ed6401000000000262001bef179091906401000000009004565b601d819055505b600260205411156200090e57602254601381905550602354601481905550601954601581905550601a54601681905550601c546017819055506026546018819055506027546019819055506025546023819055506200059c6009546013546200011e6401000000000262001a98179091906401000000009004565b60258190555060646025541115156200060057620005f96064620005dc6009546013546200011e6401000000000262001a98179091906401000000009004565b62000a076401000000000262001ad0179091906401000000009004565b6025819055505b6064602554111562000641576103e860255402602581905550600a60056127106025548115156200062d57fe5b04018115156200063957fe5b046025819055505b62000668601354602554620009ed6401000000000262001bef179091906401000000009004565b602681905550620006956008546026546200011e6401000000000262001a98179091906401000000009004565b60278190555060646027541115156200071d5762000716620006f66064620006d96008546026546200011e6401000000000262001a98179091906401000000009004565b62000a076401000000000262001ad0179091906401000000009004565b601954620009d06401000000000262001ae9179091906401000000009004565b6027819055505b606460275411156200078b576103e860275402602781905550600a60056127106027548115156200074a57fe5b04018115156200075657fe5b0460278190555062000784602754601954620009d06401000000000262001ae9179091906401000000009004565b6027819055505b620007b2602754602554620009d06401000000000262001ae9179091906401000000009004565b602281905550620007df602254600e546200011e6401000000000262001a98179091906401000000009004565b601a819055506200080c602354600e546200011e6401000000000262001a98179091906401000000009004565b601b819055506200085c60646200083f600a546016546200011e6401000000000262001a98179091906401000000009004565b62000a076401000000000262001ad0179091906401000000009004565b601f8190555062000889601b54601a54620009ed6401000000000262001bef179091906401000000009004565b601d81905550620008b6601754601d54620009d06401000000000262001ae9179091906401000000009004565b601c8190555062000907601f54620008ea601b54601754620009ed6401000000000262001bef179091906401000000009004565b620009ed6401000000000262001bef179091906401000000009004565b601e819055505b62000995600e54620009786064600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200011e6401000000000262001a98179091906401000000009004565b62000a076401000000000262001ad0179091906401000000009004565b6024819055506023546022547f80123097a76fe2b82a8a76c7c41e432f73fce3311a85c3ca296fdfa52f6d57d860405160405180910390a350565b60008183019050828110151515620009e457fe5b80905092915050565b6000828211151515620009fc57fe5b818303905092915050565b6000818381151562000a1557fe5b04905080905092915050565b6128dc8062000a316000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461009357806318160ddd14610123578063313ce5671461014e578063441a3e701461017957806370a08231146101c457806395d89b411461021b578063d0e30db0146102ab578063d89fec58146102c9575b600080fd5b34801561009f57600080fd5b506100a8610310565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100e85780820151818401526020810190506100cd565b50505050905090810190601f1680156101155780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561012f57600080fd5b50610138610349565b6040518082815260200191505060405180910390f35b34801561015a57600080fd5b5061016361034f565b6040518082815260200191505060405180910390f35b34801561018557600080fd5b506101ae6004803603810190808035906020019092919080359060200190929190505050610354565b6040518082815260200191505060405180910390f35b3480156101d057600080fd5b50610205600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e6b565b6040518082815260200191505060405180910390f35b34801561022757600080fd5b50610230610eb4565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610270578082015181840152602081019050610255565b50505050905090810190601f16801561029d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102b3610eed565b6040518082815260200191505060405180910390f35b3480156102d557600080fd5b506102de611a16565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b6040805190810160405280601581526020017f4d757475616c20556e6974696e672053797374656d000000000000000000000081525081565b60005481565b600f81565b60008060003373ffffffffffffffffffffffffffffffffffffffff1614158015610395575060003373ffffffffffffffffffffffffffffffffffffffff1614155b15156103a057600080fd5b60008311806103af5750600084115b15156103ba57600080fd5b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831115151561040857600080fd5b6104e761048560646104776005610469602254600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9890919063ffffffff16565b611a9890919063ffffffff16565b611ad090919063ffffffff16565b6104d9602254600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9890919063ffffffff16565b611ae990919063ffffffff16565b61050166038d7ea4c6800086611a9890919063ffffffff16565b1115151561050e57600080fd5b60011515600d60009054906101000a900460ff1615151415610535576105346001611b05565b5b601f543073ffffffffffffffffffffffffffffffffffffffff1631111515610577576001600b60006101000a81548160ff021916908315150217905550610593565b6000600b60006101000a81548160ff0219169083151502179055505b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154602d81905550602054600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154141561067657600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050154602e8190555061067f565b6000602e819055505b602054600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401541480156107155750600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060070154602e54105b15610797576001603060006101000a81548160ff02191690831515021790555061078c602e54600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060070154611bef90919063ffffffff16565b6031819055506107b3565b6000603060006101000a81548160ff0219169083151502179055505b60008411156108cc576107d666038d7ea4c6800085611a9890919063ffffffff16565b915060011515603060009054906101000a900460ff16151514156108925761080b602254603154611ad090919063ffffffff16565b6033819055506031548211156108585761083060315483611bef90919063ffffffff16565b60328190555061084d602354603254611ad090919063ffffffff16565b60348190555061088d565b81603181905550610876602254603154611ad090919063ffffffff16565b603381905550600060328190555060006034819055505b6108c7565b60006031819055506000603381905550816032819055506108c0602354603254611ad090919063ffffffff16565b6034819055505b6109cb565b82602f8190555060011515603060009054906101000a900460ff161515141561099357610906602254603154611ad090919063ffffffff16565b603381905550603354602f5411156109575761092f603354602f54611bef90919063ffffffff16565b60348190555061094c602354603454611a9890919063ffffffff16565b60328190555061098e565b61096e602254602f54611a9890919063ffffffff16565b603181905550602f54603381905550600060328190555060006034819055505b6109ca565b60006031819055506000603381905550602f546034819055506109c3602354603454611a9890919063ffffffff16565b6032819055505b5b6109e2603254603154611ae990919063ffffffff16565b9150610a0d60646109ff600a600e54611a9890919063ffffffff16565b611ad090919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111515610a9657610a8f610a7e6064610a70600186611a9890919063ffffffff16565b611ad090919063ffffffff16565b603254611ae990919063ffffffff16565b6032819055505b601f543073ffffffffffffffffffffffffffffffffffffffff16311080610ad357503073ffffffffffffffffffffffffffffffffffffffff163182115b80610af1575060011515600b60009054906101000a900460ff161515145b15610c0d57610b606064610b52600a54600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050154611a9890919063ffffffff16565b611ad090919063ffffffff16565b905080602d54101515610b825760006032819055506000603481905550610bdb565b80610b9a602d54603254611ae990919063ffffffff16565b101515610bda57610bb6602d5482611bef90919063ffffffff16565b603281905550610bd3602354603254611ad090919063ffffffff16565b6034819055505b5b6001600b60006101000a81548160ff02191690831515021790555060026020541115610c0c57610c0b6001611b05565b5b5b3073ffffffffffffffffffffffffffffffffffffffff1631821115610cac573073ffffffffffffffffffffffffffffffffffffffff16319150610c726031543073ffffffffffffffffffffffffffffffffffffffff1631611bef90919063ffffffff16565b603281905550610c8f602354603254611ad090919063ffffffff16565b60348190555060026020541115610cab57610caa6001611b05565b5b5b610cc3603254603154611ae990919063ffffffff16565b9150610cdc603454603354611ae990919063ffffffff16565b602f81905550600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054602f5411151515610d3257600080fd5b610d3f3330602f54611c08565b503373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015610d86573d6000803e3d6000fd5b50610d9c82602d54611ae990919063ffffffff16565b602d81905550610db782602e54611ae990919063ffffffff16565b602e81905550610dd43383602f5442602054602d54602e54611f37565b610e3b600e54610e2d6064600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9890919063ffffffff16565b611ad090919063ffffffff16565b60248190555060006031819055506000603281905550600060338190555060006034819055508191505092915050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6040805190810160405280600381526020017f4d5553000000000000000000000000000000000000000000000000000000000081525081565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1614158015610f2f575060003373ffffffffffffffffffffffffffffffffffffffff1614155b1515610f3a57600080fd5b60105434101515610f4a57600080fd5b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150611006662386f26fc10000610ff8610fd56064610fc7600a610fb96022548a611a9890919063ffffffff16565b611a9890919063ffffffff16565b611ad090919063ffffffff16565b610fea60225487611a9890919063ffffffff16565b611ae990919063ffffffff16565b611ae990919063ffffffff16565b341115151561101457600080fd5b600061102b60225434611ad090919063ffffffff16565b11151561103757600080fd5b33600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503460298190555060205460046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154141561115d5760046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060070154602b81905550611166565b6000602b819055505b60205460046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004015414156111fb576010546111ee602954602b54611ae990919063ffffffff16565b1015156111fa57600080fd5b5b60205460066000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154141561133b576112f460646112e6600560066000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050154611a9890919063ffffffff16565b611ad090919063ffffffff16565b905061130b81602954611bef90919063ffffffff16565b602981905550600061132a602254602954611ad090919063ffffffff16565b11151561133657600080fd5b600090505b611352602254602954611ad090919063ffffffff16565b9250600060358190555067016345785d8a0000602954101515611451576201518060215401421115156113ae576113a7612710611399604b86611a9890919063ffffffff16565b611ad090919063ffffffff16565b6035819055505b6201518060215401421180156113cb57506202a300602154014211155b156113ff576113f86127106113ea603286611a9890919063ffffffff16565b611ad090919063ffffffff16565b6035819055505b6202a300602154014211801561141c57506203f480602154014211155b156114505761144961271061143b601986611a9890919063ffffffff16565b611ad090919063ffffffff16565b6035819055505b5b6004602854118015611469575062093a80602c540142115b156114b0576114a9611498606461148a600187611a9890919063ffffffff16565b611ad090919063ffffffff16565b603554611ae990919063ffffffff16565b6035819055505b6114c560355484611ae990919063ffffffff16565b9250818311156115c0576114f66114e58385611bef90919063ffffffff16565b602254611a9890919063ffffffff16565b60368190555061152930600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c08565b508192506036543073ffffffffffffffffffffffffffffffffffffffff16311015156115bb57600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6036549081150290604051600060405180830381858888f193505050501580156115b9573d6000803e3d6000fd5b505b6115ef565b6115ed30600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685611c08565b505b600060046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154141561167157602954602a8190555042602c81905550611748565b60046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050154602a8190555060046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154602c819055505b600060046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006015414156117c257600160288190555061186e565b6117d86001602054611bef90919063ffffffff16565b60046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401541415611864576118596001602854611ae990919063ffffffff16565b60288190555061186d565b60016028819055505b5b611885602954602b54611ae990919063ffffffff16565b602b819055506118ca600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166029548542602c54602054602a54602854602b54612023565b611931600e546119236064600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9890919063ffffffff16565b611ad090919063ffffffff16565b60248190555060006035819055506000915060006036819055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060298190555061199f6000611b05565b6000600b60006101000a81548160ff0219169083151502179055506000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611a0e57611a0d602054612123565b5b829250505090565b6000806000806000806000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150611a7860225483611a9890919063ffffffff16565b905081602454826022546023549650965096509650965050509091929394565b600080831415611aab5760009050611aca565b8183029050818382811515611abc57fe5b04141515611ac657fe5b8090505b92915050565b60008183811515611add57fe5b04905080905092915050565b60008183019050828110151515611afc57fe5b80905092915050565b600115158115151415611bab5760001515600d60009054906101000a900460ff1615151415611b55576001600d60006101000a81548160ff02191690831515021790555042600c81905550611ba6565b62127500600c5401421115611ba5576000600d60006101000a81548160ff0219169083151502179055506000600b60006101000a81548160ff021916908315150217905550611ba46000612123565b5b5b611bec565b60011515600d60009054906101000a900460ff1615151415611beb576000600d60006101000a81548160ff0219169083151502179055506000600c819055505b5b50565b6000828211151515611bfd57fe5b818303905092915050565b6000611c5c82600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bef90919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e315760011515603060009054906101000a900460ff1615151415611d8b57611d43603354600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae990919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e0f565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611e26603454600054611bef90919063ffffffff16565b600081905550611ec7565b611e8382600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae990919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050868160000181905550858160010181905550848160020181905550838160030181905550828160040181905550818160050181905550600160078990806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050505050565b6000600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050888160000181905550878160010181905550868160020181905550858160030181905550848160040181905550838160050181905550828160060181905550818160070181905550600160058b90806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050505050505050565b61212b612181565b6000601160006101000a81548160ff02191690831515021790555061215a600182611ae990919063ffffffff16565b60208190555042602181905550612172600e54612257565b5061217e602054612312565b50565b60026020541180156121a6575060001515601160009054906101000a900460ff161515145b1561225557601e543073ffffffffffffffffffffffffffffffffffffffff163110151561225457600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc601e549081150290604051600060405180830381858888f19350505050158015612237573d6000803e3d6000fd5b506001601160006101000a81548160ff0219169083151502179055505b5b565b60006122ab82600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae990919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061230382600054611ae990919063ffffffff16565b60008190555060019050919050565b80602081905550600160205414156123e65760006015819055506000601681905550600060178190555042602181905550600f54602281905550600f5460238190555061236c602254600e54611a9890919063ffffffff16565b601a819055506000601b819055506000601f8190555060006018819055506000601981905550601a54601c819055506000601e819055506123ba601b54601a54611bef90919063ffffffff16565b601d819055506032600f5414156123d857603c6025819055506123e5565b6005600f54016025819055505b5b6002602054141561254a576000601281905550602254601381905550602354601481905550601954601581905550601a54601681905550601c54601781905550600060188190555060006019819055506124606064612452600954601354611a9890919063ffffffff16565b611ad090919063ffffffff16565b60258190555061247d601354602554611bef90919063ffffffff16565b6026819055506026546027819055506124a3602754602554611ae990919063ffffffff16565b6022819055506022546023819055506124c9602254600e54611a9890919063ffffffff16565b601a819055506000601b819055506124ee601754601a54611ae990919063ffffffff16565b601c819055506000601e819055506125266064612518600a54601654611a9890919063ffffffff16565b611ad090919063ffffffff16565b601f81905550612543601b54601a54611bef90919063ffffffff16565b601d819055505b6002602054111561280e57602254601381905550602354601481905550601954601581905550601a54601681905550601c546017819055506026546018819055506027546019819055506025546023819055506125b4600954601354611a9890919063ffffffff16565b60258190555060646025541115156125f7576125f060646125e2600954601354611a9890919063ffffffff16565b611ad090919063ffffffff16565b6025819055505b60646025541115612635576103e860255402602581905550600a600561271060255481151561262257fe5b040181151561262d57fe5b046025819055505b61264c601354602554611bef90919063ffffffff16565b602681905550612669600854602654611a9890919063ffffffff16565b60278190555060646027541115156126c0576126b96126a8606461269a600854602654611a9890919063ffffffff16565b611ad090919063ffffffff16565b601954611ae990919063ffffffff16565b6027819055505b6064602754111561271b576103e860275402602781905550600a60056127106027548115156126eb57fe5b04018115156126f657fe5b04602781905550612714602754601954611ae990919063ffffffff16565b6027819055505b612732602754602554611ae990919063ffffffff16565b60228190555061274f602254600e54611a9890919063ffffffff16565b601a8190555061276c602354600e54611a9890919063ffffffff16565b601b8190555061279c606461278e600a54601654611a9890919063ffffffff16565b611ad090919063ffffffff16565b601f819055506127b9601b54601a54611bef90919063ffffffff16565b601d819055506127d6601754601d54611ae990919063ffffffff16565b601c81905550612807601f546127f9601b54601754611bef90919063ffffffff16565b611bef90919063ffffffff16565b601e819055505b612875600e546128676064600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9890919063ffffffff16565b611ad090919063ffffffff16565b6024819055506023546022547f80123097a76fe2b82a8a76c7c41e432f73fce3311a85c3ca296fdfa52f6d57d860405160405180910390a3505600a165627a7a723058203ce2a4aa512e887637a71fb6db38d20eb9fc84a658f60a5eef2a7c364857c9a80029
Deployed Bytecode
0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461009357806318160ddd14610123578063313ce5671461014e578063441a3e701461017957806370a08231146101c457806395d89b411461021b578063d0e30db0146102ab578063d89fec58146102c9575b600080fd5b34801561009f57600080fd5b506100a8610310565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100e85780820151818401526020810190506100cd565b50505050905090810190601f1680156101155780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561012f57600080fd5b50610138610349565b6040518082815260200191505060405180910390f35b34801561015a57600080fd5b5061016361034f565b6040518082815260200191505060405180910390f35b34801561018557600080fd5b506101ae6004803603810190808035906020019092919080359060200190929190505050610354565b6040518082815260200191505060405180910390f35b3480156101d057600080fd5b50610205600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e6b565b6040518082815260200191505060405180910390f35b34801561022757600080fd5b50610230610eb4565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610270578082015181840152602081019050610255565b50505050905090810190601f16801561029d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102b3610eed565b6040518082815260200191505060405180910390f35b3480156102d557600080fd5b506102de611a16565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b6040805190810160405280601581526020017f4d757475616c20556e6974696e672053797374656d000000000000000000000081525081565b60005481565b600f81565b60008060003373ffffffffffffffffffffffffffffffffffffffff1614158015610395575060003373ffffffffffffffffffffffffffffffffffffffff1614155b15156103a057600080fd5b60008311806103af5750600084115b15156103ba57600080fd5b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831115151561040857600080fd5b6104e761048560646104776005610469602254600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9890919063ffffffff16565b611a9890919063ffffffff16565b611ad090919063ffffffff16565b6104d9602254600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9890919063ffffffff16565b611ae990919063ffffffff16565b61050166038d7ea4c6800086611a9890919063ffffffff16565b1115151561050e57600080fd5b60011515600d60009054906101000a900460ff1615151415610535576105346001611b05565b5b601f543073ffffffffffffffffffffffffffffffffffffffff1631111515610577576001600b60006101000a81548160ff021916908315150217905550610593565b6000600b60006101000a81548160ff0219169083151502179055505b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154602d81905550602054600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154141561067657600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050154602e8190555061067f565b6000602e819055505b602054600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401541480156107155750600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060070154602e54105b15610797576001603060006101000a81548160ff02191690831515021790555061078c602e54600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060070154611bef90919063ffffffff16565b6031819055506107b3565b6000603060006101000a81548160ff0219169083151502179055505b60008411156108cc576107d666038d7ea4c6800085611a9890919063ffffffff16565b915060011515603060009054906101000a900460ff16151514156108925761080b602254603154611ad090919063ffffffff16565b6033819055506031548211156108585761083060315483611bef90919063ffffffff16565b60328190555061084d602354603254611ad090919063ffffffff16565b60348190555061088d565b81603181905550610876602254603154611ad090919063ffffffff16565b603381905550600060328190555060006034819055505b6108c7565b60006031819055506000603381905550816032819055506108c0602354603254611ad090919063ffffffff16565b6034819055505b6109cb565b82602f8190555060011515603060009054906101000a900460ff161515141561099357610906602254603154611ad090919063ffffffff16565b603381905550603354602f5411156109575761092f603354602f54611bef90919063ffffffff16565b60348190555061094c602354603454611a9890919063ffffffff16565b60328190555061098e565b61096e602254602f54611a9890919063ffffffff16565b603181905550602f54603381905550600060328190555060006034819055505b6109ca565b60006031819055506000603381905550602f546034819055506109c3602354603454611a9890919063ffffffff16565b6032819055505b5b6109e2603254603154611ae990919063ffffffff16565b9150610a0d60646109ff600a600e54611a9890919063ffffffff16565b611ad090919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111515610a9657610a8f610a7e6064610a70600186611a9890919063ffffffff16565b611ad090919063ffffffff16565b603254611ae990919063ffffffff16565b6032819055505b601f543073ffffffffffffffffffffffffffffffffffffffff16311080610ad357503073ffffffffffffffffffffffffffffffffffffffff163182115b80610af1575060011515600b60009054906101000a900460ff161515145b15610c0d57610b606064610b52600a54600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050154611a9890919063ffffffff16565b611ad090919063ffffffff16565b905080602d54101515610b825760006032819055506000603481905550610bdb565b80610b9a602d54603254611ae990919063ffffffff16565b101515610bda57610bb6602d5482611bef90919063ffffffff16565b603281905550610bd3602354603254611ad090919063ffffffff16565b6034819055505b5b6001600b60006101000a81548160ff02191690831515021790555060026020541115610c0c57610c0b6001611b05565b5b5b3073ffffffffffffffffffffffffffffffffffffffff1631821115610cac573073ffffffffffffffffffffffffffffffffffffffff16319150610c726031543073ffffffffffffffffffffffffffffffffffffffff1631611bef90919063ffffffff16565b603281905550610c8f602354603254611ad090919063ffffffff16565b60348190555060026020541115610cab57610caa6001611b05565b5b5b610cc3603254603154611ae990919063ffffffff16565b9150610cdc603454603354611ae990919063ffffffff16565b602f81905550600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054602f5411151515610d3257600080fd5b610d3f3330602f54611c08565b503373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015610d86573d6000803e3d6000fd5b50610d9c82602d54611ae990919063ffffffff16565b602d81905550610db782602e54611ae990919063ffffffff16565b602e81905550610dd43383602f5442602054602d54602e54611f37565b610e3b600e54610e2d6064600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9890919063ffffffff16565b611ad090919063ffffffff16565b60248190555060006031819055506000603281905550600060338190555060006034819055508191505092915050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6040805190810160405280600381526020017f4d5553000000000000000000000000000000000000000000000000000000000081525081565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1614158015610f2f575060003373ffffffffffffffffffffffffffffffffffffffff1614155b1515610f3a57600080fd5b60105434101515610f4a57600080fd5b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150611006662386f26fc10000610ff8610fd56064610fc7600a610fb96022548a611a9890919063ffffffff16565b611a9890919063ffffffff16565b611ad090919063ffffffff16565b610fea60225487611a9890919063ffffffff16565b611ae990919063ffffffff16565b611ae990919063ffffffff16565b341115151561101457600080fd5b600061102b60225434611ad090919063ffffffff16565b11151561103757600080fd5b33600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503460298190555060205460046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154141561115d5760046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060070154602b81905550611166565b6000602b819055505b60205460046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004015414156111fb576010546111ee602954602b54611ae990919063ffffffff16565b1015156111fa57600080fd5b5b60205460066000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154141561133b576112f460646112e6600560066000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050154611a9890919063ffffffff16565b611ad090919063ffffffff16565b905061130b81602954611bef90919063ffffffff16565b602981905550600061132a602254602954611ad090919063ffffffff16565b11151561133657600080fd5b600090505b611352602254602954611ad090919063ffffffff16565b9250600060358190555067016345785d8a0000602954101515611451576201518060215401421115156113ae576113a7612710611399604b86611a9890919063ffffffff16565b611ad090919063ffffffff16565b6035819055505b6201518060215401421180156113cb57506202a300602154014211155b156113ff576113f86127106113ea603286611a9890919063ffffffff16565b611ad090919063ffffffff16565b6035819055505b6202a300602154014211801561141c57506203f480602154014211155b156114505761144961271061143b601986611a9890919063ffffffff16565b611ad090919063ffffffff16565b6035819055505b5b6004602854118015611469575062093a80602c540142115b156114b0576114a9611498606461148a600187611a9890919063ffffffff16565b611ad090919063ffffffff16565b603554611ae990919063ffffffff16565b6035819055505b6114c560355484611ae990919063ffffffff16565b9250818311156115c0576114f66114e58385611bef90919063ffffffff16565b602254611a9890919063ffffffff16565b60368190555061152930600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c08565b508192506036543073ffffffffffffffffffffffffffffffffffffffff16311015156115bb57600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6036549081150290604051600060405180830381858888f193505050501580156115b9573d6000803e3d6000fd5b505b6115ef565b6115ed30600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685611c08565b505b600060046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154141561167157602954602a8190555042602c81905550611748565b60046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050154602a8190555060046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154602c819055505b600060046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006015414156117c257600160288190555061186e565b6117d86001602054611bef90919063ffffffff16565b60046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401541415611864576118596001602854611ae990919063ffffffff16565b60288190555061186d565b60016028819055505b5b611885602954602b54611ae990919063ffffffff16565b602b819055506118ca600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166029548542602c54602054602a54602854602b54612023565b611931600e546119236064600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9890919063ffffffff16565b611ad090919063ffffffff16565b60248190555060006035819055506000915060006036819055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060298190555061199f6000611b05565b6000600b60006101000a81548160ff0219169083151502179055506000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611a0e57611a0d602054612123565b5b829250505090565b6000806000806000806000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150611a7860225483611a9890919063ffffffff16565b905081602454826022546023549650965096509650965050509091929394565b600080831415611aab5760009050611aca565b8183029050818382811515611abc57fe5b04141515611ac657fe5b8090505b92915050565b60008183811515611add57fe5b04905080905092915050565b60008183019050828110151515611afc57fe5b80905092915050565b600115158115151415611bab5760001515600d60009054906101000a900460ff1615151415611b55576001600d60006101000a81548160ff02191690831515021790555042600c81905550611ba6565b62127500600c5401421115611ba5576000600d60006101000a81548160ff0219169083151502179055506000600b60006101000a81548160ff021916908315150217905550611ba46000612123565b5b5b611bec565b60011515600d60009054906101000a900460ff1615151415611beb576000600d60006101000a81548160ff0219169083151502179055506000600c819055505b5b50565b6000828211151515611bfd57fe5b818303905092915050565b6000611c5c82600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bef90919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e315760011515603060009054906101000a900460ff1615151415611d8b57611d43603354600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae990919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e0f565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611e26603454600054611bef90919063ffffffff16565b600081905550611ec7565b611e8382600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae990919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050868160000181905550858160010181905550848160020181905550838160030181905550828160040181905550818160050181905550600160078990806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050505050565b6000600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050888160000181905550878160010181905550868160020181905550858160030181905550848160040181905550838160050181905550828160060181905550818160070181905550600160058b90806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050505050505050565b61212b612181565b6000601160006101000a81548160ff02191690831515021790555061215a600182611ae990919063ffffffff16565b60208190555042602181905550612172600e54612257565b5061217e602054612312565b50565b60026020541180156121a6575060001515601160009054906101000a900460ff161515145b1561225557601e543073ffffffffffffffffffffffffffffffffffffffff163110151561225457600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc601e549081150290604051600060405180830381858888f19350505050158015612237573d6000803e3d6000fd5b506001601160006101000a81548160ff0219169083151502179055505b5b565b60006122ab82600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae990919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061230382600054611ae990919063ffffffff16565b60008190555060019050919050565b80602081905550600160205414156123e65760006015819055506000601681905550600060178190555042602181905550600f54602281905550600f5460238190555061236c602254600e54611a9890919063ffffffff16565b601a819055506000601b819055506000601f8190555060006018819055506000601981905550601a54601c819055506000601e819055506123ba601b54601a54611bef90919063ffffffff16565b601d819055506032600f5414156123d857603c6025819055506123e5565b6005600f54016025819055505b5b6002602054141561254a576000601281905550602254601381905550602354601481905550601954601581905550601a54601681905550601c54601781905550600060188190555060006019819055506124606064612452600954601354611a9890919063ffffffff16565b611ad090919063ffffffff16565b60258190555061247d601354602554611bef90919063ffffffff16565b6026819055506026546027819055506124a3602754602554611ae990919063ffffffff16565b6022819055506022546023819055506124c9602254600e54611a9890919063ffffffff16565b601a819055506000601b819055506124ee601754601a54611ae990919063ffffffff16565b601c819055506000601e819055506125266064612518600a54601654611a9890919063ffffffff16565b611ad090919063ffffffff16565b601f81905550612543601b54601a54611bef90919063ffffffff16565b601d819055505b6002602054111561280e57602254601381905550602354601481905550601954601581905550601a54601681905550601c546017819055506026546018819055506027546019819055506025546023819055506125b4600954601354611a9890919063ffffffff16565b60258190555060646025541115156125f7576125f060646125e2600954601354611a9890919063ffffffff16565b611ad090919063ffffffff16565b6025819055505b60646025541115612635576103e860255402602581905550600a600561271060255481151561262257fe5b040181151561262d57fe5b046025819055505b61264c601354602554611bef90919063ffffffff16565b602681905550612669600854602654611a9890919063ffffffff16565b60278190555060646027541115156126c0576126b96126a8606461269a600854602654611a9890919063ffffffff16565b611ad090919063ffffffff16565b601954611ae990919063ffffffff16565b6027819055505b6064602754111561271b576103e860275402602781905550600a60056127106027548115156126eb57fe5b04018115156126f657fe5b04602781905550612714602754601954611ae990919063ffffffff16565b6027819055505b612732602754602554611ae990919063ffffffff16565b60228190555061274f602254600e54611a9890919063ffffffff16565b601a8190555061276c602354600e54611a9890919063ffffffff16565b601b8190555061279c606461278e600a54601654611a9890919063ffffffff16565b611ad090919063ffffffff16565b601f819055506127b9601b54601a54611bef90919063ffffffff16565b601d819055506127d6601754601d54611ae990919063ffffffff16565b601c81905550612807601f546127f9601b54601754611bef90919063ffffffff16565b611bef90919063ffffffff16565b601e819055505b612875600e546128676064600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9890919063ffffffff16565b611ad090919063ffffffff16565b6024819055506023546022547f80123097a76fe2b82a8a76c7c41e432f73fce3311a85c3ca296fdfa52f6d57d860405160405180910390a3505600a165627a7a723058203ce2a4aa512e887637a71fb6db38d20eb9fc84a658f60a5eef2a7c364857c9a80029
Swarm Source
bzzr://3ce2a4aa512e887637a71fb6db38d20eb9fc84a658f60a5eef2a7c364857c9a8
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.