ETH Price: $2,031.88 (+5.59%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw75210452019-04-07 12:34:042519 days ago1554640444IN
0xCf5dfE6e...FDa69B5f3
0 ETH0.001716986.4681
Withdraw75210142019-04-07 12:24:042519 days ago1554639844IN
0xCf5dfE6e...FDa69B5f3
0 ETH0.001716986.4681
Withdraw74045272019-03-20 7:56:472537 days ago1553068607IN
0xCf5dfE6e...FDa69B5f3
0 ETH0.000796363
Withdraw74041922019-03-20 6:45:102537 days ago1553064310IN
0xCf5dfE6e...FDa69B5f3
0 ETH0.000265451
Withdraw74040552019-03-20 6:14:522537 days ago1553062492IN
0xCf5dfE6e...FDa69B5f3
0 ETH0.000265451
Withdraw70115402019-01-04 23:57:542612 days ago1546646274IN
0xCf5dfE6e...FDa69B5f3
0 ETH0.000327591
Withdraw70054542019-01-03 21:35:012613 days ago1546551301IN
0xCf5dfE6e...FDa69B5f3
0 ETH0.000445212.733
Withdraw70054402019-01-03 21:30:302613 days ago1546551030IN
0xCf5dfE6e...FDa69B5f3
0 ETH0.000673322.1
Withdraw69435472018-12-24 9:36:512623 days ago1545644211IN
0xCf5dfE6e...FDa69B5f3
0 ETH0.000445212.733
Withdraw69377932018-12-23 10:11:322624 days ago1545559892IN
0xCf5dfE6e...FDa69B5f3
0 ETH0.000678032.333
Withdraw69328292018-12-22 13:54:162625 days ago1545486856IN
0xCf5dfE6e...FDa69B5f3
0 ETH0.000585212.0042
Withdraw69327282018-12-22 13:27:102625 days ago1545485230IN
0xCf5dfE6e...FDa69B5f3
0 ETH0.001118693.644
Withdraw69327152018-12-22 13:24:322625 days ago1545485072IN
0xCf5dfE6e...FDa69B5f3
0 ETH0.000798022.733
Withdraw69326342018-12-22 13:04:112625 days ago1545483851IN
0xCf5dfE6e...FDa69B5f3
0 ETH0.000615282.0042
Withdraw69325532018-12-22 12:45:552625 days ago1545482755IN
0xCf5dfE6e...FDa69B5f3
0 ETH0.000978853.1885
Withdraw69324992018-12-22 12:34:522625 days ago1545482092IN
0xCf5dfE6e...FDa69B5f3
0 ETH0.001197353.90021875
Withdraw69323352018-12-22 11:54:282625 days ago1545479668IN
0xCf5dfE6e...FDa69B5f3
0 ETH0.000798022.733
Withdraw69323152018-12-22 11:49:082625 days ago1545479348IN
0xCf5dfE6e...FDa69B5f3
0 ETH0.00094692.733
Withdraw69322992018-12-22 11:44:142625 days ago1545479054IN
0xCf5dfE6e...FDa69B5f3
0 ETH0.00077762.733
Withdraw69322822018-12-22 11:40:332625 days ago1545478833IN
0xCf5dfE6e...FDa69B5f3
0 ETH0.000818422.733
Withdraw69321882018-12-22 11:19:032625 days ago1545477543IN
0xCf5dfE6e...FDa69B5f3
0 ETH0.000523391.822
Withdraw69168382018-12-19 20:25:162628 days ago1545251116IN
0xCf5dfE6e...FDa69B5f3
0 ETH0.000646943.2796
Withdraw68441612018-12-07 18:38:482640 days ago1544207928IN
0xCf5dfE6e...FDa69B5f3
0 ETH0.001439335.0105
Deposit67265412018-11-18 9:08:302659 days ago1542532110IN
0xCf5dfE6e...FDa69B5f3
2 ETH0.001188163.733
Deposit66904822018-11-12 11:45:062665 days ago1542023106IN
0xCf5dfE6e...FDa69B5f3
0.15 ETH0.00139184.3728
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer241800272026-01-07 3:10:2353 days ago1767755423
0xCf5dfE6e...FDa69B5f3
3.7804555 ETH
Transfer241800272026-01-07 3:10:2353 days ago1767755423
0xCf5dfE6e...FDa69B5f3
0.02805551 ETH
Deposit241800272026-01-07 3:10:2353 days ago1767755423
0xCf5dfE6e...FDa69B5f3
3.74302524 ETH
Transfer241713302026-01-05 22:05:1154 days ago1767650711
0xCf5dfE6e...FDa69B5f3
3.7804555 ETH
Deposit241713302026-01-05 22:05:1154 days ago1767650711
0xCf5dfE6e...FDa69B5f3
3.74302524 ETH
Transfer241713292026-01-05 22:04:5954 days ago1767650699
0xCf5dfE6e...FDa69B5f3
3.7804555 ETH
Deposit241713292026-01-05 22:04:5954 days ago1767650699
0xCf5dfE6e...FDa69B5f3
3.74302524 ETH
Transfer241713292026-01-05 22:04:5954 days ago1767650699
0xCf5dfE6e...FDa69B5f3
3.7804555 ETH
Deposit241713292026-01-05 22:04:5954 days ago1767650699
0xCf5dfE6e...FDa69B5f3
3.74302524 ETH
Transfer241713292026-01-05 22:04:5954 days ago1767650699
0xCf5dfE6e...FDa69B5f3
3.7804555 ETH
Deposit241713292026-01-05 22:04:5954 days ago1767650699
0xCf5dfE6e...FDa69B5f3
3.74302524 ETH
Transfer241713292026-01-05 22:04:5954 days ago1767650699
0xCf5dfE6e...FDa69B5f3
3.7804555 ETH
Deposit241713292026-01-05 22:04:5954 days ago1767650699
0xCf5dfE6e...FDa69B5f3
3.74302524 ETH
Transfer241713292026-01-05 22:04:5954 days ago1767650699
0xCf5dfE6e...FDa69B5f3
3.7804555 ETH
Deposit241713292026-01-05 22:04:5954 days ago1767650699
0xCf5dfE6e...FDa69B5f3
3.74302524 ETH
Transfer241713292026-01-05 22:04:5954 days ago1767650699
0xCf5dfE6e...FDa69B5f3
3.7804555 ETH
Deposit241713292026-01-05 22:04:5954 days ago1767650699
0xCf5dfE6e...FDa69B5f3
3.74302524 ETH
Transfer241713292026-01-05 22:04:5954 days ago1767650699
0xCf5dfE6e...FDa69B5f3
3.7804555 ETH
Deposit241713292026-01-05 22:04:5954 days ago1767650699
0xCf5dfE6e...FDa69B5f3
3.74302524 ETH
Transfer241713292026-01-05 22:04:5954 days ago1767650699
0xCf5dfE6e...FDa69B5f3
3.7804555 ETH
Deposit241713292026-01-05 22:04:5954 days ago1767650699
0xCf5dfE6e...FDa69B5f3
3.74302524 ETH
Transfer241713292026-01-05 22:04:5954 days ago1767650699
0xCf5dfE6e...FDa69B5f3
3.7804555 ETH
Deposit241713292026-01-05 22:04:5954 days ago1767650699
0xCf5dfE6e...FDa69B5f3
3.74302524 ETH
Transfer241713292026-01-05 22:04:5954 days ago1767650699
0xCf5dfE6e...FDa69B5f3
3.7804555 ETH
Deposit241713292026-01-05 22:04:5954 days ago1767650699
0xCf5dfE6e...FDa69B5f3
3.74302524 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MUSystem

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *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

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"}]

60806040526065600855606e6009556046600a556032600e556032600f55680d8d726b7177a8000060105533600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000094600e54600f600a0a6200011e6401000000000262001a98179091906401000000009004565b600e819055506000600b60006101000a81548160ff0219169083151502179055506000600d60006101000a81548160ff021916908315150217905550600160208190555042602181905550620000fb600e546200015a640100000000026401000000009004565b506200011860205462000235640100000000026401000000009004565b62000a21565b60008083141562000133576000905062000154565b81830290508183828115156200014557fe5b041415156200015057fe5b8090505b92915050565b6000620001be82600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620009d06401000000000262001ae9179091906401000000009004565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200022682600054620009d06401000000000262001ae9179091906401000000009004565b60008190555060019050919050565b80602081905550600160205414156200032c5760006015819055506000601681905550600060178190555042602181905550600f54602281905550600f54602381905550620002a0602254600e546200011e6401000000000262001a98179091906401000000009004565b601a819055506000601b819055506000601f8190555060006018819055506000601981905550601a54601c819055506000601e81905550620002fe601b54601a54620009ed6401000000000262001bef179091906401000000009004565b601d819055506032600f5414156200031e57603c6025819055506200032b565b6005600f54016025819055505b5b6002602054141562000521576000601281905550602254601381905550602354601481905550601954601581905550601a54601681905550601c5460178190555060006018819055506000601981905550620003c76064620003aa6009546013546200011e6401000000000262001a98179091906401000000009004565b62000a076401000000000262001ad0179091906401000000009004565b602581905550620003f4601354602554620009ed6401000000000262001bef179091906401000000009004565b6026819055506026546027819055506200042a602754602554620009d06401000000000262001ae9179091906401000000009004565b60228190555060225460238190555062000460602254600e546200011e6401000000000262001a98179091906401000000009004565b601a819055506000601b8190555062000495601754601a54620009d06401000000000262001ae9179091906401000000009004565b601c819055506000601e81905550620004ed6064620004d0600a546016546200011e6401000000000262001a98179091906401000000009004565b62000a076401000000000262001ad0179091906401000000009004565b601f819055506200051a601b54601a54620009ed6401000000000262001bef179091906401000000009004565b601d819055505b600260205411156200090e57602254601381905550602354601481905550601954601581905550601a54601681905550601c546017819055506026546018819055506027546019819055506025546023819055506200059c6009546013546200011e6401000000000262001a98179091906401000000009004565b60258190555060646025541115156200060057620005f96064620005dc6009546013546200011e6401000000000262001a98179091906401000000009004565b62000a076401000000000262001ad0179091906401000000009004565b6025819055505b6064602554111562000641576103e860255402602581905550600a60056127106025548115156200062d57fe5b04018115156200063957fe5b046025819055505b62000668601354602554620009ed6401000000000262001bef179091906401000000009004565b602681905550620006956008546026546200011e6401000000000262001a98179091906401000000009004565b60278190555060646027541115156200071d5762000716620006f66064620006d96008546026546200011e6401000000000262001a98179091906401000000009004565b62000a076401000000000262001ad0179091906401000000009004565b601954620009d06401000000000262001ae9179091906401000000009004565b6027819055505b606460275411156200078b576103e860275402602781905550600a60056127106027548115156200074a57fe5b04018115156200075657fe5b0460278190555062000784602754601954620009d06401000000000262001ae9179091906401000000009004565b6027819055505b620007b2602754602554620009d06401000000000262001ae9179091906401000000009004565b602281905550620007df602254600e546200011e6401000000000262001a98179091906401000000009004565b601a819055506200080c602354600e546200011e6401000000000262001a98179091906401000000009004565b601b819055506200085c60646200083f600a546016546200011e6401000000000262001a98179091906401000000009004565b62000a076401000000000262001ad0179091906401000000009004565b601f8190555062000889601b54601a54620009ed6401000000000262001bef179091906401000000009004565b601d81905550620008b6601754601d54620009d06401000000000262001ae9179091906401000000009004565b601c8190555062000907601f54620008ea601b54601754620009ed6401000000000262001bef179091906401000000009004565b620009ed6401000000000262001bef179091906401000000009004565b601e819055505b62000995600e54620009786064600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200011e6401000000000262001a98179091906401000000009004565b62000a076401000000000262001ad0179091906401000000009004565b6024819055506023546022547f80123097a76fe2b82a8a76c7c41e432f73fce3311a85c3ca296fdfa52f6d57d860405160405180910390a350565b60008183019050828110151515620009e457fe5b80905092915050565b6000828211151515620009fc57fe5b818303905092915050565b6000818381151562000a1557fe5b04905080905092915050565b6128dc8062000a316000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461009357806318160ddd14610123578063313ce5671461014e578063441a3e701461017957806370a08231146101c457806395d89b411461021b578063d0e30db0146102ab578063d89fec58146102c9575b600080fd5b34801561009f57600080fd5b506100a8610310565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100e85780820151818401526020810190506100cd565b50505050905090810190601f1680156101155780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561012f57600080fd5b50610138610349565b6040518082815260200191505060405180910390f35b34801561015a57600080fd5b5061016361034f565b6040518082815260200191505060405180910390f35b34801561018557600080fd5b506101ae6004803603810190808035906020019092919080359060200190929190505050610354565b6040518082815260200191505060405180910390f35b3480156101d057600080fd5b50610205600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e6b565b6040518082815260200191505060405180910390f35b34801561022757600080fd5b50610230610eb4565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610270578082015181840152602081019050610255565b50505050905090810190601f16801561029d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102b3610eed565b6040518082815260200191505060405180910390f35b3480156102d557600080fd5b506102de611a16565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b6040805190810160405280601581526020017f4d757475616c20556e6974696e672053797374656d000000000000000000000081525081565b60005481565b600f81565b60008060003373ffffffffffffffffffffffffffffffffffffffff1614158015610395575060003373ffffffffffffffffffffffffffffffffffffffff1614155b15156103a057600080fd5b60008311806103af5750600084115b15156103ba57600080fd5b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831115151561040857600080fd5b6104e761048560646104776005610469602254600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9890919063ffffffff16565b611a9890919063ffffffff16565b611ad090919063ffffffff16565b6104d9602254600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9890919063ffffffff16565b611ae990919063ffffffff16565b61050166038d7ea4c6800086611a9890919063ffffffff16565b1115151561050e57600080fd5b60011515600d60009054906101000a900460ff1615151415610535576105346001611b05565b5b601f543073ffffffffffffffffffffffffffffffffffffffff1631111515610577576001600b60006101000a81548160ff021916908315150217905550610593565b6000600b60006101000a81548160ff0219169083151502179055505b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154602d81905550602054600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154141561067657600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050154602e8190555061067f565b6000602e819055505b602054600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401541480156107155750600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060070154602e54105b15610797576001603060006101000a81548160ff02191690831515021790555061078c602e54600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060070154611bef90919063ffffffff16565b6031819055506107b3565b6000603060006101000a81548160ff0219169083151502179055505b60008411156108cc576107d666038d7ea4c6800085611a9890919063ffffffff16565b915060011515603060009054906101000a900460ff16151514156108925761080b602254603154611ad090919063ffffffff16565b6033819055506031548211156108585761083060315483611bef90919063ffffffff16565b60328190555061084d602354603254611ad090919063ffffffff16565b60348190555061088d565b81603181905550610876602254603154611ad090919063ffffffff16565b603381905550600060328190555060006034819055505b6108c7565b60006031819055506000603381905550816032819055506108c0602354603254611ad090919063ffffffff16565b6034819055505b6109cb565b82602f8190555060011515603060009054906101000a900460ff161515141561099357610906602254603154611ad090919063ffffffff16565b603381905550603354602f5411156109575761092f603354602f54611bef90919063ffffffff16565b60348190555061094c602354603454611a9890919063ffffffff16565b60328190555061098e565b61096e602254602f54611a9890919063ffffffff16565b603181905550602f54603381905550600060328190555060006034819055505b6109ca565b60006031819055506000603381905550602f546034819055506109c3602354603454611a9890919063ffffffff16565b6032819055505b5b6109e2603254603154611ae990919063ffffffff16565b9150610a0d60646109ff600a600e54611a9890919063ffffffff16565b611ad090919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111515610a9657610a8f610a7e6064610a70600186611a9890919063ffffffff16565b611ad090919063ffffffff16565b603254611ae990919063ffffffff16565b6032819055505b601f543073ffffffffffffffffffffffffffffffffffffffff16311080610ad357503073ffffffffffffffffffffffffffffffffffffffff163182115b80610af1575060011515600b60009054906101000a900460ff161515145b15610c0d57610b606064610b52600a54600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050154611a9890919063ffffffff16565b611ad090919063ffffffff16565b905080602d54101515610b825760006032819055506000603481905550610bdb565b80610b9a602d54603254611ae990919063ffffffff16565b101515610bda57610bb6602d5482611bef90919063ffffffff16565b603281905550610bd3602354603254611ad090919063ffffffff16565b6034819055505b5b6001600b60006101000a81548160ff02191690831515021790555060026020541115610c0c57610c0b6001611b05565b5b5b3073ffffffffffffffffffffffffffffffffffffffff1631821115610cac573073ffffffffffffffffffffffffffffffffffffffff16319150610c726031543073ffffffffffffffffffffffffffffffffffffffff1631611bef90919063ffffffff16565b603281905550610c8f602354603254611ad090919063ffffffff16565b60348190555060026020541115610cab57610caa6001611b05565b5b5b610cc3603254603154611ae990919063ffffffff16565b9150610cdc603454603354611ae990919063ffffffff16565b602f81905550600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054602f5411151515610d3257600080fd5b610d3f3330602f54611c08565b503373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015610d86573d6000803e3d6000fd5b50610d9c82602d54611ae990919063ffffffff16565b602d81905550610db782602e54611ae990919063ffffffff16565b602e81905550610dd43383602f5442602054602d54602e54611f37565b610e3b600e54610e2d6064600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9890919063ffffffff16565b611ad090919063ffffffff16565b60248190555060006031819055506000603281905550600060338190555060006034819055508191505092915050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6040805190810160405280600381526020017f4d5553000000000000000000000000000000000000000000000000000000000081525081565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1614158015610f2f575060003373ffffffffffffffffffffffffffffffffffffffff1614155b1515610f3a57600080fd5b60105434101515610f4a57600080fd5b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150611006662386f26fc10000610ff8610fd56064610fc7600a610fb96022548a611a9890919063ffffffff16565b611a9890919063ffffffff16565b611ad090919063ffffffff16565b610fea60225487611a9890919063ffffffff16565b611ae990919063ffffffff16565b611ae990919063ffffffff16565b341115151561101457600080fd5b600061102b60225434611ad090919063ffffffff16565b11151561103757600080fd5b33600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503460298190555060205460046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154141561115d5760046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060070154602b81905550611166565b6000602b819055505b60205460046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004015414156111fb576010546111ee602954602b54611ae990919063ffffffff16565b1015156111fa57600080fd5b5b60205460066000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154141561133b576112f460646112e6600560066000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050154611a9890919063ffffffff16565b611ad090919063ffffffff16565b905061130b81602954611bef90919063ffffffff16565b602981905550600061132a602254602954611ad090919063ffffffff16565b11151561133657600080fd5b600090505b611352602254602954611ad090919063ffffffff16565b9250600060358190555067016345785d8a0000602954101515611451576201518060215401421115156113ae576113a7612710611399604b86611a9890919063ffffffff16565b611ad090919063ffffffff16565b6035819055505b6201518060215401421180156113cb57506202a300602154014211155b156113ff576113f86127106113ea603286611a9890919063ffffffff16565b611ad090919063ffffffff16565b6035819055505b6202a300602154014211801561141c57506203f480602154014211155b156114505761144961271061143b601986611a9890919063ffffffff16565b611ad090919063ffffffff16565b6035819055505b5b6004602854118015611469575062093a80602c540142115b156114b0576114a9611498606461148a600187611a9890919063ffffffff16565b611ad090919063ffffffff16565b603554611ae990919063ffffffff16565b6035819055505b6114c560355484611ae990919063ffffffff16565b9250818311156115c0576114f66114e58385611bef90919063ffffffff16565b602254611a9890919063ffffffff16565b60368190555061152930600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c08565b508192506036543073ffffffffffffffffffffffffffffffffffffffff16311015156115bb57600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6036549081150290604051600060405180830381858888f193505050501580156115b9573d6000803e3d6000fd5b505b6115ef565b6115ed30600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685611c08565b505b600060046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154141561167157602954602a8190555042602c81905550611748565b60046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050154602a8190555060046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154602c819055505b600060046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006015414156117c257600160288190555061186e565b6117d86001602054611bef90919063ffffffff16565b60046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401541415611864576118596001602854611ae990919063ffffffff16565b60288190555061186d565b60016028819055505b5b611885602954602b54611ae990919063ffffffff16565b602b819055506118ca600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166029548542602c54602054602a54602854602b54612023565b611931600e546119236064600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9890919063ffffffff16565b611ad090919063ffffffff16565b60248190555060006035819055506000915060006036819055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060298190555061199f6000611b05565b6000600b60006101000a81548160ff0219169083151502179055506000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611a0e57611a0d602054612123565b5b829250505090565b6000806000806000806000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150611a7860225483611a9890919063ffffffff16565b905081602454826022546023549650965096509650965050509091929394565b600080831415611aab5760009050611aca565b8183029050818382811515611abc57fe5b04141515611ac657fe5b8090505b92915050565b60008183811515611add57fe5b04905080905092915050565b60008183019050828110151515611afc57fe5b80905092915050565b600115158115151415611bab5760001515600d60009054906101000a900460ff1615151415611b55576001600d60006101000a81548160ff02191690831515021790555042600c81905550611ba6565b62127500600c5401421115611ba5576000600d60006101000a81548160ff0219169083151502179055506000600b60006101000a81548160ff021916908315150217905550611ba46000612123565b5b5b611bec565b60011515600d60009054906101000a900460ff1615151415611beb576000600d60006101000a81548160ff0219169083151502179055506000600c819055505b5b50565b6000828211151515611bfd57fe5b818303905092915050565b6000611c5c82600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bef90919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e315760011515603060009054906101000a900460ff1615151415611d8b57611d43603354600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae990919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e0f565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611e26603454600054611bef90919063ffffffff16565b600081905550611ec7565b611e8382600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae990919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050868160000181905550858160010181905550848160020181905550838160030181905550828160040181905550818160050181905550600160078990806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050505050565b6000600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050888160000181905550878160010181905550868160020181905550858160030181905550848160040181905550838160050181905550828160060181905550818160070181905550600160058b90806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050505050505050565b61212b612181565b6000601160006101000a81548160ff02191690831515021790555061215a600182611ae990919063ffffffff16565b60208190555042602181905550612172600e54612257565b5061217e602054612312565b50565b60026020541180156121a6575060001515601160009054906101000a900460ff161515145b1561225557601e543073ffffffffffffffffffffffffffffffffffffffff163110151561225457600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc601e549081150290604051600060405180830381858888f19350505050158015612237573d6000803e3d6000fd5b506001601160006101000a81548160ff0219169083151502179055505b5b565b60006122ab82600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae990919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061230382600054611ae990919063ffffffff16565b60008190555060019050919050565b80602081905550600160205414156123e65760006015819055506000601681905550600060178190555042602181905550600f54602281905550600f5460238190555061236c602254600e54611a9890919063ffffffff16565b601a819055506000601b819055506000601f8190555060006018819055506000601981905550601a54601c819055506000601e819055506123ba601b54601a54611bef90919063ffffffff16565b601d819055506032600f5414156123d857603c6025819055506123e5565b6005600f54016025819055505b5b6002602054141561254a576000601281905550602254601381905550602354601481905550601954601581905550601a54601681905550601c54601781905550600060188190555060006019819055506124606064612452600954601354611a9890919063ffffffff16565b611ad090919063ffffffff16565b60258190555061247d601354602554611bef90919063ffffffff16565b6026819055506026546027819055506124a3602754602554611ae990919063ffffffff16565b6022819055506022546023819055506124c9602254600e54611a9890919063ffffffff16565b601a819055506000601b819055506124ee601754601a54611ae990919063ffffffff16565b601c819055506000601e819055506125266064612518600a54601654611a9890919063ffffffff16565b611ad090919063ffffffff16565b601f81905550612543601b54601a54611bef90919063ffffffff16565b601d819055505b6002602054111561280e57602254601381905550602354601481905550601954601581905550601a54601681905550601c546017819055506026546018819055506027546019819055506025546023819055506125b4600954601354611a9890919063ffffffff16565b60258190555060646025541115156125f7576125f060646125e2600954601354611a9890919063ffffffff16565b611ad090919063ffffffff16565b6025819055505b60646025541115612635576103e860255402602581905550600a600561271060255481151561262257fe5b040181151561262d57fe5b046025819055505b61264c601354602554611bef90919063ffffffff16565b602681905550612669600854602654611a9890919063ffffffff16565b60278190555060646027541115156126c0576126b96126a8606461269a600854602654611a9890919063ffffffff16565b611ad090919063ffffffff16565b601954611ae990919063ffffffff16565b6027819055505b6064602754111561271b576103e860275402602781905550600a60056127106027548115156126eb57fe5b04018115156126f657fe5b04602781905550612714602754601954611ae990919063ffffffff16565b6027819055505b612732602754602554611ae990919063ffffffff16565b60228190555061274f602254600e54611a9890919063ffffffff16565b601a8190555061276c602354600e54611a9890919063ffffffff16565b601b8190555061279c606461278e600a54601654611a9890919063ffffffff16565b611ad090919063ffffffff16565b601f819055506127b9601b54601a54611bef90919063ffffffff16565b601d819055506127d6601754601d54611ae990919063ffffffff16565b601c81905550612807601f546127f9601b54601754611bef90919063ffffffff16565b611bef90919063ffffffff16565b601e819055505b612875600e546128676064600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9890919063ffffffff16565b611ad090919063ffffffff16565b6024819055506023546022547f80123097a76fe2b82a8a76c7c41e432f73fce3311a85c3ca296fdfa52f6d57d860405160405180910390a3505600a165627a7a723058203ce2a4aa512e887637a71fb6db38d20eb9fc84a658f60a5eef2a7c364857c9a80029

Deployed Bytecode

0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461009357806318160ddd14610123578063313ce5671461014e578063441a3e701461017957806370a08231146101c457806395d89b411461021b578063d0e30db0146102ab578063d89fec58146102c9575b600080fd5b34801561009f57600080fd5b506100a8610310565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100e85780820151818401526020810190506100cd565b50505050905090810190601f1680156101155780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561012f57600080fd5b50610138610349565b6040518082815260200191505060405180910390f35b34801561015a57600080fd5b5061016361034f565b6040518082815260200191505060405180910390f35b34801561018557600080fd5b506101ae6004803603810190808035906020019092919080359060200190929190505050610354565b6040518082815260200191505060405180910390f35b3480156101d057600080fd5b50610205600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e6b565b6040518082815260200191505060405180910390f35b34801561022757600080fd5b50610230610eb4565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610270578082015181840152602081019050610255565b50505050905090810190601f16801561029d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102b3610eed565b6040518082815260200191505060405180910390f35b3480156102d557600080fd5b506102de611a16565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b6040805190810160405280601581526020017f4d757475616c20556e6974696e672053797374656d000000000000000000000081525081565b60005481565b600f81565b60008060003373ffffffffffffffffffffffffffffffffffffffff1614158015610395575060003373ffffffffffffffffffffffffffffffffffffffff1614155b15156103a057600080fd5b60008311806103af5750600084115b15156103ba57600080fd5b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831115151561040857600080fd5b6104e761048560646104776005610469602254600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9890919063ffffffff16565b611a9890919063ffffffff16565b611ad090919063ffffffff16565b6104d9602254600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9890919063ffffffff16565b611ae990919063ffffffff16565b61050166038d7ea4c6800086611a9890919063ffffffff16565b1115151561050e57600080fd5b60011515600d60009054906101000a900460ff1615151415610535576105346001611b05565b5b601f543073ffffffffffffffffffffffffffffffffffffffff1631111515610577576001600b60006101000a81548160ff021916908315150217905550610593565b6000600b60006101000a81548160ff0219169083151502179055505b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154602d81905550602054600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154141561067657600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050154602e8190555061067f565b6000602e819055505b602054600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401541480156107155750600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060070154602e54105b15610797576001603060006101000a81548160ff02191690831515021790555061078c602e54600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060070154611bef90919063ffffffff16565b6031819055506107b3565b6000603060006101000a81548160ff0219169083151502179055505b60008411156108cc576107d666038d7ea4c6800085611a9890919063ffffffff16565b915060011515603060009054906101000a900460ff16151514156108925761080b602254603154611ad090919063ffffffff16565b6033819055506031548211156108585761083060315483611bef90919063ffffffff16565b60328190555061084d602354603254611ad090919063ffffffff16565b60348190555061088d565b81603181905550610876602254603154611ad090919063ffffffff16565b603381905550600060328190555060006034819055505b6108c7565b60006031819055506000603381905550816032819055506108c0602354603254611ad090919063ffffffff16565b6034819055505b6109cb565b82602f8190555060011515603060009054906101000a900460ff161515141561099357610906602254603154611ad090919063ffffffff16565b603381905550603354602f5411156109575761092f603354602f54611bef90919063ffffffff16565b60348190555061094c602354603454611a9890919063ffffffff16565b60328190555061098e565b61096e602254602f54611a9890919063ffffffff16565b603181905550602f54603381905550600060328190555060006034819055505b6109ca565b60006031819055506000603381905550602f546034819055506109c3602354603454611a9890919063ffffffff16565b6032819055505b5b6109e2603254603154611ae990919063ffffffff16565b9150610a0d60646109ff600a600e54611a9890919063ffffffff16565b611ad090919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111515610a9657610a8f610a7e6064610a70600186611a9890919063ffffffff16565b611ad090919063ffffffff16565b603254611ae990919063ffffffff16565b6032819055505b601f543073ffffffffffffffffffffffffffffffffffffffff16311080610ad357503073ffffffffffffffffffffffffffffffffffffffff163182115b80610af1575060011515600b60009054906101000a900460ff161515145b15610c0d57610b606064610b52600a54600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050154611a9890919063ffffffff16565b611ad090919063ffffffff16565b905080602d54101515610b825760006032819055506000603481905550610bdb565b80610b9a602d54603254611ae990919063ffffffff16565b101515610bda57610bb6602d5482611bef90919063ffffffff16565b603281905550610bd3602354603254611ad090919063ffffffff16565b6034819055505b5b6001600b60006101000a81548160ff02191690831515021790555060026020541115610c0c57610c0b6001611b05565b5b5b3073ffffffffffffffffffffffffffffffffffffffff1631821115610cac573073ffffffffffffffffffffffffffffffffffffffff16319150610c726031543073ffffffffffffffffffffffffffffffffffffffff1631611bef90919063ffffffff16565b603281905550610c8f602354603254611ad090919063ffffffff16565b60348190555060026020541115610cab57610caa6001611b05565b5b5b610cc3603254603154611ae990919063ffffffff16565b9150610cdc603454603354611ae990919063ffffffff16565b602f81905550600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054602f5411151515610d3257600080fd5b610d3f3330602f54611c08565b503373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015610d86573d6000803e3d6000fd5b50610d9c82602d54611ae990919063ffffffff16565b602d81905550610db782602e54611ae990919063ffffffff16565b602e81905550610dd43383602f5442602054602d54602e54611f37565b610e3b600e54610e2d6064600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9890919063ffffffff16565b611ad090919063ffffffff16565b60248190555060006031819055506000603281905550600060338190555060006034819055508191505092915050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6040805190810160405280600381526020017f4d5553000000000000000000000000000000000000000000000000000000000081525081565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1614158015610f2f575060003373ffffffffffffffffffffffffffffffffffffffff1614155b1515610f3a57600080fd5b60105434101515610f4a57600080fd5b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150611006662386f26fc10000610ff8610fd56064610fc7600a610fb96022548a611a9890919063ffffffff16565b611a9890919063ffffffff16565b611ad090919063ffffffff16565b610fea60225487611a9890919063ffffffff16565b611ae990919063ffffffff16565b611ae990919063ffffffff16565b341115151561101457600080fd5b600061102b60225434611ad090919063ffffffff16565b11151561103757600080fd5b33600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503460298190555060205460046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154141561115d5760046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060070154602b81905550611166565b6000602b819055505b60205460046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004015414156111fb576010546111ee602954602b54611ae990919063ffffffff16565b1015156111fa57600080fd5b5b60205460066000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154141561133b576112f460646112e6600560066000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050154611a9890919063ffffffff16565b611ad090919063ffffffff16565b905061130b81602954611bef90919063ffffffff16565b602981905550600061132a602254602954611ad090919063ffffffff16565b11151561133657600080fd5b600090505b611352602254602954611ad090919063ffffffff16565b9250600060358190555067016345785d8a0000602954101515611451576201518060215401421115156113ae576113a7612710611399604b86611a9890919063ffffffff16565b611ad090919063ffffffff16565b6035819055505b6201518060215401421180156113cb57506202a300602154014211155b156113ff576113f86127106113ea603286611a9890919063ffffffff16565b611ad090919063ffffffff16565b6035819055505b6202a300602154014211801561141c57506203f480602154014211155b156114505761144961271061143b601986611a9890919063ffffffff16565b611ad090919063ffffffff16565b6035819055505b5b6004602854118015611469575062093a80602c540142115b156114b0576114a9611498606461148a600187611a9890919063ffffffff16565b611ad090919063ffffffff16565b603554611ae990919063ffffffff16565b6035819055505b6114c560355484611ae990919063ffffffff16565b9250818311156115c0576114f66114e58385611bef90919063ffffffff16565b602254611a9890919063ffffffff16565b60368190555061152930600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c08565b508192506036543073ffffffffffffffffffffffffffffffffffffffff16311015156115bb57600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6036549081150290604051600060405180830381858888f193505050501580156115b9573d6000803e3d6000fd5b505b6115ef565b6115ed30600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685611c08565b505b600060046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154141561167157602954602a8190555042602c81905550611748565b60046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050154602a8190555060046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154602c819055505b600060046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006015414156117c257600160288190555061186e565b6117d86001602054611bef90919063ffffffff16565b60046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401541415611864576118596001602854611ae990919063ffffffff16565b60288190555061186d565b60016028819055505b5b611885602954602b54611ae990919063ffffffff16565b602b819055506118ca600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166029548542602c54602054602a54602854602b54612023565b611931600e546119236064600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9890919063ffffffff16565b611ad090919063ffffffff16565b60248190555060006035819055506000915060006036819055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060298190555061199f6000611b05565b6000600b60006101000a81548160ff0219169083151502179055506000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611a0e57611a0d602054612123565b5b829250505090565b6000806000806000806000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150611a7860225483611a9890919063ffffffff16565b905081602454826022546023549650965096509650965050509091929394565b600080831415611aab5760009050611aca565b8183029050818382811515611abc57fe5b04141515611ac657fe5b8090505b92915050565b60008183811515611add57fe5b04905080905092915050565b60008183019050828110151515611afc57fe5b80905092915050565b600115158115151415611bab5760001515600d60009054906101000a900460ff1615151415611b55576001600d60006101000a81548160ff02191690831515021790555042600c81905550611ba6565b62127500600c5401421115611ba5576000600d60006101000a81548160ff0219169083151502179055506000600b60006101000a81548160ff021916908315150217905550611ba46000612123565b5b5b611bec565b60011515600d60009054906101000a900460ff1615151415611beb576000600d60006101000a81548160ff0219169083151502179055506000600c819055505b5b50565b6000828211151515611bfd57fe5b818303905092915050565b6000611c5c82600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bef90919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e315760011515603060009054906101000a900460ff1615151415611d8b57611d43603354600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae990919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e0f565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611e26603454600054611bef90919063ffffffff16565b600081905550611ec7565b611e8382600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae990919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050868160000181905550858160010181905550848160020181905550838160030181905550828160040181905550818160050181905550600160078990806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050505050565b6000600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050888160000181905550878160010181905550868160020181905550858160030181905550848160040181905550838160050181905550828160060181905550818160070181905550600160058b90806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050505050505050565b61212b612181565b6000601160006101000a81548160ff02191690831515021790555061215a600182611ae990919063ffffffff16565b60208190555042602181905550612172600e54612257565b5061217e602054612312565b50565b60026020541180156121a6575060001515601160009054906101000a900460ff161515145b1561225557601e543073ffffffffffffffffffffffffffffffffffffffff163110151561225457600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc601e549081150290604051600060405180830381858888f19350505050158015612237573d6000803e3d6000fd5b506001601160006101000a81548160ff0219169083151502179055505b5b565b60006122ab82600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae990919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061230382600054611ae990919063ffffffff16565b60008190555060019050919050565b80602081905550600160205414156123e65760006015819055506000601681905550600060178190555042602181905550600f54602281905550600f5460238190555061236c602254600e54611a9890919063ffffffff16565b601a819055506000601b819055506000601f8190555060006018819055506000601981905550601a54601c819055506000601e819055506123ba601b54601a54611bef90919063ffffffff16565b601d819055506032600f5414156123d857603c6025819055506123e5565b6005600f54016025819055505b5b6002602054141561254a576000601281905550602254601381905550602354601481905550601954601581905550601a54601681905550601c54601781905550600060188190555060006019819055506124606064612452600954601354611a9890919063ffffffff16565b611ad090919063ffffffff16565b60258190555061247d601354602554611bef90919063ffffffff16565b6026819055506026546027819055506124a3602754602554611ae990919063ffffffff16565b6022819055506022546023819055506124c9602254600e54611a9890919063ffffffff16565b601a819055506000601b819055506124ee601754601a54611ae990919063ffffffff16565b601c819055506000601e819055506125266064612518600a54601654611a9890919063ffffffff16565b611ad090919063ffffffff16565b601f81905550612543601b54601a54611bef90919063ffffffff16565b601d819055505b6002602054111561280e57602254601381905550602354601481905550601954601581905550601a54601681905550601c546017819055506026546018819055506027546019819055506025546023819055506125b4600954601354611a9890919063ffffffff16565b60258190555060646025541115156125f7576125f060646125e2600954601354611a9890919063ffffffff16565b611ad090919063ffffffff16565b6025819055505b60646025541115612635576103e860255402602581905550600a600561271060255481151561262257fe5b040181151561262d57fe5b046025819055505b61264c601354602554611bef90919063ffffffff16565b602681905550612669600854602654611a9890919063ffffffff16565b60278190555060646027541115156126c0576126b96126a8606461269a600854602654611a9890919063ffffffff16565b611ad090919063ffffffff16565b601954611ae990919063ffffffff16565b6027819055505b6064602754111561271b576103e860275402602781905550600a60056127106027548115156126eb57fe5b04018115156126f657fe5b04602781905550612714602754601954611ae990919063ffffffff16565b6027819055505b612732602754602554611ae990919063ffffffff16565b60228190555061274f602254600e54611a9890919063ffffffff16565b601a8190555061276c602354600e54611a9890919063ffffffff16565b601b8190555061279c606461278e600a54601654611a9890919063ffffffff16565b611ad090919063ffffffff16565b601f819055506127b9601b54601a54611bef90919063ffffffff16565b601d819055506127d6601754601d54611ae990919063ffffffff16565b601c81905550612807601f546127f9601b54601754611bef90919063ffffffff16565b611bef90919063ffffffff16565b601e819055505b612875600e546128676064600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9890919063ffffffff16565b611ad090919063ffffffff16565b6024819055506023546022547f80123097a76fe2b82a8a76c7c41e432f73fce3311a85c3ca296fdfa52f6d57d860405160405180910390a3505600a165627a7a723058203ce2a4aa512e887637a71fb6db38d20eb9fc84a658f60a5eef2a7c364857c9a80029

Swarm Source

bzzr://3ce2a4aa512e887637a71fb6db38d20eb9fc84a658f60a5eef2a7c364857c9a8

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
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.