common_helpers.mjs raw
1 // Package common/helpers
2 // Generated by TinyJS — TinyGo JavaScript backend
3
4 import * as $rt from './$runtime/index.mjs';
5
6 // Package-level variables
7
8 export function init() {
9 return;
10 }
11
12 export function JsonString(s) {
13 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;
14 let $block = 0;
15 while (true) {
16 switch ($block) {
17 case 0: {
18 $t0_1 = '"';
19 $t1_2 = 0;
20 $t2_3 = 0;
21 $block = 1; break;
22 break;
23 }
24 case 1: {
25 $t3_4 = $rt.builtin.len(s);
26 $t4_5 = ($t2_3 < $t3_4);
27 if ($t4_5) {
28 $block = 2; break;
29 }
30 else {
31 $block = 4; break;
32 }
33 break;
34 }
35 case 2: {
36 $rt.runtime.boundsCheck($t2_3, $rt.builtin.byteLen(s));
37 $t5_6 = $rt.builtin.stringByteAt(s, $t2_3);
38 $t6_7 = ($t5_6 === 34);
39 if ($t6_7) {
40 $block = 6; break;
41 }
42 else {
43 $block = 8; break;
44 }
45 break;
46 }
47 case 3: {
48 $t9_10 = ($t2_3 + 1);
49 $t0_1 = $t7_8;
50 $t1_2 = $t8_9;
51 $t2_3 = $t9_10;
52 $block = 1; break;
53 break;
54 }
55 case 4: {
56 $t10_11 = $rt.builtin.stringSlice(s, $t1_2, undefined);
57 $t11_12 = ($t0_1 + $t10_11);
58 $t12_13 = ($t11_12 + '"');
59 return $t12_13;
60 break;
61 }
62 case 5: {
63 $t14_15 = $rt.builtin.stringSlice(s, $t1_2, $t2_3);
64 $t15_16 = ($t14_15 + $t13_14);
65 $t16_17 = ($t0_1 + $t15_16);
66 $t17_18 = ($t2_3 + 1);
67 $t7_8 = $t16_17;
68 $t8_9 = $t17_18;
69 $block = 3; break;
70 break;
71 }
72 case 6: {
73 $t13_14 = '\\"';
74 $block = 5; break;
75 break;
76 }
77 case 7: {
78 $t13_14 = '\\\\';
79 $block = 5; break;
80 break;
81 }
82 case 8: {
83 $t18_19 = ($t5_6 === 92);
84 if ($t18_19) {
85 $block = 7; break;
86 }
87 else {
88 $block = 10; break;
89 }
90 break;
91 }
92 case 9: {
93 $t13_14 = '\\n';
94 $block = 5; break;
95 break;
96 }
97 case 10: {
98 $t19_20 = ($t5_6 === 10);
99 if ($t19_20) {
100 $block = 9; break;
101 }
102 else {
103 $block = 12; break;
104 }
105 break;
106 }
107 case 11: {
108 $t13_14 = '\\r';
109 $block = 5; break;
110 break;
111 }
112 case 12: {
113 $t20_21 = ($t5_6 === 13);
114 if ($t20_21) {
115 $block = 11; break;
116 }
117 else {
118 $block = 14; break;
119 }
120 break;
121 }
122 case 13: {
123 $t13_14 = '\\t';
124 $block = 5; break;
125 break;
126 }
127 case 14: {
128 $t21_22 = ($t5_6 === 9);
129 if ($t21_22) {
130 $block = 13; break;
131 }
132 else {
133 $block = 16; break;
134 }
135 break;
136 }
137 case 15: {
138 $t13_14 = '\\b';
139 $block = 5; break;
140 break;
141 }
142 case 16: {
143 $t22_23 = ($t5_6 === 8);
144 if ($t22_23) {
145 $block = 15; break;
146 }
147 else {
148 $block = 18; break;
149 }
150 break;
151 }
152 case 17: {
153 $t13_14 = '\\f';
154 $block = 5; break;
155 break;
156 }
157 case 18: {
158 $t23_24 = ($t5_6 === 12);
159 if ($t23_24) {
160 $block = 17; break;
161 }
162 else {
163 $block = 19; break;
164 }
165 break;
166 }
167 case 19: {
168 $t24_25 = ($t5_6 < 32);
169 if ($t24_25) {
170 $block = 20; break;
171 }
172 else {
173 $t7_8 = $t0_1;
174 $t8_9 = $t1_2;
175 $block = 3; break;
176 }
177 break;
178 }
179 case 20: {
180 $t25_26 = (($t5_6 & 0xFF) >> 4);
181 $rt.runtime.boundsCheck($t25_26, $rt.builtin.byteLen('0123456789abcdef'));
182 $t26_27 = $rt.builtin.stringByteAt('0123456789abcdef', $t25_26);
183 $t27_28 = String.fromCodePoint($t26_27);
184 $t28_29 = ('\\u00' + $t27_28);
185 $t29_30 = ($t5_6 & 15);
186 $rt.runtime.boundsCheck($t29_30, $rt.builtin.byteLen('0123456789abcdef'));
187 $t30_31 = $rt.builtin.stringByteAt('0123456789abcdef', $t29_30);
188 $t31_32 = String.fromCodePoint($t30_31);
189 $t32_33 = ($t28_29 + $t31_32);
190 $t13_14 = $t32_33;
191 $block = 5; break;
192 break;
193 }
194 }
195 }
196 }
197
198 export function JsonGetString(s, key) {
199 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;
200 let $block = 0;
201 while (true) {
202 switch ($block) {
203 case 0: {
204 $t0_1 = ('"' + key);
205 $t1_2 = ($t0_1 + '"');
206 $t2_3 = $rt.builtin.len($t1_2);
207 $t3_4 = 0;
208 $block = 1; break;
209 break;
210 }
211 case 1: {
212 $t4_5 = $rt.builtin.len(s);
213 $t5_6 = ($t4_5 - $t2_3);
214 $t6_7 = ($t3_4 <= $t5_6);
215 if ($t6_7) {
216 $block = 2; break;
217 }
218 else {
219 $block = 4; break;
220 }
221 break;
222 }
223 case 2: {
224 $t7_8 = ($t3_4 + $t2_3);
225 $t8_9 = $rt.builtin.stringSlice(s, $t3_4, $t7_8);
226 $t9_10 = ($t8_9 === $t1_2);
227 if ($t9_10) {
228 $block = 5; break;
229 }
230 else {
231 $block = 3; break;
232 }
233 break;
234 }
235 case 3: {
236 $t10_11 = ($t3_4 + 1);
237 $t3_4 = $t10_11;
238 $block = 1; break;
239 break;
240 }
241 case 4: {
242 return '';
243 break;
244 }
245 case 5: {
246 $t11_12 = ($t3_4 + $t2_3);
247 $t15_16 = $t11_12;
248 $block = 8; break;
249 break;
250 }
251 case 6: {
252 $t12_13 = ($t15_16 + 1);
253 $t15_16 = $t12_13;
254 $block = 8; break;
255 break;
256 }
257 case 7: {
258 $t13_14 = $rt.builtin.len(s);
259 $t14_15 = ($t15_16 >= $t13_14);
260 if ($t14_15) {
261 $block = 3; break;
262 }
263 else {
264 $block = 14; break;
265 }
266 break;
267 }
268 case 8: {
269 $t16_17 = $rt.builtin.len(s);
270 $t17_18 = ($t15_16 < $t16_17);
271 if ($t17_18) {
272 $block = 9; break;
273 }
274 else {
275 $block = 7; break;
276 }
277 break;
278 }
279 case 9: {
280 $rt.runtime.boundsCheck($t15_16, $rt.builtin.byteLen(s));
281 $t18_19 = $rt.builtin.stringByteAt(s, $t15_16);
282 $t19_20 = ($t18_19 === 32);
283 if ($t19_20) {
284 $block = 6; break;
285 }
286 else {
287 $block = 12; break;
288 }
289 break;
290 }
291 case 10: {
292 $rt.runtime.boundsCheck($t15_16, $rt.builtin.byteLen(s));
293 $t20_21 = $rt.builtin.stringByteAt(s, $t15_16);
294 $t21_22 = ($t20_21 === 13);
295 if ($t21_22) {
296 $block = 6; break;
297 }
298 else {
299 $block = 7; break;
300 }
301 break;
302 }
303 case 11: {
304 $rt.runtime.boundsCheck($t15_16, $rt.builtin.byteLen(s));
305 $t22_23 = $rt.builtin.stringByteAt(s, $t15_16);
306 $t23_24 = ($t22_23 === 10);
307 if ($t23_24) {
308 $block = 6; break;
309 }
310 else {
311 $block = 10; break;
312 }
313 break;
314 }
315 case 12: {
316 $rt.runtime.boundsCheck($t15_16, $rt.builtin.byteLen(s));
317 $t24_25 = $rt.builtin.stringByteAt(s, $t15_16);
318 $t25_26 = ($t24_25 === 9);
319 if ($t25_26) {
320 $block = 6; break;
321 }
322 else {
323 $block = 11; break;
324 }
325 break;
326 }
327 case 13: {
328 $t26_27 = ($t15_16 + 1);
329 $t32_33 = $t26_27;
330 $block = 17; break;
331 break;
332 }
333 case 14: {
334 $rt.runtime.boundsCheck($t15_16, $rt.builtin.byteLen(s));
335 $t27_28 = $rt.builtin.stringByteAt(s, $t15_16);
336 $t28_29 = ($t27_28 !== 58);
337 if ($t28_29) {
338 $block = 3; break;
339 }
340 else {
341 $block = 13; break;
342 }
343 break;
344 }
345 case 15: {
346 $t29_30 = ($t32_33 + 1);
347 $t32_33 = $t29_30;
348 $block = 17; break;
349 break;
350 }
351 case 16: {
352 $t30_31 = $rt.builtin.len(s);
353 $t31_32 = ($t32_33 >= $t30_31);
354 if ($t31_32) {
355 $block = 3; break;
356 }
357 else {
358 $block = 23; break;
359 }
360 break;
361 }
362 case 17: {
363 $t33_34 = $rt.builtin.len(s);
364 $t34_35 = ($t32_33 < $t33_34);
365 if ($t34_35) {
366 $block = 18; break;
367 }
368 else {
369 $block = 16; break;
370 }
371 break;
372 }
373 case 18: {
374 $rt.runtime.boundsCheck($t32_33, $rt.builtin.byteLen(s));
375 $t35_36 = $rt.builtin.stringByteAt(s, $t32_33);
376 $t36_37 = ($t35_36 === 32);
377 if ($t36_37) {
378 $block = 15; break;
379 }
380 else {
381 $block = 21; break;
382 }
383 break;
384 }
385 case 19: {
386 $rt.runtime.boundsCheck($t32_33, $rt.builtin.byteLen(s));
387 $t37_38 = $rt.builtin.stringByteAt(s, $t32_33);
388 $t38_39 = ($t37_38 === 13);
389 if ($t38_39) {
390 $block = 15; break;
391 }
392 else {
393 $block = 16; break;
394 }
395 break;
396 }
397 case 20: {
398 $rt.runtime.boundsCheck($t32_33, $rt.builtin.byteLen(s));
399 $t39_40 = $rt.builtin.stringByteAt(s, $t32_33);
400 $t40_41 = ($t39_40 === 10);
401 if ($t40_41) {
402 $block = 15; break;
403 }
404 else {
405 $block = 19; break;
406 }
407 break;
408 }
409 case 21: {
410 $rt.runtime.boundsCheck($t32_33, $rt.builtin.byteLen(s));
411 $t41_42 = $rt.builtin.stringByteAt(s, $t32_33);
412 $t42_43 = ($t41_42 === 9);
413 if ($t42_43) {
414 $block = 15; break;
415 }
416 else {
417 $block = 20; break;
418 }
419 break;
420 }
421 case 22: {
422 $t43_44 = ($t32_33 + 1);
423 $t48_49 = $t43_44;
424 $t49_50 = $t43_44;
425 $t50_51 = '';
426 $block = 25; break;
427 break;
428 }
429 case 23: {
430 $rt.runtime.boundsCheck($t32_33, $rt.builtin.byteLen(s));
431 $t44_45 = $rt.builtin.stringByteAt(s, $t32_33);
432 $t45_46 = ($t44_45 !== 34);
433 if ($t45_46) {
434 $block = 3; break;
435 }
436 else {
437 $block = 22; break;
438 }
439 break;
440 }
441 case 24: {
442 $rt.runtime.boundsCheck($t48_49, $rt.builtin.byteLen(s));
443 $t46_47 = $rt.builtin.stringByteAt(s, $t48_49);
444 $t47_48 = ($t46_47 === 92);
445 if ($t47_48) {
446 $block = 28; break;
447 }
448 else {
449 $block = 27; break;
450 }
451 break;
452 }
453 case 25: {
454 $t51_52 = $rt.builtin.len(s);
455 $t52_53 = ($t48_49 < $t51_52);
456 if ($t52_53) {
457 $block = 24; break;
458 }
459 else {
460 $block = 3; break;
461 }
462 break;
463 }
464 case 26: {
465 $t53_54 = $rt.builtin.stringSlice(s, $t49_50, $t48_49);
466 $t54_55 = ($t50_51 + $t53_54);
467 $t55_56 = ($t48_49 + 1);
468 $rt.runtime.boundsCheck($t55_56, $rt.builtin.byteLen(s));
469 $t56_57 = $rt.builtin.stringByteAt(s, $t55_56);
470 $t57_58 = ($t56_57 === 34);
471 if ($t57_58) {
472 $block = 30; break;
473 }
474 else {
475 $block = 32; break;
476 }
477 break;
478 }
479 case 27: {
480 $rt.runtime.boundsCheck($t48_49, $rt.builtin.byteLen(s));
481 $t58_59 = $rt.builtin.stringByteAt(s, $t48_49);
482 $t59_60 = ($t58_59 === 34);
483 if ($t59_60) {
484 $block = 40; break;
485 }
486 else {
487 $block = 41; break;
488 }
489 break;
490 }
491 case 28: {
492 $t60_61 = ($t48_49 + 1);
493 $t61_62 = $rt.builtin.len(s);
494 $t62_63 = ($t60_61 < $t61_62);
495 if ($t62_63) {
496 $block = 26; break;
497 }
498 else {
499 $block = 27; break;
500 }
501 break;
502 }
503 case 29: {
504 $t64_65 = ($t55_56 + 1);
505 $t48_49 = $t64_65;
506 $t49_50 = $t64_65;
507 $t50_51 = $t63_64;
508 $block = 25; break;
509 break;
510 }
511 case 30: {
512 $t65_66 = ($t55_56 + 1);
513 $t66_67 = $rt.builtin.stringSlice(s, $t55_56, $t65_66);
514 $t67_68 = ($t54_55 + $t66_67);
515 $t63_64 = $t67_68;
516 $block = 29; break;
517 break;
518 }
519 case 31: {
520 $t68_69 = ($t54_55 + '\n');
521 $t63_64 = $t68_69;
522 $block = 29; break;
523 break;
524 }
525 case 32: {
526 $t69_70 = ($t56_57 === 92);
527 if ($t69_70) {
528 $block = 30; break;
529 }
530 else {
531 $block = 33; break;
532 }
533 break;
534 }
535 case 33: {
536 $t70_71 = ($t56_57 === 47);
537 if ($t70_71) {
538 $block = 30; break;
539 }
540 else {
541 $block = 34; break;
542 }
543 break;
544 }
545 case 34: {
546 $t71_72 = ($t56_57 === 110);
547 if ($t71_72) {
548 $block = 31; break;
549 }
550 else {
551 $block = 36; break;
552 }
553 break;
554 }
555 case 35: {
556 $t72_73 = ($t54_55 + '\r');
557 $t63_64 = $t72_73;
558 $block = 29; break;
559 break;
560 }
561 case 36: {
562 $t73_74 = ($t56_57 === 114);
563 if ($t73_74) {
564 $block = 35; break;
565 }
566 else {
567 $block = 38; break;
568 }
569 break;
570 }
571 case 37: {
572 $t74_75 = ($t54_55 + '\t');
573 $t63_64 = $t74_75;
574 $block = 29; break;
575 break;
576 }
577 case 38: {
578 $t75_76 = ($t56_57 === 116);
579 if ($t75_76) {
580 $block = 37; break;
581 }
582 else {
583 $block = 39; break;
584 }
585 break;
586 }
587 case 39: {
588 $t76_77 = ($t55_56 + 1);
589 $t77_78 = $rt.builtin.stringSlice(s, $t55_56, $t76_77);
590 $t78_79 = ($t54_55 + $t77_78);
591 $t63_64 = $t78_79;
592 $block = 29; break;
593 break;
594 }
595 case 40: {
596 $t79_80 = $rt.builtin.stringSlice(s, $t49_50, $t48_49);
597 $t80_81 = ($t50_51 + $t79_80);
598 return $t80_81;
599 break;
600 }
601 case 41: {
602 $t81_82 = ($t48_49 + 1);
603 let $phi0 = $t81_82;
604 let $phi1 = $t49_50;
605 let $phi2 = $t50_51;
606 $t48_49 = $phi0;
607 $t49_50 = $phi1;
608 $t50_51 = $phi2;
609 $block = 25; break;
610 break;
611 }
612 }
613 }
614 }
615
616 export function Itoa(n) {
617 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;
618 let $block = 0;
619 while (true) {
620 switch ($block) {
621 case 0: {
622 $t0_1 = (n === 0);
623 if ($t0_1) {
624 $block = 1; break;
625 }
626 else {
627 $block = 2; break;
628 }
629 break;
630 }
631 case 1: {
632 return '0';
633 break;
634 }
635 case 2: {
636 $t1_2 = (n < 0);
637 if ($t1_2) {
638 $block = 3; break;
639 }
640 else {
641 $t3_4 = n;
642 $t4_5 = false;
643 $block = 4; break;
644 }
645 break;
646 }
647 case 3: {
648 $t2_3 = -n;
649 $t3_4 = $t2_3;
650 $t4_5 = true;
651 $block = 4; break;
652 break;
653 }
654 case 4: {
655 $t5_6 = { $value: $rt.builtin.makeSlice(20, 20, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
656 $t12_13 = $t3_4;
657 $t13_14 = 20;
658 $block = 7; break;
659 break;
660 }
661 case 5: {
662 $t6_7 = ($t13_14 - 1);
663 $t7_8 = ($t12_13 % 10);
664 $t8_9 = (48 + $t7_8);
665 $t9_10 = ($t8_9 & 0xFF);
666 $t10_11 = $t5_6.$get().addr($t6_7);
667 $t10_11.$set($t9_10);
668 $t11_12 = Math.trunc($t12_13 / 10);
669 $t12_13 = $t11_12;
670 $t13_14 = $t6_7;
671 $block = 7; break;
672 break;
673 }
674 case 6: {
675 if ($t4_5) {
676 $block = 8; break;
677 }
678 else {
679 $t17_18 = $t13_14;
680 $block = 9; break;
681 }
682 break;
683 }
684 case 7: {
685 $t14_15 = ($t12_13 > 0);
686 if ($t14_15) {
687 $block = 5; break;
688 }
689 else {
690 $block = 6; break;
691 }
692 break;
693 }
694 case 8: {
695 $t15_16 = ($t13_14 - 1);
696 $t16_17 = $t5_6.$get().addr($t15_16);
697 $t16_17.$set(45);
698 $t17_18 = $t15_16;
699 $block = 9; break;
700 break;
701 }
702 case 9: {
703 $t18_19 = $rt.builtin.sliceSlice($t5_6.$get(), $t17_18, undefined, undefined);
704 $t19_20 = $rt.builtin.bytesToString($t18_19);
705 return $t19_20;
706 break;
707 }
708 }
709 }
710 }
711
712 export function Base64Encode(data) {
713 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;
714 let $block = 0;
715 while (true) {
716 switch ($block) {
717 case 0: {
718 $t0_1 = $rt.builtin.len(data);
719 $t1_2 = ($t0_1 + 2);
720 $t2_3 = Math.trunc($t1_2 / 3);
721 $t3_4 = ($t2_3 * 4);
722 $t4_5 = $rt.builtin.makeSlice(0, $t3_4, 0);
723 $t5_6 = $t4_5;
724 $t6_7 = 0;
725 $block = 1; break;
726 break;
727 }
728 case 1: {
729 $t7_8 = ($t6_7 < $t0_1);
730 if ($t7_8) {
731 $block = 2; break;
732 }
733 else {
734 $block = 3; break;
735 }
736 break;
737 }
738 case 2: {
739 $t8_9 = data.addr($t6_7);
740 $t9_10 = $t8_9.$get();
741 $t10_11 = ($t6_7 + 1);
742 $t11_12 = ($t10_11 < $t0_1);
743 if ($t11_12) {
744 $block = 4; break;
745 }
746 else {
747 $t16_17 = 0;
748 $block = 5; break;
749 }
750 break;
751 }
752 case 3: {
753 $t12_13 = $rt.builtin.bytesToString($t5_6);
754 return $t12_13;
755 break;
756 }
757 case 4: {
758 $t13_14 = ($t6_7 + 1);
759 $t14_15 = data.addr($t13_14);
760 $t15_16 = $t14_15.$get();
761 $t16_17 = $t15_16;
762 $block = 5; break;
763 break;
764 }
765 case 5: {
766 $t17_18 = ($t6_7 + 2);
767 $t18_19 = ($t17_18 < $t0_1);
768 if ($t18_19) {
769 $block = 6; break;
770 }
771 else {
772 $t22_23 = 0;
773 $block = 7; break;
774 }
775 break;
776 }
777 case 6: {
778 $t19_20 = ($t6_7 + 2);
779 $t20_21 = data.addr($t19_20);
780 $t21_22 = $t20_21.$get();
781 $t22_23 = $t21_22;
782 $block = 7; break;
783 break;
784 }
785 case 7: {
786 $t23_24 = (($t9_10 & 0xFF) >> 2);
787 $t24_25 = ($t23_24 & 63);
788 $rt.runtime.boundsCheck($t24_25, $rt.builtin.byteLen('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'));
789 $t25_26 = $rt.builtin.stringByteAt('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', $t24_25);
790 $t26_27 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
791 $t27_28 = $t26_27.$get().addr(0);
792 $t27_28.$set($t25_26);
793 $t28_29 = $rt.builtin.sliceSlice($t26_27.$get(), undefined, undefined, undefined);
794 $t29_30 = $rt.builtin.appendSlice($t5_6, $t28_29);
795 $t30_31 = (($t9_10 << 4) & 0xFF);
796 $t31_32 = (($t16_17 & 0xFF) >> 4);
797 $t32_33 = ($t30_31 | $t31_32);
798 $t33_34 = ($t32_33 & 63);
799 $rt.runtime.boundsCheck($t33_34, $rt.builtin.byteLen('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'));
800 $t34_35 = $rt.builtin.stringByteAt('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', $t33_34);
801 $t35_36 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
802 $t36_37 = $t35_36.$get().addr(0);
803 $t36_37.$set($t34_35);
804 $t37_38 = $rt.builtin.sliceSlice($t35_36.$get(), undefined, undefined, undefined);
805 $t38_39 = $rt.builtin.appendSlice($t29_30, $t37_38);
806 $t39_40 = ($t6_7 + 1);
807 $t40_41 = ($t39_40 < $t0_1);
808 if ($t40_41) {
809 $block = 8; break;
810 }
811 else {
812 $block = 10; break;
813 }
814 break;
815 }
816 case 8: {
817 $t41_42 = (($t16_17 << 2) & 0xFF);
818 $t42_43 = (($t22_23 & 0xFF) >> 6);
819 $t43_44 = ($t41_42 | $t42_43);
820 $t44_45 = ($t43_44 & 63);
821 $rt.runtime.boundsCheck($t44_45, $rt.builtin.byteLen('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'));
822 $t45_46 = $rt.builtin.stringByteAt('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', $t44_45);
823 $t46_47 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
824 $t47_48 = $t46_47.$get().addr(0);
825 $t47_48.$set($t45_46);
826 $t48_49 = $rt.builtin.sliceSlice($t46_47.$get(), undefined, undefined, undefined);
827 $t49_50 = $rt.builtin.appendSlice($t38_39, $t48_49);
828 $t50_51 = $t49_50;
829 $block = 9; break;
830 break;
831 }
832 case 9: {
833 $t51_52 = ($t6_7 + 2);
834 $t52_53 = ($t51_52 < $t0_1);
835 if ($t52_53) {
836 $block = 11; break;
837 }
838 else {
839 $block = 13; break;
840 }
841 break;
842 }
843 case 10: {
844 $t53_54 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
845 $t54_55 = $t53_54.$get().addr(0);
846 $t54_55.$set(61);
847 $t55_56 = $rt.builtin.sliceSlice($t53_54.$get(), undefined, undefined, undefined);
848 $t56_57 = $rt.builtin.appendSlice($t38_39, $t55_56);
849 $t50_51 = $t56_57;
850 $block = 9; break;
851 break;
852 }
853 case 11: {
854 $t57_58 = ($t22_23 & 63);
855 $rt.runtime.boundsCheck($t57_58, $rt.builtin.byteLen('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'));
856 $t58_59 = $rt.builtin.stringByteAt('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', $t57_58);
857 $t59_60 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
858 $t60_61 = $t59_60.$get().addr(0);
859 $t60_61.$set($t58_59);
860 $t61_62 = $rt.builtin.sliceSlice($t59_60.$get(), undefined, undefined, undefined);
861 $t62_63 = $rt.builtin.appendSlice($t50_51, $t61_62);
862 $t63_64 = $t62_63;
863 $block = 12; break;
864 break;
865 }
866 case 12: {
867 $t64_65 = ($t6_7 + 3);
868 $t5_6 = $t63_64;
869 $t6_7 = $t64_65;
870 $block = 1; break;
871 break;
872 }
873 case 13: {
874 $t65_66 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
875 $t66_67 = $t65_66.$get().addr(0);
876 $t66_67.$set(61);
877 $t67_68 = $rt.builtin.sliceSlice($t65_66.$get(), undefined, undefined, undefined);
878 $t68_69 = $rt.builtin.appendSlice($t50_51, $t67_68);
879 $t63_64 = $t68_69;
880 $block = 12; break;
881 break;
882 }
883 }
884 }
885 }
886
887 export function Base64Decode(s) {
888 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;
889 let $block = 0;
890 while (true) {
891 switch ($block) {
892 case 0: {
893 $t0_1 = $rt.builtin.len(s);
894 $t6_7 = $t0_1;
895 $t7_8 = 0;
896 $block = 3; break;
897 break;
898 }
899 case 1: {
900 $t1_2 = ($t7_8 + 1);
901 $t2_3 = ($t6_7 - 1);
902 $t6_7 = $t2_3;
903 $t7_8 = $t1_2;
904 $block = 3; break;
905 break;
906 }
907 case 2: {
908 $t3_4 = ($t6_7 * 3);
909 $t4_5 = Math.trunc($t3_4 / 4);
910 $t5_6 = $rt.builtin.makeSlice(0, $t4_5, 0);
911 $t12_13 = $t5_6;
912 $t13_14 = 0;
913 $t14_15 = 0;
914 $t15_16 = 0;
915 $block = 5; break;
916 break;
917 }
918 case 3: {
919 $t8_9 = ($t6_7 > 0);
920 if ($t8_9) {
921 $block = 4; break;
922 }
923 else {
924 $block = 2; break;
925 }
926 break;
927 }
928 case 4: {
929 $t9_10 = ($t6_7 - 1);
930 $rt.runtime.boundsCheck($t9_10, $rt.builtin.byteLen(s));
931 $t10_11 = $rt.builtin.stringByteAt(s, $t9_10);
932 $t11_12 = ($t10_11 === 61);
933 if ($t11_12) {
934 $block = 1; break;
935 }
936 else {
937 $block = 2; break;
938 }
939 break;
940 }
941 case 5: {
942 $t16_17 = ($t15_16 < $t6_7);
943 if ($t16_17) {
944 $block = 6; break;
945 }
946 else {
947 $block = 7; break;
948 }
949 break;
950 }
951 case 6: {
952 $rt.runtime.boundsCheck($t15_16, $rt.builtin.byteLen(s));
953 $t17_18 = $rt.builtin.stringByteAt(s, $t15_16);
954 $t18_19 = b64val($t17_18);
955 $t19_20 = ($t18_19 < 0);
956 if ($t19_20) {
957 $block = 8; break;
958 }
959 else {
960 $block = 9; break;
961 }
962 break;
963 }
964 case 7: {
965 return $t12_13;
966 break;
967 }
968 case 8: {
969 return null;
970 break;
971 }
972 case 9: {
973 $t20_21 = (($t13_14 << 6) >>> 0);
974 $t21_22 = ($t18_19 >>> 0);
975 $t22_23 = (($t20_21 | $t21_22) >>> 0);
976 $t23_24 = ($t14_15 + 6);
977 $t24_25 = ($t23_24 >= 8);
978 if ($t24_25) {
979 $block = 10; break;
980 }
981 else {
982 $t33_34 = $t12_13;
983 $t34_35 = $t23_24;
984 $block = 11; break;
985 }
986 break;
987 }
988 case 10: {
989 $t25_26 = ($t23_24 - 8);
990 $t26_27 = $t25_26;
991 $t27_28 = ($t22_23 >>> $t26_27);
992 $t28_29 = ($t27_28 & 0xFF);
993 $t29_30 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
994 $t30_31 = $t29_30.$get().addr(0);
995 $t30_31.$set($t28_29);
996 $t31_32 = $rt.builtin.sliceSlice($t29_30.$get(), undefined, undefined, undefined);
997 $t32_33 = $rt.builtin.appendSlice($t12_13, $t31_32);
998 $t33_34 = $t32_33;
999 $t34_35 = $t25_26;
1000 $block = 11; break;
1001 break;
1002 }
1003 case 11: {
1004 $t35_36 = ($t15_16 + 1);
1005 $t12_13 = $t33_34;
1006 $t13_14 = $t22_23;
1007 $t14_15 = $t34_35;
1008 $t15_16 = $t35_36;
1009 $block = 5; break;
1010 break;
1011 }
1012 }
1013 }
1014 }
1015
1016 export function b64val(c) {
1017 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;
1018 let $block = 0;
1019 while (true) {
1020 switch ($block) {
1021 case 0: {
1022 $t0_1 = (c >= 65);
1023 if ($t0_1) {
1024 $block = 4; break;
1025 }
1026 else {
1027 $block = 3; break;
1028 }
1029 break;
1030 }
1031 case 1: {
1032 $t1_2 = ((c - 65) & 0xFF);
1033 $t2_3 = $t1_2;
1034 return $t2_3;
1035 break;
1036 }
1037 case 2: {
1038 $t3_4 = ((c - 97) & 0xFF);
1039 $t4_5 = $t3_4;
1040 $t5_6 = ($t4_5 + 26);
1041 return $t5_6;
1042 break;
1043 }
1044 case 3: {
1045 $t6_7 = (c >= 97);
1046 if ($t6_7) {
1047 $block = 7; break;
1048 }
1049 else {
1050 $block = 6; break;
1051 }
1052 break;
1053 }
1054 case 4: {
1055 $t7_8 = (c <= 90);
1056 if ($t7_8) {
1057 $block = 1; break;
1058 }
1059 else {
1060 $block = 3; break;
1061 }
1062 break;
1063 }
1064 case 5: {
1065 $t8_9 = ((c - 48) & 0xFF);
1066 $t9_10 = $t8_9;
1067 $t10_11 = ($t9_10 + 52);
1068 return $t10_11;
1069 break;
1070 }
1071 case 6: {
1072 $t11_12 = (c >= 48);
1073 if ($t11_12) {
1074 $block = 10; break;
1075 }
1076 else {
1077 $block = 9; break;
1078 }
1079 break;
1080 }
1081 case 7: {
1082 $t12_13 = (c <= 122);
1083 if ($t12_13) {
1084 $block = 2; break;
1085 }
1086 else {
1087 $block = 6; break;
1088 }
1089 break;
1090 }
1091 case 8: {
1092 return 62;
1093 break;
1094 }
1095 case 9: {
1096 $t13_14 = (c === 43);
1097 if ($t13_14) {
1098 $block = 8; break;
1099 }
1100 else {
1101 $block = 12; break;
1102 }
1103 break;
1104 }
1105 case 10: {
1106 $t14_15 = (c <= 57);
1107 if ($t14_15) {
1108 $block = 5; break;
1109 }
1110 else {
1111 $block = 9; break;
1112 }
1113 break;
1114 }
1115 case 11: {
1116 return 63;
1117 break;
1118 }
1119 case 12: {
1120 $t15_16 = (c === 47);
1121 if ($t15_16) {
1122 $block = 11; break;
1123 }
1124 else {
1125 $block = 13; break;
1126 }
1127 break;
1128 }
1129 case 13: {
1130 return -1;
1131 break;
1132 }
1133 }
1134 }
1135 }
1136
1137 export function HexEncode(b) {
1138 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;
1139 let $block = 0;
1140 while (true) {
1141 switch ($block) {
1142 case 0: {
1143 $t0_1 = $rt.builtin.len(b);
1144 $t1_2 = ($t0_1 * 2);
1145 $t2_3 = $rt.builtin.makeSlice($t1_2, $t1_2, 0);
1146 $t3_4 = $rt.builtin.len(b);
1147 $t4_5 = -1;
1148 $block = 1; break;
1149 break;
1150 }
1151 case 1: {
1152 $t5_6 = ($t4_5 + 1);
1153 $t6_7 = ($t5_6 < $t3_4);
1154 if ($t6_7) {
1155 $block = 2; break;
1156 }
1157 else {
1158 $block = 3; break;
1159 }
1160 break;
1161 }
1162 case 2: {
1163 $t7_8 = b.addr($t5_6);
1164 $t8_9 = $t7_8.$get();
1165 $t9_10 = ($t5_6 * 2);
1166 $t10_11 = (($t8_9 & 0xFF) >> 4);
1167 $rt.runtime.boundsCheck($t10_11, $rt.builtin.byteLen('0123456789abcdef'));
1168 $t11_12 = $rt.builtin.stringByteAt('0123456789abcdef', $t10_11);
1169 $t12_13 = $t2_3.addr($t9_10);
1170 $t12_13.$set($t11_12);
1171 $t13_14 = ($t5_6 * 2);
1172 $t14_15 = ($t13_14 + 1);
1173 $t15_16 = ($t8_9 & 15);
1174 $rt.runtime.boundsCheck($t15_16, $rt.builtin.byteLen('0123456789abcdef'));
1175 $t16_17 = $rt.builtin.stringByteAt('0123456789abcdef', $t15_16);
1176 $t17_18 = $t2_3.addr($t14_15);
1177 $t17_18.$set($t16_17);
1178 $t4_5 = $t5_6;
1179 $block = 1; break;
1180 break;
1181 }
1182 case 3: {
1183 $t18_19 = $rt.builtin.bytesToString($t2_3);
1184 return $t18_19;
1185 break;
1186 }
1187 }
1188 }
1189 }
1190
1191 export function HexDecode(s) {
1192 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;
1193 let $block = 0;
1194 while (true) {
1195 switch ($block) {
1196 case 0: {
1197 $t0_1 = $rt.builtin.len(s);
1198 $t1_2 = ($t0_1 % 2);
1199 $t2_3 = ($t1_2 !== 0);
1200 if ($t2_3) {
1201 $block = 1; break;
1202 }
1203 else {
1204 $block = 2; break;
1205 }
1206 break;
1207 }
1208 case 1: {
1209 return null;
1210 break;
1211 }
1212 case 2: {
1213 $t3_4 = $rt.builtin.len(s);
1214 $t4_5 = Math.trunc($t3_4 / 2);
1215 $t5_6 = $rt.builtin.makeSlice($t4_5, $t4_5, 0);
1216 $t6_7 = 0;
1217 $block = 3; break;
1218 break;
1219 }
1220 case 3: {
1221 $t7_8 = $rt.builtin.len(s);
1222 $t8_9 = ($t6_7 < $t7_8);
1223 if ($t8_9) {
1224 $block = 4; break;
1225 }
1226 else {
1227 $block = 5; break;
1228 }
1229 break;
1230 }
1231 case 4: {
1232 $rt.runtime.boundsCheck($t6_7, $rt.builtin.byteLen(s));
1233 $t9_10 = $rt.builtin.stringByteAt(s, $t6_7);
1234 $t10_11 = hexVal($t9_10);
1235 $t11_12 = ($t6_7 + 1);
1236 $rt.runtime.boundsCheck($t11_12, $rt.builtin.byteLen(s));
1237 $t12_13 = $rt.builtin.stringByteAt(s, $t11_12);
1238 $t13_14 = hexVal($t12_13);
1239 $t14_15 = ($t10_11 < 0);
1240 if ($t14_15) {
1241 $block = 6; break;
1242 }
1243 else {
1244 $block = 8; break;
1245 }
1246 break;
1247 }
1248 case 5: {
1249 return $t5_6;
1250 break;
1251 }
1252 case 6: {
1253 return null;
1254 break;
1255 }
1256 case 7: {
1257 $t15_16 = Math.trunc($t6_7 / 2);
1258 $t16_17 = ($t10_11 * (2 ** 4));
1259 $t17_18 = $rt.builtin.int64or($t16_17, $t13_14);
1260 $t18_19 = ($t17_18 & 0xFF);
1261 $t19_20 = $t5_6.addr($t15_16);
1262 $t19_20.$set($t18_19);
1263 $t20_21 = ($t6_7 + 2);
1264 $t6_7 = $t20_21;
1265 $block = 3; break;
1266 break;
1267 }
1268 case 8: {
1269 $t21_22 = ($t13_14 < 0);
1270 if ($t21_22) {
1271 $block = 6; break;
1272 }
1273 else {
1274 $block = 7; break;
1275 }
1276 break;
1277 }
1278 }
1279 }
1280 }
1281
1282 export function HexDecode32(s) {
1283 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;
1284 let $block = 0;
1285 while (true) {
1286 switch ($block) {
1287 case 0: {
1288 $t0_1 = { $value: $rt.builtin.makeSlice(32, 32, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1289 $t1_2 = $rt.builtin.len(s);
1290 $t2_3 = ($t1_2 !== 64);
1291 if ($t2_3) {
1292 $block = 1; break;
1293 }
1294 else {
1295 $block = 2; break;
1296 }
1297 break;
1298 }
1299 case 1: {
1300 $t3_4 = $t0_1.$get();
1301 $t0_1.$set($rt.builtin.cloneValue($t3_4));
1302 $t4_5 = $t0_1.$get();
1303 return [$t4_5, false];
1304 break;
1305 }
1306 case 2: {
1307 $t5_6 = 0;
1308 $block = 3; break;
1309 break;
1310 }
1311 case 3: {
1312 $t6_7 = ($t5_6 < 32);
1313 if ($t6_7) {
1314 $block = 4; break;
1315 }
1316 else {
1317 $block = 5; break;
1318 }
1319 break;
1320 }
1321 case 4: {
1322 $t7_8 = ($t5_6 * 2);
1323 $rt.runtime.boundsCheck($t7_8, $rt.builtin.byteLen(s));
1324 $t8_9 = $rt.builtin.stringByteAt(s, $t7_8);
1325 $t9_10 = hexVal($t8_9);
1326 $t10_11 = ($t5_6 * 2);
1327 $t11_12 = ($t10_11 + 1);
1328 $rt.runtime.boundsCheck($t11_12, $rt.builtin.byteLen(s));
1329 $t12_13 = $rt.builtin.stringByteAt(s, $t11_12);
1330 $t13_14 = hexVal($t12_13);
1331 $t14_15 = ($t9_10 < 0);
1332 if ($t14_15) {
1333 $block = 6; break;
1334 }
1335 else {
1336 $block = 8; break;
1337 }
1338 break;
1339 }
1340 case 5: {
1341 $t15_16 = $t0_1.$get();
1342 $t0_1.$set($rt.builtin.cloneValue($t15_16));
1343 $t16_17 = $t0_1.$get();
1344 return [$t16_17, true];
1345 break;
1346 }
1347 case 6: {
1348 $t17_18 = $t0_1.$get();
1349 $t0_1.$set($rt.builtin.cloneValue($t17_18));
1350 $t18_19 = $t0_1.$get();
1351 return [$t18_19, false];
1352 break;
1353 }
1354 case 7: {
1355 $t19_20 = ($t9_10 * (2 ** 4));
1356 $t20_21 = $rt.builtin.int64or($t19_20, $t13_14);
1357 $t21_22 = ($t20_21 & 0xFF);
1358 $t22_23 = $t0_1.$get().addr($t5_6);
1359 $t22_23.$set($t21_22);
1360 $t23_24 = ($t5_6 + 1);
1361 $t5_6 = $t23_24;
1362 $block = 3; break;
1363 break;
1364 }
1365 case 8: {
1366 $t24_25 = ($t13_14 < 0);
1367 if ($t24_25) {
1368 $block = 6; break;
1369 }
1370 else {
1371 $block = 7; break;
1372 }
1373 break;
1374 }
1375 }
1376 }
1377 }
1378
1379 export function hexVal(c) {
1380 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;
1381 let $block = 0;
1382 while (true) {
1383 switch ($block) {
1384 case 0: {
1385 $t0_1 = (c >= 48);
1386 if ($t0_1) {
1387 $block = 4; break;
1388 }
1389 else {
1390 $block = 3; break;
1391 }
1392 break;
1393 }
1394 case 1: {
1395 $t1_2 = ((c - 48) & 0xFF);
1396 $t2_3 = $t1_2;
1397 return $t2_3;
1398 break;
1399 }
1400 case 2: {
1401 $t3_4 = ((c - 97) & 0xFF);
1402 $t4_5 = (($t3_4 + 10) & 0xFF);
1403 $t5_6 = $t4_5;
1404 return $t5_6;
1405 break;
1406 }
1407 case 3: {
1408 $t6_7 = (c >= 97);
1409 if ($t6_7) {
1410 $block = 7; break;
1411 }
1412 else {
1413 $block = 6; break;
1414 }
1415 break;
1416 }
1417 case 4: {
1418 $t7_8 = (c <= 57);
1419 if ($t7_8) {
1420 $block = 1; break;
1421 }
1422 else {
1423 $block = 3; break;
1424 }
1425 break;
1426 }
1427 case 5: {
1428 $t8_9 = ((c - 65) & 0xFF);
1429 $t9_10 = (($t8_9 + 10) & 0xFF);
1430 $t10_11 = $t9_10;
1431 return $t10_11;
1432 break;
1433 }
1434 case 6: {
1435 $t11_12 = (c >= 65);
1436 if ($t11_12) {
1437 $block = 9; break;
1438 }
1439 else {
1440 $block = 8; break;
1441 }
1442 break;
1443 }
1444 case 7: {
1445 $t12_13 = (c <= 102);
1446 if ($t12_13) {
1447 $block = 2; break;
1448 }
1449 else {
1450 $block = 6; break;
1451 }
1452 break;
1453 }
1454 case 8: {
1455 return -1;
1456 break;
1457 }
1458 case 9: {
1459 $t13_14 = (c <= 70);
1460 if ($t13_14) {
1461 $block = 5; break;
1462 }
1463 else {
1464 $block = 8; break;
1465 }
1466 break;
1467 }
1468 }
1469 }
1470 }
1471
1472 export function Bech32Encode(hrp, data) {
1473 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;
1474 let $block = 0;
1475 while (true) {
1476 switch ($block) {
1477 case 0: {
1478 $t0_1 = bytesToBase32(data);
1479 $t1_2 = bech32Checksum(hrp, $t0_1);
1480 $t2_3 = $rt.builtin.appendSlice($t0_1, $t1_2);
1481 $t3_4 = $rt.builtin.len(hrp);
1482 $t4_5 = ($t3_4 + 1);
1483 $t5_6 = $rt.builtin.len($t2_3);
1484 $t6_7 = ($t4_5 + $t5_6);
1485 $t7_8 = $rt.builtin.makeSlice(0, $t6_7, 0);
1486 $t8_9 = $rt.builtin.appendString($t7_8, hrp);
1487 $t9_10 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1488 $t10_11 = $t9_10.$get().addr(0);
1489 $t10_11.$set(49);
1490 $t11_12 = $rt.builtin.sliceSlice($t9_10.$get(), undefined, undefined, undefined);
1491 $t12_13 = $rt.builtin.appendSlice($t8_9, $t11_12);
1492 $t13_14 = $rt.builtin.len($t2_3);
1493 $t14_15 = $t12_13;
1494 $t15_16 = -1;
1495 $block = 1; break;
1496 break;
1497 }
1498 case 1: {
1499 $t16_17 = ($t15_16 + 1);
1500 $t17_18 = ($t16_17 < $t13_14);
1501 if ($t17_18) {
1502 $block = 2; break;
1503 }
1504 else {
1505 $block = 3; break;
1506 }
1507 break;
1508 }
1509 case 2: {
1510 $t18_19 = $t2_3.addr($t16_17);
1511 $t19_20 = $t18_19.$get();
1512 $rt.runtime.boundsCheck($t19_20, $rt.builtin.byteLen('qpzry9x8gf2tvdw0s3jn54khce6mua7l'));
1513 $t20_21 = $rt.builtin.stringByteAt('qpzry9x8gf2tvdw0s3jn54khce6mua7l', $t19_20);
1514 $t21_22 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1515 $t22_23 = $t21_22.$get().addr(0);
1516 $t22_23.$set($t20_21);
1517 $t23_24 = $rt.builtin.sliceSlice($t21_22.$get(), undefined, undefined, undefined);
1518 $t24_25 = $rt.builtin.appendSlice($t14_15, $t23_24);
1519 $t14_15 = $t24_25;
1520 $t15_16 = $t16_17;
1521 $block = 1; break;
1522 break;
1523 }
1524 case 3: {
1525 $t25_26 = $rt.builtin.bytesToString($t14_15);
1526 return $t25_26;
1527 break;
1528 }
1529 }
1530 }
1531 }
1532
1533 export function Bech32Decode(s) {
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, $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;
1535 let $block = 0;
1536 while (true) {
1537 switch ($block) {
1538 case 0: {
1539 $t0_1 = $rt.builtin.len(s);
1540 $t1_2 = ($t0_1 - 1);
1541 $t2_3 = $t1_2;
1542 $block = 1; break;
1543 break;
1544 }
1545 case 1: {
1546 $t3_4 = ($t2_3 >= 0);
1547 if ($t3_4) {
1548 $block = 2; break;
1549 }
1550 else {
1551 $t6_7 = -1;
1552 $block = 3; break;
1553 }
1554 break;
1555 }
1556 case 2: {
1557 $rt.runtime.boundsCheck($t2_3, $rt.builtin.byteLen(s));
1558 $t4_5 = $rt.builtin.stringByteAt(s, $t2_3);
1559 $t5_6 = ($t4_5 === 49);
1560 if ($t5_6) {
1561 $block = 4; break;
1562 }
1563 else {
1564 $block = 5; break;
1565 }
1566 break;
1567 }
1568 case 3: {
1569 $t7_8 = ($t6_7 < 1);
1570 if ($t7_8) {
1571 $block = 6; break;
1572 }
1573 else {
1574 $block = 8; break;
1575 }
1576 break;
1577 }
1578 case 4: {
1579 $t6_7 = $t2_3;
1580 $block = 3; break;
1581 break;
1582 }
1583 case 5: {
1584 $t8_9 = ($t2_3 - 1);
1585 $t2_3 = $t8_9;
1586 $block = 1; break;
1587 break;
1588 }
1589 case 6: {
1590 return ['', null];
1591 break;
1592 }
1593 case 7: {
1594 $t9_10 = $rt.builtin.stringSlice(s, undefined, $t6_7);
1595 $t10_11 = ($t6_7 + 1);
1596 $t11_12 = $rt.builtin.stringSlice(s, $t10_11, undefined);
1597 $t12_13 = $rt.builtin.len($t11_12);
1598 $t13_14 = $rt.builtin.makeSlice($t12_13, $t12_13, 0);
1599 $t17_18 = 0;
1600 $block = 9; break;
1601 break;
1602 }
1603 case 8: {
1604 $t14_15 = ($t6_7 + 7);
1605 $t15_16 = $rt.builtin.len(s);
1606 $t16_17 = ($t14_15 > $t15_16);
1607 if ($t16_17) {
1608 $block = 6; break;
1609 }
1610 else {
1611 $block = 7; break;
1612 }
1613 break;
1614 }
1615 case 9: {
1616 $t18_19 = $rt.builtin.len($t11_12);
1617 $t19_20 = ($t17_18 < $t18_19);
1618 if ($t19_20) {
1619 $block = 10; break;
1620 }
1621 else {
1622 $block = 11; break;
1623 }
1624 break;
1625 }
1626 case 10: {
1627 $rt.runtime.boundsCheck($t17_18, $rt.builtin.byteLen($t11_12));
1628 $t20_21 = $rt.builtin.stringByteAt($t11_12, $t17_18);
1629 $t21_22 = charsetIndex($t20_21);
1630 $t22_23 = ($t21_22 < 0);
1631 if ($t22_23) {
1632 $block = 12; break;
1633 }
1634 else {
1635 $block = 13; break;
1636 }
1637 break;
1638 }
1639 case 11: {
1640 $t23_24 = bech32Verify($t9_10, $t13_14);
1641 if ($t23_24) {
1642 $block = 15; break;
1643 }
1644 else {
1645 $block = 14; break;
1646 }
1647 break;
1648 }
1649 case 12: {
1650 return ['', null];
1651 break;
1652 }
1653 case 13: {
1654 $t24_25 = ($t21_22 & 0xFF);
1655 $t25_26 = $t13_14.addr($t17_18);
1656 $t25_26.$set($t24_25);
1657 $t26_27 = ($t17_18 + 1);
1658 $t17_18 = $t26_27;
1659 $block = 9; break;
1660 break;
1661 }
1662 case 14: {
1663 return ['', null];
1664 break;
1665 }
1666 case 15: {
1667 $t27_28 = $rt.builtin.len($t13_14);
1668 $t28_29 = ($t27_28 - 6);
1669 $t29_30 = $rt.builtin.sliceSlice($t13_14, undefined, $t28_29, undefined);
1670 $t30_31 = base32ToBytes($t29_30);
1671 return [$t9_10, $t30_31];
1672 break;
1673 }
1674 }
1675 }
1676 }
1677
1678 export function EncodeNpub(pubkey) {
1679 let $t0_1;
1680 $t0_1 = Bech32Encode('npub', pubkey);
1681 return $t0_1;
1682 }
1683
1684 export function EncodeNsec(seckey) {
1685 let $t0_1;
1686 $t0_1 = Bech32Encode('nsec', seckey);
1687 return $t0_1;
1688 }
1689
1690 export function EncodeNote(eventID) {
1691 let $t0_1;
1692 $t0_1 = Bech32Encode('note', eventID);
1693 return $t0_1;
1694 }
1695
1696 export function DecodeNpub(s) {
1697 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6;
1698 let $block = 0;
1699 while (true) {
1700 switch ($block) {
1701 case 0: {
1702 $t0_1 = Bech32Decode(s);
1703 $t1_2 = $t0_1[0];
1704 $t2_3 = $t0_1[1];
1705 $t3_4 = ($t1_2 !== 'npub');
1706 if ($t3_4) {
1707 $block = 1; break;
1708 }
1709 else {
1710 $block = 3; break;
1711 }
1712 break;
1713 }
1714 case 1: {
1715 return null;
1716 break;
1717 }
1718 case 2: {
1719 return $t2_3;
1720 break;
1721 }
1722 case 3: {
1723 $t4_5 = $rt.builtin.len($t2_3);
1724 $t5_6 = ($t4_5 !== 32);
1725 if ($t5_6) {
1726 $block = 1; break;
1727 }
1728 else {
1729 $block = 2; break;
1730 }
1731 break;
1732 }
1733 }
1734 }
1735 }
1736
1737 export function DecodeNsec(s) {
1738 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6;
1739 let $block = 0;
1740 while (true) {
1741 switch ($block) {
1742 case 0: {
1743 $t0_1 = Bech32Decode(s);
1744 $t1_2 = $t0_1[0];
1745 $t2_3 = $t0_1[1];
1746 $t3_4 = ($t1_2 !== 'nsec');
1747 if ($t3_4) {
1748 $block = 1; break;
1749 }
1750 else {
1751 $block = 3; break;
1752 }
1753 break;
1754 }
1755 case 1: {
1756 return null;
1757 break;
1758 }
1759 case 2: {
1760 return $t2_3;
1761 break;
1762 }
1763 case 3: {
1764 $t4_5 = $rt.builtin.len($t2_3);
1765 $t5_6 = ($t4_5 !== 32);
1766 if ($t5_6) {
1767 $block = 1; break;
1768 }
1769 else {
1770 $block = 2; break;
1771 }
1772 break;
1773 }
1774 }
1775 }
1776 }
1777
1778 export function DecodeNote(s) {
1779 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6;
1780 let $block = 0;
1781 while (true) {
1782 switch ($block) {
1783 case 0: {
1784 $t0_1 = Bech32Decode(s);
1785 $t1_2 = $t0_1[0];
1786 $t2_3 = $t0_1[1];
1787 $t3_4 = ($t1_2 !== 'note');
1788 if ($t3_4) {
1789 $block = 1; break;
1790 }
1791 else {
1792 $block = 3; break;
1793 }
1794 break;
1795 }
1796 case 1: {
1797 return null;
1798 break;
1799 }
1800 case 2: {
1801 return $t2_3;
1802 break;
1803 }
1804 case 3: {
1805 $t4_5 = $rt.builtin.len($t2_3);
1806 $t5_6 = ($t4_5 !== 32);
1807 if ($t5_6) {
1808 $block = 1; break;
1809 }
1810 else {
1811 $block = 2; break;
1812 }
1813 break;
1814 }
1815 }
1816 }
1817 }
1818
1819 export function PubkeyShort(pubkey) {
1820 let $t0_1, $t1_2, $t2_3;
1821 let $block = 0;
1822 while (true) {
1823 switch ($block) {
1824 case 0: {
1825 $t0_1 = $rt.builtin.len(pubkey);
1826 $t1_2 = ($t0_1 >= 8);
1827 if ($t1_2) {
1828 $block = 1; break;
1829 }
1830 else {
1831 $block = 2; break;
1832 }
1833 break;
1834 }
1835 case 1: {
1836 $t2_3 = $rt.builtin.stringSlice(pubkey, undefined, 8);
1837 return $t2_3;
1838 break;
1839 }
1840 case 2: {
1841 return pubkey;
1842 break;
1843 }
1844 }
1845 }
1846 }
1847
1848 export function bytesToBase32(data) {
1849 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;
1850 let $block = 0;
1851 while (true) {
1852 switch ($block) {
1853 case 0: {
1854 $t0_1 = $rt.builtin.len(data);
1855 $t1_2 = null;
1856 $t2_3 = 0;
1857 $t3_4 = 0;
1858 $t4_5 = -1;
1859 $block = 1; break;
1860 break;
1861 }
1862 case 1: {
1863 $t5_6 = ($t4_5 + 1);
1864 $t6_7 = ($t5_6 < $t0_1);
1865 if ($t6_7) {
1866 $block = 2; break;
1867 }
1868 else {
1869 $block = 3; break;
1870 }
1871 break;
1872 }
1873 case 2: {
1874 $t7_8 = data.addr($t5_6);
1875 $t8_9 = $t7_8.$get();
1876 $t9_10 = ($t2_3 * (2 ** 8));
1877 $t10_11 = $t8_9;
1878 $t11_12 = $rt.builtin.int64or($t9_10, $t10_11);
1879 $t12_13 = ($t3_4 + 8);
1880 $t26_27 = $t1_2;
1881 $t27_28 = $t12_13;
1882 $block = 6; break;
1883 break;
1884 }
1885 case 3: {
1886 $t13_14 = ($t3_4 > 0);
1887 if ($t13_14) {
1888 $block = 7; break;
1889 }
1890 else {
1891 $t37_38 = $t1_2;
1892 $block = 8; break;
1893 }
1894 break;
1895 }
1896 case 4: {
1897 $t14_15 = ($t27_28 - 5);
1898 $t15_16 = Math.trunc($t11_12 / (2 ** $t14_15));
1899 $t16_17 = $rt.builtin.int64and($t15_16, 31);
1900 $t17_18 = ($t16_17 & 0xFF);
1901 $t18_19 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1902 $t19_20 = $t18_19.$get().addr(0);
1903 $t19_20.$set($t17_18);
1904 $t20_21 = $rt.builtin.sliceSlice($t18_19.$get(), undefined, undefined, undefined);
1905 $t21_22 = $rt.builtin.appendSlice($t26_27, $t20_21);
1906 $t26_27 = $t21_22;
1907 $t27_28 = $t14_15;
1908 $block = 6; break;
1909 break;
1910 }
1911 case 5: {
1912 $t22_23 = $t27_28;
1913 $t23_24 = (1 * (2 ** $t22_23));
1914 $t24_25 = ($t23_24 - 1);
1915 $t25_26 = $rt.builtin.int64and($t11_12, $t24_25);
1916 $t1_2 = $t26_27;
1917 $t2_3 = $t25_26;
1918 $t3_4 = $t27_28;
1919 $t4_5 = $t5_6;
1920 $block = 1; break;
1921 break;
1922 }
1923 case 6: {
1924 $t28_29 = ($t27_28 >= 5);
1925 if ($t28_29) {
1926 $block = 4; break;
1927 }
1928 else {
1929 $block = 5; break;
1930 }
1931 break;
1932 }
1933 case 7: {
1934 $t29_30 = (5 - $t3_4);
1935 $t30_31 = ($t2_3 * (2 ** $t29_30));
1936 $t31_32 = $rt.builtin.int64and($t30_31, 31);
1937 $t32_33 = ($t31_32 & 0xFF);
1938 $t33_34 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1939 $t34_35 = $t33_34.$get().addr(0);
1940 $t34_35.$set($t32_33);
1941 $t35_36 = $rt.builtin.sliceSlice($t33_34.$get(), undefined, undefined, undefined);
1942 $t36_37 = $rt.builtin.appendSlice($t1_2, $t35_36);
1943 $t37_38 = $t36_37;
1944 $block = 8; break;
1945 break;
1946 }
1947 case 8: {
1948 return $t37_38;
1949 break;
1950 }
1951 }
1952 }
1953 }
1954
1955 export function base32ToBytes(data) {
1956 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;
1957 let $block = 0;
1958 while (true) {
1959 switch ($block) {
1960 case 0: {
1961 $t0_1 = $rt.builtin.len(data);
1962 $t1_2 = null;
1963 $t2_3 = 0;
1964 $t3_4 = 0;
1965 $t4_5 = -1;
1966 $block = 1; break;
1967 break;
1968 }
1969 case 1: {
1970 $t5_6 = ($t4_5 + 1);
1971 $t6_7 = ($t5_6 < $t0_1);
1972 if ($t6_7) {
1973 $block = 2; break;
1974 }
1975 else {
1976 $block = 3; break;
1977 }
1978 break;
1979 }
1980 case 2: {
1981 $t7_8 = data.addr($t5_6);
1982 $t8_9 = $t7_8.$get();
1983 $t9_10 = ($t2_3 * (2 ** 5));
1984 $t10_11 = $t8_9;
1985 $t11_12 = $rt.builtin.int64or($t9_10, $t10_11);
1986 $t12_13 = ($t3_4 + 5);
1987 $t25_26 = $t1_2;
1988 $t26_27 = $t12_13;
1989 $block = 6; break;
1990 break;
1991 }
1992 case 3: {
1993 return $t1_2;
1994 break;
1995 }
1996 case 4: {
1997 $t13_14 = ($t26_27 - 8);
1998 $t14_15 = Math.trunc($t11_12 / (2 ** $t13_14));
1999 $t15_16 = $rt.builtin.int64and($t14_15, 255);
2000 $t16_17 = ($t15_16 & 0xFF);
2001 $t17_18 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2002 $t18_19 = $t17_18.$get().addr(0);
2003 $t18_19.$set($t16_17);
2004 $t19_20 = $rt.builtin.sliceSlice($t17_18.$get(), undefined, undefined, undefined);
2005 $t20_21 = $rt.builtin.appendSlice($t25_26, $t19_20);
2006 $t25_26 = $t20_21;
2007 $t26_27 = $t13_14;
2008 $block = 6; break;
2009 break;
2010 }
2011 case 5: {
2012 $t21_22 = $t26_27;
2013 $t22_23 = (1 * (2 ** $t21_22));
2014 $t23_24 = ($t22_23 - 1);
2015 $t24_25 = $rt.builtin.int64and($t11_12, $t23_24);
2016 $t1_2 = $t25_26;
2017 $t2_3 = $t24_25;
2018 $t3_4 = $t26_27;
2019 $t4_5 = $t5_6;
2020 $block = 1; break;
2021 break;
2022 }
2023 case 6: {
2024 $t27_28 = ($t26_27 >= 8);
2025 if ($t27_28) {
2026 $block = 4; break;
2027 }
2028 else {
2029 $block = 5; break;
2030 }
2031 break;
2032 }
2033 }
2034 }
2035 }
2036
2037 export function bech32Polymod(values) {
2038 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;
2039 let $block = 0;
2040 while (true) {
2041 switch ($block) {
2042 case 0: {
2043 $t0_1 = { $value: $rt.builtin.makeSlice(5, 5, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2044 $t1_2 = $t0_1.$get().addr(0);
2045 $t2_3 = $t0_1.$get().addr(1);
2046 $t3_4 = $t0_1.$get().addr(2);
2047 $t4_5 = $t0_1.$get().addr(3);
2048 $t5_6 = $t0_1.$get().addr(4);
2049 $t1_2.$set(996825010);
2050 $t2_3.$set(642813549);
2051 $t3_4.$set(513874426);
2052 $t4_5.$set(1027748829);
2053 $t5_6.$set(705979059);
2054 $t6_7 = $rt.builtin.len(values);
2055 $t7_8 = 1;
2056 $t8_9 = -1;
2057 $block = 1; break;
2058 break;
2059 }
2060 case 1: {
2061 $t9_10 = ($t8_9 + 1);
2062 $t10_11 = ($t9_10 < $t6_7);
2063 if ($t10_11) {
2064 $block = 2; break;
2065 }
2066 else {
2067 $block = 3; break;
2068 }
2069 break;
2070 }
2071 case 2: {
2072 $t11_12 = values.addr($t9_10);
2073 $t12_13 = $t11_12.$get();
2074 $t13_14 = ($t7_8 >>> 25);
2075 $t14_15 = (($t7_8 & 33554431) >>> 0);
2076 $t15_16 = (($t14_15 << 5) >>> 0);
2077 $t16_17 = ($t12_13 >>> 0);
2078 $t17_18 = (($t15_16 ^ $t16_17) >>> 0);
2079 $t18_19 = $t17_18;
2080 $t19_20 = 0;
2081 $block = 4; break;
2082 break;
2083 }
2084 case 3: {
2085 return $t7_8;
2086 break;
2087 }
2088 case 4: {
2089 $t20_21 = ($t19_20 < 5);
2090 if ($t20_21) {
2091 $block = 5; break;
2092 }
2093 else {
2094 $t7_8 = $t18_19;
2095 $t8_9 = $t9_10;
2096 $block = 1; break;
2097 }
2098 break;
2099 }
2100 case 5: {
2101 $t21_22 = $t19_20;
2102 $t22_23 = ($t13_14 >>> $t21_22);
2103 $t23_24 = (($t22_23 & 1) >>> 0);
2104 $t24_25 = ($t23_24 === 1);
2105 if ($t24_25) {
2106 $block = 6; break;
2107 }
2108 else {
2109 $t28_29 = $t18_19;
2110 $block = 7; break;
2111 }
2112 break;
2113 }
2114 case 6: {
2115 $t25_26 = $t0_1.$get().addr($t19_20);
2116 $t26_27 = $t25_26.$get();
2117 $t27_28 = (($t18_19 ^ $t26_27) >>> 0);
2118 $t28_29 = $t27_28;
2119 $block = 7; break;
2120 break;
2121 }
2122 case 7: {
2123 $t29_30 = ($t19_20 + 1);
2124 $t18_19 = $t28_29;
2125 $t19_20 = $t29_30;
2126 $block = 4; break;
2127 break;
2128 }
2129 }
2130 }
2131 }
2132
2133 export function bech32HRPExpand(hrp) {
2134 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;
2135 let $block = 0;
2136 while (true) {
2137 switch ($block) {
2138 case 0: {
2139 $t0_1 = $rt.builtin.len(hrp);
2140 $t1_2 = ($t0_1 * 2);
2141 $t2_3 = ($t1_2 + 1);
2142 $t3_4 = $rt.builtin.makeSlice(0, $t2_3, 0);
2143 $t4_5 = $t3_4;
2144 $t5_6 = 0;
2145 $block = 1; break;
2146 break;
2147 }
2148 case 1: {
2149 $t6_7 = $rt.builtin.len(hrp);
2150 $t7_8 = ($t5_6 < $t6_7);
2151 if ($t7_8) {
2152 $block = 2; break;
2153 }
2154 else {
2155 $block = 3; break;
2156 }
2157 break;
2158 }
2159 case 2: {
2160 $rt.runtime.boundsCheck($t5_6, $rt.builtin.byteLen(hrp));
2161 $t8_9 = $rt.builtin.stringByteAt(hrp, $t5_6);
2162 $t9_10 = (($t8_9 & 0xFF) >> 5);
2163 $t10_11 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2164 $t11_12 = $t10_11.$get().addr(0);
2165 $t11_12.$set($t9_10);
2166 $t12_13 = $rt.builtin.sliceSlice($t10_11.$get(), undefined, undefined, undefined);
2167 $t13_14 = $rt.builtin.appendSlice($t4_5, $t12_13);
2168 $t14_15 = ($t5_6 + 1);
2169 $t4_5 = $t13_14;
2170 $t5_6 = $t14_15;
2171 $block = 1; break;
2172 break;
2173 }
2174 case 3: {
2175 $t15_16 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2176 $t16_17 = $t15_16.$get().addr(0);
2177 $t16_17.$set(0);
2178 $t17_18 = $rt.builtin.sliceSlice($t15_16.$get(), undefined, undefined, undefined);
2179 $t18_19 = $rt.builtin.appendSlice($t4_5, $t17_18);
2180 $t19_20 = $t18_19;
2181 $t20_21 = 0;
2182 $block = 4; break;
2183 break;
2184 }
2185 case 4: {
2186 $t21_22 = $rt.builtin.len(hrp);
2187 $t22_23 = ($t20_21 < $t21_22);
2188 if ($t22_23) {
2189 $block = 5; break;
2190 }
2191 else {
2192 $block = 6; break;
2193 }
2194 break;
2195 }
2196 case 5: {
2197 $rt.runtime.boundsCheck($t20_21, $rt.builtin.byteLen(hrp));
2198 $t23_24 = $rt.builtin.stringByteAt(hrp, $t20_21);
2199 $t24_25 = ($t23_24 & 31);
2200 $t25_26 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2201 $t26_27 = $t25_26.$get().addr(0);
2202 $t26_27.$set($t24_25);
2203 $t27_28 = $rt.builtin.sliceSlice($t25_26.$get(), undefined, undefined, undefined);
2204 $t28_29 = $rt.builtin.appendSlice($t19_20, $t27_28);
2205 $t29_30 = ($t20_21 + 1);
2206 $t19_20 = $t28_29;
2207 $t20_21 = $t29_30;
2208 $block = 4; break;
2209 break;
2210 }
2211 case 6: {
2212 return $t19_20;
2213 break;
2214 }
2215 }
2216 }
2217 }
2218
2219 export function bech32Checksum(hrp, data) {
2220 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;
2221 let $block = 0;
2222 while (true) {
2223 switch ($block) {
2224 case 0: {
2225 $t0_1 = bech32HRPExpand(hrp);
2226 $t1_2 = $rt.builtin.appendSlice($t0_1, data);
2227 $t2_3 = { $value: $rt.builtin.makeSlice(6, 6, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2228 $t3_4 = $t2_3.$get().addr(0);
2229 $t3_4.$set(0);
2230 $t4_5 = $t2_3.$get().addr(1);
2231 $t4_5.$set(0);
2232 $t5_6 = $t2_3.$get().addr(2);
2233 $t5_6.$set(0);
2234 $t6_7 = $t2_3.$get().addr(3);
2235 $t6_7.$set(0);
2236 $t7_8 = $t2_3.$get().addr(4);
2237 $t7_8.$set(0);
2238 $t8_9 = $t2_3.$get().addr(5);
2239 $t8_9.$set(0);
2240 $t9_10 = $rt.builtin.sliceSlice($t2_3.$get(), undefined, undefined, undefined);
2241 $t10_11 = $rt.builtin.appendSlice($t1_2, $t9_10);
2242 $t11_12 = bech32Polymod($t10_11);
2243 $t12_13 = (($t11_12 ^ 1) >>> 0);
2244 $t13_14 = { $value: $rt.builtin.makeSlice(6, 6, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2245 $t14_15 = $rt.builtin.sliceSlice($t13_14.$get(), undefined, 6, undefined);
2246 $t15_16 = 0;
2247 $block = 1; break;
2248 break;
2249 }
2250 case 1: {
2251 $t16_17 = ($t15_16 < 6);
2252 if ($t16_17) {
2253 $block = 2; break;
2254 }
2255 else {
2256 $block = 3; break;
2257 }
2258 break;
2259 }
2260 case 2: {
2261 $t17_18 = $t15_16;
2262 $t18_19 = (5 - $t17_18);
2263 $t19_20 = (5 * $t18_19);
2264 $t20_21 = ($t12_13 >>> $t19_20);
2265 $t21_22 = (($t20_21 & 31) >>> 0);
2266 $t22_23 = ($t21_22 & 0xFF);
2267 $t23_24 = $t14_15.addr($t15_16);
2268 $t23_24.$set($t22_23);
2269 $t24_25 = ($t15_16 + 1);
2270 $t15_16 = $t24_25;
2271 $block = 1; break;
2272 break;
2273 }
2274 case 3: {
2275 return $t14_15;
2276 break;
2277 }
2278 }
2279 }
2280 }
2281
2282 export function bech32Verify(hrp, data) {
2283 let $t0_1, $t1_2, $t2_3, $t3_4;
2284 $t0_1 = bech32HRPExpand(hrp);
2285 $t1_2 = $rt.builtin.appendSlice($t0_1, data);
2286 $t2_3 = bech32Polymod($t1_2);
2287 $t3_4 = ($t2_3 === 1);
2288 return $t3_4;
2289 }
2290
2291 export function charsetIndex(c) {
2292 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5;
2293 let $block = 0;
2294 while (true) {
2295 switch ($block) {
2296 case 0: {
2297 $t0_1 = 0;
2298 $block = 1; break;
2299 break;
2300 }
2301 case 1: {
2302 $t1_2 = ($t0_1 < 32);
2303 if ($t1_2) {
2304 $block = 2; break;
2305 }
2306 else {
2307 $block = 3; break;
2308 }
2309 break;
2310 }
2311 case 2: {
2312 $rt.runtime.boundsCheck($t0_1, $rt.builtin.byteLen('qpzry9x8gf2tvdw0s3jn54khce6mua7l'));
2313 $t2_3 = $rt.builtin.stringByteAt('qpzry9x8gf2tvdw0s3jn54khce6mua7l', $t0_1);
2314 $t3_4 = ($t2_3 === c);
2315 if ($t3_4) {
2316 $block = 4; break;
2317 }
2318 else {
2319 $block = 5; break;
2320 }
2321 break;
2322 }
2323 case 3: {
2324 return -1;
2325 break;
2326 }
2327 case 4: {
2328 return $t0_1;
2329 break;
2330 }
2331 case 5: {
2332 $t4_5 = ($t0_1 + 1);
2333 $t0_1 = $t4_5;
2334 $block = 1; break;
2335 break;
2336 }
2337 }
2338 }
2339 }
2340
2341