tx · 2TXmuwvHRyghCkug98W6jPJCA1hy3E5NTkEWuov1FHqN

3NB6ViLiZv3r5EdQ2Q8GA8GKpuwmG3zevAt:  -0.05000000 Waves

2019.08.13 20:20 [629588] smart account 3NB6ViLiZv3r5EdQ2Q8GA8GKpuwmG3zevAt > SELF 0.00000000 Waves

{ "type": 13, "id": "2TXmuwvHRyghCkug98W6jPJCA1hy3E5NTkEWuov1FHqN", "fee": 5000000, "feeAssetId": null, "timestamp": 1565716800296, "version": 1, "sender": "3NB6ViLiZv3r5EdQ2Q8GA8GKpuwmG3zevAt", "senderPublicKey": "3ghbp6Z5eXoKniLSE8XPjn5od7gT1K7qhk6zANBhv9C3", "proofs": [ "4jVt22bfMKL5rovxrBVPeMDRG9BdyfAuFNTdRmKkuTFMuPs22acJbKNCW84mggcLZnELxSTtcXBDFeTqKdWQmS5t" ], "script": "base64:AAIDAAAAAAAAAAAAAAAkAAAAAA5vd25lclB1YmxpY2tleQEAAAAgJ+LupRtywYm1DtC2wa7+mcHTm1BkasCvRteam1vswWgAAAAADGFsbGljZVB1YmtleQEAAAAgdahQG7OF8VCvnmrXif7UUhoQjaCrm/2hFDfEk/59nDEAAAAACWJvYlB1YmtleQEAAAAgoHwmi+qXZSlN20yTARZQ9O8s6pUs/3qey7EnxhpjMk8AAAAADGNvb3BlclB1YmtleQEAAAAgU/w5K0kRwpKzXSOUcyJ72drbib04bPq1q9XqkXENjioAAAAABE5PTkUCAAAABG5vbmUAAAAABlZPVEVSUwAAAAAAAAAAAwAAAAAGUVVPUlVNAAAAAAAAAAACAAAAAAZWT1RJTkcCAAAABnZvdGluZwAAAAAGUkVWRUFMAgAAAAZyZXZlYWwAAAAACEZFQVRVUkVEAgAAAAhmZWF0dXJlZAAAAAAIREVMSVNURUQCAAAACGRlbGlzdGVkAAAAAAh2ZXJpZmllcgIAAAAjM01zOXNVYjdXM0w1NUxMR3hlSFdpcWdUZmRIOXluMm1heWIAAAAACFZFUklGSUVEAgAAAAh2ZXJpZmllZAAAAAALQkxBQ0tMSVNURUQCAAAACWJsYWNrbGlzdAEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABAAAAA2tleQQAAAADbnVtBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABQAAAANudW0BAAAAC2dldFN0ckJ5S2V5AAAAAQAAAANrZXkEAAAAA3N0cgQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQUAAAAETk9ORQUAAAADc3RyAQAAAA9nZXRLZXlJdGVtUHJpY2UAAAABAAAABGl0ZW0JAAEsAAAAAgUAAAAEaXRlbQIAAAAGX3ByaWNlAQAAABFnZXRWYWx1ZUl0ZW1QcmljZQAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAD2dldEtleUl0ZW1QcmljZQAAAAEFAAAABGl0ZW0BAAAAFWdldEtleVVzZXJJdGVtQ291bnRlcgAAAAIAAAAEdXNlcgAAAARpdGVtCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAARpdGVtAgAAAAFfBQAAAAR1c2VyAgAAAARfY250AQAAABdnZXRWYWx1ZVVzZXJJdGVtQ291bnRlcgAAAAIAAAAEdXNlcgAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAVZ2V0S2V5VXNlckl0ZW1Db3VudGVyAAAAAgUAAAAEdXNlcgUAAAAEaXRlbQEAAAAKZ2V0S2V5SXRlbQAAAAIAAAAIc3VwcGxpZXIAAAAFdGl0bGUJAAEsAAAAAgIAAAAFaXRlbV8JAAJYAAAAAQkAAfcAAAABCQABmwAAAAEJAAEsAAAAAgUAAAAIc3VwcGxpZXIFAAAABXRpdGxlAQAAAA5nZXRLZXlJdGVtRGF0YQAAAAEAAAAEaXRlbQkAASwAAAACBQAAAARpdGVtAgAAAAVfZGF0YQEAAAASZ2V0S2V5SXRlbVN1cHBsaWVyAAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAABl9vd25lcgEAAAAUZ2V0VmFsdWVJdGVtU3VwcGxpZXIAAAABAAAABGl0ZW0JAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABJnZXRLZXlJdGVtU3VwcGxpZXIAAAABBQAAAARpdGVtAQAAABVnZXRLZXlCYWxhbmNlU3VwcGxpZXIAAAABAAAAB2FjY291bnQJAAEsAAAAAgUAAAAHYWNjb3VudAIAAAAIX2JhbGFuY2UBAAAAF2dldFZhbHVlQmFsYW5jZVN1cHBsaWVyAAAAAQAAAAdhY2NvdW50CQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAVZ2V0S2V5QmFsYW5jZVN1cHBsaWVyAAAAAQUAAAAHYWNjb3VudAEAAAAMZ2V0S2V5Q29tbWl0AAAAAgAAAARpdGVtAAAABHVzZXIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAABGl0ZW0CAAAAAV8FAAAABHVzZXICAAAAB19jb21taXQBAAAADmdldFZhbHVlQ29tbWl0AAAAAgAAAARpdGVtAAAABHVzZXIJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAAAxnZXRLZXlDb21taXQAAAACBQAAAARpdGVtBQAAAAR1c2VyAQAAABJnZXRLZXlDb21taXRzQ291bnQAAAABAAAABGl0ZW0JAAEsAAAAAgUAAAAEaXRlbQIAAAAHX2NvbWNudAEAAAAUZ2V0VmFsdWVDb21taXRzQ291bnQAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABJnZXRLZXlDb21taXRzQ291bnQAAAABBQAAAARpdGVtAQAAAAxnZXRLZXlSZXZlYWwAAAACAAAABGl0ZW0AAAAEdXNlcgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAEaXRlbQIAAAABXwUAAAAEdXNlcgIAAAAHX3JldmVhbAEAAAAOZ2V0VmFsdWVSZXZlYWwAAAACAAAABGl0ZW0AAAAEdXNlcgkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAADGdldEtleVJldmVhbAAAAAIFAAAABGl0ZW0FAAAABHVzZXIBAAAAEGdldEtleUl0ZW1TdGF0dXMAAAABAAAABGl0ZW0JAAEsAAAAAgUAAAAEaXRlbQIAAAAHX3N0YXR1cwEAAAASZ2V0VmFsdWVJdGVtU3RhdHVzAAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAAQZ2V0S2V5SXRlbVN0YXR1cwAAAAEFAAAABGl0ZW0BAAAAD2dldEtleVZvdGVDb3VudAAAAAIAAAAEaXRlbQAAAAV2b3V0ZQkAASwAAAACCQABLAAAAAIFAAAABGl0ZW0CAAAABV9yZXM6BQAAAAV2b3V0ZQEAAAASZ2V0VmFsdWVWb3V0ZUNvdW50AAAAAgAAAARpdGVtAAAABXZvdXRlCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAPZ2V0S2V5Vm90ZUNvdW50AAAAAgUAAAAEaXRlbQUAAAAFdm91dGUAAAAGAAAAAWkBAAAACHB1cmNoYXNlAAAAAQAAAARpdGVtBAAAAANwbXQJAQAAAAdleHRyYWN0AAAAAQgFAAAAAWkAAAAHcGF5bWVudAMJAQAAAAlpc0RlZmluZWQAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQJAAACAAAAAQIAAAAgY2FuIHVzZSBXYXZlcyBvbmx5IGF0IHRoZSBtb21lbnQEAAAAC3VzZXJBZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAABXByaWNlCQEAAAARZ2V0VmFsdWVJdGVtUHJpY2UAAAABBQAAAARpdGVtBAAAAA9zdXBwbGllckFkZHJlc3MJAQAAABRnZXRWYWx1ZUl0ZW1TdXBwbGllcgAAAAEFAAAABGl0ZW0DCQAAZgAAAAIFAAAABXByaWNlCAUAAAADcG10AAAABmFtb3VudAkAAAIAAAABAgAAAC5wdXJjaGFzZSBhbW91bnQgY2Fubm90IGJlIGxlc3MgdGhhbiBpdGVtIHByaWNlAwkAAGYAAAACCAUAAAADcG10AAAABmFtb3VudAUAAAAFcHJpY2UJAAACAAAAAQIAAAAwcHVyY2hhc2UgYW1vdW50IGNhbm5vdCBiZSBoaWdoZXIgdGhhbiBpdGVtIHByaWNlAwkAAAAAAAACBQAAAA9zdXBwbGllckFkZHJlc3MFAAAABE5PTkUJAAACAAAAAQIAAAAVc3VwcGxpZXIgaXMgbm90IGV4aXN0CQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAVZ2V0S2V5VXNlckl0ZW1Db3VudGVyAAAAAgUAAAALdXNlckFkZHJlc3MFAAAABGl0ZW0JAABkAAAAAgkBAAAAF2dldFZhbHVlVXNlckl0ZW1Db3VudGVyAAAAAgUAAAALdXNlckFkZHJlc3MFAAAABGl0ZW0AAAAAAAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABVnZXRLZXlCYWxhbmNlU3VwcGxpZXIAAAABBQAAAA9zdXBwbGllckFkZHJlc3MJAABkAAAAAgkBAAAAF2dldFZhbHVlQmFsYW5jZVN1cHBsaWVyAAAAAQUAAAAPc3VwcGxpZXJBZGRyZXNzCAUAAAADcG10AAAABmFtb3VudAUAAAADbmlsAAAAAWkBAAAAB2FkZEl0ZW0AAAADAAAABXRpdGxlAAAABXByaWNlAAAABGRhdGEEAAAAD3N1cHBsaWVyQWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVy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", "chainId": 84, "height": 629588, "spentComplexity": 0 } View: original | compacted Prev: 4BghezDyeYgPtf78srAny613SVvRKiGLFQp77cUtgM3h Next: 7cZihdB6jum9cwmofEsk1q9K5juMWRe9d7QFZ5hhxtYo Diff:
OldNewDifferences
157157 then throw("can hodl waves only at the moment")
158158 else if ((0 > pmt.amount))
159159 then throw("Can not deposit negative amount")
160- else WriteSet([DataEntry(getKeyBalanceSupplier(supplierAddress), (getValueBalanceSupplier(supplierAddress) + newBalance))])
160+ else WriteSet([DataEntry(getKeyBalanceSupplier(supplierAddress), newBalance)])
161161 }
162162
163163
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let ownerPublickey = base58'3ghbp6Z5eXoKniLSE8XPjn5od7gT1K7qhk6zANBhv9C3'
55
66 let allicePubkey = base58'8vHZLEG3BmzYYVjQyNi1m11kh6FeSoVAKKwtsYXC3bqA'
77
88 let bobPubkey = base58'BoU2oQn7y52MZgT1Q7vJCJwUxov9tXb2zpC5gmWQbutJ'
99
1010 let cooperPubkey = base58'6equaSt4fnw6gEoLGiL3dTDDGxDc4PY5NyV3gVkEEr1F'
1111
1212 let NONE = "none"
1313
1414 let VOTERS = 3
1515
1616 let QUORUM = 2
1717
1818 let VOTING = "voting"
1919
2020 let REVEAL = "reveal"
2121
2222 let FEATURED = "featured"
2323
2424 let DELISTED = "delisted"
2525
2626 let verifier = "3Ms9sUb7W3L55LLGxeHWiqgTfdH9yn2mayb"
2727
2828 let VERIFIED = "verified"
2929
3030 let BLACKLISTED = "blacklist"
3131
3232 func getNumberByKey (key) = {
3333 let num = match getInteger(this, key) {
3434 case a: Int =>
3535 a
3636 case _ =>
3737 0
3838 }
3939 num
4040 }
4141
4242
4343 func getStrByKey (key) = {
4444 let str = match getString(this, key) {
4545 case a: String =>
4646 a
4747 case _ =>
4848 NONE
4949 }
5050 str
5151 }
5252
5353
5454 func getKeyItemPrice (item) = (item + "_price")
5555
5656
5757 func getValueItemPrice (item) = getNumberByKey(getKeyItemPrice(item))
5858
5959
6060 func getKeyUserItemCounter (user,item) = (((item + "_") + user) + "_cnt")
6161
6262
6363 func getValueUserItemCounter (user,item) = getNumberByKey(getKeyUserItemCounter(user, item))
6464
6565
6666 func getKeyItem (supplier,title) = ("item_" + toBase58String(sha256(toBytes((supplier + title)))))
6767
6868
6969 func getKeyItemData (item) = (item + "_data")
7070
7171
7272 func getKeyItemSupplier (item) = (item + "_owner")
7373
7474
7575 func getValueItemSupplier (item) = getStrByKey(getKeyItemSupplier(item))
7676
7777
7878 func getKeyBalanceSupplier (account) = (account + "_balance")
7979
8080
8181 func getValueBalanceSupplier (account) = getNumberByKey(getKeyBalanceSupplier(account))
8282
8383
8484 func getKeyCommit (item,user) = (((item + "_") + user) + "_commit")
8585
8686
8787 func getValueCommit (item,user) = getStrByKey(getKeyCommit(item, user))
8888
8989
9090 func getKeyCommitsCount (item) = (item + "_comcnt")
9191
9292
9393 func getValueCommitsCount (item) = getNumberByKey(getKeyCommitsCount(item))
9494
9595
9696 func getKeyReveal (item,user) = (((item + "_") + user) + "_reveal")
9797
9898
9999 func getValueReveal (item,user) = getStrByKey(getKeyReveal(item, user))
100100
101101
102102 func getKeyItemStatus (item) = (item + "_status")
103103
104104
105105 func getValueItemStatus (item) = getStrByKey(getKeyItemStatus(item))
106106
107107
108108 func getKeyVoteCount (item,voute) = ((item + "_res:") + voute)
109109
110110
111111 func getValueVouteCount (item,voute) = getNumberByKey(getKeyVoteCount(item, voute))
112112
113113
114114 @Callable(i)
115115 func purchase (item) = {
116116 let pmt = extract(i.payment)
117117 if (isDefined(pmt.assetId))
118118 then throw("can use Waves only at the moment")
119119 else {
120120 let userAddress = toBase58String(i.caller.bytes)
121121 let price = getValueItemPrice(item)
122122 let supplierAddress = getValueItemSupplier(item)
123123 if ((price > pmt.amount))
124124 then throw("purchase amount cannot be less than item price")
125125 else if ((pmt.amount > price))
126126 then throw("purchase amount cannot be higher than item price")
127127 else if ((supplierAddress == NONE))
128128 then throw("supplier is not exist")
129129 else WriteSet([DataEntry(getKeyUserItemCounter(userAddress, item), (getValueUserItemCounter(userAddress, item) + 1)), DataEntry(getKeyBalanceSupplier(supplierAddress), (getValueBalanceSupplier(supplierAddress) + pmt.amount))])
130130 }
131131 }
132132
133133
134134
135135 @Callable(i)
136136 func addItem (title,price,data) = {
137137 let supplierAddress = toBase58String(i.caller.bytes)
138138 let item = getKeyItem(supplierAddress, title)
139139 if ((0 >= price))
140140 then throw("purchase amount cannot be less than item price")
141141 else if ((getValueItemSupplier(item) != NONE))
142142 then throw("An item is allready exist")
143143 else if ((supplierAddress == BLACKLISTED))
144144 then throw("supplier's account has been blacklist")
145145 else WriteSet([DataEntry(getKeyItemSupplier(item), supplierAddress), DataEntry(getKeyItemPrice(item), price), DataEntry(getKeyItemData(item), data)])
146146 }
147147
148148
149149
150150 @Callable(i)
151151 func deposit () = {
152152 let pmt = extract(i.payment)
153153 let supplierAddress = toBase58String(i.caller.bytes)
154154 let balance = getValueBalanceSupplier(supplierAddress)
155155 let newBalance = (balance + pmt.amount)
156156 if (isDefined(pmt.assetId))
157157 then throw("can hodl waves only at the moment")
158158 else if ((0 > pmt.amount))
159159 then throw("Can not deposit negative amount")
160- else WriteSet([DataEntry(getKeyBalanceSupplier(supplierAddress), (getValueBalanceSupplier(supplierAddress) + newBalance))])
160+ else WriteSet([DataEntry(getKeyBalanceSupplier(supplierAddress), newBalance)])
161161 }
162162
163163
164164
165165 @Callable(i)
166166 func withdraw (amount) = {
167167 let supplierAddress = toBase58String(i.caller.bytes)
168168 let balance = getValueBalanceSupplier(supplierAddress)
169169 let newBalance = (balance - amount)
170170 if ((0 > amount))
171171 then throw("Can not withdraw negative amount")
172172 else if ((0 > newBalance))
173173 then throw("not enough balance")
174174 else if ((0 >= balance))
175175 then throw("insufficient balance")
176176 else ScriptResult(WriteSet([DataEntry(getKeyBalanceSupplier(supplierAddress), newBalance)]), TransferSet([ScriptTransfer(addressFromStringValue(supplierAddress), amount, unit)]))
177177 }
178178
179179
180180
181181 @Callable(i)
182182 func voteCommit (item,hash) = {
183183 let user = toBase58String(i.caller.bytes)
184184 let commits = getValueCommitsCount(item)
185185 let status = getValueItemStatus(item)
186186 if ((commits >= VOTERS))
187187 then throw("reached max num of vouters")
188188 else if ((getValueCommit(item, user) != NONE))
189189 then throw("user has allready participated")
190190 else if ((getKeyItemSupplier(item) == NONE))
191191 then throw("item dose not exist")
192192 else if (if ((status != NONE))
193193 then (status != VOTING)
194194 else false)
195195 then throw("vouting is not posible")
196196 else WriteSet([DataEntry(getKeyCommit(item, user), hash), DataEntry(getKeyCommitsCount(item), (commits + 1)), DataEntry(getKeyItemStatus(item), if ((commits == VOTERS))
197197 then REVEAL
198198 else VOTING)])
199199 }
200200
201201
202202
203203 @Callable(i)
204204 func voteReveal (item,vote,salt) = {
205205 let user = toBase58String(i.caller.bytes)
206206 let status = getValueItemStatus(item)
207207 let newVoteCount = getValueVouteCount(item, vote)
208208 if ((toBase58String(sha256(toBytes((vote + salt)))) != getValueCommit(item, user)))
209209 then throw("reveal data is not valid")
210210 else if ((VOTERS > getValueCommitsCount(item)))
211211 then throw("max num of hasn't reached yet")
212212 else if ((getValueReveal(item, user) != NONE))
213213 then throw("user has already participated")
214214 else if (if ((status != VOTING))
215215 then (status != REVEAL)
216216 else false)
217217 then throw("wrong status")
218218 else if (if ((vote != FEATURED))
219219 then (vote != DELISTED)
220220 else false)
221221 then throw("wrong vote")
222222 else if (if ((status == FEATURED))
223223 then true
224224 else (status == DELISTED))
225225 then throw("vote has finished")
226226 else WriteSet([DataEntry(getKeyReveal(item, user), vote), DataEntry(getKeyVoteCount(item, vote), newVoteCount), DataEntry(getKeyItemStatus(item), if ((newVoteCount >= QUORUM))
227227 then vote
228228 else REVEAL)])
229229 }
230230
231231
232232 @Verifier(tx)
233233 func verify () = {
234234 let alice1 = sigVerify(tx.bodyBytes, tx.proofs[0], allicePubkey)
235235 let alice2 = sigVerify(tx.bodyBytes, tx.proofs[1], allicePubkey)
236236 let alice3 = sigVerify(tx.bodyBytes, tx.proofs[2], allicePubkey)
237237 let bob1 = sigVerify(tx.bodyBytes, tx.proofs[0], bobPubkey)
238238 let bob2 = sigVerify(tx.bodyBytes, tx.proofs[1], bobPubkey)
239239 let bob3 = sigVerify(tx.bodyBytes, tx.proofs[2], bobPubkey)
240240 let cooper1 = sigVerify(tx.bodyBytes, tx.proofs[0], cooperPubkey)
241241 let copper2 = sigVerify(tx.bodyBytes, tx.proofs[1], cooperPubkey)
242242 let copper3 = sigVerify(tx.bodyBytes, tx.proofs[2], cooperPubkey)
243243 let alliceAndBob = if (if (if (if (if (if (alice1)
244244 then bob2
245245 else false)
246246 then true
247247 else if (alice1)
248248 then bob3
249249 else false)
250250 then true
251251 else if (alice2)
252252 then bob1
253253 else false)
254254 then true
255255 else if (alice2)
256256 then bob3
257257 else false)
258258 then true
259259 else if (alice3)
260260 then bob1
261261 else false)
262262 then true
263263 else if (alice3)
264264 then bob2
265265 else false
266266 let alliceAndCooper = if (if (if (if (if (if (alice1)
267267 then copper2
268268 else false)
269269 then true
270270 else if (alice1)
271271 then copper3
272272 else false)
273273 then true
274274 else if (alice2)
275275 then cooper1
276276 else false)
277277 then true
278278 else if (alice2)
279279 then copper3
280280 else false)
281281 then true
282282 else if (alice3)
283283 then cooper1
284284 else false)
285285 then true
286286 else if (alice3)
287287 then copper2
288288 else false
289289 let bobeAndCooper = if (if (if (if (if (if (cooper1)
290290 then bob2
291291 else false)
292292 then true
293293 else if (cooper1)
294294 then bob3
295295 else false)
296296 then true
297297 else if (copper2)
298298 then bob1
299299 else false)
300300 then true
301301 else if (copper2)
302302 then bob3
303303 else false)
304304 then true
305305 else if (copper3)
306306 then bob1
307307 else false)
308308 then true
309309 else if (copper3)
310310 then bob2
311311 else false
312312 match tx {
313313 case d: SetScriptTransaction =>
314314 sigVerify(tx.bodyBytes, tx.proofs[0], ownerPublickey)
315315 case d: DataTransaction =>
316316 true
317317 case _ =>
318318 if (if (alliceAndBob)
319319 then true
320320 else alliceAndCooper)
321321 then true
322322 else bobeAndCooper
323323 }
324324 }
325325

github/deemru/w8io/169f3d6 
40.65 ms