tx · 8QCKRRfVdmm9Cbocz6aKP7o2zb4MV6mehnu9RPw8xZv5

3PJkErpQSzFp4n5rDP7uo9viebx8VtezLwS:  +135.879190 XTN.
———————————————————————————————————:  -1878.00000000 L2MP
———————————————————————————————————:  -0.00500000 Waves
3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee:  -0.00430760 Puzzle
3PLk7wu8tovkaszYGLZy4g4yKMMRMuHeUwg:  +0.00000259 Puzzle
3P6J84oH51DzY6xk2mT5TheXRbrCwBMxonp:  +0.00000907 Puzzle
3PKUxbZaSYfsR7wu2HaAgiirHYwAMupDrYW:  +0.00429594 Puzzle
3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ:  +0.395195 XTN.
3PQoNPWtnTWwrf8GS7BTeg2NfLJZM16RfWV:  +1868.61000000 L2MP
———————————————————————————————————:  -136.274385 XTN.
3PEjHv3JGjcWNpYEEkif2w8NXV4kbhnoGgu:  +9.39000000 L2MP

2023.11.17 05:54 [3912617] transfer 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU > 3PJkErpQSzFp4n5rDP7uo9viebx8VtezLwS swap() 135.879190 XTN.
2023.11.17 05:54 [3912617] transfer 3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee > 3PLk7wu8tovkaszYGLZy4g4yKMMRMuHeUwg exchange() 0.00000259 Puzzle
2023.11.17 05:54 [3912617] transfer 3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee > 3P6J84oH51DzY6xk2mT5TheXRbrCwBMxonp exchange() 0.00000907 Puzzle
2023.11.17 05:54 [3912617] transfer 3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee > 3PKUxbZaSYfsR7wu2HaAgiirHYwAMupDrYW exchange() 0.00429594 Puzzle
2023.11.17 05:54 [3912617] invoke 3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee > 3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ lockNeutrino() 0.395195 XTN.
2023.11.17 05:54 [3912617] invoke 3PBFHAHS4PZaXpS7gT5SPLnuPh7YPoJgCfE > 3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee stakeUnstake()
2023.11.17 05:54 [3912617] invoke 3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee > 3PBFHAHS4PZaXpS7gT5SPLnuPh7YPoJgCfE exchange()
2023.11.17 05:54 [3912617] invoke 3PKUxbZaSYfsR7wu2HaAgiirHYwAMupDrYW > 3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee exchange() 0.395195 XTN.
2023.11.17 05:54 [3912617] invoke 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU > 3PKUxbZaSYfsR7wu2HaAgiirHYwAMupDrYW topUpReward() 0.395195 XTN.
2023.11.17 05:54 [3912617] transfer 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PQoNPWtnTWwrf8GS7BTeg2NfLJZM16RfWV swap() 9.39000000 L2MP
2023.11.17 05:54 [3912617] transfer 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PEjHv3JGjcWNpYEEkif2w8NXV4kbhnoGgu swap() 9.39000000 L2MP
2023.11.17 05:54 [3912617] transfer 3PQoNPWtnTWwrf8GS7BTeg2NfLJZM16RfWV > 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU calculateAmountOutForSwapAndSendTokens() 136.274385 XTN.
2023.11.17 05:54 [3912617] invoke 3PQoNPWtnTWwrf8GS7BTeg2NfLJZM16RfWV > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolLeaseConfigREADONLY()
2023.11.17 05:54 [3912617] invoke 3PQoNPWtnTWwrf8GS7BTeg2NfLJZM16RfWV > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolLeaseConfigREADONLY()
2023.11.17 05:54 [3912617] invoke 3PQoNPWtnTWwrf8GS7BTeg2NfLJZM16RfWV > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getSwapContractREADONLY()
2023.11.17 05:54 [3912617] invoke 3PQoNPWtnTWwrf8GS7BTeg2NfLJZM16RfWV > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv isPoolSwapDisabledREADONLY()
2023.11.17 05:54 [3912617] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PQoNPWtnTWwrf8GS7BTeg2NfLJZM16RfWV calculateAmountOutForSwapAndSendTokens() 1859.22000000 L2MP
2023.11.17 05:54 [3912617] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getSwapFeeREADONLY()
2023.11.17 05:54 [3912617] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolStatusREADONLY()
2023.11.17 05:54 [3912617] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolAddressFromLpAssetREADONLY()
2023.11.17 05:54 [3912617] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getLpAssetFromPoolAssetsREADONLY()
2023.11.17 05:54 [3912617] invoke 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU > 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 swap() 1878.00000000 L2MP
2023.11.17 05:54 [3912617] invoke 3PJkErpQSzFp4n5rDP7uo9viebx8VtezLwS > 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU swap() 1878.00000000 L2MP

