porffor 0.2.0-fde989a → 0.14.0-4057a18e9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/CONTRIBUTING.md +256 -0
  2. package/LICENSE +20 -20
  3. package/README.md +131 -86
  4. package/asur/README.md +2 -0
  5. package/asur/index.js +1262 -0
  6. package/byg/index.js +216 -0
  7. package/compiler/2c.js +2 -53
  8. package/compiler/{sections.js → assemble.js} +84 -21
  9. package/compiler/builtins/annexb_string.js +72 -0
  10. package/compiler/builtins/annexb_string.ts +18 -0
  11. package/compiler/builtins/array.ts +145 -0
  12. package/compiler/builtins/base64.ts +76 -0
  13. package/compiler/builtins/boolean.ts +18 -0
  14. package/compiler/builtins/crypto.ts +120 -0
  15. package/compiler/builtins/date.ts +2067 -0
  16. package/compiler/builtins/escape.ts +141 -0
  17. package/compiler/builtins/function.ts +5 -0
  18. package/compiler/builtins/int.ts +145 -0
  19. package/compiler/builtins/number.ts +529 -0
  20. package/compiler/builtins/object.ts +4 -0
  21. package/compiler/builtins/porffor.d.ts +60 -0
  22. package/compiler/builtins/set.ts +187 -0
  23. package/compiler/builtins/string.ts +1080 -0
  24. package/compiler/builtins.js +436 -283
  25. package/compiler/{codeGen.js → codegen.js} +1027 -482
  26. package/compiler/decompile.js +2 -3
  27. package/compiler/embedding.js +22 -22
  28. package/compiler/encoding.js +94 -10
  29. package/compiler/expression.js +1 -1
  30. package/compiler/generated_builtins.js +1625 -0
  31. package/compiler/index.js +25 -36
  32. package/compiler/log.js +6 -3
  33. package/compiler/opt.js +55 -41
  34. package/compiler/parse.js +38 -30
  35. package/compiler/precompile.js +120 -0
  36. package/compiler/prefs.js +27 -0
  37. package/compiler/prototype.js +31 -46
  38. package/compiler/types.js +38 -0
  39. package/compiler/wasmSpec.js +33 -8
  40. package/compiler/wrap.js +88 -70
  41. package/package.json +9 -5
  42. package/porf +2 -0
  43. package/rhemyn/compile.js +46 -27
  44. package/rhemyn/parse.js +322 -320
  45. package/rhemyn/test/parse.js +58 -58
  46. package/runner/compare.js +33 -34
  47. package/runner/debug.js +117 -0
  48. package/runner/index.js +78 -11
  49. package/runner/profiler.js +75 -0
  50. package/runner/repl.js +40 -13
  51. package/runner/sizes.js +37 -37
  52. package/runner/version.js +10 -8
  53. package/compiler/builtins/base64.js +0 -92
  54. package/filesize.cmd +0 -2
  55. package/runner/info.js +0 -89
  56. package/runner/profile.js +0 -46
  57. package/runner/results.json +0 -1
  58. package/runner/transform.js +0 -15
  59. package/tmp.c +0 -661
  60. package/util/enum.js +0 -20
