smesh_lol_web_common_helpers.mjs raw

   1  // Package smesh.lol/web/common/helpers
   2  // Generated by MoxieJS — Moxie JavaScript backend
   3  
   4  import * as $rt from './$runtime/index.mjs';
   5  
   6  // Package-level variables
   7  export let b64encode = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
   8  export let bech32Charset = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
   9  export let hexChars = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
  10  
  11  $rt.types.registerType('smesh.lol/web/common/helpers.Nevent', {
  12    id: 'smesh.lol/web/common/helpers.Nevent',
  13    kind: 'struct',
  14    methods: new Map(),
  15    fields: [
  16      { name: 'ID', type: '[]byte', tag: '', embedded: false },
  17      { name: 'Relays', type: '[][]byte', tag: '', embedded: false },
  18      { name: 'Author', type: '[]byte', tag: '', embedded: false },
  19    ],
  20    zero: () => ({ ID: null, Relays: null, Author: null }),
  21  });
  22  $rt.types.registerType('smesh.lol/web/common/helpers.Nprofile', {
  23    id: 'smesh.lol/web/common/helpers.Nprofile',
  24    kind: 'struct',
  25    methods: new Map(),
  26    fields: [
  27      { name: 'Pubkey', type: '[]byte', tag: '', embedded: false },
  28      { name: 'Relays', type: '[][]byte', tag: '', embedded: false },
  29    ],
  30    zero: () => ({ Pubkey: null, Relays: null }),
  31  });
  32  export function init() {
  33    let $t0_1, $t1_2, $t2_3;
  34    $t0_1 = $rt.builtin.stringToBytes('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/');
  35    b64encode.$set($t0_1);
  36    $t1_2 = $rt.builtin.stringToBytes('qpzry9x8gf2tvdw0s3jn54khce6mua7l');
  37    bech32Charset.$set($t1_2);
  38    $t2_3 = $rt.builtin.stringToBytes('0123456789abcdef');
  39    hexChars.$set($t2_3);
  40    return;
  41  }
  42  
  43  export function Base64Encode(data) {
  44    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;
  45    let $block = 0;
  46    while (true) {
  47      switch ($block) {
  48        case 0: {
  49          $t0_1 = $rt.builtin.len(data);
  50          $t1_2 = ($t0_1 + 2);
  51          $t2_3 = Math.trunc($t1_2 / 3);
  52          $t3_4 = ($t2_3 * 4);
  53          $t4_5 = $rt.builtin.makeSlice(0, $t3_4, 0);
  54          $t5_6 = $t4_5;
  55          $t6_7 = 0;
  56          $block = 1; break;
  57          break;
  58        }
  59        case 1: {
  60          $t7_8 = ($t6_7 < $t0_1);
  61          if ($t7_8) {
  62            $block = 2; break;
  63          }
  64          else {
  65            $block = 3; break;
  66          }
  67          break;
  68        }
  69        case 2: {
  70          $t8_9 = data.addr($t6_7);
  71          $t9_10 = $t8_9.$get();
  72          $t10_11 = ($t6_7 + 1);
  73          $t11_12 = ($t10_11 < $t0_1);
  74          if ($t11_12) {
  75            $block = 4; break;
  76          }
  77          else {
  78            $t15_16 = 0;
  79            $block = 5; break;
  80          }
  81          break;
  82        }
  83        case 3: {
  84          return $t5_6;
  85          break;
  86        }
  87        case 4: {
  88          $t12_13 = ($t6_7 + 1);
  89          $t13_14 = data.addr($t12_13);
  90          $t14_15 = $t13_14.$get();
  91          $t15_16 = $t14_15;
  92          $block = 5; break;
  93          break;
  94        }
  95        case 5: {
  96          $t16_17 = ($t6_7 + 2);
  97          $t17_18 = ($t16_17 < $t0_1);
  98          if ($t17_18) {
  99            $block = 6; break;
 100          }
 101          else {
 102            $t21_22 = 0;
 103            $block = 7; break;
 104          }
 105          break;
 106        }
 107        case 6: {
 108          $t18_19 = ($t6_7 + 2);
 109          $t19_20 = data.addr($t18_19);
 110          $t20_21 = $t19_20.$get();
 111          $t21_22 = $t20_21;
 112          $block = 7; break;
 113          break;
 114        }
 115        case 7: {
 116          $t22_23 = b64encode.$get();
 117          $t23_24 = (($t9_10 & 0xFF) >> 2);
 118          $t24_25 = ($t23_24 & 63);
 119          $t25_26 = $t22_23.addr($t24_25);
 120          $t26_27 = $t25_26.$get();
 121          $t27_28 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 122          $t28_29 = $t27_28.$get().addr(0);
 123          $t28_29.$set($t26_27);
 124          $t29_30 = $rt.builtin.sliceSlice($t27_28.$get(), undefined, undefined, undefined);
 125          $t30_31 = $rt.builtin.appendSlice($t5_6, $t29_30);
 126          $t31_32 = b64encode.$get();
 127          $t32_33 = (($t9_10 << 4) & 0xFF);
 128          $t33_34 = (($t15_16 & 0xFF) >> 4);
 129          $t34_35 = (($t32_33 + $t33_34) & 0xFF);
 130          $t35_36 = ($t34_35 & 63);
 131          $t36_37 = $t31_32.addr($t35_36);
 132          $t37_38 = $t36_37.$get();
 133          $t38_39 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 134          $t39_40 = $t38_39.$get().addr(0);
 135          $t39_40.$set($t37_38);
 136          $t40_41 = $rt.builtin.sliceSlice($t38_39.$get(), undefined, undefined, undefined);
 137          $t41_42 = $rt.builtin.appendSlice($t30_31, $t40_41);
 138          $t42_43 = ($t6_7 + 1);
 139          $t43_44 = ($t42_43 < $t0_1);
 140          if ($t43_44) {
 141            $block = 8; break;
 142          }
 143          else {
 144            $block = 10; break;
 145          }
 146          break;
 147        }
 148        case 8: {
 149          $t44_45 = b64encode.$get();
 150          $t45_46 = (($t15_16 << 2) & 0xFF);
 151          $t46_47 = (($t21_22 & 0xFF) >> 6);
 152          $t47_48 = (($t45_46 + $t46_47) & 0xFF);
 153          $t48_49 = ($t47_48 & 63);
 154          $t49_50 = $t44_45.addr($t48_49);
 155          $t50_51 = $t49_50.$get();
 156          $t51_52 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 157          $t52_53 = $t51_52.$get().addr(0);
 158          $t52_53.$set($t50_51);
 159          $t53_54 = $rt.builtin.sliceSlice($t51_52.$get(), undefined, undefined, undefined);
 160          $t54_55 = $rt.builtin.appendSlice($t41_42, $t53_54);
 161          $t55_56 = $t54_55;
 162          $block = 9; break;
 163          break;
 164        }
 165        case 9: {
 166          $t56_57 = ($t6_7 + 2);
 167          $t57_58 = ($t56_57 < $t0_1);
 168          if ($t57_58) {
 169            $block = 11; break;
 170          }
 171          else {
 172            $block = 13; break;
 173          }
 174          break;
 175        }
 176        case 10: {
 177          $t58_59 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 178          $t59_60 = $t58_59.$get().addr(0);
 179          $t59_60.$set(61);
 180          $t60_61 = $rt.builtin.sliceSlice($t58_59.$get(), undefined, undefined, undefined);
 181          $t61_62 = $rt.builtin.appendSlice($t41_42, $t60_61);
 182          $t55_56 = $t61_62;
 183          $block = 9; break;
 184          break;
 185        }
 186        case 11: {
 187          $t62_63 = b64encode.$get();
 188          $t63_64 = ($t21_22 & 63);
 189          $t64_65 = $t62_63.addr($t63_64);
 190          $t65_66 = $t64_65.$get();
 191          $t66_67 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 192          $t67_68 = $t66_67.$get().addr(0);
 193          $t67_68.$set($t65_66);
 194          $t68_69 = $rt.builtin.sliceSlice($t66_67.$get(), undefined, undefined, undefined);
 195          $t69_70 = $rt.builtin.appendSlice($t55_56, $t68_69);
 196          $t70_71 = $t69_70;
 197          $block = 12; break;
 198          break;
 199        }
 200        case 12: {
 201          $t71_72 = ($t6_7 + 3);
 202          $t5_6 = $t70_71;
 203          $t6_7 = $t71_72;
 204          $block = 1; break;
 205          break;
 206        }
 207        case 13: {
 208          $t72_73 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 209          $t73_74 = $t72_73.$get().addr(0);
 210          $t73_74.$set(61);
 211          $t74_75 = $rt.builtin.sliceSlice($t72_73.$get(), undefined, undefined, undefined);
 212          $t75_76 = $rt.builtin.appendSlice($t55_56, $t74_75);
 213          $t70_71 = $t75_76;
 214          $block = 12; break;
 215          break;
 216        }
 217      }
 218    }
 219  }
 220  
 221  export function Base64Decode(s) {
 222    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;
 223    let $block = 0;
 224    while (true) {
 225      switch ($block) {
 226        case 0: {
 227          $t0_1 = $rt.builtin.len(s);
 228          $t6_7 = $t0_1;
 229          $t7_8 = 0;
 230          $block = 3; break;
 231          break;
 232        }
 233        case 1: {
 234          $t1_2 = ($t7_8 + 1);
 235          $t2_3 = ($t6_7 - 1);
 236          $t6_7 = $t2_3;
 237          $t7_8 = $t1_2;
 238          $block = 3; break;
 239          break;
 240        }
 241        case 2: {
 242          $t3_4 = ($t6_7 * 3);
 243          $t4_5 = Math.trunc($t3_4 / 4);
 244          $t5_6 = $rt.builtin.makeSlice(0, $t4_5, 0);
 245          $t13_14 = $t5_6;
 246          $t14_15 = 0;
 247          $t15_16 = 0;
 248          $t16_17 = 0;
 249          $block = 5; break;
 250          break;
 251        }
 252        case 3: {
 253          $t8_9 = ($t6_7 > 0);
 254          if ($t8_9) {
 255            $block = 4; break;
 256          }
 257          else {
 258            $block = 2; break;
 259          }
 260          break;
 261        }
 262        case 4: {
 263          $t9_10 = ($t6_7 - 1);
 264          $t10_11 = s.addr($t9_10);
 265          $t11_12 = $t10_11.$get();
 266          $t12_13 = ($t11_12 === 61);
 267          if ($t12_13) {
 268            $block = 1; break;
 269          }
 270          else {
 271            $block = 2; break;
 272          }
 273          break;
 274        }
 275        case 5: {
 276          $t17_18 = ($t16_17 < $t6_7);
 277          if ($t17_18) {
 278            $block = 6; break;
 279          }
 280          else {
 281            $block = 7; break;
 282          }
 283          break;
 284        }
 285        case 6: {
 286          $t18_19 = s.addr($t16_17);
 287          $t19_20 = $t18_19.$get();
 288          $t20_21 = b64val($t19_20);
 289          $t21_22 = ($t20_21 < 0);
 290          if ($t21_22) {
 291            $block = 8; break;
 292          }
 293          else {
 294            $block = 9; break;
 295          }
 296          break;
 297        }
 298        case 7: {
 299          return $t13_14;
 300          break;
 301        }
 302        case 8: {
 303          return null;
 304          break;
 305        }
 306        case 9: {
 307          $t22_23 = (($t14_15 << 6) >>> 0);
 308          $t23_24 = ($t20_21 >>> 0);
 309          $t24_25 = (($t22_23 + $t23_24) >>> 0);
 310          $t25_26 = ($t15_16 + 6);
 311          $t26_27 = ($t25_26 >= 8);
 312          if ($t26_27) {
 313            $block = 10; break;
 314          }
 315          else {
 316            $t35_36 = $t13_14;
 317            $t36_37 = $t25_26;
 318            $block = 11; break;
 319          }
 320          break;
 321        }
 322        case 10: {
 323          $t27_28 = ($t25_26 - 8);
 324          $t28_29 = $t27_28;
 325          $t29_30 = ($t24_25 >>> $t28_29);
 326          $t30_31 = ($t29_30 & 0xFF);
 327          $t31_32 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 328          $t32_33 = $t31_32.$get().addr(0);
 329          $t32_33.$set($t30_31);
 330          $t33_34 = $rt.builtin.sliceSlice($t31_32.$get(), undefined, undefined, undefined);
 331          $t34_35 = $rt.builtin.appendSlice($t13_14, $t33_34);
 332          $t35_36 = $t34_35;
 333          $t36_37 = $t27_28;
 334          $block = 11; break;
 335          break;
 336        }
 337        case 11: {
 338          $t37_38 = ($t16_17 + 1);
 339          $t13_14 = $t35_36;
 340          $t14_15 = $t24_25;
 341          $t15_16 = $t36_37;
 342          $t16_17 = $t37_38;
 343          $block = 5; break;
 344          break;
 345        }
 346      }
 347    }
 348  }
 349  
 350  export function b64val(c) {
 351    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;
 352    let $block = 0;
 353    while (true) {
 354      switch ($block) {
 355        case 0: {
 356          $t0_1 = (c >= 65);
 357          if ($t0_1) {
 358            $block = 4; break;
 359          }
 360          else {
 361            $block = 3; break;
 362          }
 363          break;
 364        }
 365        case 1: {
 366          $t1_2 = ((c - 65) & 0xFF);
 367          $t2_3 = $t1_2;
 368          return $t2_3;
 369          break;
 370        }
 371        case 2: {
 372          $t3_4 = ((c - 97) & 0xFF);
 373          $t4_5 = $t3_4;
 374          $t5_6 = ($t4_5 + 26);
 375          return $t5_6;
 376          break;
 377        }
 378        case 3: {
 379          $t6_7 = (c >= 97);
 380          if ($t6_7) {
 381            $block = 7; break;
 382          }
 383          else {
 384            $block = 6; break;
 385          }
 386          break;
 387        }
 388        case 4: {
 389          $t7_8 = (c <= 90);
 390          if ($t7_8) {
 391            $block = 1; break;
 392          }
 393          else {
 394            $block = 3; break;
 395          }
 396          break;
 397        }
 398        case 5: {
 399          $t8_9 = ((c - 48) & 0xFF);
 400          $t9_10 = $t8_9;
 401          $t10_11 = ($t9_10 + 52);
 402          return $t10_11;
 403          break;
 404        }
 405        case 6: {
 406          $t11_12 = (c >= 48);
 407          if ($t11_12) {
 408            $block = 10; break;
 409          }
 410          else {
 411            $block = 9; break;
 412          }
 413          break;
 414        }
 415        case 7: {
 416          $t12_13 = (c <= 122);
 417          if ($t12_13) {
 418            $block = 2; break;
 419          }
 420          else {
 421            $block = 6; break;
 422          }
 423          break;
 424        }
 425        case 8: {
 426          return 62;
 427          break;
 428        }
 429        case 9: {
 430          $t13_14 = (c === 43);
 431          if ($t13_14) {
 432            $block = 8; break;
 433          }
 434          else {
 435            $block = 12; break;
 436          }
 437          break;
 438        }
 439        case 10: {
 440          $t14_15 = (c <= 57);
 441          if ($t14_15) {
 442            $block = 5; break;
 443          }
 444          else {
 445            $block = 9; break;
 446          }
 447          break;
 448        }
 449        case 11: {
 450          return 63;
 451          break;
 452        }
 453        case 12: {
 454          $t15_16 = (c === 47);
 455          if ($t15_16) {
 456            $block = 11; break;
 457          }
 458          else {
 459            $block = 13; break;
 460          }
 461          break;
 462        }
 463        case 13: {
 464          return -1;
 465          break;
 466        }
 467      }
 468    }
 469  }
 470  
 471  export function Bech32Encode(hrp, data) {
 472    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;
 473    let $block = 0;
 474    while (true) {
 475      switch ($block) {
 476        case 0: {
 477          $t0_1 = bytesToBase32(data);
 478          $t1_2 = bech32Checksum(hrp, $t0_1);
 479          $t2_3 = $rt.builtin.appendSlice($t0_1, $t1_2);
 480          $t3_4 = $rt.builtin.len(hrp);
 481          $t4_5 = ($t3_4 + 1);
 482          $t5_6 = $rt.builtin.len($t2_3);
 483          $t6_7 = ($t4_5 + $t5_6);
 484          $t7_8 = $rt.builtin.makeSlice(0, $t6_7, 0);
 485          $t8_9 = $rt.builtin.appendSlice($t7_8, hrp);
 486          $t9_10 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 487          $t10_11 = $t9_10.$get().addr(0);
 488          $t10_11.$set(49);
 489          $t11_12 = $rt.builtin.sliceSlice($t9_10.$get(), undefined, undefined, undefined);
 490          $t12_13 = $rt.builtin.appendSlice($t8_9, $t11_12);
 491          $t13_14 = $rt.builtin.len($t2_3);
 492          $t14_15 = $t12_13;
 493          $t15_16 = -1;
 494          $block = 1; break;
 495          break;
 496        }
 497        case 1: {
 498          $t16_17 = ($t15_16 + 1);
 499          $t17_18 = ($t16_17 < $t13_14);
 500          if ($t17_18) {
 501            $block = 2; break;
 502          }
 503          else {
 504            $block = 3; break;
 505          }
 506          break;
 507        }
 508        case 2: {
 509          $t18_19 = $t2_3.addr($t16_17);
 510          $t19_20 = $t18_19.$get();
 511          $t20_21 = bech32Charset.$get();
 512          $t21_22 = $t20_21.addr($t19_20);
 513          $t22_23 = $t21_22.$get();
 514          $t23_24 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 515          $t24_25 = $t23_24.$get().addr(0);
 516          $t24_25.$set($t22_23);
 517          $t25_26 = $rt.builtin.sliceSlice($t23_24.$get(), undefined, undefined, undefined);
 518          $t26_27 = $rt.builtin.appendSlice($t14_15, $t25_26);
 519          $t14_15 = $t26_27;
 520          $t15_16 = $t16_17;
 521          $block = 1; break;
 522          break;
 523        }
 524        case 3: {
 525          return $t14_15;
 526          break;
 527        }
 528      }
 529    }
 530  }
 531  
 532  export function Bech32Decode(s) {
 533    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;
 534    let $block = 0;
 535    while (true) {
 536      switch ($block) {
 537        case 0: {
 538          $t0_1 = $rt.builtin.len(s);
 539          $t1_2 = ($t0_1 - 1);
 540          $t2_3 = $t1_2;
 541          $block = 1; break;
 542          break;
 543        }
 544        case 1: {
 545          $t3_4 = ($t2_3 >= 0);
 546          if ($t3_4) {
 547            $block = 2; break;
 548          }
 549          else {
 550            $t7_8 = -1;
 551            $block = 3; break;
 552          }
 553          break;
 554        }
 555        case 2: {
 556          $t4_5 = s.addr($t2_3);
 557          $t5_6 = $t4_5.$get();
 558          $t6_7 = ($t5_6 === 49);
 559          if ($t6_7) {
 560            $block = 4; break;
 561          }
 562          else {
 563            $block = 5; break;
 564          }
 565          break;
 566        }
 567        case 3: {
 568          $t8_9 = ($t7_8 < 1);
 569          if ($t8_9) {
 570            $block = 6; break;
 571          }
 572          else {
 573            $block = 8; break;
 574          }
 575          break;
 576        }
 577        case 4: {
 578          $t7_8 = $t2_3;
 579          $block = 3; break;
 580          break;
 581        }
 582        case 5: {
 583          $t9_10 = ($t2_3 - 1);
 584          $t2_3 = $t9_10;
 585          $block = 1; break;
 586          break;
 587        }
 588        case 6: {
 589          $t10_11 = $rt.builtin.stringToBytes('');
 590          return [$t10_11, null];
 591          break;
 592        }
 593        case 7: {
 594          $t11_12 = $rt.builtin.sliceSlice(s, undefined, $t7_8, undefined);
 595          $t12_13 = ($t7_8 + 1);
 596          $t13_14 = $rt.builtin.sliceSlice(s, $t12_13, undefined, undefined);
 597          $t14_15 = $rt.builtin.len($t13_14);
 598          $t15_16 = $rt.builtin.makeSlice($t14_15, $t14_15, 0);
 599          $t19_20 = 0;
 600          $block = 9; break;
 601          break;
 602        }
 603        case 8: {
 604          $t16_17 = ($t7_8 + 7);
 605          $t17_18 = $rt.builtin.len(s);
 606          $t18_19 = ($t16_17 > $t17_18);
 607          if ($t18_19) {
 608            $block = 6; break;
 609          }
 610          else {
 611            $block = 7; break;
 612          }
 613          break;
 614        }
 615        case 9: {
 616          $t20_21 = $rt.builtin.len($t13_14);
 617          $t21_22 = ($t19_20 < $t20_21);
 618          if ($t21_22) {
 619            $block = 10; break;
 620          }
 621          else {
 622            $block = 11; break;
 623          }
 624          break;
 625        }
 626        case 10: {
 627          $t22_23 = $t13_14.addr($t19_20);
 628          $t23_24 = $t22_23.$get();
 629          $t24_25 = charsetIndex($t23_24);
 630          $t25_26 = ($t24_25 < 0);
 631          if ($t25_26) {
 632            $block = 12; break;
 633          }
 634          else {
 635            $block = 13; break;
 636          }
 637          break;
 638        }
 639        case 11: {
 640          $t26_27 = bech32Verify($t11_12, $t15_16);
 641          if ($t26_27) {
 642            $block = 15; break;
 643          }
 644          else {
 645            $block = 14; break;
 646          }
 647          break;
 648        }
 649        case 12: {
 650          $t27_28 = $rt.builtin.stringToBytes('');
 651          return [$t27_28, null];
 652          break;
 653        }
 654        case 13: {
 655          $t28_29 = ($t24_25 & 0xFF);
 656          $t29_30 = $t15_16.addr($t19_20);
 657          $t29_30.$set($t28_29);
 658          $t30_31 = ($t19_20 + 1);
 659          $t19_20 = $t30_31;
 660          $block = 9; break;
 661          break;
 662        }
 663        case 14: {
 664          $t31_32 = $rt.builtin.stringToBytes('');
 665          return [$t31_32, null];
 666          break;
 667        }
 668        case 15: {
 669          $t32_33 = $rt.builtin.len($t15_16);
 670          $t33_34 = ($t32_33 - 6);
 671          $t34_35 = $rt.builtin.sliceSlice($t15_16, undefined, $t33_34, undefined);
 672          $t35_36 = base32ToBytes($t34_35);
 673          return [$t11_12, $t35_36];
 674          break;
 675        }
 676      }
 677    }
 678  }
 679  
 680  export function EncodeNpub(pubkey) {
 681    let $t0_1, $t1_2;
 682    $t0_1 = $rt.builtin.stringToBytes('npub');
 683    $t1_2 = Bech32Encode($t0_1, pubkey);
 684    return $t1_2;
 685  }
 686  
 687  export function EncodeNsec(seckey) {
 688    let $t0_1, $t1_2;
 689    $t0_1 = $rt.builtin.stringToBytes('nsec');
 690    $t1_2 = Bech32Encode($t0_1, seckey);
 691    return $t1_2;
 692  }
 693  
 694  export function EncodeNote(eventID) {
 695    let $t0_1, $t1_2;
 696    $t0_1 = $rt.builtin.stringToBytes('note');
 697    $t1_2 = Bech32Encode($t0_1, eventID);
 698    return $t1_2;
 699  }
 700  
 701  export function EncodeNevent(id, relays, author) {
 702    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;
 703    let $block = 0;
 704    while (true) {
 705      switch ($block) {
 706        case 0: {
 707          $t0_1 = HexDecode(id);
 708          $t1_2 = $rt.builtin.len($t0_1);
 709          $t2_3 = ($t1_2 === 32);
 710          if ($t2_3) {
 711            $block = 1; break;
 712          }
 713          else {
 714            $t9_10 = null;
 715            $block = 2; break;
 716          }
 717          break;
 718        }
 719        case 1: {
 720          $t3_4 = { $value: $rt.builtin.makeSlice(2, 2, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 721          $t4_5 = $t3_4.$get().addr(0);
 722          $t4_5.$set(0);
 723          $t5_6 = $t3_4.$get().addr(1);
 724          $t5_6.$set(32);
 725          $t6_7 = $rt.builtin.sliceSlice($t3_4.$get(), undefined, undefined, undefined);
 726          $t7_8 = $rt.builtin.appendSlice(null, $t6_7);
 727          $t8_9 = $rt.builtin.appendSlice($t7_8, $t0_1);
 728          $t9_10 = $t8_9;
 729          $block = 2; break;
 730          break;
 731        }
 732        case 2: {
 733          $t10_11 = $rt.builtin.len(relays);
 734          $t11_12 = $t9_10;
 735          $t12_13 = -1;
 736          $block = 3; break;
 737          break;
 738        }
 739        case 3: {
 740          $t13_14 = ($t12_13 + 1);
 741          $t14_15 = ($t13_14 < $t10_11);
 742          if ($t14_15) {
 743            $block = 4; break;
 744          }
 745          else {
 746            $block = 5; break;
 747          }
 748          break;
 749        }
 750        case 4: {
 751          $t15_16 = relays.addr($t13_14);
 752          $t16_17 = $t15_16.$get();
 753          $t17_18 = $rt.builtin.len($t16_17);
 754          $t18_19 = ($t17_18 & 0xFF);
 755          $t19_20 = { $value: $rt.builtin.makeSlice(2, 2, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 756          $t20_21 = $t19_20.$get().addr(0);
 757          $t20_21.$set(1);
 758          $t21_22 = $t19_20.$get().addr(1);
 759          $t21_22.$set($t18_19);
 760          $t22_23 = $rt.builtin.sliceSlice($t19_20.$get(), undefined, undefined, undefined);
 761          $t23_24 = $rt.builtin.appendSlice($t11_12, $t22_23);
 762          $t24_25 = $rt.builtin.appendSlice($t23_24, $t16_17);
 763          $t11_12 = $t24_25;
 764          $t12_13 = $t13_14;
 765          $block = 3; break;
 766          break;
 767        }
 768        case 5: {
 769          $t25_26 = $rt.builtin.len(author);
 770          $t26_27 = ($t25_26 !== 0);
 771          if ($t26_27) {
 772            $block = 6; break;
 773          }
 774          else {
 775            $t30_31 = $t11_12;
 776            $block = 7; break;
 777          }
 778          break;
 779        }
 780        case 6: {
 781          $t27_28 = HexDecode(author);
 782          $t28_29 = $rt.builtin.len($t27_28);
 783          $t29_30 = ($t28_29 === 32);
 784          if ($t29_30) {
 785            $block = 8; break;
 786          }
 787          else {
 788            $t30_31 = $t11_12;
 789            $block = 7; break;
 790          }
 791          break;
 792        }
 793        case 7: {
 794          $t31_32 = $rt.builtin.stringToBytes('nevent');
 795          $t32_33 = Bech32Encode($t31_32, $t30_31);
 796          return $t32_33;
 797          break;
 798        }
 799        case 8: {
 800          $t33_34 = { $value: $rt.builtin.makeSlice(2, 2, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 801          $t34_35 = $t33_34.$get().addr(0);
 802          $t34_35.$set(2);
 803          $t35_36 = $t33_34.$get().addr(1);
 804          $t35_36.$set(32);
 805          $t36_37 = $rt.builtin.sliceSlice($t33_34.$get(), undefined, undefined, undefined);
 806          $t37_38 = $rt.builtin.appendSlice($t11_12, $t36_37);
 807          $t38_39 = $rt.builtin.appendSlice($t37_38, $t27_28);
 808          $t30_31 = $t38_39;
 809          $block = 7; break;
 810          break;
 811        }
 812      }
 813    }
 814  }
 815  
 816  export function DecodeNpub(s) {
 817    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7;
 818    let $block = 0;
 819    while (true) {
 820      switch ($block) {
 821        case 0: {
 822          $t0_1 = Bech32Decode(s);
 823          $t1_2 = $t0_1[0];
 824          $t2_3 = $t0_1[1];
 825          $t3_4 = $rt.builtin.stringToBytes('npub');
 826          $t4_5 = $rt.builtin.stringEqual($t1_2, $t3_4);
 827          if ($t4_5) {
 828            $block = 3; break;
 829          }
 830          else {
 831            $block = 1; break;
 832          }
 833          break;
 834        }
 835        case 1: {
 836          return null;
 837          break;
 838        }
 839        case 2: {
 840          return $t2_3;
 841          break;
 842        }
 843        case 3: {
 844          $t5_6 = $rt.builtin.len($t2_3);
 845          $t6_7 = ($t5_6 !== 32);
 846          if ($t6_7) {
 847            $block = 1; break;
 848          }
 849          else {
 850            $block = 2; break;
 851          }
 852          break;
 853        }
 854      }
 855    }
 856  }
 857  
 858  export function DecodeNsec(s) {
 859    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7;
 860    let $block = 0;
 861    while (true) {
 862      switch ($block) {
 863        case 0: {
 864          $t0_1 = Bech32Decode(s);
 865          $t1_2 = $t0_1[0];
 866          $t2_3 = $t0_1[1];
 867          $t3_4 = $rt.builtin.stringToBytes('nsec');
 868          $t4_5 = $rt.builtin.stringEqual($t1_2, $t3_4);
 869          if ($t4_5) {
 870            $block = 3; break;
 871          }
 872          else {
 873            $block = 1; break;
 874          }
 875          break;
 876        }
 877        case 1: {
 878          return null;
 879          break;
 880        }
 881        case 2: {
 882          return $t2_3;
 883          break;
 884        }
 885        case 3: {
 886          $t5_6 = $rt.builtin.len($t2_3);
 887          $t6_7 = ($t5_6 !== 32);
 888          if ($t6_7) {
 889            $block = 1; break;
 890          }
 891          else {
 892            $block = 2; break;
 893          }
 894          break;
 895        }
 896      }
 897    }
 898  }
 899  
 900  export function DecodeNote(s) {
 901    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7;
 902    let $block = 0;
 903    while (true) {
 904      switch ($block) {
 905        case 0: {
 906          $t0_1 = Bech32Decode(s);
 907          $t1_2 = $t0_1[0];
 908          $t2_3 = $t0_1[1];
 909          $t3_4 = $rt.builtin.stringToBytes('note');
 910          $t4_5 = $rt.builtin.stringEqual($t1_2, $t3_4);
 911          if ($t4_5) {
 912            $block = 3; break;
 913          }
 914          else {
 915            $block = 1; break;
 916          }
 917          break;
 918        }
 919        case 1: {
 920          return null;
 921          break;
 922        }
 923        case 2: {
 924          return $t2_3;
 925          break;
 926        }
 927        case 3: {
 928          $t5_6 = $rt.builtin.len($t2_3);
 929          $t6_7 = ($t5_6 !== 32);
 930          if ($t6_7) {
 931            $block = 1; break;
 932          }
 933          else {
 934            $block = 2; break;
 935          }
 936          break;
 937        }
 938      }
 939    }
 940  }
 941  
 942  export function DecodeNevent(s) {
 943    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;
 944    let $block = 0;
 945    while (true) {
 946      switch ($block) {
 947        case 0: {
 948          $t0_1 = Bech32Decode(s);
 949          $t1_2 = $t0_1[0];
 950          $t2_3 = $t0_1[1];
 951          $t3_4 = $rt.builtin.stringToBytes('nevent');
 952          $t4_5 = $rt.builtin.stringEqual($t1_2, $t3_4);
 953          if ($t4_5) {
 954            $block = 2; break;
 955          }
 956          else {
 957            $block = 1; break;
 958          }
 959          break;
 960        }
 961        case 1: {
 962          return null;
 963          break;
 964        }
 965        case 2: {
 966          $t5_6 = { $value: { ID: null, Relays: null, Author: null }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
 967          $t20_21 = 0;
 968          $block = 5; break;
 969          break;
 970        }
 971        case 3: {
 972          $t6_7 = $t2_3.addr($t20_21);
 973          $t7_8 = $t6_7.$get();
 974          $t8_9 = ($t20_21 + 1);
 975          $t9_10 = $t2_3.addr($t8_9);
 976          $t10_11 = $t9_10.$get();
 977          $t11_12 = $t10_11;
 978          $t12_13 = ($t20_21 + 2);
 979          $t13_14 = ($t12_13 + $t11_12);
 980          $t14_15 = $rt.builtin.len($t2_3);
 981          $t15_16 = ($t13_14 > $t14_15);
 982          if ($t15_16) {
 983            $block = 4; break;
 984          }
 985          else {
 986            $block = 6; break;
 987          }
 988          break;
 989        }
 990        case 4: {
 991          $t16_17 = { $get() { return $t5_6.$get().ID; }, $set(v) { const obj = $t5_6.$get(); obj.ID = v; $t5_6.$set(obj); } };
 992          $t17_18 = $t16_17.$get();
 993          $t18_19 = $rt.builtin.len($t17_18);
 994          $t19_20 = ($t18_19 === 0);
 995          if ($t19_20) {
 996            $block = 14; break;
 997          }
 998          else {
 999            $block = 15; break;
1000          }
1001          break;
1002        }
1003        case 5: {
1004          $t21_22 = ($t20_21 + 2);
1005          $t22_23 = $rt.builtin.len($t2_3);
1006          $t23_24 = ($t21_22 <= $t22_23);
1007          if ($t23_24) {
1008            $block = 3; break;
1009          }
1010          else {
1011            $block = 4; break;
1012          }
1013          break;
1014        }
1015        case 6: {
1016          $t24_25 = ($t12_13 + $t11_12);
1017          $t25_26 = $rt.builtin.sliceSlice($t2_3, $t12_13, $t24_25, undefined);
1018          $t26_27 = ($t12_13 + $t11_12);
1019          $t27_28 = ($t7_8 === 0);
1020          if ($t27_28) {
1021            $block = 7; break;
1022          }
1023          else {
1024            $block = 9; break;
1025          }
1026          break;
1027        }
1028        case 7: {
1029          $t28_29 = ($t11_12 === 32);
1030          if ($t28_29) {
1031            $block = 10; break;
1032          }
1033          else {
1034            $t20_21 = $t26_27;
1035            $block = 5; break;
1036          }
1037          break;
1038        }
1039        case 8: {
1040          $t29_30 = { $get() { return $t5_6.$get().Relays; }, $set(v) { const obj = $t5_6.$get(); obj.Relays = v; $t5_6.$set(obj); } };
1041          $t30_31 = $t29_30.$get();
1042          $t31_32 = { $value: $rt.builtin.makeSlice(1, 1, null), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1043          $t32_33 = $t31_32.$get().addr(0);
1044          $t32_33.$set($t25_26);
1045          $t33_34 = $rt.builtin.sliceSlice($t31_32.$get(), undefined, undefined, undefined);
1046          $t34_35 = $rt.builtin.appendSlice($t30_31, $t33_34);
1047          $t35_36 = { $get() { return $t5_6.$get().Relays; }, $set(v) { const obj = $t5_6.$get(); obj.Relays = v; $t5_6.$set(obj); } };
1048          $t35_36.$set($t34_35);
1049          $t20_21 = $t26_27;
1050          $block = 5; break;
1051          break;
1052        }
1053        case 9: {
1054          $t36_37 = ($t7_8 === 1);
1055          if ($t36_37) {
1056            $block = 8; break;
1057          }
1058          else {
1059            $block = 12; break;
1060          }
1061          break;
1062        }
1063        case 10: {
1064          $t37_38 = HexEncode($t25_26);
1065          $t38_39 = { $get() { return $t5_6.$get().ID; }, $set(v) { const obj = $t5_6.$get(); obj.ID = v; $t5_6.$set(obj); } };
1066          $t38_39.$set($t37_38);
1067          $t20_21 = $t26_27;
1068          $block = 5; break;
1069          break;
1070        }
1071        case 11: {
1072          $t39_40 = ($t11_12 === 32);
1073          if ($t39_40) {
1074            $block = 13; break;
1075          }
1076          else {
1077            $t20_21 = $t26_27;
1078            $block = 5; break;
1079          }
1080          break;
1081        }
1082        case 12: {
1083          $t40_41 = ($t7_8 === 2);
1084          if ($t40_41) {
1085            $block = 11; break;
1086          }
1087          else {
1088            $t20_21 = $t26_27;
1089            $block = 5; break;
1090          }
1091          break;
1092        }
1093        case 13: {
1094          $t41_42 = HexEncode($t25_26);
1095          $t42_43 = { $get() { return $t5_6.$get().Author; }, $set(v) { const obj = $t5_6.$get(); obj.Author = v; $t5_6.$set(obj); } };
1096          $t42_43.$set($t41_42);
1097          $t20_21 = $t26_27;
1098          $block = 5; break;
1099          break;
1100        }
1101        case 14: {
1102          return null;
1103          break;
1104        }
1105        case 15: {
1106          return $t5_6;
1107          break;
1108        }
1109      }
1110    }
1111  }
1112  
1113  export function DecodeNprofile(s) {
1114    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;
1115    let $block = 0;
1116    while (true) {
1117      switch ($block) {
1118        case 0: {
1119          $t0_1 = Bech32Decode(s);
1120          $t1_2 = $t0_1[0];
1121          $t2_3 = $t0_1[1];
1122          $t3_4 = $rt.builtin.stringToBytes('nprofile');
1123          $t4_5 = $rt.builtin.stringEqual($t1_2, $t3_4);
1124          if ($t4_5) {
1125            $block = 2; break;
1126          }
1127          else {
1128            $block = 1; break;
1129          }
1130          break;
1131        }
1132        case 1: {
1133          return null;
1134          break;
1135        }
1136        case 2: {
1137          $t5_6 = { $value: { Pubkey: null, Relays: null }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
1138          $t20_21 = 0;
1139          $block = 5; break;
1140          break;
1141        }
1142        case 3: {
1143          $t6_7 = $t2_3.addr($t20_21);
1144          $t7_8 = $t6_7.$get();
1145          $t8_9 = ($t20_21 + 1);
1146          $t9_10 = $t2_3.addr($t8_9);
1147          $t10_11 = $t9_10.$get();
1148          $t11_12 = $t10_11;
1149          $t12_13 = ($t20_21 + 2);
1150          $t13_14 = ($t12_13 + $t11_12);
1151          $t14_15 = $rt.builtin.len($t2_3);
1152          $t15_16 = ($t13_14 > $t14_15);
1153          if ($t15_16) {
1154            $block = 4; break;
1155          }
1156          else {
1157            $block = 6; break;
1158          }
1159          break;
1160        }
1161        case 4: {
1162          $t16_17 = { $get() { return $t5_6.$get().Pubkey; }, $set(v) { const obj = $t5_6.$get(); obj.Pubkey = v; $t5_6.$set(obj); } };
1163          $t17_18 = $t16_17.$get();
1164          $t18_19 = $rt.builtin.len($t17_18);
1165          $t19_20 = ($t18_19 === 0);
1166          if ($t19_20) {
1167            $block = 11; break;
1168          }
1169          else {
1170            $block = 12; break;
1171          }
1172          break;
1173        }
1174        case 5: {
1175          $t21_22 = ($t20_21 + 2);
1176          $t22_23 = $rt.builtin.len($t2_3);
1177          $t23_24 = ($t21_22 <= $t22_23);
1178          if ($t23_24) {
1179            $block = 3; break;
1180          }
1181          else {
1182            $block = 4; break;
1183          }
1184          break;
1185        }
1186        case 6: {
1187          $t24_25 = ($t12_13 + $t11_12);
1188          $t25_26 = $rt.builtin.sliceSlice($t2_3, $t12_13, $t24_25, undefined);
1189          $t26_27 = ($t12_13 + $t11_12);
1190          $t27_28 = ($t7_8 === 0);
1191          if ($t27_28) {
1192            $block = 7; break;
1193          }
1194          else {
1195            $block = 9; break;
1196          }
1197          break;
1198        }
1199        case 7: {
1200          $t28_29 = ($t11_12 === 32);
1201          if ($t28_29) {
1202            $block = 10; break;
1203          }
1204          else {
1205            $t20_21 = $t26_27;
1206            $block = 5; break;
1207          }
1208          break;
1209        }
1210        case 8: {
1211          $t29_30 = { $get() { return $t5_6.$get().Relays; }, $set(v) { const obj = $t5_6.$get(); obj.Relays = v; $t5_6.$set(obj); } };
1212          $t30_31 = $t29_30.$get();
1213          $t31_32 = { $value: $rt.builtin.makeSlice(1, 1, null), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1214          $t32_33 = $t31_32.$get().addr(0);
1215          $t32_33.$set($t25_26);
1216          $t33_34 = $rt.builtin.sliceSlice($t31_32.$get(), undefined, undefined, undefined);
1217          $t34_35 = $rt.builtin.appendSlice($t30_31, $t33_34);
1218          $t35_36 = { $get() { return $t5_6.$get().Relays; }, $set(v) { const obj = $t5_6.$get(); obj.Relays = v; $t5_6.$set(obj); } };
1219          $t35_36.$set($t34_35);
1220          $t20_21 = $t26_27;
1221          $block = 5; break;
1222          break;
1223        }
1224        case 9: {
1225          $t36_37 = ($t7_8 === 1);
1226          if ($t36_37) {
1227            $block = 8; break;
1228          }
1229          else {
1230            $t20_21 = $t26_27;
1231            $block = 5; break;
1232          }
1233          break;
1234        }
1235        case 10: {
1236          $t37_38 = HexEncode($t25_26);
1237          $t38_39 = { $get() { return $t5_6.$get().Pubkey; }, $set(v) { const obj = $t5_6.$get(); obj.Pubkey = v; $t5_6.$set(obj); } };
1238          $t38_39.$set($t37_38);
1239          $t20_21 = $t26_27;
1240          $block = 5; break;
1241          break;
1242        }
1243        case 11: {
1244          return null;
1245          break;
1246        }
1247        case 12: {
1248          return $t5_6;
1249          break;
1250        }
1251      }
1252    }
1253  }
1254  
1255  export function PubkeyShort(pubkey) {
1256    let $t0_1, $t1_2, $t2_3;
1257    let $block = 0;
1258    while (true) {
1259      switch ($block) {
1260        case 0: {
1261          $t0_1 = $rt.builtin.len(pubkey);
1262          $t1_2 = ($t0_1 >= 8);
1263          if ($t1_2) {
1264            $block = 1; break;
1265          }
1266          else {
1267            $block = 2; break;
1268          }
1269          break;
1270        }
1271        case 1: {
1272          $t2_3 = $rt.builtin.sliceSlice(pubkey, undefined, 8, undefined);
1273          return $t2_3;
1274          break;
1275        }
1276        case 2: {
1277          return pubkey;
1278          break;
1279        }
1280      }
1281    }
1282  }
1283  
1284  export function bytesToBase32(data) {
1285    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;
1286    let $block = 0;
1287    while (true) {
1288      switch ($block) {
1289        case 0: {
1290          $t0_1 = $rt.builtin.len(data);
1291          $t1_2 = null;
1292          $t2_3 = 0;
1293          $t3_4 = 0;
1294          $t4_5 = -1;
1295          $block = 1; break;
1296          break;
1297        }
1298        case 1: {
1299          $t5_6 = ($t4_5 + 1);
1300          $t6_7 = ($t5_6 < $t0_1);
1301          if ($t6_7) {
1302            $block = 2; break;
1303          }
1304          else {
1305            $block = 3; break;
1306          }
1307          break;
1308        }
1309        case 2: {
1310          $t7_8 = data.addr($t5_6);
1311          $t8_9 = $t7_8.$get();
1312          $t9_10 = ($t2_3 << 8);
1313          $t10_11 = $t8_9;
1314          $t11_12 = ($t9_10 + $t10_11);
1315          $t12_13 = ($t3_4 + 8);
1316          $t26_27 = $t1_2;
1317          $t27_28 = $t12_13;
1318          $block = 6; break;
1319          break;
1320        }
1321        case 3: {
1322          $t13_14 = ($t3_4 > 0);
1323          if ($t13_14) {
1324            $block = 7; break;
1325          }
1326          else {
1327            $t37_38 = $t1_2;
1328            $block = 8; break;
1329          }
1330          break;
1331        }
1332        case 4: {
1333          $t14_15 = ($t27_28 - 5);
1334          $t15_16 = ($t11_12 >> $t14_15);
1335          $t16_17 = ($t15_16 & 31);
1336          $t17_18 = ($t16_17 & 0xFF);
1337          $t18_19 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1338          $t19_20 = $t18_19.$get().addr(0);
1339          $t19_20.$set($t17_18);
1340          $t20_21 = $rt.builtin.sliceSlice($t18_19.$get(), undefined, undefined, undefined);
1341          $t21_22 = $rt.builtin.appendSlice($t26_27, $t20_21);
1342          $t26_27 = $t21_22;
1343          $t27_28 = $t14_15;
1344          $block = 6; break;
1345          break;
1346        }
1347        case 5: {
1348          $t22_23 = $t27_28;
1349          $t23_24 = (1 << $t22_23);
1350          $t24_25 = ($t23_24 - 1);
1351          $t25_26 = ($t11_12 & $t24_25);
1352          $t1_2 = $t26_27;
1353          $t2_3 = $t25_26;
1354          $t3_4 = $t27_28;
1355          $t4_5 = $t5_6;
1356          $block = 1; break;
1357          break;
1358        }
1359        case 6: {
1360          $t28_29 = ($t27_28 >= 5);
1361          if ($t28_29) {
1362            $block = 4; break;
1363          }
1364          else {
1365            $block = 5; break;
1366          }
1367          break;
1368        }
1369        case 7: {
1370          $t29_30 = (5 - $t3_4);
1371          $t30_31 = ($t2_3 << $t29_30);
1372          $t31_32 = ($t30_31 & 31);
1373          $t32_33 = ($t31_32 & 0xFF);
1374          $t33_34 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1375          $t34_35 = $t33_34.$get().addr(0);
1376          $t34_35.$set($t32_33);
1377          $t35_36 = $rt.builtin.sliceSlice($t33_34.$get(), undefined, undefined, undefined);
1378          $t36_37 = $rt.builtin.appendSlice($t1_2, $t35_36);
1379          $t37_38 = $t36_37;
1380          $block = 8; break;
1381          break;
1382        }
1383        case 8: {
1384          return $t37_38;
1385          break;
1386        }
1387      }
1388    }
1389  }
1390  
1391  export function base32ToBytes(data) {
1392    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;
1393    let $block = 0;
1394    while (true) {
1395      switch ($block) {
1396        case 0: {
1397          $t0_1 = $rt.builtin.len(data);
1398          $t1_2 = null;
1399          $t2_3 = 0;
1400          $t3_4 = 0;
1401          $t4_5 = -1;
1402          $block = 1; break;
1403          break;
1404        }
1405        case 1: {
1406          $t5_6 = ($t4_5 + 1);
1407          $t6_7 = ($t5_6 < $t0_1);
1408          if ($t6_7) {
1409            $block = 2; break;
1410          }
1411          else {
1412            $block = 3; break;
1413          }
1414          break;
1415        }
1416        case 2: {
1417          $t7_8 = data.addr($t5_6);
1418          $t8_9 = $t7_8.$get();
1419          $t9_10 = ($t2_3 << 5);
1420          $t10_11 = $t8_9;
1421          $t11_12 = ($t9_10 + $t10_11);
1422          $t12_13 = ($t3_4 + 5);
1423          $t25_26 = $t1_2;
1424          $t26_27 = $t12_13;
1425          $block = 6; break;
1426          break;
1427        }
1428        case 3: {
1429          return $t1_2;
1430          break;
1431        }
1432        case 4: {
1433          $t13_14 = ($t26_27 - 8);
1434          $t14_15 = ($t11_12 >> $t13_14);
1435          $t15_16 = ($t14_15 & 255);
1436          $t16_17 = ($t15_16 & 0xFF);
1437          $t17_18 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1438          $t18_19 = $t17_18.$get().addr(0);
1439          $t18_19.$set($t16_17);
1440          $t19_20 = $rt.builtin.sliceSlice($t17_18.$get(), undefined, undefined, undefined);
1441          $t20_21 = $rt.builtin.appendSlice($t25_26, $t19_20);
1442          $t25_26 = $t20_21;
1443          $t26_27 = $t13_14;
1444          $block = 6; break;
1445          break;
1446        }
1447        case 5: {
1448          $t21_22 = $t26_27;
1449          $t22_23 = (1 << $t21_22);
1450          $t23_24 = ($t22_23 - 1);
1451          $t24_25 = ($t11_12 & $t23_24);
1452          $t1_2 = $t25_26;
1453          $t2_3 = $t24_25;
1454          $t3_4 = $t26_27;
1455          $t4_5 = $t5_6;
1456          $block = 1; break;
1457          break;
1458        }
1459        case 6: {
1460          $t27_28 = ($t26_27 >= 8);
1461          if ($t27_28) {
1462            $block = 4; break;
1463          }
1464          else {
1465            $block = 5; break;
1466          }
1467          break;
1468        }
1469      }
1470    }
1471  }
1472  
1473  export function bech32Polymod(values) {
1474    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;
1475    let $block = 0;
1476    while (true) {
1477      switch ($block) {
1478        case 0: {
1479          $t0_1 = { $value: $rt.builtin.makeSlice(5, 5, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1480          $t1_2 = $t0_1.$get().addr(0);
1481          $t2_3 = $t0_1.$get().addr(1);
1482          $t3_4 = $t0_1.$get().addr(2);
1483          $t4_5 = $t0_1.$get().addr(3);
1484          $t5_6 = $t0_1.$get().addr(4);
1485          $t1_2.$set(996825010);
1486          $t2_3.$set(642813549);
1487          $t3_4.$set(513874426);
1488          $t4_5.$set(1027748829);
1489          $t5_6.$set(705979059);
1490          $t6_7 = $rt.builtin.len(values);
1491          $t7_8 = 1;
1492          $t8_9 = -1;
1493          $block = 1; break;
1494          break;
1495        }
1496        case 1: {
1497          $t9_10 = ($t8_9 + 1);
1498          $t10_11 = ($t9_10 < $t6_7);
1499          if ($t10_11) {
1500            $block = 2; break;
1501          }
1502          else {
1503            $block = 3; break;
1504          }
1505          break;
1506        }
1507        case 2: {
1508          $t11_12 = values.addr($t9_10);
1509          $t12_13 = $t11_12.$get();
1510          $t13_14 = ($t7_8 >>> 25);
1511          $t14_15 = (($t7_8 & 33554431) >>> 0);
1512          $t15_16 = (($t14_15 << 5) >>> 0);
1513          $t16_17 = ($t12_13 >>> 0);
1514          $t17_18 = (($t15_16 ^ $t16_17) >>> 0);
1515          $t18_19 = $t17_18;
1516          $t19_20 = 0;
1517          $block = 4; break;
1518          break;
1519        }
1520        case 3: {
1521          return $t7_8;
1522          break;
1523        }
1524        case 4: {
1525          $t20_21 = ($t19_20 < 5);
1526          if ($t20_21) {
1527            $block = 5; break;
1528          }
1529          else {
1530            $t7_8 = $t18_19;
1531            $t8_9 = $t9_10;
1532            $block = 1; break;
1533          }
1534          break;
1535        }
1536        case 5: {
1537          $t21_22 = $t19_20;
1538          $t22_23 = ($t13_14 >>> $t21_22);
1539          $t23_24 = (($t22_23 & 1) >>> 0);
1540          $t24_25 = ($t23_24 === 1);
1541          if ($t24_25) {
1542            $block = 6; break;
1543          }
1544          else {
1545            $t28_29 = $t18_19;
1546            $block = 7; break;
1547          }
1548          break;
1549        }
1550        case 6: {
1551          $t25_26 = $t0_1.$get().addr($t19_20);
1552          $t26_27 = $t25_26.$get();
1553          $t27_28 = (($t18_19 ^ $t26_27) >>> 0);
1554          $t28_29 = $t27_28;
1555          $block = 7; break;
1556          break;
1557        }
1558        case 7: {
1559          $t29_30 = ($t19_20 + 1);
1560          $t18_19 = $t28_29;
1561          $t19_20 = $t29_30;
1562          $block = 4; break;
1563          break;
1564        }
1565      }
1566    }
1567  }
1568  
1569  export function bech32HRPExpand(hrp) {
1570    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;
1571    let $block = 0;
1572    while (true) {
1573      switch ($block) {
1574        case 0: {
1575          $t0_1 = $rt.builtin.len(hrp);
1576          $t1_2 = ($t0_1 * 2);
1577          $t2_3 = ($t1_2 + 1);
1578          $t3_4 = $rt.builtin.makeSlice(0, $t2_3, 0);
1579          $t4_5 = $t3_4;
1580          $t5_6 = 0;
1581          $block = 1; break;
1582          break;
1583        }
1584        case 1: {
1585          $t6_7 = $rt.builtin.len(hrp);
1586          $t7_8 = ($t5_6 < $t6_7);
1587          if ($t7_8) {
1588            $block = 2; break;
1589          }
1590          else {
1591            $block = 3; break;
1592          }
1593          break;
1594        }
1595        case 2: {
1596          $t8_9 = hrp.addr($t5_6);
1597          $t9_10 = $t8_9.$get();
1598          $t10_11 = (($t9_10 & 0xFF) >> 5);
1599          $t11_12 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1600          $t12_13 = $t11_12.$get().addr(0);
1601          $t12_13.$set($t10_11);
1602          $t13_14 = $rt.builtin.sliceSlice($t11_12.$get(), undefined, undefined, undefined);
1603          $t14_15 = $rt.builtin.appendSlice($t4_5, $t13_14);
1604          $t15_16 = ($t5_6 + 1);
1605          $t4_5 = $t14_15;
1606          $t5_6 = $t15_16;
1607          $block = 1; break;
1608          break;
1609        }
1610        case 3: {
1611          $t16_17 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1612          $t17_18 = $t16_17.$get().addr(0);
1613          $t17_18.$set(0);
1614          $t18_19 = $rt.builtin.sliceSlice($t16_17.$get(), undefined, undefined, undefined);
1615          $t19_20 = $rt.builtin.appendSlice($t4_5, $t18_19);
1616          $t20_21 = $t19_20;
1617          $t21_22 = 0;
1618          $block = 4; break;
1619          break;
1620        }
1621        case 4: {
1622          $t22_23 = $rt.builtin.len(hrp);
1623          $t23_24 = ($t21_22 < $t22_23);
1624          if ($t23_24) {
1625            $block = 5; break;
1626          }
1627          else {
1628            $block = 6; break;
1629          }
1630          break;
1631        }
1632        case 5: {
1633          $t24_25 = hrp.addr($t21_22);
1634          $t25_26 = $t24_25.$get();
1635          $t26_27 = ($t25_26 & 31);
1636          $t27_28 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1637          $t28_29 = $t27_28.$get().addr(0);
1638          $t28_29.$set($t26_27);
1639          $t29_30 = $rt.builtin.sliceSlice($t27_28.$get(), undefined, undefined, undefined);
1640          $t30_31 = $rt.builtin.appendSlice($t20_21, $t29_30);
1641          $t31_32 = ($t21_22 + 1);
1642          $t20_21 = $t30_31;
1643          $t21_22 = $t31_32;
1644          $block = 4; break;
1645          break;
1646        }
1647        case 6: {
1648          return $t20_21;
1649          break;
1650        }
1651      }
1652    }
1653  }
1654  
1655  export function bech32Checksum(hrp, data) {
1656    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;
1657    let $block = 0;
1658    while (true) {
1659      switch ($block) {
1660        case 0: {
1661          $t0_1 = bech32HRPExpand(hrp);
1662          $t1_2 = $rt.builtin.appendSlice($t0_1, data);
1663          $t2_3 = { $value: $rt.builtin.makeSlice(6, 6, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1664          $t3_4 = $t2_3.$get().addr(0);
1665          $t3_4.$set(0);
1666          $t4_5 = $t2_3.$get().addr(1);
1667          $t4_5.$set(0);
1668          $t5_6 = $t2_3.$get().addr(2);
1669          $t5_6.$set(0);
1670          $t6_7 = $t2_3.$get().addr(3);
1671          $t6_7.$set(0);
1672          $t7_8 = $t2_3.$get().addr(4);
1673          $t7_8.$set(0);
1674          $t8_9 = $t2_3.$get().addr(5);
1675          $t8_9.$set(0);
1676          $t9_10 = $rt.builtin.sliceSlice($t2_3.$get(), undefined, undefined, undefined);
1677          $t10_11 = $rt.builtin.appendSlice($t1_2, $t9_10);
1678          $t11_12 = bech32Polymod($t10_11);
1679          $t12_13 = (($t11_12 ^ 1) >>> 0);
1680          $t13_14 = { $value: $rt.builtin.makeSlice(6, 6, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1681          $t14_15 = $rt.builtin.sliceSlice($t13_14.$get(), undefined, 6, undefined);
1682          $t15_16 = 0;
1683          $block = 1; break;
1684          break;
1685        }
1686        case 1: {
1687          $t16_17 = ($t15_16 < 6);
1688          if ($t16_17) {
1689            $block = 2; break;
1690          }
1691          else {
1692            $block = 3; break;
1693          }
1694          break;
1695        }
1696        case 2: {
1697          $t17_18 = $t15_16;
1698          $t18_19 = ((5 - $t17_18) >>> 0);
1699          $t19_20 = (Math.imul(5, $t18_19) >>> 0);
1700          $t20_21 = ($t12_13 >>> $t19_20);
1701          $t21_22 = (($t20_21 & 31) >>> 0);
1702          $t22_23 = ($t21_22 & 0xFF);
1703          $t23_24 = $t14_15.addr($t15_16);
1704          $t23_24.$set($t22_23);
1705          $t24_25 = ($t15_16 + 1);
1706          $t15_16 = $t24_25;
1707          $block = 1; break;
1708          break;
1709        }
1710        case 3: {
1711          return $t14_15;
1712          break;
1713        }
1714      }
1715    }
1716  }
1717  
1718  export function bech32Verify(hrp, data) {
1719    let $t0_1, $t1_2, $t2_3, $t3_4;
1720    $t0_1 = bech32HRPExpand(hrp);
1721    $t1_2 = $rt.builtin.appendSlice($t0_1, data);
1722    $t2_3 = bech32Polymod($t1_2);
1723    $t3_4 = ($t2_3 === 1);
1724    return $t3_4;
1725  }
1726  
1727  export function charsetIndex(c) {
1728    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9;
1729    let $block = 0;
1730    while (true) {
1731      switch ($block) {
1732        case 0: {
1733          $t0_1 = 0;
1734          $block = 1; break;
1735          break;
1736        }
1737        case 1: {
1738          $t1_2 = bech32Charset.$get();
1739          $t2_3 = $rt.builtin.len($t1_2);
1740          $t3_4 = ($t0_1 < $t2_3);
1741          if ($t3_4) {
1742            $block = 2; break;
1743          }
1744          else {
1745            $block = 3; break;
1746          }
1747          break;
1748        }
1749        case 2: {
1750          $t4_5 = bech32Charset.$get();
1751          $t5_6 = $t4_5.addr($t0_1);
1752          $t6_7 = $t5_6.$get();
1753          $t7_8 = ($t6_7 === c);
1754          if ($t7_8) {
1755            $block = 4; break;
1756          }
1757          else {
1758            $block = 5; break;
1759          }
1760          break;
1761        }
1762        case 3: {
1763          return -1;
1764          break;
1765        }
1766        case 4: {
1767          return $t0_1;
1768          break;
1769        }
1770        case 5: {
1771          $t8_9 = ($t0_1 + 1);
1772          $t0_1 = $t8_9;
1773          $block = 1; break;
1774          break;
1775        }
1776      }
1777    }
1778  }
1779  
1780  export function HexEncode(b) {
1781    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;
1782    let $block = 0;
1783    while (true) {
1784      switch ($block) {
1785        case 0: {
1786          $t0_1 = $rt.builtin.len(b);
1787          $t1_2 = ($t0_1 * 2);
1788          $t2_3 = $rt.builtin.makeSlice($t1_2, $t1_2, 0);
1789          $t3_4 = $rt.builtin.len(b);
1790          $t4_5 = -1;
1791          $block = 1; break;
1792          break;
1793        }
1794        case 1: {
1795          $t5_6 = ($t4_5 + 1);
1796          $t6_7 = ($t5_6 < $t3_4);
1797          if ($t6_7) {
1798            $block = 2; break;
1799          }
1800          else {
1801            $block = 3; break;
1802          }
1803          break;
1804        }
1805        case 2: {
1806          $t7_8 = b.addr($t5_6);
1807          $t8_9 = $t7_8.$get();
1808          $t9_10 = ($t5_6 * 2);
1809          $t10_11 = hexChars.$get();
1810          $t11_12 = (($t8_9 & 0xFF) >> 4);
1811          $t12_13 = $t10_11.addr($t11_12);
1812          $t13_14 = $t12_13.$get();
1813          $t14_15 = $t2_3.addr($t9_10);
1814          $t14_15.$set($t13_14);
1815          $t15_16 = ($t5_6 * 2);
1816          $t16_17 = ($t15_16 + 1);
1817          $t17_18 = hexChars.$get();
1818          $t18_19 = ($t8_9 & 15);
1819          $t19_20 = $t17_18.addr($t18_19);
1820          $t20_21 = $t19_20.$get();
1821          $t21_22 = $t2_3.addr($t16_17);
1822          $t21_22.$set($t20_21);
1823          $t4_5 = $t5_6;
1824          $block = 1; break;
1825          break;
1826        }
1827        case 3: {
1828          return $t2_3;
1829          break;
1830        }
1831      }
1832    }
1833  }
1834  
1835  export function HexDecode(s) {
1836    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;
1837    let $block = 0;
1838    while (true) {
1839      switch ($block) {
1840        case 0: {
1841          $t0_1 = $rt.builtin.len(s);
1842          $t1_2 = ($t0_1 % 2);
1843          $t2_3 = ($t1_2 !== 0);
1844          if ($t2_3) {
1845            $block = 1; break;
1846          }
1847          else {
1848            $block = 2; break;
1849          }
1850          break;
1851        }
1852        case 1: {
1853          return null;
1854          break;
1855        }
1856        case 2: {
1857          $t3_4 = $rt.builtin.len(s);
1858          $t4_5 = Math.trunc($t3_4 / 2);
1859          $t5_6 = $rt.builtin.makeSlice($t4_5, $t4_5, 0);
1860          $t6_7 = 0;
1861          $block = 3; break;
1862          break;
1863        }
1864        case 3: {
1865          $t7_8 = $rt.builtin.len(s);
1866          $t8_9 = ($t6_7 < $t7_8);
1867          if ($t8_9) {
1868            $block = 4; break;
1869          }
1870          else {
1871            $block = 5; break;
1872          }
1873          break;
1874        }
1875        case 4: {
1876          $t9_10 = s.addr($t6_7);
1877          $t10_11 = $t9_10.$get();
1878          $t11_12 = hexVal($t10_11);
1879          $t12_13 = ($t6_7 + 1);
1880          $t13_14 = s.addr($t12_13);
1881          $t14_15 = $t13_14.$get();
1882          $t15_16 = hexVal($t14_15);
1883          $t16_17 = ($t11_12 < 0);
1884          if ($t16_17) {
1885            $block = 6; break;
1886          }
1887          else {
1888            $block = 8; break;
1889          }
1890          break;
1891        }
1892        case 5: {
1893          return $t5_6;
1894          break;
1895        }
1896        case 6: {
1897          return null;
1898          break;
1899        }
1900        case 7: {
1901          $t17_18 = Math.trunc($t6_7 / 2);
1902          $t18_19 = ($t11_12 << 4);
1903          $t19_20 = ($t18_19 + $t15_16);
1904          $t20_21 = ($t19_20 & 0xFF);
1905          $t21_22 = $t5_6.addr($t17_18);
1906          $t21_22.$set($t20_21);
1907          $t22_23 = ($t6_7 + 2);
1908          $t6_7 = $t22_23;
1909          $block = 3; break;
1910          break;
1911        }
1912        case 8: {
1913          $t23_24 = ($t15_16 < 0);
1914          if ($t23_24) {
1915            $block = 6; break;
1916          }
1917          else {
1918            $block = 7; break;
1919          }
1920          break;
1921        }
1922      }
1923    }
1924  }
1925  
1926  export function HexDecode32(s) {
1927    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;
1928    let $block = 0;
1929    while (true) {
1930      switch ($block) {
1931        case 0: {
1932          $t0_1 = { $value: $rt.builtin.makeSlice(32, 32, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1933          $t1_2 = $rt.builtin.len(s);
1934          $t2_3 = ($t1_2 !== 64);
1935          if ($t2_3) {
1936            $block = 1; break;
1937          }
1938          else {
1939            $block = 2; break;
1940          }
1941          break;
1942        }
1943        case 1: {
1944          $t3_4 = $t0_1.$get();
1945          $t0_1.$set($rt.builtin.cloneValue($t3_4));
1946          $t4_5 = $t0_1.$get();
1947          return [$t4_5, false];
1948          break;
1949        }
1950        case 2: {
1951          $t5_6 = 0;
1952          $block = 3; break;
1953          break;
1954        }
1955        case 3: {
1956          $t6_7 = ($t5_6 < 32);
1957          if ($t6_7) {
1958            $block = 4; break;
1959          }
1960          else {
1961            $block = 5; break;
1962          }
1963          break;
1964        }
1965        case 4: {
1966          $t7_8 = ($t5_6 * 2);
1967          $t8_9 = s.addr($t7_8);
1968          $t9_10 = $t8_9.$get();
1969          $t10_11 = hexVal($t9_10);
1970          $t11_12 = ($t5_6 * 2);
1971          $t12_13 = ($t11_12 + 1);
1972          $t13_14 = s.addr($t12_13);
1973          $t14_15 = $t13_14.$get();
1974          $t15_16 = hexVal($t14_15);
1975          $t16_17 = ($t10_11 < 0);
1976          if ($t16_17) {
1977            $block = 6; break;
1978          }
1979          else {
1980            $block = 8; break;
1981          }
1982          break;
1983        }
1984        case 5: {
1985          $t17_18 = $t0_1.$get();
1986          $t0_1.$set($rt.builtin.cloneValue($t17_18));
1987          $t18_19 = $t0_1.$get();
1988          return [$t18_19, true];
1989          break;
1990        }
1991        case 6: {
1992          $t19_20 = $t0_1.$get();
1993          $t0_1.$set($rt.builtin.cloneValue($t19_20));
1994          $t20_21 = $t0_1.$get();
1995          return [$t20_21, false];
1996          break;
1997        }
1998        case 7: {
1999          $t21_22 = ($t10_11 << 4);
2000          $t22_23 = ($t21_22 + $t15_16);
2001          $t23_24 = ($t22_23 & 0xFF);
2002          $t24_25 = $t0_1.$get().addr($t5_6);
2003          $t24_25.$set($t23_24);
2004          $t25_26 = ($t5_6 + 1);
2005          $t5_6 = $t25_26;
2006          $block = 3; break;
2007          break;
2008        }
2009        case 8: {
2010          $t26_27 = ($t15_16 < 0);
2011          if ($t26_27) {
2012            $block = 6; break;
2013          }
2014          else {
2015            $block = 7; break;
2016          }
2017          break;
2018        }
2019      }
2020    }
2021  }
2022  
2023  export function hexVal(c) {
2024    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;
2025    let $block = 0;
2026    while (true) {
2027      switch ($block) {
2028        case 0: {
2029          $t0_1 = (c >= 48);
2030          if ($t0_1) {
2031            $block = 4; break;
2032          }
2033          else {
2034            $block = 3; break;
2035          }
2036          break;
2037        }
2038        case 1: {
2039          $t1_2 = ((c - 48) & 0xFF);
2040          $t2_3 = $t1_2;
2041          return $t2_3;
2042          break;
2043        }
2044        case 2: {
2045          $t3_4 = ((c - 97) & 0xFF);
2046          $t4_5 = (($t3_4 + 10) & 0xFF);
2047          $t5_6 = $t4_5;
2048          return $t5_6;
2049          break;
2050        }
2051        case 3: {
2052          $t6_7 = (c >= 97);
2053          if ($t6_7) {
2054            $block = 7; break;
2055          }
2056          else {
2057            $block = 6; break;
2058          }
2059          break;
2060        }
2061        case 4: {
2062          $t7_8 = (c <= 57);
2063          if ($t7_8) {
2064            $block = 1; break;
2065          }
2066          else {
2067            $block = 3; break;
2068          }
2069          break;
2070        }
2071        case 5: {
2072          $t8_9 = ((c - 65) & 0xFF);
2073          $t9_10 = (($t8_9 + 10) & 0xFF);
2074          $t10_11 = $t9_10;
2075          return $t10_11;
2076          break;
2077        }
2078        case 6: {
2079          $t11_12 = (c >= 65);
2080          if ($t11_12) {
2081            $block = 9; break;
2082          }
2083          else {
2084            $block = 8; break;
2085          }
2086          break;
2087        }
2088        case 7: {
2089          $t12_13 = (c <= 102);
2090          if ($t12_13) {
2091            $block = 2; break;
2092          }
2093          else {
2094            $block = 6; break;
2095          }
2096          break;
2097        }
2098        case 8: {
2099          return -1;
2100          break;
2101        }
2102        case 9: {
2103          $t13_14 = (c <= 70);
2104          if ($t13_14) {
2105            $block = 5; break;
2106          }
2107          else {
2108            $block = 8; break;
2109          }
2110          break;
2111        }
2112      }
2113    }
2114  }
2115  
2116  export function JsonString(s) {
2117    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;
2118    let $block = 0;
2119    while (true) {
2120      switch ($block) {
2121        case 0: {
2122          $t0_1 = $rt.builtin.stringToBytes('"');
2123          $t1_2 = $t0_1;
2124          $t2_3 = 0;
2125          $t3_4 = 0;
2126          $block = 1; break;
2127          break;
2128        }
2129        case 1: {
2130          $t4_5 = $rt.builtin.len(s);
2131          $t5_6 = ($t3_4 < $t4_5);
2132          if ($t5_6) {
2133            $block = 2; break;
2134          }
2135          else {
2136            $block = 4; break;
2137          }
2138          break;
2139        }
2140        case 2: {
2141          $t6_7 = s.addr($t3_4);
2142          $t7_8 = $t6_7.$get();
2143          $t8_9 = ($t7_8 === 34);
2144          if ($t8_9) {
2145            $block = 6; break;
2146          }
2147          else {
2148            $block = 8; break;
2149          }
2150          break;
2151        }
2152        case 3: {
2153          $t11_12 = ($t3_4 + 1);
2154          $t1_2 = $t9_10;
2155          $t2_3 = $t10_11;
2156          $t3_4 = $t11_12;
2157          $block = 1; break;
2158          break;
2159        }
2160        case 4: {
2161          $t12_13 = $rt.builtin.sliceSlice(s, $t2_3, undefined, undefined);
2162          $t13_14 = $rt.builtin.stringConcat($t1_2, $t12_13);
2163          $t14_15 = $rt.builtin.stringToBytes('"');
2164          $t15_16 = $rt.builtin.stringConcat($t13_14, $t14_15);
2165          return $t15_16;
2166          break;
2167        }
2168        case 5: {
2169          $t17_18 = $rt.builtin.sliceSlice(s, $t2_3, $t3_4, undefined);
2170          $t18_19 = $rt.builtin.stringConcat($t17_18, $t16_17);
2171          $t19_20 = $rt.builtin.stringConcat($t1_2, $t18_19);
2172          $t20_21 = ($t3_4 + 1);
2173          $t9_10 = $t19_20;
2174          $t10_11 = $t20_21;
2175          $block = 3; break;
2176          break;
2177        }
2178        case 6: {
2179          $t21_22 = $rt.builtin.stringToBytes('\\"');
2180          $t16_17 = $t21_22;
2181          $block = 5; break;
2182          break;
2183        }
2184        case 7: {
2185          $t22_23 = $rt.builtin.stringToBytes('\\\\');
2186          $t16_17 = $t22_23;
2187          $block = 5; break;
2188          break;
2189        }
2190        case 8: {
2191          $t23_24 = ($t7_8 === 92);
2192          if ($t23_24) {
2193            $block = 7; break;
2194          }
2195          else {
2196            $block = 10; break;
2197          }
2198          break;
2199        }
2200        case 9: {
2201          $t24_25 = $rt.builtin.stringToBytes('\\n');
2202          $t16_17 = $t24_25;
2203          $block = 5; break;
2204          break;
2205        }
2206        case 10: {
2207          $t25_26 = ($t7_8 === 10);
2208          if ($t25_26) {
2209            $block = 9; break;
2210          }
2211          else {
2212            $block = 12; break;
2213          }
2214          break;
2215        }
2216        case 11: {
2217          $t26_27 = $rt.builtin.stringToBytes('\\r');
2218          $t16_17 = $t26_27;
2219          $block = 5; break;
2220          break;
2221        }
2222        case 12: {
2223          $t27_28 = ($t7_8 === 13);
2224          if ($t27_28) {
2225            $block = 11; break;
2226          }
2227          else {
2228            $block = 14; break;
2229          }
2230          break;
2231        }
2232        case 13: {
2233          $t28_29 = $rt.builtin.stringToBytes('\\t');
2234          $t16_17 = $t28_29;
2235          $block = 5; break;
2236          break;
2237        }
2238        case 14: {
2239          $t29_30 = ($t7_8 === 9);
2240          if ($t29_30) {
2241            $block = 13; break;
2242          }
2243          else {
2244            $block = 16; break;
2245          }
2246          break;
2247        }
2248        case 15: {
2249          $t30_31 = $rt.builtin.stringToBytes('\\b');
2250          $t16_17 = $t30_31;
2251          $block = 5; break;
2252          break;
2253        }
2254        case 16: {
2255          $t31_32 = ($t7_8 === 8);
2256          if ($t31_32) {
2257            $block = 15; break;
2258          }
2259          else {
2260            $block = 18; break;
2261          }
2262          break;
2263        }
2264        case 17: {
2265          $t32_33 = $rt.builtin.stringToBytes('\\f');
2266          $t16_17 = $t32_33;
2267          $block = 5; break;
2268          break;
2269        }
2270        case 18: {
2271          $t33_34 = ($t7_8 === 12);
2272          if ($t33_34) {
2273            $block = 17; break;
2274          }
2275          else {
2276            $block = 19; break;
2277          }
2278          break;
2279        }
2280        case 19: {
2281          $t34_35 = ($t7_8 < 32);
2282          if ($t34_35) {
2283            $block = 20; break;
2284          }
2285          else {
2286            $t9_10 = $t1_2;
2287            $t10_11 = $t2_3;
2288            $block = 3; break;
2289          }
2290          break;
2291        }
2292        case 20: {
2293          $t35_36 = $rt.builtin.stringToBytes('\\u00');
2294          $t36_37 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2295          $t37_38 = $t36_37.$get().addr(0);
2296          $t38_39 = hexChars.$get();
2297          $t39_40 = (($t7_8 & 0xFF) >> 4);
2298          $t40_41 = $t38_39.addr($t39_40);
2299          $t41_42 = $t40_41.$get();
2300          $t37_38.$set($t41_42);
2301          $t42_43 = $rt.builtin.sliceSlice($t36_37.$get(), undefined, undefined, undefined);
2302          $t43_44 = $rt.builtin.stringConcat($t35_36, $t42_43);
2303          $t44_45 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2304          $t45_46 = $t44_45.$get().addr(0);
2305          $t46_47 = hexChars.$get();
2306          $t47_48 = ($t7_8 & 15);
2307          $t48_49 = $t46_47.addr($t47_48);
2308          $t49_50 = $t48_49.$get();
2309          $t45_46.$set($t49_50);
2310          $t50_51 = $rt.builtin.sliceSlice($t44_45.$get(), undefined, undefined, undefined);
2311          $t51_52 = $rt.builtin.stringConcat($t43_44, $t50_51);
2312          $t16_17 = $t51_52;
2313          $block = 5; break;
2314          break;
2315        }
2316      }
2317    }
2318  }
2319  
2320  export function JsonGetString(s, key) {
2321    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46, $t46_47, $t47_48, $t48_49, $t49_50, $t50_51, $t51_52, $t52_53, $t53_54, $t54_55, $t55_56, $t56_57, $t57_58, $t58_59, $t59_60, $t60_61, $t61_62, $t62_63, $t63_64, $t64_65, $t65_66, $t66_67, $t67_68, $t68_69, $t69_70, $t70_71, $t71_72, $t72_73, $t73_74, $t74_75, $t75_76, $t76_77, $t77_78, $t78_79, $t79_80, $t80_81, $t81_82, $t82_83, $t83_84, $t84_85, $t85_86, $t86_87, $t87_88, $t88_89, $t89_90, $t90_91, $t91_92, $t92_93, $t93_94, $t94_95, $t95_96, $t96_97, $t97_98, $t98_99, $t99_100, $t100_101, $t101_102;
2322    let $block = 0;
2323    while (true) {
2324      switch ($block) {
2325        case 0: {
2326          $t0_1 = $rt.builtin.stringToBytes('"');
2327          $t1_2 = $rt.builtin.stringConcat($t0_1, key);
2328          $t2_3 = $rt.builtin.stringToBytes('"');
2329          $t3_4 = $rt.builtin.stringConcat($t1_2, $t2_3);
2330          $t4_5 = $rt.builtin.len($t3_4);
2331          $t5_6 = 0;
2332          $block = 1; break;
2333          break;
2334        }
2335        case 1: {
2336          $t6_7 = $rt.builtin.len(s);
2337          $t7_8 = ($t6_7 - $t4_5);
2338          $t8_9 = ($t5_6 <= $t7_8);
2339          if ($t8_9) {
2340            $block = 2; break;
2341          }
2342          else {
2343            $block = 4; break;
2344          }
2345          break;
2346        }
2347        case 2: {
2348          $t9_10 = ($t5_6 + $t4_5);
2349          $t10_11 = $rt.builtin.sliceSlice(s, $t5_6, $t9_10, undefined);
2350          $t11_12 = $rt.builtin.stringEqual($t10_11, $t3_4);
2351          if ($t11_12) {
2352            $block = 5; break;
2353          }
2354          else {
2355            $block = 3; break;
2356          }
2357          break;
2358        }
2359        case 3: {
2360          $t12_13 = ($t5_6 + 1);
2361          $t5_6 = $t12_13;
2362          $block = 1; break;
2363          break;
2364        }
2365        case 4: {
2366          $t13_14 = $rt.builtin.stringToBytes('');
2367          return $t13_14;
2368          break;
2369        }
2370        case 5: {
2371          $t14_15 = ($t5_6 + $t4_5);
2372          $t18_19 = $t14_15;
2373          $block = 8; break;
2374          break;
2375        }
2376        case 6: {
2377          $t15_16 = ($t18_19 + 1);
2378          $t18_19 = $t15_16;
2379          $block = 8; break;
2380          break;
2381        }
2382        case 7: {
2383          $t16_17 = $rt.builtin.len(s);
2384          $t17_18 = ($t18_19 >= $t16_17);
2385          if ($t17_18) {
2386            $block = 3; break;
2387          }
2388          else {
2389            $block = 14; break;
2390          }
2391          break;
2392        }
2393        case 8: {
2394          $t19_20 = $rt.builtin.len(s);
2395          $t20_21 = ($t18_19 < $t19_20);
2396          if ($t20_21) {
2397            $block = 9; break;
2398          }
2399          else {
2400            $block = 7; break;
2401          }
2402          break;
2403        }
2404        case 9: {
2405          $t21_22 = s.addr($t18_19);
2406          $t22_23 = $t21_22.$get();
2407          $t23_24 = ($t22_23 === 32);
2408          if ($t23_24) {
2409            $block = 6; break;
2410          }
2411          else {
2412            $block = 12; break;
2413          }
2414          break;
2415        }
2416        case 10: {
2417          $t24_25 = s.addr($t18_19);
2418          $t25_26 = $t24_25.$get();
2419          $t26_27 = ($t25_26 === 13);
2420          if ($t26_27) {
2421            $block = 6; break;
2422          }
2423          else {
2424            $block = 7; break;
2425          }
2426          break;
2427        }
2428        case 11: {
2429          $t27_28 = s.addr($t18_19);
2430          $t28_29 = $t27_28.$get();
2431          $t29_30 = ($t28_29 === 10);
2432          if ($t29_30) {
2433            $block = 6; break;
2434          }
2435          else {
2436            $block = 10; break;
2437          }
2438          break;
2439        }
2440        case 12: {
2441          $t30_31 = s.addr($t18_19);
2442          $t31_32 = $t30_31.$get();
2443          $t32_33 = ($t31_32 === 9);
2444          if ($t32_33) {
2445            $block = 6; break;
2446          }
2447          else {
2448            $block = 11; break;
2449          }
2450          break;
2451        }
2452        case 13: {
2453          $t33_34 = ($t18_19 + 1);
2454          $t40_41 = $t33_34;
2455          $block = 17; break;
2456          break;
2457        }
2458        case 14: {
2459          $t34_35 = s.addr($t18_19);
2460          $t35_36 = $t34_35.$get();
2461          $t36_37 = ($t35_36 !== 58);
2462          if ($t36_37) {
2463            $block = 3; break;
2464          }
2465          else {
2466            $block = 13; break;
2467          }
2468          break;
2469        }
2470        case 15: {
2471          $t37_38 = ($t40_41 + 1);
2472          $t40_41 = $t37_38;
2473          $block = 17; break;
2474          break;
2475        }
2476        case 16: {
2477          $t38_39 = $rt.builtin.len(s);
2478          $t39_40 = ($t40_41 >= $t38_39);
2479          if ($t39_40) {
2480            $block = 3; break;
2481          }
2482          else {
2483            $block = 23; break;
2484          }
2485          break;
2486        }
2487        case 17: {
2488          $t41_42 = $rt.builtin.len(s);
2489          $t42_43 = ($t40_41 < $t41_42);
2490          if ($t42_43) {
2491            $block = 18; break;
2492          }
2493          else {
2494            $block = 16; break;
2495          }
2496          break;
2497        }
2498        case 18: {
2499          $t43_44 = s.addr($t40_41);
2500          $t44_45 = $t43_44.$get();
2501          $t45_46 = ($t44_45 === 32);
2502          if ($t45_46) {
2503            $block = 15; break;
2504          }
2505          else {
2506            $block = 21; break;
2507          }
2508          break;
2509        }
2510        case 19: {
2511          $t46_47 = s.addr($t40_41);
2512          $t47_48 = $t46_47.$get();
2513          $t48_49 = ($t47_48 === 13);
2514          if ($t48_49) {
2515            $block = 15; break;
2516          }
2517          else {
2518            $block = 16; break;
2519          }
2520          break;
2521        }
2522        case 20: {
2523          $t49_50 = s.addr($t40_41);
2524          $t50_51 = $t49_50.$get();
2525          $t51_52 = ($t50_51 === 10);
2526          if ($t51_52) {
2527            $block = 15; break;
2528          }
2529          else {
2530            $block = 19; break;
2531          }
2532          break;
2533        }
2534        case 21: {
2535          $t52_53 = s.addr($t40_41);
2536          $t53_54 = $t52_53.$get();
2537          $t54_55 = ($t53_54 === 9);
2538          if ($t54_55) {
2539            $block = 15; break;
2540          }
2541          else {
2542            $block = 20; break;
2543          }
2544          break;
2545        }
2546        case 22: {
2547          $t55_56 = ($t40_41 + 1);
2548          $t56_57 = $rt.builtin.stringToBytes('');
2549          $t63_64 = $t55_56;
2550          $t64_65 = $t55_56;
2551          $t65_66 = $t56_57;
2552          $block = 25; break;
2553          break;
2554        }
2555        case 23: {
2556          $t57_58 = s.addr($t40_41);
2557          $t58_59 = $t57_58.$get();
2558          $t59_60 = ($t58_59 !== 34);
2559          if ($t59_60) {
2560            $block = 3; break;
2561          }
2562          else {
2563            $block = 22; break;
2564          }
2565          break;
2566        }
2567        case 24: {
2568          $t60_61 = s.addr($t63_64);
2569          $t61_62 = $t60_61.$get();
2570          $t62_63 = ($t61_62 === 92);
2571          if ($t62_63) {
2572            $block = 28; break;
2573          }
2574          else {
2575            $block = 27; break;
2576          }
2577          break;
2578        }
2579        case 25: {
2580          $t66_67 = $rt.builtin.len(s);
2581          $t67_68 = ($t63_64 < $t66_67);
2582          if ($t67_68) {
2583            $block = 24; break;
2584          }
2585          else {
2586            $block = 3; break;
2587          }
2588          break;
2589        }
2590        case 26: {
2591          $t68_69 = $rt.builtin.sliceSlice(s, $t64_65, $t63_64, undefined);
2592          $t69_70 = $rt.builtin.stringConcat($t65_66, $t68_69);
2593          $t70_71 = ($t63_64 + 1);
2594          $t71_72 = s.addr($t70_71);
2595          $t72_73 = $t71_72.$get();
2596          $t73_74 = ($t72_73 === 34);
2597          if ($t73_74) {
2598            $block = 30; break;
2599          }
2600          else {
2601            $block = 32; break;
2602          }
2603          break;
2604        }
2605        case 27: {
2606          $t74_75 = s.addr($t63_64);
2607          $t75_76 = $t74_75.$get();
2608          $t76_77 = ($t75_76 === 34);
2609          if ($t76_77) {
2610            $block = 40; break;
2611          }
2612          else {
2613            $block = 41; break;
2614          }
2615          break;
2616        }
2617        case 28: {
2618          $t77_78 = ($t63_64 + 1);
2619          $t78_79 = $rt.builtin.len(s);
2620          $t79_80 = ($t77_78 < $t78_79);
2621          if ($t79_80) {
2622            $block = 26; break;
2623          }
2624          else {
2625            $block = 27; break;
2626          }
2627          break;
2628        }
2629        case 29: {
2630          $t81_82 = ($t70_71 + 1);
2631          $t63_64 = $t81_82;
2632          $t64_65 = $t81_82;
2633          $t65_66 = $t80_81;
2634          $block = 25; break;
2635          break;
2636        }
2637        case 30: {
2638          $t82_83 = ($t70_71 + 1);
2639          $t83_84 = $rt.builtin.sliceSlice(s, $t70_71, $t82_83, undefined);
2640          $t84_85 = $rt.builtin.stringConcat($t69_70, $t83_84);
2641          $t80_81 = $t84_85;
2642          $block = 29; break;
2643          break;
2644        }
2645        case 31: {
2646          $t85_86 = $rt.builtin.stringToBytes('\n');
2647          $t86_87 = $rt.builtin.stringConcat($t69_70, $t85_86);
2648          $t80_81 = $t86_87;
2649          $block = 29; break;
2650          break;
2651        }
2652        case 32: {
2653          $t87_88 = ($t72_73 === 92);
2654          if ($t87_88) {
2655            $block = 30; break;
2656          }
2657          else {
2658            $block = 33; break;
2659          }
2660          break;
2661        }
2662        case 33: {
2663          $t88_89 = ($t72_73 === 47);
2664          if ($t88_89) {
2665            $block = 30; break;
2666          }
2667          else {
2668            $block = 34; break;
2669          }
2670          break;
2671        }
2672        case 34: {
2673          $t89_90 = ($t72_73 === 110);
2674          if ($t89_90) {
2675            $block = 31; break;
2676          }
2677          else {
2678            $block = 36; break;
2679          }
2680          break;
2681        }
2682        case 35: {
2683          $t90_91 = $rt.builtin.stringToBytes('\r');
2684          $t91_92 = $rt.builtin.stringConcat($t69_70, $t90_91);
2685          $t80_81 = $t91_92;
2686          $block = 29; break;
2687          break;
2688        }
2689        case 36: {
2690          $t92_93 = ($t72_73 === 114);
2691          if ($t92_93) {
2692            $block = 35; break;
2693          }
2694          else {
2695            $block = 38; break;
2696          }
2697          break;
2698        }
2699        case 37: {
2700          $t93_94 = $rt.builtin.stringToBytes('\t');
2701          $t94_95 = $rt.builtin.stringConcat($t69_70, $t93_94);
2702          $t80_81 = $t94_95;
2703          $block = 29; break;
2704          break;
2705        }
2706        case 38: {
2707          $t95_96 = ($t72_73 === 116);
2708          if ($t95_96) {
2709            $block = 37; break;
2710          }
2711          else {
2712            $block = 39; break;
2713          }
2714          break;
2715        }
2716        case 39: {
2717          $t96_97 = ($t70_71 + 1);
2718          $t97_98 = $rt.builtin.sliceSlice(s, $t70_71, $t96_97, undefined);
2719          $t98_99 = $rt.builtin.stringConcat($t69_70, $t97_98);
2720          $t80_81 = $t98_99;
2721          $block = 29; break;
2722          break;
2723        }
2724        case 40: {
2725          $t99_100 = $rt.builtin.sliceSlice(s, $t64_65, $t63_64, undefined);
2726          $t100_101 = $rt.builtin.stringConcat($t65_66, $t99_100);
2727          return $t100_101;
2728          break;
2729        }
2730        case 41: {
2731          $t101_102 = ($t63_64 + 1);
2732          let $phi0 = $t101_102;
2733          let $phi1 = $t64_65;
2734          let $phi2 = $t65_66;
2735          $t63_64 = $phi0;
2736          $t64_65 = $phi1;
2737          $t65_66 = $phi2;
2738          $block = 25; break;
2739          break;
2740        }
2741      }
2742    }
2743  }
2744  
2745  export function JsonGetValue(s, key) {
2746    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46, $t46_47, $t47_48, $t48_49, $t49_50, $t50_51, $t51_52, $t52_53, $t53_54, $t54_55, $t55_56, $t56_57, $t57_58, $t58_59, $t59_60, $t60_61, $t61_62, $t62_63, $t63_64, $t64_65, $t65_66, $t66_67, $t67_68, $t68_69, $t69_70, $t70_71, $t71_72, $t72_73, $t73_74, $t74_75, $t75_76, $t76_77, $t77_78, $t78_79, $t79_80, $t80_81, $t81_82, $t82_83, $t83_84, $t84_85, $t85_86, $t86_87, $t87_88, $t88_89, $t89_90, $t90_91, $t91_92, $t92_93, $t93_94, $t94_95, $t95_96, $t96_97, $t97_98, $t98_99, $t99_100, $t100_101, $t101_102, $t102_103, $t103_104, $t104_105, $t105_106, $t106_107, $t107_108, $t108_109, $t109_110, $t110_111, $t111_112, $t112_113, $t113_114, $t114_115, $t115_116, $t116_117, $t117_118, $t118_119, $t119_120, $t120_121, $t121_122, $t122_123, $t123_124, $t124_125, $t125_126, $t126_127, $t127_128, $t128_129, $t129_130, $t130_131, $t131_132, $t132_133, $t133_134, $t134_135, $t135_136, $t136_137, $t137_138, $t138_139;
2747    let $block = 0;
2748    while (true) {
2749      switch ($block) {
2750        case 0: {
2751          $t0_1 = $rt.builtin.stringToBytes('"');
2752          $t1_2 = $rt.builtin.stringConcat($t0_1, key);
2753          $t2_3 = $rt.builtin.stringToBytes('"');
2754          $t3_4 = $rt.builtin.stringConcat($t1_2, $t2_3);
2755          $t4_5 = $rt.builtin.len($t3_4);
2756          $t5_6 = 0;
2757          $block = 1; break;
2758          break;
2759        }
2760        case 1: {
2761          $t6_7 = $rt.builtin.len(s);
2762          $t7_8 = ($t6_7 - $t4_5);
2763          $t8_9 = ($t5_6 <= $t7_8);
2764          if ($t8_9) {
2765            $block = 2; break;
2766          }
2767          else {
2768            $block = 4; break;
2769          }
2770          break;
2771        }
2772        case 2: {
2773          $t9_10 = ($t5_6 + $t4_5);
2774          $t10_11 = $rt.builtin.sliceSlice(s, $t5_6, $t9_10, undefined);
2775          $t11_12 = $rt.builtin.stringEqual($t10_11, $t3_4);
2776          if ($t11_12) {
2777            $block = 5; break;
2778          }
2779          else {
2780            $block = 3; break;
2781          }
2782          break;
2783        }
2784        case 3: {
2785          $t12_13 = ($t5_6 + 1);
2786          $t5_6 = $t12_13;
2787          $block = 1; break;
2788          break;
2789        }
2790        case 4: {
2791          $t13_14 = $rt.builtin.stringToBytes('');
2792          return $t13_14;
2793          break;
2794        }
2795        case 5: {
2796          $t14_15 = ($t5_6 + $t4_5);
2797          $t18_19 = $t14_15;
2798          $block = 8; break;
2799          break;
2800        }
2801        case 6: {
2802          $t15_16 = ($t18_19 + 1);
2803          $t18_19 = $t15_16;
2804          $block = 8; break;
2805          break;
2806        }
2807        case 7: {
2808          $t16_17 = $rt.builtin.len(s);
2809          $t17_18 = ($t18_19 >= $t16_17);
2810          if ($t17_18) {
2811            $block = 3; break;
2812          }
2813          else {
2814            $block = 14; break;
2815          }
2816          break;
2817        }
2818        case 8: {
2819          $t19_20 = $rt.builtin.len(s);
2820          $t20_21 = ($t18_19 < $t19_20);
2821          if ($t20_21) {
2822            $block = 9; break;
2823          }
2824          else {
2825            $block = 7; break;
2826          }
2827          break;
2828        }
2829        case 9: {
2830          $t21_22 = s.addr($t18_19);
2831          $t22_23 = $t21_22.$get();
2832          $t23_24 = ($t22_23 === 32);
2833          if ($t23_24) {
2834            $block = 6; break;
2835          }
2836          else {
2837            $block = 12; break;
2838          }
2839          break;
2840        }
2841        case 10: {
2842          $t24_25 = s.addr($t18_19);
2843          $t25_26 = $t24_25.$get();
2844          $t26_27 = ($t25_26 === 13);
2845          if ($t26_27) {
2846            $block = 6; break;
2847          }
2848          else {
2849            $block = 7; break;
2850          }
2851          break;
2852        }
2853        case 11: {
2854          $t27_28 = s.addr($t18_19);
2855          $t28_29 = $t27_28.$get();
2856          $t29_30 = ($t28_29 === 10);
2857          if ($t29_30) {
2858            $block = 6; break;
2859          }
2860          else {
2861            $block = 10; break;
2862          }
2863          break;
2864        }
2865        case 12: {
2866          $t30_31 = s.addr($t18_19);
2867          $t31_32 = $t30_31.$get();
2868          $t32_33 = ($t31_32 === 9);
2869          if ($t32_33) {
2870            $block = 6; break;
2871          }
2872          else {
2873            $block = 11; break;
2874          }
2875          break;
2876        }
2877        case 13: {
2878          $t33_34 = ($t18_19 + 1);
2879          $t40_41 = $t33_34;
2880          $block = 17; break;
2881          break;
2882        }
2883        case 14: {
2884          $t34_35 = s.addr($t18_19);
2885          $t35_36 = $t34_35.$get();
2886          $t36_37 = ($t35_36 !== 58);
2887          if ($t36_37) {
2888            $block = 3; break;
2889          }
2890          else {
2891            $block = 13; break;
2892          }
2893          break;
2894        }
2895        case 15: {
2896          $t37_38 = ($t40_41 + 1);
2897          $t40_41 = $t37_38;
2898          $block = 17; break;
2899          break;
2900        }
2901        case 16: {
2902          $t38_39 = $rt.builtin.len(s);
2903          $t39_40 = ($t40_41 >= $t38_39);
2904          if ($t39_40) {
2905            $block = 3; break;
2906          }
2907          else {
2908            $block = 22; break;
2909          }
2910          break;
2911        }
2912        case 17: {
2913          $t41_42 = $rt.builtin.len(s);
2914          $t42_43 = ($t40_41 < $t41_42);
2915          if ($t42_43) {
2916            $block = 18; break;
2917          }
2918          else {
2919            $block = 16; break;
2920          }
2921          break;
2922        }
2923        case 18: {
2924          $t43_44 = s.addr($t40_41);
2925          $t44_45 = $t43_44.$get();
2926          $t45_46 = ($t44_45 === 32);
2927          if ($t45_46) {
2928            $block = 15; break;
2929          }
2930          else {
2931            $block = 21; break;
2932          }
2933          break;
2934        }
2935        case 19: {
2936          $t46_47 = s.addr($t40_41);
2937          $t47_48 = $t46_47.$get();
2938          $t48_49 = ($t47_48 === 13);
2939          if ($t48_49) {
2940            $block = 15; break;
2941          }
2942          else {
2943            $block = 16; break;
2944          }
2945          break;
2946        }
2947        case 20: {
2948          $t49_50 = s.addr($t40_41);
2949          $t50_51 = $t49_50.$get();
2950          $t51_52 = ($t50_51 === 10);
2951          if ($t51_52) {
2952            $block = 15; break;
2953          }
2954          else {
2955            $block = 19; break;
2956          }
2957          break;
2958        }
2959        case 21: {
2960          $t52_53 = s.addr($t40_41);
2961          $t53_54 = $t52_53.$get();
2962          $t54_55 = ($t53_54 === 9);
2963          if ($t54_55) {
2964            $block = 15; break;
2965          }
2966          else {
2967            $block = 20; break;
2968          }
2969          break;
2970        }
2971        case 22: {
2972          $t55_56 = s.addr($t40_41);
2973          $t56_57 = $t55_56.$get();
2974          $t57_58 = ($t56_57 === 123);
2975          if ($t57_58) {
2976            $block = 23; break;
2977          }
2978          else {
2979            $block = 25; break;
2980          }
2981          break;
2982        }
2983        case 23: {
2984          $t58_59 = s.addr($t40_41);
2985          $t59_60 = $t58_59.$get();
2986          $t60_61 = ($t59_60 === 91);
2987          if ($t60_61) {
2988            $block = 27; break;
2989          }
2990          else {
2991            $t64_65 = 125;
2992            $block = 28; break;
2993          }
2994          break;
2995        }
2996        case 24: {
2997          $t61_62 = ($t40_41 + 1);
2998          $t104_105 = $t61_62;
2999          $block = 46; break;
3000          break;
3001        }
3002        case 25: {
3003          $t62_63 = ($t56_57 === 91);
3004          if ($t62_63) {
3005            $block = 23; break;
3006          }
3007          else {
3008            $block = 26; break;
3009          }
3010          break;
3011        }
3012        case 26: {
3013          $t63_64 = ($t56_57 === 34);
3014          if ($t63_64) {
3015            $block = 24; break;
3016          }
3017          else {
3018            $t115_116 = $t40_41;
3019            $block = 52; break;
3020          }
3021          break;
3022        }
3023        case 27: {
3024          $t64_65 = 93;
3025          $block = 28; break;
3026          break;
3027        }
3028        case 28: {
3029          $t65_66 = ($t40_41 + 1);
3030          $t70_71 = $t65_66;
3031          $t71_72 = 1;
3032          $block = 31; break;
3033          break;
3034        }
3035        case 29: {
3036          $t66_67 = s.addr($t70_71);
3037          $t67_68 = $t66_67.$get();
3038          $t68_69 = ($t67_68 === $t59_60);
3039          if ($t68_69) {
3040            $block = 33; break;
3041          }
3042          else {
3043            $block = 35; break;
3044          }
3045          break;
3046        }
3047        case 30: {
3048          $t69_70 = $rt.builtin.sliceSlice(s, $t40_41, $t70_71, undefined);
3049          return $t69_70;
3050          break;
3051        }
3052        case 31: {
3053          $t72_73 = $rt.builtin.len(s);
3054          $t73_74 = ($t70_71 < $t72_73);
3055          if ($t73_74) {
3056            $block = 32; break;
3057          }
3058          else {
3059            $block = 30; break;
3060          }
3061          break;
3062        }
3063        case 32: {
3064          $t74_75 = ($t71_72 > 0);
3065          if ($t74_75) {
3066            $block = 29; break;
3067          }
3068          else {
3069            $block = 30; break;
3070          }
3071          break;
3072        }
3073        case 33: {
3074          $t75_76 = ($t71_72 + 1);
3075          $t76_77 = $t70_71;
3076          $t77_78 = $t75_76;
3077          $block = 34; break;
3078          break;
3079        }
3080        case 34: {
3081          $t78_79 = ($t76_77 + 1);
3082          $t70_71 = $t78_79;
3083          $t71_72 = $t77_78;
3084          $block = 31; break;
3085          break;
3086        }
3087        case 35: {
3088          $t79_80 = s.addr($t70_71);
3089          $t80_81 = $t79_80.$get();
3090          $t81_82 = ($t80_81 === $t64_65);
3091          if ($t81_82) {
3092            $block = 36; break;
3093          }
3094          else {
3095            $block = 37; break;
3096          }
3097          break;
3098        }
3099        case 36: {
3100          $t82_83 = ($t71_72 - 1);
3101          $t76_77 = $t70_71;
3102          $t77_78 = $t82_83;
3103          $block = 34; break;
3104          break;
3105        }
3106        case 37: {
3107          $t83_84 = s.addr($t70_71);
3108          $t84_85 = $t83_84.$get();
3109          $t85_86 = ($t84_85 === 34);
3110          if ($t85_86) {
3111            $block = 38; break;
3112          }
3113          else {
3114            $t76_77 = $t70_71;
3115            $t77_78 = $t71_72;
3116            $block = 34; break;
3117          }
3118          break;
3119        }
3120        case 38: {
3121          $t86_87 = ($t70_71 + 1);
3122          $t90_91 = $t86_87;
3123          $block = 40; break;
3124          break;
3125        }
3126        case 39: {
3127          $t87_88 = s.addr($t90_91);
3128          $t88_89 = $t87_88.$get();
3129          $t89_90 = ($t88_89 === 92);
3130          if ($t89_90) {
3131            $block = 42; break;
3132          }
3133          else {
3134            $t97_98 = $t90_91;
3135            $block = 43; break;
3136          }
3137          break;
3138        }
3139        case 40: {
3140          $t91_92 = $rt.builtin.len(s);
3141          $t92_93 = ($t90_91 < $t91_92);
3142          if ($t92_93) {
3143            $block = 41; break;
3144          }
3145          else {
3146            $t76_77 = $t90_91;
3147            $t77_78 = $t71_72;
3148            $block = 34; break;
3149          }
3150          break;
3151        }
3152        case 41: {
3153          $t93_94 = s.addr($t90_91);
3154          $t94_95 = $t93_94.$get();
3155          $t95_96 = ($t94_95 !== 34);
3156          if ($t95_96) {
3157            $block = 39; break;
3158          }
3159          else {
3160            $t76_77 = $t90_91;
3161            $t77_78 = $t71_72;
3162            $block = 34; break;
3163          }
3164          break;
3165        }
3166        case 42: {
3167          $t96_97 = ($t90_91 + 1);
3168          $t97_98 = $t96_97;
3169          $block = 43; break;
3170          break;
3171        }
3172        case 43: {
3173          $t98_99 = ($t97_98 + 1);
3174          $t90_91 = $t98_99;
3175          $block = 40; break;
3176          break;
3177        }
3178        case 44: {
3179          $t99_100 = s.addr($t104_105);
3180          $t100_101 = $t99_100.$get();
3181          $t101_102 = ($t100_101 === 92);
3182          if ($t101_102) {
3183            $block = 48; break;
3184          }
3185          else {
3186            $t111_112 = $t104_105;
3187            $block = 49; break;
3188          }
3189          break;
3190        }
3191        case 45: {
3192          $t102_103 = ($t104_105 + 1);
3193          $t103_104 = $rt.builtin.sliceSlice(s, $t40_41, $t102_103, undefined);
3194          return $t103_104;
3195          break;
3196        }
3197        case 46: {
3198          $t105_106 = $rt.builtin.len(s);
3199          $t106_107 = ($t104_105 < $t105_106);
3200          if ($t106_107) {
3201            $block = 47; break;
3202          }
3203          else {
3204            $block = 45; break;
3205          }
3206          break;
3207        }
3208        case 47: {
3209          $t107_108 = s.addr($t104_105);
3210          $t108_109 = $t107_108.$get();
3211          $t109_110 = ($t108_109 !== 34);
3212          if ($t109_110) {
3213            $block = 44; break;
3214          }
3215          else {
3216            $block = 45; break;
3217          }
3218          break;
3219        }
3220        case 48: {
3221          $t110_111 = ($t104_105 + 1);
3222          $t111_112 = $t110_111;
3223          $block = 49; break;
3224          break;
3225        }
3226        case 49: {
3227          $t112_113 = ($t111_112 + 1);
3228          $t104_105 = $t112_113;
3229          $block = 46; break;
3230          break;
3231        }
3232        case 50: {
3233          $t113_114 = ($t115_116 + 1);
3234          $t115_116 = $t113_114;
3235          $block = 52; break;
3236          break;
3237        }
3238        case 51: {
3239          $t114_115 = $rt.builtin.sliceSlice(s, $t40_41, $t115_116, undefined);
3240          return $t114_115;
3241          break;
3242        }
3243        case 52: {
3244          $t116_117 = $rt.builtin.len(s);
3245          $t117_118 = ($t115_116 < $t116_117);
3246          if ($t117_118) {
3247            $block = 59; break;
3248          }
3249          else {
3250            $block = 51; break;
3251          }
3252          break;
3253        }
3254        case 53: {
3255          $t118_119 = s.addr($t115_116);
3256          $t119_120 = $t118_119.$get();
3257          $t120_121 = ($t119_120 !== 13);
3258          if ($t120_121) {
3259            $block = 50; break;
3260          }
3261          else {
3262            $block = 51; break;
3263          }
3264          break;
3265        }
3266        case 54: {
3267          $t121_122 = s.addr($t115_116);
3268          $t122_123 = $t121_122.$get();
3269          $t123_124 = ($t122_123 !== 10);
3270          if ($t123_124) {
3271            $block = 53; break;
3272          }
3273          else {
3274            $block = 51; break;
3275          }
3276          break;
3277        }
3278        case 55: {
3279          $t124_125 = s.addr($t115_116);
3280          $t125_126 = $t124_125.$get();
3281          $t126_127 = ($t125_126 !== 9);
3282          if ($t126_127) {
3283            $block = 54; break;
3284          }
3285          else {
3286            $block = 51; break;
3287          }
3288          break;
3289        }
3290        case 56: {
3291          $t127_128 = s.addr($t115_116);
3292          $t128_129 = $t127_128.$get();
3293          $t129_130 = ($t128_129 !== 32);
3294          if ($t129_130) {
3295            $block = 55; break;
3296          }
3297          else {
3298            $block = 51; break;
3299          }
3300          break;
3301        }
3302        case 57: {
3303          $t130_131 = s.addr($t115_116);
3304          $t131_132 = $t130_131.$get();
3305          $t132_133 = ($t131_132 !== 93);
3306          if ($t132_133) {
3307            $block = 56; break;
3308          }
3309          else {
3310            $block = 51; break;
3311          }
3312          break;
3313        }
3314        case 58: {
3315          $t133_134 = s.addr($t115_116);
3316          $t134_135 = $t133_134.$get();
3317          $t135_136 = ($t134_135 !== 125);
3318          if ($t135_136) {
3319            $block = 57; break;
3320          }
3321          else {
3322            $block = 51; break;
3323          }
3324          break;
3325        }
3326        case 59: {
3327          $t136_137 = s.addr($t115_116);
3328          $t137_138 = $t136_137.$get();
3329          $t138_139 = ($t137_138 !== 44);
3330          if ($t138_139) {
3331            $block = 58; break;
3332          }
3333          else {
3334            $block = 51; break;
3335          }
3336          break;
3337        }
3338      }
3339    }
3340  }
3341  
3342  export function JsonGetBool(s, key) {
3343    let $t0_1, $t1_2, $t2_3;
3344    $t0_1 = JsonGetValue(s, key);
3345    $t1_2 = $rt.builtin.stringToBytes('true');
3346    $t2_3 = $rt.builtin.stringEqual($t0_1, $t1_2);
3347    return $t2_3;
3348  }
3349  
3350  export function JsonGetIntArray(s, key) {
3351    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;
3352    let $block = 0;
3353    while (true) {
3354      switch ($block) {
3355        case 0: {
3356          $t0_1 = JsonGetValue(s, key);
3357          $t1_2 = $rt.builtin.len($t0_1);
3358          $t2_3 = ($t1_2 < 2);
3359          if ($t2_3) {
3360            $block = 1; break;
3361          }
3362          else {
3363            $block = 3; break;
3364          }
3365          break;
3366        }
3367        case 1: {
3368          return null;
3369          break;
3370        }
3371        case 2: {
3372          $t6_7 = null;
3373          $t7_8 = 1;
3374          $block = 5; break;
3375          break;
3376        }
3377        case 3: {
3378          $t3_4 = $t0_1.addr(0);
3379          $t4_5 = $t3_4.$get();
3380          $t5_6 = ($t4_5 !== 91);
3381          if ($t5_6) {
3382            $block = 1; break;
3383          }
3384          else {
3385            $block = 2; break;
3386          }
3387          break;
3388        }
3389        case 4: {
3390          return $t6_7;
3391          break;
3392        }
3393        case 5: {
3394          $t8_9 = $rt.builtin.len($t0_1);
3395          $t9_10 = ($t7_8 < $t8_9);
3396          if ($t9_10) {
3397            $t13_14 = $t7_8;
3398            $block = 8; break;
3399          }
3400          else {
3401            $block = 4; break;
3402          }
3403          break;
3404        }
3405        case 6: {
3406          $t10_11 = ($t13_14 + 1);
3407          $t13_14 = $t10_11;
3408          $block = 8; break;
3409          break;
3410        }
3411        case 7: {
3412          $t11_12 = $rt.builtin.len($t0_1);
3413          $t12_13 = ($t13_14 >= $t11_12);
3414          if ($t12_13) {
3415            $block = 4; break;
3416          }
3417          else {
3418            $block = 15; break;
3419          }
3420          break;
3421        }
3422        case 8: {
3423          $t14_15 = $rt.builtin.len($t0_1);
3424          $t15_16 = ($t13_14 < $t14_15);
3425          if ($t15_16) {
3426            $block = 9; break;
3427          }
3428          else {
3429            $block = 7; break;
3430          }
3431          break;
3432        }
3433        case 9: {
3434          $t16_17 = $t0_1.addr($t13_14);
3435          $t17_18 = $t16_17.$get();
3436          $t18_19 = ($t17_18 === 32);
3437          if ($t18_19) {
3438            $block = 6; break;
3439          }
3440          else {
3441            $block = 13; break;
3442          }
3443          break;
3444        }
3445        case 10: {
3446          $t19_20 = $t0_1.addr($t13_14);
3447          $t20_21 = $t19_20.$get();
3448          $t21_22 = ($t20_21 === 44);
3449          if ($t21_22) {
3450            $block = 6; break;
3451          }
3452          else {
3453            $block = 7; break;
3454          }
3455          break;
3456        }
3457        case 11: {
3458          $t22_23 = $t0_1.addr($t13_14);
3459          $t23_24 = $t22_23.$get();
3460          $t24_25 = ($t23_24 === 13);
3461          if ($t24_25) {
3462            $block = 6; break;
3463          }
3464          else {
3465            $block = 10; break;
3466          }
3467          break;
3468        }
3469        case 12: {
3470          $t25_26 = $t0_1.addr($t13_14);
3471          $t26_27 = $t25_26.$get();
3472          $t27_28 = ($t26_27 === 10);
3473          if ($t27_28) {
3474            $block = 6; break;
3475          }
3476          else {
3477            $block = 11; break;
3478          }
3479          break;
3480        }
3481        case 13: {
3482          $t28_29 = $t0_1.addr($t13_14);
3483          $t29_30 = $t28_29.$get();
3484          $t30_31 = ($t29_30 === 9);
3485          if ($t30_31) {
3486            $block = 6; break;
3487          }
3488          else {
3489            $block = 12; break;
3490          }
3491          break;
3492        }
3493        case 14: {
3494          $t31_32 = $t0_1.addr($t13_14);
3495          $t32_33 = $t31_32.$get();
3496          $t33_34 = ($t32_33 === 45);
3497          if ($t33_34) {
3498            $block = 16; break;
3499          }
3500          else {
3501            $t38_39 = $t13_14;
3502            $t39_40 = false;
3503            $block = 17; break;
3504          }
3505          break;
3506        }
3507        case 15: {
3508          $t34_35 = $t0_1.addr($t13_14);
3509          $t35_36 = $t34_35.$get();
3510          $t36_37 = ($t35_36 === 93);
3511          if ($t36_37) {
3512            $block = 4; break;
3513          }
3514          else {
3515            $block = 14; break;
3516          }
3517          break;
3518        }
3519        case 16: {
3520          $t37_38 = ($t13_14 + 1);
3521          $t38_39 = $t37_38;
3522          $t39_40 = true;
3523          $block = 17; break;
3524          break;
3525        }
3526        case 17: {
3527          $t42_43 = $t38_39;
3528          $block = 20; break;
3529          break;
3530        }
3531        case 18: {
3532          $t40_41 = ($t42_43 + 1);
3533          $t42_43 = $t40_41;
3534          $block = 20; break;
3535          break;
3536        }
3537        case 19: {
3538          $t41_42 = ($t42_43 === $t38_39);
3539          if ($t41_42) {
3540            $t52_53 = $t42_43;
3541            $block = 25; break;
3542          }
3543          else {
3544            $block = 23; break;
3545          }
3546          break;
3547        }
3548        case 20: {
3549          $t43_44 = $rt.builtin.len($t0_1);
3550          $t44_45 = ($t42_43 < $t43_44);
3551          if ($t44_45) {
3552            $block = 22; break;
3553          }
3554          else {
3555            $block = 19; break;
3556          }
3557          break;
3558        }
3559        case 21: {
3560          $t45_46 = $t0_1.addr($t42_43);
3561          $t46_47 = $t45_46.$get();
3562          $t47_48 = ($t46_47 <= 57);
3563          if ($t47_48) {
3564            $block = 18; break;
3565          }
3566          else {
3567            $block = 19; break;
3568          }
3569          break;
3570        }
3571        case 22: {
3572          $t48_49 = $t0_1.addr($t42_43);
3573          $t49_50 = $t48_49.$get();
3574          $t50_51 = ($t49_50 >= 48);
3575          if ($t50_51) {
3576            $block = 21; break;
3577          }
3578          else {
3579            $block = 19; break;
3580          }
3581          break;
3582        }
3583        case 23: {
3584          $t61_62 = 0;
3585          $t62_63 = $t38_39;
3586          $block = 28; break;
3587          break;
3588        }
3589        case 24: {
3590          $t51_52 = ($t52_53 + 1);
3591          $t52_53 = $t51_52;
3592          $block = 25; break;
3593          break;
3594        }
3595        case 25: {
3596          $t53_54 = $rt.builtin.len($t0_1);
3597          $t54_55 = ($t52_53 < $t53_54);
3598          if ($t54_55) {
3599            $block = 27; break;
3600          }
3601          else {
3602            let $phi0 = $t6_7;
3603            let $phi1 = $t52_53;
3604            $t6_7 = $phi0;
3605            $t7_8 = $phi1;
3606            $block = 5; break;
3607          }
3608          break;
3609        }
3610        case 26: {
3611          $t55_56 = $t0_1.addr($t52_53);
3612          $t56_57 = $t55_56.$get();
3613          $t57_58 = ($t56_57 !== 93);
3614          if ($t57_58) {
3615            $block = 24; break;
3616          }
3617          else {
3618            let $phi0 = $t6_7;
3619            let $phi1 = $t52_53;
3620            $t6_7 = $phi0;
3621            $t7_8 = $phi1;
3622            $block = 5; break;
3623          }
3624          break;
3625        }
3626        case 27: {
3627          $t58_59 = $t0_1.addr($t52_53);
3628          $t59_60 = $t58_59.$get();
3629          $t60_61 = ($t59_60 !== 44);
3630          if ($t60_61) {
3631            $block = 26; break;
3632          }
3633          else {
3634            let $phi0 = $t6_7;
3635            let $phi1 = $t52_53;
3636            $t6_7 = $phi0;
3637            $t7_8 = $phi1;
3638            $block = 5; break;
3639          }
3640          break;
3641        }
3642        case 28: {
3643          $t63_64 = ($t62_63 < $t42_43);
3644          if ($t63_64) {
3645            $block = 29; break;
3646          }
3647          else {
3648            $block = 30; break;
3649          }
3650          break;
3651        }
3652        case 29: {
3653          $t64_65 = ($t61_62 * 10);
3654          $t65_66 = $t0_1.addr($t62_63);
3655          $t66_67 = $t65_66.$get();
3656          $t67_68 = (($t66_67 - 48) & 0xFF);
3657          $t68_69 = $t67_68;
3658          $t69_70 = ($t64_65 + $t68_69);
3659          $t70_71 = ($t62_63 + 1);
3660          $t61_62 = $t69_70;
3661          $t62_63 = $t70_71;
3662          $block = 28; break;
3663          break;
3664        }
3665        case 30: {
3666          if ($t39_40) {
3667            $block = 31; break;
3668          }
3669          else {
3670            $t72_73 = $t61_62;
3671            $block = 32; break;
3672          }
3673          break;
3674        }
3675        case 31: {
3676          $t71_72 = -$t61_62;
3677          $t72_73 = $t71_72;
3678          $block = 32; break;
3679          break;
3680        }
3681        case 32: {
3682          $t73_74 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
3683          $t74_75 = $t73_74.$get().addr(0);
3684          $t74_75.$set($t72_73);
3685          $t75_76 = $rt.builtin.sliceSlice($t73_74.$get(), undefined, undefined, undefined);
3686          $t76_77 = $rt.builtin.appendSlice($t6_7, $t75_76);
3687          $t6_7 = $t76_77;
3688          $t7_8 = $t42_43;
3689          $block = 5; break;
3690          break;
3691        }
3692      }
3693    }
3694  }
3695  
3696  export function Itoa(n) {
3697    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;
3698    let $block = 0;
3699    while (true) {
3700      switch ($block) {
3701        case 0: {
3702          $t0_1 = (n === 0n);
3703          if ($t0_1) {
3704            $block = 1; break;
3705          }
3706          else {
3707            $block = 2; break;
3708          }
3709          break;
3710        }
3711        case 1: {
3712          $t1_2 = $rt.builtin.stringToBytes('0');
3713          return $t1_2;
3714          break;
3715        }
3716        case 2: {
3717          $t2_3 = (n < 0n);
3718          if ($t2_3) {
3719            $block = 3; break;
3720          }
3721          else {
3722            $t4_5 = n;
3723            $t5_6 = false;
3724            $block = 4; break;
3725          }
3726          break;
3727        }
3728        case 3: {
3729          $t3_4 = -n;
3730          $t4_5 = $t3_4;
3731          $t5_6 = true;
3732          $block = 4; break;
3733          break;
3734        }
3735        case 4: {
3736          $t6_7 = { $value: $rt.builtin.makeSlice(20, 20, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
3737          $t13_14 = $t4_5;
3738          $t14_15 = 20;
3739          $block = 7; break;
3740          break;
3741        }
3742        case 5: {
3743          $t7_8 = ($t14_15 - 1);
3744          $t8_9 = ($t13_14 % 10n);
3745          $t9_10 = BigInt.asIntN(64, 48n + $t8_9);
3746          $t10_11 = (Number($t9_10) & 0xFF);
3747          $t11_12 = $t6_7.$get().addr($t7_8);
3748          $t11_12.$set($t10_11);
3749          $t12_13 = BigInt.asIntN(64, $t13_14 / 10n);
3750          $t13_14 = $t12_13;
3751          $t14_15 = $t7_8;
3752          $block = 7; break;
3753          break;
3754        }
3755        case 6: {
3756          if ($t5_6) {
3757            $block = 8; break;
3758          }
3759          else {
3760            $t18_19 = $t14_15;
3761            $block = 9; break;
3762          }
3763          break;
3764        }
3765        case 7: {
3766          $t15_16 = ($t13_14 > 0n);
3767          if ($t15_16) {
3768            $block = 5; break;
3769          }
3770          else {
3771            $block = 6; break;
3772          }
3773          break;
3774        }
3775        case 8: {
3776          $t16_17 = ($t14_15 - 1);
3777          $t17_18 = $t6_7.$get().addr($t16_17);
3778          $t17_18.$set(45);
3779          $t18_19 = $t16_17;
3780          $block = 9; break;
3781          break;
3782        }
3783        case 9: {
3784          $t19_20 = $rt.builtin.sliceSlice($t6_7.$get(), $t18_19, undefined, undefined);
3785          return $t19_20;
3786          break;
3787        }
3788      }
3789    }
3790  }
3791  
3792  export function __moxie_concat(a, b) {
3793    let $t0_1;
3794    $t0_1 = $rt.types.makeInterface('string', '__moxie_concat: compiler failed to intercept');
3795    $rt.runtime.panic($t0_1);
3796  }
3797  
3798  export function __moxie_eq(a, b) {
3799    let $t0_1;
3800    $t0_1 = $rt.types.makeInterface('string', '__moxie_eq: compiler failed to intercept');
3801    $rt.runtime.panic($t0_1);
3802  }
3803  
3804  export function __moxie_lt(a, b) {
3805    let $t0_1;
3806    $t0_1 = $rt.types.makeInterface('string', '__moxie_lt: compiler failed to intercept');
3807    $rt.runtime.panic($t0_1);
3808  }
3809  
3810  export function __moxie_secalloc(n) {
3811    let $t0_1;
3812    $t0_1 = $rt.types.makeInterface('string', '__moxie_secalloc: compiler failed to intercept');
3813    $rt.runtime.panic($t0_1);
3814  }
3815  
3816