3PKUxbZaSYfsR7wu2HaAgiirHYwAMupDrYW: global_lastCheck_HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS_interest: 194622522423371097 -> 194622958117083064
3PKUxbZaSYfsR7wu2HaAgiirHYwAMupDrYW: global_HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS_earnings: 192005248838 -> 192005678432
3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee: B_asset_balance: 84951705629 -> 84952100824
3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee: A_asset_balance: 92904273843 -> 92903843083
3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ: rpd_balance_DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p: 65401203334755 -> 65401203729950
3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ: %s%s__stats__activeTotalLocked: 65401203334755 -> 65401203729950
3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ: %s%s__stats__activeUsersCount: 4328 == 4328
3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ: %s%s__stats__locksCount: 614794 -> 614795
3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ: rpd_balance_DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p_3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee: 84951705629 -> 84952100824
3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ: %s%s%s__paramByUser__3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee__start: 3356244 == 3356244
3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ: %s%s%s__paramByUser__3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee__amount: 84951705629 -> 84952100824
3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ: %s%s%s__userRwdFromDepNum__3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee: 1 == 1
3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ: %s%s%s__rwd__3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee__DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p: 0 == 0
3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ: %s%s%s%s__history__stake__3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee__8QCKRRfVdmm9Cbocz6aKP7o2zb4MV6mehnu9RPw8xZv5: "%s%d%d%d%d__3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee__3912617__1700189675836__84951705629__84952100824"