package/tmp.c DELETED
@@ -1,661 +0,0 @@
1
- typedef unsigned char i8;
2
- typedef unsigned short i16;
3
- typedef long i32;
4
- typedef unsigned long u32;
5
- typedef long long i64;
6
- typedef unsigned long long u64;
7
- typedef float f32;
8
- typedef double f64;
9
-
10
- f64 NAN = 0e+0/0e+0;
11
-
12
- struct ReturnValue {
13
- f64 value;
14
- i32 type;
15
- };
16
-
17
- #ifdef _WIN32
18
- #include <windows.h>
19
- #else
20
- #include <time.h>
21
- #endif
22
-
23
- #include <string.h>
24
- #include <stdlib.h>
25
- #include <stdio.h>
26
-
27
- char _memory[393216];
28
-
29
- void i32_store(i32 align, i32 offset, i32 pointer, i32 value) {
30
- memcpy(_memory + offset + pointer, &value, sizeof(value));
31
- }
32
-
33
- i32 i32_load(i32 align, i32 offset, i32 pointer) {
34
- i32 out;
35
- memcpy(&out, _memory + offset + pointer, sizeof(out));
36
- return out;
37
- }
38
-
39
- void f64_store(i32 align, i32 offset, i32 pointer, f64 value) {
40
- memcpy(_memory + offset + pointer, &value, sizeof(value));
41
- }
42
-
43
- i32 i32_load8_u(i32 align, i32 offset, i32 pointer) {
44
- i8 out;
45
- memcpy(&out, _memory + offset + pointer, sizeof(out));
46
- return out;
47
- }
48
-
49
- f64 f64_load(i32 align, i32 offset, i32 pointer) {
50
- f64 out;
51
- memcpy(&out, _memory + offset + pointer, sizeof(out));
52
- return out;
53
- }
54
-
55
- void i32_store8(i32 align, i32 offset, i32 pointer, i8 value) {
56
- memcpy(_memory + offset + pointer, &value, sizeof(value));
57
- }
58
-
59
-
60
- f64 t = 0;
61
- i32 tdtype = 0;
62
-
63
- struct ReturnValue interpret(f64 str, i32 strdtype) {
64
- f64 ptr = 0;
65
- i32 ptrdtype = 0;
66
- f64 memory = 0;
67
- i32 memorydtype = 0;
68
- i32 __proto_length_cache = 0;
69
- i32 __proto_pointer_cache = 0;
70
- f64 __fill_tmp = 0;
71
- i32 dlast_type = 0;
72
- i32 dtypeswitch_tmp = 0;
73
- f64 starts = 0;
74
- i32 startsdtype = 0;
75
- f64 i = 0;
76
- i32 idtype = 0;
77
- f64 c = 0;
78
- i32 cdtype = 0;
79
- i32 __charCodeAt_tmp = 0;
80
- f64 __tmpop_left = 0;
81
- f64 __tmpop_right = 0;
82
- i32 compare_left_pointer = 0;
83
- i32 compare_left_length = 0;
84
- i32 compare_right_pointer = 0;
85
- i32 compare_right_length = 0;
86
- i32 compare_index = 0;
87
- i32 compare_index_end = 0;
88
- f64 __member_setter_val_tmp = 0;
89
- i32 __member_setter_ptr_tmp = 0;
90
- f64 elogicinner_tmp = 0;
91
- f64 depth = 0;
92
- i32 depthdtype = 0;
93
- f64 c2 = 0;
94
- i32 c2dtype = 0;
95
-
96
- ptr = 0e+0;
97
- ptrdtype = 0;
98
- i32_store(1, 0, 0, 8000);
99
- memory = 0e+0;
100
- memorydtype = 16;
101
- __proto_pointer_cache = (u32)memory;
102
- __proto_length_cache = i32_load(1, 0, __proto_pointer_cache);
103
- dtypeswitch_tmp = memorydtype;
104
- // block f64
105
- f64 _r0;
106
- // if
107
- if (dtypeswitch_tmp == 16) {
108
- // block f64
109
- f64 _r2;
110
- __fill_tmp = 0e+0;
111
- __proto_length_cache = (__proto_length_cache - 1) * 8;
112
- // if
113
- if (__proto_length_cache < 0) {
114
- _r2 = (f64)__proto_pointer_cache;
115
- goto j2;
116
- }
117
- // end
118
- j3:;
119
- // loop
120
- j4:;
121
- f64_store(2, 4, __proto_length_cache + __proto_pointer_cache, __fill_tmp);
122
- __proto_length_cache = __proto_length_cache - 8;
123
- if (__proto_length_cache >= 0) {
124
- goto j4;
125
- }
126
- // end
127
- dlast_type = 16;
128
- _r2 = (f64)__proto_pointer_cache;
129
- // end
130
- j2:;
131
- _r0 = _r2;
132
- goto j0;
133
- }
134
- // end
135
- j1:;
136
- printf("Uncaught TypeError: 'fill' proto func tried to be called on a type without an impl\n");
137
- exit(1);
138
- // end
139
- j0:;
140
- i32_store(1, 131072, 0, 0);
141
- starts = 1.31072e+5;
142
- startsdtype = 16;
143
- i = 0e+0;
144
- idtype = 0;
145
- // loop
146
- j5:;
147
- // if
148
- if (i < (f64)(i32_load(1, 0, (u32)str))) {
149
- // block
150
- __proto_pointer_cache = (u32)str;
151
- __proto_length_cache = i32_load(1, 0, __proto_pointer_cache);
152
- dtypeswitch_tmp = strdtype;
153
- // block f64
154
- f64 _r8;
155
- // if
156
- if (dtypeswitch_tmp == 18) {
157
- // block f64
158
- f64 _r10;
159
- __charCodeAt_tmp = (i32)i;
160
- // if
161
- if (((__charCodeAt_tmp < 0) | (__charCodeAt_tmp >= __proto_length_cache)) != 0) {
162
- _r10 = NAN;
163
- goto j10;
164
- }
165
- // end
166
- j11:;
167
- dlast_type = 0;
168
- _r10 = (f64)i32_load8_u(0, 4, __charCodeAt_tmp + __proto_pointer_cache);
169
- // end
170
- j10:;
171
- _r8 = _r10;
172
- goto j8;
173
- }
174
- // end
175
- j9:;
176
- printf("Uncaught TypeError: 'charCodeAt' proto func tried to be called on a type without an impl\n");
177
- exit(1);
178
- // end
179
- j8:;
180
- c = _r8;
181
- cdtype = 0;
182
- // if
183
- if (c == 6.2e+1) {
184
- ptr = ptr + 1e+0;
185
- }
186
- // end
187
- j12:;
188
- // if
189
- if (c == 6e+1) {
190
- ptr = ptr - 1e+0;
191
- }
192
- // end
193
- j13:;
194
- // if
195
- if (c == 4.3e+1) {
196
- dtypeswitch_tmp = memorydtype;
197
- // block
198
- // if
199
- if (dtypeswitch_tmp == 16) {
200
- __member_setter_ptr_tmp = (u32)(ptr) * 8;
201
- __member_setter_val_tmp = f64_load(2, 4, __member_setter_ptr_tmp) + 1e+0;
202
- f64_store(2, 4, __member_setter_ptr_tmp, __member_setter_val_tmp);
203
- goto j15;
204
- }
205
- // end
206
- j16:;
207
- printf("Uncaught TypeError: Cannot assign member with non-array\n");
208
- exit(1);
209
- // end
210
- j15:;
211
- }
212
- // end
213
- j14:;
214
- // if
215
- if (c == 4.5e+1) {
216
- dtypeswitch_tmp = memorydtype;
217
- // block
218
- // if
219
- if (dtypeswitch_tmp == 16) {
220
- __member_setter_ptr_tmp = (u32)(ptr) * 8;
221
- __member_setter_val_tmp = f64_load(2, 4, __member_setter_ptr_tmp) - 1e+0;
222
- f64_store(2, 4, __member_setter_ptr_tmp, __member_setter_val_tmp);
223
- goto j18;
224
- }
225
- // end
226
- j19:;
227
- printf("Uncaught TypeError: Cannot assign member with non-array\n");
228
- exit(1);
229
- // end
230
- j18:;
231
- }
232
- // end
233
- j17:;
234
- // if
235
- if (c == 4.6e+1) {
236
- dtypeswitch_tmp = memorydtype;
237
- // block f64
238
- f64 _r21;
239
- // if
240
- if (dtypeswitch_tmp == 16) {
241
- dlast_type = 0;
242
- _r21 = f64_load(2, 4, (u32)(ptr) * 8);
243
- goto j21;
244
- }
245
- // end
246
- j22:;
247
- // if
248
- if (dtypeswitch_tmp == 18) {
249
- i32_store8(0, 3, 0, i32_load8_u(0, 4, (u32)ptr));
250
- dlast_type = 18;
251
- _r21 = -1e+0;
252
- goto j21;
253
- }
254
- // end
255
- j23:;
256
- printf("Uncaught TypeError: Member expression is not supported for non-string non-array yet\n");
257
- exit(1);
258
- // end
259
- j21:;
260
- printf("%c", (int)(_r21));
261
- }
262
- // end
263
- j20:;
264
- // if
265
- if (c == 9.1e+1) {
266
- __proto_pointer_cache = (u32)starts;
267
- __proto_length_cache = i32_load(1, 0, __proto_pointer_cache);
268
- dtypeswitch_tmp = startsdtype;
269
- // block
270
- // if
271
- if (dtypeswitch_tmp == 16) {
272
- f64_store(2, 4, (__proto_length_cache * 8) + __proto_pointer_cache, i);
273
- i32_store(1, 0, __proto_pointer_cache, __proto_length_cache + 1);
274
- dlast_type = 0;
275
- goto j25;
276
- }
277
- // end
278
- j26:;
279
- printf("Uncaught TypeError: 'push' proto func tried to be called on a type without an impl\n");
280
- exit(1);
281
- // end
282
- j25:;
283
- dtypeswitch_tmp = memorydtype;
284
- // block f64
285
- f64 _r27;
286
- // if
287
- if (dtypeswitch_tmp == 16) {
288
- dlast_type = 0;
289
- _r27 = f64_load(2, 4, (u32)(ptr) * 8);
290
- goto j27;
291
- }
292
- // end
293
- j28:;
294
- // if
295
- if (dtypeswitch_tmp == 18) {
296
- i32_store8(0, 3, 0, i32_load8_u(0, 4, (u32)ptr));
297
- dlast_type = 18;
298
- _r27 = -1e+0;
299
- goto j27;
300
- }
301
- // end
302
- j29:;
303
- printf("Uncaught TypeError: Member expression is not supported for non-string non-array yet\n");
304
- exit(1);
305
- // end
306
- j27:;
307
- elogicinner_tmp = _r27;
308
- dtypeswitch_tmp = dlast_type;
309
- // block f64
310
- f64 _r30;
311
- // if
312
- if (dtypeswitch_tmp == 16) {
313
- _r30 = 0e+0;
314
- goto j30;
315
- }
316
- // end
317
- j31:;
318
- // if
319
- if (dtypeswitch_tmp == 18) {
320
- _r30 = (f64)(i32_load(1, 0, (u32)elogicinner_tmp)) == 0;
321
- goto j30;
322
- }
323
- // end
324
- j32:;
325
- _r30 = (f64)elogicinner_tmp == 0e+0;
326
- // end
327
- j30:;
328
- elogicinner_tmp = _r30;
329
- // if
330
- if (((u32)elogicinner_tmp) != 0) {
331
- depth = 1e+0;
332
- depthdtype = 0;
333
- // loop
334
- j34:;
335
- // if
336
- if (depth != 0e+0) {
337
- __proto_pointer_cache = (u32)str;
338
- __proto_length_cache = i32_load(1, 0, __proto_pointer_cache);
339
- dtypeswitch_tmp = strdtype;
340
- // block f64
341
- f64 _r36;
342
- // if
343
- if (dtypeswitch_tmp == 18) {
344
- // block f64
345
- f64 _r38;
346
- i = i + 1e+0;
347
- __charCodeAt_tmp = (i32)i;
348
- // if
349
- if (((__charCodeAt_tmp < 0) | (__charCodeAt_tmp >= __proto_length_cache)) != 0) {
350
- _r38 = NAN;
351
- goto j38;
352
- }
353
- // end
354
- j39:;
355
- dlast_type = 0;
356
- _r38 = (f64)i32_load8_u(0, 4, __charCodeAt_tmp + __proto_pointer_cache);
357
- // end
358
- j38:;
359
- _r36 = _r38;
360
- goto j36;
361
- }
362
- // end
363
- j37:;
364
- printf("Uncaught TypeError: 'charCodeAt' proto func tried to be called on a type without an impl\n");
365
- exit(1);
366
- // end
367
- j36:;
368
- c2 = _r36;
369
- c2dtype = 0;
370
- // if
371
- if (c2 == 9.1e+1) {
372
- depth = depth + 1e+0;
373
- }
374
- // end
375
- j40:;
376
- // if
377
- if (c2 == 9.3e+1) {
378
- depth = depth - 1e+0;
379
- }
380
- // end
381
- j41:;
382
- goto j34;
383
- }
384
- // end
385
- j35:;
386
- // end
387
- i = i - 1e+0;
388
- goto j7;
389
- }
390
- // end
391
- j33:;
392
- }
393
- // end
394
- j24:;
395
- // if
396
- if (c == 9.3e+1) {
397
- dtypeswitch_tmp = memorydtype;
398
- // block f64
399
- f64 _r43;
400
- // if
401
- if (dtypeswitch_tmp == 16) {
402
- dlast_type = 0;
403
- _r43 = f64_load(2, 4, (u32)(ptr) * 8);
404
- goto j43;
405
- }
406
- // end
407
- j44:;
408
- // if
409
- if (dtypeswitch_tmp == 18) {
410
- i32_store8(0, 3, 0, i32_load8_u(0, 4, (u32)ptr));
411
- dlast_type = 18;
412
- _r43 = -1e+0;
413
- goto j43;
414
- }
415
- // end
416
- j45:;
417
- printf("Uncaught TypeError: Member expression is not supported for non-string non-array yet\n");
418
- exit(1);
419
- // end
420
- j43:;
421
- elogicinner_tmp = _r43;
422
- dtypeswitch_tmp = dlast_type;
423
- // block f64
424
- f64 _r46;
425
- // if
426
- if (dtypeswitch_tmp == 16) {
427
- _r46 = 0e+0;
428
- goto j46;
429
- }
430
- // end
431
- j47:;
432
- // if
433
- if (dtypeswitch_tmp == 18) {
434
- _r46 = (f64)(i32_load(1, 0, (u32)elogicinner_tmp)) == 0;
435
- goto j46;
436
- }
437
- // end
438
- j48:;
439
- _r46 = (f64)elogicinner_tmp == 0e+0;
440
- // end
441
- j46:;
442
- elogicinner_tmp = _r46;
443
- // if
444
- if (((u32)elogicinner_tmp) != 0) {
445
- __proto_pointer_cache = (u32)starts;
446
- __proto_length_cache = i32_load(1, 0, __proto_pointer_cache);
447
- dtypeswitch_tmp = startsdtype;
448
- // block
449
- // if
450
- if (dtypeswitch_tmp == 16) {
451
- // block
452
- // if
453
- if ((__proto_length_cache) == 0) {
454
- goto j52;
455
- }
456
- // end
457
- j53:;
458
- i32_store(1, 0, __proto_pointer_cache, __proto_length_cache - 1);
459
- dlast_type = 0;
460
- // end
461
- j52:;
462
- goto j50;
463
- }
464
- // end
465
- j51:;
466
- printf("Uncaught TypeError: 'pop' proto func tried to be called on a type without an impl\n");
467
- exit(1);
468
- // end
469
- j50:;
470
- goto j7;
471
- }
472
- // end
473
- j49:;
474
- dtypeswitch_tmp = startsdtype;
475
- // block f64
476
- f64 _r54;
477
- // if
478
- if (dtypeswitch_tmp == 16) {
479
- dlast_type = 0;
480
- _r54 = f64_load(2, 131076, (u32)(((f64)(i32_load(1, 131072, 0)) - 1e+0)) * 8);
481
- goto j54;
482
- }
483
- // end
484
- j55:;
485
- // if
486
- if (dtypeswitch_tmp == 18) {
487
- i32_store8(0, 3, 0, i32_load8_u(0, 131076, (u32)((f64)(i32_load(1, 131072, 0)) - 1e+0)));
488
- dlast_type = 18;
489
- _r54 = -1e+0;
490
- goto j54;
491
- }
492
- // end
493
- j56:;
494
- printf("Uncaught TypeError: Member expression is not supported for non-string non-array yet\n");
495
- exit(1);
496
- // end
497
- j54:;
498
- i = _r54;
499
- idtype = dlast_type;
500
- }
501
- // end
502
- j42:;
503
- // end
504
- j7:;
505
- i = i + 1e+0;
506
- goto j5;
507
- }
508
- // end
509
- j6:;
510
- // end
511
- return (struct ReturnValue){ 3, 0e+0 };
512
- }
513
-
514
- f64 inline __performance_now() {
515
- double _time_out;
516
- #ifdef _WIN32
517
- LARGE_INTEGER _time_freq, _time_t;
518
- QueryPerformanceFrequency(&_time_freq);
519
- QueryPerformanceCounter(&_time_t);
520
- _time_out = ((double)_time_t.QuadPart / _time_freq.QuadPart) * 1000.;
521
- #else
522
- struct timespec _time;
523
- clock_gettime(CLOCK_MONOTONIC, &_time);
524
- _time_out = _time.tv_nsec / 1000000. + _time.tv_sec * 1000.;
525
- #endif
526
- return _time_out;
527
- }
528
-
529
- void inline __console_log(f64 x, i32 y) {
530
- i32 a = 0;
531
- i32 b = 0;
532
- i32 dtypeswitch_tmp = 0;
533
-
534
- dtypeswitch_tmp = y;
535
- // block
536
- // if
537
- if (dtypeswitch_tmp == 0) {
538
- printf("%g\n", x);
539
- goto j57;
540
- }
541
- // end
542
- j58:;
543
- // if
544
- if (dtypeswitch_tmp == 1) {
545
- // if
546
- if (((u32)x) != 0) {
547
- printf("%c", (int)(1.16e+2));
548
- printf("%c", (int)(1.14e+2));
549
- printf("%c", (int)(1.17e+2));
550
- printf("%c", (int)(1.01e+2));
551
- } else {
552
- printf("%c", (int)(1.02e+2));
553
- printf("%c", (int)(9.7e+1));
554
- printf("%c", (int)(1.08e+2));
555
- printf("%c", (int)(1.15e+2));
556
- printf("%c", (int)(1.01e+2));
557
- }
558
- // end
559
- j60:;
560
- goto j57;
561
- }
562
- // end
563
- j59:;
564
- // if
565
- if (dtypeswitch_tmp == 3) {
566
- printf("%c", (int)(1.17e+2));
567
- printf("%c", (int)(1.1e+2));
568
- printf("%c", (int)(1e+2));
569
- printf("%c", (int)(1.01e+2));
570
- printf("%c", (int)(1.02e+2));
571
- printf("%c", (int)(1.05e+2));
572
- printf("%c", (int)(1.1e+2));
573
- printf("%c", (int)(1.01e+2));
574
- printf("%c", (int)(1e+2));
575
- goto j57;
576
- }
577
- // end
578
- j61:;
579
- // if
580
- if (dtypeswitch_tmp == 4) {
581
- // if
582
- if (((u32)x) != 0) {
583
- printf("%c", (int)(1.23e+2));
584
- printf("%c", (int)(1.25e+2));
585
- } else {
586
- printf("%c", (int)(1.1e+2));
587
- printf("%c", (int)(1.17e+2));
588
- printf("%c", (int)(1.08e+2));
589
- printf("%c", (int)(1.08e+2));
590
- }
591
- // end
592
- j63:;
593
- goto j57;
594
- }
595
- // end
596
- j62:;
597
- // if
598
- if (dtypeswitch_tmp == 5) {
599
- printf("%c", (int)(1.02e+2));
600
- printf("%c", (int)(1.17e+2));
601
- printf("%c", (int)(1.1e+2));
602
- printf("%c", (int)(9.9e+1));
603
- printf("%c", (int)(1.16e+2));
604
- printf("%c", (int)(1.05e+2));
605
- printf("%c", (int)(1.11e+2));
606
- printf("%c", (int)(1.1e+2));
607
- printf("%c", (int)(3.2e+1));
608
- printf("%c", (int)(4e+1));
609
- printf("%c", (int)(4.1e+1));
610
- printf("%c", (int)(3.2e+1));
611
- printf("%c", (int)(1.23e+2));
612
- printf("%c", (int)(1.25e+2));
613
- goto j57;
614
- }
615
- // end
616
- j64:;
617
- // if
618
- if (dtypeswitch_tmp == 16) {
619
- printf("%c", (int)(9.1e+1));
620
- printf("%c", (int)(3.2e+1));
621
- a = (u32)x;
622
- b = (i32_load(1, 0, a) * 8) + a;
623
- // loop
624
- j66:;
625
- printf("%g\n", f64_load(0, 4, a));
626
- a = a + 8;
627
- // if
628
- if (a != b) {
629
- printf("%c", (int)(4.4e+1));
630
- printf("%c", (int)(3.2e+1));
631
- goto j66;
632
- }
633
- // end
634
- j67:;
635
- // end
636
- printf("%c", (int)(3.2e+1));
637
- printf("%c", (int)(9.3e+1));
638
- goto j57;
639
- }
640
- // end
641
- j65:;
642
- printf("%g\n", x);
643
- // end
644
- j57:;
645
- printf("%c", (int)(1e+1));
646
- }
647
-
648
- int main() {
649
- memcpy(_memory + 0, (char[]){0,0,0,0}, 4);
650
- memcpy(_memory + 262144, (char[]){187,217,0,0,43,43,43,43,43,43,43,43,43,43,43,43,43,91,45,62,43,43,62,62,62,43,43,43,43,43,62,43,43,62,43,60,60,60,60,60,60,93,62,62,62,62,62,43,43,43,43,43,43,62,45,45,45,62,62,62,62,62,62,62,62,62,62,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,91,91,62,62,62,62,62,62,62,62,62,93,43,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,45,93,43,91,62,62,62,62,62,62,62,62,91,45,93,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,91,45,93,43,60,60,60,60,60,60,60,43,43,43,43,43,91,45,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,93,62,62,62,62,62,62,62,43,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,91,45,93,43,91,62,62,62,62,62,62,91,62,62,62,62,62,62,62,91,45,93,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,91,45,93,43,60,60,60,60,60,60,43,43,43,43,91,45,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,93,62,62,62,62,62,62,43,60,60,60,60,60,60,43,43,43,43,43,43,43,91,45,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,93,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,91,91,45,93,62,62,62,62,62,62,91,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,43,62,62,62,62,62,62,93,60,60,60,60,60,60,91,45,62,62,62,62,62,62,43,60,60,43,60,60,60,43,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,43,60,60,43,60,60,60,43,60,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,43,60,60,43,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,91,91,62,62,62,62,62,62,62,62,62,93,43,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,45,93,43,91,62,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,45,62,62,62,62,91,45,60,60,60,60,43,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,60,60,60,60,60,91,45,62,62,91,45,60,60,43,62,62,93,60,60,91,45,62,62,43,62,62,43,60,60,60,60,93,43,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,60,60,60,60,60,60,60,60,60,60,93,62,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,60,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,93,60,45,62,62,62,62,91,45,60,60,60,60,43,62,91,60,45,62,45,60,60,60,60,60,60,43,62,62,62,62,62,62,93,60,91,45,62,43,60,93,62,62,62,62,93,60,60,60,91,45,62,62,62,43,60,60,60,93,60,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,45,62,62,62,62,62,91,45,60,60,60,60,60,43,62,62,62,62,62,93,60,60,60,60,60,91,45,62,62,62,62,62,43,60,60,60,60,60,60,91,45,62,62,62,91,45,60,60,60,43,62,62,62,93,60,60,60,91,45,62,62,62,43,62,43,60,60,60,60,93,43,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,62,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,60,60,60,60,60,60,60,60,60,60,60,93,62,62,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,60,60,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,93,60,45,62,62,62,62,91,45,60,60,60,60,43,62,91,60,45,62,45,60,60,60,60,60,60,43,62,62,62,62,62,62,93,60,91,45,62,43,60,93,62,62,62,62,93,60,60,60,91,45,62,62,62,43,60,60,60,93,60,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,91,45,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,93,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,91,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,45,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,45,93,43,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,43,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,91,45,60,60,60,45,62,62,62,93,43,60,60,60,91,45,62,62,62,45,62,91,45,60,60,60,60,43,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,60,60,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,91,45,93,43,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,62,43,60,93,93,43,62,62,62,62,91,45,60,60,60,60,45,62,62,62,62,93,43,60,60,60,60,91,45,62,62,62,62,45,60,91,45,60,60,60,43,62,62,62,93,60,60,60,91,45,62,62,62,43,60,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,91,45,93,43,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,62,91,45,93,43,60,93,93,43,62,91,45,60,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,60,60,60,60,60,60,60,91,45,62,43,62,62,62,45,60,60,60,60,93,62,62,62,62,62,62,62,62,62,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,62,62,91,45,60,60,60,60,43,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,60,60,91,45,93,60,60,93,62,62,91,60,60,60,60,60,60,60,43,60,91,45,60,43,62,62,62,62,43,60,60,91,45,93,93,62,91,45,60,60,91,45,62,43,62,62,62,45,60,60,60,60,93,62,62,62,93,62,62,62,62,62,62,62,62,62,62,62,62,62,91,62,62,91,45,93,62,91,45,93,62,91,45,93,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,91,45,93,62,62,62,62,62,62,91,62,62,62,62,62,91,45,60,60,60,60,43,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,60,60,60,43,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,91,45,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,93,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,91,91,62,62,62,62,62,62,62,62,62,93,43,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,45,93,43,91,62,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,45,62,62,62,62,62,91,45,60,60,60,60,60,43,62,62,62,62,62,93,60,60,60,60,60,91,45,62,62,62,62,62,43,60,60,60,60,60,60,91,45,62,62,91,45,60,60,43,62,62,93,60,60,91,45,62,62,43,62,43,60,60,60,93,43,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,60,60,60,60,60,60,60,60,60,60,93,62,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,60,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,93,60,45,62,62,62,91,45,60,60,60,43,62,91,60,45,62,45,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,93,60,91,45,62,43,60,93,62,62,62,93,60,60,91,45,62,62,43,60,60,93,60,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,62,91,45,60,60,60,60,60,43,62,62,62,62,62,93,60,60,60,60,60,91,45,62,62,62,62,62,43,60,60,60,60,43,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,45,62,62,62,62,62,91,45,60,60,60,60,60,43,62,62,62,62,62,93,60,60,60,60,60,91,45,62,62,62,62,62,43,60,60,60,60,60,60,91,45,62,62,91,45,60,60,43,62,62,93,60,60,91,45,62,62,43,62,62,43,60,60,60,60,93,43,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,60,60,60,60,60,60,60,60,60,60,93,62,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,60,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,93,60,45,62,62,62,62,91,45,60,60,60,60,43,62,91,60,45,62,45,60,60,60,60,60,60,43,62,62,62,62,62,62,93,60,91,45,62,43,60,93,62,62,62,62,93,60,60,60,91,45,62,62,62,43,60,60,60,93,60,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,91,45,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,93,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,91,45,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,93,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,91,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,45,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,45,93,43,91,62,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,43,60,60,60,60,60,60,43,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,62,91,45,93,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,43,62,91,45,60,45,60,60,60,60,43,62,62,62,62,62,93,62,91,45,60,60,60,60,60,60,91,45,62,62,62,62,62,43,60,43,43,60,60,60,60,93,62,62,62,62,62,91,45,60,60,60,60,60,43,62,62,62,62,62,93,60,45,62,43,62,93,60,91,45,62,43,60,93,60,60,60,60,60,91,45,62,62,62,62,62,43,60,60,60,60,60,93,62,62,62,62,62,62,91,45,93,60,60,60,60,60,60,43,62,62,62,62,91,45,60,60,60,60,45,62,62,62,62,93,43,60,60,60,60,91,45,62,62,62,62,45,62,62,62,62,62,91,62,62,91,45,60,60,45,62,62,93,43,60,60,91,45,62,62,45,62,91,45,60,60,60,43,62,62,62,93,60,60,60,91,45,62,62,62,43,60,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,91,45,93,43,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,62,43,60,93,93,43,62,62,62,91,45,60,60,60,45,62,62,62,93,43,60,60,60,91,45,62,62,62,45,60,91,45,60,60,43,62,62,93,60,60,91,45,62,62,43,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,91,45,93,43,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,62,91,45,93,43,60,93,93,43,62,91,45,60,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,91,45,60,60,60,60,43,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,62,62,62,62,62,91,62,43,62,62,91,45,60,60,45,62,62,93,60,60,91,45,62,62,43,60,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,43,60,91,62,91,45,62,62,62,62,62,43,60,60,60,60,91,45,62,62,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,91,45,62,62,62,43,60,60,60,93,60,93,62,91,45,62,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,93,60,60,93,62,91,45,62,62,62,62,43,60,60,60,91,45,62,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,93,60,93,62,91,45,62,62,62,43,60,60,60,93,60,60,60,60,60,60,60,60,60,60,60,60,93,62,62,62,62,91,45,93,60,60,60,60,93,62,62,62,91,45,60,60,60,43,62,62,62,93,60,60,60,91,45,62,62,62,43,62,62,62,62,62,62,91,62,43,62,91,45,60,45,62,93,60,91,45,62,43,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,43,60,91,62,91,45,62,62,62,62,62,43,60,60,60,91,45,62,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,91,45,62,62,62,62,43,60,60,60,60,93,62,93,60,91,45,62,62,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,93,60,93,62,62,91,45,62,62,62,43,60,60,60,60,91,45,62,62,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,93,62,93,60,91,45,62,62,62,62,43,60,60,60,60,93,60,60,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,43,60,60,60,60,60,60,93,93,62,62,62,62,91,45,60,60,60,60,43,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,62,62,62,62,62,43,60,60,60,60,91,45,62,62,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,91,45,62,62,62,43,60,60,60,93,60,93,62,91,45,62,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,93,60,60,93,62,91,45,62,62,62,62,43,60,60,60,91,45,62,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,93,60,93,62,91,45,62,62,62,43,60,60,60,93,60,60,60,60,60,60,60,60,60,60,60,60,93,93,62,91,45,93,62,62,91,45,93,62,91,45,93,62,62,62,62,62,91,62,62,91,45,93,62,91,45,93,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,91,45,60,60,60,60,43,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,60,60,60,43,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,91,91,62,62,62,62,62,62,62,62,62,93,43,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,45,93,43,91,62,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,45,62,62,62,62,91,45,60,60,60,60,43,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,60,60,60,60,60,91,45,62,62,91,45,60,60,43,62,62,93,60,60,91,45,62,62,43,62,43,60,60,60,93,43,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,60,60,60,60,60,60,60,60,60,60,93,62,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,60,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,93,60,45,62,62,62,91,45,60,60,60,43,62,91,60,45,62,45,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,93,60,91,45,62,43,60,93,62,62,62,93,60,60,91,45,62,62,43,60,60,93,60,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,91,45,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,93,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,91,45,93,62,62,62,62,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,91,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,45,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,45,93,43,91,62,62,62,91,45,60,60,60,45,62,62,62,93,43,60,60,60,91,45,62,62,62,45,62,91,45,60,60,60,60,43,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,60,60,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,91,45,93,43,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,62,43,60,93,93,43,62,62,62,62,91,45,60,60,60,60,45,62,62,62,62,93,43,60,60,60,60,91,45,62,62,62,62,45,60,91,45,60,60,60,43,62,62,62,93,60,60,60,91,45,62,62,62,43,60,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,91,45,93,43,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,62,91,45,93,43,60,93,93,43,62,91,45,60,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,91,45,60,60,60,43,62,62,62,93,60,60,60,91,45,62,62,62,43,62,62,62,62,62,62,91,62,43,62,62,62,91,45,60,60,60,45,62,62,62,93,60,60,60,91,45,62,62,62,43,60,60,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,43,60,91,62,91,45,62,43,62,91,45,60,45,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,62,91,45,60,60,43,62,62,93,60,93,62,91,45,60,60,45,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,62,93,60,60,60,93,62,62,91,45,60,43,62,62,91,45,60,60,45,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,62,93,60,93,62,91,45,60,60,43,62,62,93,60,60,60,60,60,60,60,60,60,60,60,60,60,93,93,62,62,62,62,91,45,60,60,60,60,43,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,62,62,62,62,62,91,62,43,62,62,91,45,60,60,45,62,62,93,60,60,91,45,62,62,43,60,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,43,60,91,62,91,45,62,43,62,62,91,45,60,60,45,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,91,45,60,43,62,93,62,93,60,91,45,60,45,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,93,60,60,93,62,62,62,91,45,60,60,43,62,91,45,60,45,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,93,62,93,60,91,45,60,43,62,93,60,60,60,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,43,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,91,45,93,62,91,45,93,62,91,45,93,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,91,45,93,62,91,45,93,62,62,62,62,62,91,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,43,62,62,62,62,62,62,93,60,60,60,60,60,60,91,45,62,62,62,62,62,62,43,60,60,60,60,43,60,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,43,62,91,45,60,45,60,60,60,60,43,62,62,62,62,62,93,62,62,91,45,60,60,60,60,60,60,60,91,45,62,62,62,62,62,43,60,43,43,60,60,60,60,93,62,62,62,62,62,91,45,60,60,60,60,60,43,62,62,62,62,62,93,60,45,62,43,62,62,93,60,60,91,45,62,62,43,60,60,93,60,60,60,60,60,91,45,62,62,62,62,62,43,60,60,60,60,60,93,43,62,62,62,62,91,45,60,60,60,60,45,62,62,62,62,93,43,60,60,60,60,91,45,62,62,62,62,45,62,62,62,62,62,91,62,62,62,91,45,60,60,60,45,62,62,62,93,43,60,60,60,91,45,62,62,62,45,60,91,45,60,60,43,62,62,93,60,60,91,45,62,62,43,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,91,45,93,43,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,62,43,60,93,93,43,62,62,91,45,60,60,45,62,62,93,43,60,60,91,45,62,62,45,62,91,45,60,60,60,43,62,62,62,93,60,60,60,91,45,62,62,62,43,60,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,91,45,93,43,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,62,91,45,93,43,60,93,93,43,62,91,45,60,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,91,45,60,60,60,43,62,62,62,93,60,60,60,91,45,62,62,62,43,62,62,62,62,62,62,91,62,43,62,91,45,60,45,62,93,60,91,45,62,43,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,43,60,91,62,91,45,62,62,62,62,43,60,60,91,45,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,91,45,62,62,62,43,60,60,60,93,62,93,60,91,45,62,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,93,60,93,62,62,91,45,62,62,43,60,60,60,91,45,62,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,93,62,93,60,91,45,62,62,62,43,60,60,60,93,60,60,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,91,45,93,62,62,91,45,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,43,60,60,43,60,60,60,60,60,93,93,62,62,62,62,91,45,60,60,60,60,43,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,62,62,62,62,62,91,62,43,62,62,91,45,60,60,45,62,62,93,60,60,91,45,62,62,43,60,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,43,60,91,62,91,45,62,62,62,62,43,60,60,60,91,45,62,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,91,45,62,62,43,60,60,93,60,93,62,91,45,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,93,60,60,93,62,91,45,62,62,62,43,60,60,91,45,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,93,60,93,62,91,45,62,62,43,60,60,93,60,60,60,60,60,60,60,60,60,60,60,60,93,93,62,62,62,62,91,45,93,60,60,60,60,93,62,62,62,62,91,45,60,60,60,60,43,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,62,91,45,93,62,62,91,45,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,43,60,60,43,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,62,62,62,62,43,60,60,60,91,45,62,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,91,45,62,62,43,60,60,93,60,93,62,91,45,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,93,60,60,93,62,91,45,62,62,62,43,60,60,91,45,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,93,60,93,62,91,45,62,62,43,60,60,93,60,60,60,60,60,60,60,60,60,60,60,60,93,93,62,62,62,62,62,62,62,62,62,91,62,62,91,45,93,62,91,45,93,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,91,45,93,62,91,45,93,62,62,62,62,62,91,62,62,62,62,62,91,45,60,60,60,60,43,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,60,60,60,43,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,62,91,45,60,60,60,60,60,43,62,62,62,62,62,93,60,60,60,60,60,91,45,62,62,62,62,62,43,60,60,60,43,60,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,91,91,62,62,62,62,62,62,62,62,62,93,43,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,45,93,43,91,62,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,45,62,62,62,62,91,45,60,60,60,60,43,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,60,60,60,60,60,91,45,62,62,91,45,60,60,43,62,62,93,60,60,91,45,62,62,43,62,62,43,60,60,60,60,93,43,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,60,60,60,60,60,60,60,60,60,60,93,62,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,60,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,93,60,45,62,62,62,62,91,45,60,60,60,60,43,62,91,60,45,62,45,60,60,60,60,60,60,43,62,62,62,62,62,62,93,60,91,45,62,43,60,93,62,62,62,62,93,60,60,60,91,45,62,62,62,43,60,60,60,93,60,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,45,62,62,62,62,62,91,45,60,60,60,60,60,43,62,62,62,62,62,93,60,60,60,60,60,91,45,62,62,62,62,62,43,60,60,60,60,60,60,91,45,62,62,62,91,45,60,60,60,43,62,62,62,93,60,60,60,91,45,62,62,62,43,62,43,60,60,60,60,93,43,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,62,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,60,60,60,60,60,60,60,60,60,60,60,93,62,62,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,60,60,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,93,60,45,62,62,62,62,91,45,60,60,60,60,43,62,91,60,45,62,45,60,60,60,60,60,60,43,62,62,62,62,62,62,93,60,91,45,62,43,60,93,62,62,62,62,93,60,60,60,91,45,62,62,62,43,60,60,60,93,60,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,91,45,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,93,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,91,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,45,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,45,93,43,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,43,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,91,45,60,60,60,45,62,62,62,93,43,60,60,60,91,45,62,62,62,45,62,91,45,60,60,60,60,43,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,60,60,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,91,45,93,43,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,62,43,60,93,93,43,62,62,62,62,91,45,60,60,60,60,45,62,62,62,62,93,43,60,60,60,60,91,45,62,62,62,62,45,60,91,45,60,60,60,43,62,62,62,93,60,60,60,91,45,62,62,62,43,60,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,91,45,93,43,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,62,91,45,93,43,60,93,93,43,62,91,45,60,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,45,62,62,91,45,60,60,60,60,43,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,60,60,91,45,93,60,60,93,62,62,93,60,60,43,62,62,62,62,91,45,60,60,60,60,45,62,62,62,62,93,43,60,60,60,60,91,45,62,62,62,62,45,60,60,60,60,60,60,46,62,62,93,62,62,62,62,91,45,60,60,60,60,60,60,60,46,62,62,62,62,62,62,62,93,60,60,60,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,62,62,91,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,91,45,93,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,43,43,43,43,43,43,43,43,43,43,43,91,45,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,93,62,62,62,62,43,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,43,91,45,93,62,62,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,43,62,62,62,62,62,62,93,60,60,60,60,60,60,91,45,62,62,62,62,62,62,43,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,91,45,93,43,62,62,62,93,60,60,60,60,60,60,60,60,60,60,93,93,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,43,62,62,91,62,43,62,62,62,62,91,45,60,60,60,60,45,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,60,60,60,60,93,62,62,62,62,62,62,62,62,93,60,60,43,60,60,60,60,60,60,60,91,62,62,62,62,62,91,45,62,62,43,60,60,93,60,60,60,60,60,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,93,60,45,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,60,43,62,91,60,45,62,45,60,60,60,43,62,62,62,93,60,91,45,62,43,60,93,62,62,62,62,62,62,62,93,60,60,60,60,60,60,91,45,62,62,62,62,62,62,43,60,60,60,60,60,60,93,60,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,45,60,60,60,60,91,45,93,43,60,60,60,93,43,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,60,45,62,62,62,62,62,62,62,93,43,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,45,62,62,91,62,62,62,62,62,91,45,62,62,43,60,60,93,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,93,60,45,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,60,43,62,91,60,45,62,45,60,60,60,43,62,62,62,93,60,91,45,62,43,60,93,62,62,62,62,62,62,62,93,60,60,60,60,60,60,91,45,62,62,62,62,62,62,43,60,60,60,60,60,60,93,60,43,60,60,60,60,60,60,60,60,60,93,62,43,43,43,43,43,91,45,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,93,62,62,62,62,43,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,91,45,60,60,60,60,60,45,62,62,62,62,62,93,43,60,60,60,60,60,91,45,62,62,62,62,62,45,62,62,91,45,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,91,45,93,43,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,62,43,60,93,93,43,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,60,45,62,62,62,62,62,62,62,93,43,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,45,60,60,91,45,60,60,60,60,60,43,62,62,62,62,62,93,60,60,60,60,60,91,45,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,91,45,93,43,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,62,91,45,93,43,60,93,93,43,62,91,45,60,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,91,45,93,60,60,60,43,43,43,43,43,91,45,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,93,62,62,62,62,45,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,93,62,62,62,93,60,60,60,60,46,62,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,62,91,45,93,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,43,43,43,43,43,43,43,43,43,43,91,45,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,93,62,62,62,62,62,43,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,62,43,91,45,93,62,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,91,45,93,43,62,62,93,60,60,60,60,60,60,60,60,60,60,93,93,62,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,62,43,62,91,62,43,62,62,62,62,62,91,45,60,60,60,60,60,45,62,62,62,62,62,93,60,60,60,60,60,91,45,62,62,62,62,62,43,60,60,60,60,60,93,62,62,62,62,62,62,62,62,93,60,43,60,60,60,60,60,60,60,60,91,62,62,62,62,62,62,91,45,62,62,43,60,60,93,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,93,60,45,62,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,60,60,43,62,91,60,45,62,45,60,60,43,62,62,93,60,91,45,62,43,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,93,60,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,45,60,60,60,60,60,91,45,93,43,60,60,60,93,43,62,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,60,60,45,62,62,62,62,62,62,62,62,93,43,60,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,62,45,62,91,62,62,62,62,62,62,91,45,62,62,43,60,60,93,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,93,60,45,62,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,60,60,43,62,91,60,45,62,45,60,60,43,62,62,93,60,91,45,62,43,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,93,60,43,60,60,60,60,60,60,60,60,60,93,62,43,43,43,43,43,91,45,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,93,62,62,62,62,62,43,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,62,91,45,60,60,60,60,60,60,45,62,62,62,62,62,62,93,43,60,60,60,60,60,60,91,45,62,62,62,62,62,62,45,62,62,91,45,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,91,45,93,43,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,62,43,60,93,93,43,62,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,60,60,45,62,62,62,62,62,62,62,62,93,43,60,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,62,45,60,60,91,45,60,60,60,60,60,60,43,62,62,62,62,62,62,93,60,60,60,60,60,60,91,45,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,91,45,93,43,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,62,91,45,93,43,60,93,93,43,62,91,45,60,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,91,45,93,60,60,60,43,43,43,43,43,91,45,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,93,62,62,62,62,62,45,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,45,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,93,62,62,62,93}, 11455);
651
-
652
- i32 dlast_type = 0;
653
-
654
- t = __performance_now();
655
- tdtype = 0;
656
- const struct ReturnValue _ = interpret(2.62144e+5, 18);
657
- printf("%c", (int)(1e+1));
658
- __console_log(__performance_now() - t, 0);
659
-
660
- return 0;
661
- }