tx · EqpLCNB5G7XeEkQiAZbhig1d4cT3ET5zu9WcQ8vuDTic

3PMXJ1EhpYFvBFQ2mHjrTCqd28Zem1YuSeN:  -0.01000000 Waves

2019.10.27 19:00 [1769005] smart account 3PMXJ1EhpYFvBFQ2mHjrTCqd28Zem1YuSeN > SELF 0.00000000 Waves

{ "type": 13, "id": "EqpLCNB5G7XeEkQiAZbhig1d4cT3ET5zu9WcQ8vuDTic", "fee": 1000000, "feeAssetId": null, "timestamp": 1572192076317, "version": 1, "sender": "3PMXJ1EhpYFvBFQ2mHjrTCqd28Zem1YuSeN", "senderPublicKey": "2o1waDCX67ArC4iV4WWHa41MHbCKS4na7KWDJmcKNAQ3", "proofs": [ "qH3Le8xLSc3ewsE1F7uqQixFDwDrc5MVFjpdPGRgJLVF8SwCQ18y5kRUhUGaSbU7u8rSsssY1gorMiwuPpNhzM8" ], "script": "base64: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BQAAAAZTSEEyNTYJAAGbAAAAAQUAAAAGZ2FtZUlkCQACWwAAAAEFAAAAB3JzYVNpZ24FAAAADHJzYVB1YmxpY0tleQMFAAAACHJzYUNoZWNrCQAAagAAAAIJAASxAAAAAQkAAfcAAAABCQACWwAAAAEFAAAAB3JzYVNpZ24AAAAAAAAAABMJAAACAAAAAQIAAAAYUnNhIFNpZ25hdHVyZSBpcyBpbnZhbGlkAQAAABdpbmNyZWFzZVJlc2VydmVkQmFsYW5jZQAAAAMAAAAGcG10QW10AAAADHBtdEFzc2V0TmFtZQAAAAlhc3NldElkNTgEAAAAFmN1cnJlbnRSZXNlcnZlZEJhbGFuY2UEAAAAFHZhbHVlUmVzZXJ2ZWRCYWxhbmNlCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAMcG10QXNzZXROYW1lAgAAAAlfUmVzZXJ2ZWQEAAAAByRtYXRjaDAFAAAAFHZhbHVlUmVzZXJ2ZWRCYWxhbmNlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAEm5ld1Jlc2VydmVkQmFsYW5jZQkAAGQAAAACBQAAABZjdXJyZW50UmVzZXJ2ZWRCYWxhbmNlBQAAAAZwbXRBbXQDCQAAZwAAAAIJAAPrAAAAAgUAAAAEdGhpcwUAAAAJYXNzZXRJZDU4BQAAABJuZXdSZXNlcnZlZEJhbGFuY2UFAAAAEm5ld1Jlc2VydmVkQmFsYW5jZQkAAAIAAAABAgAAADVCZXQgd2FzIHJlamVjdGVkLiBJbnN1ZmZpY2llbnQgZnVuZHMgb24gZ2FtZSBhY2NvdW50LgEAAAAXZGVjcmVhc2VSZXNlcnZlZEJhbGFuY2UAAAACAAAABmJldEFtdAAAAAdhc3NldElkBAAAABR2YWx1ZVJlc2VydmVkQmFsYW5jZQkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAAB2Fzc2V0SWQCAAAACV9SZXNlcnZlZAQAAAAWZXh0cmFjdFJlc2VydmVkQmFsYW5jZQQAAAAHJG1hdGNoMAUAAAAUdmFsdWVSZXNlcnZlZEJhbGFuY2UDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUA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AAANcGxheWVyQWRkcmVzcwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABCQABkQAAAAIFAAAACGRhdGFMaXN0AAAAAAAAAAABBAAAAAZiZXRBbXQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAhkYXRhTGlzdAAAAAAAAAAAAgQAAAAJYXNzZXROYW1lCQABkQAAAAIFAAAACGRhdGFMaXN0AAAAAAAAAAADBAAAAAlnYW1lU3RhcnQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAhkYXRhTGlzdAAAAAAAAAAABAQAAAAJYXNzZXRJZDU4CQEAAAARQXNzZXROYW1lVG9CYXNlNTgAAAABBQAAAAlhc3NldE5hbWUEAAAAEnNldFJlc2VydmVkQmFsYW5jZQkBAAAAF2RlY3JlYXNlUmVzZXJ2ZWRCYWxhbmNlAAAAAgUAAAAGYmV0QW10BQAAAAlhc3NldE5hbWUEAAAACGRydW0xSW50CQEAAAAIcnNhVG9JbnQAAAADBQAAAAZnYW1lSWQFAAAACHJzYVNpZ24xBQAAAA1yc2FQdWJsaWNLZXkxBAAAAAhkcnVtMkludAkBAAAACHJzYVRvSW50AAAAAwUAAAAGZ2FtZUlkBQAAAAhyc2FTaWduMgUAAAANcnNhUHVibGljS2V5MgQAAAAIZHJ1bTNJbnQJAQAAAAhyc2FUb0ludAAAAAMFAAAABmdhbWVJZAUAAAAIcnNhU2lnbjMFAAAADXJzYVB1YmxpY0tleTMEAAAACXR3b0luQVJvdwkAASwAAAACCQABkQAAAAIFAAAABWRydW0xBQAAAAhkcnVtMUludAkAAZEAAAACBQAAAAVkcnVtMgUAAAAIZHJ1bTJJbnQEAAAAC3RocmVlSW5BUm93CQABLAAAAAIFAAAACXR3b0luQVJvdwkAAZEAAAACBQAAAAVkcnVtMwUAAAAIZHJ1bTNJbnQEAAAAFWRyb3BwZWRFbGVtZW50c1N0cmluZwkAASwAAAACCQABLAAAAAIJAQAAAA9kcnVtSW50VG9TdHJpbmcAAAABBQAAAAhkcnVtMUludAkBAAAAD2RydW1JbnRUb1N0cmluZwAAAAEFAAAACGRydW0ySW50CQEAAAAPZHJ1bUludFRv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AAACBQAAAAxzdGF0ZVRpbWVvdXQCAAAAAV8JAAGRAAAAAgUAAAAIZGF0YUxpc3QAAAAAAAAAAAECAAAAAV8JAAGRAAAAAgUAAAAIZGF0YUxpc3QAAAAAAAAAAAICAAAAAV8JAAGRAAAAAgUAAAAIZGF0YUxpc3QAAAAAAAAAAAMCAAAAAV8JAAGkAAAAAQUAAAAGaGVpZ2h0AgAAAAFfCQABpAAAAAEJAABoAAAAAgUAAAAGYmV0QW10AAAAAAAAAAACAgAAAAFfAgAAAAMwMDACAAAAAV8CAAAABjAwMDAwMAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhc3NldE5hbWUCAAAACV9SZXNlcnZlZAUAAAASc2V0UmVzZXJ2ZWRCYWxhbmNlBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAANcGxheWVyQWRkcmVzcwUAAAAGYmV0QW10BQAAAAlhc3NldElkNTgFAAAAA25pbAkAAAIAAAABAgAAABdHYW1lIHN0YXRlIGlzIGluY29ycmVjdAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAADCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleQQAAAAHJG1hdGNoMAUAAAACdHgDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE1RyYW5zZmVyVHJhbnNhY3Rpb24EAAAAA3R0eAUAAAAHJG1hdGNoMAQAAAAUdmFsdWVSZXNlcnZlZEJhbGFuY2UJAAQaAAAAAgUAAAAEdGhpcwIAAAAOV0FWRVNfUmVzZXJ2ZWQEAAAAD3Jlc2VydmVkQmFsYW5jZQQAAAAHJG1hdGNoMQUAAAAUdmFsdWVSZXNlcnZlZEJhbGFuY2UDCQAAAQAAAAIFAAAAByRtYXRjaDECAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMQUAAAABYQAAAAAAAAAAAAQAAAAQYXZhaWxhYmxlQmFsYW5jZQkAAGUAAAACCQEAAAAMd2F2ZXNCYWxhbmNlAAAAAQUAAAAEdGhpcwUAAAAPcmVzZXJ2ZWRCYWxhbmNlBAAAAA9hdmFpbGlibGVBbW91bnQJAABnAAAAAgUAAAAQYXZhaWxhYmxlQmFsYW5jZQgFAAAAA3R0eAAAAAZhbW91bnQFAAAAD2F2YWlsaWJsZUFtb3VudAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAUU2V0U2NyaXB0VHJhbnNhY3Rpb24EAAAABHNzdHgFAAAAByRtYXRjaDAGAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABdJbnZva2VTY3JpcHRUcmFuc2FjdGlvbgQAAAAEaXN0eAUAAAAHJG1hdGNoMAYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAD0RhdGFUcmFuc2FjdGlvbgQAAAADZHR4BQAAAAckbWF0Y2gwBgcHo3ZJtw==", "chainId": 87, "height": 1769005, "spentComplexity": 0 } View: original | compacted Prev: none Next: C7EQg9tj4hfg6oFD8Mq9dHsXwKjLT3QhMCGPV3R94GkG Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 3 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let rsaPublicKey1 = fromBase64String("MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAOkiuz/BV4EjoxGhTmNCbt2TgkbSPH/w69b3F1rKmD61JiPXvvF8L2pI9xOYcW4FmoEZVHlRQtAlaJykl3+rsrECAwEAAQ==")
5+
6+let rsaPublicKey2 = fromBase64String("MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJnXzbM/V2sDV1ULbPSOlHkldOTWRrHi5fxIkBmuevrClMPVH7rqccwirDNcMdIdwXHI9Adhj9FWjwGIwfU/K6MCAwEAAQ==")
7+
8+let rsaPublicKey3 = fromBase64String("MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAORDevy0r4kzLqOySloB63Huv2e4zeHKHjCsy5vtFKmWZbXJa8gZYt4+EklFIo1K9oqu5BAPVfJ3FOzs2U1A+g0CAwEAAQ==")
9+
10+let drum1 = ["2", "1", "3", "5", "7", "3", "3", "1", "4", "1", "3", "5", "2", "4", "2", "6", "5", "2", "1", "4"]
11+
12+let drum2 = ["4", "2", "3", "1", "6", "4", "2", "1", "4", "2", "1", "6", "3", "1", "2", "5", "1", "5", "3", "7"]
13+
14+let drum3 = ["3", "2", "7", "4", "1", "6", "4", "2", "3", "1", "4", "1", "5", "5", "1", "3", "7", "1", "2", "6"]
15+
16+let gameTimeFrame = (1440 * 2)
17+
18+let commission = 500000
19+
20+let stateAcc = "Accepted"
21+
22+let stateWin = "Win"
23+
24+let stateTimeout = "WinByTimeout"
25+
26+let stateLose = "Lose"
27+
28+let wavesId = unit
29+
30+let btcId = base58'Gt4HLkHunts7bWbtYP5UCsAPW7TUA4gmQEnjgjbZ2NqB'
31+
32+let ethId = base58'6A79GDQj8bdHqUaoJQ3qE1TCPnBc3wFirNCSsAY5RKry'
33+
34+let ltcId = base58'7oRhs4zoufHM4KiBDuJwRXUWb9JQaFt98N8ubpmytMmw'
35+
36+let vstId = base58'5UyDjBMx1Q8UWhJj1r7JuA6h4aCkKrHE1J19HvMXRpRd'
37+
38+let wctId = base58'Ae5W927iuKSLLT6Sdt3bqWze6ZUbYHDWzPY6dLKQusZv'
39+
40+let divider = 1000
41+
42+let WavesMinAmt = (100000000 / divider)
43+
44+let WavesMaxAmt = (WavesMinAmt * 10)
45+
46+let BtcMinAmt = (10000 / divider)
47+
48+let BtcMaxAmt = (BtcMinAmt * 10)
49+
50+let EthMinAmt = (1000000 / divider)
51+
52+let EthMaxAmt = (EthMinAmt * 10)
53+
54+let LtcMinAmt = (2000000 / divider)
55+
56+let LtcMaxAmt = (LtcMinAmt * 10)
57+
58+let WctMinAmt = (500000000 / divider)
59+
60+let WctMaxAmt = (WctMinAmt * 10)
61+
62+let VstMinAmt = (500000000 / divider)
63+
64+let VstMaxAmt = (VstMinAmt * 10)
65+
66+func pmtAmtCheck (pmtAssetId,betAmount) = if ((pmtAssetId == "WAVES"))
67+ then if (if ((betAmount >= WavesMinAmt))
68+ then (WavesMaxAmt >= betAmount)
69+ else false)
70+ then true
71+ else throw("Bet amount is not in range")
72+ else if ((pmtAssetId == "BTC"))
73+ then if (if ((betAmount >= BtcMinAmt))
74+ then (BtcMaxAmt >= betAmount)
75+ else false)
76+ then true
77+ else throw("Bet amount is not in range")
78+ else if ((pmtAssetId == "ETH"))
79+ then if (if ((betAmount >= EthMinAmt))
80+ then (EthMaxAmt >= betAmount)
81+ else false)
82+ then true
83+ else throw("Bet amount is not in range")
84+ else if ((pmtAssetId == "LTC"))
85+ then if (if ((betAmount >= LtcMinAmt))
86+ then (LtcMaxAmt >= betAmount)
87+ else false)
88+ then true
89+ else throw("Bet amount is not in range")
90+ else if ((pmtAssetId == "WCT"))
91+ then if (if ((betAmount >= WctMinAmt))
92+ then (WctMaxAmt >= betAmount)
93+ else false)
94+ then true
95+ else throw("Bet amount is not in range")
96+ else if (if ((betAmount >= VstMinAmt))
97+ then (VstMaxAmt >= betAmount)
98+ else false)
99+ then true
100+ else throw("Bet amount is not in range")
101+
102+
103+func getDataList (gameId) = {
104+ let getDataString = getString(this, (gameId + "_GameId"))
105+ let a = match getDataString {
106+ case a: String =>
107+ a
108+ case _ =>
109+ throw("GameId was not found")
110+ }
111+ split(a, "_")
112+ }
113+
114+
115+func rsaToInt (gameId,rsaSign,rsaPublicKey) = {
116+ let rsaCheck = rsaVerify(SHA256, toBytes(gameId), fromBase64String(rsaSign), rsaPublicKey)
117+ if (rsaCheck)
118+ then (toInt(sha256(fromBase64String(rsaSign))) % 19)
119+ else throw("Rsa Signature is invalid")
120+ }
121+
122+
123+func increaseReservedBalance (pmtAmt,pmtAssetName,assetId58) = {
124+ let currentReservedBalance = {
125+ let valueReservedBalance = getInteger(this, (pmtAssetName + "_Reserved"))
126+ match valueReservedBalance {
127+ case a: Int =>
128+ a
129+ case _ =>
130+ 0
131+ }
132+ }
133+ let newReservedBalance = (currentReservedBalance + pmtAmt)
134+ if ((assetBalance(this, assetId58) >= newReservedBalance))
135+ then newReservedBalance
136+ else throw("Bet was rejected. Insufficient funds on game account.")
137+ }
138+
139+
140+func decreaseReservedBalance (betAmt,assetId) = {
141+ let valueReservedBalance = getInteger(this, (assetId + "_Reserved"))
142+ let extractReservedBalance = match valueReservedBalance {
143+ case a: Int =>
144+ a
145+ case _ =>
146+ 0
147+ }
148+ let decreaseReservedBalance = (extractReservedBalance - betAmt)
149+ if ((decreaseReservedBalance >= 0))
150+ then decreaseReservedBalance
151+ else throw("Reserved balance couldn't be less than 0")
152+ }
153+
154+
155+func drumIntToString (drumInt) = if ((10 > drumInt))
156+ then ("0" + toString(drumInt))
157+ else toString(drumInt)
158+
159+
160+func defineMultiplier (threeInARow,twoInARow) = if ((threeInARow == "777"))
161+ then 2600
162+ else if ((threeInARow == "666"))
163+ then 1300
164+ else if ((threeInARow == "555"))
165+ then 450
166+ else if ((threeInARow == "444"))
167+ then 200
168+ else if ((threeInARow == "333"))
169+ then 150
170+ else if ((threeInARow == "222"))
171+ then 110
172+ else if ((threeInARow == "111"))
173+ then 50
174+ else if ((twoInARow == "77"))
175+ then 270
176+ else if ((twoInARow == "66"))
177+ then 130
178+ else if ((twoInARow == "55"))
179+ then 45
180+ else if ((twoInARow == "44"))
181+ then 30
182+ else if ((twoInARow == "33"))
183+ then 20
184+ else if ((twoInARow == "22"))
185+ then 17
186+ else if ((twoInARow == "11"))
187+ then 13
188+ else 0
189+
190+
191+func AssetNameToBase58 (assetName) = if ((assetName == "WAVES"))
192+ then wavesId
193+ else if ((assetName == "BTC"))
194+ then btcId
195+ else if ((assetName == "ETH"))
196+ then ethId
197+ else if ((assetName == "LTC"))
198+ then ltcId
199+ else if ((assetName == "VST"))
200+ then vstId
201+ else if ((assetName == "WCT"))
202+ then wctId
203+ else throw("Asset name is incorrect")
204+
205+
206+func assetBase58ToName (assetId) = if (!(isDefined(assetId)))
207+ then "WAVES"
208+ else if ((assetId == btcId))
209+ then "BTC"
210+ else if ((assetId == ethId))
211+ then "ETH"
212+ else if ((assetId == ltcId))
213+ then "LTC"
214+ else if ((assetId == wctId))
215+ then "WCT"
216+ else if ((assetId == vstId))
217+ then "VST"
218+ else throw("AssetId is incorrect")
219+
220+
221+@Callable(i)
222+func makeBet () = {
223+ let pmt = extract(i.payment)
224+ let betAmount = (pmt.amount - commission)
225+ let assetId = pmt.assetId
226+ let gameId = toBase58String(i.transactionId)
227+ let playerAddress = extract(i.caller)
228+ let pmtAssetName = assetBase58ToName(assetId)
229+ let setReservedBalance = increaseReservedBalance(betAmount, pmtAssetName, pmt.assetId)
230+ let pmtAmtCorrect = pmtAmtCheck(pmtAssetName, betAmount)
231+ if (pmtAmtCorrect)
232+ then {
233+ let dataString = ((((((((stateAcc + "_") + toString(playerAddress)) + "_") + toString(betAmount)) + "_") + pmtAssetName) + "_") + toString(height))
234+ WriteSet([DataEntry((gameId + "_GameId"), dataString), DataEntry((pmtAssetName + "_Reserved"), setReservedBalance)])
235+ }
236+ else throw("assetId is incorrect")
237+ }
238+
239+
240+
241+@Callable(i)
242+func playGame (gameId,rsaSign1,rsaSign2,rsaSign3) = {
243+ let dataList = getDataList(gameId)
244+ let gameState = dataList[0]
245+ let playerAddress = addressFromStringValue(dataList[1])
246+ let betAmt = parseIntValue(dataList[2])
247+ let assetName = dataList[3]
248+ let gameStart = parseIntValue(dataList[4])
249+ let assetId58 = AssetNameToBase58(assetName)
250+ let setReservedBalance = decreaseReservedBalance(betAmt, assetName)
251+ let drum1Int = rsaToInt(gameId, rsaSign1, rsaPublicKey1)
252+ let drum2Int = rsaToInt(gameId, rsaSign2, rsaPublicKey2)
253+ let drum3Int = rsaToInt(gameId, rsaSign3, rsaPublicKey3)
254+ let twoInARow = (drum1[drum1Int] + drum2[drum2Int])
255+ let threeInARow = (twoInARow + drum3[drum3Int])
256+ let droppedElementsString = ((drumIntToString(drum1Int) + drumIntToString(drum2Int)) + drumIntToString(drum3Int))
257+ let winAmt = ((betAmt * defineMultiplier(threeInARow, twoInARow)) / 10)
258+ let winPmtAmt = {
259+ let balance = assetBalance(this, assetId58)
260+ if ((winAmt > balance))
261+ then (betAmt * 2)
262+ else winAmt
263+ }
264+ let gameTimeCheck = (gameTimeFrame > (height - gameStart))
265+ let stateCorrect = (gameState == stateAcc)
266+ if (stateCorrect)
267+ then if (gameTimeCheck)
268+ then if ((winAmt == 0))
269+ then WriteSet([DataEntry((gameId + "_GameId"), ((((((((((((((stateLose + "_") + dataList[1]) + "_") + dataList[2]) + "_") + dataList[3]) + "_") + toString(height)) + "_") + toString(winAmt)) + "_") + threeInARow) + "_") + droppedElementsString)), DataEntry((assetName + "_Reserved"), setReservedBalance)])
270+ else ScriptResult(WriteSet([DataEntry((gameId + "_GameId"), ((((((((((((((stateWin + "_") + dataList[1]) + "_") + dataList[2]) + "_") + dataList[3]) + "_") + toString(height)) + "_") + toString(winAmt)) + "_") + threeInARow) + "_") + droppedElementsString)), DataEntry((assetName + "_Reserved"), setReservedBalance)]), TransferSet([ScriptTransfer(playerAddress, winPmtAmt, assetId58)]))
271+ else ScriptResult(WriteSet([DataEntry((gameId + "_GameId"), ((((((((((((((stateTimeout + "_") + dataList[1]) + "_") + dataList[2]) + "_") + dataList[3]) + "_") + toString(height)) + "_") + toString((betAmt * 2))) + "_") + "000") + "_") + "000000")), DataEntry((assetName + "_Reserved"), setReservedBalance)]), TransferSet([ScriptTransfer(playerAddress, betAmt, assetId58)]))
272+ else throw("Game state is incorrect")
273+ }
274+
275+
276+@Verifier(tx)
277+func verify () = if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
278+ then match tx {
279+ case ttx: TransferTransaction =>
280+ let valueReservedBalance = getInteger(this, "WAVES_Reserved")
281+ let reservedBalance = match valueReservedBalance {
282+ case a: Int =>
283+ a
284+ case _ =>
285+ 0
286+ }
287+ let availableBalance = (wavesBalance(this) - reservedBalance)
288+ let availibleAmount = (availableBalance >= ttx.amount)
289+ availibleAmount
290+ case sstx: SetScriptTransaction =>
291+ true
292+ case istx: InvokeScriptTransaction =>
293+ true
294+ case dtx: DataTransaction =>
295+ true
296+ case _ =>
297+ false
298+ }
299+ else false
300+

github/deemru/w8io/6500d08 
44.74 ms