{ "type": 16, "id": "8QCKRRfVdmm9Cbocz6aKP7o2zb4MV6mehnu9RPw8xZv5", "fee": 500000, "feeAssetId": null, "timestamp": 1700189685681, "version": 2, "chainId": 87, "sender": "3PJkErpQSzFp4n5rDP7uo9viebx8VtezLwS", "senderPublicKey": "Abq81PzE8tRCwqrUZjkoSdYG3EMLrZVcoEMbceBWsEbG", "proofs": [ "5DByrr3BJXXYRBxg2xoyTYvDCqD4Mx5TwZDUpdHyaVx7EwEYe1YiZygtg6TxFyggA1DoPC3n3mX2V9DUrciXWCL" ], "dApp": "3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU", "payment": [ { "amount": 187800000000, "assetId": "7scqyYoVsNrpWbTAc78eRqNVcYLxMPzZs8EQfX7ruJAg" } ], "call": { "function": "swap", "args": [ { "type": "string", "value": "187800000000/3PQoNPWtnTWwrf8GS7BTeg2NfLJZM16RfWV,wx,7scqyYoVsNrpWbTAc78eRqNVcYLxMPzZs8EQfX7ruJAg,DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p" }, { "type": "integer", "value": 0 } ] }, "height": 3912617, "applicationStatus": "succeeded", "spentComplexity": 4224, "stateChanges": { "data": [], "transfers": [ { "address": "3PJkErpQSzFp4n5rDP7uo9viebx8VtezLwS", "asset": "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p", "amount": 135879190 } ], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93", "call": { "function": "swap", "args": [ { "type": "Int", "value": 1 }, { "type": "String", "value": "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p" }, { "type": "String", "value": "3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU" } ] }, "payment": [ { "assetId": "7scqyYoVsNrpWbTAc78eRqNVcYLxMPzZs8EQfX7ruJAg", "amount": 187800000000 } ], "stateChanges": { "data": [], "transfers": [ { "address": "3PEjHv3JGjcWNpYEEkif2w8NXV4kbhnoGgu", "asset": "7scqyYoVsNrpWbTAc78eRqNVcYLxMPzZs8EQfX7ruJAg", "amount": 939000000 }, { "address": "3PQoNPWtnTWwrf8GS7BTeg2NfLJZM16RfWV", "asset": "7scqyYoVsNrpWbTAc78eRqNVcYLxMPzZs8EQfX7ruJAg", "amount": 939000000 } ], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "getLpAssetFromPoolAssetsREADONLY", "args": [ { "type": "String", "value": "7scqyYoVsNrpWbTAc78eRqNVcYLxMPzZs8EQfX7ruJAg" }, { "type": "String", "value": "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "getPoolAddressFromLpAssetREADONLY", "args": [ { "type": "String", "value": "EJc5E2mjN8oGxEUuji8SMgES6B3TBVp47sKzJ2V3P1z5" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "getPoolStatusREADONLY", "args": [ { "type": "String", "value": "3PQoNPWtnTWwrf8GS7BTeg2NfLJZM16RfWV" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "getSwapFeeREADONLY", "args": [ { "type": "String", "value": "3PQoNPWtnTWwrf8GS7BTeg2NfLJZM16RfWV" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3PQoNPWtnTWwrf8GS7BTeg2NfLJZM16RfWV", "call": { "function": "calculateAmountOutForSwapAndSendTokens", "args": [ { "type": "Int", "value": 185922000000 }, { "type": "Boolean", "value": false }, { "type": "Int", "value": 1 }, { "type": "String", "value": "3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU" }, { "type": "Int", "value": 939000000 } ] }, "payment": [ { "assetId": "7scqyYoVsNrpWbTAc78eRqNVcYLxMPzZs8EQfX7ruJAg", "amount": 185922000000 } ], "stateChanges": { "data": [], "transfers": [ { "address": "3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU", "asset": "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p", "amount": 136274385 } ], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "isPoolSwapDisabledREADONLY", "args": [ { "type": "String", "value": "3PQoNPWtnTWwrf8GS7BTeg2NfLJZM16RfWV" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "getSwapContractREADONLY", "args": [] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "getPoolLeaseConfigREADONLY", "args": [ { "type": "String", "value": "3PQoNPWtnTWwrf8GS7BTeg2NfLJZM16RfWV" }, { "type": "String", "value": "7scqyYoVsNrpWbTAc78eRqNVcYLxMPzZs8EQfX7ruJAg" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "getPoolLeaseConfigREADONLY", "args": [ { "type": "String", "value": "3PQoNPWtnTWwrf8GS7BTeg2NfLJZM16RfWV" }, { "type": "String", "value": "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } } ] } } ] } }, { "dApp": "3PKUxbZaSYfsR7wu2HaAgiirHYwAMupDrYW", "call": { "function": "topUpReward", "args": [] }, "payment": [ { "assetId": "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p", "amount": 395195 } ], "stateChanges": { "data": [ { "key": "global_HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS_earnings", "type": "integer", "value": 192005678432 }, { "key": "global_lastCheck_HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS_interest", "type": "integer", "value": 194622958117083064 } ], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee", "call": { "function": "exchange", "args": [ { "type": "Int", "value": 1 } ] }, "payment": [ { "assetId": "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p", "amount": 395195 } ], "stateChanges": { "data": [ { "key": "A_asset_balance", "type": "integer", "value": 92903843083 }, { "key": "B_asset_balance", "type": "integer", "value": 84952100824 } ], "transfers": [ { "address": "3PKUxbZaSYfsR7wu2HaAgiirHYwAMupDrYW", "asset": "HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS", "amount": 429594 }, { "address": "3P6J84oH51DzY6xk2mT5TheXRbrCwBMxonp", "asset": "HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS", "amount": 907 }, { "address": "3PLk7wu8tovkaszYGLZy4g4yKMMRMuHeUwg", "asset": "HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS", "amount": 259 } ], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3PBFHAHS4PZaXpS7gT5SPLnuPh7YPoJgCfE", "call": { "function": "exchange", "args": [ { "type": "ByteVector", "value": "3PKUxbZaSYfsR7wu2HaAgiirHYwAMupDrYW" }, { "type": "Array", "value": [ { "type": "String", "value": "1" } ] }, { "type": "Array", "value": [ { "type": "Int", "value": 395195 } ] }, { "type": "Array", "value": [ { "type": "ByteVector", "value": "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p" } ] } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee", "call": { "function": "stakeUnstake", "args": [ { "type": "Boolean", "value": true }, { "type": "Int", "value": 395195 }, { "type": "String", "value": "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ", "call": { "function": "lockNeutrino", "args": [] }, "payment": [ { "assetId": "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p", "amount": 395195 } ], "stateChanges": { "data": [ { "key": "%s%s%s%s__history__stake__3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee__8QCKRRfVdmm9Cbocz6aKP7o2zb4MV6mehnu9RPw8xZv5", "type": "string", "value": "%s%d%d%d%d__3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee__3912617__1700189675836__84951705629__84952100824" }, { "key": "%s%s%s__rwd__3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee__DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p", "type": "integer", "value": 0 }, { "key": "%s%s%s__userRwdFromDepNum__3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee", "type": "integer", "value": 1 }, { "key": "%s%s%s__paramByUser__3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee__amount", "type": "integer", "value": 84952100824 }, { "key": "%s%s%s__paramByUser__3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee__start", "type": "integer", "value": 3356244 }, { "key": "rpd_balance_DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p_3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee", "type": "integer", "value": 84952100824 }, { "key": "%s%s__stats__locksCount", "type": "integer", "value": 614795 }, { "key": "%s%s__stats__activeUsersCount", "type": "integer", "value": 4328 }, { "key": "%s%s__stats__activeTotalLocked", "type": "integer", "value": 65401203729950 }, { "key": "rpd_balance_DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p", "type": "integer", "value": 65401203729950 } ], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } } ] } } ] } } ] } } ] } } ] } }

github/deemru/w8io/3ef1775 
17.46 ms