cubing 0.29.0 → 0.29.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/README.md +1 -6
  2. package/dist/esm/alg/index.js +1 -1
  3. package/dist/esm/bluetooth/index.js +36 -31
  4. package/dist/esm/bluetooth/index.js.map +2 -2
  5. package/dist/esm/{chunk-NI7U4XAZ.js → chunk-7OIUETFU.js} +9 -8
  6. package/dist/esm/chunk-7OIUETFU.js.map +7 -0
  7. package/dist/esm/{chunk-DZGFGBKT.js → chunk-EOEJDDXN.js} +95 -58
  8. package/dist/esm/chunk-EOEJDDXN.js.map +7 -0
  9. package/dist/esm/{chunk-WXCNEGW3.js → chunk-HR5D6SD4.js} +2 -2
  10. package/dist/esm/{chunk-WXCNEGW3.js.map → chunk-HR5D6SD4.js.map} +2 -2
  11. package/dist/esm/{chunk-LV7IKG36.js → chunk-J5KJ2WWA.js} +35 -34
  12. package/dist/esm/chunk-J5KJ2WWA.js.map +7 -0
  13. package/dist/esm/{chunk-ZNAYJGVL.js → chunk-NUMCMGLU.js} +2 -2
  14. package/dist/esm/{chunk-ZNAYJGVL.js.map → chunk-NUMCMGLU.js.map} +0 -0
  15. package/dist/esm/{chunk-LSCTPPWV.js → chunk-OT7AIIFN.js} +4 -4
  16. package/dist/esm/chunk-OT7AIIFN.js.map +7 -0
  17. package/dist/esm/{chunk-XU5ILFX5.js → chunk-POCUG6QW.js} +6 -4
  18. package/dist/esm/{chunk-XU5ILFX5.js.map → chunk-POCUG6QW.js.map} +2 -2
  19. package/dist/esm/{chunk-OX6O2ZO5.js → chunk-QHWK5RXN.js} +1 -1
  20. package/dist/esm/chunk-QHWK5RXN.js.map +7 -0
  21. package/dist/esm/{chunk-GW4FGG42.js → chunk-RH4WZIGC.js} +2 -2
  22. package/dist/esm/{chunk-GW4FGG42.js.map → chunk-RH4WZIGC.js.map} +0 -0
  23. package/dist/esm/{chunk-TGPS3CXW.js → chunk-RIXFKOD6.js} +7 -7
  24. package/dist/esm/{chunk-TGPS3CXW.js.map → chunk-RIXFKOD6.js.map} +2 -2
  25. package/dist/esm/{chunk-2IZUSAXQ.js → chunk-WEYPAZEE.js} +1 -1
  26. package/dist/esm/{chunk-2IZUSAXQ.js.map → chunk-WEYPAZEE.js.map} +1 -1
  27. package/dist/esm/{chunk-Q4W5ZR4U.js → chunk-WNZXZ4MW.js} +10 -8
  28. package/dist/esm/{chunk-Q4W5ZR4U.js.map → chunk-WNZXZ4MW.js.map} +2 -2
  29. package/dist/esm/{chunk-PYWGREIP.js → chunk-YD2TMJI2.js} +33 -31
  30. package/dist/esm/chunk-YD2TMJI2.js.map +7 -0
  31. package/dist/esm/kpuzzle/index.js +2 -2
  32. package/dist/esm/notation/index.js +2 -2
  33. package/dist/esm/protocol/index.js +4 -4
  34. package/dist/esm/puzzle-geometry/index.js +114 -88
  35. package/dist/esm/puzzle-geometry/index.js.map +2 -2
  36. package/dist/esm/puzzles/index.js +10 -6
  37. package/dist/esm/{puzzles-dynamic-side-events-5C7LMBWX.js → puzzles-dynamic-side-events-3K26JTOG.js} +2 -2
  38. package/dist/esm/{puzzles-dynamic-side-events-5C7LMBWX.js.map → puzzles-dynamic-side-events-3K26JTOG.js.map} +1 -1
  39. package/dist/esm/scramble/index.js +3 -3
  40. package/dist/esm/search/index.js +8 -8
  41. package/dist/esm/{search-dynamic-sgs-side-events-AYX7MZO7.js → search-dynamic-sgs-side-events-AE3TLLPA.js} +6 -6
  42. package/dist/esm/search-dynamic-sgs-side-events-AE3TLLPA.js.map +7 -0
  43. package/dist/esm/{search-dynamic-sgs-unofficial-DLJOJFJL.js → search-dynamic-sgs-unofficial-JUXMNMNO.js} +122 -67
  44. package/dist/esm/search-dynamic-sgs-unofficial-JUXMNMNO.js.map +7 -0
  45. package/dist/esm/{search-dynamic-solve-3x3x3-7XZTYQMO.js → search-dynamic-solve-3x3x3-SA75BI5I.js} +649 -405
  46. package/dist/esm/search-dynamic-solve-3x3x3-SA75BI5I.js.map +7 -0
  47. package/dist/esm/{search-dynamic-solve-4x4x4-CWWTFKMR.js → search-dynamic-solve-4x4x4-ALKH43DT.js} +399 -150
  48. package/dist/esm/search-dynamic-solve-4x4x4-ALKH43DT.js.map +7 -0
  49. package/dist/esm/{search-dynamic-solve-fto-4LI23P6K.js → search-dynamic-solve-fto-5B5ZESQC.js} +74 -34
  50. package/dist/esm/search-dynamic-solve-fto-5B5ZESQC.js.map +7 -0
  51. package/dist/esm/{search-dynamic-solve-kilominx-3HEVQ4MC.js → search-dynamic-solve-kilominx-OY4VIARG.js} +136 -71
  52. package/dist/esm/search-dynamic-solve-kilominx-OY4VIARG.js.map +7 -0
  53. package/dist/esm/{search-dynamic-solve-master_tetraminx-UB32C7MM.js → search-dynamic-solve-master_tetraminx-GE2BTRGI.js} +84 -41
  54. package/dist/esm/search-dynamic-solve-master_tetraminx-GE2BTRGI.js.map +7 -0
  55. package/dist/esm/{search-dynamic-solve-sq1-HA72TYF2.js → search-dynamic-solve-sq1-W6PSSLR6.js} +129 -54
  56. package/dist/esm/search-dynamic-solve-sq1-W6PSSLR6.js.map +7 -0
  57. package/dist/esm/{search-worker-inside-generated-string-AMEXYCKK.js → search-worker-inside-generated-string-7HYFSSPW.js} +28 -28
  58. package/dist/esm/search-worker-inside-generated-string-7HYFSSPW.js.map +7 -0
  59. package/dist/esm/{search-worker-js-entry-TP2T3NUL.js → search-worker-js-entry-SNUA3SOE.js} +44 -35
  60. package/dist/esm/search-worker-js-entry-SNUA3SOE.js.map +7 -0
  61. package/dist/esm/{search-worker-ts-entry-NEH77S4I.js → search-worker-ts-entry-LNB7KNFY.js} +3 -3
  62. package/dist/esm/{search-worker-ts-entry-NEH77S4I.js.map → search-worker-ts-entry-LNB7KNFY.js.map} +0 -0
  63. package/dist/esm/stream/index.js +1 -1
  64. package/dist/esm/stream/index.js.map +2 -2
  65. package/dist/esm/twisty/index.js +287 -273
  66. package/dist/esm/twisty/index.js.map +2 -2
  67. package/dist/esm/{twisty-dynamic-3d-D3ZDBJUH.js → twisty-dynamic-3d-PU74EKRA.js} +57 -59
  68. package/dist/esm/twisty-dynamic-3d-PU74EKRA.js.map +7 -0
  69. package/dist/types/{TwizzleLink-bef52ecd.d.ts → TwizzleLink-ce20e840.d.ts} +1 -1
  70. package/dist/types/puzzles/index.d.ts +5 -3
  71. package/dist/types/twisty/index.d.ts +2 -2
  72. package/package.json +51 -147
  73. package/dist/esm/chunk-DZGFGBKT.js.map +0 -7
  74. package/dist/esm/chunk-LSCTPPWV.js.map +0 -7
  75. package/dist/esm/chunk-LV7IKG36.js.map +0 -7
  76. package/dist/esm/chunk-NI7U4XAZ.js.map +0 -7
  77. package/dist/esm/chunk-OX6O2ZO5.js.map +0 -7
  78. package/dist/esm/chunk-PYWGREIP.js.map +0 -7
  79. package/dist/esm/search-dynamic-sgs-side-events-AYX7MZO7.js.map +0 -7
  80. package/dist/esm/search-dynamic-sgs-unofficial-DLJOJFJL.js.map +0 -7
  81. package/dist/esm/search-dynamic-solve-3x3x3-7XZTYQMO.js.map +0 -7
  82. package/dist/esm/search-dynamic-solve-4x4x4-CWWTFKMR.js.map +0 -7
  83. package/dist/esm/search-dynamic-solve-fto-4LI23P6K.js.map +0 -7
  84. package/dist/esm/search-dynamic-solve-kilominx-3HEVQ4MC.js.map +0 -7
  85. package/dist/esm/search-dynamic-solve-master_tetraminx-UB32C7MM.js.map +0 -7
  86. package/dist/esm/search-dynamic-solve-sq1-HA72TYF2.js.map +0 -7
  87. package/dist/esm/search-worker-inside-generated-string-AMEXYCKK.js.map +0 -7
  88. package/dist/esm/search-worker-js-entry-TP2T3NUL.js.map +0 -7
  89. package/dist/esm/twisty-dynamic-3d-D3ZDBJUH.js.map +0 -7
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  randomUIntBelowFactory
3
- } from "./chunk-WXCNEGW3.js";
3
+ } from "./chunk-HR5D6SD4.js";
4
4
  import "./chunk-SBZRVSPK.js";
