sw.mjs raw
1 // Package sw
2 // Generated by TinyJS — TinyGo JavaScript backend
3
4 import * as $rt from './$runtime/index.mjs';
5
6 import * as common$crypto$sha256 from './common_crypto_sha256.mjs';
7 import * as common$helpers from './common_helpers.mjs';
8 import * as common$jsbridge$bc from './common_jsbridge_bc.mjs';
9 import * as common$jsbridge$sw from './common_jsbridge_sw.mjs';
10
11 // Package-level variables
12 export let bus = { $value: 0, $get() { return this.$value; }, $set(v) { this.$value = v; } };
13 export let relayReady = { $value: false, $get() { return this.$value; }, $set(v) { this.$value = v; } };
14 export let relayQueue = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
15 export let myPubkey = { $value: '', $get() { return this.$value; }, $set(v) { this.$value = v; } };
16 export let pendingSentDMs = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
17 export let mlsRelays = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
18 export let marmotSubs = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
19 export let sentDMDedup = { $value: $rt.builtin.makeSlice(32, 32, ''), $get() { return this.$value; }, $set(v) { this.$value = v; } };
20 export let sentDMIdx = { $value: 0, $get() { return this.$value; }, $set(v) { this.$value = v; } };
21 export let appFiles = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
22 export let currentVersion = { $value: '', $get() { return this.$value; }, $set(v) { this.$value = v; } };
23 export let refreshing = { $value: false, $get() { return this.$value; }, $set(v) { this.$value = v; } };
24 export let cryptoCBs = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
25 export let nextCryptoID = { $value: 0, $get() { return this.$value; }, $set(v) { this.$value = v; } };
26
27 $rt.types.registerType('sw.pendingSentDM', {
28 id: 'sw.pendingSentDM',
29 kind: 'struct',
30 methods: new Map(),
31 fields: [
32 { name: 'recipient', type: 'string', tag: '', embedded: false },
33 { name: 'content', type: 'string', tag: '', embedded: false },
34 ],
35 zero: () => ({ recipient: '', content: '' }),
36 });
37 $rt.types.registerType('sw.DMRecord', {
38 id: 'sw.DMRecord',
39 kind: 'struct',
40 methods: new Map(),
41 fields: [
42 { name: 'ID', type: 'string', tag: '', embedded: false },
43 { name: 'Peer', type: 'string', tag: '', embedded: false },
44 { name: 'From', type: 'string', tag: '', embedded: false },
45 { name: 'Content', type: 'string', tag: '', embedded: false },
46 { name: 'CreatedAt', type: 'int64', tag: '', embedded: false },
47 { name: 'Protocol', type: 'string', tag: '', embedded: false },
48 { name: 'EventID', type: 'string', tag: '', embedded: false },
49 ],
50 zero: () => ({ ID: '', Peer: '', From: '', Content: '', CreatedAt: 0, Protocol: '', EventID: '' }),
51 });
52 $rt.types.registerType('sw.mw', {
53 id: 'sw.mw',
54 kind: 'struct',
55 methods: new Map(),
56 fields: [
57 { name: 's', type: 'string', tag: '', embedded: false },
58 { name: 'i', type: 'int', tag: '', embedded: false },
59 ],
60 zero: () => ({ s: '', i: 0 }),
61 });
62 export function init() {
63 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44, $t44_45;
64 $t0_1 = { $value: $rt.builtin.makeSlice(43, 43, ''), $get() { return this.$value; }, $set(v) { this.$value = v; } };
65 $t1_2 = $t0_1.$get().addr(0);
66 $t1_2.$set('/');
67 $t2_3 = $t0_1.$get().addr(1);
68 $t2_3.$set('/$entry.mjs');
69 $t3_4 = $t0_1.$get().addr(2);
70 $t3_4.$set('/smesh3.mjs');
71 $t4_5 = $t0_1.$get().addr(3);
72 $t4_5.$set('/common_crypto_secp256k1.mjs');
73 $t5_6 = $t0_1.$get().addr(4);
74 $t5_6.$set('/common_crypto_sha256.mjs');
75 $t6_7 = $t0_1.$get().addr(5);
76 $t6_7.$set('/common_helpers.mjs');
77 $t7_8 = $t0_1.$get().addr(6);
78 $t7_8.$set('/common_jsbridge_dom.mjs');
79 $t8_9 = $t0_1.$get().addr(7);
80 $t8_9.$set('/common_jsbridge_localstorage.mjs');
81 $t9_10 = $t0_1.$get().addr(8);
82 $t9_10.$set('/common_jsbridge_signer.mjs');
83 $t10_11 = $t0_1.$get().addr(9);
84 $t10_11.$set('/common_nostr.mjs');
85 $t11_12 = $t0_1.$get().addr(10);
86 $t11_12.$set('/$runtime/index.mjs');
87 $t12_13 = $t0_1.$get().addr(11);
88 $t12_13.$set('/$runtime/runtime.mjs');
89 $t13_14 = $t0_1.$get().addr(12);
90 $t13_14.$set('/$runtime/goroutine.mjs');
91 $t14_15 = $t0_1.$get().addr(13);
92 $t14_15.$set('/$runtime/channel.mjs');
93 $t15_16 = $t0_1.$get().addr(14);
94 $t15_16.$set('/$runtime/builtin.mjs');
95 $t16_17 = $t0_1.$get().addr(15);
96 $t16_17.$set('/$runtime/types.mjs');
97 $t17_18 = $t0_1.$get().addr(16);
98 $t17_18.$set('/$runtime/sync.mjs');
99 $t18_19 = $t0_1.$get().addr(17);
100 $t18_19.$set('/$runtime/dom.mjs');
101 $t19_20 = $t0_1.$get().addr(18);
102 $t19_20.$set('/$runtime/localstorage.mjs');
103 $t20_21 = $t0_1.$get().addr(19);
104 $t20_21.$set('/$runtime/signer.mjs');
105 $t21_22 = $t0_1.$get().addr(20);
106 $t21_22.$set('/$wasm/secp256k1.mjs');
107 $t22_23 = $t0_1.$get().addr(21);
108 $t22_23.$set('/$wasm/secp256k1.wasm');
109 $t23_24 = $t0_1.$get().addr(22);
110 $t23_24.$set('/smesh-loader.svg');
111 $t24_25 = $t0_1.$get().addr(23);
112 $t24_25.$set('/$sw/$entry.mjs');
113 $t25_26 = $t0_1.$get().addr(24);
114 $t25_26.$set('/$sw/sw.mjs');
115 $t26_27 = $t0_1.$get().addr(25);
116 $t26_27.$set('/$sw/common_jsbridge_sw.mjs');
117 $t27_28 = $t0_1.$get().addr(26);
118 $t27_28.$set('/$sw/common_jsbridge_bc.mjs');
119 $t28_29 = $t0_1.$get().addr(27);
120 $t28_29.$set('/$sw/common_jsbridge_subtle.mjs');
121 $t29_30 = $t0_1.$get().addr(28);
122 $t29_30.$set('/$sw/common_crypto_secp256k1.mjs');
123 $t30_31 = $t0_1.$get().addr(29);
124 $t30_31.$set('/$sw/common_crypto_sha256.mjs');
125 $t31_32 = $t0_1.$get().addr(30);
126 $t31_32.$set('/$sw/common_helpers.mjs');
127 $t32_33 = $t0_1.$get().addr(31);
128 $t32_33.$set('/$sw/$runtime/index.mjs');
129 $t33_34 = $t0_1.$get().addr(32);
130 $t33_34.$set('/$sw/$runtime/runtime.mjs');
131 $t34_35 = $t0_1.$get().addr(33);
132 $t34_35.$set('/$sw/$runtime/goroutine.mjs');
133 $t35_36 = $t0_1.$get().addr(34);
134 $t35_36.$set('/$sw/$runtime/channel.mjs');
135 $t36_37 = $t0_1.$get().addr(35);
136 $t36_37.$set('/$sw/$runtime/builtin.mjs');
137 $t37_38 = $t0_1.$get().addr(36);
138 $t37_38.$set('/$sw/$runtime/types.mjs');
139 $t38_39 = $t0_1.$get().addr(37);
140 $t38_39.$set('/$sw/$runtime/sync.mjs');
141 $t39_40 = $t0_1.$get().addr(38);
142 $t39_40.$set('/$sw/$runtime/sw.mjs');
143 $t40_41 = $t0_1.$get().addr(39);
144 $t40_41.$set('/$sw/$runtime/subtle.mjs');
145 $t41_42 = $t0_1.$get().addr(40);
146 $t41_42.$set('/$sw/$runtime/crypto.mjs');
147 $t42_43 = $t0_1.$get().addr(41);
148 $t42_43.$set('/$sw/$runtime/ws.mjs');
149 $t43_44 = $t0_1.$get().addr(42);
150 $t43_44.$set('/$sw/$runtime/bc.mjs');
151 $t44_45 = $rt.builtin.sliceSlice($t0_1.$get(), undefined, undefined, undefined);
152 appFiles.$set($t44_45);
153 return;
154 }
155
156 export function connectBus() {
157 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11;
158 let $block = 0;
159 while (true) {
160 switch ($block) {
161 case 0: {
162 $t0_1 = broadcastToClients('["SW_LOG","shell","bus connecting vv0.65.57"]');
163 $t1_2 = common$jsbridge$bc.Open('smesh-bus', connectBus$1);
164 bus.$set($t1_2);
165 $t2_3 = bus.$get();
166 $t3_4 = jstr('v0.65.57');
167 $t4_5 = ('{"from":"shell","to":"*","msg":["PING",' + $t3_4);
168 $t5_6 = ($t4_5 + ']}');
169 $t6_7 = common$jsbridge$bc.Send($t2_3, $t5_6);
170 $t7_8 = myPubkey.$get();
171 $t8_9 = ($t7_8 === '');
172 if ($t8_9) {
173 $block = 1; break;
174 }
175 else {
176 $block = 2; break;
177 }
178 break;
179 }
180 case 1: {
181 $t9_10 = broadcastToClients('["NEED_IDENTITY"]');
182 $block = 2; break;
183 break;
184 }
185 case 2: {
186 $t10_11 = common$jsbridge$sw.SetTimeout(30000, connectBus$2);
187 return;
188 break;
189 }
190 }
191 }
192 }
193
194 function connectBus$1(msg) {
195 let $t0_1;
196 $t0_1 = onBusMessage(msg);
197 return;
198 }
199
200 function connectBus$2() {
201 let $t0_1, $t1_2, $t2_3;
202 let $block = 0;
203 while (true) {
204 switch ($block) {
205 case 0: {
206 $t0_1 = relayReady.$get();
207 if ($t0_1) {
208 $block = 2; break;
209 }
210 else {
211 $block = 1; break;
212 }
213 break;
214 }
215 case 1: {
216 $t1_2 = common$jsbridge$sw.Log('shell: relay SW not responding after 30s');
217 $t2_3 = broadcastToClients('["SW_STATUS","relay-timeout"]');
218 $block = 2; break;
219 break;
220 }
221 case 2: {
222 return;
223 break;
224 }
225 }
226 }
227 }
228
229 export function busSend(to, msg) {
230 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19;
231 let $block = 0;
232 while (true) {
233 switch ($block) {
234 case 0: {
235 $t0_1 = jstr(to);
236 $t1_2 = ('{"from":"shell","to":' + $t0_1);
237 $t2_3 = ($t1_2 + ',"msg":');
238 $t3_4 = ($t2_3 + msg);
239 $t4_5 = ($t3_4 + '}');
240 $t5_6 = (to === 'relay');
241 if ($t5_6) {
242 $block = 3; break;
243 }
244 else {
245 $block = 2; break;
246 }
247 break;
248 }
249 case 1: {
250 $t6_7 = relayQueue.$get();
251 $t7_8 = $rt.builtin.len($t6_7);
252 $t8_9 = ($t7_8 >= 256);
253 if ($t8_9) {
254 $block = 4; break;
255 }
256 else {
257 $block = 5; break;
258 }
259 break;
260 }
261 case 2: {
262 $t9_10 = bus.$get();
263 $t10_11 = common$jsbridge$bc.Send($t9_10, $t4_5);
264 return;
265 break;
266 }
267 case 3: {
268 $t11_12 = relayReady.$get();
269 if ($t11_12) {
270 $block = 2; break;
271 }
272 else {
273 $block = 1; break;
274 }
275 break;
276 }
277 case 4: {
278 $t12_13 = relayQueue.$get();
279 $t13_14 = $rt.builtin.sliceSlice($t12_13, 1, undefined, undefined);
280 relayQueue.$set($t13_14);
281 $block = 5; break;
282 break;
283 }
284 case 5: {
285 $t14_15 = relayQueue.$get();
286 $t15_16 = { $value: $rt.builtin.makeSlice(1, 1, ''), $get() { return this.$value; }, $set(v) { this.$value = v; } };
287 $t16_17 = $t15_16.$get().addr(0);
288 $t16_17.$set($t4_5);
289 $t17_18 = $rt.builtin.sliceSlice($t15_16.$get(), undefined, undefined, undefined);
290 $t18_19 = $rt.builtin.appendSlice($t14_15, $t17_18);
291 relayQueue.$set($t18_19);
292 return;
293 break;
294 }
295 }
296 }
297 }
298
299 export function flushQueue(to) {
300 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14;
301 let $block = 0;
302 while (true) {
303 switch ($block) {
304 case 0: {
305 $t0_1 = (to !== 'relay');
306 if ($t0_1) {
307 $block = 1; break;
308 }
309 else {
310 $block = 2; break;
311 }
312 break;
313 }
314 case 1: {
315 return;
316 break;
317 }
318 case 2: {
319 $t1_2 = relayQueue.$get();
320 $t2_3 = $rt.builtin.len($t1_2);
321 $t3_4 = ($t2_3 > 0);
322 relayReady.$set(true);
323 $t4_5 = relayQueue.$get();
324 $t5_6 = $rt.builtin.len($t4_5);
325 $t6_7 = -1;
326 $block = 3; break;
327 break;
328 }
329 case 3: {
330 $t7_8 = ($t6_7 + 1);
331 $t8_9 = ($t7_8 < $t5_6);
332 if ($t8_9) {
333 $block = 4; break;
334 }
335 else {
336 $block = 5; break;
337 }
338 break;
339 }
340 case 4: {
341 $t9_10 = $t4_5.addr($t7_8);
342 $t10_11 = $t9_10.$get();
343 $t11_12 = bus.$get();
344 $t12_13 = common$jsbridge$bc.Send($t11_12, $t10_11);
345 $t6_7 = $t7_8;
346 $block = 3; break;
347 break;
348 }
349 case 5: {
350 relayQueue.$set(null);
351 if ($t3_4) {
352 $block = 7; break;
353 }
354 else {
355 $block = 6; break;
356 }
357 break;
358 }
359 case 6: {
360 $t13_14 = broadcastToClients('["RESUB"]');
361 $block = 7; break;
362 break;
363 }
364 case 7: {
365 return;
366 break;
367 }
368 }
369 }
370 }
371
372 export function onBusMessage(raw) {
373 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46, $t46_47, $t47_48, $t48_49, $t49_50, $t50_51, $t51_52, $t52_53, $t53_54, $t54_55, $t55_56, $t56_57, $t57_58, $t58_59, $t59_60, $t60_61, $t61_62, $t62_63, $t63_64, $t64_65, $t65_66, $t66_67, $t67_68, $t68_69, $t69_70, $t70_71, $t71_72, $t72_73, $t73_74, $t74_75, $t75_76, $t76_77;
374 let $block = 0;
375 while (true) {
376 switch ($block) {
377 case 0: {
378 $t0_1 = jsonField(raw, 'from');
379 $t1_2 = ($t0_1 === 'shell');
380 if ($t1_2) {
381 $block = 1; break;
382 }
383 else {
384 $block = 2; break;
385 }
386 break;
387 }
388 case 1: {
389 return;
390 break;
391 }
392 case 2: {
393 $t2_3 = jsonField(raw, 'to');
394 $t3_4 = ($t2_3 !== 'shell');
395 if ($t3_4) {
396 $block = 5; break;
397 }
398 else {
399 $block = 4; break;
400 }
401 break;
402 }
403 case 3: {
404 return;
405 break;
406 }
407 case 4: {
408 $t4_5 = jsonFieldRaw(raw, 'msg');
409 $t5_6 = ($t4_5 === '');
410 if ($t5_6) {
411 $block = 6; break;
412 }
413 else {
414 $block = 7; break;
415 }
416 break;
417 }
418 case 5: {
419 $t6_7 = ($t2_3 !== '*');
420 if ($t6_7) {
421 $block = 3; break;
422 }
423 else {
424 $block = 4; break;
425 }
426 break;
427 }
428 case 6: {
429 return;
430 break;
431 }
432 case 7: {
433 $t7_8 = { $value: { s: '', i: 0 }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
434 $t8_9 = newMW($t4_5);
435 $t7_8.$set($rt.builtin.cloneValue($t8_9));
436 $t9_10 = mw$str($t7_8);
437 $t10_11 = ($t9_10 === 'READY');
438 if ($t10_11) {
439 $block = 8; break;
440 }
441 else {
442 $block = 9; break;
443 }
444 break;
445 }
446 case 8: {
447 $t11_12 = mw$str($t7_8);
448 $t12_13 = ('["SW_LOG","shell","READY from ' + $t0_1);
449 $t13_14 = ($t12_13 + ' v=');
450 $t14_15 = ($t13_14 + $t11_12);
451 $t15_16 = ($t14_15 + '"]');
452 $t16_17 = broadcastToClients($t15_16);
453 $t17_18 = ($t11_12 !== '');
454 if ($t17_18) {
455 $block = 12; break;
456 }
457 else {
458 $block = 11; break;
459 }
460 break;
461 }
462 case 9: {
463 $t18_19 = ($t0_1 === 'relay');
464 if ($t18_19) {
465 $block = 15; break;
466 }
467 else {
468 $block = 14; break;
469 }
470 break;
471 }
472 case 10: {
473 $t19_20 = ('shell: version mismatch from ' + $t0_1);
474 $t20_21 = ($t19_20 + ': ');
475 $t21_22 = ($t20_21 + $t11_12);
476 $t22_23 = ($t21_22 + ' != ');
477 $t23_24 = ($t22_23 + 'v0.65.57');
478 $t24_25 = common$jsbridge$sw.Log($t23_24);
479 $t25_26 = jstr($t0_1);
480 $t26_27 = ('["FORCE_UPDATE_SW",' + $t25_26);
481 $t27_28 = ($t26_27 + ']');
482 $t28_29 = broadcastToClients($t27_28);
483 return;
484 break;
485 }
486 case 11: {
487 $t29_30 = flushQueue($t0_1);
488 return;
489 break;
490 }
491 case 12: {
492 $t30_31 = ($t11_12 !== 'v0.65.57');
493 if ($t30_31) {
494 $block = 10; break;
495 }
496 else {
497 $block = 11; break;
498 }
499 break;
500 }
501 case 13: {
502 $t31_32 = flushQueue('relay');
503 $block = 14; break;
504 break;
505 }
506 case 14: {
507 $t32_33 = ($t9_10 !== 'LOG');
508 if ($t32_33) {
509 $block = 20; break;
510 }
511 else {
512 $block = 17; break;
513 }
514 break;
515 }
516 case 15: {
517 $t33_34 = relayReady.$get();
518 if ($t33_34) {
519 $block = 14; break;
520 }
521 else {
522 $block = 13; break;
523 }
524 break;
525 }
526 case 16: {
527 $t34_35 = ('shell: bus ' + $t0_1);
528 $t35_36 = ($t34_35 + '→');
529 $t36_37 = ($t35_36 + $t9_10);
530 $t37_38 = common$jsbridge$sw.Log($t36_37);
531 $block = 17; break;
532 break;
533 }
534 case 17: {
535 $t38_39 = ($t9_10 === 'LOG');
536 if ($t38_39) {
537 $block = 22; break;
538 }
539 else {
540 $block = 24; break;
541 }
542 break;
543 }
544 case 18: {
545 $t39_40 = ($t9_10 !== 'FWD_BATCH');
546 if ($t39_40) {
547 $block = 16; break;
548 }
549 else {
550 $block = 17; break;
551 }
552 break;
553 }
554 case 19: {
555 $t40_41 = ($t9_10 !== 'FWD_ALL');
556 if ($t40_41) {
557 $block = 18; break;
558 }
559 else {
560 $block = 17; break;
561 }
562 break;
563 }
564 case 20: {
565 $t41_42 = ($t9_10 !== 'FWD');
566 if ($t41_42) {
567 $block = 19; break;
568 }
569 else {
570 $block = 17; break;
571 }
572 break;
573 }
574 case 21: {
575 return;
576 break;
577 }
578 case 22: {
579 $t42_43 = mw$str($t7_8);
580 $t43_44 = mw$str($t7_8);
581 $t44_45 = jstr($t42_43);
582 $t45_46 = ('["SW_LOG",' + $t44_45);
583 $t46_47 = ($t45_46 + ',');
584 $t47_48 = jstr($t43_44);
585 $t48_49 = ($t46_47 + $t47_48);
586 $t49_50 = ($t48_49 + ']');
587 $t50_51 = broadcastToClients($t49_50);
588 return;
589 break;
590 }
591 case 23: {
592 $t51_52 = mw$str($t7_8);
593 $t52_53 = mw$raw($t7_8);
594 $t53_54 = dispatchFwd($t51_52, $t52_53);
595 $block = 21; break;
596 break;
597 }
598 case 24: {
599 $t54_55 = ($t9_10 === 'FWD');
600 if ($t54_55) {
601 $block = 23; break;
602 }
603 else {
604 $block = 26; break;
605 }
606 break;
607 }
608 case 25: {
609 $t55_56 = mw$raw($t7_8);
610 $t56_57 = broadcastToClients($t55_56);
611 $block = 21; break;
612 break;
613 }
614 case 26: {
615 $t57_58 = ($t9_10 === 'FWD_ALL');
616 if ($t57_58) {
617 $block = 25; break;
618 }
619 else {
620 $block = 28; break;
621 }
622 break;
623 }
624 case 27: {
625 $t58_59 = dispatchFwdBatch($t4_5);
626 $block = 21; break;
627 break;
628 }
629 case 28: {
630 $t59_60 = ($t9_10 === 'FWD_BATCH');
631 if ($t59_60) {
632 $block = 27; break;
633 }
634 else {
635 $block = 30; break;
636 }
637 break;
638 }
639 case 29: {
640 $t60_61 = { $value: '', $get() { return this.$value; }, $set(v) { this.$value = v; } };
641 $t61_62 = mw$str($t7_8);
642 $t60_61.$set($t61_62);
643 $t62_63 = { $value: 0, $get() { return this.$value; }, $set(v) { this.$value = v; } };
644 $t63_64 = mw$num($t7_8);
645 $t64_65 = $t63_64;
646 $t62_63.$set($t64_65);
647 $t65_66 = mw$str($t7_8);
648 $t66_67 = mw$str($t7_8);
649 $t67_68 = mw$str($t7_8);
650 $t68_69 = onBusMessage$1.bind(null, $t60_61, $t62_63);
651 $t69_70 = cryptoProxy($t65_66, $t66_67, $t67_68, $t68_69);
652 $block = 21; break;
653 break;
654 }
655 case 30: {
656 $t70_71 = ($t9_10 === 'CRYPTO_REQ');
657 if ($t70_71) {
658 $block = 29; break;
659 }
660 else {
661 $block = 32; break;
662 }
663 break;
664 }
665 case 31: {
666 $t71_72 = mw$str($t7_8);
667 $t72_73 = jstr($t71_72);
668 $t73_74 = ('["DM_HISTORY_CLEARED",' + $t72_73);
669 $t74_75 = ($t73_74 + ']');
670 $t75_76 = broadcastToClients($t74_75);
671 $block = 21; break;
672 break;
673 }
674 case 32: {
675 $t76_77 = ($t9_10 === 'DM_HISTORY_CLEARED');
676 if ($t76_77) {
677 $block = 31; break;
678 }
679 else {
680 $block = 21; break;
681 }
682 break;
683 }
684 }
685 }
686 }
687
688 function onBusMessage$1(from, id, result, errMsg) {
689 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13;
690 $t0_1 = from.$get();
691 $t1_2 = id.$get();
692 $t2_3 = $t1_2;
693 $t3_4 = common$helpers.Itoa($t2_3);
694 $t4_5 = ('["CRYPTO_RESULT",' + $t3_4);
695 $t5_6 = ($t4_5 + ',');
696 $t6_7 = jstr(result);
697 $t7_8 = ($t5_6 + $t6_7);
698 $t8_9 = ($t7_8 + ',');
699 $t9_10 = jstr(errMsg);
700 $t10_11 = ($t8_9 + $t9_10);
701 $t11_12 = ($t10_11 + ']');
702 $t12_13 = busSend($t0_1, $t11_12);
703 return;
704 }
705
706 export function dispatchFwd(clientID, innerMsg) {
707 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5;
708 let $block = 0;
709 while (true) {
710 switch ($block) {
711 case 0: {
712 $t0_1 = (clientID === '');
713 if ($t0_1) {
714 $block = 1; break;
715 }
716 else {
717 $block = 3; break;
718 }
719 break;
720 }
721 case 1: {
722 $t1_2 = hasMarmotSub(innerMsg);
723 if ($t1_2) {
724 $block = 4; break;
725 }
726 else {
727 $block = 5; break;
728 }
729 break;
730 }
731 case 2: {
732 return;
733 break;
734 }
735 case 3: {
736 $t2_3 = sendToClient(clientID, innerMsg);
737 $block = 2; break;
738 break;
739 }
740 case 4: {
741 $t3_4 = deliverMarmotEvent(innerMsg);
742 $block = 2; break;
743 break;
744 }
745 case 5: {
746 $t4_5 = broadcastToClients(innerMsg);
747 $block = 2; break;
748 break;
749 }
750 }
751 }
752 }
753
754 export function dispatchFwdBatch(raw) {
755 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46, $t46_47, $t47_48, $t48_49, $t49_50, $t50_51, $t51_52, $t52_53, $t53_54, $t54_55, $t55_56, $t56_57, $t57_58, $t58_59;
756 let $block = 0;
757 while (true) {
758 switch ($block) {
759 case 0: {
760 $t0_1 = { $value: { s: '', i: 0 }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
761 $t1_2 = newMW(raw);
762 $t0_1.$set($rt.builtin.cloneValue($t1_2));
763 $t2_3 = mw$str($t0_1);
764 $t3_4 = mw$sep($t0_1);
765 $t4_5 = { $get() { return $t0_1.$get().i; }, $set(v) { const obj = $t0_1.$get(); obj.i = v; $t0_1.$set(obj); } };
766 $t5_6 = $t4_5.$get();
767 $t6_7 = { $get() { return $t0_1.$get().s; }, $set(v) { const obj = $t0_1.$get(); obj.s = v; $t0_1.$set(obj); } };
768 $t7_8 = $t6_7.$get();
769 $t8_9 = $rt.builtin.len($t7_8);
770 $t9_10 = ($t5_6 >= $t8_9);
771 if ($t9_10) {
772 $block = 1; break;
773 }
774 else {
775 $block = 3; break;
776 }
777 break;
778 }
779 case 1: {
780 return;
781 break;
782 }
783 case 2: {
784 $t10_11 = { $get() { return $t0_1.$get().i; }, $set(v) { const obj = $t0_1.$get(); obj.i = v; $t0_1.$set(obj); } };
785 $t11_12 = $t10_11.$get();
786 $t12_13 = ($t11_12 + 1);
787 $t13_14 = { $get() { return $t0_1.$get().i; }, $set(v) { const obj = $t0_1.$get(); obj.i = v; $t0_1.$set(obj); } };
788 $t13_14.$set($t12_13);
789 $block = 4; break;
790 break;
791 }
792 case 3: {
793 $t14_15 = { $get() { return $t0_1.$get().i; }, $set(v) { const obj = $t0_1.$get(); obj.i = v; $t0_1.$set(obj); } };
794 $t15_16 = $t14_15.$get();
795 $t16_17 = { $get() { return $t0_1.$get().s; }, $set(v) { const obj = $t0_1.$get(); obj.s = v; $t0_1.$set(obj); } };
796 $t17_18 = $t16_17.$get();
797 $rt.runtime.boundsCheck($t15_16, $rt.builtin.byteLen($t17_18));
798 $t18_19 = $rt.builtin.stringByteAt($t17_18, $t15_16);
799 $t19_20 = ($t18_19 !== 91);
800 if ($t19_20) {
801 $block = 1; break;
802 }
803 else {
804 $block = 2; break;
805 }
806 break;
807 }
808 case 4: {
809 $t20_21 = mw$sep($t0_1);
810 $t21_22 = { $get() { return $t0_1.$get().i; }, $set(v) { const obj = $t0_1.$get(); obj.i = v; $t0_1.$set(obj); } };
811 $t22_23 = $t21_22.$get();
812 $t23_24 = { $get() { return $t0_1.$get().s; }, $set(v) { const obj = $t0_1.$get(); obj.s = v; $t0_1.$set(obj); } };
813 $t24_25 = $t23_24.$get();
814 $t25_26 = $rt.builtin.len($t24_25);
815 $t26_27 = ($t22_23 >= $t25_26);
816 if ($t26_27) {
817 $block = 5; break;
818 }
819 else {
820 $block = 7; break;
821 }
822 break;
823 }
824 case 5: {
825 return;
826 break;
827 }
828 case 6: {
829 $t27_28 = { $get() { return $t0_1.$get().i; }, $set(v) { const obj = $t0_1.$get(); obj.i = v; $t0_1.$set(obj); } };
830 $t28_29 = $t27_28.$get();
831 $t29_30 = { $get() { return $t0_1.$get().s; }, $set(v) { const obj = $t0_1.$get(); obj.s = v; $t0_1.$set(obj); } };
832 $t30_31 = $t29_30.$get();
833 $t31_32 = { $get() { return $t0_1.$get().i; }, $set(v) { const obj = $t0_1.$get(); obj.i = v; $t0_1.$set(obj); } };
834 $t32_33 = $t31_32.$get();
835 $t33_34 = skipval($t30_31, $t32_33);
836 $t34_35 = { $get() { return $t0_1.$get().i; }, $set(v) { const obj = $t0_1.$get(); obj.i = v; $t0_1.$set(obj); } };
837 $t34_35.$set($t33_34);
838 $t35_36 = { $get() { return $t0_1.$get().i; }, $set(v) { const obj = $t0_1.$get(); obj.i = v; $t0_1.$set(obj); } };
839 $t36_37 = $t35_36.$get();
840 $t37_38 = ($t36_37 < 0);
841 if ($t37_38) {
842 $block = 5; break;
843 }
844 else {
845 $block = 8; break;
846 }
847 break;
848 }
849 case 7: {
850 $t38_39 = { $get() { return $t0_1.$get().i; }, $set(v) { const obj = $t0_1.$get(); obj.i = v; $t0_1.$set(obj); } };
851 $t39_40 = $t38_39.$get();
852 $t40_41 = { $get() { return $t0_1.$get().s; }, $set(v) { const obj = $t0_1.$get(); obj.s = v; $t0_1.$set(obj); } };
853 $t41_42 = $t40_41.$get();
854 $rt.runtime.boundsCheck($t39_40, $rt.builtin.byteLen($t41_42));
855 $t42_43 = $rt.builtin.stringByteAt($t41_42, $t39_40);
856 $t43_44 = ($t42_43 === 93);
857 if ($t43_44) {
858 $block = 5; break;
859 }
860 else {
861 $block = 6; break;
862 }
863 break;
864 }
865 case 8: {
866 $t44_45 = { $get() { return $t0_1.$get().s; }, $set(v) { const obj = $t0_1.$get(); obj.s = v; $t0_1.$set(obj); } };
867 $t45_46 = $t44_45.$get();
868 $t46_47 = { $get() { return $t0_1.$get().i; }, $set(v) { const obj = $t0_1.$get(); obj.i = v; $t0_1.$set(obj); } };
869 $t47_48 = $t46_47.$get();
870 $t48_49 = $rt.builtin.stringSlice($t45_46, $t28_29, $t47_48);
871 $t49_50 = { $value: { s: '', i: 0 }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
872 $t50_51 = newMW($t48_49);
873 $t49_50.$set($rt.builtin.cloneValue($t50_51));
874 $t51_52 = mw$str($t49_50);
875 $t52_53 = ($t51_52 === 'FWD');
876 if ($t52_53) {
877 $block = 9; break;
878 }
879 else {
880 $block = 11; break;
881 }
882 break;
883 }
884 case 9: {
885 $t53_54 = mw$str($t49_50);
886 $t54_55 = mw$raw($t49_50);
887 $t55_56 = dispatchFwd($t53_54, $t54_55);
888 $block = 4; break;
889 break;
890 }
891 case 10: {
892 $t56_57 = mw$raw($t49_50);
893 $t57_58 = broadcastToClients($t56_57);
894 $block = 4; break;
895 break;
896 }
897 case 11: {
898 $t58_59 = ($t51_52 === 'FWD_ALL');
899 if ($t58_59) {
900 $block = 10; break;
901 }
902 else {
903 $block = 4; break;
904 }
905 break;
906 }
907 }
908 }
909 }
910
911 export function hasMarmotSub(msg) {
912 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5;
913 let $block = 0;
914 while (true) {
915 switch ($block) {
916 case 0: {
917 $t0_1 = $rt.builtin.len(msg);
918 $t1_2 = ($t0_1 > 21);
919 if ($t1_2) {
920 $block = 1; break;
921 }
922 else {
923 $t4_5 = false;
924 $block = 2; break;
925 }
926 break;
927 }
928 case 1: {
929 $t2_3 = $rt.builtin.stringSlice(msg, undefined, 21);
930 $t3_4 = ($t2_3 === '["EVENT","marmot-sub-');
931 $t4_5 = $t3_4;
932 $block = 2; break;
933 break;
934 }
935 case 2: {
936 return $t4_5;
937 break;
938 }
939 }
940 }
941 }
942
943 export function deliverMarmotEvent(msg) {
944 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12;
945 $t0_1 = { $value: { s: '', i: 0 }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
946 $t1_2 = newMW(msg);
947 $t0_1.$set($rt.builtin.cloneValue($t1_2));
948 $t2_3 = mw$str($t0_1);
949 $t3_4 = mw$str($t0_1);
950 $t4_5 = mw$raw($t0_1);
951 $t5_6 = $rt.builtin.stringSlice($t3_4, 11, undefined);
952 $t6_7 = ('["MLS_PROXY","deliverEvent",' + $t5_6);
953 $t7_8 = ($t6_7 + ',');
954 $t8_9 = jstr($t4_5);
955 $t9_10 = ($t7_8 + $t8_9);
956 $t10_11 = ($t9_10 + ']');
957 $t11_12 = broadcastToClients($t10_11);
958 return;
959 }
960
961 export function jsonField(json, key) {
962 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13;
963 let $block = 0;
964 while (true) {
965 switch ($block) {
966 case 0: {
967 $t0_1 = jsonFieldRaw(json, key);
968 $t1_2 = $rt.builtin.len($t0_1);
969 $t2_3 = ($t1_2 >= 2);
970 if ($t2_3) {
971 $block = 4; break;
972 }
973 else {
974 $block = 2; break;
975 }
976 break;
977 }
978 case 1: {
979 $t3_4 = $rt.builtin.len($t0_1);
980 $t4_5 = ($t3_4 - 1);
981 $t5_6 = $rt.builtin.stringSlice($t0_1, 1, $t4_5);
982 $t6_7 = jsonUnescape($t5_6);
983 return $t6_7;
984 break;
985 }
986 case 2: {
987 return $t0_1;
988 break;
989 }
990 case 3: {
991 $t7_8 = $rt.builtin.len($t0_1);
992 $t8_9 = ($t7_8 - 1);
993 $rt.runtime.boundsCheck($t8_9, $rt.builtin.byteLen($t0_1));
994 $t9_10 = $rt.builtin.stringByteAt($t0_1, $t8_9);
995 $t10_11 = ($t9_10 === 34);
996 if ($t10_11) {
997 $block = 1; break;
998 }
999 else {
1000 $block = 2; break;
1001 }
1002 break;
1003 }
1004 case 4: {
1005 $rt.runtime.boundsCheck(0, $rt.builtin.byteLen($t0_1));
1006 $t11_12 = $rt.builtin.stringByteAt($t0_1, 0);
1007 $t12_13 = ($t11_12 === 34);
1008 if ($t12_13) {
1009 $block = 3; break;
1010 }
1011 else {
1012 $block = 2; break;
1013 }
1014 break;
1015 }
1016 }
1017 }
1018 }
1019
1020 export function jsonUnescape(s) {
1021 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46, $t46_47, $t47_48, $t48_49, $t49_50, $t50_51, $t51_52, $t52_53, $t53_54, $t54_55, $t55_56, $t56_57, $t57_58, $t58_59, $t59_60, $t60_61, $t61_62, $t62_63, $t63_64, $t64_65, $t65_66, $t66_67, $t67_68, $t68_69, $t69_70, $t70_71;
1022 let $block = 0;
1023 while (true) {
1024 switch ($block) {
1025 case 0: {
1026 $t0_1 = $rt.builtin.len(s);
1027 $t1_2 = ($t0_1 === 0);
1028 if ($t1_2) {
1029 $block = 1; break;
1030 }
1031 else {
1032 $block = 2; break;
1033 }
1034 break;
1035 }
1036 case 1: {
1037 return s;
1038 break;
1039 }
1040 case 2: {
1041 $t2_3 = 0;
1042 $block = 3; break;
1043 break;
1044 }
1045 case 3: {
1046 $t3_4 = $rt.builtin.len(s);
1047 $t4_5 = ($t2_3 < $t3_4);
1048 if ($t4_5) {
1049 $block = 4; break;
1050 }
1051 else {
1052 $t7_8 = false;
1053 $block = 5; break;
1054 }
1055 break;
1056 }
1057 case 4: {
1058 $rt.runtime.boundsCheck($t2_3, $rt.builtin.byteLen(s));
1059 $t5_6 = $rt.builtin.stringByteAt(s, $t2_3);
1060 $t6_7 = ($t5_6 === 92);
1061 if ($t6_7) {
1062 $block = 6; break;
1063 }
1064 else {
1065 $block = 7; break;
1066 }
1067 break;
1068 }
1069 case 5: {
1070 if ($t7_8) {
1071 $block = 9; break;
1072 }
1073 else {
1074 $block = 8; break;
1075 }
1076 break;
1077 }
1078 case 6: {
1079 $t7_8 = true;
1080 $block = 5; break;
1081 break;
1082 }
1083 case 7: {
1084 $t8_9 = ($t2_3 + 1);
1085 $t2_3 = $t8_9;
1086 $block = 3; break;
1087 break;
1088 }
1089 case 8: {
1090 return s;
1091 break;
1092 }
1093 case 9: {
1094 $t9_10 = $rt.builtin.len(s);
1095 $t10_11 = $rt.builtin.makeSlice(0, $t9_10, 0);
1096 $t11_12 = $t10_11;
1097 $t12_13 = 0;
1098 $block = 10; break;
1099 break;
1100 }
1101 case 10: {
1102 $t13_14 = $rt.builtin.len(s);
1103 $t14_15 = ($t12_13 < $t13_14);
1104 if ($t14_15) {
1105 $block = 11; break;
1106 }
1107 else {
1108 $block = 12; break;
1109 }
1110 break;
1111 }
1112 case 11: {
1113 $rt.runtime.boundsCheck($t12_13, $rt.builtin.byteLen(s));
1114 $t15_16 = $rt.builtin.stringByteAt(s, $t12_13);
1115 $t16_17 = ($t15_16 === 92);
1116 if ($t16_17) {
1117 $block = 16; break;
1118 }
1119 else {
1120 $block = 15; break;
1121 }
1122 break;
1123 }
1124 case 12: {
1125 $t17_18 = $rt.builtin.bytesToString($t11_12);
1126 return $t17_18;
1127 break;
1128 }
1129 case 13: {
1130 $t18_19 = ($t12_13 + 1);
1131 $rt.runtime.boundsCheck($t18_19, $rt.builtin.byteLen(s));
1132 $t19_20 = $rt.builtin.stringByteAt(s, $t18_19);
1133 $t20_21 = ($t19_20 === 110);
1134 if ($t20_21) {
1135 $block = 18; break;
1136 }
1137 else {
1138 $block = 20; break;
1139 }
1140 break;
1141 }
1142 case 14: {
1143 $t23_24 = ($t22_23 + 1);
1144 $t11_12 = $t21_22;
1145 $t12_13 = $t23_24;
1146 $block = 10; break;
1147 break;
1148 }
1149 case 15: {
1150 $rt.runtime.boundsCheck($t12_13, $rt.builtin.byteLen(s));
1151 $t24_25 = $rt.builtin.stringByteAt(s, $t12_13);
1152 $t25_26 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1153 $t26_27 = $t25_26.$get().addr(0);
1154 $t26_27.$set($t24_25);
1155 $t27_28 = $rt.builtin.sliceSlice($t25_26.$get(), undefined, undefined, undefined);
1156 $t28_29 = $rt.builtin.appendSlice($t11_12, $t27_28);
1157 $t21_22 = $t28_29;
1158 $t22_23 = $t12_13;
1159 $block = 14; break;
1160 break;
1161 }
1162 case 16: {
1163 $t29_30 = ($t12_13 + 1);
1164 $t30_31 = $rt.builtin.len(s);
1165 $t31_32 = ($t29_30 < $t30_31);
1166 if ($t31_32) {
1167 $block = 13; break;
1168 }
1169 else {
1170 $block = 15; break;
1171 }
1172 break;
1173 }
1174 case 17: {
1175 $t33_34 = ($t12_13 + 1);
1176 $t21_22 = $t32_33;
1177 $t22_23 = $t33_34;
1178 $block = 14; break;
1179 break;
1180 }
1181 case 18: {
1182 $t34_35 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1183 $t35_36 = $t34_35.$get().addr(0);
1184 $t35_36.$set(10);
1185 $t36_37 = $rt.builtin.sliceSlice($t34_35.$get(), undefined, undefined, undefined);
1186 $t37_38 = $rt.builtin.appendSlice($t11_12, $t36_37);
1187 $t32_33 = $t37_38;
1188 $block = 17; break;
1189 break;
1190 }
1191 case 19: {
1192 $t38_39 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1193 $t39_40 = $t38_39.$get().addr(0);
1194 $t39_40.$set(9);
1195 $t40_41 = $rt.builtin.sliceSlice($t38_39.$get(), undefined, undefined, undefined);
1196 $t41_42 = $rt.builtin.appendSlice($t11_12, $t40_41);
1197 $t32_33 = $t41_42;
1198 $block = 17; break;
1199 break;
1200 }
1201 case 20: {
1202 $t42_43 = ($t19_20 === 116);
1203 if ($t42_43) {
1204 $block = 19; break;
1205 }
1206 else {
1207 $block = 22; break;
1208 }
1209 break;
1210 }
1211 case 21: {
1212 $t43_44 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1213 $t44_45 = $t43_44.$get().addr(0);
1214 $t44_45.$set(13);
1215 $t45_46 = $rt.builtin.sliceSlice($t43_44.$get(), undefined, undefined, undefined);
1216 $t46_47 = $rt.builtin.appendSlice($t11_12, $t45_46);
1217 $t32_33 = $t46_47;
1218 $block = 17; break;
1219 break;
1220 }
1221 case 22: {
1222 $t47_48 = ($t19_20 === 114);
1223 if ($t47_48) {
1224 $block = 21; break;
1225 }
1226 else {
1227 $block = 24; break;
1228 }
1229 break;
1230 }
1231 case 23: {
1232 $t48_49 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1233 $t49_50 = $t48_49.$get().addr(0);
1234 $t49_50.$set(92);
1235 $t50_51 = $rt.builtin.sliceSlice($t48_49.$get(), undefined, undefined, undefined);
1236 $t51_52 = $rt.builtin.appendSlice($t11_12, $t50_51);
1237 $t32_33 = $t51_52;
1238 $block = 17; break;
1239 break;
1240 }
1241 case 24: {
1242 $t52_53 = ($t19_20 === 92);
1243 if ($t52_53) {
1244 $block = 23; break;
1245 }
1246 else {
1247 $block = 26; break;
1248 }
1249 break;
1250 }
1251 case 25: {
1252 $t53_54 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1253 $t54_55 = $t53_54.$get().addr(0);
1254 $t54_55.$set(34);
1255 $t55_56 = $rt.builtin.sliceSlice($t53_54.$get(), undefined, undefined, undefined);
1256 $t56_57 = $rt.builtin.appendSlice($t11_12, $t55_56);
1257 $t32_33 = $t56_57;
1258 $block = 17; break;
1259 break;
1260 }
1261 case 26: {
1262 $t57_58 = ($t19_20 === 34);
1263 if ($t57_58) {
1264 $block = 25; break;
1265 }
1266 else {
1267 $block = 28; break;
1268 }
1269 break;
1270 }
1271 case 27: {
1272 $t58_59 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1273 $t59_60 = $t58_59.$get().addr(0);
1274 $t59_60.$set(47);
1275 $t60_61 = $rt.builtin.sliceSlice($t58_59.$get(), undefined, undefined, undefined);
1276 $t61_62 = $rt.builtin.appendSlice($t11_12, $t60_61);
1277 $t32_33 = $t61_62;
1278 $block = 17; break;
1279 break;
1280 }
1281 case 28: {
1282 $t62_63 = ($t19_20 === 47);
1283 if ($t62_63) {
1284 $block = 27; break;
1285 }
1286 else {
1287 $block = 29; break;
1288 }
1289 break;
1290 }
1291 case 29: {
1292 $rt.runtime.boundsCheck($t12_13, $rt.builtin.byteLen(s));
1293 $t63_64 = $rt.builtin.stringByteAt(s, $t12_13);
1294 $t64_65 = ($t12_13 + 1);
1295 $rt.runtime.boundsCheck($t64_65, $rt.builtin.byteLen(s));
1296 $t65_66 = $rt.builtin.stringByteAt(s, $t64_65);
1297 $t66_67 = { $value: $rt.builtin.makeSlice(2, 2, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1298 $t67_68 = $t66_67.$get().addr(0);
1299 $t67_68.$set($t63_64);
1300 $t68_69 = $t66_67.$get().addr(1);
1301 $t68_69.$set($t65_66);
1302 $t69_70 = $rt.builtin.sliceSlice($t66_67.$get(), undefined, undefined, undefined);
1303 $t70_71 = $rt.builtin.appendSlice($t11_12, $t69_70);
1304 $t32_33 = $t70_71;
1305 $block = 17; break;
1306 break;
1307 }
1308 }
1309 }
1310 }
1311
1312 export function jsonFieldRaw(json, key) {
1313 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29;
1314 let $block = 0;
1315 while (true) {
1316 switch ($block) {
1317 case 0: {
1318 $t0_1 = ('"' + key);
1319 $t1_2 = ($t0_1 + '":');
1320 $t2_3 = 0;
1321 $block = 1; break;
1322 break;
1323 }
1324 case 1: {
1325 $t3_4 = $rt.builtin.len(json);
1326 $t4_5 = $rt.builtin.len($t1_2);
1327 $t5_6 = ($t3_4 - $t4_5);
1328 $t6_7 = ($t2_3 <= $t5_6);
1329 if ($t6_7) {
1330 $block = 2; break;
1331 }
1332 else {
1333 $t11_12 = -1;
1334 $block = 3; break;
1335 }
1336 break;
1337 }
1338 case 2: {
1339 $t7_8 = $rt.builtin.len($t1_2);
1340 $t8_9 = ($t2_3 + $t7_8);
1341 $t9_10 = $rt.builtin.stringSlice(json, $t2_3, $t8_9);
1342 $t10_11 = ($t9_10 === $t1_2);
1343 if ($t10_11) {
1344 $block = 4; break;
1345 }
1346 else {
1347 $block = 5; break;
1348 }
1349 break;
1350 }
1351 case 3: {
1352 $t12_13 = ($t11_12 < 0);
1353 if ($t12_13) {
1354 $block = 6; break;
1355 }
1356 else {
1357 $t19_20 = $t11_12;
1358 $block = 9; break;
1359 }
1360 break;
1361 }
1362 case 4: {
1363 $t13_14 = $rt.builtin.len($t1_2);
1364 $t14_15 = ($t2_3 + $t13_14);
1365 $t11_12 = $t14_15;
1366 $block = 3; break;
1367 break;
1368 }
1369 case 5: {
1370 $t15_16 = ($t2_3 + 1);
1371 $t2_3 = $t15_16;
1372 $block = 1; break;
1373 break;
1374 }
1375 case 6: {
1376 return '';
1377 break;
1378 }
1379 case 7: {
1380 $t16_17 = ($t19_20 + 1);
1381 $t19_20 = $t16_17;
1382 $block = 9; break;
1383 break;
1384 }
1385 case 8: {
1386 $t17_18 = $rt.builtin.len(json);
1387 $t18_19 = ($t19_20 >= $t17_18);
1388 if ($t18_19) {
1389 $block = 12; break;
1390 }
1391 else {
1392 $block = 13; break;
1393 }
1394 break;
1395 }
1396 case 9: {
1397 $t20_21 = $rt.builtin.len(json);
1398 $t21_22 = ($t19_20 < $t20_21);
1399 if ($t21_22) {
1400 $block = 10; break;
1401 }
1402 else {
1403 $block = 8; break;
1404 }
1405 break;
1406 }
1407 case 10: {
1408 $rt.runtime.boundsCheck($t19_20, $rt.builtin.byteLen(json));
1409 $t22_23 = $rt.builtin.stringByteAt(json, $t19_20);
1410 $t23_24 = ($t22_23 === 32);
1411 if ($t23_24) {
1412 $block = 7; break;
1413 }
1414 else {
1415 $block = 11; break;
1416 }
1417 break;
1418 }
1419 case 11: {
1420 $rt.runtime.boundsCheck($t19_20, $rt.builtin.byteLen(json));
1421 $t24_25 = $rt.builtin.stringByteAt(json, $t19_20);
1422 $t25_26 = ($t24_25 === 9);
1423 if ($t25_26) {
1424 $block = 7; break;
1425 }
1426 else {
1427 $block = 8; break;
1428 }
1429 break;
1430 }
1431 case 12: {
1432 return '';
1433 break;
1434 }
1435 case 13: {
1436 $t26_27 = skipval(json, $t19_20);
1437 $t27_28 = ($t26_27 < 0);
1438 if ($t27_28) {
1439 $block = 14; break;
1440 }
1441 else {
1442 $block = 15; break;
1443 }
1444 break;
1445 }
1446 case 14: {
1447 return '';
1448 break;
1449 }
1450 case 15: {
1451 $t28_29 = $rt.builtin.stringSlice(json, $t19_20, $t26_27);
1452 return $t28_29;
1453 break;
1454 }
1455 }
1456 }
1457 }
1458
1459 export function parseTS(s) {
1460 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15;
1461 let $block = 0;
1462 while (true) {
1463 switch ($block) {
1464 case 0: {
1465 $t0_1 = 0;
1466 $t1_2 = 0;
1467 $block = 1; break;
1468 break;
1469 }
1470 case 1: {
1471 $t2_3 = $rt.builtin.len(s);
1472 $t3_4 = ($t1_2 < $t2_3);
1473 if ($t3_4) {
1474 $block = 2; break;
1475 }
1476 else {
1477 $block = 3; break;
1478 }
1479 break;
1480 }
1481 case 2: {
1482 $rt.runtime.boundsCheck($t1_2, $rt.builtin.byteLen(s));
1483 $t4_5 = $rt.builtin.stringByteAt(s, $t1_2);
1484 $t5_6 = ($t4_5 >= 48);
1485 if ($t5_6) {
1486 $block = 6; break;
1487 }
1488 else {
1489 $t11_12 = $t0_1;
1490 $block = 5; break;
1491 }
1492 break;
1493 }
1494 case 3: {
1495 return $t0_1;
1496 break;
1497 }
1498 case 4: {
1499 $t6_7 = ($t0_1 * 10);
1500 $rt.runtime.boundsCheck($t1_2, $rt.builtin.byteLen(s));
1501 $t7_8 = $rt.builtin.stringByteAt(s, $t1_2);
1502 $t8_9 = (($t7_8 - 48) & 0xFF);
1503 $t9_10 = $t8_9;
1504 $t10_11 = ($t6_7 + $t9_10);
1505 $t11_12 = $t10_11;
1506 $block = 5; break;
1507 break;
1508 }
1509 case 5: {
1510 $t12_13 = ($t1_2 + 1);
1511 $t0_1 = $t11_12;
1512 $t1_2 = $t12_13;
1513 $block = 1; break;
1514 break;
1515 }
1516 case 6: {
1517 $rt.runtime.boundsCheck($t1_2, $rt.builtin.byteLen(s));
1518 $t13_14 = $rt.builtin.stringByteAt(s, $t1_2);
1519 $t14_15 = ($t13_14 <= 57);
1520 if ($t14_15) {
1521 $block = 4; break;
1522 }
1523 else {
1524 $t11_12 = $t0_1;
1525 $block = 5; break;
1526 }
1527 break;
1528 }
1529 }
1530 }
1531 }
1532
1533 export function strsJSON(ss) {
1534 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15;
1535 let $block = 0;
1536 while (true) {
1537 switch ($block) {
1538 case 0: {
1539 $t0_1 = $rt.builtin.len(ss);
1540 $t1_2 = ($t0_1 === 0);
1541 if ($t1_2) {
1542 $block = 1; break;
1543 }
1544 else {
1545 $block = 2; break;
1546 }
1547 break;
1548 }
1549 case 1: {
1550 return '[]';
1551 break;
1552 }
1553 case 2: {
1554 $t2_3 = $rt.builtin.len(ss);
1555 $t3_4 = '[';
1556 $t4_5 = -1;
1557 $block = 3; break;
1558 break;
1559 }
1560 case 3: {
1561 $t5_6 = ($t4_5 + 1);
1562 $t6_7 = ($t5_6 < $t2_3);
1563 if ($t6_7) {
1564 $block = 4; break;
1565 }
1566 else {
1567 $block = 5; break;
1568 }
1569 break;
1570 }
1571 case 4: {
1572 $t7_8 = ss.addr($t5_6);
1573 $t8_9 = $t7_8.$get();
1574 $t9_10 = ($t5_6 > 0);
1575 if ($t9_10) {
1576 $block = 6; break;
1577 }
1578 else {
1579 $t12_13 = $t3_4;
1580 $block = 7; break;
1581 }
1582 break;
1583 }
1584 case 5: {
1585 $t10_11 = ($t3_4 + ']');
1586 return $t10_11;
1587 break;
1588 }
1589 case 6: {
1590 $t11_12 = ($t3_4 + ',');
1591 $t12_13 = $t11_12;
1592 $block = 7; break;
1593 break;
1594 }
1595 case 7: {
1596 $t13_14 = jstr($t8_9);
1597 $t14_15 = ($t12_13 + $t13_14);
1598 $t3_4 = $t14_15;
1599 $t4_5 = $t5_6;
1600 $block = 3; break;
1601 break;
1602 }
1603 }
1604 }
1605 }
1606
1607 export function identitySetPubkey(hex) {
1608 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7;
1609 let $block = 0;
1610 while (true) {
1611 switch ($block) {
1612 case 0: {
1613 $t0_1 = myPubkey.$get();
1614 $t1_2 = ($t0_1 !== '');
1615 if ($t1_2) {
1616 $block = 3; break;
1617 }
1618 else {
1619 $block = 2; break;
1620 }
1621 break;
1622 }
1623 case 1: {
1624 $t2_3 = closeMarmotSubs();
1625 $t3_4 = busSend('relay', '["CLEAR_KEY"]');
1626 $t4_5 = broadcastToClients('["RESUB"]');
1627 $block = 2; break;
1628 break;
1629 }
1630 case 2: {
1631 myPubkey.$set(hex);
1632 return;
1633 break;
1634 }
1635 case 3: {
1636 $t5_6 = myPubkey.$get();
1637 $t6_7 = (hex !== $t5_6);
1638 if ($t6_7) {
1639 $block = 1; break;
1640 }
1641 else {
1642 $block = 2; break;
1643 }
1644 break;
1645 }
1646 }
1647 }
1648 }
1649
1650 export function identityClearKey() {
1651 let $t0_1;
1652 $t0_1 = closeMarmotSubs();
1653 myPubkey.$set('');
1654 return;
1655 }
1656
1657 export function closeMarmotSubs() {
1658 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9;
1659 let $block = 0;
1660 while (true) {
1661 switch ($block) {
1662 case 0: {
1663 $t0_1 = marmotSubs.$get();
1664 $t1_2 = { $entries: [...$t0_1.entries()], $pos: 0, next() { if (this.$pos >= this.$entries.length) return [false, null, null]; const [k, v] = this.$entries[this.$pos++]; return [true, k, v]; } };
1665 $block = 1; break;
1666 break;
1667 }
1668 case 1: {
1669 $t2_3 = $t1_2.next();
1670 $t3_4 = $t2_3[0];
1671 if ($t3_4) {
1672 $block = 2; break;
1673 }
1674 else {
1675 $block = 3; break;
1676 }
1677 break;
1678 }
1679 case 2: {
1680 $t4_5 = $t2_3[1];
1681 $t5_6 = jstr($t4_5);
1682 $t6_7 = ('["CLOSE",' + $t5_6);
1683 $t7_8 = ($t6_7 + ']');
1684 $t8_9 = busSend('relay', $t7_8);
1685 $block = 1; break;
1686 break;
1687 }
1688 case 3: {
1689 marmotSubs.$set(null);
1690 return;
1691 break;
1692 }
1693 }
1694 }
1695 }
1696
1697 export function markSentDM(peer, content) {
1698 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7;
1699 $t0_1 = sentDMIdx.$get();
1700 $t1_2 = ($t0_1 % 32);
1701 $t2_3 = (peer + '\0');
1702 $t3_4 = ($t2_3 + content);
1703 $t4_5 = sentDMDedup.$get().addr($t1_2);
1704 $t4_5.$set($t3_4);
1705 $t5_6 = sentDMIdx.$get();
1706 $t6_7 = ($t5_6 + 1);
1707 sentDMIdx.$set($t6_7);
1708 return;
1709 }
1710
1711 export function isSentDMEcho(peer, content) {
1712 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8;
1713 let $block = 0;
1714 while (true) {
1715 switch ($block) {
1716 case 0: {
1717 $t0_1 = (peer + '\0');
1718 $t1_2 = ($t0_1 + content);
1719 $t2_3 = sentDMDedup.$get();
1720 $t3_4 = -1;
1721 $block = 1; break;
1722 break;
1723 }
1724 case 1: {
1725 $t4_5 = ($t3_4 + 1);
1726 $t5_6 = ($t4_5 < 32);
1727 if ($t5_6) {
1728 $block = 2; break;
1729 }
1730 else {
1731 $block = 3; break;
1732 }
1733 break;
1734 }
1735 case 2: {
1736 $t6_7 = $t2_3.get($t4_5);
1737 $t7_8 = ($t6_7 === $t1_2);
1738 if ($t7_8) {
1739 $block = 4; break;
1740 }
1741 else {
1742 $t3_4 = $t4_5;
1743 $block = 1; break;
1744 }
1745 break;
1746 }
1747 case 3: {
1748 return false;
1749 break;
1750 }
1751 case 4: {
1752 return true;
1753 break;
1754 }
1755 }
1756 }
1757 }
1758
1759 export function flushPendingSentDMs() {
1760 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24;
1761 let $block = 0;
1762 while (true) {
1763 switch ($block) {
1764 case 0: {
1765 $t0_1 = myPubkey.$get();
1766 $t1_2 = ($t0_1 === '');
1767 if ($t1_2) {
1768 $block = 1; break;
1769 }
1770 else {
1771 $block = 3; break;
1772 }
1773 break;
1774 }
1775 case 1: {
1776 return;
1777 break;
1778 }
1779 case 2: {
1780 $t2_3 = pendingSentDMs.$get();
1781 $t3_4 = $rt.builtin.len($t2_3);
1782 $t7_8 = -1;
1783 $block = 4; break;
1784 break;
1785 }
1786 case 3: {
1787 $t4_5 = pendingSentDMs.$get();
1788 $t5_6 = $rt.builtin.len($t4_5);
1789 $t6_7 = ($t5_6 === 0);
1790 if ($t6_7) {
1791 $block = 1; break;
1792 }
1793 else {
1794 $block = 2; break;
1795 }
1796 break;
1797 }
1798 case 4: {
1799 $t8_9 = ($t7_8 + 1);
1800 $t9_10 = ($t8_9 < $t3_4);
1801 if ($t9_10) {
1802 $block = 5; break;
1803 }
1804 else {
1805 $block = 6; break;
1806 }
1807 break;
1808 }
1809 case 5: {
1810 $t10_11 = $t2_3.addr($t8_9);
1811 $t11_12 = $t10_11.$get();
1812 $t12_13 = { $value: { recipient: '', content: '' }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
1813 $t12_13.$set($rt.builtin.cloneValue($t11_12));
1814 $t13_14 = common$jsbridge$sw.NowSeconds();
1815 $t14_15 = { $get() { return $t12_13.$get().recipient; }, $set(v) { const obj = $t12_13.$get(); obj.recipient = v; $t12_13.$set(obj); } };
1816 $t15_16 = $t14_15.$get();
1817 $t16_17 = myPubkey.$get();
1818 $t17_18 = { $get() { return $t12_13.$get().content; }, $set(v) { const obj = $t12_13.$get(); obj.content = v; $t12_13.$set(obj); } };
1819 $t18_19 = $t17_18.$get();
1820 $t19_20 = makeDMRecord($t15_16, $t16_17, $t18_19, $t13_14, 'marmot', '');
1821 $t20_21 = DMRecord$ToJSON($t19_20);
1822 $t21_22 = ('["SAVE_DM_QUIET",' + $t20_21);
1823 $t22_23 = ($t21_22 + ']');
1824 $t23_24 = busSend('relay', $t22_23);
1825 $t7_8 = $t8_9;
1826 $block = 4; break;
1827 break;
1828 }
1829 case 6: {
1830 pendingSentDMs.$set(null);
1831 return;
1832 break;
1833 }
1834 }
1835 }
1836 }
1837
1838 export function routeMessage(clientID, w, msgType) {
1839 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46, $t46_47, $t47_48, $t48_49, $t49_50, $t50_51, $t51_52, $t52_53, $t53_54, $t54_55, $t55_56, $t56_57, $t57_58, $t58_59, $t59_60, $t60_61, $t61_62, $t62_63, $t63_64, $t64_65, $t65_66, $t66_67, $t67_68, $t68_69, $t69_70, $t70_71, $t71_72, $t72_73, $t73_74, $t74_75, $t75_76, $t76_77, $t77_78, $t78_79, $t79_80, $t80_81, $t81_82, $t82_83, $t83_84, $t84_85, $t85_86, $t86_87, $t87_88, $t88_89, $t89_90, $t90_91, $t91_92, $t92_93, $t93_94, $t94_95, $t95_96, $t96_97, $t97_98, $t98_99, $t99_100, $t100_101, $t101_102, $t102_103, $t103_104, $t104_105, $t105_106, $t106_107, $t107_108, $t108_109, $t109_110, $t110_111, $t111_112, $t112_113, $t113_114, $t114_115, $t115_116, $t116_117, $t117_118, $t118_119, $t119_120, $t120_121, $t121_122, $t122_123, $t123_124, $t124_125, $t125_126, $t126_127, $t127_128, $t128_129, $t129_130, $t130_131, $t131_132, $t132_133, $t133_134, $t134_135, $t135_136, $t136_137, $t137_138, $t138_139, $t139_140, $t140_141, $t141_142, $t142_143, $t143_144, $t144_145, $t145_146, $t146_147, $t147_148, $t148_149, $t149_150, $t150_151, $t151_152, $t152_153, $t153_154, $t154_155, $t155_156, $t156_157, $t157_158, $t158_159, $t159_160, $t160_161, $t161_162, $t162_163, $t163_164, $t164_165, $t165_166, $t166_167, $t167_168, $t168_169, $t169_170, $t170_171, $t171_172, $t172_173, $t173_174, $t174_175, $t175_176, $t176_177, $t177_178, $t178_179, $t179_180, $t180_181, $t181_182, $t182_183, $t183_184, $t184_185, $t185_186, $t186_187, $t187_188, $t188_189, $t189_190, $t190_191, $t191_192, $t192_193, $t193_194, $t194_195, $t195_196, $t196_197, $t197_198, $t198_199, $t199_200, $t200_201, $t201_202, $t202_203, $t203_204, $t204_205, $t205_206, $t206_207, $t207_208, $t208_209, $t209_210, $t210_211, $t211_212, $t212_213, $t213_214, $t214_215, $t215_216, $t216_217, $t217_218, $t218_219, $t219_220, $t220_221, $t221_222, $t222_223, $t223_224, $t224_225, $t225_226, $t226_227, $t227_228, $t228_229, $t229_230, $t230_231, $t231_232, $t232_233, $t233_234, $t234_235, $t235_236, $t236_237, $t237_238, $t238_239, $t239_240, $t240_241, $t241_242, $t242_243, $t243_244, $t244_245, $t245_246, $t246_247, $t247_248, $t248_249, $t249_250, $t250_251, $t251_252, $t252_253, $t253_254, $t254_255, $t255_256, $t256_257, $t257_258, $t258_259, $t259_260, $t260_261, $t261_262, $t262_263;
1840 let $block = 0;
1841 while (true) {
1842 switch ($block) {
1843 case 0: {
1844 $t0_1 = ('shell: page→' + msgType);
1845 $t1_2 = common$jsbridge$sw.Log($t0_1);
1846 $t2_3 = (msgType === 'SET_PUBKEY');
1847 if ($t2_3) {
1848 $block = 2; break;
1849 }
1850 else {
1851 $block = 4; break;
1852 }
1853 break;
1854 }
1855 case 1: {
1856 return;
1857 break;
1858 }
1859 case 2: {
1860 $t3_4 = mw$str(w);
1861 $t4_5 = identitySetPubkey($t3_4);
1862 $t5_6 = jstr($t3_4);
1863 $t6_7 = ('["SET_PUBKEY",' + $t5_6);
1864 $t7_8 = ($t6_7 + ']');
1865 $t8_9 = busSend('relay', $t7_8);
1866 $t9_10 = flushPendingSentDMs();
1867 $block = 1; break;
1868 break;
1869 }
1870 case 3: {
1871 $t10_11 = identityClearKey();
1872 $t11_12 = busSend('relay', '["CLEAR_KEY"]');
1873 $block = 1; break;
1874 break;
1875 }
1876 case 4: {
1877 $t12_13 = (msgType === 'CLEAR_KEY');
1878 if ($t12_13) {
1879 $block = 3; break;
1880 }
1881 else {
1882 $block = 6; break;
1883 }
1884 break;
1885 }
1886 case 5: {
1887 $t13_14 = mw$str(w);
1888 $t14_15 = mw$raw(w);
1889 $t15_16 = jstr(clientID);
1890 $t16_17 = ('["REQ",' + $t15_16);
1891 $t17_18 = ($t16_17 + ',');
1892 $t18_19 = jstr($t13_14);
1893 $t19_20 = ($t17_18 + $t18_19);
1894 $t20_21 = ($t19_20 + ',');
1895 $t21_22 = ($t20_21 + $t14_15);
1896 $t22_23 = ($t21_22 + ']');
1897 $t23_24 = busSend('relay', $t22_23);
1898 $block = 1; break;
1899 break;
1900 }
1901 case 6: {
1902 $t24_25 = (msgType === 'REQ');
1903 if ($t24_25) {
1904 $block = 5; break;
1905 }
1906 else {
1907 $block = 8; break;
1908 }
1909 break;
1910 }
1911 case 7: {
1912 $t25_26 = mw$str(w);
1913 $t26_27 = jstr($t25_26);
1914 $t27_28 = ('["CLOSE",' + $t26_27);
1915 $t28_29 = ($t27_28 + ']');
1916 $t29_30 = busSend('relay', $t28_29);
1917 $block = 1; break;
1918 break;
1919 }
1920 case 8: {
1921 $t30_31 = (msgType === 'CLOSE');
1922 if ($t30_31) {
1923 $block = 7; break;
1924 }
1925 else {
1926 $block = 10; break;
1927 }
1928 break;
1929 }
1930 case 9: {
1931 $t31_32 = mw$raw(w);
1932 $t32_33 = jstr(clientID);
1933 $t33_34 = ('["EVENT",' + $t32_33);
1934 $t34_35 = ($t33_34 + ',');
1935 $t35_36 = ($t34_35 + $t31_32);
1936 $t36_37 = ($t35_36 + ']');
1937 $t37_38 = busSend('relay', $t36_37);
1938 $block = 1; break;
1939 break;
1940 }
1941 case 10: {
1942 $t38_39 = (msgType === 'EVENT');
1943 if ($t38_39) {
1944 $block = 9; break;
1945 }
1946 else {
1947 $block = 12; break;
1948 }
1949 break;
1950 }
1951 case 11: {
1952 $t39_40 = mw$str(w);
1953 $t40_41 = mw$raw(w);
1954 $t41_42 = mw$strs(w);
1955 $t42_43 = jstr(clientID);
1956 $t43_44 = ('["PROXY",' + $t42_43);
1957 $t44_45 = ($t43_44 + ',');
1958 $t45_46 = jstr($t39_40);
1959 $t46_47 = ($t44_45 + $t45_46);
1960 $t47_48 = ($t46_47 + ',');
1961 $t48_49 = ($t47_48 + $t40_41);
1962 $t49_50 = ($t48_49 + ',');
1963 $t50_51 = strsJSON($t41_42);
1964 $t51_52 = ($t49_50 + $t50_51);
1965 $t52_53 = ($t51_52 + ']');
1966 $t53_54 = busSend('relay', $t52_53);
1967 $block = 1; break;
1968 break;
1969 }
1970 case 12: {
1971 $t54_55 = (msgType === 'PROXY');
1972 if ($t54_55) {
1973 $block = 11; break;
1974 }
1975 else {
1976 $block = 14; break;
1977 }
1978 break;
1979 }
1980 case 13: {
1981 $t55_56 = mw$str(w);
1982 $t56_57 = jstr(clientID);
1983 $t57_58 = ('["RELAY_INFO",' + $t56_57);
1984 $t58_59 = ($t57_58 + ',');
1985 $t59_60 = jstr($t55_56);
1986 $t60_61 = ($t58_59 + $t59_60);
1987 $t61_62 = ($t60_61 + ']');
1988 $t62_63 = busSend('relay', $t61_62);
1989 $block = 1; break;
1990 break;
1991 }
1992 case 14: {
1993 $t63_64 = (msgType === 'RELAY_INFO');
1994 if ($t63_64) {
1995 $block = 13; break;
1996 }
1997 else {
1998 $block = 16; break;
1999 }
2000 break;
2001 }
2002 case 15: {
2003 $t64_65 = mw$strs(w);
2004 $t65_66 = strsJSON($t64_65);
2005 $t66_67 = ('["SET_WRITE_RELAYS",' + $t65_66);
2006 $t67_68 = ($t66_67 + ']');
2007 $t68_69 = busSend('relay', $t67_68);
2008 $block = 1; break;
2009 break;
2010 }
2011 case 16: {
2012 $t69_70 = (msgType === 'SET_WRITE_RELAYS');
2013 if ($t69_70) {
2014 $block = 15; break;
2015 }
2016 else {
2017 $block = 18; break;
2018 }
2019 break;
2020 }
2021 case 17: {
2022 $t70_71 = mw$str(w);
2023 $t71_72 = mw$raw(w);
2024 $t72_73 = jstr(clientID);
2025 $t73_74 = ('["SIGN",' + $t72_73);
2026 $t74_75 = ($t73_74 + ',');
2027 $t75_76 = jstr($t70_71);
2028 $t76_77 = ($t74_75 + $t75_76);
2029 $t77_78 = ($t76_77 + ',');
2030 $t78_79 = ($t77_78 + $t71_72);
2031 $t79_80 = ($t78_79 + ']');
2032 $t80_81 = busSend('relay', $t79_80);
2033 $block = 1; break;
2034 break;
2035 }
2036 case 18: {
2037 $t81_82 = (msgType === 'SIGN');
2038 if ($t81_82) {
2039 $block = 17; break;
2040 }
2041 else {
2042 $block = 20; break;
2043 }
2044 break;
2045 }
2046 case 19: {
2047 $t82_83 = mw$str(w);
2048 $t83_84 = mw$strs(w);
2049 $t84_85 = jstr(clientID);
2050 $t85_86 = ('["BROADCAST",' + $t84_85);
2051 $t86_87 = ($t85_86 + ',');
2052 $t87_88 = jstr($t82_83);
2053 $t88_89 = ($t86_87 + $t87_88);
2054 $t89_90 = ($t88_89 + ',');
2055 $t90_91 = strsJSON($t83_84);
2056 $t91_92 = ($t89_90 + $t90_91);
2057 $t92_93 = ($t91_92 + ']');
2058 $t93_94 = busSend('relay', $t92_93);
2059 $block = 1; break;
2060 break;
2061 }
2062 case 20: {
2063 $t94_95 = (msgType === 'BROADCAST');
2064 if ($t94_95) {
2065 $block = 19; break;
2066 }
2067 else {
2068 $block = 22; break;
2069 }
2070 break;
2071 }
2072 case 21: {
2073 $t95_96 = jstr(clientID);
2074 $t96_97 = ('["DM_LIST",' + $t95_96);
2075 $t97_98 = ($t96_97 + ']');
2076 $t98_99 = busSend('relay', $t97_98);
2077 $block = 1; break;
2078 break;
2079 }
2080 case 22: {
2081 $t99_100 = (msgType === 'DM_LIST');
2082 if ($t99_100) {
2083 $block = 21; break;
2084 }
2085 else {
2086 $block = 24; break;
2087 }
2088 break;
2089 }
2090 case 23: {
2091 $t100_101 = mw$str(w);
2092 $t101_102 = mw$num(w);
2093 $t102_103 = $t101_102;
2094 $t103_104 = mw$num(w);
2095 $t104_105 = jstr(clientID);
2096 $t105_106 = ('["DM_HISTORY",' + $t104_105);
2097 $t106_107 = ($t105_106 + ',');
2098 $t107_108 = jstr($t100_101);
2099 $t108_109 = ($t106_107 + $t107_108);
2100 $t109_110 = ($t108_109 + ',');
2101 $t110_111 = $t102_103;
2102 $t111_112 = common$helpers.Itoa($t110_111);
2103 $t112_113 = ($t109_110 + $t111_112);
2104 $t113_114 = ($t112_113 + ',');
2105 $t114_115 = common$helpers.Itoa($t103_104);
2106 $t115_116 = ($t113_114 + $t114_115);
2107 $t116_117 = ($t115_116 + ']');
2108 $t117_118 = busSend('relay', $t116_117);
2109 $block = 1; break;
2110 break;
2111 }
2112 case 24: {
2113 $t118_119 = (msgType === 'DM_HISTORY');
2114 if ($t118_119) {
2115 $block = 23; break;
2116 }
2117 else {
2118 $block = 26; break;
2119 }
2120 break;
2121 }
2122 case 25: {
2123 $t119_120 = mw$str(w);
2124 $t120_121 = jstr($t119_120);
2125 $t121_122 = ('["CLEAR_DM_HISTORY",' + $t120_121);
2126 $t122_123 = ($t121_122 + ']');
2127 $t123_124 = busSend('relay', $t122_123);
2128 $block = 1; break;
2129 break;
2130 }
2131 case 26: {
2132 $t124_125 = (msgType === 'CLEAR_DM_HISTORY');
2133 if ($t124_125) {
2134 $block = 25; break;
2135 }
2136 else {
2137 $block = 28; break;
2138 }
2139 break;
2140 }
2141 case 27: {
2142 $t125_126 = mw$strs(w);
2143 mlsRelays.$set($t125_126);
2144 $t126_127 = strsJSON($t125_126);
2145 $t127_128 = ('["MLS_PROXY","init",' + $t126_127);
2146 $t128_129 = ($t127_128 + ']');
2147 $t129_130 = sendToClient(clientID, $t128_129);
2148 $block = 1; break;
2149 break;
2150 }
2151 case 28: {
2152 $t130_131 = (msgType === 'MLS_INIT');
2153 if ($t130_131) {
2154 $block = 27; break;
2155 }
2156 else {
2157 $block = 30; break;
2158 }
2159 break;
2160 }
2161 case 29: {
2162 $t131_132 = mw$str(w);
2163 $t132_133 = mw$str(w);
2164 $t133_134 = markSentDM($t131_132, $t132_133);
2165 $t134_135 = jstr($t131_132);
2166 $t135_136 = ('["MLS_PROXY","sendDM",' + $t134_135);
2167 $t136_137 = ($t135_136 + ',');
2168 $t137_138 = jstr($t132_133);
2169 $t138_139 = ($t136_137 + $t137_138);
2170 $t139_140 = ($t138_139 + ']');
2171 $t140_141 = sendToClient(clientID, $t139_140);
2172 $t141_142 = myPubkey.$get();
2173 $t142_143 = ($t141_142 === '');
2174 if ($t142_143) {
2175 $block = 33; break;
2176 }
2177 else {
2178 $block = 34; break;
2179 }
2180 break;
2181 }
2182 case 30: {
2183 $t143_144 = (msgType === 'MLS_SEND');
2184 if ($t143_144) {
2185 $block = 29; break;
2186 }
2187 else {
2188 $block = 32; break;
2189 }
2190 break;
2191 }
2192 case 31: {
2193 $t144_145 = sendToClient(clientID, '["MLS_PROXY","subscribe"]');
2194 $block = 1; break;
2195 break;
2196 }
2197 case 32: {
2198 $t145_146 = (msgType === 'MLS_SUB');
2199 if ($t145_146) {
2200 $block = 31; break;
2201 }
2202 else {
2203 $block = 36; break;
2204 }
2205 break;
2206 }
2207 case 33: {
2208 $t146_147 = pendingSentDMs.$get();
2209 $t147_148 = { $value: { recipient: '', content: '' }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
2210 $t148_149 = { $get() { return $t147_148.$get().recipient; }, $set(v) { const obj = $t147_148.$get(); obj.recipient = v; $t147_148.$set(obj); } };
2211 $t149_150 = { $get() { return $t147_148.$get().content; }, $set(v) { const obj = $t147_148.$get(); obj.content = v; $t147_148.$set(obj); } };
2212 $t148_149.$set($t131_132);
2213 $t149_150.$set($t132_133);
2214 $t150_151 = $t147_148.$get();
2215 $t151_152 = { $value: $rt.builtin.makeSlice(1, 1, { recipient: '', content: '' }), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2216 $t152_153 = $t151_152.$get().addr(0);
2217 $t152_153.$set($rt.builtin.cloneValue($t150_151));
2218 $t153_154 = $rt.builtin.sliceSlice($t151_152.$get(), undefined, undefined, undefined);
2219 $t154_155 = $rt.builtin.appendSlice($t146_147, $t153_154);
2220 pendingSentDMs.$set($t154_155);
2221 $block = 1; break;
2222 break;
2223 }
2224 case 34: {
2225 $t155_156 = common$jsbridge$sw.NowSeconds();
2226 $t156_157 = myPubkey.$get();
2227 $t157_158 = makeDMRecord($t131_132, $t156_157, $t132_133, $t155_156, 'marmot', '');
2228 $t158_159 = DMRecord$ToJSON($t157_158);
2229 $t159_160 = ('["SAVE_DM_QUIET",' + $t158_159);
2230 $t160_161 = ($t159_160 + ']');
2231 $t161_162 = busSend('relay', $t160_161);
2232 $block = 1; break;
2233 break;
2234 }
2235 case 35: {
2236 $t162_163 = sendToClient(clientID, '["MLS_PROXY","publishKP"]');
2237 $block = 1; break;
2238 break;
2239 }
2240 case 36: {
2241 $t163_164 = (msgType === 'MLS_PUBLISH_KP');
2242 if ($t163_164) {
2243 $block = 35; break;
2244 }
2245 else {
2246 $block = 38; break;
2247 }
2248 break;
2249 }
2250 case 37: {
2251 $t164_165 = sendToClient(clientID, '["MLS_PROXY","listGroups"]');
2252 $block = 1; break;
2253 break;
2254 }
2255 case 38: {
2256 $t165_166 = (msgType === 'MLS_LIST_GROUPS');
2257 if ($t165_166) {
2258 $block = 37; break;
2259 }
2260 else {
2261 $block = 40; break;
2262 }
2263 break;
2264 }
2265 case 39: {
2266 $t166_167 = sendToClient(clientID, '["MLS_PROXY","backupGroups"]');
2267 $block = 1; break;
2268 break;
2269 }
2270 case 40: {
2271 $t167_168 = (msgType === 'MLS_BACKUP');
2272 if ($t167_168) {
2273 $block = 39; break;
2274 }
2275 else {
2276 $block = 42; break;
2277 }
2278 break;
2279 }
2280 case 41: {
2281 $t168_169 = sendToClient(clientID, '["MLS_PROXY","restoreGroups"]');
2282 $block = 1; break;
2283 break;
2284 }
2285 case 42: {
2286 $t169_170 = (msgType === 'MLS_RESTORE');
2287 if ($t169_170) {
2288 $block = 41; break;
2289 }
2290 else {
2291 $block = 44; break;
2292 }
2293 break;
2294 }
2295 case 43: {
2296 $t170_171 = mw$str(w);
2297 $t171_172 = jstr($t170_171);
2298 $t172_173 = ('["MLS_PROXY","ratchetGroup",' + $t171_172);
2299 $t173_174 = ($t172_173 + ']');
2300 $t174_175 = sendToClient(clientID, $t173_174);
2301 $block = 1; break;
2302 break;
2303 }
2304 case 44: {
2305 $t175_176 = (msgType === 'MLS_RATCHET');
2306 if ($t175_176) {
2307 $block = 43; break;
2308 }
2309 else {
2310 $block = 46; break;
2311 }
2312 break;
2313 }
2314 case 45: {
2315 $t176_177 = mw$str(w);
2316 $t177_178 = mw$strs(w);
2317 $t178_179 = $rt.builtin.len($t177_178);
2318 $t179_180 = ($t178_179 === 0);
2319 if ($t179_180) {
2320 $block = 49; break;
2321 }
2322 else {
2323 $t188_189 = $t177_178;
2324 $block = 50; break;
2325 }
2326 break;
2327 }
2328 case 46: {
2329 $t180_181 = (msgType === 'MLS_PUBLISH');
2330 if ($t180_181) {
2331 $block = 45; break;
2332 }
2333 else {
2334 $block = 48; break;
2335 }
2336 break;
2337 }
2338 case 47: {
2339 $t181_182 = mw$str(w);
2340 $t182_183 = mw$raw(w);
2341 $t183_184 = mw$strs(w);
2342 $t184_185 = $rt.builtin.len($t183_184);
2343 $t185_186 = ($t184_185 === 0);
2344 if ($t185_186) {
2345 $block = 55; break;
2346 }
2347 else {
2348 $t207_208 = $t183_184;
2349 $block = 56; break;
2350 }
2351 break;
2352 }
2353 case 48: {
2354 $t186_187 = (msgType === 'MLS_SUBSCRIBE');
2355 if ($t186_187) {
2356 $block = 47; break;
2357 }
2358 else {
2359 $block = 54; break;
2360 }
2361 break;
2362 }
2363 case 49: {
2364 $t187_188 = mlsRelays.$get();
2365 $t188_189 = $t187_188;
2366 $block = 50; break;
2367 break;
2368 }
2369 case 50: {
2370 $t189_190 = $rt.builtin.len($t188_189);
2371 $t190_191 = ($t189_190 > 0);
2372 if ($t190_191) {
2373 $block = 51; break;
2374 }
2375 else {
2376 $block = 52; break;
2377 }
2378 break;
2379 }
2380 case 51: {
2381 $t191_192 = ('["MLS_RELAY_PUBLISH",' + $t176_177);
2382 $t192_193 = ($t191_192 + ',');
2383 $t193_194 = strsJSON($t188_189);
2384 $t194_195 = ($t192_193 + $t193_194);
2385 $t195_196 = ($t194_195 + ']');
2386 $t196_197 = busSend('relay', $t195_196);
2387 $block = 1; break;
2388 break;
2389 }
2390 case 52: {
2391 $t197_198 = ('["EVENT","",' + $t176_177);
2392 $t198_199 = ($t197_198 + ']');
2393 $t199_200 = busSend('relay', $t198_199);
2394 $block = 1; break;
2395 break;
2396 }
2397 case 53: {
2398 $t200_201 = mw$raw(w);
2399 $t201_202 = jsonField($t200_201, 'peer');
2400 $t202_203 = jsonField($t200_201, 'sender');
2401 $t203_204 = jsonField($t200_201, 'content');
2402 $t204_205 = isSentDMEcho($t201_202, $t203_204);
2403 if ($t204_205) {
2404 $block = 63; break;
2405 }
2406 else {
2407 $block = 64; break;
2408 }
2409 break;
2410 }
2411 case 54: {
2412 $t205_206 = (msgType === 'MLS_DM');
2413 if ($t205_206) {
2414 $block = 53; break;
2415 }
2416 else {
2417 $block = 62; break;
2418 }
2419 break;
2420 }
2421 case 55: {
2422 $t206_207 = mlsRelays.$get();
2423 $t207_208 = $t206_207;
2424 $block = 56; break;
2425 break;
2426 }
2427 case 56: {
2428 $t208_209 = ('marmot-sub-' + $t181_182);
2429 $t209_210 = marmotSubs.$get();
2430 $t210_211 = ($t209_210 === null);
2431 if ($t210_211) {
2432 $block = 57; break;
2433 }
2434 else {
2435 $block = 58; break;
2436 }
2437 break;
2438 }
2439 case 57: {
2440 $t211_212 = $rt.builtin.makeMap('string');
2441 marmotSubs.$set($t211_212);
2442 $block = 58; break;
2443 break;
2444 }
2445 case 58: {
2446 $t212_213 = marmotSubs.$get();
2447 $rt.builtin.mapUpdate($t212_213, $t208_209, true);
2448 $t213_214 = $rt.builtin.len($t207_208);
2449 $t214_215 = ($t213_214 > 0);
2450 if ($t214_215) {
2451 $block = 59; break;
2452 }
2453 else {
2454 $block = 60; break;
2455 }
2456 break;
2457 }
2458 case 59: {
2459 $t215_216 = jstr($t208_209);
2460 $t216_217 = ('["PROXY","",' + $t215_216);
2461 $t217_218 = ($t216_217 + ',');
2462 $t218_219 = ($t217_218 + $t182_183);
2463 $t219_220 = ($t218_219 + ',');
2464 $t220_221 = strsJSON($t207_208);
2465 $t221_222 = ($t219_220 + $t220_221);
2466 $t222_223 = ($t221_222 + ']');
2467 $t223_224 = busSend('relay', $t222_223);
2468 $block = 1; break;
2469 break;
2470 }
2471 case 60: {
2472 $t224_225 = jstr($t208_209);
2473 $t225_226 = ('["REQ","",' + $t224_225);
2474 $t226_227 = ($t225_226 + ',');
2475 $t227_228 = ($t226_227 + $t182_183);
2476 $t228_229 = ($t227_228 + ']');
2477 $t229_230 = busSend('relay', $t228_229);
2478 $block = 1; break;
2479 break;
2480 }
2481 case 61: {
2482 $t230_231 = mw$raw(w);
2483 $t231_232 = ('["MLS_GROUPS",' + $t230_231);
2484 $t232_233 = ($t231_232 + ']');
2485 $t233_234 = broadcastToClients($t232_233);
2486 $block = 1; break;
2487 break;
2488 }
2489 case 62: {
2490 $t234_235 = (msgType === 'MLS_GROUPS');
2491 if ($t234_235) {
2492 $block = 61; break;
2493 }
2494 else {
2495 $block = 66; break;
2496 }
2497 break;
2498 }
2499 case 63: {
2500 return;
2501 break;
2502 }
2503 case 64: {
2504 $t235_236 = jsonFieldRaw($t200_201, 'ts');
2505 $t236_237 = parseTS($t235_236);
2506 $t237_238 = jsonField($t200_201, 'source');
2507 $t238_239 = jsonField($t200_201, 'eventId');
2508 $t239_240 = makeDMRecord($t201_202, $t202_203, $t203_204, $t236_237, $t237_238, $t238_239);
2509 $t240_241 = DMRecord$ToJSON($t239_240);
2510 $t241_242 = ('["SAVE_DM_QUIET",' + $t240_241);
2511 $t242_243 = ($t241_242 + ']');
2512 $t243_244 = busSend('relay', $t242_243);
2513 $t244_245 = fwdDM($t240_241);
2514 $block = 1; break;
2515 break;
2516 }
2517 case 65: {
2518 $t245_246 = mw$str(w);
2519 $t246_247 = jstr($t245_246);
2520 $t247_248 = ('["MLS_STATUS",' + $t246_247);
2521 $t248_249 = ($t247_248 + ']');
2522 $t249_250 = broadcastToClients($t248_249);
2523 $block = 1; break;
2524 break;
2525 }
2526 case 66: {
2527 $t250_251 = (msgType === 'MLS_STATUS');
2528 if ($t250_251) {
2529 $block = 65; break;
2530 }
2531 else {
2532 $block = 68; break;
2533 }
2534 break;
2535 }
2536 case 67: {
2537 $t251_252 = mw$num(w);
2538 $t252_253 = $t251_252;
2539 $t253_254 = mw$str(w);
2540 $t254_255 = mw$str(w);
2541 $t255_256 = cryptoCBs.$get();
2542 { const $r = $rt.builtin.mapLookup($t255_256, $t252_253); $t256_257 = [$r.value, $r.ok]; }
2543 $t257_258 = $t256_257[0];
2544 $t258_259 = $t256_257[1];
2545 if ($t258_259) {
2546 $block = 69; break;
2547 }
2548 else {
2549 $block = 1; break;
2550 }
2551 break;
2552 }
2553 case 68: {
2554 $t259_260 = (msgType === 'CRYPTO_RESULT');
2555 if ($t259_260) {
2556 $block = 67; break;
2557 }
2558 else {
2559 $block = 1; break;
2560 }
2561 break;
2562 }
2563 case 69: {
2564 $t260_261 = cryptoCBs.$get();
2565 $t261_262 = $rt.builtin.mapDelete($t260_261, $t252_253);
2566 $t262_263 = $t257_258($t253_254, $t254_255);
2567 $block = 1; break;
2568 break;
2569 }
2570 }
2571 }
2572 }
2573
2574 export function fwdDM(dmJSON) {
2575 let $t0_1, $t1_2, $t2_3;
2576 $t0_1 = ('["DM_RECEIVED",' + dmJSON);
2577 $t1_2 = ($t0_1 + ']');
2578 $t2_3 = broadcastToClients($t1_2);
2579 return;
2580 }
2581
2582 export function makeDMRecord(peer, from, content, createdAt, protocol, eventID) {
2583 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9;
2584 $t0_1 = { $value: { ID: '', Peer: '', From: '', Content: '', CreatedAt: 0, Protocol: '', EventID: '' }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
2585 $t1_2 = { $get() { return $t0_1.$get().ID; }, $set(v) { const obj = $t0_1.$get(); obj.ID = v; $t0_1.$set(obj); } };
2586 $t2_3 = dmDedupID(peer, content, createdAt);
2587 $t3_4 = { $get() { return $t0_1.$get().Peer; }, $set(v) { const obj = $t0_1.$get(); obj.Peer = v; $t0_1.$set(obj); } };
2588 $t4_5 = { $get() { return $t0_1.$get().From; }, $set(v) { const obj = $t0_1.$get(); obj.From = v; $t0_1.$set(obj); } };
2589 $t5_6 = { $get() { return $t0_1.$get().Content; }, $set(v) { const obj = $t0_1.$get(); obj.Content = v; $t0_1.$set(obj); } };
2590 $t6_7 = { $get() { return $t0_1.$get().CreatedAt; }, $set(v) { const obj = $t0_1.$get(); obj.CreatedAt = v; $t0_1.$set(obj); } };
2591 $t7_8 = { $get() { return $t0_1.$get().Protocol; }, $set(v) { const obj = $t0_1.$get(); obj.Protocol = v; $t0_1.$set(obj); } };
2592 $t8_9 = { $get() { return $t0_1.$get().EventID; }, $set(v) { const obj = $t0_1.$get(); obj.EventID = v; $t0_1.$set(obj); } };
2593 $t1_2.$set($t2_3);
2594 $t3_4.$set(peer);
2595 $t4_5.$set(from);
2596 $t5_6.$set(content);
2597 $t6_7.$set(createdAt);
2598 $t7_8.$set(protocol);
2599 $t8_9.$set(eventID);
2600 return $t0_1;
2601 }
2602
2603 export function dmDedupID(peer, content, createdAt) {
2604 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14;
2605 $t0_1 = { $value: $rt.builtin.makeSlice(32, 32, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2606 $t1_2 = $rt.builtin.stringToBytes(content);
2607 $t2_3 = common$crypto$sha256.Sum($t1_2);
2608 $t0_1.$set($rt.builtin.cloneValue($t2_3));
2609 $t3_4 = Math.trunc(createdAt / 300);
2610 $t4_5 = common$helpers.Itoa($t3_4);
2611 $t5_6 = { $value: $rt.builtin.makeSlice(32, 32, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2612 $t6_7 = $rt.builtin.sliceSlice($t0_1.$get(), undefined, undefined, undefined);
2613 $t7_8 = common$helpers.HexEncode($t6_7);
2614 $t8_9 = (peer + $t7_8);
2615 $t9_10 = ($t8_9 + $t4_5);
2616 $t10_11 = $rt.builtin.stringToBytes($t9_10);
2617 $t11_12 = common$crypto$sha256.Sum($t10_11);
2618 $t5_6.$set($rt.builtin.cloneValue($t11_12));
2619 $t12_13 = $rt.builtin.sliceSlice($t5_6.$get(), undefined, undefined, undefined);
2620 $t13_14 = common$helpers.HexEncode($t12_13);
2621 return $t13_14;
2622 }
2623
2624 export function main() {
2625 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7;
2626 $t0_1 = initSharedState();
2627 $t1_2 = common$jsbridge$sw.OnInstall(onInstall);
2628 $t2_3 = common$jsbridge$sw.OnActivate(onActivate);
2629 $t3_4 = common$jsbridge$sw.OnFetch(onFetch);
2630 $t4_5 = common$jsbridge$sw.OnMessage(onMessage);
2631 $t5_6 = connectSSE();
2632 $t6_7 = connectBus();
2633 return;
2634 }
2635
2636 export function onInstall(event) {
2637 let $t0_1;
2638 $t0_1 = common$jsbridge$sw.WaitUntil(event, onInstall$1);
2639 return;
2640 }
2641
2642 function onInstall$1(done) {
2643 let $t0_1, $t1_2;
2644 $t0_1 = common$jsbridge$sw.SkipWaiting();
2645 $t1_2 = done();
2646 return;
2647 }
2648
2649 export function onActivate(event) {
2650 let $t0_1;
2651 $t0_1 = common$jsbridge$sw.WaitUntil(event, onActivate$1);
2652 return;
2653 }
2654
2655 function onActivate$1(done) {
2656 let $t0_1, $t1_2, $t2_3;
2657 $t0_1 = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
2658 $t0_1.$set(done);
2659 $t1_2 = onActivate$1$1.bind(null, $t0_1);
2660 $t2_3 = common$jsbridge$sw.CacheDelete('sm3sh', $t1_2);
2661 return;
2662 }
2663
2664 function onActivate$1$1(done) {
2665 let $t0_1, $t1_2;
2666 $t0_1 = onActivate$1$1$1.bind(null, done);
2667 $t1_2 = common$jsbridge$sw.ClaimClients($t0_1);
2668 return;
2669 }
2670
2671 function onActivate$1$1$1(done) {
2672 let $t0_1, $t1_2;
2673 $t0_1 = done.$get();
2674 $t1_2 = $t0_1();
2675 return;
2676 }
2677
2678 export function onFetch(event) {
2679 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20;
2680 let $block = 0;
2681 while (true) {
2682 switch ($block) {
2683 case 0: {
2684 $t0_1 = common$jsbridge$sw.GetRequestURL(event);
2685 $t1_2 = common$jsbridge$sw.Origin();
2686 $t2_3 = $rt.builtin.len($t0_1);
2687 $t3_4 = $rt.builtin.len($t1_2);
2688 $t4_5 = ($t2_3 < $t3_4);
2689 if ($t4_5) {
2690 $block = 1; break;
2691 }
2692 else {
2693 $block = 3; break;
2694 }
2695 break;
2696 }
2697 case 1: {
2698 return;
2699 break;
2700 }
2701 case 2: {
2702 $t5_6 = common$jsbridge$sw.GetRequestPath(event);
2703 $t6_7 = ($t5_6 === '/__sse');
2704 if ($t6_7) {
2705 $block = 4; break;
2706 }
2707 else {
2708 $block = 6; break;
2709 }
2710 break;
2711 }
2712 case 3: {
2713 $t7_8 = $rt.builtin.len($t1_2);
2714 $t8_9 = $rt.builtin.stringSlice($t0_1, undefined, $t7_8);
2715 $t9_10 = ($t8_9 !== $t1_2);
2716 if ($t9_10) {
2717 $block = 1; break;
2718 }
2719 else {
2720 $block = 2; break;
2721 }
2722 break;
2723 }
2724 case 4: {
2725 return;
2726 break;
2727 }
2728 case 5: {
2729 $t10_11 = $rt.builtin.len($t5_6);
2730 $t11_12 = ($t10_11 > 4);
2731 if ($t11_12) {
2732 $block = 10; break;
2733 }
2734 else {
2735 $block = 9; break;
2736 }
2737 break;
2738 }
2739 case 6: {
2740 $t12_13 = ($t5_6 === '/__version');
2741 if ($t12_13) {
2742 $block = 4; break;
2743 }
2744 else {
2745 $block = 5; break;
2746 }
2747 break;
2748 }
2749 case 7: {
2750 return;
2751 break;
2752 }
2753 case 8: {
2754 $t13_14 = common$jsbridge$sw.RespondWithCacheFirst(event);
2755 return;
2756 break;
2757 }
2758 case 9: {
2759 $t14_15 = $rt.builtin.len($t5_6);
2760 $t15_16 = ($t14_15 > 6);
2761 if ($t15_16) {
2762 $block = 11; break;
2763 }
2764 else {
2765 $block = 8; break;
2766 }
2767 break;
2768 }
2769 case 10: {
2770 $t16_17 = $rt.builtin.stringSlice($t5_6, undefined, 4);
2771 $t17_18 = ($t16_17 === '/$sw');
2772 if ($t17_18) {
2773 $block = 7; break;
2774 }
2775 else {
2776 $block = 9; break;
2777 }
2778 break;
2779 }
2780 case 11: {
2781 $t18_19 = $rt.builtin.stringSlice($t5_6, undefined, 7);
2782 $t19_20 = ($t18_19 === '/fonts/');
2783 if ($t19_20) {
2784 $block = 7; break;
2785 }
2786 else {
2787 $block = 8; break;
2788 }
2789 break;
2790 }
2791 }
2792 }
2793 }
2794
2795 export function onMessage(event) {
2796 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12;
2797 let $block = 0;
2798 while (true) {
2799 switch ($block) {
2800 case 0: {
2801 $t0_1 = common$jsbridge$sw.GetMessageData(event);
2802 $t1_2 = common$jsbridge$sw.GetMessageClientID(event);
2803 $t2_3 = ($t0_1 === 'activate-update');
2804 if ($t2_3) {
2805 $block = 1; break;
2806 }
2807 else {
2808 $block = 2; break;
2809 }
2810 break;
2811 }
2812 case 1: {
2813 $t3_4 = fullRefresh();
2814 return;
2815 break;
2816 }
2817 case 2: {
2818 $t4_5 = ($t0_1 === 'CLAIM');
2819 if ($t4_5) {
2820 $block = 3; break;
2821 }
2822 else {
2823 $block = 4; break;
2824 }
2825 break;
2826 }
2827 case 3: {
2828 $t5_6 = common$jsbridge$sw.ClaimClients(onMessage$1);
2829 return;
2830 break;
2831 }
2832 case 4: {
2833 $t6_7 = { $value: { s: '', i: 0 }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
2834 $t7_8 = newMW($t0_1);
2835 $t6_7.$set($rt.builtin.cloneValue($t7_8));
2836 $t8_9 = mw$str($t6_7);
2837 $t9_10 = ($t8_9 === 'SKIP_WAITING');
2838 if ($t9_10) {
2839 $block = 6; break;
2840 }
2841 else {
2842 $block = 7; break;
2843 }
2844 break;
2845 }
2846 case 5: {
2847 return;
2848 break;
2849 }
2850 case 6: {
2851 $t10_11 = common$jsbridge$sw.SkipWaiting();
2852 $block = 5; break;
2853 break;
2854 }
2855 case 7: {
2856 $t11_12 = routeMessage($t1_2, $t6_7, $t8_9);
2857 $block = 5; break;
2858 break;
2859 }
2860 }
2861 }
2862 }
2863
2864 function onMessage$1() {
2865 return;
2866 }
2867
2868 export function connectSSE() {
2869 let $t0_1;
2870 $t0_1 = common$jsbridge$sw.SSEConnect('/__sse', connectSSE$1);
2871 return;
2872 }
2873
2874 function connectSSE$1(data) {
2875 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21;
2876 let $block = 0;
2877 while (true) {
2878 switch ($block) {
2879 case 0: {
2880 $t0_1 = jsonFieldRaw(data, 'v');
2881 $t1_2 = ($t0_1 === '');
2882 if ($t1_2) {
2883 $block = 1; break;
2884 }
2885 else {
2886 $t2_3 = $t0_1;
2887 $block = 2; break;
2888 }
2889 break;
2890 }
2891 case 1: {
2892 $t2_3 = data;
2893 $block = 2; break;
2894 break;
2895 }
2896 case 2: {
2897 $t3_4 = ($t2_3 === '');
2898 if ($t3_4) {
2899 $block = 3; break;
2900 }
2901 else {
2902 $block = 4; break;
2903 }
2904 break;
2905 }
2906 case 3: {
2907 return;
2908 break;
2909 }
2910 case 4: {
2911 $t4_5 = currentVersion.$get();
2912 $t5_6 = ($t4_5 === '');
2913 if ($t5_6) {
2914 $block = 5; break;
2915 }
2916 else {
2917 $block = 6; break;
2918 }
2919 break;
2920 }
2921 case 5: {
2922 currentVersion.$set($t2_3);
2923 $t6_7 = populateCache();
2924 return;
2925 break;
2926 }
2927 case 6: {
2928 $t7_8 = currentVersion.$get();
2929 $t8_9 = ($t2_3 !== $t7_8);
2930 if ($t8_9) {
2931 $block = 9; break;
2932 }
2933 else {
2934 $block = 8; break;
2935 }
2936 break;
2937 }
2938 case 7: {
2939 currentVersion.$set($t2_3);
2940 refreshing.$set(true);
2941 $t9_10 = jsonFieldRaw(data, 'files');
2942 $t10_11 = ($t9_10 === '');
2943 if ($t10_11) {
2944 $block = 10; break;
2945 }
2946 else {
2947 $block = 11; break;
2948 }
2949 break;
2950 }
2951 case 8: {
2952 return;
2953 break;
2954 }
2955 case 9: {
2956 $t11_12 = refreshing.$get();
2957 if ($t11_12) {
2958 $block = 8; break;
2959 }
2960 else {
2961 $block = 7; break;
2962 }
2963 break;
2964 }
2965 case 10: {
2966 $t12_13 = fullRefresh();
2967 $block = 8; break;
2968 break;
2969 }
2970 case 11: {
2971 $t13_14 = { $value: { s: '', i: 0 }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
2972 $t14_15 = { $get() { return $t13_14.$get().s; }, $set(v) { const obj = $t13_14.$get(); obj.s = v; $t13_14.$set(obj); } };
2973 $t15_16 = { $get() { return $t13_14.$get().i; }, $set(v) { const obj = $t13_14.$get(); obj.i = v; $t13_14.$set(obj); } };
2974 $t14_15.$set($t9_10);
2975 $t15_16.$set(0);
2976 $t16_17 = mw$strs($t13_14);
2977 $t17_18 = $rt.builtin.len($t16_17);
2978 $t18_19 = ($t17_18 === 0);
2979 if ($t18_19) {
2980 $block = 12; break;
2981 }
2982 else {
2983 $block = 13; break;
2984 }
2985 break;
2986 }
2987 case 12: {
2988 $t19_20 = fullRefresh();
2989 $block = 8; break;
2990 break;
2991 }
2992 case 13: {
2993 $t20_21 = smartRefresh($t16_17);
2994 $block = 8; break;
2995 break;
2996 }
2997 }
2998 }
2999 }
3000
3001 export function categorize(path) {
3002 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8;
3003 let $block = 0;
3004 while (true) {
3005 switch ($block) {
3006 case 0: {
3007 $t0_1 = $rt.builtin.len(path);
3008 $t1_2 = ($t0_1 > 4);
3009 if ($t1_2) {
3010 $block = 3; break;
3011 }
3012 else {
3013 $block = 2; break;
3014 }
3015 break;
3016 }
3017 case 1: {
3018 return 1;
3019 break;
3020 }
3021 case 2: {
3022 $t2_3 = hasSuffix(path, '.svg');
3023 if ($t2_3) {
3024 $block = 4; break;
3025 }
3026 else {
3027 $block = 8; break;
3028 }
3029 break;
3030 }
3031 case 3: {
3032 $t3_4 = $rt.builtin.stringSlice(path, undefined, 4);
3033 $t4_5 = ($t3_4 === '/$sw');
3034 if ($t4_5) {
3035 $block = 1; break;
3036 }
3037 else {
3038 $block = 2; break;
3039 }
3040 break;
3041 }
3042 case 4: {
3043 return 2;
3044 break;
3045 }
3046 case 5: {
3047 return 0;
3048 break;
3049 }
3050 case 6: {
3051 $t5_6 = hasSuffix(path, '.html');
3052 if ($t5_6) {
3053 $block = 4; break;
3054 }
3055 else {
3056 $block = 5; break;
3057 }
3058 break;
3059 }
3060 case 7: {
3061 $t6_7 = hasSuffix(path, '.woff2');
3062 if ($t6_7) {
3063 $block = 4; break;
3064 }
3065 else {
3066 $block = 6; break;
3067 }
3068 break;
3069 }
3070 case 8: {
3071 $t7_8 = hasSuffix(path, '.css');
3072 if ($t7_8) {
3073 $block = 4; break;
3074 }
3075 else {
3076 $block = 7; break;
3077 }
3078 break;
3079 }
3080 }
3081 }
3082 }
3083
3084 export function hasSuffix(s, suffix) {
3085 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9;
3086 let $block = 0;
3087 while (true) {
3088 switch ($block) {
3089 case 0: {
3090 $t0_1 = $rt.builtin.len(s);
3091 $t1_2 = $rt.builtin.len(suffix);
3092 $t2_3 = ($t0_1 >= $t1_2);
3093 if ($t2_3) {
3094 $block = 1; break;
3095 }
3096 else {
3097 $t8_9 = false;
3098 $block = 2; break;
3099 }
3100 break;
3101 }
3102 case 1: {
3103 $t3_4 = $rt.builtin.len(s);
3104 $t4_5 = $rt.builtin.len(suffix);
3105 $t5_6 = ($t3_4 - $t4_5);
3106 $t6_7 = $rt.builtin.stringSlice(s, $t5_6, undefined);
3107 $t7_8 = ($t6_7 === suffix);
3108 $t8_9 = $t7_8;
3109 $block = 2; break;
3110 break;
3111 }
3112 case 2: {
3113 return $t8_9;
3114 break;
3115 }
3116 }
3117 }
3118 }
3119
3120 export function smartRefresh(files) {
3121 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26;
3122 let $block = 0;
3123 while (true) {
3124 switch ($block) {
3125 case 0: {
3126 $t0_1 = { $value: false, $get() { return this.$value; }, $set(v) { this.$value = v; } };
3127 $t0_1.$set(false);
3128 $t1_2 = { $value: false, $get() { return this.$value; }, $set(v) { this.$value = v; } };
3129 $t1_2.$set(false);
3130 $t2_3 = $rt.builtin.len(files);
3131 $t3_4 = null;
3132 $t4_5 = -1;
3133 $block = 1; break;
3134 break;
3135 }
3136 case 1: {
3137 $t5_6 = ($t4_5 + 1);
3138 $t6_7 = ($t5_6 < $t2_3);
3139 if ($t6_7) {
3140 $block = 2; break;
3141 }
3142 else {
3143 $block = 3; break;
3144 }
3145 break;
3146 }
3147 case 2: {
3148 $t7_8 = files.addr($t5_6);
3149 $t8_9 = $t7_8.$get();
3150 $t9_10 = categorize($t8_9);
3151 $t10_11 = ($t9_10 === 0);
3152 if ($t10_11) {
3153 $block = 4; break;
3154 }
3155 else {
3156 $block = 6; break;
3157 }
3158 break;
3159 }
3160 case 3: {
3161 $t11_12 = smartRefresh$1.bind(null, $t0_1, $t1_2);
3162 $t12_13 = $rt.builtin.len($t3_4);
3163 $t13_14 = ($t12_13 > 0);
3164 if ($t13_14) {
3165 $block = 9; break;
3166 }
3167 else {
3168 $block = 11; break;
3169 }
3170 break;
3171 }
3172 case 4: {
3173 $t0_1.$set(true);
3174 $t14_15 = { $value: $rt.builtin.makeSlice(1, 1, ''), $get() { return this.$value; }, $set(v) { this.$value = v; } };
3175 $t15_16 = $t14_15.$get().addr(0);
3176 $t15_16.$set($t8_9);
3177 $t16_17 = $rt.builtin.sliceSlice($t14_15.$get(), undefined, undefined, undefined);
3178 $t17_18 = $rt.builtin.appendSlice($t3_4, $t16_17);
3179 $t3_4 = $t17_18;
3180 $t4_5 = $t5_6;
3181 $block = 1; break;
3182 break;
3183 }
3184 case 5: {
3185 $t1_2.$set(true);
3186 let $phi0 = $t3_4;
3187 let $phi1 = $t5_6;
3188 $t3_4 = $phi0;
3189 $t4_5 = $phi1;
3190 $block = 1; break;
3191 break;
3192 }
3193 case 6: {
3194 $t18_19 = ($t9_10 === 1);
3195 if ($t18_19) {
3196 $block = 5; break;
3197 }
3198 else {
3199 $block = 8; break;
3200 }
3201 break;
3202 }
3203 case 7: {
3204 $t19_20 = { $value: $rt.builtin.makeSlice(1, 1, ''), $get() { return this.$value; }, $set(v) { this.$value = v; } };
3205 $t20_21 = $t19_20.$get().addr(0);
3206 $t20_21.$set($t8_9);
3207 $t21_22 = $rt.builtin.sliceSlice($t19_20.$get(), undefined, undefined, undefined);
3208 $t22_23 = $rt.builtin.appendSlice($t3_4, $t21_22);
3209 $t3_4 = $t22_23;
3210 $t4_5 = $t5_6;
3211 $block = 1; break;
3212 break;
3213 }
3214 case 8: {
3215 $t23_24 = ($t9_10 === 2);
3216 if ($t23_24) {
3217 $block = 7; break;
3218 }
3219 else {
3220 let $phi0 = $t3_4;
3221 let $phi1 = $t5_6;
3222 $t3_4 = $phi0;
3223 $t4_5 = $phi1;
3224 $block = 1; break;
3225 }
3226 break;
3227 }
3228 case 9: {
3229 $t24_25 = refreshChanged($t3_4, $t11_12);
3230 $block = 10; break;
3231 break;
3232 }
3233 case 10: {
3234 return;
3235 break;
3236 }
3237 case 11: {
3238 $t25_26 = smartRefresh$1();
3239 $block = 10; break;
3240 break;
3241 }
3242 }
3243 }
3244 }
3245
3246 function smartRefresh$1(needReload, needSWUpdate) {
3247 let $t0_1, $t1_2, $t2_3, $t3_4;
3248 let $block = 0;
3249 while (true) {
3250 switch ($block) {
3251 case 0: {
3252 $t0_1 = needReload.$get();
3253 if ($t0_1) {
3254 $block = 1; break;
3255 }
3256 else {
3257 $block = 3; break;
3258 }
3259 break;
3260 }
3261 case 1: {
3262 $t1_2 = doNavigate();
3263 $block = 2; break;
3264 break;
3265 }
3266 case 2: {
3267 return;
3268 break;
3269 }
3270 case 3: {
3271 $t2_3 = needSWUpdate.$get();
3272 if ($t2_3) {
3273 $block = 4; break;
3274 }
3275 else {
3276 $block = 2; break;
3277 }
3278 break;
3279 }
3280 case 4: {
3281 $t3_4 = broadcastToClients('["FORCE_UPDATE_SW","$sw-relay"]');
3282 $block = 2; break;
3283 break;
3284 }
3285 }
3286 }
3287 }
3288
3289 export function refreshChanged(files, done) {
3290 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9;
3291 $t0_1 = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
3292 $t0_1.$set(files);
3293 $t1_2 = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
3294 $t1_2.$set(done);
3295 $t2_3 = { $value: false, $get() { return this.$value; }, $set(v) { this.$value = v; } };
3296 $t2_3.$set(false);
3297 $t3_4 = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
3298 $t4_5 = refreshChanged$1.bind(null, $t2_3, $t1_2);
3299 $t3_4.$set($t4_5);
3300 $t5_6 = $t3_4.$get();
3301 $t6_7 = common$jsbridge$sw.SetTimeout(5000, $t5_6);
3302 $t7_8 = refreshChanged$2.bind(null, $t0_1, $t3_4);
3303 $t8_9 = common$jsbridge$sw.CacheOpen('smesh', $t7_8);
3304 return;
3305 }
3306
3307 function refreshChanged$1(once, done) {
3308 let $t0_1, $t1_2, $t2_3;
3309 let $block = 0;
3310 while (true) {
3311 switch ($block) {
3312 case 0: {
3313 $t0_1 = once.$get();
3314 if ($t0_1) {
3315 $block = 1; break;
3316 }
3317 else {
3318 $block = 2; break;
3319 }
3320 break;
3321 }
3322 case 1: {
3323 return;
3324 break;
3325 }
3326 case 2: {
3327 once.$set(true);
3328 refreshing.$set(false);
3329 $t1_2 = done.$get();
3330 $t2_3 = $t1_2();
3331 return;
3332 break;
3333 }
3334 }
3335 }
3336 }
3337
3338 function refreshChanged$2(files, finish, cache) {
3339 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20;
3340 let $block = 0;
3341 while (true) {
3342 switch ($block) {
3343 case 0: {
3344 $t0_1 = { $value: 0, $get() { return this.$value; }, $set(v) { this.$value = v; } };
3345 $t0_1.$set(cache);
3346 $t1_2 = files.$get();
3347 $t2_3 = $rt.builtin.len($t1_2);
3348 $t3_4 = $rt.builtin.makeSlice($t2_3, $t2_3, '');
3349 $t4_5 = files.$get();
3350 $t5_6 = $rt.builtin.len($t4_5);
3351 $t6_7 = -1;
3352 $block = 1; break;
3353 break;
3354 }
3355 case 1: {
3356 $t7_8 = ($t6_7 + 1);
3357 $t8_9 = ($t7_8 < $t5_6);
3358 if ($t8_9) {
3359 $block = 2; break;
3360 }
3361 else {
3362 $block = 3; break;
3363 }
3364 break;
3365 }
3366 case 2: {
3367 $t9_10 = $t4_5.addr($t7_8);
3368 $t10_11 = $t9_10.$get();
3369 $t11_12 = ($t10_11 + '?v=');
3370 $t12_13 = currentVersion.$get();
3371 $t13_14 = ($t11_12 + $t12_13);
3372 $t14_15 = $t3_4.addr($t7_8);
3373 $t14_15.$set($t13_14);
3374 $t6_7 = $t7_8;
3375 $block = 1; break;
3376 break;
3377 }
3378 case 3: {
3379 $t15_16 = { $value: 0, $get() { return this.$value; }, $set(v) { this.$value = v; } };
3380 $t15_16.$set(0);
3381 $t16_17 = { $value: false, $get() { return this.$value; }, $set(v) { this.$value = v; } };
3382 $t16_17.$set(false);
3383 $t17_18 = refreshChanged$2$1.bind(null, $t15_16, $t0_1, files, $t16_17, finish);
3384 $t18_19 = refreshChanged$2$2.bind(null, $t16_17, $t15_16, finish);
3385 $t19_20 = common$jsbridge$sw.FetchAll($t3_4, $t17_18, $t18_19);
3386 return;
3387 break;
3388 }
3389 }
3390 }
3391 }
3392
3393 function refreshChanged$2$1(pending, cache, files, fetchesDone, finish, idx, resp, ok) {
3394 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9;
3395 let $block = 0;
3396 while (true) {
3397 switch ($block) {
3398 case 0: {
3399 if (ok) {
3400 $block = 3; break;
3401 }
3402 else {
3403 $block = 2; break;
3404 }
3405 break;
3406 }
3407 case 1: {
3408 $t0_1 = pending.$get();
3409 $t1_2 = ($t0_1 + 1);
3410 pending.$set($t1_2);
3411 $t2_3 = cache.$get();
3412 $t3_4 = files.$get();
3413 $t4_5 = $t3_4.addr(idx);
3414 $t5_6 = $t4_5.$get();
3415 $t6_7 = refreshChanged$2$1$1.bind(null, pending, fetchesDone, finish);
3416 $t7_8 = common$jsbridge$sw.CachePut($t2_3, $t5_6, resp, $t6_7);
3417 $block = 2; break;
3418 break;
3419 }
3420 case 2: {
3421 return;
3422 break;
3423 }
3424 case 3: {
3425 $t8_9 = common$jsbridge$sw.ResponseOK(resp);
3426 if ($t8_9) {
3427 $block = 1; break;
3428 }
3429 else {
3430 $block = 2; break;
3431 }
3432 break;
3433 }
3434 }
3435 }
3436 }
3437
3438 function refreshChanged$2$1$1(pending, fetchesDone, finish) {
3439 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7;
3440 let $block = 0;
3441 while (true) {
3442 switch ($block) {
3443 case 0: {
3444 $t0_1 = pending.$get();
3445 $t1_2 = ($t0_1 - 1);
3446 pending.$set($t1_2);
3447 $t2_3 = fetchesDone.$get();
3448 if ($t2_3) {
3449 $block = 3; break;
3450 }
3451 else {
3452 $block = 2; break;
3453 }
3454 break;
3455 }
3456 case 1: {
3457 $t3_4 = finish.$get();
3458 $t4_5 = $t3_4();
3459 $block = 2; break;
3460 break;
3461 }
3462 case 2: {
3463 return;
3464 break;
3465 }
3466 case 3: {
3467 $t5_6 = pending.$get();
3468 $t6_7 = ($t5_6 === 0);
3469 if ($t6_7) {
3470 $block = 1; break;
3471 }
3472 else {
3473 $block = 2; break;
3474 }
3475 break;
3476 }
3477 }
3478 }
3479 }
3480
3481 function refreshChanged$2$2(fetchesDone, pending, finish) {
3482 let $t0_1, $t1_2, $t2_3, $t3_4;
3483 let $block = 0;
3484 while (true) {
3485 switch ($block) {
3486 case 0: {
3487 fetchesDone.$set(true);
3488 $t0_1 = pending.$get();
3489 $t1_2 = ($t0_1 === 0);
3490 if ($t1_2) {
3491 $block = 1; break;
3492 }
3493 else {
3494 $block = 2; break;
3495 }
3496 break;
3497 }
3498 case 1: {
3499 $t2_3 = finish.$get();
3500 $t3_4 = $t2_3();
3501 $block = 2; break;
3502 break;
3503 }
3504 case 2: {
3505 return;
3506 break;
3507 }
3508 }
3509 }
3510 }
3511
3512 export function populateCache() {
3513 let $t0_1;
3514 $t0_1 = cacheAll(populateCache$1);
3515 return;
3516 }
3517
3518 function populateCache$1() {
3519 return;
3520 }
3521
3522 export function fullRefresh() {
3523 let $t0_1;
3524 $t0_1 = cacheAll(doNavigate);
3525 return;
3526 }
3527
3528 export function cacheAll(done) {
3529 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8;
3530 $t0_1 = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
3531 $t0_1.$set(done);
3532 $t1_2 = { $value: false, $get() { return this.$value; }, $set(v) { this.$value = v; } };
3533 $t1_2.$set(false);
3534 $t2_3 = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
3535 $t3_4 = cacheAll$1.bind(null, $t1_2, $t0_1);
3536 $t2_3.$set($t3_4);
3537 $t4_5 = $t2_3.$get();
3538 $t5_6 = common$jsbridge$sw.SetTimeout(8000, $t4_5);
3539 $t6_7 = cacheAll$2.bind(null, $t2_3);
3540 $t7_8 = common$jsbridge$sw.CacheOpen('smesh', $t6_7);
3541 return;
3542 }
3543
3544 function cacheAll$1(once, done) {
3545 let $t0_1, $t1_2, $t2_3;
3546 let $block = 0;
3547 while (true) {
3548 switch ($block) {
3549 case 0: {
3550 $t0_1 = once.$get();
3551 if ($t0_1) {
3552 $block = 1; break;
3553 }
3554 else {
3555 $block = 2; break;
3556 }
3557 break;
3558 }
3559 case 1: {
3560 return;
3561 break;
3562 }
3563 case 2: {
3564 once.$set(true);
3565 refreshing.$set(false);
3566 $t1_2 = done.$get();
3567 $t2_3 = $t1_2();
3568 return;
3569 break;
3570 }
3571 }
3572 }
3573 }
3574
3575 function cacheAll$2(finish, cache) {
3576 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20;
3577 let $block = 0;
3578 while (true) {
3579 switch ($block) {
3580 case 0: {
3581 $t0_1 = { $value: 0, $get() { return this.$value; }, $set(v) { this.$value = v; } };
3582 $t0_1.$set(cache);
3583 $t1_2 = appFiles.$get();
3584 $t2_3 = $rt.builtin.len($t1_2);
3585 $t3_4 = $rt.builtin.makeSlice($t2_3, $t2_3, '');
3586 $t4_5 = appFiles.$get();
3587 $t5_6 = $rt.builtin.len($t4_5);
3588 $t6_7 = -1;
3589 $block = 1; break;
3590 break;
3591 }
3592 case 1: {
3593 $t7_8 = ($t6_7 + 1);
3594 $t8_9 = ($t7_8 < $t5_6);
3595 if ($t8_9) {
3596 $block = 2; break;
3597 }
3598 else {
3599 $block = 3; break;
3600 }
3601 break;
3602 }
3603 case 2: {
3604 $t9_10 = $t4_5.addr($t7_8);
3605 $t10_11 = $t9_10.$get();
3606 $t11_12 = ($t10_11 + '?v=');
3607 $t12_13 = currentVersion.$get();
3608 $t13_14 = ($t11_12 + $t12_13);
3609 $t14_15 = $t3_4.addr($t7_8);
3610 $t14_15.$set($t13_14);
3611 $t6_7 = $t7_8;
3612 $block = 1; break;
3613 break;
3614 }
3615 case 3: {
3616 $t15_16 = { $value: 0, $get() { return this.$value; }, $set(v) { this.$value = v; } };
3617 $t15_16.$set(0);
3618 $t16_17 = { $value: false, $get() { return this.$value; }, $set(v) { this.$value = v; } };
3619 $t16_17.$set(false);
3620 $t17_18 = cacheAll$2$1.bind(null, $t15_16, $t0_1, $t16_17, finish);
3621 $t18_19 = cacheAll$2$2.bind(null, $t16_17, $t15_16, finish);
3622 $t19_20 = common$jsbridge$sw.FetchAll($t3_4, $t17_18, $t18_19);
3623 return;
3624 break;
3625 }
3626 }
3627 }
3628 }
3629
3630 function cacheAll$2$1(pending, cache, fetchesDone, finish, idx, resp, ok) {
3631 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9;
3632 let $block = 0;
3633 while (true) {
3634 switch ($block) {
3635 case 0: {
3636 if (ok) {
3637 $block = 3; break;
3638 }
3639 else {
3640 $block = 2; break;
3641 }
3642 break;
3643 }
3644 case 1: {
3645 $t0_1 = pending.$get();
3646 $t1_2 = ($t0_1 + 1);
3647 pending.$set($t1_2);
3648 $t2_3 = cache.$get();
3649 $t3_4 = appFiles.$get();
3650 $t4_5 = $t3_4.addr(idx);
3651 $t5_6 = $t4_5.$get();
3652 $t6_7 = cacheAll$2$1$1.bind(null, pending, fetchesDone, finish);
3653 $t7_8 = common$jsbridge$sw.CachePut($t2_3, $t5_6, resp, $t6_7);
3654 $block = 2; break;
3655 break;
3656 }
3657 case 2: {
3658 return;
3659 break;
3660 }
3661 case 3: {
3662 $t8_9 = common$jsbridge$sw.ResponseOK(resp);
3663 if ($t8_9) {
3664 $block = 1; break;
3665 }
3666 else {
3667 $block = 2; break;
3668 }
3669 break;
3670 }
3671 }
3672 }
3673 }
3674
3675 function cacheAll$2$1$1(pending, fetchesDone, finish) {
3676 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7;
3677 let $block = 0;
3678 while (true) {
3679 switch ($block) {
3680 case 0: {
3681 $t0_1 = pending.$get();
3682 $t1_2 = ($t0_1 - 1);
3683 pending.$set($t1_2);
3684 $t2_3 = fetchesDone.$get();
3685 if ($t2_3) {
3686 $block = 3; break;
3687 }
3688 else {
3689 $block = 2; break;
3690 }
3691 break;
3692 }
3693 case 1: {
3694 $t3_4 = finish.$get();
3695 $t4_5 = $t3_4();
3696 $block = 2; break;
3697 break;
3698 }
3699 case 2: {
3700 return;
3701 break;
3702 }
3703 case 3: {
3704 $t5_6 = pending.$get();
3705 $t6_7 = ($t5_6 === 0);
3706 if ($t6_7) {
3707 $block = 1; break;
3708 }
3709 else {
3710 $block = 2; break;
3711 }
3712 break;
3713 }
3714 }
3715 }
3716 }
3717
3718 function cacheAll$2$2(fetchesDone, pending, finish) {
3719 let $t0_1, $t1_2, $t2_3, $t3_4;
3720 let $block = 0;
3721 while (true) {
3722 switch ($block) {
3723 case 0: {
3724 fetchesDone.$set(true);
3725 $t0_1 = pending.$get();
3726 $t1_2 = ($t0_1 === 0);
3727 if ($t1_2) {
3728 $block = 1; break;
3729 }
3730 else {
3731 $block = 2; break;
3732 }
3733 break;
3734 }
3735 case 1: {
3736 $t2_3 = finish.$get();
3737 $t3_4 = $t2_3();
3738 $block = 2; break;
3739 break;
3740 }
3741 case 2: {
3742 return;
3743 break;
3744 }
3745 }
3746 }
3747 }
3748
3749 export function doNavigate() {
3750 let $t0_1;
3751 $t0_1 = common$jsbridge$sw.MatchClients(doNavigate$1);
3752 return;
3753 }
3754
3755 function doNavigate$1(client) {
3756 let $t0_1;
3757 $t0_1 = common$jsbridge$sw.Navigate(client, '');
3758 return;
3759 }
3760
3761 export function initSharedState() {
3762 let $t0_1;
3763 $t0_1 = $rt.builtin.makeMap('int');
3764 cryptoCBs.$set($t0_1);
3765 return;
3766 }
3767
3768 export function cryptoProxy(method, peerPubkey, data, cb) {
3769 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27;
3770 $t0_1 = nextCryptoID.$get();
3771 $t1_2 = nextCryptoID.$get();
3772 $t2_3 = ($t1_2 + 1);
3773 nextCryptoID.$set($t2_3);
3774 $t3_4 = cryptoCBs.$get();
3775 $rt.builtin.mapUpdate($t3_4, $t0_1, cb);
3776 $t4_5 = ('shell: crypto→page ' + method);
3777 $t5_6 = ($t4_5 + ' #');
3778 $t6_7 = $t0_1;
3779 $t7_8 = common$helpers.Itoa($t6_7);
3780 $t8_9 = ($t5_6 + $t7_8);
3781 $t9_10 = common$jsbridge$sw.Log($t8_9);
3782 $t10_11 = $t0_1;
3783 $t11_12 = common$helpers.Itoa($t10_11);
3784 $t12_13 = ('["CRYPTO_REQ",' + $t11_12);
3785 $t13_14 = ($t12_13 + ',');
3786 $t14_15 = jstr(method);
3787 $t15_16 = ($t13_14 + $t14_15);
3788 $t16_17 = ($t15_16 + ',');
3789 $t17_18 = jstr(peerPubkey);
3790 $t18_19 = ($t16_17 + $t17_18);
3791 $t19_20 = ($t18_19 + ',');
3792 $t20_21 = jstr(data);
3793 $t21_22 = ($t19_20 + $t20_21);
3794 $t22_23 = ($t21_22 + ']');
3795 $t23_24 = broadcastToClients($t22_23);
3796 $t24_25 = { $value: 0, $get() { return this.$value; }, $set(v) { this.$value = v; } };
3797 $t24_25.$set($t0_1);
3798 $t25_26 = cryptoProxy$1.bind(null, $t24_25);
3799 $t26_27 = common$jsbridge$sw.SetTimeout(15000, $t25_26);
3800 return;
3801 }
3802
3803 function cryptoProxy$1(capturedID) {
3804 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14;
3805 let $block = 0;
3806 while (true) {
3807 switch ($block) {
3808 case 0: {
3809 $t0_1 = cryptoCBs.$get();
3810 $t1_2 = capturedID.$get();
3811 { const $r = $rt.builtin.mapLookup($t0_1, $t1_2); $t2_3 = [$r.value, $r.ok]; }
3812 $t3_4 = $t2_3[0];
3813 $t4_5 = $t2_3[1];
3814 if ($t4_5) {
3815 $block = 1; break;
3816 }
3817 else {
3818 $block = 2; break;
3819 }
3820 break;
3821 }
3822 case 1: {
3823 $t5_6 = cryptoCBs.$get();
3824 $t6_7 = capturedID.$get();
3825 $t7_8 = $rt.builtin.mapDelete($t5_6, $t6_7);
3826 $t8_9 = capturedID.$get();
3827 $t9_10 = $t8_9;
3828 $t10_11 = common$helpers.Itoa($t9_10);
3829 $t11_12 = ('shell: crypto TIMEOUT #' + $t10_11);
3830 $t12_13 = common$jsbridge$sw.Log($t11_12);
3831 $t13_14 = $t3_4('', 'crypto proxy timeout');
3832 $block = 2; break;
3833 break;
3834 }
3835 case 2: {
3836 return;
3837 break;
3838 }
3839 }
3840 }
3841 }
3842
3843 export function sendToClient(clientID, msg) {
3844 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9;
3845 let $block = 0;
3846 while (true) {
3847 switch ($block) {
3848 case 0: {
3849 $t0_1 = { $value: '', $get() { return this.$value; }, $set(v) { this.$value = v; } };
3850 $t0_1.$set(clientID);
3851 $t1_2 = { $value: '', $get() { return this.$value; }, $set(v) { this.$value = v; } };
3852 $t1_2.$set(msg);
3853 $t2_3 = $t0_1.$get();
3854 $t3_4 = ($t2_3 === '');
3855 if ($t3_4) {
3856 $block = 1; break;
3857 }
3858 else {
3859 $block = 2; break;
3860 }
3861 break;
3862 }
3863 case 1: {
3864 $t4_5 = $t1_2.$get();
3865 $t5_6 = broadcastToClients($t4_5);
3866 return;
3867 break;
3868 }
3869 case 2: {
3870 $t6_7 = $t0_1.$get();
3871 $t7_8 = sendToClient$1.bind(null, $t1_2, $t0_1);
3872 $t8_9 = common$jsbridge$sw.GetClientByID($t6_7, $t7_8);
3873 return;
3874 break;
3875 }
3876 }
3877 }
3878 }
3879
3880 function sendToClient$1(msg, clientID, c, ok) {
3881 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9;
3882 let $block = 0;
3883 while (true) {
3884 switch ($block) {
3885 case 0: {
3886 if (ok) {
3887 $block = 1; break;
3888 }
3889 else {
3890 $block = 3; break;
3891 }
3892 break;
3893 }
3894 case 1: {
3895 $t0_1 = msg.$get();
3896 $t1_2 = common$jsbridge$sw.PostMessageJSON(c, $t0_1);
3897 $block = 2; break;
3898 break;
3899 }
3900 case 2: {
3901 return;
3902 break;
3903 }
3904 case 3: {
3905 $t2_3 = clientID.$get();
3906 $t3_4 = $rt.builtin.stringSlice($t2_3, undefined, 8);
3907 $t4_5 = ('shell: client gone ' + $t3_4);
3908 $t5_6 = ($t4_5 + '… → broadcast');
3909 $t6_7 = common$jsbridge$sw.Log($t5_6);
3910 $t7_8 = msg.$get();
3911 $t8_9 = broadcastToClients($t7_8);
3912 $block = 2; break;
3913 break;
3914 }
3915 }
3916 }
3917 }
3918
3919 export function broadcastToClients(msg) {
3920 let $t0_1, $t1_2, $t2_3;
3921 $t0_1 = { $value: '', $get() { return this.$value; }, $set(v) { this.$value = v; } };
3922 $t0_1.$set(msg);
3923 $t1_2 = broadcastToClients$1.bind(null, $t0_1);
3924 $t2_3 = common$jsbridge$sw.MatchClients($t1_2);
3925 return;
3926 }
3927
3928 function broadcastToClients$1(msg, c) {
3929 let $t0_1, $t1_2;
3930 $t0_1 = msg.$get();
3931 $t1_2 = common$jsbridge$sw.PostMessageJSON(c, $t0_1);
3932 return;
3933 }
3934
3935 export function jstr(s) {
3936 let $t0_1;
3937 $t0_1 = common$helpers.JsonString(s);
3938 return $t0_1;
3939 }
3940
3941 export function newMW(s) {
3942 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23;
3943 let $block = 0;
3944 while (true) {
3945 switch ($block) {
3946 case 0: {
3947 $t0_1 = { $value: { s: '', i: 0 }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
3948 $t1_2 = { $get() { return $t0_1.$get().s; }, $set(v) { const obj = $t0_1.$get(); obj.s = v; $t0_1.$set(obj); } };
3949 $t1_2.$set(s);
3950 $block = 3; break;
3951 break;
3952 }
3953 case 1: {
3954 $t2_3 = { $get() { return $t0_1.$get().i; }, $set(v) { const obj = $t0_1.$get(); obj.i = v; $t0_1.$set(obj); } };
3955 $t3_4 = $t2_3.$get();
3956 $t4_5 = ($t3_4 + 1);
3957 $t5_6 = { $get() { return $t0_1.$get().i; }, $set(v) { const obj = $t0_1.$get(); obj.i = v; $t0_1.$set(obj); } };
3958 $t5_6.$set($t4_5);
3959 $block = 3; break;
3960 break;
3961 }
3962 case 2: {
3963 $t6_7 = { $get() { return $t0_1.$get().i; }, $set(v) { const obj = $t0_1.$get(); obj.i = v; $t0_1.$set(obj); } };
3964 $t7_8 = $t6_7.$get();
3965 $t8_9 = $rt.builtin.len(s);
3966 $t9_10 = ($t7_8 < $t8_9);
3967 if ($t9_10) {
3968 $block = 5; break;
3969 }
3970 else {
3971 $block = 6; break;
3972 }
3973 break;
3974 }
3975 case 3: {
3976 $t10_11 = { $get() { return $t0_1.$get().i; }, $set(v) { const obj = $t0_1.$get(); obj.i = v; $t0_1.$set(obj); } };
3977 $t11_12 = $t10_11.$get();
3978 $t12_13 = $rt.builtin.len(s);
3979 $t13_14 = ($t11_12 < $t12_13);
3980 if ($t13_14) {
3981 $block = 4; break;
3982 }
3983 else {
3984 $block = 2; break;
3985 }
3986 break;
3987 }
3988 case 4: {
3989 $t14_15 = { $get() { return $t0_1.$get().i; }, $set(v) { const obj = $t0_1.$get(); obj.i = v; $t0_1.$set(obj); } };
3990 $t15_16 = $t14_15.$get();
3991 $rt.runtime.boundsCheck($t15_16, $rt.builtin.byteLen(s));
3992 $t16_17 = $rt.builtin.stringByteAt(s, $t15_16);
3993 $t17_18 = ($t16_17 !== 91);
3994 if ($t17_18) {
3995 $block = 1; break;
3996 }
3997 else {
3998 $block = 2; break;
3999 }
4000 break;
4001 }
4002 case 5: {
4003 $t18_19 = { $get() { return $t0_1.$get().i; }, $set(v) { const obj = $t0_1.$get(); obj.i = v; $t0_1.$set(obj); } };
4004 $t19_20 = $t18_19.$get();
4005 $t20_21 = ($t19_20 + 1);
4006 $t21_22 = { $get() { return $t0_1.$get().i; }, $set(v) { const obj = $t0_1.$get(); obj.i = v; $t0_1.$set(obj); } };
4007 $t21_22.$set($t20_21);
4008 $block = 6; break;
4009 break;
4010 }
4011 case 6: {
4012 $t22_23 = $t0_1.$get();
4013 return $t22_23;
4014 break;
4015 }
4016 }
4017 }
4018 }
4019
4020 export function skipval(s, i) {
4021 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46, $t46_47, $t47_48;
4022 let $block = 0;
4023 while (true) {
4024 switch ($block) {
4025 case 0: {
4026 $t0_1 = $rt.builtin.len(s);
4027 $t1_2 = (i >= $t0_1);
4028 if ($t1_2) {
4029 $block = 1; break;
4030 }
4031 else {
4032 $block = 2; break;
4033 }
4034 break;
4035 }
4036 case 1: {
4037 return -1;
4038 break;
4039 }
4040 case 2: {
4041 $rt.runtime.boundsCheck(i, $rt.builtin.byteLen(s));
4042 $t2_3 = $rt.builtin.stringByteAt(s, i);
4043 $t3_4 = ($t2_3 === 34);
4044 if ($t3_4) {
4045 $block = 3; break;
4046 }
4047 else {
4048 $block = 5; break;
4049 }
4050 break;
4051 }
4052 case 3: {
4053 $t4_5 = (i + 1);
4054 $t9_10 = $t4_5;
4055 $block = 8; break;
4056 break;
4057 }
4058 case 4: {
4059 $t5_6 = skipBrack(s, i, 123, 125);
4060 return $t5_6;
4061 break;
4062 }
4063 case 5: {
4064 $t6_7 = ($t2_3 === 123);
4065 if ($t6_7) {
4066 $block = 4; break;
4067 }
4068 else {
4069 $block = 14; break;
4070 }
4071 break;
4072 }
4073 case 6: {
4074 $rt.runtime.boundsCheck($t9_10, $rt.builtin.byteLen(s));
4075 $t7_8 = $rt.builtin.stringByteAt(s, $t9_10);
4076 $t8_9 = ($t7_8 === 92);
4077 if ($t8_9) {
4078 $block = 9; break;
4079 }
4080 else {
4081 $block = 10; break;
4082 }
4083 break;
4084 }
4085 case 7: {
4086 return -1;
4087 break;
4088 }
4089 case 8: {
4090 $t10_11 = $rt.builtin.len(s);
4091 $t11_12 = ($t9_10 < $t10_11);
4092 if ($t11_12) {
4093 $block = 6; break;
4094 }
4095 else {
4096 $block = 7; break;
4097 }
4098 break;
4099 }
4100 case 9: {
4101 $t12_13 = ($t9_10 + 2);
4102 $t9_10 = $t12_13;
4103 $block = 8; break;
4104 break;
4105 }
4106 case 10: {
4107 $rt.runtime.boundsCheck($t9_10, $rt.builtin.byteLen(s));
4108 $t13_14 = $rt.builtin.stringByteAt(s, $t9_10);
4109 $t14_15 = ($t13_14 === 34);
4110 if ($t14_15) {
4111 $block = 11; break;
4112 }
4113 else {
4114 $block = 12; break;
4115 }
4116 break;
4117 }
4118 case 11: {
4119 $t15_16 = ($t9_10 + 1);
4120 return $t15_16;
4121 break;
4122 }
4123 case 12: {
4124 $t16_17 = ($t9_10 + 1);
4125 $t9_10 = $t16_17;
4126 $block = 8; break;
4127 break;
4128 }
4129 case 13: {
4130 $t17_18 = skipBrack(s, i, 91, 93);
4131 return $t17_18;
4132 break;
4133 }
4134 case 14: {
4135 $t18_19 = ($t2_3 === 91);
4136 if ($t18_19) {
4137 $block = 13; break;
4138 }
4139 else {
4140 $block = 16; break;
4141 }
4142 break;
4143 }
4144 case 15: {
4145 $t19_20 = (i + 4);
4146 $t20_21 = $rt.builtin.len(s);
4147 $t21_22 = ($t19_20 <= $t20_21);
4148 if ($t21_22) {
4149 $block = 19; break;
4150 }
4151 else {
4152 $block = 20; break;
4153 }
4154 break;
4155 }
4156 case 16: {
4157 $t22_23 = ($t2_3 === 116);
4158 if ($t22_23) {
4159 $block = 15; break;
4160 }
4161 else {
4162 $block = 18; break;
4163 }
4164 break;
4165 }
4166 case 17: {
4167 $t23_24 = (i + 5);
4168 $t24_25 = $rt.builtin.len(s);
4169 $t25_26 = ($t23_24 <= $t24_25);
4170 if ($t25_26) {
4171 $block = 23; break;
4172 }
4173 else {
4174 $block = 24; break;
4175 }
4176 break;
4177 }
4178 case 18: {
4179 $t26_27 = ($t2_3 === 102);
4180 if ($t26_27) {
4181 $block = 17; break;
4182 }
4183 else {
4184 $block = 22; break;
4185 }
4186 break;
4187 }
4188 case 19: {
4189 $t27_28 = (i + 4);
4190 return $t27_28;
4191 break;
4192 }
4193 case 20: {
4194 return -1;
4195 break;
4196 }
4197 case 21: {
4198 $t28_29 = (i + 4);
4199 $t29_30 = $rt.builtin.len(s);
4200 $t30_31 = ($t28_29 <= $t29_30);
4201 if ($t30_31) {
4202 $block = 25; break;
4203 }
4204 else {
4205 $block = 26; break;
4206 }
4207 break;
4208 }
4209 case 22: {
4210 $t31_32 = ($t2_3 === 110);
4211 if ($t31_32) {
4212 $block = 21; break;
4213 }
4214 else {
4215 $t35_36 = i;
4216 $block = 29; break;
4217 }
4218 break;
4219 }
4220 case 23: {
4221 $t32_33 = (i + 5);
4222 return $t32_33;
4223 break;
4224 }
4225 case 24: {
4226 return -1;
4227 break;
4228 }
4229 case 25: {
4230 $t33_34 = (i + 4);
4231 return $t33_34;
4232 break;
4233 }
4234 case 26: {
4235 return -1;
4236 break;
4237 }
4238 case 27: {
4239 $t34_35 = ($t35_36 + 1);
4240 $t35_36 = $t34_35;
4241 $block = 29; break;
4242 break;
4243 }
4244 case 28: {
4245 return $t35_36;
4246 break;
4247 }
4248 case 29: {
4249 $t36_37 = $rt.builtin.len(s);
4250 $t37_38 = ($t35_36 < $t36_37);
4251 if ($t37_38) {
4252 $block = 34; break;
4253 }
4254 else {
4255 $block = 28; break;
4256 }
4257 break;
4258 }
4259 case 30: {
4260 $rt.runtime.boundsCheck($t35_36, $rt.builtin.byteLen(s));
4261 $t38_39 = $rt.builtin.stringByteAt(s, $t35_36);
4262 $t39_40 = ($t38_39 !== 10);
4263 if ($t39_40) {
4264 $block = 27; break;
4265 }
4266 else {
4267 $block = 28; break;
4268 }
4269 break;
4270 }
4271 case 31: {
4272 $rt.runtime.boundsCheck($t35_36, $rt.builtin.byteLen(s));
4273 $t40_41 = $rt.builtin.stringByteAt(s, $t35_36);
4274 $t41_42 = ($t40_41 !== 32);
4275 if ($t41_42) {
4276 $block = 30; break;
4277 }
4278 else {
4279 $block = 28; break;
4280 }
4281 break;
4282 }
4283 case 32: {
4284 $rt.runtime.boundsCheck($t35_36, $rt.builtin.byteLen(s));
4285 $t42_43 = $rt.builtin.stringByteAt(s, $t35_36);
4286 $t43_44 = ($t42_43 !== 93);
4287 if ($t43_44) {
4288 $block = 31; break;
4289 }
4290 else {
4291 $block = 28; break;
4292 }
4293 break;
4294 }
4295 case 33: {
4296 $rt.runtime.boundsCheck($t35_36, $rt.builtin.byteLen(s));
4297 $t44_45 = $rt.builtin.stringByteAt(s, $t35_36);
4298 $t45_46 = ($t44_45 !== 125);
4299 if ($t45_46) {
4300 $block = 32; break;
4301 }
4302 else {
4303 $block = 28; break;
4304 }
4305 break;
4306 }
4307 case 34: {
4308 $rt.runtime.boundsCheck($t35_36, $rt.builtin.byteLen(s));
4309 $t46_47 = $rt.builtin.stringByteAt(s, $t35_36);
4310 $t47_48 = ($t46_47 !== 44);
4311 if ($t47_48) {
4312 $block = 33; break;
4313 }
4314 else {
4315 $block = 28; break;
4316 }
4317 break;
4318 }
4319 }
4320 }
4321 }
4322
4323 export function skipBrack(s, i, open, close) {
4324 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23;
4325 let $block = 0;
4326 while (true) {
4327 switch ($block) {
4328 case 0: {
4329 $t0_1 = (i + 1);
4330 $t2_3 = $t0_1;
4331 $t3_4 = 1;
4332 $t4_5 = false;
4333 $block = 3; break;
4334 break;
4335 }
4336 case 1: {
4337 if ($t4_5) {
4338 $block = 5; break;
4339 }
4340 else {
4341 $block = 7; break;
4342 }
4343 break;
4344 }
4345 case 2: {
4346 $t1_2 = ($t3_4 !== 0);
4347 if ($t1_2) {
4348 $block = 16; break;
4349 }
4350 else {
4351 $block = 17; break;
4352 }
4353 break;
4354 }
4355 case 3: {
4356 $t5_6 = $rt.builtin.len(s);
4357 $t6_7 = ($t2_3 < $t5_6);
4358 if ($t6_7) {
4359 $block = 4; break;
4360 }
4361 else {
4362 $block = 2; break;
4363 }
4364 break;
4365 }
4366 case 4: {
4367 $t7_8 = ($t3_4 > 0);
4368 if ($t7_8) {
4369 $block = 1; break;
4370 }
4371 else {
4372 $block = 2; break;
4373 }
4374 break;
4375 }
4376 case 5: {
4377 $rt.runtime.boundsCheck($t2_3, $rt.builtin.byteLen(s));
4378 $t8_9 = $rt.builtin.stringByteAt(s, $t2_3);
4379 $t9_10 = ($t8_9 === 92);
4380 if ($t9_10) {
4381 $block = 8; break;
4382 }
4383 else {
4384 $block = 9; break;
4385 }
4386 break;
4387 }
4388 case 6: {
4389 $t13_14 = ($t10_11 + 1);
4390 $t2_3 = $t13_14;
4391 $t3_4 = $t11_12;
4392 $t4_5 = $t12_13;
4393 $block = 3; break;
4394 break;
4395 }
4396 case 7: {
4397 $rt.runtime.boundsCheck($t2_3, $rt.builtin.byteLen(s));
4398 $t14_15 = $rt.builtin.stringByteAt(s, $t2_3);
4399 $t15_16 = ($t14_15 === 34);
4400 if ($t15_16) {
4401 $block = 11; break;
4402 }
4403 else {
4404 $block = 13; break;
4405 }
4406 break;
4407 }
4408 case 8: {
4409 $t16_17 = ($t2_3 + 1);
4410 $t10_11 = $t16_17;
4411 $t11_12 = $t3_4;
4412 $t12_13 = $t4_5;
4413 $block = 6; break;
4414 break;
4415 }
4416 case 9: {
4417 $rt.runtime.boundsCheck($t2_3, $rt.builtin.byteLen(s));
4418 $t17_18 = $rt.builtin.stringByteAt(s, $t2_3);
4419 $t18_19 = ($t17_18 === 34);
4420 if ($t18_19) {
4421 $block = 10; break;
4422 }
4423 else {
4424 $t10_11 = $t2_3;
4425 $t11_12 = $t3_4;
4426 $t12_13 = $t4_5;
4427 $block = 6; break;
4428 }
4429 break;
4430 }
4431 case 10: {
4432 $t10_11 = $t2_3;
4433 $t11_12 = $t3_4;
4434 $t12_13 = false;
4435 $block = 6; break;
4436 break;
4437 }
4438 case 11: {
4439 $t10_11 = $t2_3;
4440 $t11_12 = $t3_4;
4441 $t12_13 = true;
4442 $block = 6; break;
4443 break;
4444 }
4445 case 12: {
4446 $t19_20 = ($t3_4 + 1);
4447 $t10_11 = $t2_3;
4448 $t11_12 = $t19_20;
4449 $t12_13 = $t4_5;
4450 $block = 6; break;
4451 break;
4452 }
4453 case 13: {
4454 $t20_21 = ($t14_15 === open);
4455 if ($t20_21) {
4456 $block = 12; break;
4457 }
4458 else {
4459 $block = 15; break;
4460 }
4461 break;
4462 }
4463 case 14: {
4464 $t21_22 = ($t3_4 - 1);
4465 $t10_11 = $t2_3;
4466 $t11_12 = $t21_22;
4467 $t12_13 = $t4_5;
4468 $block = 6; break;
4469 break;
4470 }
4471 case 15: {
4472 $t22_23 = ($t14_15 === close);
4473 if ($t22_23) {
4474 $block = 14; break;
4475 }
4476 else {
4477 $t10_11 = $t2_3;
4478 $t11_12 = $t3_4;
4479 $t12_13 = $t4_5;
4480 $block = 6; break;
4481 }
4482 break;
4483 }
4484 case 16: {
4485 return -1;
4486 break;
4487 }
4488 case 17: {
4489 return $t2_3;
4490 break;
4491 }
4492 }
4493 }
4494 }
4495
4496 export function DMRecord$ToJSON(r) {
4497 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35;
4498 $t0_1 = { $get() { return r.$get().ID; }, $set(v) { const obj = r.$get(); obj.ID = v; r.$set(obj); } };
4499 $t1_2 = $t0_1.$get();
4500 $t2_3 = jstr($t1_2);
4501 $t3_4 = ('{"id":' + $t2_3);
4502 $t4_5 = ($t3_4 + ',"peer":');
4503 $t5_6 = { $get() { return r.$get().Peer; }, $set(v) { const obj = r.$get(); obj.Peer = v; r.$set(obj); } };
4504 $t6_7 = $t5_6.$get();
4505 $t7_8 = jstr($t6_7);
4506 $t8_9 = ($t4_5 + $t7_8);
4507 $t9_10 = ($t8_9 + ',"from":');
4508 $t10_11 = { $get() { return r.$get().From; }, $set(v) { const obj = r.$get(); obj.From = v; r.$set(obj); } };
4509 $t11_12 = $t10_11.$get();
4510 $t12_13 = jstr($t11_12);
4511 $t13_14 = ($t9_10 + $t12_13);
4512 $t14_15 = ($t13_14 + ',"content":');
4513 $t15_16 = { $get() { return r.$get().Content; }, $set(v) { const obj = r.$get(); obj.Content = v; r.$set(obj); } };
4514 $t16_17 = $t15_16.$get();
4515 $t17_18 = jstr($t16_17);
4516 $t18_19 = ($t14_15 + $t17_18);
4517 $t19_20 = ($t18_19 + ',"created_at":');
4518 $t20_21 = { $get() { return r.$get().CreatedAt; }, $set(v) { const obj = r.$get(); obj.CreatedAt = v; r.$set(obj); } };
4519 $t21_22 = $t20_21.$get();
4520 $t22_23 = common$helpers.Itoa($t21_22);
4521 $t23_24 = ($t19_20 + $t22_23);
4522 $t24_25 = ($t23_24 + ',"protocol":');
4523 $t25_26 = { $get() { return r.$get().Protocol; }, $set(v) { const obj = r.$get(); obj.Protocol = v; r.$set(obj); } };
4524 $t26_27 = $t25_26.$get();
4525 $t27_28 = jstr($t26_27);
4526 $t28_29 = ($t24_25 + $t27_28);
4527 $t29_30 = ($t28_29 + ',"eventId":');
4528 $t30_31 = { $get() { return r.$get().EventID; }, $set(v) { const obj = r.$get(); obj.EventID = v; r.$set(obj); } };
4529 $t31_32 = $t30_31.$get();
4530 $t32_33 = jstr($t31_32);
4531 $t33_34 = ($t29_30 + $t32_33);
4532 $t34_35 = ($t33_34 + '}');
4533 return $t34_35;
4534 }
4535
4536 $rt.types.getType('sw.DMRecord')?.methods?.set('ToJSON', DMRecord$ToJSON);
4537 export function mw$num(w) {
4538 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46, $t46_47, $t47_48, $t48_49, $t49_50, $t50_51, $t51_52;
4539 let $block = 0;
4540 while (true) {
4541 switch ($block) {
4542 case 0: {
4543 $t0_1 = mw$sep(w);
4544 $t1_2 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4545 $t2_3 = $t1_2.$get();
4546 $t3_4 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
4547 $t4_5 = $t3_4.$get();
4548 $t5_6 = $rt.builtin.len($t4_5);
4549 $t6_7 = ($t2_3 < $t5_6);
4550 if ($t6_7) {
4551 $block = 3; break;
4552 }
4553 else {
4554 $t11_12 = false;
4555 $block = 2; break;
4556 }
4557 break;
4558 }
4559 case 1: {
4560 $t7_8 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4561 $t8_9 = $t7_8.$get();
4562 $t9_10 = ($t8_9 + 1);
4563 $t10_11 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4564 $t10_11.$set($t9_10);
4565 $t11_12 = true;
4566 $block = 2; break;
4567 break;
4568 }
4569 case 2: {
4570 $t31_32 = 0;
4571 $block = 6; break;
4572 break;
4573 }
4574 case 3: {
4575 $t12_13 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4576 $t13_14 = $t12_13.$get();
4577 $t14_15 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
4578 $t15_16 = $t14_15.$get();
4579 $rt.runtime.boundsCheck($t13_14, $rt.builtin.byteLen($t15_16));
4580 $t16_17 = $rt.builtin.stringByteAt($t15_16, $t13_14);
4581 $t17_18 = ($t16_17 === 45);
4582 if ($t17_18) {
4583 $block = 1; break;
4584 }
4585 else {
4586 $t11_12 = false;
4587 $block = 2; break;
4588 }
4589 break;
4590 }
4591 case 4: {
4592 $t18_19 = ($t31_32 * 10);
4593 $t19_20 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4594 $t20_21 = $t19_20.$get();
4595 $t21_22 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
4596 $t22_23 = $t21_22.$get();
4597 $rt.runtime.boundsCheck($t20_21, $rt.builtin.byteLen($t22_23));
4598 $t23_24 = $rt.builtin.stringByteAt($t22_23, $t20_21);
4599 $t24_25 = (($t23_24 - 48) & 0xFF);
4600 $t25_26 = $t24_25;
4601 $t26_27 = ($t18_19 + $t25_26);
4602 $t27_28 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4603 $t28_29 = $t27_28.$get();
4604 $t29_30 = ($t28_29 + 1);
4605 $t30_31 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4606 $t30_31.$set($t29_30);
4607 $t31_32 = $t26_27;
4608 $block = 6; break;
4609 break;
4610 }
4611 case 5: {
4612 if ($t11_12) {
4613 $block = 9; break;
4614 }
4615 else {
4616 $t51_52 = $t31_32;
4617 $block = 10; break;
4618 }
4619 break;
4620 }
4621 case 6: {
4622 $t32_33 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4623 $t33_34 = $t32_33.$get();
4624 $t34_35 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
4625 $t35_36 = $t34_35.$get();
4626 $t36_37 = $rt.builtin.len($t35_36);
4627 $t37_38 = ($t33_34 < $t36_37);
4628 if ($t37_38) {
4629 $block = 8; break;
4630 }
4631 else {
4632 $block = 5; break;
4633 }
4634 break;
4635 }
4636 case 7: {
4637 $t38_39 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4638 $t39_40 = $t38_39.$get();
4639 $t40_41 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
4640 $t41_42 = $t40_41.$get();
4641 $rt.runtime.boundsCheck($t39_40, $rt.builtin.byteLen($t41_42));
4642 $t42_43 = $rt.builtin.stringByteAt($t41_42, $t39_40);
4643 $t43_44 = ($t42_43 <= 57);
4644 if ($t43_44) {
4645 $block = 4; break;
4646 }
4647 else {
4648 $block = 5; break;
4649 }
4650 break;
4651 }
4652 case 8: {
4653 $t44_45 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4654 $t45_46 = $t44_45.$get();
4655 $t46_47 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
4656 $t47_48 = $t46_47.$get();
4657 $rt.runtime.boundsCheck($t45_46, $rt.builtin.byteLen($t47_48));
4658 $t48_49 = $rt.builtin.stringByteAt($t47_48, $t45_46);
4659 $t49_50 = ($t48_49 >= 48);
4660 if ($t49_50) {
4661 $block = 7; break;
4662 }
4663 else {
4664 $block = 5; break;
4665 }
4666 break;
4667 }
4668 case 9: {
4669 $t50_51 = -$t31_32;
4670 $t51_52 = $t50_51;
4671 $block = 10; break;
4672 break;
4673 }
4674 case 10: {
4675 return $t51_52;
4676 break;
4677 }
4678 }
4679 }
4680 }
4681
4682 $rt.types.getType('sw.mw')?.methods?.set('num', mw$num);
4683 export function mw$raw(w) {
4684 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21;
4685 let $block = 0;
4686 while (true) {
4687 switch ($block) {
4688 case 0: {
4689 $t0_1 = mw$sep(w);
4690 $t1_2 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4691 $t2_3 = $t1_2.$get();
4692 $t3_4 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
4693 $t4_5 = $t3_4.$get();
4694 $t5_6 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4695 $t6_7 = $t5_6.$get();
4696 $t7_8 = skipval($t4_5, $t6_7);
4697 $t8_9 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4698 $t8_9.$set($t7_8);
4699 $t9_10 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4700 $t10_11 = $t9_10.$get();
4701 $t11_12 = ($t10_11 < 0);
4702 if ($t11_12) {
4703 $block = 1; break;
4704 }
4705 else {
4706 $block = 2; break;
4707 }
4708 break;
4709 }
4710 case 1: {
4711 $t12_13 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
4712 $t13_14 = $t12_13.$get();
4713 $t14_15 = $rt.builtin.len($t13_14);
4714 $t15_16 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4715 $t15_16.$set($t14_15);
4716 return '';
4717 break;
4718 }
4719 case 2: {
4720 $t16_17 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
4721 $t17_18 = $t16_17.$get();
4722 $t18_19 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4723 $t19_20 = $t18_19.$get();
4724 $t20_21 = $rt.builtin.stringSlice($t17_18, $t2_3, $t19_20);
4725 return $t20_21;
4726 break;
4727 }
4728 }
4729 }
4730 }
4731
4732 $rt.types.getType('sw.mw')?.methods?.set('raw', mw$raw);
4733 export function mw$sep(w) {
4734 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20;
4735 let $block = 0;
4736 while (true) {
4737 switch ($block) {
4738 case 0: {
4739 $block = 3; break;
4740 break;
4741 }
4742 case 1: {
4743 $t0_1 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4744 $t1_2 = $t0_1.$get();
4745 $t2_3 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
4746 $t3_4 = $t2_3.$get();
4747 $rt.runtime.boundsCheck($t1_2, $rt.builtin.byteLen($t3_4));
4748 $t4_5 = $rt.builtin.stringByteAt($t3_4, $t1_2);
4749 $t5_6 = ($t4_5 !== 32);
4750 if ($t5_6) {
4751 $block = 8; break;
4752 }
4753 else {
4754 $block = 4; break;
4755 }
4756 break;
4757 }
4758 case 2: {
4759 return;
4760 break;
4761 }
4762 case 3: {
4763 $t6_7 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4764 $t7_8 = $t6_7.$get();
4765 $t8_9 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
4766 $t9_10 = $t8_9.$get();
4767 $t10_11 = $rt.builtin.len($t9_10);
4768 $t11_12 = ($t7_8 < $t10_11);
4769 if ($t11_12) {
4770 $block = 1; break;
4771 }
4772 else {
4773 $block = 2; break;
4774 }
4775 break;
4776 }
4777 case 4: {
4778 $t12_13 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4779 $t13_14 = $t12_13.$get();
4780 $t14_15 = ($t13_14 + 1);
4781 $t15_16 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4782 $t15_16.$set($t14_15);
4783 $block = 3; break;
4784 break;
4785 }
4786 case 5: {
4787 $t16_17 = ($t4_5 !== 44);
4788 if ($t16_17) {
4789 $block = 2; break;
4790 }
4791 else {
4792 $block = 4; break;
4793 }
4794 break;
4795 }
4796 case 6: {
4797 $t17_18 = ($t4_5 !== 9);
4798 if ($t17_18) {
4799 $block = 5; break;
4800 }
4801 else {
4802 $block = 4; break;
4803 }
4804 break;
4805 }
4806 case 7: {
4807 $t18_19 = ($t4_5 !== 13);
4808 if ($t18_19) {
4809 $block = 6; break;
4810 }
4811 else {
4812 $block = 4; break;
4813 }
4814 break;
4815 }
4816 case 8: {
4817 $t19_20 = ($t4_5 !== 10);
4818 if ($t19_20) {
4819 $block = 7; break;
4820 }
4821 else {
4822 $block = 4; break;
4823 }
4824 break;
4825 }
4826 }
4827 }
4828 }
4829
4830 $rt.types.getType('sw.mw')?.methods?.set('sep', mw$sep);
4831 export function mw$str(w) {
4832 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46, $t46_47, $t47_48, $t48_49, $t49_50, $t50_51, $t51_52, $t52_53, $t53_54, $t54_55, $t55_56, $t56_57, $t57_58, $t58_59, $t59_60, $t60_61, $t61_62, $t62_63, $t63_64, $t64_65, $t65_66, $t66_67, $t67_68, $t68_69, $t69_70, $t70_71, $t71_72, $t72_73, $t73_74, $t74_75, $t75_76, $t76_77, $t77_78, $t78_79, $t79_80, $t80_81, $t81_82, $t82_83, $t83_84, $t84_85, $t85_86, $t86_87, $t87_88, $t88_89, $t89_90, $t90_91, $t91_92, $t92_93, $t93_94, $t94_95, $t95_96, $t96_97, $t97_98, $t98_99, $t99_100, $t100_101, $t101_102, $t102_103, $t103_104, $t104_105, $t105_106, $t106_107, $t107_108, $t108_109, $t109_110, $t110_111, $t111_112, $t112_113, $t113_114, $t114_115, $t115_116, $t116_117, $t117_118, $t118_119, $t119_120, $t120_121, $t121_122, $t122_123, $t123_124, $t124_125, $t125_126, $t126_127, $t127_128, $t128_129, $t129_130, $t130_131, $t131_132, $t132_133, $t133_134, $t134_135, $t135_136, $t136_137, $t137_138, $t138_139, $t139_140, $t140_141, $t141_142, $t142_143, $t143_144, $t144_145, $t145_146, $t146_147, $t147_148, $t148_149, $t149_150, $t150_151, $t151_152, $t152_153, $t153_154, $t154_155, $t155_156, $t156_157, $t157_158, $t158_159, $t159_160, $t160_161, $t161_162, $t162_163, $t163_164, $t164_165, $t165_166, $t166_167, $t167_168, $t168_169, $t169_170, $t170_171, $t171_172, $t172_173, $t173_174, $t174_175, $t175_176, $t176_177, $t177_178, $t178_179, $t179_180, $t180_181, $t181_182, $t182_183, $t183_184, $t184_185, $t185_186, $t186_187, $t187_188, $t188_189, $t189_190, $t190_191, $t191_192, $t192_193, $t193_194, $t194_195, $t195_196, $t196_197, $t197_198, $t198_199, $t199_200, $t200_201, $t201_202, $t202_203, $t203_204, $t204_205, $t205_206, $t206_207, $t207_208, $t208_209, $t209_210, $t210_211, $t211_212, $t212_213, $t213_214;
4833 let $block = 0;
4834 while (true) {
4835 switch ($block) {
4836 case 0: {
4837 $t0_1 = mw$sep(w);
4838 $t1_2 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4839 $t2_3 = $t1_2.$get();
4840 $t3_4 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
4841 $t4_5 = $t3_4.$get();
4842 $t5_6 = $rt.builtin.len($t4_5);
4843 $t6_7 = ($t2_3 >= $t5_6);
4844 if ($t6_7) {
4845 $block = 1; break;
4846 }
4847 else {
4848 $block = 3; break;
4849 }
4850 break;
4851 }
4852 case 1: {
4853 return '';
4854 break;
4855 }
4856 case 2: {
4857 $t7_8 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4858 $t8_9 = $t7_8.$get();
4859 $t9_10 = ($t8_9 + 1);
4860 $t10_11 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4861 $t10_11.$set($t9_10);
4862 $t11_12 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4863 $t12_13 = $t11_12.$get();
4864 $t31_32 = null;
4865 $t32_33 = false;
4866 $t33_34 = $t12_13;
4867 $block = 6; break;
4868 break;
4869 }
4870 case 3: {
4871 $t13_14 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4872 $t14_15 = $t13_14.$get();
4873 $t15_16 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
4874 $t16_17 = $t15_16.$get();
4875 $rt.runtime.boundsCheck($t14_15, $rt.builtin.byteLen($t16_17));
4876 $t17_18 = $rt.builtin.stringByteAt($t16_17, $t14_15);
4877 $t18_19 = ($t17_18 !== 34);
4878 if ($t18_19) {
4879 $block = 1; break;
4880 }
4881 else {
4882 $block = 2; break;
4883 }
4884 break;
4885 }
4886 case 4: {
4887 $t19_20 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4888 $t20_21 = $t19_20.$get();
4889 $t21_22 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
4890 $t22_23 = $t21_22.$get();
4891 $rt.runtime.boundsCheck($t20_21, $rt.builtin.byteLen($t22_23));
4892 $t23_24 = $rt.builtin.stringByteAt($t22_23, $t20_21);
4893 $t24_25 = ($t23_24 === 92);
4894 if ($t24_25) {
4895 $block = 10; break;
4896 }
4897 else {
4898 $block = 9; break;
4899 }
4900 break;
4901 }
4902 case 5: {
4903 $t25_26 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4904 $t26_27 = $t25_26.$get();
4905 $t27_28 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
4906 $t28_29 = $t27_28.$get();
4907 $t29_30 = $rt.builtin.len($t28_29);
4908 $t30_31 = ($t26_27 >= $t29_30);
4909 if ($t30_31) {
4910 $block = 43; break;
4911 }
4912 else {
4913 $block = 44; break;
4914 }
4915 break;
4916 }
4917 case 6: {
4918 $t34_35 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4919 $t35_36 = $t34_35.$get();
4920 $t36_37 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
4921 $t37_38 = $t36_37.$get();
4922 $t38_39 = $rt.builtin.len($t37_38);
4923 $t39_40 = ($t35_36 < $t38_39);
4924 if ($t39_40) {
4925 $block = 7; break;
4926 }
4927 else {
4928 $block = 5; break;
4929 }
4930 break;
4931 }
4932 case 7: {
4933 $t40_41 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4934 $t41_42 = $t40_41.$get();
4935 $t42_43 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
4936 $t43_44 = $t42_43.$get();
4937 $rt.runtime.boundsCheck($t41_42, $rt.builtin.byteLen($t43_44));
4938 $t44_45 = $rt.builtin.stringByteAt($t43_44, $t41_42);
4939 $t45_46 = ($t44_45 !== 34);
4940 if ($t45_46) {
4941 $block = 4; break;
4942 }
4943 else {
4944 $block = 5; break;
4945 }
4946 break;
4947 }
4948 case 8: {
4949 $t46_47 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
4950 $t47_48 = $t46_47.$get();
4951 $t48_49 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4952 $t49_50 = $t48_49.$get();
4953 $t50_51 = $rt.builtin.stringSlice($t47_48, $t33_34, $t49_50);
4954 $t51_52 = $rt.builtin.appendString($t31_32, $t50_51);
4955 $t52_53 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4956 $t53_54 = $t52_53.$get();
4957 $t54_55 = ($t53_54 + 1);
4958 $t55_56 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4959 $t55_56.$set($t54_55);
4960 $t56_57 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4961 $t57_58 = $t56_57.$get();
4962 $t58_59 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
4963 $t59_60 = $t58_59.$get();
4964 $rt.runtime.boundsCheck($t57_58, $rt.builtin.byteLen($t59_60));
4965 $t60_61 = $rt.builtin.stringByteAt($t59_60, $t57_58);
4966 $t61_62 = ($t60_61 === 34);
4967 if ($t61_62) {
4968 $block = 12; break;
4969 }
4970 else {
4971 $block = 14; break;
4972 }
4973 break;
4974 }
4975 case 9: {
4976 $t62_63 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4977 $t63_64 = $t62_63.$get();
4978 $t64_65 = ($t63_64 + 1);
4979 $t65_66 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4980 $t65_66.$set($t64_65);
4981 let $phi0 = $t31_32;
4982 let $phi1 = $t32_33;
4983 let $phi2 = $t33_34;
4984 $t31_32 = $phi0;
4985 $t32_33 = $phi1;
4986 $t33_34 = $phi2;
4987 $block = 6; break;
4988 break;
4989 }
4990 case 10: {
4991 $t66_67 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4992 $t67_68 = $t66_67.$get();
4993 $t68_69 = ($t67_68 + 1);
4994 $t69_70 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
4995 $t70_71 = $t69_70.$get();
4996 $t71_72 = $rt.builtin.len($t70_71);
4997 $t72_73 = ($t68_69 < $t71_72);
4998 if ($t72_73) {
4999 $block = 8; break;
5000 }
5001 else {
5002 $block = 9; break;
5003 }
5004 break;
5005 }
5006 case 11: {
5007 $t74_75 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5008 $t75_76 = $t74_75.$get();
5009 $t76_77 = ($t75_76 + 1);
5010 $t77_78 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5011 $t77_78.$set($t76_77);
5012 $t78_79 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5013 $t79_80 = $t78_79.$get();
5014 $t31_32 = $t73_74;
5015 $t32_33 = true;
5016 $t33_34 = $t79_80;
5017 $block = 6; break;
5018 break;
5019 }
5020 case 12: {
5021 $t80_81 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5022 $t81_82 = $t80_81.$get();
5023 $t82_83 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
5024 $t83_84 = $t82_83.$get();
5025 $rt.runtime.boundsCheck($t81_82, $rt.builtin.byteLen($t83_84));
5026 $t84_85 = $rt.builtin.stringByteAt($t83_84, $t81_82);
5027 $t85_86 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
5028 $t86_87 = $t85_86.$get().addr(0);
5029 $t86_87.$set($t84_85);
5030 $t87_88 = $rt.builtin.sliceSlice($t85_86.$get(), undefined, undefined, undefined);
5031 $t88_89 = $rt.builtin.appendSlice($t51_52, $t87_88);
5032 $t73_74 = $t88_89;
5033 $block = 11; break;
5034 break;
5035 }
5036 case 13: {
5037 $t89_90 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
5038 $t90_91 = $t89_90.$get().addr(0);
5039 $t90_91.$set(10);
5040 $t91_92 = $rt.builtin.sliceSlice($t89_90.$get(), undefined, undefined, undefined);
5041 $t92_93 = $rt.builtin.appendSlice($t51_52, $t91_92);
5042 $t73_74 = $t92_93;
5043 $block = 11; break;
5044 break;
5045 }
5046 case 14: {
5047 $t93_94 = ($t60_61 === 92);
5048 if ($t93_94) {
5049 $block = 12; break;
5050 }
5051 else {
5052 $block = 15; break;
5053 }
5054 break;
5055 }
5056 case 15: {
5057 $t94_95 = ($t60_61 === 47);
5058 if ($t94_95) {
5059 $block = 12; break;
5060 }
5061 else {
5062 $block = 16; break;
5063 }
5064 break;
5065 }
5066 case 16: {
5067 $t95_96 = ($t60_61 === 110);
5068 if ($t95_96) {
5069 $block = 13; break;
5070 }
5071 else {
5072 $block = 18; break;
5073 }
5074 break;
5075 }
5076 case 17: {
5077 $t96_97 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
5078 $t97_98 = $t96_97.$get().addr(0);
5079 $t97_98.$set(9);
5080 $t98_99 = $rt.builtin.sliceSlice($t96_97.$get(), undefined, undefined, undefined);
5081 $t99_100 = $rt.builtin.appendSlice($t51_52, $t98_99);
5082 $t73_74 = $t99_100;
5083 $block = 11; break;
5084 break;
5085 }
5086 case 18: {
5087 $t100_101 = ($t60_61 === 116);
5088 if ($t100_101) {
5089 $block = 17; break;
5090 }
5091 else {
5092 $block = 20; break;
5093 }
5094 break;
5095 }
5096 case 19: {
5097 $t101_102 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
5098 $t102_103 = $t101_102.$get().addr(0);
5099 $t102_103.$set(13);
5100 $t103_104 = $rt.builtin.sliceSlice($t101_102.$get(), undefined, undefined, undefined);
5101 $t104_105 = $rt.builtin.appendSlice($t51_52, $t103_104);
5102 $t73_74 = $t104_105;
5103 $block = 11; break;
5104 break;
5105 }
5106 case 20: {
5107 $t105_106 = ($t60_61 === 114);
5108 if ($t105_106) {
5109 $block = 19; break;
5110 }
5111 else {
5112 $block = 22; break;
5113 }
5114 break;
5115 }
5116 case 21: {
5117 $t106_107 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5118 $t107_108 = $t106_107.$get();
5119 $t108_109 = ($t107_108 + 4);
5120 $t109_110 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
5121 $t110_111 = $t109_110.$get();
5122 $t111_112 = $rt.builtin.len($t110_111);
5123 $t112_113 = ($t108_109 < $t111_112);
5124 if ($t112_113) {
5125 $block = 24; break;
5126 }
5127 else {
5128 $block = 25; break;
5129 }
5130 break;
5131 }
5132 case 22: {
5133 $t113_114 = ($t60_61 === 117);
5134 if ($t113_114) {
5135 $block = 21; break;
5136 }
5137 else {
5138 $block = 23; break;
5139 }
5140 break;
5141 }
5142 case 23: {
5143 $t114_115 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5144 $t115_116 = $t114_115.$get();
5145 $t116_117 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
5146 $t117_118 = $t116_117.$get();
5147 $rt.runtime.boundsCheck($t115_116, $rt.builtin.byteLen($t117_118));
5148 $t118_119 = $rt.builtin.stringByteAt($t117_118, $t115_116);
5149 $t119_120 = { $value: $rt.builtin.makeSlice(2, 2, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
5150 $t120_121 = $t119_120.$get().addr(0);
5151 $t120_121.$set(92);
5152 $t121_122 = $t119_120.$get().addr(1);
5153 $t121_122.$set($t118_119);
5154 $t122_123 = $rt.builtin.sliceSlice($t119_120.$get(), undefined, undefined, undefined);
5155 $t123_124 = $rt.builtin.appendSlice($t51_52, $t122_123);
5156 $t73_74 = $t123_124;
5157 $block = 11; break;
5158 break;
5159 }
5160 case 24: {
5161 $t129_130 = 0;
5162 $t130_131 = 1;
5163 $block = 26; break;
5164 break;
5165 }
5166 case 25: {
5167 $t124_125 = { $value: $rt.builtin.makeSlice(2, 2, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
5168 $t125_126 = $t124_125.$get().addr(0);
5169 $t125_126.$set(92);
5170 $t126_127 = $t124_125.$get().addr(1);
5171 $t126_127.$set(117);
5172 $t127_128 = $rt.builtin.sliceSlice($t124_125.$get(), undefined, undefined, undefined);
5173 $t128_129 = $rt.builtin.appendSlice($t51_52, $t127_128);
5174 $t73_74 = $t128_129;
5175 $block = 11; break;
5176 break;
5177 }
5178 case 26: {
5179 $t131_132 = ($t130_131 <= 4);
5180 if ($t131_132) {
5181 $block = 27; break;
5182 }
5183 else {
5184 $block = 28; break;
5185 }
5186 break;
5187 }
5188 case 27: {
5189 $t132_133 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5190 $t133_134 = $t132_133.$get();
5191 $t134_135 = ($t133_134 + $t130_131);
5192 $t135_136 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
5193 $t136_137 = $t135_136.$get();
5194 $rt.runtime.boundsCheck($t134_135, $rt.builtin.byteLen($t136_137));
5195 $t137_138 = $rt.builtin.stringByteAt($t136_137, $t134_135);
5196 $t138_139 = ($t129_130 * (2 ** 4));
5197 $t139_140 = ($t137_138 >= 48);
5198 if ($t139_140) {
5199 $block = 32; break;
5200 }
5201 else {
5202 $block = 31; break;
5203 }
5204 break;
5205 }
5206 case 28: {
5207 $t140_141 = ($t129_130 < 128);
5208 if ($t140_141) {
5209 $block = 38; break;
5210 }
5211 else {
5212 $block = 40; break;
5213 }
5214 break;
5215 }
5216 case 29: {
5217 $t141_142 = (($t137_138 - 48) & 0xFF);
5218 $t142_143 = $t141_142;
5219 $t143_144 = $rt.builtin.int64or($t138_139, $t142_143);
5220 $t144_145 = $t143_144;
5221 $block = 30; break;
5222 break;
5223 }
5224 case 30: {
5225 $t145_146 = ($t130_131 + 1);
5226 $t129_130 = $t144_145;
5227 $t130_131 = $t145_146;
5228 $block = 26; break;
5229 break;
5230 }
5231 case 31: {
5232 $t146_147 = ($t137_138 >= 97);
5233 if ($t146_147) {
5234 $block = 35; break;
5235 }
5236 else {
5237 $block = 34; break;
5238 }
5239 break;
5240 }
5241 case 32: {
5242 $t147_148 = ($t137_138 <= 57);
5243 if ($t147_148) {
5244 $block = 29; break;
5245 }
5246 else {
5247 $block = 31; break;
5248 }
5249 break;
5250 }
5251 case 33: {
5252 $t148_149 = (($t137_138 - 97) & 0xFF);
5253 $t149_150 = $t148_149;
5254 $t150_151 = ($t149_150 + 10);
5255 $t151_152 = $rt.builtin.int64or($t138_139, $t150_151);
5256 $t144_145 = $t151_152;
5257 $block = 30; break;
5258 break;
5259 }
5260 case 34: {
5261 $t152_153 = ($t137_138 >= 65);
5262 if ($t152_153) {
5263 $block = 37; break;
5264 }
5265 else {
5266 $t144_145 = $t138_139;
5267 $block = 30; break;
5268 }
5269 break;
5270 }
5271 case 35: {
5272 $t153_154 = ($t137_138 <= 102);
5273 if ($t153_154) {
5274 $block = 33; break;
5275 }
5276 else {
5277 $block = 34; break;
5278 }
5279 break;
5280 }
5281 case 36: {
5282 $t154_155 = (($t137_138 - 65) & 0xFF);
5283 $t155_156 = $t154_155;
5284 $t156_157 = ($t155_156 + 10);
5285 $t157_158 = $rt.builtin.int64or($t138_139, $t156_157);
5286 $t144_145 = $t157_158;
5287 $block = 30; break;
5288 break;
5289 }
5290 case 37: {
5291 $t158_159 = ($t137_138 <= 70);
5292 if ($t158_159) {
5293 $block = 36; break;
5294 }
5295 else {
5296 $t144_145 = $t138_139;
5297 $block = 30; break;
5298 }
5299 break;
5300 }
5301 case 38: {
5302 $t159_160 = ($t129_130 & 0xFF);
5303 $t160_161 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
5304 $t161_162 = $t160_161.$get().addr(0);
5305 $t161_162.$set($t159_160);
5306 $t162_163 = $rt.builtin.sliceSlice($t160_161.$get(), undefined, undefined, undefined);
5307 $t163_164 = $rt.builtin.appendSlice($t51_52, $t162_163);
5308 $t164_165 = $t163_164;
5309 $block = 39; break;
5310 break;
5311 }
5312 case 39: {
5313 $t165_166 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5314 $t166_167 = $t165_166.$get();
5315 $t167_168 = ($t166_167 + 4);
5316 $t168_169 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5317 $t168_169.$set($t167_168);
5318 $t73_74 = $t164_165;
5319 $block = 11; break;
5320 break;
5321 }
5322 case 40: {
5323 $t169_170 = ($t129_130 < 2048);
5324 if ($t169_170) {
5325 $block = 41; break;
5326 }
5327 else {
5328 $block = 42; break;
5329 }
5330 break;
5331 }
5332 case 41: {
5333 $t170_171 = Math.trunc($t129_130 / (2 ** 6));
5334 $t171_172 = $rt.builtin.int64or(192, $t170_171);
5335 $t172_173 = ($t171_172 & 0xFF);
5336 $t173_174 = $rt.builtin.int64and($t129_130, 63);
5337 $t174_175 = $rt.builtin.int64or(128, $t173_174);
5338 $t175_176 = ($t174_175 & 0xFF);
5339 $t176_177 = { $value: $rt.builtin.makeSlice(2, 2, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
5340 $t177_178 = $t176_177.$get().addr(0);
5341 $t177_178.$set($t172_173);
5342 $t178_179 = $t176_177.$get().addr(1);
5343 $t178_179.$set($t175_176);
5344 $t179_180 = $rt.builtin.sliceSlice($t176_177.$get(), undefined, undefined, undefined);
5345 $t180_181 = $rt.builtin.appendSlice($t51_52, $t179_180);
5346 $t164_165 = $t180_181;
5347 $block = 39; break;
5348 break;
5349 }
5350 case 42: {
5351 $t181_182 = Math.trunc($t129_130 / (2 ** 12));
5352 $t182_183 = $rt.builtin.int64or(224, $t181_182);
5353 $t183_184 = ($t182_183 & 0xFF);
5354 $t184_185 = Math.trunc($t129_130 / (2 ** 6));
5355 $t185_186 = $rt.builtin.int64and($t184_185, 63);
5356 $t186_187 = $rt.builtin.int64or(128, $t185_186);
5357 $t187_188 = ($t186_187 & 0xFF);
5358 $t188_189 = $rt.builtin.int64and($t129_130, 63);
5359 $t189_190 = $rt.builtin.int64or(128, $t188_189);
5360 $t190_191 = ($t189_190 & 0xFF);
5361 $t191_192 = { $value: $rt.builtin.makeSlice(3, 3, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
5362 $t192_193 = $t191_192.$get().addr(0);
5363 $t192_193.$set($t183_184);
5364 $t193_194 = $t191_192.$get().addr(1);
5365 $t193_194.$set($t187_188);
5366 $t194_195 = $t191_192.$get().addr(2);
5367 $t194_195.$set($t190_191);
5368 $t195_196 = $rt.builtin.sliceSlice($t191_192.$get(), undefined, undefined, undefined);
5369 $t196_197 = $rt.builtin.appendSlice($t51_52, $t195_196);
5370 $t164_165 = $t196_197;
5371 $block = 39; break;
5372 break;
5373 }
5374 case 43: {
5375 return '';
5376 break;
5377 }
5378 case 44: {
5379 if ($t32_33) {
5380 $block = 45; break;
5381 }
5382 else {
5383 $block = 47; break;
5384 }
5385 break;
5386 }
5387 case 45: {
5388 $t197_198 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
5389 $t198_199 = $t197_198.$get();
5390 $t199_200 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5391 $t200_201 = $t199_200.$get();
5392 $t201_202 = $rt.builtin.stringSlice($t198_199, $t33_34, $t200_201);
5393 $t202_203 = $rt.builtin.appendString($t31_32, $t201_202);
5394 $t203_204 = $rt.builtin.bytesToString($t202_203);
5395 $t204_205 = $t203_204;
5396 $block = 46; break;
5397 break;
5398 }
5399 case 46: {
5400 $t205_206 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5401 $t206_207 = $t205_206.$get();
5402 $t207_208 = ($t206_207 + 1);
5403 $t208_209 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5404 $t208_209.$set($t207_208);
5405 return $t204_205;
5406 break;
5407 }
5408 case 47: {
5409 $t209_210 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
5410 $t210_211 = $t209_210.$get();
5411 $t211_212 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5412 $t212_213 = $t211_212.$get();
5413 $t213_214 = $rt.builtin.stringSlice($t210_211, $t33_34, $t212_213);
5414 $t204_205 = $t213_214;
5415 $block = 46; break;
5416 break;
5417 }
5418 }
5419 }
5420 }
5421
5422 $rt.types.getType('sw.mw')?.methods?.set('str', mw$str);
5423 export function mw$strs(w) {
5424 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46;
5425 let $block = 0;
5426 while (true) {
5427 switch ($block) {
5428 case 0: {
5429 $t0_1 = mw$sep(w);
5430 $t1_2 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5431 $t2_3 = $t1_2.$get();
5432 $t3_4 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
5433 $t4_5 = $t3_4.$get();
5434 $t5_6 = $rt.builtin.len($t4_5);
5435 $t6_7 = ($t2_3 >= $t5_6);
5436 if ($t6_7) {
5437 $block = 1; break;
5438 }
5439 else {
5440 $block = 3; break;
5441 }
5442 break;
5443 }
5444 case 1: {
5445 return null;
5446 break;
5447 }
5448 case 2: {
5449 $t7_8 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5450 $t8_9 = $t7_8.$get();
5451 $t9_10 = ($t8_9 + 1);
5452 $t10_11 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5453 $t10_11.$set($t9_10);
5454 $t17_18 = null;
5455 $block = 4; break;
5456 break;
5457 }
5458 case 3: {
5459 $t11_12 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5460 $t12_13 = $t11_12.$get();
5461 $t13_14 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
5462 $t14_15 = $t13_14.$get();
5463 $rt.runtime.boundsCheck($t12_13, $rt.builtin.byteLen($t14_15));
5464 $t15_16 = $rt.builtin.stringByteAt($t14_15, $t12_13);
5465 $t16_17 = ($t15_16 !== 91);
5466 if ($t16_17) {
5467 $block = 1; break;
5468 }
5469 else {
5470 $block = 2; break;
5471 }
5472 break;
5473 }
5474 case 4: {
5475 $t18_19 = mw$sep(w);
5476 $t19_20 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5477 $t20_21 = $t19_20.$get();
5478 $t21_22 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
5479 $t22_23 = $t21_22.$get();
5480 $t23_24 = $rt.builtin.len($t22_23);
5481 $t24_25 = ($t20_21 >= $t23_24);
5482 if ($t24_25) {
5483 $block = 5; break;
5484 }
5485 else {
5486 $block = 6; break;
5487 }
5488 break;
5489 }
5490 case 5: {
5491 return $t17_18;
5492 break;
5493 }
5494 case 6: {
5495 $t25_26 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5496 $t26_27 = $t25_26.$get();
5497 $t27_28 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
5498 $t28_29 = $t27_28.$get();
5499 $rt.runtime.boundsCheck($t26_27, $rt.builtin.byteLen($t28_29));
5500 $t29_30 = $rt.builtin.stringByteAt($t28_29, $t26_27);
5501 $t30_31 = ($t29_30 === 93);
5502 if ($t30_31) {
5503 $block = 7; break;
5504 }
5505 else {
5506 $block = 8; break;
5507 }
5508 break;
5509 }
5510 case 7: {
5511 $t31_32 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5512 $t32_33 = $t31_32.$get();
5513 $t33_34 = ($t32_33 + 1);
5514 $t34_35 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5515 $t34_35.$set($t33_34);
5516 return $t17_18;
5517 break;
5518 }
5519 case 8: {
5520 $t35_36 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5521 $t36_37 = $t35_36.$get();
5522 $t37_38 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
5523 $t38_39 = $t37_38.$get();
5524 $rt.runtime.boundsCheck($t36_37, $rt.builtin.byteLen($t38_39));
5525 $t39_40 = $rt.builtin.stringByteAt($t38_39, $t36_37);
5526 $t40_41 = ($t39_40 !== 34);
5527 if ($t40_41) {
5528 $block = 9; break;
5529 }
5530 else {
5531 $block = 10; break;
5532 }
5533 break;
5534 }
5535 case 9: {
5536 return $t17_18;
5537 break;
5538 }
5539 case 10: {
5540 $t41_42 = mw$str(w);
5541 $t42_43 = { $value: $rt.builtin.makeSlice(1, 1, ''), $get() { return this.$value; }, $set(v) { this.$value = v; } };
5542 $t43_44 = $t42_43.$get().addr(0);
5543 $t43_44.$set($t41_42);
5544 $t44_45 = $rt.builtin.sliceSlice($t42_43.$get(), undefined, undefined, undefined);
5545 $t45_46 = $rt.builtin.appendSlice($t17_18, $t44_45);
5546 $t17_18 = $t45_46;
5547 $block = 4; break;
5548 break;
5549 }
5550 }
5551 }
5552 }
5553
5554 $rt.types.getType('sw.mw')?.methods?.set('strs', mw$strs);
5555