5
5
 
6
6
  // src/cubing/vendor/sq12phase/sq1-solver.js
@@ -23,7 +23,7 @@ function FullCube_doMove(obj, move) {
23
23
  temp = obj.ul;
24
24
  obj.ul = (obj.ul << move | ~~obj.ur >> 24 - move) & 16777215;
25
25
  obj.ur = (obj.ur << move | ~~temp >> 24 - move) & 16777215;
26
- } else if (move == 0) {
26
+ } else if (move === 0) {
27
27
  temp = obj.ur;
28
28
  obj.ur = obj.dl;
29
29
  obj.dl = temp;
@@ -41,11 +41,15 @@ function FullCube_doMove(obj, move) {
41
41
  }
42
42
  }
43
43
  function FullCube_getParity(obj) {
44
- var a, b, cnt, i, p;
44
+ var a;
45
+ var b;
46
+ var cnt;
47
+ var i;
48
+ var p;
45
49
  cnt = 0;
46
50
  obj.arr[0] = FullCube_pieceAt(obj, 0);
47
51
  for (i = 1; i < 24; ++i) {
48
- FullCube_pieceAt(obj, i) != obj.arr[cnt] && (obj.arr[++cnt] = FullCube_pieceAt(obj, i));
52
+ FullCube_pieceAt(obj, i) !== obj.arr[cnt] && (obj.arr[++cnt] = FullCube_pieceAt(obj, i));
49
53
  }
50
54
  p = 0;
51
55
  for (a = 0; a < 16; ++a) {
@@ -56,7 +60,10 @@ function FullCube_getParity(obj) {
56
60
  return p;
57
61
  }
58
62
  function FullCube_getShapeIdx(obj) {
59
- var dlx, drx, ulx, urx;
63
+ var dlx;
64
+ var drx;
65
+ var ulx;
66
+ var urx;
60
67
  urx = obj.ur & 1118481;
61
68
  urx |= ~~urx >> 3;
62
69
  urx |= ~~urx >> 6;
@@ -78,19 +85,22 @@ function FullCube_getShapeIdx(obj) {
78
85
  );
79
86
  }
80
87
  function FullCube_getSquare(obj, sq) {
81
- var a, b;
88
+ var a;
89
+ var b;
82
90
  for (a = 0; a < 8; ++a) {
83
91
  obj.prm[a] = ~~(~~FullCube_pieceAt(obj, a * 3 + 1) >> 1 << 24) >> 24;
84
92
  }
85
93
  sq.cornperm = get8Perm(obj.prm);
86
- sq.topEdgeFirst = FullCube_pieceAt(obj, 0) == FullCube_pieceAt(obj, 1);
94
+ sq.topEdgeFirst = FullCube_pieceAt(obj, 0) === FullCube_pieceAt(obj, 1);
87
95
  a = sq.topEdgeFirst ? 2 : 0;
88
- for (b = 0; b < 4; a += 3, ++b)
96
+ for (b = 0; b < 4; a += 3, ++b) {
89
97
  obj.prm[b] = ~~(~~FullCube_pieceAt(obj, a) >> 1 << 24) >> 24;
90
- sq.botEdgeFirst = FullCube_pieceAt(obj, 12) == FullCube_pieceAt(obj, 13);
98
+ }
99
+ sq.botEdgeFirst = FullCube_pieceAt(obj, 12) === FullCube_pieceAt(obj, 13);
91
100
  a = sq.botEdgeFirst ? 14 : 12;
92
- for (; b < 8; a += 3, ++b)
101
+ for (; b < 8; a += 3, ++b) {
93
102
  obj.prm[b] = ~~(~~FullCube_pieceAt(obj, a) >> 1 << 24) >> 24;
103
+ }
94
104
  sq.edgeperm = get8Perm(obj.prm);
95
105
  sq.ml = obj.ml;
96
106
  }
@@ -120,14 +130,22 @@ function FullCube_FullCube__Ljava_lang_String_2V() {
120
130
  }
121
131
  async function FullCube_randomCube() {
122
132
  const randomUintBelow = await randomUIntBelowFactory();
123
- var f, i, shape, edge, corner, n_edge, n_corner, rnd, m;
133
+ var f;
134
+ var i;
135
+ var shape;
136
+ var edge;
137
+ var corner;
138
+ var n_edge;
139
+ var n_corner;
140
+ var rnd;
141
+ var m;
124
142
  f = new FullCube_FullCube__Ljava_lang_String_2V();
125
143
  shape = Shape_ShapeIdx[randomUintBelow(3678)];
126
144
  corner = 19088743 << 1 | 286331153;
127
145
  edge = 19088743 << 1;
128
146
  n_corner = n_edge = 8;
129
147
  for (i = 0; i < 24; i++) {
130
- if ((shape >> i & 1) == 0) {
148
+ if ((shape >> i & 1) === 0) {
131
149
  rnd = randomUintBelow(n_edge) << 2;
132
150
  FullCube_setPiece(f, 23 - i, edge >> rnd & 15);
133
151
  m = (1 << rnd) - 1;
@@ -155,7 +173,12 @@ _.ml = 0;
155
173
  _.ul = 70195;
156
174
  _.ur = 4544119;
157
175
  function Search_init2(obj) {
158
- var corner, edge, i, j, ml, prun;
176
+ var corner;
177
+ var edge;
178
+ var i;
179
+ var j;
180
+ var ml;
181
+ var prun;
159
182
  FullCube_copy(obj.Search_d, obj.Search_c);
160
183
  for (i = 0; i < obj.Search_length1; ++i) {
161
184
  FullCube_doMove(obj.Search_d, obj.Search_move[i]);
@@ -191,7 +214,8 @@ function Search_init2(obj) {
191
214
  }
192
215
  function Search_move2string(obj, len) {
193
216
  var s = "";
194
- var top = 0, bottom = 0;
217
+ var top = 0;
218
+ var bottom = 0;
195
219
  for (var i = len - 1; i >= 0; i--) {
196
220
  var val = obj.Search_move[i];
197
221
  if (val > 0) {
@@ -201,25 +225,27 @@ function Search_move2string(obj, len) {
201
225
  val = 12 + val;
202
226
  bottom = val > 6 ? val - 12 : val;
203
227
  } else {
204
- if (top == 0 && bottom == 0) {
228
+ if (top === 0 && bottom === 0) {
205
229
  s += " / ";
206
230
  } else {
207
- s += "(" + top + ", " + bottom + ") / ";
231
+ s += `(${top}, ${bottom}) / `;
208
232
  }
209
233
  top = bottom = 0;
210
234
  }
211
235
  }
212
236
  if (top !== 0 || bottom !== 0) {
213
- s += "(" + top + ", " + bottom + ")";
237
+ s += `(${top}, ${bottom})`;
214
238
  }
215
239
  return s;
216
240
  }
217
241
  function Search_phase1(obj, shape, prunvalue, maxl, depth, lm) {
218
- var m, prunx, shapex;
219
- if (prunvalue == 0 && maxl < 4) {
220
- return maxl == 0 && Search_init2(obj);
242
+ var m;
243
+ var prunx;
244
+ var shapex;
245
+ if (prunvalue === 0 && maxl < 4) {
246
+ return maxl === 0 && Search_init2(obj);
221
247
  }
222
- if (lm != 0) {
248
+ if (lm !== 0) {
223
249
  shapex = Shape_TwistMove[shape];
224
250
  prunx = ShapePrun[shapex];
225
251
  if (prunx < maxl) {
@@ -274,11 +300,17 @@ function Search_phase1(obj, shape, prunvalue, maxl, depth, lm) {
274
300
  return false;
275
301
  }
276
302
  function Search_phase2(obj, edge, corner, topEdgeFirst, botEdgeFirst, ml, maxl, depth, lm) {
277
- var botEdgeFirstx, cornerx, edgex, m, prun1, prun2, topEdgeFirstx;
278
- if (maxl == 0 && !topEdgeFirst && botEdgeFirst) {
303
+ var botEdgeFirstx;
304
+ var cornerx;
305
+ var edgex;
306
+ var m;
307
+ var prun1;
308
+ var prun2;
309
+ var topEdgeFirstx;
310
+ if (maxl === 0 && !topEdgeFirst && botEdgeFirst) {
279
311
  return true;
280
312
  }
281
- if (lm != 0 && topEdgeFirst == botEdgeFirst) {
313
+ if (lm !== 0 && topEdgeFirst === botEdgeFirst) {
282
314
  edgex = Square_TwistMove[edge];
283
315
  cornerx = Square_TwistMove[corner];
284
316
  if (SquarePrun[edgex << 1 | 1 - ml] < maxl && SquarePrun[cornerx << 1 | 1 - ml] < maxl) {
@@ -411,11 +443,12 @@ function Shape_$clinit() {
411
443
  Shape_init();
412
444
  }
413
445
  function Shape_bottomMove(obj) {
414
- var move, moveParity;
446
+ var move;
447
+ var moveParity;
415
448
  move = 0;
416
449
  moveParity = 0;
417
450
  do {
418
- if ((obj.bottom & 2048) == 0) {
451
+ if ((obj.bottom & 2048) === 0) {
419
452
  move += 1;
420
453
  obj.bottom = obj.bottom << 1;
421
454
  } else {
@@ -423,8 +456,8 @@ function Shape_bottomMove(obj) {
423
456
  obj.bottom = obj.bottom << 2 ^ 12291;
424
457
  }
425
458
  moveParity = 1 - moveParity;
426
- } while ((bitCount(obj.bottom & 63) & 1) != 0);
427
- (bitCount(obj.bottom) & 2) == 0 && (obj.Shape_parity ^= moveParity);
459
+ } while ((bitCount(obj.bottom & 63) & 1) !== 0);
460
+ (bitCount(obj.bottom) & 2) === 0 && (obj.Shape_parity ^= moveParity);
428
461
  return move;
429
462
  }
430
463
  function Shape_getIdx(obj) {
@@ -439,11 +472,12 @@ function Shape_setIdx(obj, idx) {
439
472
  obj.top >>= 12;
440
473
  }
441
474
  function Shape_topMove(obj) {
442
- var move, moveParity;
475
+ var move;
476
+ var moveParity;
443
477
  move = 0;
444
478
  moveParity = 0;
445
479
  do {
446
- if ((obj.top & 2048) == 0) {
480
+ if ((obj.top & 2048) === 0) {
447
481
  move += 1;
448
482
  obj.top = obj.top << 1;
449
483
  } else {
@@ -451,8 +485,8 @@ function Shape_topMove(obj) {
451
485
  obj.top = obj.top << 2 ^ 12291;
452
486
  }
453
487
  moveParity = 1 - moveParity;
454
- } while ((bitCount(obj.top & 63) & 1) != 0);
455
- (bitCount(obj.top) & 2) == 0 && (obj.Shape_parity ^= moveParity);
488
+ } while ((bitCount(obj.top & 63) & 1) !== 0);
489
+ (bitCount(obj.top) & 2) === 0 && (obj.Shape_parity ^= moveParity);
456
490
  return move;
457
491
  }
458
492
  function Shape_Shape() {
@@ -463,7 +497,22 @@ function Shape_getShape2Idx(shp) {
463
497
  return ret;
464
498
  }
465
499
  function Shape_init() {
466
- var count, depth, dl, done, done0, dr, i, idx, m, s, ul, ur, value, p1, p3, temp;
500
+ var count;
501
+ var depth;
502
+ var dl;
503
+ var done;
504
+ var done0;
505
+ var dr;
506
+ var i;
507
+ var idx;
508
+ var m;
509
+ var s;
510
+ var ul;
511
+ var ur;
512
+ var value;
513
+ var p1;
514
+ var p3;
515
+ var temp;
467
516
  count = 0;
468
517
  for (i = 0; i < 28561; ++i) {
469
518
  dr = Shape_halflayer[i % 13];
@@ -471,7 +520,7 @@ function Shape_init() {
471
520
  ur = Shape_halflayer[~~(~~(i / 13) / 13) % 13];
472
521
  ul = Shape_halflayer[~~(~~(~~(i / 13) / 13) / 13)];
473
522
  value = ul << 18 | ur << 12 | dl << 6 | dr;
474
- bitCount(value) == 16 && (Shape_ShapeIdx[count++] = value);
523
+ bitCount(value) === 16 && (Shape_ShapeIdx[count++] = value);
475
524
  }
476
525
  s = new Shape_Shape();
477
526
  for (i = 0; i < 7356; ++i) {
@@ -500,35 +549,35 @@ function Shape_init() {
500
549
  done = 4;
501
550
  done0 = 0;
502
551
  depth = -1;
503
- while (done != done0) {
552
+ while (done !== done0) {
504
553
  done0 = done;
505
554
  ++depth;
506
555
  for (i = 0; i < 7536; ++i) {
507
- if (ShapePrun[i] == depth) {
556
+ if (ShapePrun[i] === depth) {
508
557
  m = 0;
509
558
  idx = i;
510
559
  do {
511
560
  idx = Shape_TopMove[idx];
512
561
  m += idx & 15;
513
562
  idx >>= 4;
514
- if (ShapePrun[idx] == -1) {
563
+ if (ShapePrun[idx] === -1) {
515
564
  ++done;
516
565
  ShapePrun[idx] = depth + 1;
517
566
  }
518
- } while (m != 12);
567
+ } while (m !== 12);
519
568
  m = 0;
520
569
  idx = i;
521
570
  do {
522
571
  idx = Shape_BottomMove[idx];
523
572
  m += idx & 15;
524
573
  idx >>= 4;
525
- if (ShapePrun[idx] == -1) {
574
+ if (ShapePrun[idx] === -1) {
526
575
  ++done;
527
576
  ShapePrun[idx] = depth + 1;
528
577
  }
529
- } while (m != 12);
578
+ } while (m !== 12);
530
579
  idx = Shape_TwistMove[i];
531
- if (ShapePrun[idx] == -1) {
580
+ if (ShapePrun[idx] === -1) {
532
581
  ++done;
533
582
  ShapePrun[idx] = depth + 1;
534
583
  }
@@ -560,14 +609,18 @@ function Square_$clinit() {
560
609
  Square_BottomMove = [];
561
610
  fact = [1, 1, 2, 6, 24, 120, 720, 5040];
562
611
  Cnk = [];
563
- for (var i = 0; i < 12; ++i)
612
+ for (var i = 0; i < 12; ++i) {
564
613
  Cnk[i] = [];
614
+ }
565
615
  Square_init();
566
616
  }
567
617
  function Square_Square() {
568
618
  }
569
619
  function get8Perm(arr) {
570
- var i, idx, v, val;
620
+ var i;
621
+ var idx;
622
+ var v;
623
+ var val;
571
624
  idx = 0;
572
625
  val = 1985229328;
573
626
  for (i = 0; i < 7; ++i) {
@@ -578,7 +631,19 @@ function get8Perm(arr) {
578
631
  return idx & 65535;
579
632
  }
580
633
  function Square_init() {
581
- var check, depth, done, find, i, idx, idxx, inv, j, m, ml, pos, temp;
634
+ var check;
635
+ var depth;
636
+ var done;
637
+ var find;
638
+ var i;
639
+ var idx;
640
+ var idxx;
641
+ var inv;
642
+ var j;
643
+ var m;
644
+ var ml;
645
+ var pos;
646
+ var temp;
582
647
  for (i = 0; i < 12; ++i) {
583
648
  Cnk[i][0] = 1;
584
649
  Cnk[i][i] = 1;
@@ -624,33 +689,36 @@ function Square_init() {
624
689
  ++depth;
625
690
  OUT:
626
691
  for (i = 0; i < 80640; ++i) {
627
- if (SquarePrun[i] == find) {
692
+ if (SquarePrun[i] === find) {
628
693
  idx = ~~i >> 1;
629
694
  ml = i & 1;
630
695
  idxx = Square_TwistMove[idx] << 1 | 1 - ml;
631
- if (SquarePrun[idxx] == check) {
696
+ if (SquarePrun[idxx] === check) {
632
697
  ++done;
633
698
  SquarePrun[inv ? i : idxx] = ~~(depth << 24) >> 24;
634
- if (inv)
699
+ if (inv) {
635
700
  continue OUT;
701
+ }
636
702
  }
637
703
  idxx = idx;
638
704
  for (m = 0; m < 4; ++m) {
639
705
  idxx = Square_TopMove[idxx];
640
- if (SquarePrun[idxx << 1 | ml] == check) {
706
+ if (SquarePrun[idxx << 1 | ml] === check) {
641
707
  ++done;
642
708
  SquarePrun[inv ? i : idxx << 1 | ml] = ~~(depth << 24) >> 24;
643
- if (inv)
709
+ if (inv) {
644
710
  continue OUT;
711
+ }
645
712
  }
646
713
  }
647
714
  for (m = 0; m < 4; ++m) {
648
715
  idxx = Square_BottomMove[idxx];
649
- if (SquarePrun[idxx << 1 | ml] == check) {
716
+ if (SquarePrun[idxx << 1 | ml] === check) {
650
717
  ++done;
651
718
  SquarePrun[inv ? i : idxx << 1 | ml] = ~~(depth << 24) >> 24;
652
- if (inv)
719
+ if (inv) {
653
720
  continue OUT;
721
+ }
654
722
  }
655
723
  }
656
724
  }
@@ -658,7 +726,11 @@ function Square_init() {
658
726
  }
659
727
  }
660
728
  function set8Perm(arr, idx) {
661
- var i, m, p, v, val;
729
+ var i;
730
+ var m;
731
+ var p;
732
+ var v;
733
+ var val;
662
734
  val = 1985229328;
663
735
  for (i = 0; i < 7; ++i) {
664
736
  p = fact[7 - i];
@@ -694,7 +766,10 @@ function bitCount(x) {
694
766
  return x & 63;
695
767
  }
696
768
  function binarySearch(sortedArray, key) {
697
- var high, low, mid, midVal;
769
+ var high;
770
+ var low;
771
+ var mid;
772
+ var midVal;
698
773
  low = 0;
699
774
  high = sortedArray.length - 1;
700
775
  while (low <= high) {
@@ -748,4 +823,4 @@ async function getRandomSquare1ScrambleString() {
748
823
  export {
749
824
  getRandomSquare1ScrambleString
750
825
  };
751
- //# sourceMappingURL=search-dynamic-solve-sq1-HA72TYF2.js.map
826
+ //# sourceMappingURL=search-dynamic-solve-sq1-W6PSSLR6.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/cubing/vendor/sq12phase/sq1-solver.js"],
4
+ "sourcesContent": ["/*\n\nscramble_sq1.js\n\nSquare-1 Solver / Scramble Generator in JavaScript.\n\nCode by by Shuang Chen.\nCompiled to JavaScript using GWT.\n\n*/\n\nimport { randomUIntBelowFactory } from \"../random-uint-below\";\n\nfunction FullCube_copy(obj, c) {\n obj.ul = c.ul;\n obj.ur = c.ur;\n obj.dl = c.dl;\n obj.dr = c.dr;\n obj.ml = c.ml;\n}\n\nfunction FullCube_doMove(obj, move) {\n var temp;\n move <<= 2;\n if (move > 24) {\n move = 48 - move;\n temp = obj.ul;\n obj.ul = ((~~obj.ul >> move) | (obj.ur << (24 - move))) & 16777215;\n obj.ur = ((~~obj.ur >> move) | (temp << (24 - move))) & 16777215;\n } else if (move > 0) {\n temp = obj.ul;\n obj.ul = ((obj.ul << move) | (~~obj.ur >> (24 - move))) & 16777215;\n obj.ur = ((obj.ur << move) | (~~temp >> (24 - move))) & 16777215;\n } else if (move === 0) {\n temp = obj.ur;\n obj.ur = obj.dl;\n obj.dl = temp;\n obj.ml = 1 - obj.ml;\n } else if (move >= -24) {\n move = -move;\n temp = obj.dl;\n obj.dl = ((obj.dl << move) | (~~obj.dr >> (24 - move))) & 16777215;\n obj.dr = ((obj.dr << move) | (~~temp >> (24 - move))) & 16777215;\n } else if (move < -24) {\n move = 48 + move;\n temp = obj.dl;\n obj.dl = ((~~obj.dl >> move) | (obj.dr << (24 - move))) & 16777215;\n obj.dr = ((~~obj.dr >> move) | (temp << (24 - move))) & 16777215;\n }\n}\n\nfunction FullCube_getParity(obj) {\n var a;\n var b;\n var cnt;\n var i;\n var p;\n cnt = 0;\n obj.arr[0] = FullCube_pieceAt(obj, 0);\n for (i = 1; i < 24; ++i) {\n FullCube_pieceAt(obj, i) !== obj.arr[cnt] &&\n (obj.arr[++cnt] = FullCube_pieceAt(obj, i));\n }\n p = 0;\n for (a = 0; a < 16; ++a) {\n for (b = a + 1; b < 16; ++b) {\n obj.arr[a] > obj.arr[b] && (p ^= 1);\n }\n }\n return p;\n}\n\nfunction FullCube_getShapeIdx(obj) {\n var dlx;\n var drx;\n var ulx;\n var urx;\n urx = obj.ur & 1118481;\n urx |= ~~urx >> 3;\n urx |= ~~urx >> 6;\n urx = (urx & 15) | ((~~urx >> 12) & 48);\n ulx = obj.ul & 1118481;\n ulx |= ~~ulx >> 3;\n ulx |= ~~ulx >> 6;\n ulx = (ulx & 15) | ((~~ulx >> 12) & 48);\n drx = obj.dr & 1118481;\n drx |= ~~drx >> 3;\n drx |= ~~drx >> 6;\n drx = (drx & 15) | ((~~drx >> 12) & 48);\n dlx = obj.dl & 1118481;\n dlx |= ~~dlx >> 3;\n dlx |= ~~dlx >> 6;\n dlx = (dlx & 15) | ((~~dlx >> 12) & 48);\n return Shape_getShape2Idx(\n (FullCube_getParity(obj) << 24) |\n (ulx << 18) |\n (urx << 12) |\n (dlx << 6) |\n drx,\n );\n}\n\nfunction FullCube_getSquare(obj, sq) {\n var a;\n var b;\n for (a = 0; a < 8; ++a) {\n obj.prm[a] = ~~((~~FullCube_pieceAt(obj, a * 3 + 1) >> 1) << 24) >> 24;\n }\n sq.cornperm = get8Perm(obj.prm);\n sq.topEdgeFirst = FullCube_pieceAt(obj, 0) === FullCube_pieceAt(obj, 1);\n a = sq.topEdgeFirst ? 2 : 0;\n for (b = 0; b < 4; a += 3, ++b) {\n obj.prm[b] = ~~((~~FullCube_pieceAt(obj, a) >> 1) << 24) >> 24;\n }\n sq.botEdgeFirst = FullCube_pieceAt(obj, 12) === FullCube_pieceAt(obj, 13);\n a = sq.botEdgeFirst ? 14 : 12;\n for (; b < 8; a += 3, ++b) {\n obj.prm[b] = ~~((~~FullCube_pieceAt(obj, a) >> 1) << 24) >> 24;\n }\n sq.edgeperm = get8Perm(obj.prm);\n sq.ml = obj.ml;\n}\n\nfunction FullCube_pieceAt(obj, idx) {\n var ret;\n idx < 6\n ? (ret = ~~obj.ul >> ((5 - idx) << 2))\n : idx < 12\n ? (ret = ~~obj.ur >> ((11 - idx) << 2))\n : idx < 18\n ? (ret = ~~obj.dl >> ((17 - idx) << 2))\n : (ret = ~~obj.dr >> ((23 - idx) << 2));\n return ~~((ret & 15) << 24) >> 24;\n}\n\nfunction FullCube_setPiece(obj, idx, value) {\n if (idx < 6) {\n obj.ul &= ~(0xf << ((5 - idx) << 2));\n obj.ul |= value << ((5 - idx) << 2);\n } else if (idx < 12) {\n obj.ur &= ~(0xf << ((11 - idx) << 2));\n obj.ur |= value << ((11 - idx) << 2);\n } else if (idx < 18) {\n obj.dl &= ~(0xf << ((17 - idx) << 2));\n obj.dl |= value << ((17 - idx) << 2);\n } else {\n obj.dr &= ~(0xf << ((23 - idx) << 2));\n obj.dr |= value << ((23 - idx) << 2);\n }\n}\n\nfunction FullCube_FullCube__Ljava_lang_String_2V() {\n this.arr = [];\n this.prm = [];\n}\n\nasync function FullCube_randomCube() {\n const randomUintBelow = await randomUIntBelowFactory();\n\n var f;\n var i;\n var shape;\n var edge;\n var corner;\n var n_edge;\n var n_corner;\n var rnd;\n var m;\n f = new FullCube_FullCube__Ljava_lang_String_2V();\n shape = Shape_ShapeIdx[randomUintBelow(3678)];\n corner = (0x01234567 << 1) | 0x11111111;\n edge = 0x01234567 << 1;\n n_corner = n_edge = 8;\n for (i = 0; i < 24; i++) {\n if (((shape >> i) & 1) === 0) {\n //edge\n rnd = randomUintBelow(n_edge) << 2;\n FullCube_setPiece(f, 23 - i, (edge >> rnd) & 0xf);\n m = (1 << rnd) - 1;\n edge = (edge & m) + ((edge >> 4) & ~m);\n --n_edge;\n } else {\n //corner\n rnd = randomUintBelow(n_corner) << 2;\n FullCube_setPiece(f, 23 - i, (corner >> rnd) & 0xf);\n FullCube_setPiece(f, 22 - i, (corner >> rnd) & 0xf);\n m = (1 << rnd) - 1;\n corner = (corner & m) + ((corner >> 4) & ~m);\n --n_corner;\n ++i;\n }\n }\n f.ml = randomUintBelow(2);\n //\tconsole.log(f);\n return f;\n}\n\nfunction FullCube() {}\n\nlet _ = (FullCube_FullCube__Ljava_lang_String_2V.prototype =\n FullCube.prototype);\n_.dl = 10062778;\n_.dr = 14536702;\n_.ml = 0;\n_.ul = 70195;\n_.ur = 4544119;\nfunction Search_init2(obj) {\n var corner;\n var edge;\n var i;\n var j;\n var ml;\n var prun;\n FullCube_copy(obj.Search_d, obj.Search_c);\n for (i = 0; i < obj.Search_length1; ++i) {\n FullCube_doMove(obj.Search_d, obj.Search_move[i]);\n }\n FullCube_getSquare(obj.Search_d, obj.Search_sq);\n edge = obj.Search_sq.edgeperm;\n corner = obj.Search_sq.cornperm;\n ml = obj.Search_sq.ml;\n prun = Math.max(\n SquarePrun[(obj.Search_sq.edgeperm << 1) | ml],\n SquarePrun[(obj.Search_sq.cornperm << 1) | ml],\n );\n for (i = prun; i < obj.Search_maxlen2; ++i) {\n if (\n Search_phase2(\n obj,\n edge,\n corner,\n obj.Search_sq.topEdgeFirst,\n obj.Search_sq.botEdgeFirst,\n ml,\n i,\n obj.Search_length1,\n 0,\n )\n ) {\n for (j = 0; j < i; ++j) {\n FullCube_doMove(obj.Search_d, obj.Search_move[obj.Search_length1 + j]);\n //console.log(obj.Search_move[obj.Search_length1 + j]);\n }\n //console.log(obj.Search_d);\n //console.log(obj.Search_move);\n obj.Search_sol_string = Search_move2string(obj, i + obj.Search_length1);\n return true;\n }\n }\n return false;\n}\n\nfunction Search_move2string(obj, len) {\n var s = \"\";\n var top = 0;\n var bottom = 0;\n for (var i = len - 1; i >= 0; i--) {\n var val = obj.Search_move[i];\n //console.log(val);\n if (val > 0) {\n val = 12 - val;\n top = val > 6 ? val - 12 : val;\n } else if (val < 0) {\n val = 12 + val;\n bottom = val > 6 ? val - 12 : val;\n } else {\n if (top === 0 && bottom === 0) {\n s += \" / \";\n } else {\n s += `(${top}, ${bottom}) / `;\n }\n top = bottom = 0;\n }\n }\n if (top !== 0 || bottom !== 0) {\n s += `(${top}, ${bottom})`;\n }\n return s; // + \" (\" + len + \"t)\";\n}\n\nfunction Search_phase1(obj, shape, prunvalue, maxl, depth, lm) {\n var m;\n var prunx;\n var shapex;\n if (prunvalue === 0 && maxl < 4) {\n return maxl === 0 && Search_init2(obj);\n }\n if (lm !== 0) {\n shapex = Shape_TwistMove[shape];\n prunx = ShapePrun[shapex];\n if (prunx < maxl) {\n obj.Search_move[depth] = 0;\n if (Search_phase1(obj, shapex, prunx, maxl - 1, depth + 1, 0)) {\n return true;\n }\n }\n }\n shapex = shape;\n if (lm <= 0) {\n m = 0;\n for (;;) {\n m += Shape_TopMove[shapex];\n shapex = ~~m >> 4;\n m &= 15;\n if (m >= 12) {\n break;\n }\n prunx = ShapePrun[shapex];\n if (prunx > maxl) {\n break;\n } else if (prunx < maxl) {\n obj.Search_move[depth] = m;\n if (Search_phase1(obj, shapex, prunx, maxl - 1, depth + 1, 1)) {\n return true;\n }\n }\n }\n }\n shapex = shape;\n if (lm <= 1) {\n m = 0;\n for (;;) {\n m += Shape_BottomMove[shapex];\n shapex = ~~m >> 4;\n m &= 15;\n if (m >= 6) {\n break;\n }\n prunx = ShapePrun[shapex];\n if (prunx > maxl) {\n break;\n } else if (prunx < maxl) {\n obj.Search_move[depth] = -m;\n if (Search_phase1(obj, shapex, prunx, maxl - 1, depth + 1, 2)) {\n return true;\n }\n }\n }\n }\n return false;\n}\n\nfunction Search_phase2(\n obj,\n edge,\n corner,\n topEdgeFirst,\n botEdgeFirst,\n ml,\n maxl,\n depth,\n lm,\n) {\n var botEdgeFirstx;\n var cornerx;\n var edgex;\n var m;\n var prun1;\n var prun2;\n var topEdgeFirstx;\n if (maxl === 0 && !topEdgeFirst && botEdgeFirst) {\n return true;\n }\n if (lm !== 0 && topEdgeFirst === botEdgeFirst) {\n edgex = Square_TwistMove[edge];\n cornerx = Square_TwistMove[corner];\n if (\n SquarePrun[(edgex << 1) | (1 - ml)] < maxl &&\n SquarePrun[(cornerx << 1) | (1 - ml)] < maxl\n ) {\n obj.Search_move[depth] = 0;\n if (\n Search_phase2(\n obj,\n edgex,\n cornerx,\n topEdgeFirst,\n botEdgeFirst,\n 1 - ml,\n maxl - 1,\n depth + 1,\n 0,\n )\n ) {\n return true;\n }\n }\n }\n if (lm <= 0) {\n topEdgeFirstx = !topEdgeFirst;\n edgex = topEdgeFirstx ? Square_TopMove[edge] : edge;\n cornerx = topEdgeFirstx ? corner : Square_TopMove[corner];\n m = topEdgeFirstx ? 1 : 2;\n prun1 = SquarePrun[(edgex << 1) | ml];\n prun2 = SquarePrun[(cornerx << 1) | ml];\n while (m < 12 && prun1 <= maxl && prun1 <= maxl) {\n if (prun1 < maxl && prun2 < maxl) {\n obj.Search_move[depth] = m;\n if (\n Search_phase2(\n obj,\n edgex,\n cornerx,\n topEdgeFirstx,\n botEdgeFirst,\n ml,\n maxl - 1,\n depth + 1,\n 1,\n )\n ) {\n return true;\n }\n }\n topEdgeFirstx = !topEdgeFirstx;\n if (topEdgeFirstx) {\n edgex = Square_TopMove[edgex];\n prun1 = SquarePrun[(edgex << 1) | ml];\n m += 1;\n } else {\n cornerx = Square_TopMove[cornerx];\n prun2 = SquarePrun[(cornerx << 1) | ml];\n m += 2;\n }\n }\n }\n if (lm <= 1) {\n botEdgeFirstx = !botEdgeFirst;\n edgex = botEdgeFirstx ? Square_BottomMove[edge] : edge;\n cornerx = botEdgeFirstx ? corner : Square_BottomMove[corner];\n m = botEdgeFirstx ? 1 : 2;\n prun1 = SquarePrun[(edgex << 1) | ml];\n prun2 = SquarePrun[(cornerx << 1) | ml];\n while (m < (maxl > 3 ? 6 : 12) && prun1 <= maxl && prun1 <= maxl) {\n if (prun1 < maxl && prun2 < maxl) {\n obj.Search_move[depth] = -m;\n if (\n Search_phase2(\n obj,\n edgex,\n cornerx,\n topEdgeFirst,\n botEdgeFirstx,\n ml,\n maxl - 1,\n depth + 1,\n 2,\n )\n ) {\n return true;\n }\n }\n botEdgeFirstx = !botEdgeFirstx;\n if (botEdgeFirstx) {\n edgex = Square_BottomMove[edgex];\n prun1 = SquarePrun[(edgex << 1) | ml];\n m += 1;\n } else {\n cornerx = Square_BottomMove[cornerx];\n prun2 = SquarePrun[(cornerx << 1) | ml];\n m += 2;\n }\n }\n }\n return false;\n}\n\nfunction Search_solution(obj, c) {\n var shape;\n obj.Search_c = c;\n shape = FullCube_getShapeIdx(c);\n //console.log(shape);\n for (\n obj.Search_length1 = ShapePrun[shape];\n obj.Search_length1 < 100;\n ++obj.Search_length1\n ) {\n //console.log(obj.Search_length1);\n obj.Search_maxlen2 = Math.min(31 - obj.Search_length1, 17);\n if (\n Search_phase1(obj, shape, ShapePrun[shape], obj.Search_length1, 0, -1)\n ) {\n break;\n }\n }\n return obj.Search_sol_string;\n}\n\nfunction Search_Search() {\n this.Search_move = [];\n this.Search_d = new FullCube_FullCube__Ljava_lang_String_2V();\n this.Search_sq = new Square_Square();\n}\n\nfunction Search() {}\n\n_ = Search_Search.prototype = Search.prototype;\n_.Search_c = null;\n_.Search_length1 = 0;\n_.Search_maxlen2 = 0;\n_.Search_sol_string = null;\nlet Shape_$clinit_ran = false;\nfunction Shape_$clinit() {\n if (Shape_$clinit_ran) {\n return;\n }\n Shape_$clinit_ran = true;\n Shape_halflayer = [0, 3, 6, 12, 15, 24, 27, 30, 48, 51, 54, 60, 63];\n Shape_ShapeIdx = [];\n ShapePrun = [];\n Shape_TopMove = [];\n Shape_BottomMove = [];\n Shape_TwistMove = [];\n Shape_init();\n}\n\nfunction Shape_bottomMove(obj) {\n var move;\n var moveParity;\n move = 0;\n moveParity = 0;\n do {\n if ((obj.bottom & 2048) === 0) {\n move += 1;\n obj.bottom = obj.bottom << 1;\n } else {\n move += 2;\n obj.bottom = (obj.bottom << 2) ^ 12291;\n }\n moveParity = 1 - moveParity;\n } while ((bitCount(obj.bottom & 63) & 1) !== 0);\n (bitCount(obj.bottom) & 2) === 0 && (obj.Shape_parity ^= moveParity);\n return move;\n}\n\nfunction Shape_getIdx(obj) {\n var ret;\n ret =\n (binarySearch(Shape_ShapeIdx, (obj.top << 12) | obj.bottom) << 1) |\n obj.Shape_parity;\n return ret;\n}\n\nfunction Shape_setIdx(obj, idx) {\n obj.Shape_parity = idx & 1;\n obj.top = Shape_ShapeIdx[~~idx >> 1];\n obj.bottom = obj.top & 4095;\n obj.top >>= 12;\n}\n\nfunction Shape_topMove(obj) {\n var move;\n var moveParity;\n move = 0;\n moveParity = 0;\n do {\n if ((obj.top & 2048) === 0) {\n move += 1;\n obj.top = obj.top << 1;\n } else {\n move += 2;\n obj.top = (obj.top << 2) ^ 12291;\n }\n moveParity = 1 - moveParity;\n } while ((bitCount(obj.top & 63) & 1) !== 0);\n (bitCount(obj.top) & 2) === 0 && (obj.Shape_parity ^= moveParity);\n return move;\n}\n\nfunction Shape_Shape() {}\n\nfunction Shape_getShape2Idx(shp) {\n var ret;\n ret = (binarySearch(Shape_ShapeIdx, shp & 16777215) << 1) | (~~shp >> 24);\n return ret;\n}\n\nfunction Shape_init() {\n var count;\n var depth;\n var dl;\n var done;\n var done0;\n var dr;\n var i;\n var idx;\n var m;\n var s;\n var ul;\n var ur;\n var value;\n var p1;\n var p3;\n var temp;\n count = 0;\n for (i = 0; i < 28561; ++i) {\n dr = Shape_halflayer[i % 13];\n dl = Shape_halflayer[~~(i / 13) % 13];\n ur = Shape_halflayer[~~(~~(i / 13) / 13) % 13];\n ul = Shape_halflayer[~~(~~(~~(i / 13) / 13) / 13)];\n value = (ul << 18) | (ur << 12) | (dl << 6) | dr;\n bitCount(value) === 16 && (Shape_ShapeIdx[count++] = value);\n }\n s = new Shape_Shape();\n for (i = 0; i < 7356; ++i) {\n Shape_setIdx(s, i);\n Shape_TopMove[i] = Shape_topMove(s);\n Shape_TopMove[i] |= Shape_getIdx(s) << 4;\n Shape_setIdx(s, i);\n Shape_BottomMove[i] = Shape_bottomMove(s);\n Shape_BottomMove[i] |= Shape_getIdx(s) << 4;\n Shape_setIdx(s, i);\n temp = s.top & 63;\n p1 = bitCount(temp);\n p3 = bitCount(s.bottom & 4032);\n s.Shape_parity ^= 1 & (~~(p1 & p3) >> 1);\n s.top = (s.top & 4032) | ((~~s.bottom >> 6) & 63);\n s.bottom = (s.bottom & 63) | (temp << 6);\n Shape_TwistMove[i] = Shape_getIdx(s);\n }\n for (i = 0; i < 7536; ++i) {\n ShapePrun[i] = -1;\n }\n ShapePrun[Shape_getShape2Idx(14378715)] = 0;\n ShapePrun[Shape_getShape2Idx(31157686)] = 0;\n ShapePrun[Shape_getShape2Idx(23967451)] = 0;\n ShapePrun[Shape_getShape2Idx(7191990)] = 0;\n done = 4;\n done0 = 0;\n depth = -1;\n while (done !== done0) {\n done0 = done;\n ++depth;\n for (i = 0; i < 7536; ++i) {\n if (ShapePrun[i] === depth) {\n m = 0;\n idx = i;\n do {\n idx = Shape_TopMove[idx];\n m += idx & 15;\n idx >>= 4;\n if (ShapePrun[idx] === -1) {\n ++done;\n ShapePrun[idx] = depth + 1;\n }\n } while (m !== 12);\n m = 0;\n idx = i;\n do {\n idx = Shape_BottomMove[idx];\n m += idx & 15;\n idx >>= 4;\n if (ShapePrun[idx] === -1) {\n ++done;\n ShapePrun[idx] = depth + 1;\n }\n } while (m !== 12);\n idx = Shape_TwistMove[i];\n if (ShapePrun[idx] === -1) {\n ++done;\n ShapePrun[idx] = depth + 1;\n }\n }\n }\n }\n}\n\nfunction Shape() {}\n\n_ = Shape_Shape.prototype = Shape.prototype;\n_.bottom = 0;\n_.Shape_parity = 0;\n_.top = 0;\nvar Shape_BottomMove;\nvar Shape_ShapeIdx;\nvar ShapePrun;\nvar Shape_TopMove;\nvar Shape_TwistMove;\nvar Shape_halflayer;\nlet Square_$clinit_ran = false;\nfunction Square_$clinit() {\n if (Square_$clinit_ran) {\n return;\n }\n Square_$clinit_ran = true;\n SquarePrun = [];\n Square_TwistMove = [];\n Square_TopMove = [];\n Square_BottomMove = [];\n fact = [1, 1, 2, 6, 24, 120, 720, 5040];\n Cnk = [];\n for (var i = 0; i < 12; ++i) {\n Cnk[i] = [];\n }\n Square_init();\n}\n\nfunction Square_Square() {}\n\nfunction get8Perm(arr) {\n var i;\n var idx;\n var v;\n var val;\n idx = 0;\n val = 1985229328;\n for (i = 0; i < 7; ++i) {\n v = arr[i] << 2;\n idx = (8 - i) * idx + ((~~val >> v) & 7);\n val -= 286331152 << v;\n }\n return idx & 65535;\n}\n\nfunction Square_init() {\n var check;\n var depth;\n var done;\n var find;\n var i;\n var idx;\n var idxx;\n var inv;\n var j;\n var m;\n var ml;\n var pos;\n var temp;\n for (i = 0; i < 12; ++i) {\n Cnk[i][0] = 1;\n Cnk[i][i] = 1;\n for (j = 1; j < i; ++j) {\n Cnk[i][j] = Cnk[i - 1][j - 1] + Cnk[i - 1][j];\n }\n }\n pos = [];\n for (i = 0; i < 40320; ++i) {\n set8Perm(pos, i);\n temp = pos[2];\n pos[2] = pos[4];\n pos[4] = temp;\n temp = pos[3];\n pos[3] = pos[5];\n pos[5] = temp;\n Square_TwistMove[i] = get8Perm(pos);\n set8Perm(pos, i);\n temp = pos[0];\n pos[0] = pos[1];\n pos[1] = pos[2];\n pos[2] = pos[3];\n pos[3] = temp;\n Square_TopMove[i] = get8Perm(pos);\n set8Perm(pos, i);\n temp = pos[4];\n pos[4] = pos[5];\n pos[5] = pos[6];\n pos[6] = pos[7];\n pos[7] = temp;\n Square_BottomMove[i] = get8Perm(pos);\n }\n for (i = 0; i < 80640; ++i) {\n SquarePrun[i] = -1;\n }\n SquarePrun[0] = 0;\n depth = 0;\n done = 1;\n while (done < 80640) {\n // console.log(done);\n inv = depth >= 11;\n find = inv ? -1 : depth;\n check = inv ? depth : -1;\n ++depth;\n OUT: for (i = 0; i < 80640; ++i) {\n if (SquarePrun[i] === find) {\n idx = ~~i >> 1;\n ml = i & 1;\n idxx = (Square_TwistMove[idx] << 1) | (1 - ml);\n if (SquarePrun[idxx] === check) {\n ++done;\n SquarePrun[inv ? i : idxx] = ~~(depth << 24) >> 24;\n if (inv) {\n continue OUT;\n }\n }\n idxx = idx;\n for (m = 0; m < 4; ++m) {\n idxx = Square_TopMove[idxx];\n if (SquarePrun[(idxx << 1) | ml] === check) {\n ++done;\n SquarePrun[inv ? i : (idxx << 1) | ml] = ~~(depth << 24) >> 24;\n if (inv) {\n continue OUT;\n }\n }\n }\n for (m = 0; m < 4; ++m) {\n idxx = Square_BottomMove[idxx];\n if (SquarePrun[(idxx << 1) | ml] === check) {\n ++done;\n SquarePrun[inv ? i : (idxx << 1) | ml] = ~~(depth << 24) >> 24;\n if (inv) {\n continue OUT;\n }\n }\n }\n }\n }\n }\n}\n\nfunction set8Perm(arr, idx) {\n var i;\n var m;\n var p;\n var v;\n var val;\n val = 1985229328;\n for (i = 0; i < 7; ++i) {\n p = fact[7 - i];\n v = ~~(idx / p);\n idx -= v * p;\n v <<= 2;\n arr[i] = ~~(((~~val >> v) & 7) << 24) >> 24;\n m = (1 << v) - 1;\n val = (val & m) + ((~~val >> 4) & ~m);\n }\n arr[7] = ~~(val << 24) >> 24;\n}\n\nfunction Square() {}\n\n_ = Square_Square.prototype = Square.prototype;\n_.botEdgeFirst = false;\n_.cornperm = 0;\n_.edgeperm = 0;\n_.ml = 0;\n_.topEdgeFirst = false;\nvar Square_BottomMove;\nvar Cnk;\nvar SquarePrun;\nvar Square_TopMove;\nvar Square_TwistMove;\nvar fact;\n\nfunction bitCount(x) {\n x -= (~~x >> 1) & 1431655765;\n x = ((~~x >> 2) & 858993459) + (x & 858993459);\n x = ((~~x >> 4) + x) & 252645135;\n x += ~~x >> 8;\n x += ~~x >> 16;\n return x & 63;\n}\n\nfunction binarySearch(sortedArray, key) {\n var high;\n var low;\n var mid;\n var midVal;\n low = 0;\n high = sortedArray.length - 1;\n while (low <= high) {\n mid = low + (~~(high - low) >> 1);\n midVal = sortedArray[mid];\n if (midVal < key) {\n low = mid + 1;\n } else if (midVal > key) {\n high = mid - 1;\n } else {\n return mid;\n }\n }\n return -low - 1;\n}\n\n/*\n * Some helper functions.\n */\n\nvar square1Solver_initialized = false;\n\nvar square1SolverInitialize = function (doneCallback, _, statusCallback) {\n if (!square1Solver_initialized) {\n Shape_$clinit();\n Square_$clinit();\n }\n\n if (statusCallback) {\n statusCallback(\"Done initializing Square-1.\");\n }\n\n square1Solver_initialized = true;\n if (doneCallback != null) {\n doneCallback();\n }\n};\n\nvar square1SolverGetRandomPosition = async function () {\n if (!square1Solver_initialized) {\n square1SolverInitialize();\n }\n return FullCube_randomCube();\n};\n\nvar square1SolverGenerate = function (state) {\n var search_search = new Search_Search(); // Can this be factored out?\n return Search_solution(search_search, state);\n};\n\nvar square1SolverGetRandomScramble = async function () {\n var randomState = await square1SolverGetRandomPosition();\n var scrambleString = square1SolverGenerate(randomState);\n\n return {\n state: randomState,\n scramble_string: scrambleString,\n };\n};\n\nexport async function getRandomSquare1ScrambleString() {\n return (await square1SolverGetRandomScramble()).scramble_string;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["_"]
7
+ }