cubing 0.34.2 → 0.34.4
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.
- package/dist/esm/alg/index.js +1 -1
- package/dist/esm/bluetooth/index.js +5 -5
- package/dist/esm/{chunk-IJP4IAGZ.js → chunk-ELZ5WICP.js} +4 -4
- package/dist/esm/chunk-ELZ5WICP.js.map +7 -0
- package/dist/esm/{chunk-AUF56UEH.js → chunk-HBJNS3VF.js} +2 -2
- package/dist/esm/{chunk-AUF56UEH.js.map → chunk-HBJNS3VF.js.map} +0 -0
- package/dist/esm/{chunk-XPTBX62N.js → chunk-JXIKYWF4.js} +48 -23
- package/dist/esm/chunk-JXIKYWF4.js.map +7 -0
- package/dist/esm/{chunk-OGXWZ6ER.js → chunk-P6GSDAYY.js} +2 -2
- package/dist/esm/{chunk-OGXWZ6ER.js.map → chunk-P6GSDAYY.js.map} +0 -0
- package/dist/esm/{chunk-UTE3C6WH.js → chunk-P7STLPTG.js} +3 -3
- package/dist/esm/{chunk-UTE3C6WH.js.map → chunk-P7STLPTG.js.map} +0 -0
- package/dist/esm/{chunk-WPIG35IN.js → chunk-RMIAXF22.js} +3 -3
- package/dist/esm/{chunk-WPIG35IN.js.map → chunk-RMIAXF22.js.map} +2 -2
- package/dist/esm/{chunk-NOAOLQ25.js → chunk-STXBFKP7.js} +2 -2
- package/dist/esm/{chunk-NOAOLQ25.js.map → chunk-STXBFKP7.js.map} +0 -0
- package/dist/esm/{chunk-FIIRPE7H.js → chunk-SXI3BVQT.js} +3 -3
- package/dist/esm/chunk-SXI3BVQT.js.map +7 -0
- package/dist/esm/{chunk-ZKWJMVKP.js → chunk-WN53PIUG.js} +6 -6
- package/dist/esm/{chunk-ZKWJMVKP.js.map → chunk-WN53PIUG.js.map} +0 -0
- package/dist/esm/{chunk-KKUITPYJ.js → chunk-XNFY5XVP.js} +6 -6
- package/dist/esm/chunk-XNFY5XVP.js.map +7 -0
- package/dist/esm/{chunk-7EYNJNAV.js → chunk-YUBK6NHL.js} +13 -13
- package/dist/esm/{chunk-7EYNJNAV.js.map → chunk-YUBK6NHL.js.map} +0 -0
- package/dist/esm/kpuzzle/index.js +2 -2
- package/dist/esm/notation/index.js +2 -2
- package/dist/esm/protocol/index.js +4 -4
- package/dist/esm/puzzle-geometry/index.js +1 -1
- package/dist/esm/puzzles/index.js +4 -4
- package/dist/esm/{puzzles-dynamic-side-events-S25NGSZR.js → puzzles-dynamic-side-events-T2YVO2CD.js} +10 -10
- package/dist/esm/{puzzles-dynamic-side-events-S25NGSZR.js.map → puzzles-dynamic-side-events-T2YVO2CD.js.map} +1 -1
- package/dist/esm/scramble/index.js +8 -8
- package/dist/esm/search/index.js +8 -8
- package/dist/esm/{search-dynamic-sgs-side-events-3UF3O3DR.js → search-dynamic-sgs-side-events-RBT77KLU.js} +6 -6
- package/dist/esm/{search-dynamic-sgs-side-events-3UF3O3DR.js.map → search-dynamic-sgs-side-events-RBT77KLU.js.map} +0 -0
- package/dist/esm/{search-dynamic-sgs-unofficial-S6ZZ6UTD.js → search-dynamic-sgs-unofficial-XVCNTLBX.js} +6 -6
- package/dist/esm/{search-dynamic-sgs-unofficial-S6ZZ6UTD.js.map → search-dynamic-sgs-unofficial-XVCNTLBX.js.map} +0 -0
- package/dist/esm/{search-dynamic-solve-3x3x3-DDVSUP2C.js → search-dynamic-solve-3x3x3-QAWYKBYP.js} +2 -2
- package/dist/esm/search-dynamic-solve-3x3x3-QAWYKBYP.js.map +7 -0
- package/dist/esm/{search-dynamic-solve-4x4x4-XPVSHXKH.js → search-dynamic-solve-4x4x4-6D3X6JPU.js} +6 -6
- package/dist/esm/search-dynamic-solve-4x4x4-6D3X6JPU.js.map +7 -0
- package/dist/esm/{search-dynamic-solve-kilominx-FBEDWIPR.js → search-dynamic-solve-kilominx-ACTR53H2.js} +2 -2
- package/dist/esm/search-dynamic-solve-kilominx-ACTR53H2.js.map +7 -0
- package/dist/esm/search-worker-inside-generated-string-A5J72AEN.js +4068 -0
- package/dist/esm/search-worker-inside-generated-string-A5J72AEN.js.map +7 -0
- package/dist/esm/search-worker-js-entry-6JKK757U.js +17 -0
- package/dist/esm/{search-worker-js-entry-GXNLBGZX.js.map → search-worker-js-entry-6JKK757U.js.map} +0 -0
- package/dist/esm/{search-worker-ts-entry-VGYPJOUR.js → search-worker-ts-entry-JODGBUUR.js} +2 -2
- package/dist/esm/{search-worker-ts-entry-VGYPJOUR.js.map → search-worker-ts-entry-JODGBUUR.js.map} +0 -0
- package/dist/esm/stream/index.js +1 -1
- package/dist/esm/twisty/index.js +8 -7
- package/dist/esm/twisty/index.js.map +2 -2
- package/dist/esm/{twisty-dynamic-3d-NJLODGN2.js → twisty-dynamic-3d-ANH7V4CU.js} +6 -6
- package/dist/esm/{twisty-dynamic-3d-NJLODGN2.js.map → twisty-dynamic-3d-ANH7V4CU.js.map} +0 -0
- package/dist/esm/twsearch-PTN3QM26-XSTDBYFP.js +3163 -0
- package/dist/esm/twsearch-PTN3QM26-XSTDBYFP.js.map +7 -0
- package/dist/esm/{twsearch-U62ROVYU.js → twsearch-T6KOUE6W.js} +4 -4
- package/dist/esm/{twsearch-U62ROVYU.js.map → twsearch-T6KOUE6W.js.map} +1 -1
- package/dist/types/script/bin/screenshot-src/main.d.ts +2 -0
- package/dist/types/script/bin/screenshot-src/main.d.ts.map +1 -0
- package/dist/types/script/bin/screenshot.d.ts +3 -0
- package/dist/types/script/bin/screenshot.d.ts.map +1 -0
- package/dist/types/script/build/main.d.ts +2 -0
- package/dist/types/script/build/main.d.ts.map +1 -0
- package/dist/types/script/build/targets.d.ts +241 -0
- package/dist/types/script/build/targets.d.ts.map +1 -0
- package/dist/types/script/build/temp.d.ts +3 -0
- package/dist/types/script/build/temp.d.ts.map +1 -0
- package/dist/types/script/deploy/experiments.d.ts +2 -0
- package/dist/types/script/deploy/experiments.d.ts.map +1 -0
- package/dist/types/script/deploy/rsync.d.ts +2 -0
- package/dist/types/script/deploy/rsync.d.ts.map +1 -0
- package/dist/types/script/deploy/twizzle.d.ts +2 -0
- package/dist/types/script/deploy/twizzle.d.ts.map +1 -0
- package/dist/types/script/deploy/typedoc.d.ts +2 -0
- package/dist/types/script/deploy/typedoc.d.ts.map +1 -0
- package/dist/types/script/fix-vendored-twsearch.d.ts +2 -0
- package/dist/types/script/fix-vendored-twsearch.d.ts.map +1 -0
- package/dist/types/script/initial-setup/main.d.ts +2 -0
- package/dist/types/script/initial-setup/main.d.ts.map +1 -0
- package/dist/types/script/lib/execPromise.d.ts +5 -0
- package/dist/types/script/lib/execPromise.d.ts.map +1 -0
- package/dist/types/script/lib/experiments-server/index.d.ts +2 -0
- package/dist/types/script/lib/experiments-server/index.d.ts.map +1 -0
- package/dist/types/script/lib/need-folder.d.ts +2 -0
- package/dist/types/script/lib/need-folder.d.ts.map +1 -0
- package/dist/types/script/lib/packages.d.ts +3 -0
- package/dist/types/script/lib/packages.d.ts.map +1 -0
- package/dist/types/script/quick-setup/main.d.ts +2 -0
- package/dist/types/script/quick-setup/main.d.ts.map +1 -0
- package/dist/types/script/test/dist/experiments/main.d.ts +2 -0
- package/dist/types/script/test/dist/experiments/main.d.ts.map +1 -0
- package/dist/types/script/test/src/does-not-import-dist/expected-import-prefixes.d.ts +2 -0
- package/dist/types/script/test/src/does-not-import-dist/expected-import-prefixes.d.ts.map +1 -0
- package/dist/types/script/test/src/does-not-import-dist/main.d.ts +2 -0
- package/dist/types/script/test/src/does-not-import-dist/main.d.ts.map +1 -0
- package/dist/types/script/test/src/internal-import-restrictions/main.d.ts +2 -0
- package/dist/types/script/test/src/internal-import-restrictions/main.d.ts.map +1 -0
- package/dist/types/script/test/src/internal-import-restrictions/target-infos.d.ts +70 -0
- package/dist/types/script/test/src/internal-import-restrictions/target-infos.d.ts.map +1 -0
- package/dist/types/script/test/src/scripts-consistency/main.d.ts +2 -0
- package/dist/types/script/test/src/scripts-consistency/main.d.ts.map +1 -0
- package/dist/types/src/bin/import-restrictions-mermaid-diagram.d.ts +2 -0
- package/dist/types/src/bin/import-restrictions-mermaid-diagram.d.ts.map +1 -0
- package/dist/types/src/bin/order.d.ts +2 -0
- package/dist/types/src/bin/order.d.ts.map +1 -0
- package/dist/types/src/bin/puzzle-geometry-bin.d.ts +2 -0
- package/dist/types/src/bin/puzzle-geometry-bin.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/Alg.d.ts +176 -0
- package/dist/types/src/cubing/alg/Alg.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/Alg.spec.d.ts +2 -0
- package/dist/types/src/cubing/alg/Alg.spec.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/AlgBuilder.d.ts +13 -0
- package/dist/types/src/cubing/alg/AlgBuilder.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/Serializable.d.ts +1 -0
- package/dist/types/src/cubing/alg/Serializable.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/alg-nodes/AlgNode.d.ts +14 -0
- package/dist/types/src/cubing/alg/alg-nodes/AlgNode.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/alg-nodes/QuantumWithAmount.d.ts +12 -0
- package/dist/types/src/cubing/alg/alg-nodes/QuantumWithAmount.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/alg-nodes/containers/Commutator.d.ts +16 -0
- package/dist/types/src/cubing/alg/alg-nodes/containers/Commutator.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/alg-nodes/containers/Conjugate.d.ts +16 -0
- package/dist/types/src/cubing/alg/alg-nodes/containers/Conjugate.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/alg-nodes/containers/Grouping.d.ts +23 -0
- package/dist/types/src/cubing/alg/alg-nodes/containers/Grouping.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/alg-nodes/index.d.ts +12 -0
- package/dist/types/src/cubing/alg/alg-nodes/index.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/alg-nodes/leaves/LineComment.d.ts +14 -0
- package/dist/types/src/cubing/alg/alg-nodes/leaves/LineComment.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/alg-nodes/leaves/LineComment.spec.d.ts +2 -0
- package/dist/types/src/cubing/alg/alg-nodes/leaves/LineComment.spec.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/alg-nodes/leaves/Move.d.ts +52 -0
- package/dist/types/src/cubing/alg/alg-nodes/leaves/Move.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/alg-nodes/leaves/Move.spec.d.ts +2 -0
- package/dist/types/src/cubing/alg/alg-nodes/leaves/Move.spec.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/alg-nodes/leaves/Newline.d.ts +11 -0
- package/dist/types/src/cubing/alg/alg-nodes/leaves/Newline.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/alg-nodes/leaves/Pause.d.ts +13 -0
- package/dist/types/src/cubing/alg/alg-nodes/leaves/Pause.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/common.d.ts +20 -0
- package/dist/types/src/cubing/alg/common.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/cubing-private/index.d.ts +3 -0
- package/dist/types/src/cubing/alg/cubing-private/index.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/debug.d.ts +11 -0
- package/dist/types/src/cubing/alg/debug.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/example.d.ts +15 -0
- package/dist/types/src/cubing/alg/example.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/index.d.ts +23 -0
- package/dist/types/src/cubing/alg/index.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/is.d.ts +5 -0
- package/dist/types/src/cubing/alg/is.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/iteration.d.ts +10 -0
- package/dist/types/src/cubing/alg/iteration.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/keyboard.d.ts +3 -0
- package/dist/types/src/cubing/alg/keyboard.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/limits.d.ts +5 -0
- package/dist/types/src/cubing/alg/limits.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/parseAlg.d.ts +13 -0
- package/dist/types/src/cubing/alg/parseAlg.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/parseAlg.spec.d.ts +2 -0
- package/dist/types/src/cubing/alg/parseAlg.spec.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/simplify/append.d.ts +7 -0
- package/dist/types/src/cubing/alg/simplify/append.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/simplify/append.spec.d.ts +2 -0
- package/dist/types/src/cubing/alg/simplify/append.spec.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/simplify/index.d.ts +4 -0
- package/dist/types/src/cubing/alg/simplify/index.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/simplify/options.d.ts +36 -0
- package/dist/types/src/cubing/alg/simplify/options.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/simplify/simplify.d.ts +5 -0
- package/dist/types/src/cubing/alg/simplify/simplify.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/simplify/simplify.spec.d.ts +2 -0
- package/dist/types/src/cubing/alg/simplify/simplify.spec.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/traversal.d.ts +37 -0
- package/dist/types/src/cubing/alg/traversal.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/url.d.ts +13 -0
- package/dist/types/src/cubing/alg/url.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/url.spec.d.ts +2 -0
- package/dist/types/src/cubing/alg/url.spec.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/validation.d.ts +20 -0
- package/dist/types/src/cubing/alg/validation.d.ts.map +1 -0
- package/dist/types/src/cubing/alg/warnOnce.d.ts +2 -0
- package/dist/types/src/cubing/alg/warnOnce.d.ts.map +1 -0
- package/dist/types/src/cubing/bluetooth/connect/index.d.ts +7 -0
- package/dist/types/src/cubing/bluetooth/connect/index.d.ts.map +1 -0
- package/dist/types/src/cubing/bluetooth/debug.d.ts +3 -0
- package/dist/types/src/cubing/bluetooth/debug.d.ts.map +1 -0
- package/dist/types/src/cubing/bluetooth/index.d.ts +12 -0
- package/dist/types/src/cubing/bluetooth/index.d.ts.map +1 -0
- package/dist/types/src/cubing/bluetooth/keyboard.d.ts +17 -0
- package/dist/types/src/cubing/bluetooth/keyboard.d.ts.map +1 -0
- package/dist/types/src/cubing/bluetooth/smart-puzzle/Heykube.d.ts +19 -0
- package/dist/types/src/cubing/bluetooth/smart-puzzle/Heykube.d.ts.map +1 -0
- package/dist/types/src/cubing/bluetooth/smart-puzzle/bluetooth-puzzle.d.ts +45 -0
- package/dist/types/src/cubing/bluetooth/smart-puzzle/bluetooth-puzzle.d.ts.map +1 -0
- package/dist/types/src/cubing/bluetooth/smart-puzzle/connect.d.ts +5 -0
- package/dist/types/src/cubing/bluetooth/smart-puzzle/connect.d.ts.map +1 -0
- package/dist/types/src/cubing/bluetooth/smart-puzzle/endianness.d.ts +2 -0
- package/dist/types/src/cubing/bluetooth/smart-puzzle/endianness.d.ts.map +1 -0
- package/dist/types/src/cubing/bluetooth/smart-puzzle/gan.d.ts +36 -0
- package/dist/types/src/cubing/bluetooth/smart-puzzle/gan.d.ts.map +1 -0
- package/dist/types/src/cubing/bluetooth/smart-puzzle/giiker.d.ts +23 -0
- package/dist/types/src/cubing/bluetooth/smart-puzzle/giiker.d.ts.map +1 -0
- package/dist/types/src/cubing/bluetooth/smart-puzzle/giiker.spec.d.ts +2 -0
- package/dist/types/src/cubing/bluetooth/smart-puzzle/giiker.spec.d.ts.map +1 -0
- package/dist/types/src/cubing/bluetooth/smart-puzzle/gocube.d.ts +24 -0
- package/dist/types/src/cubing/bluetooth/smart-puzzle/gocube.d.ts.map +1 -0
- package/dist/types/src/cubing/bluetooth/smart-robot/GanRobot.d.ts +37 -0
- package/dist/types/src/cubing/bluetooth/smart-robot/GanRobot.d.ts.map +1 -0
- package/dist/types/src/cubing/bluetooth/smart-robot/index.d.ts +7 -0
- package/dist/types/src/cubing/bluetooth/smart-robot/index.d.ts.map +1 -0
- package/dist/types/src/cubing/bluetooth/smart-timer/GanTimer.d.ts +21 -0
- package/dist/types/src/cubing/bluetooth/smart-timer/GanTimer.d.ts.map +1 -0
- package/dist/types/src/cubing/bluetooth/smart-timer/index.d.ts +7 -0
- package/dist/types/src/cubing/bluetooth/smart-timer/index.d.ts.map +1 -0
- package/dist/types/src/cubing/bluetooth/transformer.d.ts +10 -0
- package/dist/types/src/cubing/bluetooth/transformer.d.ts.map +1 -0
- package/dist/types/src/cubing/kpuzzle/KPuzzle.d.ts +23 -0
- package/dist/types/src/cubing/kpuzzle/KPuzzle.d.ts.map +1 -0
- package/dist/types/src/cubing/kpuzzle/KPuzzleDefinition.d.ts +27 -0
- package/dist/types/src/cubing/kpuzzle/KPuzzleDefinition.d.ts.map +1 -0
- package/dist/types/src/cubing/kpuzzle/KState.d.ts +24 -0
- package/dist/types/src/cubing/kpuzzle/KState.d.ts.map +1 -0
- package/dist/types/src/cubing/kpuzzle/KTransformation.d.ts +25 -0
- package/dist/types/src/cubing/kpuzzle/KTransformation.d.ts.map +1 -0
- package/dist/types/src/cubing/kpuzzle/calculate.d.ts +16 -0
- package/dist/types/src/cubing/kpuzzle/calculate.d.ts.map +1 -0
- package/dist/types/src/cubing/kpuzzle/calculate.spec.d.ts +2 -0
- package/dist/types/src/cubing/kpuzzle/calculate.spec.d.ts.map +1 -0
- package/dist/types/src/cubing/kpuzzle/combine.d.ts +4 -0
- package/dist/types/src/cubing/kpuzzle/combine.d.ts.map +1 -0
- package/dist/types/src/cubing/kpuzzle/construct.d.ts +6 -0
- package/dist/types/src/cubing/kpuzzle/construct.d.ts.map +1 -0
- package/dist/types/src/cubing/kpuzzle/index.d.ts +5 -0
- package/dist/types/src/cubing/kpuzzle/index.d.ts.map +1 -0
- package/dist/types/src/cubing/notation/CountAnimatedLeaves.d.ts +3 -0
- package/dist/types/src/cubing/notation/CountAnimatedLeaves.d.ts.map +1 -0
- package/dist/types/src/cubing/notation/CountMoves.d.ts +5 -0
- package/dist/types/src/cubing/notation/CountMoves.d.ts.map +1 -0
- package/dist/types/src/cubing/notation/index.d.ts +3 -0
- package/dist/types/src/cubing/notation/index.d.ts.map +1 -0
- package/dist/types/src/cubing/protocol/binary/binary3x3x3.d.ts +25 -0
- package/dist/types/src/cubing/protocol/binary/binary3x3x3.d.ts.map +1 -0
- package/dist/types/src/cubing/protocol/binary/binary3x3x3.spec.d.ts +2 -0
- package/dist/types/src/cubing/protocol/binary/binary3x3x3.spec.d.ts.map +1 -0
- package/dist/types/src/cubing/protocol/binary/hex.d.ts +3 -0
- package/dist/types/src/cubing/protocol/binary/hex.d.ts.map +1 -0
- package/dist/types/src/cubing/protocol/binary/hex.spec.d.ts +2 -0
- package/dist/types/src/cubing/protocol/binary/hex.spec.d.ts.map +1 -0
- package/dist/types/src/cubing/protocol/binary/orbit-indexing.d.ts +6 -0
- package/dist/types/src/cubing/protocol/binary/orbit-indexing.d.ts.map +1 -0
- package/dist/types/src/cubing/protocol/binary/orbit-indexing.spec.d.ts +2 -0
- package/dist/types/src/cubing/protocol/binary/orbit-indexing.spec.d.ts.map +1 -0
- package/dist/types/src/cubing/protocol/index.d.ts +3 -0
- package/dist/types/src/cubing/protocol/index.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzle-geometry/FaceNameSwizzler.d.ts +13 -0
- package/dist/types/src/cubing/puzzle-geometry/FaceNameSwizzler.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzle-geometry/Options.d.ts +46 -0
- package/dist/types/src/cubing/puzzle-geometry/Options.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzle-geometry/PGPuzzles.d.ts +6 -0
- package/dist/types/src/cubing/puzzle-geometry/PGPuzzles.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzle-geometry/PGPuzzles.spec.d.ts +2 -0
- package/dist/types/src/cubing/puzzle-geometry/PGPuzzles.spec.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzle-geometry/Perm.d.ts +19 -0
- package/dist/types/src/cubing/puzzle-geometry/Perm.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzle-geometry/PermOriSet.d.ts +75 -0
- package/dist/types/src/cubing/puzzle-geometry/PermOriSet.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzle-geometry/PlatonicGenerator.d.ts +11 -0
- package/dist/types/src/cubing/puzzle-geometry/PlatonicGenerator.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzle-geometry/PuzzleGeometry.d.ts +181 -0
- package/dist/types/src/cubing/puzzle-geometry/PuzzleGeometry.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzle-geometry/Quat.d.ts +44 -0
- package/dist/types/src/cubing/puzzle-geometry/Quat.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzle-geometry/Quat.spec.d.ts +2 -0
- package/dist/types/src/cubing/puzzle-geometry/Quat.spec.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzle-geometry/SchreierSims.d.ts +3 -0
- package/dist/types/src/cubing/puzzle-geometry/SchreierSims.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzle-geometry/index.d.ts +8 -0
- package/dist/types/src/cubing/puzzle-geometry/index.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzle-geometry/notation-mapping/FTONotationMapper.d.ts +11 -0
- package/dist/types/src/cubing/puzzle-geometry/notation-mapping/FTONotationMapper.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzle-geometry/notation-mapping/FaceRenamingMapper.d.ts +13 -0
- package/dist/types/src/cubing/puzzle-geometry/notation-mapping/FaceRenamingMapper.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzle-geometry/notation-mapping/MegaminxScramblingNotationMapper.d.ts +9 -0
- package/dist/types/src/cubing/puzzle-geometry/notation-mapping/MegaminxScramblingNotationMapper.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzle-geometry/notation-mapping/NotationMapper.d.ts +8 -0
- package/dist/types/src/cubing/puzzle-geometry/notation-mapping/NotationMapper.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzle-geometry/notation-mapping/NullMapper.d.ts +7 -0
- package/dist/types/src/cubing/puzzle-geometry/notation-mapping/NullMapper.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzle-geometry/notation-mapping/NxNxNCubeMapper.d.ts +9 -0
- package/dist/types/src/cubing/puzzle-geometry/notation-mapping/NxNxNCubeMapper.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzle-geometry/notation-mapping/PyraminxNotationMapper.d.ts +16 -0
- package/dist/types/src/cubing/puzzle-geometry/notation-mapping/PyraminxNotationMapper.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzle-geometry/notation-mapping/SkewbNotationMapper.d.ts +10 -0
- package/dist/types/src/cubing/puzzle-geometry/notation-mapping/SkewbNotationMapper.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzle-geometry/notation-mapping/index.d.ts +9 -0
- package/dist/types/src/cubing/puzzle-geometry/notation-mapping/index.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzle-geometry/orientcenters.spec.d.ts +2 -0
- package/dist/types/src/cubing/puzzle-geometry/orientcenters.spec.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/PuzzleLoader.d.ts +24 -0
- package/dist/types/src/cubing/puzzles/PuzzleLoader.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/async/async-pg3d.d.ts +37 -0
- package/dist/types/src/cubing/puzzles/async/async-pg3d.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/async/lazy-cached.d.ts +2 -0
- package/dist/types/src/cubing/puzzles/async/lazy-cached.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/cubing-private/index.d.ts +14 -0
- package/dist/types/src/cubing/puzzles/cubing-private/index.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/customPGPuzzleLoader.d.ts +12 -0
- package/dist/types/src/cubing/puzzles/customPGPuzzleLoader.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/events.d.ts +13 -0
- package/dist/types/src/cubing/puzzles/events.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/2x2x2/index.d.ts +4 -0
- package/dist/types/src/cubing/puzzles/implementations/2x2x2/index.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/3x3x3/index.d.ts +4 -0
- package/dist/types/src/cubing/puzzles/implementations/3x3x3/index.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/3x3x3/puzzle-specific-simplifications.d.ts +3 -0
- package/dist/types/src/cubing/puzzles/implementations/3x3x3/puzzle-specific-simplifications.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/4x4x4/index.d.ts +4 -0
- package/dist/types/src/cubing/puzzles/implementations/4x4x4/index.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/clock/index.d.ts +3 -0
- package/dist/types/src/cubing/puzzles/implementations/clock/index.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/2x2x2/puzzle-orientation.d.ts +17 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/2x2x2/puzzle-orientation.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/3x3x3/3x3x3-ll.kpuzzle.svg.d.ts +2 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/3x3x3/3x3x3-ll.kpuzzle.svg.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/3x3x3/3x3x3.kpuzzle.json.d.ts +3 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/3x3x3/3x3x3.kpuzzle.json.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/3x3x3/3x3x3.kpuzzle.json.spec.d.ts +2 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/3x3x3/3x3x3.kpuzzle.json.spec.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/3x3x3/3x3x3.kpuzzle.svg.d.ts +2 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/3x3x3/3x3x3.kpuzzle.svg.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/3x3x3/puzzle-orientation.d.ts +9 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/3x3x3/puzzle-orientation.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/3x3x3/puzzles-dynamic-3x3x3.d.ts +3 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/3x3x3/puzzles-dynamic-3x3x3.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/4x4x4/4x4x4-ll.kpuzzle.svg.d.ts +2 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/4x4x4/4x4x4-ll.kpuzzle.svg.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/4x4x4/puzzles-dynamic-4x4x4.d.ts +2 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/4x4x4/puzzles-dynamic-4x4x4.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/2x2x2.kpuzzle.json.d.ts +3 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/2x2x2.kpuzzle.json.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/2x2x2.kpuzzle.svg.d.ts +2 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/2x2x2.kpuzzle.svg.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/clock.kpuzzle.json.d.ts +3 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/clock.kpuzzle.json.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/clock.kpuzzle.svg.d.ts +2 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/clock.kpuzzle.svg.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/melindas2x2x2x2.kpuzzle.json.d.ts +3 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/melindas2x2x2x2.kpuzzle.json.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/melindas2x2x2x2.kpuzzle.svg.d.ts +2 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/melindas2x2x2x2.kpuzzle.svg.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/puzzles-dynamic-side-events.d.ts +10 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/puzzles-dynamic-side-events.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/pyraminx.kpuzzle.svg.d.ts +2 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/pyraminx.kpuzzle.svg.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/sq1-hyperorbit.kpuzzle.json.d.ts +3 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/sq1-hyperorbit.kpuzzle.json.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/sq1-hyperorbit.kpuzzle.svg.d.ts +2 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/sq1-hyperorbit.kpuzzle.svg.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/unofficial/fto.kpuzzle.svg.d.ts +2 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/unofficial/fto.kpuzzle.svg.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/unofficial/kilominx.kpuzzle.svg.d.ts +2 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/unofficial/kilominx.kpuzzle.svg.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/unofficial/puzzles-dynamic-unofficial.d.ts +5 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/unofficial/puzzles-dynamic-unofficial.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/unofficial/redi_cube.kpuzzle.json.d.ts +3 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/unofficial/redi_cube.kpuzzle.json.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/unofficial/redi_cube.kpuzzle.svg.d.ts +2 -0
- package/dist/types/src/cubing/puzzles/implementations/dynamic/unofficial/redi_cube.kpuzzle.svg.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/fto/index.d.ts +13 -0
- package/dist/types/src/cubing/puzzles/implementations/fto/index.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/kilominx/index.d.ts +3 -0
- package/dist/types/src/cubing/puzzles/implementations/kilominx/index.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/megaminx/index.d.ts +12 -0
- package/dist/types/src/cubing/puzzles/implementations/megaminx/index.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/melindas2x2x2x2/index.d.ts +3 -0
- package/dist/types/src/cubing/puzzles/implementations/melindas2x2x2x2/index.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/pyraminx/index.d.ts +8 -0
- package/dist/types/src/cubing/puzzles/implementations/pyraminx/index.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/redi-cube/index.d.ts +3 -0
- package/dist/types/src/cubing/puzzles/implementations/redi-cube/index.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/implementations/square1/index.d.ts +3 -0
- package/dist/types/src/cubing/puzzles/implementations/square1/index.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/index.d.ts +9 -0
- package/dist/types/src/cubing/puzzles/index.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/stickerings/cube-like-stickerings.d.ts +6 -0
- package/dist/types/src/cubing/puzzles/stickerings/cube-like-stickerings.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/stickerings/fto-stickerings.d.ts +6 -0
- package/dist/types/src/cubing/puzzles/stickerings/fto-stickerings.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/stickerings/mask.d.ts +54 -0
- package/dist/types/src/cubing/puzzles/stickerings/mask.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/stickerings/megaminx-stickerings.d.ts +6 -0
- package/dist/types/src/cubing/puzzles/stickerings/megaminx-stickerings.d.ts.map +1 -0
- package/dist/types/src/cubing/puzzles/stickerings/puzzle-stickerings.d.ts +5 -0
- package/dist/types/src/cubing/puzzles/stickerings/puzzle-stickerings.d.ts.map +1 -0
- package/dist/types/src/cubing/scramble/index.d.ts +9 -0
- package/dist/types/src/cubing/scramble/index.d.ts.map +1 -0
- package/dist/types/src/cubing/search/cubing-private/index.d.ts +2 -0
- package/dist/types/src/cubing/search/cubing-private/index.d.ts.map +1 -0
- package/dist/types/src/cubing/search/index.d.ts +3 -0
- package/dist/types/src/cubing/search/index.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/api.d.ts +24 -0
- package/dist/types/src/cubing/search/inside/api.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/api.spec.d.ts +2 -0
- package/dist/types/src/cubing/search/inside/api.spec.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/inside-worker.d.ts +3 -0
- package/dist/types/src/cubing/search/inside/inside-worker.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/search-worker-js-entry.d.ts +2 -0
- package/dist/types/src/cubing/search/inside/search-worker-js-entry.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/search-worker-ts-entry-path-getter.d.ts +2 -0
- package/dist/types/src/cubing/search/inside/search-worker-ts-entry-path-getter.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/search-worker-ts-entry.d.ts +2 -0
- package/dist/types/src/cubing/search/inside/search-worker-ts-entry.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/addOrientationSuffix.d.ts +3 -0
- package/dist/types/src/cubing/search/inside/solve/addOrientationSuffix.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/parseSGS.d.ts +19 -0
- package/dist/types/src/cubing/search/inside/solve/parseSGS.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/2x2x2.d.ts +9 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/2x2x2.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/3x3x3/convert.d.ts +3 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/3x3x3/convert.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/3x3x3/filter.d.ts +5 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/3x3x3/filter.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/3x3x3/index.d.ts +9 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/3x3x3/index.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/3x3x3/legacy-sgs.d.ts +2 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/3x3x3/legacy-sgs.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/4x4x4.d.ts +5 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/4x4x4.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/5x5x5.d.ts +3 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/5x5x5.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/big-cubes.d.ts +3 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/big-cubes.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/clock.d.ts +2 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/clock.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/3x3x3/index.d.ts +2 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/3x3x3/index.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/3x3x3/search-dynamic-solve-3x3x3.d.ts +2 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/3x3x3/search-dynamic-solve-3x3x3.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/4x4x4/index.d.ts +2 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/4x4x4/index.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/4x4x4/search-dynamic-solve-4x4x4.d.ts +2 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/4x4x4/search-dynamic-solve-4x4x4.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/fto/index.d.ts +2 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/fto/index.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/fto/search-dynamic-solve-fto.d.ts +2 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/fto/search-dynamic-solve-fto.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/kilominx/index.d.ts +2 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/kilominx/index.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/kilominx/search-dynamic-solve-kilominx.d.ts +2 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/kilominx/search-dynamic-solve-kilominx.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/master_tetraminx/index.d.ts +2 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/master_tetraminx/index.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/master_tetraminx/search-dynamic-solve-master_tetraminx.d.ts +2 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/master_tetraminx/search-dynamic-solve-master_tetraminx.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-defs.spec.d.ts +2 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-defs.spec.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-side-events/2x2x2.sgs.d.ts +4 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-side-events/2x2x2.sgs.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-side-events/index.d.ts +2 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-side-events/index.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-side-events/megaminx.sgs.d.ts +6 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-side-events/megaminx.sgs.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-side-events/pyraminx.sgs.d.ts +4 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-side-events/pyraminx.sgs.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-side-events/search-dynamic-sgs-side-events.d.ts +5 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-side-events/search-dynamic-sgs-side-events.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-side-events/skewb.sgs.d.ts +6 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-side-events/skewb.sgs.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-unofficial/fto.sgs.d.ts +3 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-unofficial/fto.sgs.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-unofficial/index.d.ts +2 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-unofficial/index.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-unofficial/search-dynamic-sgs-unofficial.d.ts +3 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-unofficial/search-dynamic-sgs-unofficial.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sq1/index.d.ts +2 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sq1/index.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sq1/search-dynamic-solve-sq1.d.ts +2 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sq1/search-dynamic-solve-sq1.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/fto.d.ts +6 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/fto.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/kilominx.d.ts +3 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/kilominx.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/master_tetraminx.d.ts +3 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/master_tetraminx.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/megaminx.d.ts +5 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/megaminx.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/pyraminx.d.ts +7 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/pyraminx.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/redi_cube.d.ts +3 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/redi_cube.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/skewb.d.ts +7 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/skewb.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/sq1.d.ts +3 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/sq1.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/wca-minx.d.ts +2 -0
- package/dist/types/src/cubing/search/inside/solve/puzzles/wca-minx.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/tremble.d.ts +14 -0
- package/dist/types/src/cubing/search/inside/solve/tremble.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/solve/twsearch.d.ts +11 -0
- package/dist/types/src/cubing/search/inside/solve/twsearch.d.ts.map +1 -0
- package/dist/types/src/cubing/search/inside/worker-guard.d.ts +4 -0
- package/dist/types/src/cubing/search/inside/worker-guard.d.ts.map +1 -0
- package/dist/types/src/cubing/search/instantiator.d.ts +13 -0
- package/dist/types/src/cubing/search/instantiator.d.ts.map +1 -0
- package/dist/types/src/cubing/search/outside.d.ts +29 -0
- package/dist/types/src/cubing/search/outside.d.ts.map +1 -0
- package/dist/types/src/cubing/search/search-worker-inside-generated-string.d.ts +2 -0
- package/dist/types/src/cubing/search/search-worker-inside-generated-string.d.ts.map +1 -0
- package/dist/types/src/cubing/stream/index.d.ts +9 -0
- package/dist/types/src/cubing/stream/index.d.ts.map +1 -0
- package/dist/types/src/cubing/stream/process/ReorientedStream.d.ts +21 -0
- package/dist/types/src/cubing/stream/process/ReorientedStream.d.ts.map +1 -0
- package/dist/types/src/cubing/stream/proxy-event.d.ts +14 -0
- package/dist/types/src/cubing/stream/proxy-event.d.ts.map +1 -0
- package/dist/types/src/cubing/stream/twizzle/TwizzleStream.d.ts +19 -0
- package/dist/types/src/cubing/stream/twizzle/TwizzleStream.d.ts.map +1 -0
- package/dist/types/src/cubing/stream/twizzle/stream-types.d.ts +33 -0
- package/dist/types/src/cubing/stream/twizzle/stream-types.d.ts.map +1 -0
- package/dist/types/src/cubing/stream/websocket-proxy.d.ts +22 -0
- package/dist/types/src/cubing/stream/websocket-proxy.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/controllers/AnimationTypes.d.ts +33 -0
- package/dist/types/src/cubing/twisty/controllers/AnimationTypes.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/controllers/RenderScheduler.d.ts +14 -0
- package/dist/types/src/cubing/twisty/controllers/RenderScheduler.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/controllers/TwistyAnimationController.d.ts +37 -0
- package/dist/types/src/cubing/twisty/controllers/TwistyAnimationController.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/controllers/TwistyPlayerController.d.ts +16 -0
- package/dist/types/src/cubing/twisty/controllers/TwistyPlayerController.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/controllers/easing.d.ts +2 -0
- package/dist/types/src/cubing/twisty/controllers/easing.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/controllers/indexer/AlgDuration.d.ts +18 -0
- package/dist/types/src/cubing/twisty/controllers/indexer/AlgDuration.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/controllers/indexer/AlgIndexer.d.ts +37 -0
- package/dist/types/src/cubing/twisty/controllers/indexer/AlgIndexer.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/controllers/indexer/SimpleAlgIndexer.d.ts +20 -0
- package/dist/types/src/cubing/twisty/controllers/indexer/SimpleAlgIndexer.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/controllers/indexer/simultaneous-moves/SimultaneousMoveIndexer.d.ts +23 -0
- package/dist/types/src/cubing/twisty/controllers/indexer/simultaneous-moves/SimultaneousMoveIndexer.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/controllers/indexer/simultaneous-moves/simul-moves.d.ts +26 -0
- package/dist/types/src/cubing/twisty/controllers/indexer/simultaneous-moves/simul-moves.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/controllers/indexer/tree/AlgWalker.d.ts +64 -0
- package/dist/types/src/cubing/twisty/controllers/indexer/tree/AlgWalker.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/controllers/indexer/tree/TreeAlgIndexer.d.ts +21 -0
- package/dist/types/src/cubing/twisty/controllers/indexer/tree/TreeAlgIndexer.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/controllers/indexer/tree/chunkAlgs.d.ts +3 -0
- package/dist/types/src/cubing/twisty/controllers/indexer/tree/chunkAlgs.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/controllers/stream/timeline-move-calculation-draft.d.ts +16 -0
- package/dist/types/src/cubing/twisty/controllers/stream/timeline-move-calculation-draft.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/cubing-private/index.d.ts +2 -0
- package/dist/types/src/cubing/twisty/cubing-private/index.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/debug.d.ts +6 -0
- package/dist/types/src/cubing/twisty/debug.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/heavy-code-imports/3d.d.ts +3 -0
- package/dist/types/src/cubing/twisty/heavy-code-imports/3d.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/heavy-code-imports/dynamic-entries/twisty-dynamic-3d.d.ts +12 -0
- package/dist/types/src/cubing/twisty/heavy-code-imports/dynamic-entries/twisty-dynamic-3d.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/index.d.ts +24 -0
- package/dist/types/src/cubing/twisty/index.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/PromiseFreshener.d.ts +14 -0
- package/dist/types/src/cubing/twisty/model/PromiseFreshener.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/TwistyPlayerModel.d.ts +90 -0
- package/dist/types/src/cubing/twisty/model/TwistyPlayerModel.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/TwistyPlayerModel.spec.d.ts +2 -0
- package/dist/types/src/cubing/twisty/model/TwistyPlayerModel.spec.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/TwistySceneModel.d.ts +46 -0
- package/dist/types/src/cubing/twisty/model/TwistySceneModel.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/TwistySceneModel.spec.d.ts +2 -0
- package/dist/types/src/cubing/twisty/model/TwistySceneModel.spec.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/UserVisibleErrorTracker.d.ts +11 -0
- package/dist/types/src/cubing/twisty/model/UserVisibleErrorTracker.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/helpers.d.ts +5 -0
- package/dist/types/src/cubing/twisty/model/helpers.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/TwistyProp.d.ts +62 -0
- package/dist/types/src/cubing/twisty/model/props/TwistyProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/TwistyProp.spec.d.ts +2 -0
- package/dist/types/src/cubing/twisty/model/props/TwistyProp.spec.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/general/ArbitraryStringProp.d.ts +5 -0
- package/dist/types/src/cubing/twisty/model/props/general/ArbitraryStringProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/general/URLProp.d.ts +6 -0
- package/dist/types/src/cubing/twisty/model/props/general/URLProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/display/FaceletScaleProp.d.ts +6 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/display/FaceletScaleProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/display/FoundationDisplayProp.d.ts +6 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/display/FoundationDisplayProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/display/HintFaceletProp.d.ts +11 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/display/HintFaceletProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/display/InitialHintFaceletsAnimationProp.d.ts +6 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/display/InitialHintFaceletsAnimationProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/display/SpriteProp.d.ts +10 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/display/SpriteProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/display/StickeringMaskProp.d.ts +15 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/display/StickeringMaskProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/display/StickeringMaskRequestProp.d.ts +7 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/display/StickeringMaskRequestProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/display/StickeringRequestProp.d.ts +9 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/display/StickeringRequestProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/display/parseSerializedStickeringMask.d.ts +3 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/display/parseSerializedStickeringMask.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/AlgProp.d.ts +27 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/AlgProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/AlgTransformationProp.d.ts +12 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/AlgTransformationProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/AnchorTransformationProp.d.ts +15 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/AnchorTransformationProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/CatchUpMoveProp.d.ts +11 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/CatchUpMoveProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/CurrentLeavesSimplified.d.ts +17 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/CurrentLeavesSimplified.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/CurrentMoveInfoProp.d.ts +14 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/CurrentMoveInfoProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/CurrentStateProp.d.ts +15 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/CurrentStateProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/DragInputProp.d.ts +10 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/DragInputProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/IndexerConstructorProp.d.ts +20 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/IndexerConstructorProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/IndexerConstructorRequestProp.d.ts +12 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/IndexerConstructorRequestProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/IndexerProp.d.ts +15 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/IndexerProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/LegacyPositionProp.d.ts +12 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/LegacyPositionProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/MovePressCancelOptions.d.ts +6 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/MovePressCancelOptions.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/MovePressInputProp.d.ts +11 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/MovePressInputProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/NaiveMoveCountProp.d.ts +10 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/NaiveMoveCountProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/PuzzleAlgProp.d.ts +14 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/PuzzleAlgProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/SetupAnchorProp.d.ts +10 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/SetupAnchorProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/SetupTransformationProp.d.ts +6 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/state/SetupTransformationProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/structure/KPuzzleProp.d.ts +11 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/structure/KPuzzleProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/structure/PuzzleDescriptionProp.d.ts +6 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/structure/PuzzleDescriptionProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/structure/PuzzleIDProp.d.ts +11 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/structure/PuzzleIDProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/structure/PuzzleIDRequestProp.d.ts +27 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/structure/PuzzleIDRequestProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/structure/PuzzleLoaderProp.d.ts +13 -0
- package/dist/types/src/cubing/twisty/model/props/puzzle/structure/PuzzleLoaderProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/timeline/CoarseTimelineInfoProp.d.ts +25 -0
- package/dist/types/src/cubing/twisty/model/props/timeline/CoarseTimelineInfoProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/timeline/DetailedTimelineInfoProp.d.ts +24 -0
- package/dist/types/src/cubing/twisty/model/props/timeline/DetailedTimelineInfoProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/timeline/PlayingInfoProp.d.ts +15 -0
- package/dist/types/src/cubing/twisty/model/props/timeline/PlayingInfoProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/timeline/TempoScaleProp.d.ts +6 -0
- package/dist/types/src/cubing/twisty/model/props/timeline/TempoScaleProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/timeline/TimestampRequestProp.d.ts +17 -0
- package/dist/types/src/cubing/twisty/model/props/timeline/TimestampRequestProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/viewer/BackViewProp.d.ts +12 -0
- package/dist/types/src/cubing/twisty/model/props/viewer/BackViewProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/viewer/BackgroundProp.d.ts +12 -0
- package/dist/types/src/cubing/twisty/model/props/viewer/BackgroundProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/viewer/ButtonAppearanceProp.d.ts +22 -0
- package/dist/types/src/cubing/twisty/model/props/viewer/ButtonAppearanceProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/viewer/ControlPanelProp.d.ts +11 -0
- package/dist/types/src/cubing/twisty/model/props/viewer/ControlPanelProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/viewer/DOMElementReferenceProp.d.ts +5 -0
- package/dist/types/src/cubing/twisty/model/props/viewer/DOMElementReferenceProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/viewer/DarkModeProp.d.ts +10 -0
- package/dist/types/src/cubing/twisty/model/props/viewer/DarkModeProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/viewer/DarkModeRequestProp.d.ts +11 -0
- package/dist/types/src/cubing/twisty/model/props/viewer/DarkModeRequestProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/viewer/LatitudeLimit.d.ts +6 -0
- package/dist/types/src/cubing/twisty/model/props/viewer/LatitudeLimit.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/viewer/OrbitCoordinatesProp.d.ts +29 -0
- package/dist/types/src/cubing/twisty/model/props/viewer/OrbitCoordinatesProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/viewer/OrbitCoordinatesRequestProp.d.ts +15 -0
- package/dist/types/src/cubing/twisty/model/props/viewer/OrbitCoordinatesRequestProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/viewer/TimeRangeProp.d.ts +11 -0
- package/dist/types/src/cubing/twisty/model/props/viewer/TimeRangeProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/viewer/ViewerLinkProp.d.ts +12 -0
- package/dist/types/src/cubing/twisty/model/props/viewer/ViewerLinkProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/viewer/VisualizationProp.d.ts +13 -0
- package/dist/types/src/cubing/twisty/model/props/viewer/VisualizationProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/model/props/viewer/VisualizationStrategyProp.d.ts +13 -0
- package/dist/types/src/cubing/twisty/model/props/viewer/VisualizationStrategyProp.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/2D/KPuzzleSVGWrapper.d.ts +19 -0
- package/dist/types/src/cubing/twisty/views/2D/KPuzzleSVGWrapper.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/2D/Twisty2DPuzzle.css.d.ts +3 -0
- package/dist/types/src/cubing/twisty/views/2D/Twisty2DPuzzle.css.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/2D/Twisty2DPuzzle.d.ts +28 -0
- package/dist/types/src/cubing/twisty/views/2D/Twisty2DPuzzle.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/2D/Twisty2DPuzzleWrapper.d.ts +16 -0
- package/dist/types/src/cubing/twisty/views/2D/Twisty2DPuzzleWrapper.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/2D/Twisty2DSceneWrapper.d.ts +20 -0
- package/dist/types/src/cubing/twisty/views/2D/Twisty2DSceneWrapper.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/3D/DragTracker.d.ts +31 -0
- package/dist/types/src/cubing/twisty/views/3D/DragTracker.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/3D/RendererPool.d.ts +5 -0
- package/dist/types/src/cubing/twisty/views/3D/RendererPool.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/3D/TAU.d.ts +3 -0
- package/dist/types/src/cubing/twisty/views/3D/TAU.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/3D/Twisty3DPuzzleWrapper.d.ts +22 -0
- package/dist/types/src/cubing/twisty/views/3D/Twisty3DPuzzleWrapper.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/3D/Twisty3DRenderTarget.d.ts +4 -0
- package/dist/types/src/cubing/twisty/views/3D/Twisty3DRenderTarget.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/3D/Twisty3DScene.d.ts +15 -0
- package/dist/types/src/cubing/twisty/views/3D/Twisty3DScene.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/3D/Twisty3DSceneWrapper.d.ts +36 -0
- package/dist/types/src/cubing/twisty/views/3D/Twisty3DSceneWrapper.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/3D/Twisty3DVantage.css.d.ts +3 -0
- package/dist/types/src/cubing/twisty/views/3D/Twisty3DVantage.css.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/3D/Twisty3DVantage.d.ts +37 -0
- package/dist/types/src/cubing/twisty/views/3D/Twisty3DVantage.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/3D/TwistyOrbitControls.d.ts +24 -0
- package/dist/types/src/cubing/twisty/views/3D/TwistyOrbitControls.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/3D/TwistyOrbitControls.spec.d.ts +2 -0
- package/dist/types/src/cubing/twisty/views/3D/TwistyOrbitControls.spec.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/3D/puzzles/Cube3D.d.ts +61 -0
- package/dist/types/src/cubing/twisty/views/3D/puzzles/Cube3D.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/3D/puzzles/PG3D.d.ts +67 -0
- package/dist/types/src/cubing/twisty/views/3D/puzzles/PG3D.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/3D/puzzles/Twisty3DPuzzle.d.ts +8 -0
- package/dist/types/src/cubing/twisty/views/3D/puzzles/Twisty3DPuzzle.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/ClassListManager.d.ts +11 -0
- package/dist/types/src/cubing/twisty/views/ClassListManager.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/InitialValueTracker.d.ts +7 -0
- package/dist/types/src/cubing/twisty/views/InitialValueTracker.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/ManagedCustomElement.d.ts +20 -0
- package/dist/types/src/cubing/twisty/views/ManagedCustomElement.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/TwistyAlgEditor/LeafTokens.d.ts +18 -0
- package/dist/types/src/cubing/twisty/views/TwistyAlgEditor/LeafTokens.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/TwistyAlgEditor/TwistyAlgEditor.css.d.ts +3 -0
- package/dist/types/src/cubing/twisty/views/TwistyAlgEditor/TwistyAlgEditor.css.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/TwistyAlgEditor/TwistyAlgEditor.d.ts +47 -0
- package/dist/types/src/cubing/twisty/views/TwistyAlgEditor/TwistyAlgEditor.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/TwistyAlgEditor/TwistyAlgEditor.spec.d.ts +2 -0
- package/dist/types/src/cubing/twisty/views/TwistyAlgEditor/TwistyAlgEditor.spec.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/TwistyAlgEditor/model.d.ts +61 -0
- package/dist/types/src/cubing/twisty/views/TwistyAlgEditor/model.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/TwistyAlgViewer.css.d.ts +3 -0
- package/dist/types/src/cubing/twisty/views/TwistyAlgViewer.css.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/TwistyAlgViewer.d.ts +59 -0
- package/dist/types/src/cubing/twisty/views/TwistyAlgViewer.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/TwistyPlayer.css.d.ts +3 -0
- package/dist/types/src/cubing/twisty/views/TwistyPlayer.css.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/TwistyPlayer.d.ts +173 -0
- package/dist/types/src/cubing/twisty/views/TwistyPlayer.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/TwistyPlayerSettable.d.ts +99 -0
- package/dist/types/src/cubing/twisty/views/TwistyPlayerSettable.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/TwistyViewerWrapper.css.d.ts +3 -0
- package/dist/types/src/cubing/twisty/views/TwistyViewerWrapper.css.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/canvas.d.ts +3 -0
- package/dist/types/src/cubing/twisty/views/canvas.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/control-panel/TwistyButtons.css.d.ts +4 -0
- package/dist/types/src/cubing/twisty/views/control-panel/TwistyButtons.css.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/control-panel/TwistyButtons.d.ts +36 -0
- package/dist/types/src/cubing/twisty/views/control-panel/TwistyButtons.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/control-panel/TwistyScrubber.css.d.ts +3 -0
- package/dist/types/src/cubing/twisty/views/control-panel/TwistyScrubber.css.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/control-panel/TwistyScrubber.d.ts +19 -0
- package/dist/types/src/cubing/twisty/views/control-panel/TwistyScrubber.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/control-panel/webkit-fullscreen.d.ts +15 -0
- package/dist/types/src/cubing/twisty/views/control-panel/webkit-fullscreen.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/document.d.ts +2 -0
- package/dist/types/src/cubing/twisty/views/document.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/node-custom-element-shims.d.ts +5 -0
- package/dist/types/src/cubing/twisty/views/node-custom-element-shims.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/screenshot.d.ts +12 -0
- package/dist/types/src/cubing/twisty/views/screenshot.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/stream/TwistyStreamSource.css.d.ts +3 -0
- package/dist/types/src/cubing/twisty/views/stream/TwistyStreamSource.css.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/stream/TwistyStreamSource.d.ts +18 -0
- package/dist/types/src/cubing/twisty/views/stream/TwistyStreamSource.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/twizzle/TwizzleLink.css.d.ts +4 -0
- package/dist/types/src/cubing/twisty/views/twizzle/TwizzleLink.css.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/twizzle/TwizzleLink.d.ts +22 -0
- package/dist/types/src/cubing/twisty/views/twizzle/TwizzleLink.d.ts.map +1 -0
- package/dist/types/src/cubing/twisty/views/twizzle/url-params.d.ts +20 -0
- package/dist/types/src/cubing/twisty/views/twizzle/url-params.d.ts.map +1 -0
- package/dist/types/src/cubing/vendor/comlink-everywhere/inside/index.d.ts +5 -0
- package/dist/types/src/cubing/vendor/comlink-everywhere/inside/index.d.ts.map +1 -0
- package/dist/types/src/cubing/vendor/comlink-everywhere/node-adapter.d.ts +7 -0
- package/dist/types/src/cubing/vendor/comlink-everywhere/node-adapter.d.ts.map +1 -0
- package/dist/types/src/cubing/vendor/comlink-everywhere/outside/index.d.ts +6 -0
- package/dist/types/src/cubing/vendor/comlink-everywhere/outside/index.d.ts.map +1 -0
- package/dist/types/src/cubing/vendor/cstimer/src/js/lib/mathlib.d.ts +5 -0
- package/dist/types/src/cubing/vendor/cstimer/src/js/lib/mathlib.d.ts.map +1 -0
- package/dist/types/src/cubing/vendor/cstimer/src/js/scramble/444-solver.d.ts +4 -0
- package/dist/types/src/cubing/vendor/cstimer/src/js/scramble/444-solver.d.ts.map +1 -0
- package/dist/types/src/cubing/vendor/min2phase/3x3x3-min2phase.d.ts +3 -0
- package/dist/types/src/cubing/vendor/min2phase/3x3x3-min2phase.d.ts.map +1 -0
- package/dist/types/src/cubing/vendor/p-lazy/p-lazy.d.ts +10 -0
- package/dist/types/src/cubing/vendor/p-lazy/p-lazy.d.ts.map +1 -0
- package/dist/types/src/cubing/vendor/sq12phase/sq1-solver.d.ts +2 -0
- package/dist/types/src/cubing/vendor/sq12phase/sq1-solver.d.ts.map +1 -0
- package/dist/types/src/cubing/vendor/three/examples/jsm/libs/stats.modified.module.d.ts +33 -0
- package/dist/types/src/cubing/vendor/three/examples/jsm/libs/stats.modified.module.d.ts.map +1 -0
- package/dist/types/src/cubing/vendor/twsearch/index.d.ts +24 -0
- package/dist/types/src/cubing/vendor/twsearch/index.d.ts.map +1 -0
- package/dist/types/src/cubing/vendor/twsearch/twsearch-PTN3QM26.d.ts +3 -0
- package/dist/types/src/cubing/vendor/twsearch/twsearch-PTN3QM26.d.ts.map +1 -0
- package/dist/types/src/cubing/vendor/unsafe-raw-aes/unsafe-raw-aes.d.ts +4 -0
- package/dist/types/src/cubing/vendor/unsafe-raw-aes/unsafe-raw-aes.d.ts.map +1 -0
- package/dist/types/src/cubing/vendor/xyzzy/fto-solver-original.d.ts +149 -0
- package/dist/types/src/cubing/vendor/xyzzy/fto-solver-original.d.ts.map +1 -0
- package/dist/types/src/cubing/vendor/xyzzy/fto-solver.d.ts +2 -0
- package/dist/types/src/cubing/vendor/xyzzy/fto-solver.d.ts.map +1 -0
- package/dist/types/src/cubing/vendor/xyzzy/kilosolver.d.ts +3 -0
- package/dist/types/src/cubing/vendor/xyzzy/kilosolver.d.ts.map +1 -0
- package/dist/types/src/cubing/vendor/xyzzy/master_tetraminx-solver.d.ts +2 -0
- package/dist/types/src/cubing/vendor/xyzzy/master_tetraminx-solver.d.ts.map +1 -0
- package/dist/types/src/cubing/vendor/xyzzy/redi_cube.d.ts +3 -0
- package/dist/types/src/cubing/vendor/xyzzy/redi_cube.d.ts.map +1 -0
- package/dist/types/src/sites/alpha.twizzle.net/edit/app.d.ts +55 -0
- package/dist/types/src/sites/alpha.twizzle.net/edit/app.d.ts.map +1 -0
- package/dist/types/src/sites/alpha.twizzle.net/edit/dom.d.ts +3 -0
- package/dist/types/src/sites/alpha.twizzle.net/edit/dom.d.ts.map +1 -0
- package/dist/types/src/sites/alpha.twizzle.net/edit/examples.d.ts +3 -0
- package/dist/types/src/sites/alpha.twizzle.net/edit/examples.d.ts.map +1 -0
- package/dist/types/src/sites/alpha.twizzle.net/edit/main.d.ts +2 -0
- package/dist/types/src/sites/alpha.twizzle.net/edit/main.d.ts.map +1 -0
- package/dist/types/src/sites/alpha.twizzle.net/edit/strings.d.ts +2 -0
- package/dist/types/src/sites/alpha.twizzle.net/edit/strings.d.ts.map +1 -0
- package/dist/types/src/sites/alpha.twizzle.net/edit/supported-puzzles.d.ts +32 -0
- package/dist/types/src/sites/alpha.twizzle.net/edit/supported-puzzles.d.ts.map +1 -0
- package/dist/types/src/sites/alpha.twizzle.net/explore/TwistyPuzzleDescriptionInput.d.ts +19 -0
- package/dist/types/src/sites/alpha.twizzle.net/explore/TwistyPuzzleDescriptionInput.d.ts.map +1 -0
- package/dist/types/src/sites/alpha.twizzle.net/explore/app.d.ts +35 -0
- package/dist/types/src/sites/alpha.twizzle.net/explore/app.d.ts.map +1 -0
- package/dist/types/src/sites/alpha.twizzle.net/explore/main.d.ts +2 -0
- package/dist/types/src/sites/alpha.twizzle.net/explore/main.d.ts.map +1 -0
- package/dist/types/src/sites/alpha.twizzle.net/explore/prop-inputs.d.ts +3 -0
- package/dist/types/src/sites/alpha.twizzle.net/explore/prop-inputs.d.ts.map +1 -0
- package/dist/types/src/sites/alpha.twizzle.net/explore/twisty-player.d.ts +3 -0
- package/dist/types/src/sites/alpha.twizzle.net/explore/twisty-player.d.ts.map +1 -0
- package/dist/types/src/sites/alpha.twizzle.net/explore/url-params.d.ts +25 -0
- package/dist/types/src/sites/alpha.twizzle.net/explore/url-params.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/3x3x3-formats/convert.d.ts +9 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/3x3x3-formats/convert.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/3x3x3-formats/index.d.ts +3 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/3x3x3-formats/index.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/3x3x3-formats/tests.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/3x3x3-formats/tests.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/alg/extractor.d.ts +3 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/alg/extractor.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/alg/inspector.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/alg/inspector.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/applet-wrappers/AnimCube/TwistyAnimCube.d.ts +9 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/applet-wrappers/AnimCube/TwistyAnimCube.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/bluetooth/index.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/bluetooth/index.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/console/index.d.ts +25 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/console/index.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/flag/index.d.ts +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/flag/index.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/kpuzzle/svg.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/kpuzzle/svg.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/mark3/index.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/mark3/index.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/multi-alg/index.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/multi-alg/index.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/play/index.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/play/index.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/play/input/SwipeGrid.d.ts +25 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/play/input/SwipeGrid.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/play/input/SwipeTracker.d.ts +21 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/play/input/SwipeTracker.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/play/input/SwipeyPuzzle.d.ts +22 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/play/input/SwipeyPuzzle.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/play/url-params.d.ts +20 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/play/url-params.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/play/websocket-proxy.d.ts +7 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/play/websocket-proxy.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/robot/index.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/robot/index.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/robot/logs/index.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/robot/logs/index.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/robot/logs/normalize.d.ts +3 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/robot/logs/normalize.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/scramble/index.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/scramble/index.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/screenshot/index.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/screenshot/index.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/spec/binary/index.d.ts +4 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/spec/binary/index.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/speechcubing/index.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/speechcubing/index.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/stream/reorient.d.ts +3 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/stream/reorient.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/stress-tests/2x2x2-devils-alg.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/stress-tests/2x2x2-devils-alg.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/stress-tests/40x40x40.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/stress-tests/40x40x40.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/stub/stub.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/stub/stub.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/svg-state-editor/index.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/svg-state-editor/index.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/2d-stickering.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/2d-stickering.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/attributes.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/attributes.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/cube3d-stickering.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/cube3d-stickering.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/demo-player.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/demo-player.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/demo-spin-camera.d.ts +4 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/demo-spin-camera.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/inline.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/inline.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/ll.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/ll.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/puzzle-description.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/puzzle-description.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/simultaneous.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/simultaneous.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/stickering-demo-algs.d.ts +3 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/stickering-demo-algs.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/svg.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/svg.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/twisty-alg-editor/index.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/twisty-alg-editor/index.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/twisty-alg-viewer.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/twisty-alg-viewer.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/twisty-player-config.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/twisty-player-config.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/twisty-player-props/TwistyPropDebugger.d.ts +27 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/twisty-player-props/TwistyPropDebugger.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/twisty-player-props/index.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/twisty-player-props/index.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/twisty.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/twisty.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twizzle-diaries/intro/index.d.ts +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twizzle-diaries/intro/index.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twizzle-diaries/intro/jszip-wrapper.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twizzle-diaries/intro/jszip-wrapper.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twizzle-diaries/intro/svg/index.d.ts +12 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twizzle-diaries/intro/svg/index.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twsearch/benchmark.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twsearch/benchmark.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twsearch/index.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/twsearch/index.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/vr/config.d.ts +7 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/vr/config.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/vr/index.d.ts +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/vr/index.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/vr/proxy/index.d.ts +2 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/vr/proxy/index.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/vr/room.d.ts +12 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/vr/room.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/vr/vr-cube.d.ts +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/vr/vr-cube.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/vr/vr-input.d.ts +35 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/vr/vr-input.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/vr/vr-pg3d.d.ts +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/vr/vr-pg3d.d.ts.map +1 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/vr/vr-puzzle.d.ts +6 -0
- package/dist/types/src/sites/experiments.cubing.net/cubing.js/vr/vr-puzzle.d.ts.map +1 -0
- package/dist/types/src/test/chai-workarounds/Alg.chai.d.ts +22 -0
- package/dist/types/src/test/chai-workarounds/Alg.chai.d.ts.map +1 -0
- package/dist/types/src/test/chai-workarounds/chai.d.ts +4 -0
- package/dist/types/src/test/chai-workarounds/chai.d.ts.map +1 -0
- package/dist/types/src/test/chai-workarounds/index.d.ts +11 -0
- package/dist/types/src/test/chai-workarounds/index.d.ts.map +1 -0
- package/package.json +4 -2
- package/dist/esm/chunk-FIIRPE7H.js.map +0 -7
- package/dist/esm/chunk-IJP4IAGZ.js.map +0 -7
- package/dist/esm/chunk-KKUITPYJ.js.map +0 -7
- package/dist/esm/chunk-XPTBX62N.js.map +0 -7
- package/dist/esm/search-dynamic-solve-3x3x3-DDVSUP2C.js.map +0 -7
- package/dist/esm/search-dynamic-solve-4x4x4-XPVSHXKH.js.map +0 -7
- package/dist/esm/search-dynamic-solve-kilominx-FBEDWIPR.js.map +0 -7
- package/dist/esm/search-worker-inside-generated-string-XVNVY5AU.js +0 -4068
- package/dist/esm/search-worker-inside-generated-string-XVNVY5AU.js.map +0 -7
- package/dist/esm/search-worker-js-entry-GXNLBGZX.js +0 -17
- package/dist/esm/twsearch-372DHE7A-76M4JP4D.js +0 -3163
- package/dist/esm/twsearch-372DHE7A-76M4JP4D.js.map +0 -7
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/cubing/vendor/cstimer/src/js/lib/mathlib.ts", "../../src/cubing/vendor/cstimer/src/js/scramble/444-solver.ts"],
|
|
4
|
-
"sourcesContent": ["const Cnk: number[][] = [];\nconst fact = [1];\nfor (let i = 0; i < 32; ++i) {\n Cnk[i] = [];\n for (let j = 0; j < 32; ++j) {\n Cnk[i][j] = 0;\n }\n}\nfor (let i = 0; i < 32; ++i) {\n Cnk[i][0] = Cnk[i][i] = 1;\n fact[i + 1] = fact[i] * (i + 1);\n for (let j = 1; j < i; ++j) {\n Cnk[i][j] = Cnk[i - 1][j - 1] + Cnk[i - 1][j];\n }\n}\n\nfunction circle(arr: number[], ...moreArgs: number[]) {\n const length = moreArgs.length;\n const temp = arr[moreArgs[length - 1]];\n for (let i = length; i > 0; i--) {\n arr[moreArgs[i]] = arr[moreArgs[i - 1]];\n }\n arr[moreArgs[0]] = temp;\n return circle;\n}\n\nfunction set8Perm(arr: number[], idx: number, n?: number, even?: number) {\n n = (n || 8) - 1;\n let val = 0x76543210;\n let prt = 0;\n even ??= 0;\n if (even < 0) {\n idx <<= 1;\n }\n for (let i = 0; i < n; ++i) {\n const p = fact[n - i];\n let v = ~~(idx / p);\n prt ^= v;\n idx %= p;\n v <<= 2;\n arr[i] = (val >> v) & 7;\n const m = (1 << v) - 1;\n val = (val & m) + ((val >> 4) & ~m);\n }\n if (even < 0 && (prt & 1) !== 0) {\n arr[n] = arr[n - 1];\n arr[n - 1] = val & 7;\n } else {\n arr[n] = val & 7;\n }\n return arr;\n}\n\nexport { Cnk, set8Perm, circle };\n", "// @ts-nocheck\n\nimport { Alg } from \"../../../../../alg\";\nimport {\n random333Scramble as getRandomScramble333,\n} from \"../../../../../search/inside/solve/puzzles/3x3x3\";\nimport { circle, Cnk, set8Perm } from \"../lib/mathlib\";\nimport { randomUIntBelow } from \"random-uint-below\";\nimport { mustBeInsideWorker } from \"../../../../../search/inside/inside-worker\";\n\nfunction createArray(length1: number, length2?: number) {\n const result = new Array<number[]>(length1);\n if (length2 !== undefined) {\n for (let i = 0; i < length1; i++) {\n result[i] = new Array(length2);\n }\n }\n return result;\n}\n\nlet _: any;\nconst seedTable: Record<number, any> = {};\nconst CM$ = {};\nconst Q$Object = 0;\nconst Q$Serializable = 30;\nconst Q$Center1 = 21;\nconst Q$CornerCube = 22;\nconst Q$Edge3 = 23;\nconst Q$FullCube_0 = 24;\nconst Q$FullCube_$1 = 25;\nconst Q$Comparable = 34;\nconst Q$Search_0 = 26;\nconst Q$Object_$1 = 40;\n\nfunction newSeed(id: number) {\n return new seedTable[id]();\n}\n\nfunction defineSeed(\n id: number,\n superSeed: number,\n castableTypeMap: any, // TODO\n ...moreArgs: any[]\n) {\n let seed = seedTable[id];\n if (seed && !seed.___clazz$) {\n _ = seed.prototype;\n } else {\n !seed && (seed = seedTable[id] = function () {});\n _ = seed.prototype = superSeed < 0 ? {} : newSeed(superSeed);\n _.castableTypeMap$ = castableTypeMap;\n }\n for (const arg of moreArgs) {\n arg.prototype = _;\n }\n if (seed.___clazz$) {\n _.___clazz$ = seed.___clazz$;\n seed.___clazz$ = null;\n }\n}\n\nfunction makeCastMap(a: number[]) {\n const result: Record<number, number> = {};\n for (let i_0 = 0, c = a.length; i_0 < c; ++i_0) {\n result[a[i_0]] = 1;\n }\n return result;\n}\n\ndefineSeed(1, -1, CM$);\n\n_.value = null;\n\nfunction Array_0() {}\n\nfunction createFrom(a: any, length_0: number) {\n const result = createFromSeed(0, length_0);\n initValues(a.___clazz$, a.castableTypeMap$, a.queryId$, result);\n return result;\n}\n\nfunction createFromSeed(seedType: number, length_0: number) {\n const array = new Array(length_0);\n if (seedType === 3) {\n for (let i_0 = 0; i_0 < length_0; ++i_0) {\n const value = {\n m: 0,\n l: 0,\n h: 0,\n };\n value.l = value.m = value.h = 0;\n array[i_0] = value;\n }\n } else if (seedType > 0) {\n const value = [null, 0, false][seedType];\n for (let i_0 = 0; i_0 < length_0; ++i_0) {\n array[i_0] = value;\n }\n }\n return array;\n}\n\nfunction initDim(arrayClass, castableTypeMap, queryId, length_0, seedType) {\n const result = createFromSeed(seedType, length_0);\n initValues(arrayClass, castableTypeMap, queryId, result);\n return result;\n}\n\nfunction initValues(arrayClass, castableTypeMap, queryId, array) {\n $clinit_Array$ExpandoWrapper();\n wrapArray(array, expandoNames_0, expandoValues_0);\n array.___clazz$ = arrayClass;\n array.castableTypeMap$ = castableTypeMap;\n array.queryId$ = queryId;\n return array;\n}\n\nfunction setCheck(array, index, value) {\n return (array[index] = value);\n}\n\ndefineSeed(73, 1, {}, Array_0);\n_.queryId$ = 0;\n\nlet ran$clinit_Array$ExpandoWrapper = false;\nfunction $clinit_Array$ExpandoWrapper() {\n if (ran$clinit_Array$ExpandoWrapper) {\n return;\n }\n ran$clinit_Array$ExpandoWrapper = true;\n expandoNames_0 = [];\n expandoValues_0 = [];\n initExpandos(new Array_0(), expandoNames_0, expandoValues_0);\n}\n\nfunction initExpandos(protoType, expandoNames, expandoValues) {\n let i_0 = 0;\n let value;\n for (const name_0 in protoType) {\n if ((value = protoType[name_0])) {\n expandoNames[i_0] = name_0;\n expandoValues[i_0] = value;\n ++i_0;\n }\n }\n}\n\nfunction wrapArray(array, expandoNames, expandoValues) {\n $clinit_Array$ExpandoWrapper();\n for (let i_0 = 0, c = expandoNames.length; i_0 < c; ++i_0) {\n array[expandoNames[i_0]] = expandoValues[i_0];\n }\n}\n\nlet expandoNames_0;\nlet expandoValues_0;\n\nfunction canCast(src, dstId) {\n return src.castableTypeMap$ && !!src.castableTypeMap$[dstId];\n}\n\nfunction instanceOf(src, dstId) {\n return src !== null && canCast(src, dstId);\n}\n\nlet ran$clinit_Center1 = false;\nfunction $clinit_Center1() {\n if (ran$clinit_Center1) {\n return false;\n }\n ran$clinit_Center1 = true;\n ctsmv = createArray(15582, 36);\n sym2raw = createArray(15582);\n csprun = createArray(15582);\n symmult = createArray(48, 48);\n symmove = createArray(48, 36);\n syminv = createArray(48);\n finish_0 = createArray(48);\n}\n\nfunction $$init_1(this$static) {\n this$static.ct = createArray(24);\n}\n\nfunction $equals(this$static, obj) {\n let c;\n let i_0;\n if (instanceOf(obj, Q$Center1)) {\n c = obj;\n for (i_0 = 0; i_0 < 24; ++i_0) {\n if (this$static.ct[i_0] !== c.ct[i_0]) {\n return false;\n }\n }\n return true;\n }\n return false;\n}\n\nfunction $get_1(this$static) {\n let i_0;\n let idx;\n let r;\n idx = 0;\n r = 8;\n for (i_0 = 23; i_0 >= 0; --i_0) {\n this$static.ct[i_0] === 1 && (idx += Cnk[i_0][r--]);\n }\n return idx;\n}\n\nfunction $getsym(this$static) {\n let cord;\n let j;\n if (raw2sym !== null) {\n return raw2sym[$get_1(this$static)];\n }\n for (j = 0; j < 48; ++j) {\n cord = raw2sym_0($get_1(this$static));\n if (cord !== -1) {\n return cord * 64 + j;\n }\n $rot(this$static, 0);\n j % 2 === 1 && $rot(this$static, 1);\n j % 8 === 7 && $rot(this$static, 2);\n j % 16 === 15 && $rot(this$static, 3);\n }\n}\n\nfunction $move(this$static, m_0) {\n const key = m_0 % 3;\n m_0 = ~~(m_0 / 3);\n switch (m_0) {\n case 0: {\n swap(this$static.ct, 0, 1, 2, 3, key);\n break;\n }\n case 1: {\n swap(this$static.ct, 16, 17, 18, 19, key);\n break;\n }\n case 2: {\n swap(this$static.ct, 8, 9, 10, 11, key);\n break;\n }\n case 3: {\n swap(this$static.ct, 4, 5, 6, 7, key);\n break;\n }\n case 4: {\n swap(this$static.ct, 20, 21, 22, 23, key);\n break;\n }\n case 5: {\n swap(this$static.ct, 12, 13, 14, 15, key);\n break;\n }\n case 6: {\n swap(this$static.ct, 0, 1, 2, 3, key);\n swap(this$static.ct, 8, 20, 12, 16, key);\n swap(this$static.ct, 9, 21, 13, 17, key);\n break;\n }\n case 7: {\n swap(this$static.ct, 16, 17, 18, 19, key);\n swap(this$static.ct, 1, 15, 5, 9, key);\n swap(this$static.ct, 2, 12, 6, 10, key);\n break;\n }\n case 8: {\n swap(this$static.ct, 8, 9, 10, 11, key);\n swap(this$static.ct, 2, 19, 4, 21, key);\n swap(this$static.ct, 3, 16, 5, 22, key);\n break;\n }\n case 9: {\n swap(this$static.ct, 4, 5, 6, 7, key);\n swap(this$static.ct, 10, 18, 14, 22, key);\n swap(this$static.ct, 11, 19, 15, 23, key);\n break;\n }\n case 10: {\n swap(this$static.ct, 20, 21, 22, 23, key);\n swap(this$static.ct, 0, 8, 4, 14, key);\n swap(this$static.ct, 3, 11, 7, 13, key);\n break;\n }\n case 11: {\n swap(this$static.ct, 12, 13, 14, 15, key);\n swap(this$static.ct, 1, 20, 7, 18, key);\n swap(this$static.ct, 0, 23, 6, 17, key);\n }\n }\n}\n\nfunction $rot(this$static, r) {\n switch (r) {\n case 0: {\n $move(this$static, 19);\n $move(this$static, 28);\n break;\n }\n case 1: {\n $move(this$static, 21);\n $move(this$static, 32);\n break;\n }\n case 2: {\n swap(this$static.ct, 0, 3, 1, 2, 1);\n swap(this$static.ct, 8, 11, 9, 10, 1);\n swap(this$static.ct, 4, 7, 5, 6, 1);\n swap(this$static.ct, 12, 15, 13, 14, 1);\n swap(this$static.ct, 16, 19, 21, 22, 1);\n swap(this$static.ct, 17, 18, 20, 23, 1);\n break;\n }\n case 3: {\n $move(this$static, 18);\n $move(this$static, 29);\n $move(this$static, 24);\n $move(this$static, 35);\n }\n }\n}\n\nfunction $rotate(this$static, r) {\n let j;\n for (j = 0; j < r; ++j) {\n $rot(this$static, 0);\n j % 2 === 1 && $rot(this$static, 1);\n j % 8 === 7 && $rot(this$static, 2);\n j % 16 === 15 && $rot(this$static, 3);\n }\n}\n\nfunction $set_0(this$static, idx) {\n let i_0;\n let r;\n r = 8;\n for (i_0 = 23; i_0 >= 0; --i_0) {\n this$static.ct[i_0] = 0;\n if (idx >= Cnk[i_0][r]) {\n idx -= Cnk[i_0][r--];\n this$static.ct[i_0] = 1;\n }\n }\n}\n\nfunction $set_1(this$static, c) {\n let i_0;\n for (i_0 = 0; i_0 < 24; ++i_0) {\n this$static.ct[i_0] = c.ct[i_0];\n }\n}\n\nfunction Center1_0() {\n let i_0;\n $$init_1(this);\n for (i_0 = 0; i_0 < 8; ++i_0) {\n this.ct[i_0] = 1;\n }\n for (i_0 = 8; i_0 < 24; ++i_0) {\n this.ct[i_0] = 0;\n }\n}\n\nfunction Center1_1(c, urf) {\n let i_0;\n $$init_1(this);\n for (i_0 = 0; i_0 < 24; ++i_0) {\n this.ct[i_0] = ~~(c.ct[i_0] / 2) === urf ? 1 : 0;\n }\n}\n\nfunction Center1_2(ct) {\n let i_0;\n $$init_1(this);\n for (i_0 = 0; i_0 < 24; ++i_0) {\n this.ct[i_0] = ct[i_0];\n }\n}\n\nfunction createMoveTable() {\n let i_0;\n let m_0;\n const c = new Center1_0();\n const d = new Center1_0();\n for (i_0 = 0; i_0 < 15582; ++i_0) {\n $set_0(d, sym2raw[i_0]);\n for (m_0 = 0; m_0 < 36; ++m_0) {\n $set_1(c, d);\n $move(c, m_0);\n ctsmv[i_0][m_0] = $getsym(c);\n }\n }\n}\n\nfunction createPrun() {\n let check;\n let depth;\n let done;\n let i_0;\n let idx;\n let inv;\n let m_0;\n let select;\n fill_0(csprun);\n csprun[0] = 0;\n depth = 0;\n done = 1;\n while (done !== 15582) {\n inv = depth > 4;\n select = inv ? -1 : depth;\n check = inv ? depth : -1;\n ++depth;\n for (i_0 = 0; i_0 < 15582; ++i_0) {\n if (csprun[i_0] !== select) {\n continue;\n }\n for (m_0 = 0; m_0 < 27; ++m_0) {\n idx = ~~ctsmv[i_0][m_0] >>> 6;\n if (csprun[idx] !== check) {\n continue;\n }\n ++done;\n if (inv) {\n csprun[i_0] = depth;\n break;\n } else {\n csprun[idx] = depth;\n }\n }\n }\n }\n}\n\nfunction getSolvedSym(cube) {\n let check;\n let i_0;\n let j;\n const c = new Center1_2(cube.ct);\n for (j = 0; j < 48; ++j) {\n check = true;\n for (i_0 = 0; i_0 < 24; ++i_0) {\n if (c.ct[i_0] !== ~~(i_0 / 4)) {\n check = false;\n break;\n }\n }\n if (check) {\n return j;\n }\n $rot(c, 0);\n j % 2 === 1 && $rot(c, 1);\n j % 8 === 7 && $rot(c, 2);\n j % 16 === 15 && $rot(c, 3);\n }\n return -1;\n}\n\nfunction initSym_0() {\n let i_0;\n let j;\n let k_0;\n const c = new Center1_0();\n for (i_0 = 0; i_0 < 24; ++i_0) {\n c.ct[i_0] = i_0;\n }\n const d = new Center1_2(c.ct);\n const e = new Center1_2(c.ct);\n const f = new Center1_2(c.ct);\n for (i_0 = 0; i_0 < 48; ++i_0) {\n for (j = 0; j < 48; ++j) {\n for (k_0 = 0; k_0 < 48; ++k_0) {\n if ($equals(c, d)) {\n symmult[i_0][j] = k_0;\n k_0 === 0 && (syminv[i_0] = j);\n }\n $rot(d, 0);\n k_0 % 2 === 1 && $rot(d, 1);\n k_0 % 8 === 7 && $rot(d, 2);\n k_0 % 16 === 15 && $rot(d, 3);\n }\n $rot(c, 0);\n j % 2 === 1 && $rot(c, 1);\n j % 8 === 7 && $rot(c, 2);\n j % 16 === 15 && $rot(c, 3);\n }\n $rot(c, 0);\n i_0 % 2 === 1 && $rot(c, 1);\n i_0 % 8 === 7 && $rot(c, 2);\n i_0 % 16 === 15 && $rot(c, 3);\n }\n for (i_0 = 0; i_0 < 48; ++i_0) {\n $set_1(c, e);\n $rotate(c, syminv[i_0]);\n for (j = 0; j < 36; ++j) {\n $set_1(d, c);\n $move(d, j);\n $rotate(d, i_0);\n for (k_0 = 0; k_0 < 36; ++k_0) {\n $set_1(f, e);\n $move(f, k_0);\n if ($equals(f, d)) {\n symmove[i_0][j] = k_0;\n break;\n }\n }\n }\n }\n $set_0(c, 0);\n for (i_0 = 0; i_0 < 48; ++i_0) {\n finish_0[syminv[i_0]] = $get_1(c);\n $rot(c, 0);\n i_0 % 2 === 1 && $rot(c, 1);\n i_0 % 8 === 7 && $rot(c, 2);\n i_0 % 16 === 15 && $rot(c, 3);\n }\n}\n\nfunction initSym2Raw() {\n let count;\n let i_0;\n let idx;\n let j;\n const c = new Center1_0();\n const occ = createArray(22984);\n for (i_0 = 0; i_0 < 22984; i_0++) {\n occ[i_0] = 0;\n }\n count = 0;\n for (i_0 = 0; i_0 < 735471; ++i_0) {\n if ((occ[~~i_0 >>> 5] & (1 << (i_0 & 31))) === 0) {\n $set_0(c, i_0);\n for (j = 0; j < 48; ++j) {\n idx = $get_1(c);\n occ[~~idx >>> 5] |= 1 << (idx & 31);\n raw2sym !== null && (raw2sym[idx] = (count << 6) | syminv[j]);\n $rot(c, 0);\n j % 2 === 1 && $rot(c, 1);\n j % 8 === 7 && $rot(c, 2);\n j % 16 === 15 && $rot(c, 3);\n }\n sym2raw[count++] = i_0;\n }\n }\n}\n\nfunction raw2sym_0(n) {\n const m_0 = binarySearch_0(sym2raw, n);\n return m_0 >= 0 ? m_0 : -1;\n}\n\ndefineSeed(153, 1, makeCastMap([Q$Center1]), Center1_0, Center1_1, Center1_2);\n\nlet csprun;\nlet ctsmv;\nlet finish_0;\nlet raw2sym = null;\nlet sym2raw;\nlet syminv;\nlet symmove;\nlet symmult;\n\nlet ran$clinit_Center2 = false;\nfunction $clinit_Center2() {\n if (ran$clinit_Center2) {\n return;\n }\n ran$clinit_Center2 = true;\n rlmv = createArray(70, 28);\n ctmv = createArray(6435, 28);\n rlrot = createArray(70, 16);\n ctrot = createArray(6435, 16);\n ctprun = createArray(450450);\n pmv = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0,\n ];\n}\n\nfunction $getct(this$static) {\n let i_0;\n let idx;\n let r;\n idx = 0;\n r = 8;\n for (i_0 = 14; i_0 >= 0; --i_0) {\n this$static.ct[i_0] !== this$static.ct[15] && (idx += Cnk[i_0][r--]);\n }\n return idx;\n}\n\nfunction $getrl(this$static) {\n let i_0;\n let idx;\n let r;\n idx = 0;\n r = 4;\n for (i_0 = 6; i_0 >= 0; --i_0) {\n this$static.rl[i_0] !== this$static.rl[7] && (idx += Cnk[i_0][r--]);\n }\n return idx * 2 + this$static.parity;\n}\n\nfunction $move_0(this$static, m_0) {\n this$static.parity ^= pmv[m_0];\n const key = m_0 % 3;\n m_0 = ~~(m_0 / 3);\n switch (m_0) {\n case 0: {\n swap(this$static.ct, 0, 1, 2, 3, key);\n break;\n }\n case 1: {\n swap(this$static.rl, 0, 1, 2, 3, key);\n break;\n }\n case 2: {\n swap(this$static.ct, 8, 9, 10, 11, key);\n break;\n }\n case 3: {\n swap(this$static.ct, 4, 5, 6, 7, key);\n break;\n }\n case 4: {\n swap(this$static.rl, 4, 5, 6, 7, key);\n break;\n }\n case 5: {\n swap(this$static.ct, 12, 13, 14, 15, key);\n break;\n }\n case 6: {\n swap(this$static.ct, 0, 1, 2, 3, key);\n swap(this$static.rl, 0, 5, 4, 1, key);\n swap(this$static.ct, 8, 9, 12, 13, key);\n break;\n }\n case 7: {\n swap(this$static.rl, 0, 1, 2, 3, key);\n swap(this$static.ct, 1, 15, 5, 9, key);\n swap(this$static.ct, 2, 12, 6, 10, key);\n break;\n }\n case 8: {\n swap(this$static.ct, 8, 9, 10, 11, key);\n swap(this$static.rl, 0, 3, 6, 5, key);\n swap(this$static.ct, 3, 2, 5, 4, key);\n break;\n }\n case 9: {\n swap(this$static.ct, 4, 5, 6, 7, key);\n swap(this$static.rl, 3, 2, 7, 6, key);\n swap(this$static.ct, 11, 10, 15, 14, key);\n break;\n }\n case 10: {\n swap(this$static.rl, 4, 5, 6, 7, key);\n swap(this$static.ct, 0, 8, 4, 14, key);\n swap(this$static.ct, 3, 11, 7, 13, key);\n break;\n }\n case 11: {\n swap(this$static.ct, 12, 13, 14, 15, key);\n swap(this$static.rl, 1, 4, 7, 2, key);\n swap(this$static.ct, 1, 0, 7, 6, key);\n }\n }\n}\n\nfunction $rot_0(this$static, r) {\n switch (r) {\n case 0: {\n $move_0(this$static, 19);\n $move_0(this$static, 28);\n break;\n }\n case 1: {\n $move_0(this$static, 21);\n $move_0(this$static, 32);\n break;\n }\n case 2: {\n swap(this$static.ct, 0, 3, 1, 2, 1);\n swap(this$static.ct, 8, 11, 9, 10, 1);\n swap(this$static.ct, 4, 7, 5, 6, 1);\n swap(this$static.ct, 12, 15, 13, 14, 1);\n swap(this$static.rl, 0, 3, 5, 6, 1);\n swap(this$static.rl, 1, 2, 4, 7, 1);\n }\n }\n}\n\nfunction $set_2(this$static, c, edgeParity) {\n let i_0;\n for (i_0 = 0; i_0 < 16; ++i_0) {\n this$static.ct[i_0] = ~~(c.ct[i_0] / 2);\n }\n for (i_0 = 0; i_0 < 8; ++i_0) {\n this$static.rl[i_0] = c.ct[i_0 + 16];\n }\n this$static.parity = edgeParity;\n}\n\nfunction $setct(this$static, idx) {\n let i_0;\n let r;\n r = 8;\n this$static.ct[15] = 0;\n for (i_0 = 14; i_0 >= 0; --i_0) {\n if (idx >= Cnk[i_0][r]) {\n idx -= Cnk[i_0][r--];\n this$static.ct[i_0] = 1;\n } else {\n this$static.ct[i_0] = 0;\n }\n }\n}\n\nfunction $setrl(this$static, idx) {\n let i_0;\n let r;\n this$static.parity = idx & 1;\n idx >>>= 1;\n r = 4;\n this$static.rl[7] = 0;\n for (i_0 = 6; i_0 >= 0; --i_0) {\n if (idx >= Cnk[i_0][r]) {\n idx -= Cnk[i_0][r--];\n this$static.rl[i_0] = 1;\n } else {\n this$static.rl[i_0] = 0;\n }\n }\n}\n\nfunction Center2_0() {\n this.rl = createArray(8);\n this.ct = createArray(16);\n}\n\nfunction init_3() {\n let ct;\n let ctx;\n let depth;\n let done;\n let i_0;\n let idx;\n let j;\n let m_0;\n let rl;\n let rlx;\n const c = new Center2_0();\n for (i_0 = 0; i_0 < 70; ++i_0) {\n for (m_0 = 0; m_0 < 28; ++m_0) {\n $setrl(c, i_0);\n $move_0(c, move2std[m_0]);\n rlmv[i_0][m_0] = $getrl(c);\n }\n }\n for (i_0 = 0; i_0 < 70; ++i_0) {\n $setrl(c, i_0);\n for (j = 0; j < 16; ++j) {\n rlrot[i_0][j] = $getrl(c);\n $rot_0(c, 0);\n j % 2 === 1 && $rot_0(c, 1);\n j % 8 === 7 && $rot_0(c, 2);\n }\n }\n for (i_0 = 0; i_0 < 6435; ++i_0) {\n $setct(c, i_0);\n for (j = 0; j < 16; ++j) {\n ctrot[i_0][j] = $getct(c) & 65535;\n $rot_0(c, 0);\n j % 2 === 1 && $rot_0(c, 1);\n j % 8 === 7 && $rot_0(c, 2);\n }\n }\n for (i_0 = 0; i_0 < 6435; ++i_0) {\n for (m_0 = 0; m_0 < 28; ++m_0) {\n $setct(c, i_0);\n $move_0(c, move2std[m_0]);\n ctmv[i_0][m_0] = $getct(c) & 65535;\n }\n }\n fill_0(ctprun);\n ctprun[0] =\n ctprun[18] =\n ctprun[28] =\n ctprun[46] =\n ctprun[54] =\n ctprun[56] =\n 0;\n depth = 0;\n done = 6;\n\n while (done !== 450450) {\n const inv = depth > 6;\n const select = inv ? -1 : depth;\n const check = inv ? depth : -1;\n ++depth;\n for (i_0 = 0; i_0 < 450450; ++i_0) {\n if (ctprun[i_0] !== select) {\n continue;\n }\n ct = ~~(i_0 / 70);\n rl = i_0 % 70;\n for (m_0 = 0; m_0 < 23; ++m_0) {\n ctx = ctmv[ct][m_0];\n rlx = rlmv[rl][m_0];\n idx = ctx * 70 + rlx;\n if (ctprun[idx] !== check) {\n continue;\n }\n ++done;\n if (inv) {\n ctprun[i_0] = depth;\n break;\n } else {\n ctprun[idx] = depth;\n }\n }\n }\n }\n}\n\ndefineSeed(154, 1, {}, Center2_0);\n_.parity = 0;\nlet ctmv;\nlet ctprun;\nlet ctrot;\nlet pmv;\nlet rlmv;\nlet rlrot;\n\nlet ran$clinit_Center3 = false;\nfunction $clinit_Center3() {\n if (ran$clinit_Center3) {\n return;\n }\n ran$clinit_Center3 = true;\n ctmove = createArray(29400, 20);\n pmove = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1];\n prun_0 = createArray(29400);\n rl2std = [0, 9, 14, 23, 27, 28, 41, 42, 46, 55, 60, 69];\n std2rl = createArray(70);\n}\n\nfunction $getct_0(this$static) {\n let i_0;\n let idx;\n let idxrl;\n let r;\n idx = 0;\n r = 4;\n for (i_0 = 6; i_0 >= 0; --i_0) {\n this$static.ud[i_0] !== this$static.ud[7] && (idx += Cnk[i_0][r--]);\n }\n idx *= 35;\n r = 4;\n for (i_0 = 6; i_0 >= 0; --i_0) {\n this$static.fb[i_0] !== this$static.fb[7] && (idx += Cnk[i_0][r--]);\n }\n idx *= 12;\n const check = this$static.fb[7] ^ this$static.ud[7];\n idxrl = 0;\n r = 4;\n for (i_0 = 7; i_0 >= 0; --i_0) {\n this$static.rl[i_0] !== check && (idxrl += Cnk[i_0][r--]);\n }\n return this$static.parity + 2 * (idx + std2rl[idxrl]);\n}\n\nfunction $move_1(this$static, i_0) {\n this$static.parity ^= pmove[i_0];\n switch (i_0) {\n case 0:\n case 1:\n case 2: {\n swap(this$static.ud, 0, 1, 2, 3, i_0 % 3);\n break;\n }\n case 3: {\n swap(this$static.rl, 0, 1, 2, 3, 1);\n break;\n }\n case 4:\n case 5:\n case 6: {\n swap(this$static.fb, 0, 1, 2, 3, (i_0 - 1) % 3);\n break;\n }\n case 7:\n case 8:\n case 9: {\n swap(this$static.ud, 4, 5, 6, 7, (i_0 - 1) % 3);\n break;\n }\n case 10: {\n swap(this$static.rl, 4, 5, 6, 7, 1);\n break;\n }\n case 11:\n case 12:\n case 13: {\n swap(this$static.fb, 4, 5, 6, 7, (i_0 + 1) % 3);\n break;\n }\n case 14: {\n swap(this$static.ud, 0, 1, 2, 3, 1);\n swap(this$static.rl, 0, 5, 4, 1, 1);\n swap(this$static.fb, 0, 5, 4, 1, 1);\n break;\n }\n case 15: {\n swap(this$static.rl, 0, 1, 2, 3, 1);\n swap(this$static.fb, 1, 4, 7, 2, 1);\n swap(this$static.ud, 1, 6, 5, 2, 1);\n break;\n }\n case 16: {\n swap(this$static.fb, 0, 1, 2, 3, 1);\n swap(this$static.ud, 3, 2, 5, 4, 1);\n swap(this$static.rl, 0, 3, 6, 5, 1);\n break;\n }\n case 17: {\n swap(this$static.ud, 4, 5, 6, 7, 1);\n swap(this$static.rl, 3, 2, 7, 6, 1);\n swap(this$static.fb, 3, 2, 7, 6, 1);\n break;\n }\n case 18: {\n swap(this$static.rl, 4, 5, 6, 7, 1);\n swap(this$static.fb, 0, 3, 6, 5, 1);\n swap(this$static.ud, 0, 3, 4, 7, 1);\n break;\n }\n case 19: {\n swap(this$static.fb, 4, 5, 6, 7, 1);\n swap(this$static.ud, 0, 7, 6, 1, 1);\n swap(this$static.rl, 1, 4, 7, 2, 1);\n }\n }\n}\n\nfunction $set_3(this$static, c, eXc_parity) {\n let i_0;\n const parity =\n (c.ct[0] > c.ct[8] ? 1 : 0) ^\n (c.ct[8] > c.ct[16] ? 1 : 0) ^\n (c.ct[0] > c.ct[16] ? 1 : 0)\n ? 1\n : 0;\n for (i_0 = 0; i_0 < 8; ++i_0) {\n this$static.ud[i_0] = (c.ct[i_0] & 1) ^ 1;\n this$static.fb[i_0] = (c.ct[i_0 + 8] & 1) ^ 1;\n this$static.rl[i_0] = (c.ct[i_0 + 16] & 1) ^ 1 ^ parity;\n }\n this$static.parity = parity ^ eXc_parity;\n}\n\nfunction $setct_0(this$static, idx) {\n let i_0;\n let idxfb;\n let idxrl;\n let r;\n this$static.parity = idx & 1;\n idx >>>= 1;\n idxrl = rl2std[idx % 12];\n idx = ~~(idx / 12);\n r = 4;\n for (i_0 = 7; i_0 >= 0; --i_0) {\n this$static.rl[i_0] = 0;\n if (idxrl >= Cnk[i_0][r]) {\n idxrl -= Cnk[i_0][r--];\n this$static.rl[i_0] = 1;\n }\n }\n idxfb = idx % 35;\n idx = ~~(idx / 35);\n r = 4;\n this$static.fb[7] = 0;\n for (i_0 = 6; i_0 >= 0; --i_0) {\n if (idxfb >= Cnk[i_0][r]) {\n idxfb -= Cnk[i_0][r--];\n this$static.fb[i_0] = 1;\n } else {\n this$static.fb[i_0] = 0;\n }\n }\n r = 4;\n this$static.ud[7] = 0;\n for (i_0 = 6; i_0 >= 0; --i_0) {\n if (idx >= Cnk[i_0][r]) {\n idx -= Cnk[i_0][r--];\n this$static.ud[i_0] = 1;\n } else {\n this$static.ud[i_0] = 0;\n }\n }\n}\n\nfunction Center3_0() {\n this.ud = createArray(8);\n this.rl = createArray(8);\n this.fb = createArray(8);\n}\n\nfunction init_4() {\n let depth;\n let done;\n let i_0;\n let m_0;\n for (i_0 = 0; i_0 < 12; ++i_0) {\n std2rl[rl2std[i_0]] = i_0;\n }\n const c = new Center3_0();\n for (i_0 = 0; i_0 < 29400; ++i_0) {\n for (m_0 = 0; m_0 < 20; ++m_0) {\n $setct_0(c, i_0);\n $move_1(c, m_0);\n ctmove[i_0][m_0] = $getct_0(c) & 65535;\n }\n }\n fill_0(prun_0);\n prun_0[0] = 0;\n depth = 0;\n done = 1;\n while (done !== 29400) {\n for (i_0 = 0; i_0 < 29400; ++i_0) {\n if (prun_0[i_0] !== depth) {\n continue;\n }\n for (m_0 = 0; m_0 < 17; ++m_0) {\n if (prun_0[ctmove[i_0][m_0]] === -1) {\n prun_0[ctmove[i_0][m_0]] = depth + 1;\n ++done;\n }\n }\n }\n ++depth;\n }\n}\n\ndefineSeed(155, 1, {}, Center3_0);\n_.parity = 0;\nlet ctmove;\nlet pmove;\nlet prun_0;\nlet rl2std;\nlet std2rl;\n\nfunction $copy_1(this$static, c) {\n let i_0;\n for (i_0 = 0; i_0 < 24; ++i_0) {\n this$static.ct[i_0] = c.ct[i_0];\n }\n}\n\nfunction $move_2(this$static, m_0) {\n const key = m_0 % 3;\n m_0 = ~~(m_0 / 3);\n switch (m_0) {\n case 0: {\n swap(this$static.ct, 0, 1, 2, 3, key);\n break;\n }\n case 1: {\n swap(this$static.ct, 16, 17, 18, 19, key);\n break;\n }\n case 2: {\n swap(this$static.ct, 8, 9, 10, 11, key);\n break;\n }\n case 3: {\n swap(this$static.ct, 4, 5, 6, 7, key);\n break;\n }\n case 4: {\n swap(this$static.ct, 20, 21, 22, 23, key);\n break;\n }\n case 5: {\n swap(this$static.ct, 12, 13, 14, 15, key);\n break;\n }\n case 6: {\n swap(this$static.ct, 0, 1, 2, 3, key);\n swap(this$static.ct, 8, 20, 12, 16, key);\n swap(this$static.ct, 9, 21, 13, 17, key);\n break;\n }\n case 7: {\n swap(this$static.ct, 16, 17, 18, 19, key);\n swap(this$static.ct, 1, 15, 5, 9, key);\n swap(this$static.ct, 2, 12, 6, 10, key);\n break;\n }\n case 8: {\n swap(this$static.ct, 8, 9, 10, 11, key);\n swap(this$static.ct, 2, 19, 4, 21, key);\n swap(this$static.ct, 3, 16, 5, 22, key);\n break;\n }\n case 9: {\n swap(this$static.ct, 4, 5, 6, 7, key);\n swap(this$static.ct, 10, 18, 14, 22, key);\n swap(this$static.ct, 11, 19, 15, 23, key);\n break;\n }\n case 10: {\n swap(this$static.ct, 20, 21, 22, 23, key);\n swap(this$static.ct, 0, 8, 4, 14, key);\n swap(this$static.ct, 3, 11, 7, 13, key);\n break;\n }\n case 11: {\n swap(this$static.ct, 12, 13, 14, 15, key);\n swap(this$static.ct, 1, 20, 7, 18, key);\n swap(this$static.ct, 0, 23, 6, 17, key);\n }\n }\n}\n\nfunction CenterCube_0() {\n let i_0;\n this.ct = createArray(24);\n for (i_0 = 0; i_0 < 24; ++i_0) {\n this.ct[i_0] = ~~(i_0 / 4);\n }\n}\n\nfunction CenterCube_1() {\n let i_0;\n let m_0;\n let t;\n CenterCube_0.call(this);\n for (i_0 = 0; i_0 < 23; ++i_0) {\n t = i_0 + randomUIntBelow(24 - i_0);\n if (this.ct[t] !== this.ct[i_0]) {\n m_0 = this.ct[i_0];\n this.ct[i_0] = this.ct[t];\n this.ct[t] = m_0;\n }\n }\n}\n\ndefineSeed(156, 1, {}, CenterCube_0, CenterCube_1);\n\nlet ran$clinit_CornerCube = false;\nfunction $clinit_CornerCube() {\n if (ran$clinit_CornerCube) {\n return;\n }\n ran$clinit_CornerCube = true;\n moveCube_0 = createArray(18);\n initMove_0();\n}\n\nfunction $$init_2(this$static) {\n this$static.cp = [0, 1, 2, 3, 4, 5, 6, 7];\n this$static.co = [0, 0, 0, 0, 0, 0, 0, 0];\n}\n\nfunction $copy_2(this$static, c) {\n let i_0;\n for (i_0 = 0; i_0 < 8; ++i_0) {\n this$static.cp[i_0] = c.cp[i_0];\n this$static.co[i_0] = c.co[i_0];\n }\n}\n\nfunction $move_3(this$static, idx) {\n !this$static.temps && (this$static.temps = new CornerCube_0());\n CornMult_0(this$static, moveCube_0[idx], this$static.temps);\n $copy_2(this$static, this$static.temps);\n}\n\nfunction $setTwist_0(this$static, idx) {\n let i_0;\n let twst;\n twst = 0;\n for (i_0 = 6; i_0 >= 0; --i_0) {\n twst += this$static.co[i_0] = idx % 3;\n idx = ~~(idx / 3);\n }\n this$static.co[7] = (15 - twst) % 3;\n}\n\nfunction CornMult_0(a, b, prod) {\n let corn;\n let ori;\n let oriA;\n let oriB;\n for (corn = 0; corn < 8; ++corn) {\n prod.cp[corn] = a.cp[b.cp[corn]];\n oriA = a.co[b.cp[corn]];\n oriB = b.co[corn];\n ori = oriA;\n ori = ori + (oriA < 3 ? oriB : 6 - oriB);\n ori = ori % 3;\n (oriA >= 3 ? 1 : 0) ^ (oriB >= 3 ? 1 : 0) && (ori = ori + 3);\n prod.co[corn] = ori;\n }\n}\n\nfunction CornerCube_0() {\n $$init_2(this);\n}\n\nfunction CornerCube_1(cperm, twist) {\n $$init_2(this);\n set8Perm(this.cp, cperm);\n $setTwist_0(this, twist);\n}\n\nfunction CornerCube_2() {\n CornerCube_1.call(this, randomUIntBelow(40320), randomUIntBelow(2187));\n}\n\nfunction initMove_0() {\n let a;\n let p_0;\n moveCube_0[0] = new CornerCube_1(15120, 0);\n moveCube_0[3] = new CornerCube_1(21021, 1494);\n moveCube_0[6] = new CornerCube_1(8064, 1236);\n moveCube_0[9] = new CornerCube_1(9, 0);\n moveCube_0[12] = new CornerCube_1(1230, 412);\n moveCube_0[15] = new CornerCube_1(224, 137);\n for (a = 0; a < 18; a += 3) {\n for (p_0 = 0; p_0 < 2; ++p_0) {\n moveCube_0[a + p_0 + 1] = new CornerCube_0();\n CornMult_0(moveCube_0[a + p_0], moveCube_0[a], moveCube_0[a + p_0 + 1]);\n }\n }\n}\n\ndefineSeed(\n 157,\n 1,\n makeCastMap([Q$CornerCube]),\n CornerCube_0,\n CornerCube_1,\n CornerCube_2,\n);\n_.temps = null;\nlet moveCube_0;\n\nlet ran$clinit_Edge3 = false;\nfunction $clinit_Edge3() {\n if (ran$clinit_Edge3) {\n return;\n }\n ran$clinit_Edge3 = true;\n eprun = createArray(1937880);\n sym2raw_0 = createArray(1538);\n symstate = createArray(1538);\n raw2sym_1 = createArray(11880);\n syminv_0 = [0, 1, 6, 3, 4, 5, 2, 7];\n mvrot = createArray(160, 12);\n mvroto = createArray(160, 12);\n factX = [\n 1, 1, 1, 3, 12, 60, 360, 2520, 20160, 181440, 1814400, 19958400, 239500800,\n ];\n FullEdgeMap = [0, 2, 4, 6, 1, 3, 7, 5, 8, 9, 10, 11];\n}\n\nfunction $circlex(this$static, a, b, c, d) {\n const temp = this$static.edgeo[d];\n this$static.edgeo[d] = this$static.edge[c];\n this$static.edge[c] = this$static.edgeo[b];\n this$static.edgeo[b] = this$static.edge[a];\n this$static.edge[a] = temp;\n}\n\nfunction $get_2(this$static, end) {\n let i_0;\n let idx;\n let v;\n let valh;\n let vall;\n this$static.isStd || $std(this$static);\n idx = 0;\n vall = 1985229328;\n valh = 47768;\n for (i_0 = 0; i_0 < end; ++i_0) {\n v = this$static.edge[i_0] << 2;\n idx *= 12 - i_0;\n if (v >= 32) {\n idx += (valh >> (v - 32)) & 15;\n valh -= 4368 << (v - 32);\n } else {\n idx += (vall >> v) & 15;\n valh -= 4369;\n vall -= 286331152 << v;\n }\n }\n return idx;\n}\n\nfunction $getsym_0(this$static) {\n let symcord1x;\n const cord1x = $get_2(this$static, 4);\n symcord1x = raw2sym_1[cord1x];\n const symx = symcord1x & 7;\n symcord1x >>= 3;\n $rotate_0(this$static, symx);\n const cord2x = $get_2(this$static, 10) % 20160;\n return symcord1x * 20160 + cord2x;\n}\n\nfunction $move_4(this$static, i_0) {\n this$static.isStd = false;\n switch (i_0) {\n case 0: {\n circle(this$static.edge, 0, 4, 1, 5);\n circle(this$static.edgeo, 0, 4, 1, 5);\n break;\n }\n case 1: {\n $swap_0(this$static.edge, 0, 4, 1, 5);\n $swap_0(this$static.edgeo, 0, 4, 1, 5);\n break;\n }\n case 2: {\n circle(this$static.edge, 0, 5, 1, 4);\n circle(this$static.edgeo, 0, 5, 1, 4);\n break;\n }\n case 3: {\n $swap_0(this$static.edge, 5, 10, 6, 11);\n $swap_0(this$static.edgeo, 5, 10, 6, 11);\n break;\n }\n case 4: {\n circle(this$static.edge, 0, 11, 3, 8);\n circle(this$static.edgeo, 0, 11, 3, 8);\n break;\n }\n case 5: {\n $swap_0(this$static.edge, 0, 11, 3, 8);\n $swap_0(this$static.edgeo, 0, 11, 3, 8);\n break;\n }\n case 6: {\n circle(this$static.edge, 0, 8, 3, 11);\n circle(this$static.edgeo, 0, 8, 3, 11);\n break;\n }\n case 7: {\n circle(this$static.edge, 2, 7, 3, 6);\n circle(this$static.edgeo, 2, 7, 3, 6);\n break;\n }\n case 8: {\n $swap_0(this$static.edge, 2, 7, 3, 6);\n $swap_0(this$static.edgeo, 2, 7, 3, 6);\n break;\n }\n case 9: {\n circle(this$static.edge, 2, 6, 3, 7);\n circle(this$static.edgeo, 2, 6, 3, 7);\n break;\n }\n case 10: {\n $swap_0(this$static.edge, 4, 8, 7, 9);\n $swap_0(this$static.edgeo, 4, 8, 7, 9);\n break;\n }\n case 11: {\n circle(this$static.edge, 1, 9, 2, 10);\n circle(this$static.edgeo, 1, 9, 2, 10);\n break;\n }\n case 12: {\n $swap_0(this$static.edge, 1, 9, 2, 10);\n $swap_0(this$static.edgeo, 1, 9, 2, 10);\n break;\n }\n case 13: {\n circle(this$static.edge, 1, 10, 2, 9);\n circle(this$static.edgeo, 1, 10, 2, 9);\n break;\n }\n case 14: {\n $swap_0(this$static.edge, 0, 4, 1, 5);\n $swap_0(this$static.edgeo, 0, 4, 1, 5);\n circle(this$static.edge, 9, 11);\n circle(this$static.edgeo, 8, 10);\n break;\n }\n case 15: {\n $swap_0(this$static.edge, 5, 10, 6, 11);\n $swap_0(this$static.edgeo, 5, 10, 6, 11);\n circle(this$static.edge, 1, 3);\n circle(this$static.edgeo, 0, 2);\n break;\n }\n case 16: {\n $swap_0(this$static.edge, 0, 11, 3, 8);\n $swap_0(this$static.edgeo, 0, 11, 3, 8);\n circle(this$static.edge, 5, 7);\n circle(this$static.edgeo, 4, 6);\n break;\n }\n case 17: {\n $swap_0(this$static.edge, 2, 7, 3, 6);\n $swap_0(this$static.edgeo, 2, 7, 3, 6);\n circle(this$static.edge, 8, 10);\n circle(this$static.edgeo, 9, 11);\n break;\n }\n case 18: {\n $swap_0(this$static.edge, 4, 8, 7, 9);\n $swap_0(this$static.edgeo, 4, 8, 7, 9);\n circle(this$static.edge, 0, 2);\n circle(this$static.edgeo, 1, 3);\n break;\n }\n case 19: {\n $swap_0(this$static.edge, 1, 9, 2, 10);\n $swap_0(this$static.edgeo, 1, 9, 2, 10);\n circle(this$static.edge, 4, 6);\n circle(this$static.edgeo, 5, 7);\n }\n }\n}\n\nfunction $rot_1(this$static, r) {\n this$static.isStd = false;\n switch (r) {\n case 0: {\n $move_4(this$static, 14);\n $move_4(this$static, 17);\n break;\n }\n case 1: {\n $circlex(this$static, 11, 5, 10, 6);\n $circlex(this$static, 5, 10, 6, 11);\n $circlex(this$static, 1, 2, 3, 0);\n $circlex(this$static, 4, 9, 7, 8);\n $circlex(this$static, 8, 4, 9, 7);\n $circlex(this$static, 0, 1, 2, 3);\n break;\n }\n case 2: {\n $swapx(this$static, 4, 5);\n $swapx(this$static, 5, 4);\n $swapx(this$static, 11, 8);\n $swapx(this$static, 8, 11);\n $swapx(this$static, 7, 6);\n $swapx(this$static, 6, 7);\n $swapx(this$static, 9, 10);\n $swapx(this$static, 10, 9);\n $swapx(this$static, 1, 1);\n $swapx(this$static, 0, 0);\n $swapx(this$static, 3, 3);\n $swapx(this$static, 2, 2);\n }\n }\n}\n\nfunction $rotate_0(this$static, r) {\n while (r >= 2) {\n r -= 2;\n $rot_1(this$static, 1);\n $rot_1(this$static, 2);\n }\n r !== 0 && $rot_1(this$static, 0);\n}\n\nfunction $set_4(this$static, idx) {\n let i_0;\n let p_0;\n let parity;\n let v;\n let vall;\n let valh;\n vall = 0x76543210;\n valh = 0xba98;\n parity = 0;\n for (i_0 = 0; i_0 < 11; ++i_0) {\n p_0 = factX[11 - i_0];\n v = ~~(idx / p_0);\n idx = idx % p_0;\n parity ^= v;\n v <<= 2;\n if (v >= 32) {\n v = v - 32;\n this$static.edge[i_0] = (valh >> v) & 15;\n const m = (1 << v) - 1;\n valh = (valh & m) + ((valh >> 4) & ~m);\n } else {\n this$static.edge[i_0] = (vall >> v) & 15;\n const m = (1 << v) - 1;\n vall = (vall & m) + ((vall >>> 4) & ~m) + (valh << 28);\n valh = valh >> 4;\n }\n }\n if ((parity & 1) === 0) {\n this$static.edge[11] = vall;\n } else {\n this$static.edge[11] = this$static.edge[10];\n this$static.edge[10] = vall;\n }\n for (i_0 = 0; i_0 < 12; ++i_0) {\n this$static.edgeo[i_0] = i_0;\n }\n this$static.isStd = true;\n}\n\nfunction $set_5(this$static, e) {\n let i_0;\n for (i_0 = 0; i_0 < 12; ++i_0) {\n this$static.edge[i_0] = e.edge[i_0];\n this$static.edgeo[i_0] = e.edgeo[i_0];\n }\n this$static.isStd = e.isStd;\n}\n\nfunction $set_6(this$static, c) {\n let i_0;\n let parity;\n let s;\n let t;\n this$static.temp === null && (this$static.temp = createArray(12));\n for (i_0 = 0; i_0 < 12; ++i_0) {\n this$static.temp[i_0] = i_0;\n this$static.edge[i_0] = c.ep[FullEdgeMap[i_0] + 12] % 12;\n }\n parity = 1;\n for (i_0 = 0; i_0 < 12; ++i_0) {\n while (this$static.edge[i_0] !== i_0) {\n t = this$static.edge[i_0];\n this$static.edge[i_0] = this$static.edge[t];\n this$static.edge[t] = t;\n s = this$static.temp[i_0];\n this$static.temp[i_0] = this$static.temp[t];\n this$static.temp[t] = s;\n parity ^= 1;\n }\n }\n for (i_0 = 0; i_0 < 12; ++i_0) {\n this$static.edge[i_0] = this$static.temp[c.ep[FullEdgeMap[i_0]] % 12];\n }\n return parity;\n}\n\nfunction $std(this$static) {\n let i_0;\n this$static.temp === null && (this$static.temp = createArray(12));\n for (i_0 = 0; i_0 < 12; ++i_0) {\n this$static.temp[this$static.edgeo[i_0]] = i_0;\n }\n for (i_0 = 0; i_0 < 12; ++i_0) {\n this$static.edge[i_0] = this$static.temp[this$static.edge[i_0]];\n this$static.edgeo[i_0] = i_0;\n }\n this$static.isStd = true;\n}\n\nfunction $swap_0(arr, a, b, c, d) {\n let temp;\n temp = arr[a];\n arr[a] = arr[c];\n arr[c] = temp;\n temp = arr[b];\n arr[b] = arr[d];\n arr[d] = temp;\n}\n\nfunction $swapx(this$static, x, y) {\n const temp = this$static.edge[x];\n this$static.edge[x] = this$static.edgeo[y];\n this$static.edgeo[y] = temp;\n}\n\nfunction Edge3_0() {\n this.edge = createArray(12);\n this.edgeo = createArray(12);\n}\n\nfunction createPrun_0() {\n let chk;\n let cord1;\n let cord1x;\n let cord2;\n let cord2x;\n let dep1m3;\n let depm3;\n let depth;\n let end;\n let find_0;\n let i_0;\n let i_;\n let idx;\n let idxx;\n let inv;\n let j;\n let m_0;\n let symState;\n let symcord1;\n let symcord1x;\n let symx;\n let val;\n const e = new Edge3_0();\n const f = new Edge3_0();\n const g = new Edge3_0();\n fill_0(eprun);\n depth = 0;\n done_0 = 1;\n setPruning_0(eprun, 0, 0);\n // var start = +new Date;\n while (done_0 !== 31006080) {\n inv = depth > 9;\n depm3 = depth % 3;\n dep1m3 = (depth + 1) % 3;\n find_0 = inv ? 3 : depm3;\n chk = inv ? depm3 : 3;\n if (depth >= 9) {\n break;\n }\n for (i_ = 0; i_ < 31006080; i_ += 16) {\n val = eprun[~~i_ >> 4];\n if (!inv && val === -1) {\n continue;\n }\n for (i_0 = i_, end = i_ + 16; i_0 < end; ++i_0, val >>= 2) {\n if ((val & 3) !== find_0) {\n continue;\n }\n symcord1 = ~~(i_0 / 20160);\n cord1 = sym2raw_0[symcord1];\n cord2 = i_0 % 20160;\n $set_4(e, cord1 * 20160 + cord2);\n for (m_0 = 0; m_0 < 17; ++m_0) {\n cord1x = getmvrot(e.edge, m_0 << 3, 4);\n symcord1x = raw2sym_1[cord1x];\n symx = symcord1x & 7;\n symcord1x >>= 3;\n cord2x = getmvrot(e.edge, (m_0 << 3) | symx, 10) % 20160;\n idx = symcord1x * 20160 + cord2x;\n if (getPruning_0(eprun, idx) !== chk) {\n continue;\n }\n setPruning_0(eprun, inv ? i_0 : idx, dep1m3);\n ++done_0;\n if (inv) {\n break;\n }\n symState = symstate[symcord1x];\n if (symState === 1) {\n continue;\n }\n $set_5(f, e);\n $move_4(f, m_0);\n $rotate_0(f, symx);\n for (j = 1; (symState = (~~symState >> 1) & 65535) !== 0; ++j) {\n if ((symState & 1) !== 1) {\n continue;\n }\n $set_5(g, f);\n $rotate_0(g, j);\n idxx = symcord1x * 20160 + ($get_2(g, 10) % 20160);\n if (getPruning_0(eprun, idxx) === chk) {\n setPruning_0(eprun, idxx, dep1m3);\n ++done_0;\n }\n }\n }\n }\n }\n ++depth;\n // console.log(depth + '\\t' + done_0 + '\\t' + (+new Date - start));\n }\n}\n\nfunction getPruning_0(table, index) {\n return (table[index >> 4] >> ((index & 15) << 1)) & 3;\n}\n\nfunction getmvrot(ep, mrIdx, end) {\n let i_0;\n let idx;\n let v;\n let valh;\n let vall;\n const movo = mvroto[mrIdx];\n const mov = mvrot[mrIdx];\n idx = 0;\n vall = 1985229328;\n valh = 47768;\n for (i_0 = 0; i_0 < end; ++i_0) {\n v = movo[ep[mov[i_0]]] << 2;\n idx *= 12 - i_0;\n if (v >= 32) {\n idx += (valh >> (v - 32)) & 15;\n valh -= 4368 << (v - 32);\n } else {\n idx += (vall >> v) & 15;\n valh -= 4369;\n vall -= 286331152 << v;\n }\n }\n return idx;\n}\n\nfunction getprun(edge) {\n let cord1;\n let cord1x;\n let cord2;\n let cord2x;\n let depm3;\n let depth;\n let idx;\n let m_0;\n let symcord1;\n let symcord1x;\n let symx;\n const e = new Edge3_0();\n depth = 0;\n depm3 = getPruning_0(eprun, edge);\n if (depm3 === 3) {\n return 10;\n }\n while (edge !== 0) {\n depm3 === 0 ? (depm3 = 2) : --depm3;\n symcord1 = ~~(edge / 20160);\n cord1 = sym2raw_0[symcord1];\n cord2 = edge % 20160;\n $set_4(e, cord1 * 20160 + cord2);\n for (m_0 = 0; m_0 < 17; ++m_0) {\n cord1x = getmvrot(e.edge, m_0 << 3, 4);\n symcord1x = raw2sym_1[cord1x];\n symx = symcord1x & 7;\n symcord1x >>= 3;\n cord2x = getmvrot(e.edge, (m_0 << 3) | symx, 10) % 20160;\n idx = symcord1x * 20160 + cord2x;\n if (getPruning_0(eprun, idx) === depm3) {\n ++depth;\n edge = idx;\n break;\n }\n }\n }\n return depth;\n}\n\nfunction getprun_0(edge, prun) {\n const depm3 = getPruning_0(eprun, edge);\n if (depm3 === 3) {\n return 10;\n }\n return (((0x49249249 << depm3) >> prun) & 3) + prun - 1;\n // (depm3 - prun + 16) % 3 + prun - 1;\n}\n\nfunction initMvrot() {\n let i_0;\n let m_0;\n let r;\n const e = new Edge3_0();\n for (m_0 = 0; m_0 < 20; ++m_0) {\n for (r = 0; r < 8; ++r) {\n $set_4(e, 0);\n $move_4(e, m_0);\n $rotate_0(e, r);\n for (i_0 = 0; i_0 < 12; ++i_0) {\n mvrot[(m_0 << 3) | r][i_0] = e.edge[i_0];\n }\n $std(e);\n for (i_0 = 0; i_0 < 12; ++i_0) {\n mvroto[(m_0 << 3) | r][i_0] = e.temp[i_0];\n }\n }\n }\n}\n\nfunction initRaw2Sym() {\n let count;\n let i_0;\n let idx;\n let j;\n const e = new Edge3_0();\n const occ = createArray(1485);\n for (i_0 = 0; i_0 < 1485; i_0++) {\n occ[i_0] = 0;\n }\n count = 0;\n for (i_0 = 0; i_0 < 11880; ++i_0) {\n if ((occ[~~i_0 >>> 3] & (1 << (i_0 & 7))) === 0) {\n $set_4(e, i_0 * factX[8]);\n for (j = 0; j < 8; ++j) {\n idx = $get_2(e, 4);\n idx === i_0 && (symstate[count] = (symstate[count] | (1 << j)) & 65535);\n occ[~~idx >> 3] = occ[~~idx >> 3] | (1 << (idx & 7));\n raw2sym_1[idx] = (count << 3) | syminv_0[j];\n $rot_1(e, 0);\n if (j % 2 === 1) {\n $rot_1(e, 1);\n $rot_1(e, 2);\n }\n }\n sym2raw_0[count++] = i_0;\n }\n }\n}\n\nfunction setPruning_0(table, index, value) {\n table[index >> 4] ^= (3 ^ value) << ((index & 15) << 1);\n}\n\ndefineSeed(158, 1, makeCastMap([Q$Edge3]), Edge3_0);\n_.isStd = true;\n_.temp = null;\nlet FullEdgeMap;\nlet done_0 = 0;\nlet eprun;\nlet factX;\nlet mvrot;\nlet mvroto;\nlet raw2sym_1;\nlet sym2raw_0;\nlet syminv_0;\nlet symstate;\n\nlet ran$clinit_EdgeCube = false;\nfunction $clinit_EdgeCube() {\n if (ran$clinit_EdgeCube) {\n return;\n }\n ran$clinit_EdgeCube = true;\n}\n\nfunction $checkEdge(this$static) {\n let ck;\n let i_0;\n let parity;\n ck = 0;\n parity = false;\n for (i_0 = 0; i_0 < 12; ++i_0) {\n ck |= 1 << this$static.ep[i_0];\n parity = parity !== this$static.ep[i_0] >= 12;\n }\n ck &= ~~ck >> 12;\n return ck === 0 && !parity;\n}\n\nfunction $copy_3(this$static, c) {\n let i_0;\n for (i_0 = 0; i_0 < 24; ++i_0) {\n this$static.ep[i_0] = c.ep[i_0];\n }\n}\n\nfunction $move_5(this$static, m_0) {\n const key = m_0 % 3;\n m_0 = ~~(m_0 / 3);\n switch (m_0) {\n case 0: {\n swap(this$static.ep, 0, 1, 2, 3, key);\n swap(this$static.ep, 12, 13, 14, 15, key);\n break;\n }\n case 1: {\n swap(this$static.ep, 11, 15, 10, 19, key);\n swap(this$static.ep, 23, 3, 22, 7, key);\n break;\n }\n case 2: {\n swap(this$static.ep, 0, 11, 6, 8, key);\n swap(this$static.ep, 12, 23, 18, 20, key);\n break;\n }\n case 3: {\n swap(this$static.ep, 4, 5, 6, 7, key);\n swap(this$static.ep, 16, 17, 18, 19, key);\n break;\n }\n case 4: {\n swap(this$static.ep, 1, 20, 5, 21, key);\n swap(this$static.ep, 13, 8, 17, 9, key);\n break;\n }\n case 5: {\n swap(this$static.ep, 2, 9, 4, 10, key);\n swap(this$static.ep, 14, 21, 16, 22, key);\n break;\n }\n case 6: {\n swap(this$static.ep, 0, 1, 2, 3, key);\n swap(this$static.ep, 12, 13, 14, 15, key);\n swap(this$static.ep, 9, 22, 11, 20, key);\n break;\n }\n case 7: {\n swap(this$static.ep, 11, 15, 10, 19, key);\n swap(this$static.ep, 23, 3, 22, 7, key);\n swap(this$static.ep, 2, 16, 6, 12, key);\n break;\n }\n case 8: {\n swap(this$static.ep, 0, 11, 6, 8, key);\n swap(this$static.ep, 12, 23, 18, 20, key);\n swap(this$static.ep, 3, 19, 5, 13, key);\n break;\n }\n case 9: {\n swap(this$static.ep, 4, 5, 6, 7, key);\n swap(this$static.ep, 16, 17, 18, 19, key);\n swap(this$static.ep, 8, 23, 10, 21, key);\n break;\n }\n case 10: {\n swap(this$static.ep, 1, 20, 5, 21, key);\n swap(this$static.ep, 13, 8, 17, 9, key);\n swap(this$static.ep, 14, 0, 18, 4, key);\n break;\n }\n case 11: {\n swap(this$static.ep, 2, 9, 4, 10, key);\n swap(this$static.ep, 14, 21, 16, 22, key);\n swap(this$static.ep, 7, 15, 1, 17, key);\n }\n }\n}\n\nfunction EdgeCube_0() {\n let i_0;\n this.ep = createArray(24);\n for (i_0 = 0; i_0 < 24; ++i_0) {\n this.ep[i_0] = i_0;\n }\n}\n\nfunction EdgeCube_1() {\n let i_0;\n let m_0;\n let t;\n EdgeCube_0.call(this);\n for (i_0 = 0; i_0 < 23; ++i_0) {\n t = i_0 + randomUIntBelow(24 - i_0);\n if (t !== i_0) {\n m_0 = this.ep[i_0];\n this.ep[i_0] = this.ep[t];\n this.ep[t] = m_0;\n }\n }\n}\n\ndefineSeed(159, 1, {}, EdgeCube_0, EdgeCube_1);\n\nlet ran$clinit_FullCube_0 = false;\nfunction $clinit_FullCube_0() {\n if (ran$clinit_FullCube_0) {\n return;\n }\n ran$clinit_FullCube_0 = true;\n move2rot = [35, 1, 34, 2, 4, 6, 22, 5, 19];\n}\n\nfunction $$init_3(this$static) {\n this$static.moveBuffer = createArray(60);\n}\n\nfunction $compareTo_1(this$static, c) {\n return this$static.value - c.value;\n}\n\nfunction $copy_4(this$static, c) {\n let i_0;\n $copy_3(this$static.edge, c.edge);\n $copy_1(this$static.center, c.center);\n $copy_2(this$static.corner, c.corner);\n this$static.value = c.value;\n this$static.add1 = c.add1;\n this$static.length1 = c.length1;\n this$static.length2 = c.length2;\n this$static.length3 = c.length3;\n this$static.sym = c.sym;\n for (i_0 = 0; i_0 < 60; ++i_0) {\n this$static.moveBuffer[i_0] = c.moveBuffer[i_0];\n }\n this$static.moveLength = c.moveLength;\n this$static.edgeAvail = c.edgeAvail;\n this$static.centerAvail = c.centerAvail;\n this$static.cornerAvail = c.cornerAvail;\n}\n\nfunction $getCenter(this$static) {\n while (this$static.centerAvail < this$static.moveLength) {\n $move_2(\n this$static.center,\n this$static.moveBuffer[this$static.centerAvail++],\n );\n }\n return this$static.center;\n}\n\nfunction $getCorner(this$static) {\n while (this$static.cornerAvail < this$static.moveLength) {\n $move_3(\n this$static.corner,\n this$static.moveBuffer[this$static.cornerAvail++] % 18,\n );\n }\n return this$static.corner;\n}\n\nfunction $getEdge(this$static) {\n while (this$static.edgeAvail < this$static.moveLength) {\n $move_5(this$static.edge, this$static.moveBuffer[this$static.edgeAvail++]);\n }\n return this$static.edge;\n}\n\nfunction $getMoveString(this$static) {\n let i_0;\n let idx;\n let move;\n let rot;\n let sb;\n let sym;\n const fixedMoves = new Array(\n this$static.moveLength - (this$static.add1 ? 2 : 0),\n );\n idx = 0;\n for (i_0 = 0; i_0 < this$static.length1; ++i_0) {\n fixedMoves[idx++] = this$static.moveBuffer[i_0];\n }\n sym = this$static.sym;\n for (\n i_0 = this$static.length1 + (this$static.add1 ? 2 : 0);\n i_0 < this$static.moveLength;\n ++i_0\n ) {\n if (symmove[sym][this$static.moveBuffer[i_0]] >= 27) {\n fixedMoves[idx++] = symmove[sym][this$static.moveBuffer[i_0]] - 9;\n rot = move2rot[symmove[sym][this$static.moveBuffer[i_0]] - 27];\n sym = symmult[sym][rot];\n } else {\n fixedMoves[idx++] = symmove[sym][this$static.moveBuffer[i_0]];\n }\n }\n const finishSym = symmult[syminv[sym]][getSolvedSym($getCenter(this$static))];\n sb = \"\";\n sym = finishSym;\n for (i_0 = idx - 1; i_0 >= 0; --i_0) {\n move = fixedMoves[i_0];\n move = ~~(move / 3) * 3 + (2 - (move % 3));\n if (symmove[sym][move] >= 27) {\n sb = `${sb}${move2str_1[symmove[sym][move] - 9]} `;\n rot = move2rot[symmove[sym][move] - 27];\n sym = symmult[sym][rot];\n } else {\n sb = `${sb}${move2str_1[symmove[sym][move]]} `;\n }\n }\n return sb;\n}\n\nfunction $move_6(this$static, m_0) {\n this$static.moveBuffer[this$static.moveLength++] = m_0;\n return;\n}\n\nfunction FullCube_3() {\n $$init_3(this);\n this.edge = new EdgeCube_0();\n this.center = new CenterCube_0();\n this.corner = new CornerCube_0();\n}\n\nfunction FullCube_4(c) {\n FullCube_3.call(this);\n $copy_4(this, c);\n}\n\nfunction FullCube_5() {\n $$init_3(this);\n this.edge = new EdgeCube_1();\n this.center = new CenterCube_1();\n this.corner = new CornerCube_2();\n}\n\ndefineSeed(\n 160,\n 1,\n makeCastMap([Q$FullCube_0, Q$Comparable]),\n FullCube_3,\n FullCube_4,\n FullCube_5,\n);\n_.compareTo$ = function compareTo_1(c) {\n return $compareTo_1(this, c);\n};\n_.add1 = false;\n_.center = null;\n_.centerAvail = 0;\n_.corner = null;\n_.cornerAvail = 0;\n_.edge = null;\n_.edgeAvail = 0;\n_.length1 = 0;\n_.length2 = 0;\n_.length3 = 0;\n_.moveLength = 0;\n_.sym = 0;\n_.value = 0;\nlet move2rot;\n\nfunction $compare(c1, c2) {\n return c2.value - c1.value;\n}\n\nfunction $compare_0(c1, c2) {\n return $compare(c1, c2);\n}\n\nfunction FullCube$ValueComparator_0() {}\n\ndefineSeed(161, 1, {}, FullCube$ValueComparator_0);\n_.compare = function compare(c1, c2) {\n return $compare_0(c1, c2);\n};\n\nlet ran$clinit_Moves = false;\nfunction $clinit_Moves() {\n if (ran$clinit_Moves) {\n return;\n }\n ran$clinit_Moves = true;\n let i_0;\n let j;\n move2str_1 = [\n \"U \",\n \"U2 \",\n \"U' \",\n \"R \",\n \"R2 \",\n \"R' \",\n \"F \",\n \"F2 \",\n \"F' \",\n \"D \",\n \"D2 \",\n \"D' \",\n \"L \",\n \"L2 \",\n \"L' \",\n \"B \",\n \"B2 \",\n \"B' \",\n \"Uw \",\n \"Uw2\",\n \"Uw'\",\n \"Rw \",\n \"Rw2\",\n \"Rw'\",\n \"Fw \",\n \"Fw2\",\n \"Fw'\",\n \"Dw \",\n \"Dw2\",\n \"Dw'\",\n \"Lw \",\n \"Lw2\",\n \"Lw'\",\n \"Bw \",\n \"Bw2\",\n \"Bw'\",\n ];\n move2std = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 21, 22,\n 23, 25, 28, 30, 31, 32, 34, 36,\n ];\n move3std = [\n 0, 1, 2, 4, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 19, 22, 25, 28, 31, 34, 36,\n ];\n std2move = createArray(37);\n std3move = createArray(37);\n ckmv = createArray(37, 36);\n ckmv2_0 = createArray(29, 28);\n ckmv3 = createArray(21, 20);\n skipAxis = createArray(36);\n skipAxis2 = createArray(28);\n skipAxis3 = createArray(20);\n for (i_0 = 0; i_0 < 29; ++i_0) {\n std2move[move2std[i_0]] = i_0;\n }\n for (i_0 = 0; i_0 < 21; ++i_0) {\n std3move[move3std[i_0]] = i_0;\n }\n for (i_0 = 0; i_0 < 36; ++i_0) {\n for (j = 0; j < 36; ++j) {\n ckmv[i_0][j] =\n ~~(i_0 / 3) === ~~(j / 3) ||\n (~~(i_0 / 3) % 3 === ~~(j / 3) % 3 && i_0 > j);\n }\n ckmv[36][i_0] = false;\n }\n for (i_0 = 0; i_0 < 29; ++i_0) {\n for (j = 0; j < 28; ++j) {\n ckmv2_0[i_0][j] = ckmv[move2std[i_0]][move2std[j]];\n }\n }\n for (i_0 = 0; i_0 < 21; ++i_0) {\n for (j = 0; j < 20; ++j) {\n ckmv3[i_0][j] = ckmv[move3std[i_0]][move3std[j]];\n }\n }\n for (i_0 = 0; i_0 < 36; ++i_0) {\n skipAxis[i_0] = 36;\n for (j = i_0; j < 36; ++j) {\n if (!ckmv[i_0][j]) {\n skipAxis[i_0] = j - 1;\n break;\n }\n }\n }\n for (i_0 = 0; i_0 < 28; ++i_0) {\n skipAxis2[i_0] = 28;\n for (j = i_0; j < 28; ++j) {\n if (!ckmv2_0[i_0][j]) {\n skipAxis2[i_0] = j - 1;\n break;\n }\n }\n }\n for (i_0 = 0; i_0 < 20; ++i_0) {\n skipAxis3[i_0] = 20;\n for (j = i_0; j < 20; ++j) {\n if (!ckmv3[i_0][j]) {\n skipAxis3[i_0] = j - 1;\n break;\n }\n }\n }\n}\n\nlet ckmv;\nlet ckmv2_0;\nlet ckmv3;\nlet move2std;\nlet move2str_1;\nlet move3std;\nlet skipAxis;\nlet skipAxis2;\nlet skipAxis3;\nlet std2move;\nlet std3move;\n\nfunction $doSearch(this$static) {\n let MAX_LENGTH2;\n let MAX_LENGTH3;\n let ct;\n let edge;\n let eparity;\n let i_0;\n let index;\n let length12;\n let length123;\n let prun;\n let s2ct;\n let s2rl;\n this$static.solution = \"\";\n const ud = $getsym(new Center1_1($getCenter(this$static.c), 0));\n const fb = $getsym(new Center1_1($getCenter(this$static.c), 1));\n const rl = $getsym(new Center1_1($getCenter(this$static.c), 2));\n const udprun = csprun[~~ud >> 6];\n const fbprun = csprun[~~fb >> 6];\n const rlprun = csprun[~~rl >> 6];\n this$static.p1SolsCnt = 0;\n this$static.arr2idx = 0;\n $clear(this$static.p1sols.heap);\n for (\n this$static.length1 =\n (udprun < fbprun ? udprun : fbprun) < rlprun\n ? udprun < fbprun\n ? udprun\n : fbprun\n : rlprun;\n this$static.length1 < 100;\n ++this$static.length1\n ) {\n if (\n (rlprun <= this$static.length1 &&\n $search1(\n this$static,\n ~~rl >>> 6,\n rl & 63,\n this$static.length1,\n -1,\n 0,\n )) ||\n (udprun <= this$static.length1 &&\n $search1(\n this$static,\n ~~ud >>> 6,\n ud & 63,\n this$static.length1,\n -1,\n 0,\n )) ||\n (fbprun <= this$static.length1 &&\n $search1(this$static, ~~fb >>> 6, fb & 63, this$static.length1, -1, 0))\n ) {\n break;\n }\n }\n const p1SolsArr = $toArray_1(\n this$static.p1sols,\n initDim(\n _3Lcs_threephase_FullCube_2_classLit,\n makeCastMap([Q$FullCube_$1, Q$Serializable, Q$Object_$1]),\n Q$FullCube_0,\n 0,\n 0,\n ),\n );\n\n p1SolsArr.sort(function (a, b) {\n return a.value - b.value;\n });\n MAX_LENGTH2 = 9;\n do {\n OUT: for (length12 = p1SolsArr[0].value; length12 < 100; ++length12) {\n for (i_0 = 0; i_0 < p1SolsArr.length; ++i_0) {\n if (p1SolsArr[i_0].value > length12) {\n break;\n }\n if (length12 - p1SolsArr[i_0].length1 > MAX_LENGTH2) {\n continue;\n }\n $copy_4(this$static.c1, p1SolsArr[i_0]);\n $set_2(\n this$static.ct2,\n $getCenter(this$static.c1),\n parity_0($getEdge(this$static.c1).ep),\n );\n s2ct = $getct(this$static.ct2);\n s2rl = $getrl(this$static.ct2);\n this$static.length1 = p1SolsArr[i_0].length1;\n this$static.length2 = length12 - p1SolsArr[i_0].length1;\n if ($search2(this$static, s2ct, s2rl, this$static.length2, 28, 0)) {\n break OUT;\n }\n }\n }\n ++MAX_LENGTH2;\n } while (length12 === 100);\n this$static.arr2.sort(function (a, b) {\n return a.value - b.value;\n });\n index = 0;\n MAX_LENGTH3 = 13;\n do {\n OUT2: for (\n length123 = this$static.arr2[0].value;\n length123 < 100;\n ++length123\n ) {\n for (i_0 = 0; i_0 < Math.min(this$static.arr2idx, 100); ++i_0) {\n if (this$static.arr2[i_0].value > length123) {\n break;\n }\n if (\n length123 -\n this$static.arr2[i_0].length1 -\n this$static.arr2[i_0].length2 >\n MAX_LENGTH3\n ) {\n continue;\n }\n eparity = $set_6(this$static.e12, $getEdge(this$static.arr2[i_0]));\n $set_3(\n this$static.ct3,\n $getCenter(this$static.arr2[i_0]),\n eparity ^ parity_0($getCorner(this$static.arr2[i_0]).cp),\n );\n ct = $getct_0(this$static.ct3);\n edge = $get_2(this$static.e12, 10);\n prun = getprun($getsym_0(this$static.e12));\n if (\n prun <=\n length123 -\n this$static.arr2[i_0].length1 -\n this$static.arr2[i_0].length2 &&\n $search3(\n this$static,\n edge,\n ct,\n prun,\n length123 -\n this$static.arr2[i_0].length1 -\n this$static.arr2[i_0].length2,\n 20,\n 0,\n )\n ) {\n index = i_0;\n break OUT2;\n }\n }\n }\n ++MAX_LENGTH3;\n } while (length123 === 100);\n const solcube = new FullCube_4(this$static.arr2[index]);\n this$static.length1 = solcube.length1;\n this$static.length2 = solcube.length2;\n const length_0 = length123 - this$static.length1 - this$static.length2;\n for (i_0 = 0; i_0 < length_0; ++i_0) {\n $move_6(solcube, move3std[this$static.move3[i_0]]);\n }\n this$static.solution = $getMoveString(solcube);\n}\n\nfunction $init2_0(this$static, sym) {\n let i_0;\n let next;\n $copy_4(this$static.c1, this$static.c);\n for (i_0 = 0; i_0 < this$static.length1; ++i_0) {\n $move_6(this$static.c1, this$static.move1[i_0]);\n }\n switch (finish_0[sym]) {\n case 0: {\n $move_6(this$static.c1, 24);\n $move_6(this$static.c1, 35);\n this$static.move1[this$static.length1] = 24;\n this$static.move1[this$static.length1 + 1] = 35;\n this$static.add1 = true;\n sym = 19;\n break;\n }\n case 12869: {\n $move_6(this$static.c1, 18);\n $move_6(this$static.c1, 29);\n this$static.move1[this$static.length1] = 18;\n this$static.move1[this$static.length1 + 1] = 29;\n this$static.add1 = true;\n sym = 34;\n break;\n }\n case 735470: {\n this$static.add1 = false;\n sym = 0;\n }\n }\n $set_2(\n this$static.ct2,\n $getCenter(this$static.c1),\n parity_0($getEdge(this$static.c1).ep),\n );\n const s2ct = $getct(this$static.ct2);\n const s2rl = $getrl(this$static.ct2);\n const ctp = ctprun[s2ct * 70 + s2rl];\n this$static.c1.value = ctp + this$static.length1;\n this$static.c1.length1 = this$static.length1;\n this$static.c1.add1 = this$static.add1;\n this$static.c1.sym = sym;\n ++this$static.p1SolsCnt;\n if (this$static.p1sols.heap.size < 500) {\n next = new FullCube_4(this$static.c1);\n } else {\n next = $poll(this$static.p1sols);\n next.value > this$static.c1.value && $copy_4(next, this$static.c1);\n }\n $add(this$static.p1sols, next);\n return this$static.p1SolsCnt === 10000;\n}\n\nfunction $init3(this$static) {\n let i_0;\n $copy_4(this$static.c2, this$static.c1);\n for (i_0 = 0; i_0 < this$static.length2; ++i_0) {\n $move_6(this$static.c2, this$static.move2[i_0]);\n }\n if (!$checkEdge($getEdge(this$static.c2))) {\n return false;\n }\n const eparity = $set_6(this$static.e12, $getEdge(this$static.c2));\n $set_3(\n this$static.ct3,\n $getCenter(this$static.c2),\n eparity ^ parity_0($getCorner(this$static.c2).cp),\n );\n const ct = $getct_0(this$static.ct3);\n $get_2(this$static.e12, 10);\n const prun = getprun($getsym_0(this$static.e12));\n !this$static.arr2[this$static.arr2idx]\n ? (this$static.arr2[this$static.arr2idx] = new FullCube_4(this$static.c2))\n : $copy_4(this$static.arr2[this$static.arr2idx], this$static.c2);\n this$static.arr2[this$static.arr2idx].value =\n this$static.length1 + this$static.length2 + Math.max(prun, prun_0[ct]);\n this$static.arr2[this$static.arr2idx].length2 = this$static.length2;\n ++this$static.arr2idx;\n return this$static.arr2idx === this$static.arr2.length;\n}\n\nfunction $randomState(this$static) {\n init_5();\n this$static.c = new FullCube_5();\n $doSearch(this$static);\n return this$static.solution;\n}\n\nfunction $search1(this$static, ct, sym, maxl, lm, depth) {\n let axis;\n let ctx;\n let m_0;\n let power;\n let prun;\n let symx;\n if (ct === 0) {\n return maxl === 0 && $init2_0(this$static, sym);\n }\n for (axis = 0; axis < 27; axis += 3) {\n if (axis === lm || axis === lm - 9 || axis === lm - 18) {\n continue;\n }\n for (power = 0; power < 3; ++power) {\n m_0 = axis + power;\n ctx = ctsmv[ct][symmove[sym][m_0]];\n prun = csprun[~~ctx >>> 6];\n if (prun >= maxl) {\n if (prun > maxl) {\n break;\n }\n continue;\n }\n symx = symmult[sym][ctx & 63];\n ctx >>>= 6;\n this$static.move1[depth] = m_0;\n if ($search1(this$static, ctx, symx, maxl - 1, axis, depth + 1)) {\n return true;\n }\n }\n }\n return false;\n}\n\nfunction $search2(this$static, ct, rl, maxl, lm, depth) {\n let ctx;\n let m_0;\n let prun;\n let rlx;\n if (ct === 0 && ctprun[rl] === 0) {\n return maxl === 0 && $init3(this$static);\n }\n for (m_0 = 0; m_0 < 23; ++m_0) {\n if (ckmv2_0[lm][m_0]) {\n m_0 = skipAxis2[m_0];\n continue;\n }\n ctx = ctmv[ct][m_0];\n rlx = rlmv[rl][m_0];\n prun = ctprun[ctx * 70 + rlx];\n if (prun >= maxl) {\n prun > maxl && (m_0 = skipAxis2[m_0]);\n continue;\n }\n this$static.move2[depth] = move2std[m_0];\n if ($search2(this$static, ctx, rlx, maxl - 1, m_0, depth + 1)) {\n return true;\n }\n }\n return false;\n}\n\nfunction $search3(this$static, edge, ct, prun, maxl, lm, depth) {\n let cord1x;\n let cord2x;\n let ctx;\n let edgex;\n let m_0;\n let prun1;\n let prunx;\n let symcord1x;\n let symx;\n if (maxl === 0) {\n return edge === 0 && ct === 0;\n }\n $set_4(this$static.tempe[depth], edge);\n for (m_0 = 0; m_0 < 17; ++m_0) {\n if (ckmv3[lm][m_0]) {\n m_0 = skipAxis3[m_0];\n continue;\n }\n ctx = ctmove[ct][m_0];\n prun1 = prun_0[ctx];\n if (prun1 >= maxl) {\n prun1 > maxl && m_0 < 14 && (m_0 = skipAxis3[m_0]);\n continue;\n }\n edgex = getmvrot(this$static.tempe[depth].edge, m_0 << 3, 10);\n cord1x = ~~(edgex / 20160);\n symcord1x = raw2sym_1[cord1x];\n symx = symcord1x & 7;\n symcord1x >>= 3;\n cord2x =\n getmvrot(this$static.tempe[depth].edge, (m_0 << 3) | symx, 10) % 20160;\n prunx = getprun_0(symcord1x * 20160 + cord2x, prun);\n if (prunx >= maxl) {\n prunx > maxl && m_0 < 14 && (m_0 = skipAxis3[m_0]);\n continue;\n }\n if ($search3(this$static, edgex, ctx, prunx, maxl - 1, m_0, depth + 1)) {\n this$static.move3[depth] = m_0;\n return true;\n }\n }\n return false;\n}\n\nfunction Search_4() {\n let i_0;\n this.p1sols = new PriorityQueue_0(new FullCube$ValueComparator_0());\n this.move1 = createArray(15);\n this.move2 = createArray(20);\n this.move3 = createArray(20);\n this.c1 = new FullCube_3();\n this.c2 = new FullCube_3();\n this.ct2 = new Center2_0();\n this.ct3 = new Center3_0();\n this.e12 = new Edge3_0();\n this.tempe = createArray(20);\n this.arr2 = createArray(100);\n for (i_0 = 0; i_0 < 20; ++i_0) {\n this.tempe[i_0] = new Edge3_0();\n }\n}\n\nfunction init_5() {\n if (inited_2) {\n return;\n }\n initSym_0();\n raw2sym = createArray(735471);\n initSym2Raw();\n createMoveTable();\n raw2sym = null;\n createPrun();\n init_3();\n init_4();\n initMvrot();\n initRaw2Sym();\n createPrun_0();\n inited_2 = true;\n}\n\ndefineSeed(163, 1, makeCastMap([Q$Search_0]), Search_4);\n_.add1 = false;\n_.arr2idx = 0;\n_.c = null;\n_.length1 = 0;\n_.length2 = 0;\n_.p1SolsCnt = 0;\n_.solution = \"\";\nlet inited_2 = false;\n\nlet ran$clinit_Util_0 = false;\nfunction $clinit_Util_0() {\n if (ran$clinit_Util_0) {\n return;\n }\n ran$clinit_Util_0 = true;\n}\n\nfunction parity_0(arr) {\n let i_0;\n let j;\n let len;\n let parity;\n parity = 0;\n for (i_0 = 0, len = arr.length; i_0 < len; ++i_0) {\n for (j = i_0; j < len; ++j) {\n arr[i_0] > arr[j] && (parity ^= 1);\n }\n }\n return parity;\n}\n\nfunction swap(arr, a, b, c, d, key) {\n let temp;\n switch (key) {\n case 0: {\n temp = arr[d];\n arr[d] = arr[c];\n arr[c] = arr[b];\n arr[b] = arr[a];\n arr[a] = temp;\n return;\n }\n case 1: {\n temp = arr[a];\n arr[a] = arr[c];\n arr[c] = temp;\n temp = arr[b];\n arr[b] = arr[d];\n arr[d] = temp;\n return;\n }\n case 2: {\n temp = arr[a];\n arr[a] = arr[b];\n arr[b] = arr[c];\n arr[c] = arr[d];\n arr[d] = temp;\n return;\n }\n }\n}\n\nfunction Class_0() {}\n\nfunction createForArray(packageName, className, seedId, componentType) {\n const clazz = new Class_0();\n clazz.typeName = packageName + className;\n isInstantiable(seedId !== 0 ? -seedId : 0) &&\n setClassLiteral(seedId !== 0 ? -seedId : 0, clazz);\n clazz.modifiers = 4;\n clazz.superclass = Ljava_lang_Object_2_classLit;\n clazz.componentType = componentType;\n return clazz;\n}\n\nfunction createForClass(packageName, className, seedId, superclass) {\n const clazz = new Class_0();\n clazz.typeName = packageName + className;\n isInstantiable(seedId) && setClassLiteral(seedId, clazz);\n clazz.superclass = superclass;\n return clazz;\n}\n\nfunction getSeedFunction(clazz) {\n const func = seedTable[clazz.seedId];\n clazz = null;\n return func;\n}\n\nfunction isInstantiable(seedId) {\n return typeof seedId === \"number\" && seedId > 0;\n}\n\nfunction setClassLiteral(seedId, clazz) {\n let proto;\n clazz.seedId = seedId;\n if (seedId === 2) {\n proto = String.prototype;\n } else {\n if (seedId > 0) {\n let seed = getSeedFunction(clazz);\n if (seed) {\n proto = seed.prototype;\n } else {\n seed = seedTable[seedId] = function () {};\n seed.___clazz$ = clazz;\n return;\n }\n } else {\n return;\n }\n }\n proto.___clazz$ = clazz;\n}\n\n_.val$outerIter = null;\n\nfunction $add(this$static, o) {\n if ($offer(this$static, o)) {\n return true;\n }\n}\n\nfunction $$init_6(this$static) {\n this$static.array = initDim(\n _3Ljava_lang_Object_2_classLit,\n makeCastMap([Q$Serializable, Q$Object_$1]),\n Q$Object,\n 0,\n 0,\n );\n}\n\nfunction $add_0(this$static, o) {\n setCheck(this$static.array, this$static.size++, o);\n return true;\n}\n\nfunction $clear(this$static) {\n this$static.array = initDim(\n _3Ljava_lang_Object_2_classLit,\n makeCastMap([Q$Serializable, Q$Object_$1]),\n Q$Object,\n 0,\n 0,\n );\n this$static.size = 0;\n}\n\nfunction $get_4(this$static, index) {\n return this$static.array[index];\n}\n\nfunction $remove_0(this$static, index) {\n const previous = this$static.array[index];\n splice_0(this$static.array, index, 1);\n --this$static.size;\n return previous;\n}\n\nfunction $set_7(this$static, index, o) {\n const previous = this$static.array[index];\n setCheck(this$static.array, index, o);\n return previous;\n}\n\nfunction $toArray_0(this$static, out) {\n let i_0;\n out.length < this$static.size && (out = createFrom(out, this$static.size));\n for (i_0 = 0; i_0 < this$static.size; ++i_0) {\n setCheck(out, i_0, this$static.array[i_0]);\n }\n out.length > this$static.size && setCheck(out, this$static.size, null);\n return out;\n}\n\nfunction ArrayList_1() {\n $$init_6(this);\n this.array.length = 500;\n}\n\nfunction splice_0(array, index, deleteCount) {\n array.splice(index, deleteCount);\n}\n_.size = 0;\n\nfunction binarySearch_0(sortedArray, key) {\n let high;\n let low;\n let mid;\n let 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\nfunction fill_0(a) {\n fill_1(a, a.length);\n}\n\nfunction fill_1(a, toIndex) {\n let i_0;\n for (i_0 = 0; i_0 < toIndex; ++i_0) {\n a[i_0] = -1;\n }\n}\n\nfunction $mergeHeaps(this$static, node) {\n let smallestChild;\n let leftChild;\n let rightChild;\n let smallestChild_0;\n const heapSize = this$static.heap.size;\n const value = $get_4(this$static.heap, node);\n while (node * 2 + 1 < heapSize) {\n smallestChild =\n ((leftChild = 2 * node + 1),\n (rightChild = leftChild + 1),\n (smallestChild_0 = leftChild),\n rightChild < heapSize &&\n $compare_0(\n $get_4(this$static.heap, rightChild),\n $get_4(this$static.heap, leftChild),\n ) < 0 &&\n (smallestChild_0 = rightChild),\n smallestChild_0);\n if ($compare_0(value, $get_4(this$static.heap, smallestChild)) < 0) {\n break;\n }\n $set_7(this$static.heap, node, $get_4(this$static.heap, smallestChild));\n node = smallestChild;\n }\n $set_7(this$static.heap, node, value);\n}\n\nfunction $offer(this$static, e) {\n let childNode;\n let node;\n node = this$static.heap.size;\n $add_0(this$static.heap, e);\n while (node > 0) {\n childNode = node;\n node = ~~((node - 1) / 2);\n if ($compare_0($get_4(this$static.heap, node), e) <= 0) {\n $set_7(this$static.heap, childNode, e);\n return true;\n }\n $set_7(this$static.heap, childNode, $get_4(this$static.heap, node));\n }\n $set_7(this$static.heap, node, e);\n return true;\n}\n\nfunction $poll(this$static) {\n if (this$static.heap.size === 0) {\n return null;\n }\n const value = $get_4(this$static.heap, 0);\n $removeAtIndex(this$static);\n return value;\n}\n\nfunction $removeAtIndex(this$static) {\n const lastValue = $remove_0(this$static.heap, this$static.heap.size - 1);\n if (0 < this$static.heap.size) {\n $set_7(this$static.heap, 0, lastValue);\n $mergeHeaps(this$static, 0);\n }\n}\n\nfunction $toArray_1(this$static, a) {\n return $toArray_0(this$static.heap, a);\n}\n\nfunction PriorityQueue_0(cmp) {\n this.heap = new ArrayList_1();\n this.cmp = cmp;\n}\n\ndefineSeed(239, 1, {}, PriorityQueue_0);\n_.cmp = null;\n_.heap = null;\n\nconst Ljava_lang_Object_2_classLit = createForClass(\n \"java.lang.\",\n \"Object\",\n 1,\n null,\n);\nconst _3Ljava_lang_Object_2_classLit = createForArray(\n \"[Ljava.lang.\",\n \"Object;\",\n 356,\n Ljava_lang_Object_2_classLit,\n);\nconst Lcs_threephase_FullCube_2_classLit = createForClass(\n \"cs.threephase.\",\n \"FullCube\",\n 160,\n Ljava_lang_Object_2_classLit,\n);\nconst _3Lcs_threephase_FullCube_2_classLit = createForArray(\n \"[Lcs.threephase.\",\n \"FullCube;\",\n 381,\n Lcs_threephase_FullCube_2_classLit,\n);\n\nlet searcher;\n\nlet raninit = false;\nfunction init() {\n if (raninit) {\n return;\n }\n raninit = true;\n $clinit_Moves();\n $clinit_Util_0();\n $clinit_Center1();\n $clinit_Center2();\n $clinit_Center3();\n $clinit_Edge3();\n $clinit_CornerCube();\n $clinit_EdgeCube();\n $clinit_FullCube_0();\n searcher = new Search_4();\n}\n\nexport function initialize(): void {\n init();\n init_5();\n}\n\nexport async function random444Scramble(): Promise<Alg> {\n mustBeInsideWorker();\n init();\n const suffix = Alg.fromString($randomState(searcher));\n return (await getRandomScramble333()).concat(suffix);\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/cubing/vendor/xyzzy/kilosolver.js"],
|
|
4
|
-
"sourcesContent": ["/* kilosolver.js - A kilominx solver\nversion 0.7 (2021-04-03)\nCopyright (c) 2016, 2020, 2021\n\nFrom https://torchlight.github.io/kiloscrambler.html\nOriginally MIT licensed, added to `cubing.js` under the GPL license by permission from the author (@torchlight/xyzzy).\n\nThis is a port of the kilominx solver originally written in Python with a few minor optimisations.\n\nHow to run this:\n(0) Save this file somewhere.\n(1) Install any JavaScript shell and run it with this file.\n(2) Type stuff into the shell.\n\n(or just use the HTML interface! it exists now!)\n\nThere is currently not much of a public interface. Useful stuff:\ncache_all_tables()\n to generate all the lookup tables\nprint_move_sequence(generate_random_state_scramble())\n to get a random-state scramble\nprint_move_sequence(generate_hybrid_scramble())\n to get a hybrid random-move scramble\n\nFor the full solver (used in the random-state scrambler), a few hundred megabytes of RAM may be used\nfor the lookup tables, which will also take roughly a minute to generate. Once generated, each solve\ntakes roughly 0.08 second.\n\nThe hybrid scrambler uses much smaller lookup tables that take less memory and are generated faster,\nbut produces somewhat longer scramble sequences and isn't fully random-state. It should nevertheless\nbe good enough for non-competition purposes.\n\nOn the to-do list:\n- optimise the heck out of the lookup table generation\n- a GUI for the solver\n- optimise the solver with colour neutrality and NISS(tm) techniques\n- throw all the global variables into a namespace\n\nCompatibility notes:\nThis code makes fairly heavy use of ES6 syntactic sugar because writing code in JavaScript's already\nan exercise in masochism and I'm not going to make my life harder by restricting myself to ES5. Some\nof the features used are:\n- let, const\n- destructuring assignment\n- for-of\n- arrow functions\n- 'use strict'\n\nAny web browser from 2016 or later should support all of these; the code has been tested only on the\nlatest versions of Firefox and Chrome, as well as a somewhat outdated SpiderMonkey shell, but should\nalso work with recent versions of Edge, Safari, etc.\n*/\n\n\"use strict\";\n\nimport { Alg } from \"../../alg\";\nimport { randomUIntBelow } from \"random-uint-below\";\n\nlet PHASE4_THRESHOLD = 7;\n// change this to 8 to make the individual solves faster, at the cost of slower initialisation\n\nfunction counter(A) {\n let counts = [];\n for (let a of A) {\n counts[a] = (counts[a] || 0) + 1;\n }\n return counts;\n}\n\n/* Combinatoric functions */\n\nfunction factorial(n) {\n if (n < 2) {\n return n;\n }\n let f = 1;\n for (let i = 2; i <= n; i++) {\n f *= i;\n }\n return f;\n}\n\nfunction C(n, k) {\n if (k < 0 || k > n) {\n return 0;\n }\n if (k === 0 || k === n) {\n return 1;\n }\n let c = 1;\n for (let i = 0; i < k; i++) {\n c = ((c * (n - i)) / (i + 1)) | 0;\n }\n return c;\n}\n\nfunction permutation_to_index(perm) {\n perm = perm.slice();\n let n = perm.length;\n let f = factorial(n - 1);\n let ind = 0;\n while (n > 1) {\n n--;\n // invariant: f === factorial(n)\n // also, perm stores meaningful values up to perm[n]\n let e = perm[0];\n ind += e * f;\n for (let i = 0; i < n; i++) {\n let x = perm[i + 1];\n perm[i] = x - (x > e);\n }\n f /= n;\n }\n return ind;\n}\n\nfunction index_to_permutation(ind, n) {\n let perm = [];\n let f = factorial(n - 1);\n for (let i = 0; i < n; i++) {\n perm[i] = (ind / f) | 0;\n ind %= f;\n f /= n - 1 - i;\n }\n for (let i = n - 2; i >= 0; i--) {\n for (let j = i + 1; j < n; j++) {\n perm[j] += +(perm[j] >= perm[i]);\n }\n }\n return perm;\n}\n\nfunction permutation_parity(A) {\n let n = A.length;\n let parity = 0;\n for (let i = 0; i < n - 1; i++) {\n for (let j = i; j < n; j++) {\n if (A[i] > A[j]) {\n parity ^= 1;\n }\n }\n }\n return parity;\n}\n\nfunction index_to_evenpermutation(ind, n) {\n let perm = [];\n let f = factorial(n - 1) / 2;\n let parity = 0;\n for (let i = 0; i < n - 1; i++) {\n perm[i] = (ind / f) | 0;\n ind %= f;\n f /= n - 1 - i;\n }\n perm[n - 1] = 0;\n for (let i = n - 2; i >= 0; i--) {\n for (let j = i + 1; j < n; j++) {\n if (perm[j] >= perm[i]) {\n perm[j]++;\n } else {\n parity ^= 1;\n }\n }\n }\n if (parity === 1) {\n [perm[n - 2], perm[n - 1]] = [perm[n - 1], perm[n - 2]];\n }\n return perm;\n}\n\nfunction evenpermutation_to_index(perm) {\n return permutation_to_index(perm) >> 1;\n}\n\nlet [evenpermutation10_to_index, index_to_evenpermutation10] = (() => {\n let index_in_set_bits = new Int8Array(1024 * 10);\n let look_up_set_bits = new Int8Array(1024 * 10);\n for (let i = 0; i < 1024; i++) {\n for (let j = 0, counter = 0; j < 10; j++) {\n if (((i >>> j) & 1) === 0) {\n continue;\n }\n index_in_set_bits[(j << 10) | i] = counter;\n look_up_set_bits[(counter << 10) | i] = j;\n counter++;\n }\n }\n\n function evenpermutation10_to_index(perm) {\n let unused = 0x3ff; // track which values in 0..9 haven't been used so far\n let f = 181440; // = 9!/2\n let ind = 0;\n for (let i = 0; i < 8; i++) {\n let v = perm[i];\n ind += index_in_set_bits[unused | (v << 10)] * f;\n unused &= ~(1 << v);\n f /= 9 - i;\n }\n return ind;\n }\n\n // note: this is *not* a drop-in replacement for index_to_evenpermutation!\n function index_to_evenpermutation10(ind, perm) {\n let unused = 0x3ff;\n let f = 181440; // = 9!/2\n let parity = 0;\n for (let i = 0; i < 8; i++) {\n let a = (ind / f) | 0;\n ind -= a * f;\n parity ^= a & 1;\n let v = look_up_set_bits[unused | (a << 10)];\n perm[i] = v;\n unused &= ~(1 << v);\n f /= 9 - i;\n }\n // the last two elements are uniquely determined by the other ten\n perm[8] = look_up_set_bits[unused | (parity << 10)];\n perm[9] = look_up_set_bits[unused | ((parity ^ 1) << 10)];\n return perm;\n }\n\n return [evenpermutation10_to_index, index_to_evenpermutation10];\n})();\n\nfunction comb_to_index(l) {\n let bits = l.length;\n let ones = 0;\n for (let i = 0; i < bits; i++) {\n ones += +(l[i] === 1);\n }\n let zeros = bits - ones;\n if (zeros === 0 || ones === 0 || bits === 1) {\n return 0;\n }\n let b = C(bits - 1, ones);\n let ind = 0;\n for (let i = 0; zeros > 0 && ones > 0 && bits > 1; i++) {\n bits--;\n if (l[i] === 0) {\n b = (b * --zeros) / bits;\n } else {\n // l[i] === 1\n ind += b;\n b = (b * ones--) / bits;\n }\n }\n return ind;\n}\n\nfunction index_to_comb(ind, ones, bits) {\n let zeros = bits - ones;\n let b = C(bits - 1, ones);\n let l = [];\n let n = bits - 1;\n for (let i = 0; i < n; i++) {\n bits--;\n if (ind < b) {\n l.push(0);\n b = (b * --zeros) / bits;\n } else {\n l.push(1);\n ind -= b;\n b = (b * ones--) / bits;\n }\n }\n l.push(ones);\n return l;\n}\n\nfunction compose(A, B) {\n let C = [];\n for (let i = 0; i < B.length; i++) {\n C[i] = A[B[i]];\n }\n return C;\n}\n\nfunction compose_o(A, B) {\n // note: we hardcode the modulus to 3 here, because ~optimisations~\n // (unnecessary abstraction is bad, actually)\n let p = compose(A[0], B[0]);\n let o = [];\n let n = B[0].length;\n for (let i = 0; i < n; i++) {\n o[i] = (A[1][B[0][i]] + B[1][i]) % 3;\n }\n return [p, o];\n}\n\nfunction permutation_from_cycle(cycle, n) {\n let perm = [];\n for (let i = 0; i < n; i++) {\n perm[i] = i;\n }\n for (let i = 0; i < cycle.length; i++) {\n perm[cycle[i]] = cycle[(i + 1) % cycle.length];\n }\n return perm;\n}\n\nfunction unsparsify_list(d, n) {\n let l = Array(n).fill(0);\n for (let k in d) {\n l[k] = d[k];\n }\n return l;\n}\n\n/* The basic moves */\n\nconst move_U = [\n permutation_from_cycle([0, 1, 2, 3, 4], 20),\n unsparsify_list({}, 20),\n];\nconst move_R = [\n permutation_from_cycle([4, 3, 11, 12, 13], 20),\n unsparsify_list({ 4: 2, 3: 1, 11: 1, 12: 1, 13: 1 }, 20),\n];\nconst move_F = [\n permutation_from_cycle([3, 2, 9, 10, 11], 20),\n unsparsify_list({ 3: 2, 2: 1, 9: 1, 10: 1, 11: 1 }, 20),\n];\nconst move_L = [\n permutation_from_cycle([2, 1, 7, 8, 9], 20),\n unsparsify_list({ 2: 2, 1: 1, 7: 1, 8: 1, 9: 1 }, 20),\n];\nlet move_BL = [\n permutation_from_cycle([1, 0, 5, 6, 7], 20),\n unsparsify_list({ 1: 2, 0: 1, 5: 1, 6: 1, 7: 1 }, 20),\n];\nlet move_BR = [\n permutation_from_cycle([0, 4, 13, 14, 5], 20),\n unsparsify_list({ 0: 2, 4: 1, 13: 1, 14: 1, 5: 1 }, 20),\n];\nlet move_x2 = [\n [15, 16, 17, 18, 19, 10, 9, 8, 7, 6, 5, 14, 13, 12, 11, 0, 1, 2, 3, 4],\n unsparsify_list({}, 20),\n];\nlet move_y = [\n [1, 2, 3, 4, 0, 7, 8, 9, 10, 11, 12, 13, 14, 5, 6, 19, 15, 16, 17, 18],\n unsparsify_list({}, 20),\n];\nlet move_rot = [\n [9, 10, 11, 3, 2, 8, 16, 15, 19, 12, 13, 4, 0, 1, 7, 14, 18, 17, 6, 5],\n [2, 0, 1, 2, 1, 2, 2, 0, 1, 1, 1, 1, 0, 2, 2, 1, 2, 1, 2, 0],\n];\n\nconst moves = [move_U, move_R, move_F, move_L, move_BL, move_BR, move_x2];\nconst move_names = [\"U\", \"R\", \"F\", \"L\", \"BL\", \"BR\", \"x2\"];\n\nlet id = compose_o(move_x2, move_x2);\n\nlet moves_full = [];\nfor (let i = 0; i < moves.length; i++) {\n moves_full[i] = [id];\n for (let j = 1; j < 5; j++) {\n moves_full[i][j] = compose_o(moves_full[i][j - 1], moves[i]);\n }\n}\n\nfunction random_state() {\n let p = [0];\n for (let i = 1; i < 20; i++) {\n let r = randomUIntBelow(i + 1);\n p[i] = p[r];\n p[r] = i;\n }\n if (permutation_parity(p) === 1) {\n [p[0], p[1]] = [p[1], p[0]];\n }\n let o = Array(20).fill(0);\n for (let i = 0; i < 19; i++) {\n o[i] = randomUIntBelow(3);\n o[19] += 3 - o[i];\n }\n o[19] %= 3;\n return [p, o];\n}\n\n/* Human interface stuff */\n\nfunction stringify_move_sequence(move_sequence) {\n let suffixes = [\"0\", \"\", \"2\", \"2'\", \"'\"];\n let s = move_sequence.map(([m, r]) => move_names[m] + suffixes[r]);\n return s.join(\" \");\n}\n\nfunction print_move_sequence(move_sequence) {\n console.log(stringify_move_sequence(move_sequence));\n}\n\nfunction apply_move_sequence(state, move_sequence) {\n for (let [m, r] of move_sequence) {\n for (let i = 0; i < r; i++) {\n state = compose_o(state, moves[m]);\n }\n }\n return state;\n}\n\nfunction generate_random_state_scramble() {\n return solve(random_state());\n}\n\nfunction generate_random_move_scramble(M, N) {\n M = M || 6;\n N = N || 6;\n // total number of moves = (M+1)(N+1)-1\n let move_sequence = [];\n for (let i = 0; i <= M; i++) {\n let last = -1;\n let lastlast = -1;\n for (let j = 0; j < N; j++) {\n let m;\n while (true) {\n m = Math.floor(Math.random() * 6);\n // don't output stuff like U2 U\n if (m === last) {\n // rome-ignore lint(correctness/noUnnecessaryContinue): Legacy code.\n continue;\n }\n // U move never commutes with the others\n else if (m === 0) {\n break;\n }\n // don't output stuff like L R L because L and R commute\n else if (m === lastlast && ((m - last) * (m - last)) % 5 === 4) {\n // rome-ignore lint(correctness/noUnnecessaryContinue): Legacy code.\n continue;\n } else {\n break;\n }\n }\n // make 144-deg moves twice as likely as 72-deg moves\n move_sequence.push([m, 1 + Math.round(Math.random() * 3)]);\n [last, lastlast] = [m, last];\n }\n // flip after every set of moves on the hemisphere except the last because that would be\n // kind of pointless\n if (i < M) {\n move_sequence.push([6, 1]);\n }\n }\n return move_sequence;\n}\n\n/* a brief note on analysing random-move scrambles\n\nLet M = num flips and N = num moves between flips.\n\nTracking just corner orientation is pretty much useless to determine if a scramble is good, at least\nfor the choice of CO reference used in the solver (<U,flip,(R'FRF')3>); even M=1, N=8 is good enough\nto randomise the CO, despite leaving a bunch of obvious blocks.\n\nInstead, we can track the location of, say, the white pieces. There are C(20, 5) combinations, so we\njust try out a million random-move scrambles and do a chi-squared test. (Except I don't have a stats\npackage installed, so this is just a qualitative approximation.)\n\nM=4, N=5 (29 moves): +2.7 stddev\nM=3, N=8 (35 moves): +15.7 stddev\nM=5, N=5 (35 moves): -0.1 stddev\nM=4, N=7 (39 moves): +3.8 stddev\nM=5, N=6 (41 moves): -0.4 stddev\nM=4, N=8 (44 moves): +2.2 stddev\n\n(the 95% confidence interval for these estimated values should be taken to be +-2, as usual)\n\nObviously we get closer to a uniform distribution with more moves, but we also want the scrambles to\nbe of a reasonable length. M=5, N=6 seems to be a good tradeoff.\n\nThis is until you realise that the five grey pieces are effectively scrambled with M reduced by one,\nso we compensate for that by using M=6, N=6, which gives 48-move scrambles.\n\nasdsadsf\n\n(tl;dr: use the hybrid scrambler if you can stomach 0.3-second initialisation; don't use this)\n*/\n\n/* GUI stuff\n\nThe create_svg_template function returns an <svg> element with the facelets laid out neatly as a net\nand the draw_state function fills in the colours given a state.\n\nThe input to the latter function does not have to be an <svg> element returned by the former, but it\nmust contain an element for each of the 60 facelets, with class 'loc%d_%d' % (i, j), where i is from\n0 to 19 and j is either 0, 1 or 2.\n\nj = 0 corresponds to the reference facelet (the one closest to perpendicular to the U-D axis), j = 1\ncorresponds to the one clockwise from the reference, and j = 2 corresponds to the one anticlockwise.\n\nOther than the loc%d_%d classes, the facelet <polygon> elements also have the .facelet class and the\nface outline <polygon> elements have the .face class, and may be customised with CSS. For example:\n\n.face {stroke-linejoin: miter; stroke-width: 0.1;}\n\nThis can be used to make the corners sharp and the face outlines thicker; you get the idea.\n\nTODO: figure out a sane way to handle changing colour scheme on the fly\n(maybe tag the facelets with a separate class for each colour in addition to setting the fill)\n*/\n\n// colours copied from Kit's modded version of the Python scrambler, but with pale yellow made a bit\n// darker.\nlet default_colour_scheme = {\n U: \"#ffffff\", // U (white)\n L: \"#57007f\", // L (purple)\n F: \"#007f0e\", // F (green)\n R: \"#ff0000\", // R (red)\n BR: \"#0026ff\", // BR (blue)\n BL: \"#ffd800\", // BL (yellow)\n DBR: \"#ff82b8\", // DBR (pink)\n DB: \"#00ff21\", // DB (light green)\n DBL: \"#ff6a00\", // DBL (orange)\n DFL: \"#0094ff\", // DFL (light blue)\n DFR: \"#ffff77\", // DFR (pale yellow)\n D: \"#808080\", // D (grey)\n};\n\nlet face_names = [\n \"U\",\n \"L\",\n \"F\",\n \"R\",\n \"BR\",\n \"BL\",\n \"DBR\",\n \"DB\",\n \"DBL\",\n \"DFL\",\n \"DFR\",\n \"D\",\n];\n\n// return the face on which the loc_ori piece lies\nfunction map_piece_to_face(loc, ori) {\n ori = ((ori % 3) + 3) % 3;\n let face = [\n [\"U\", \"BL\", \"BR\"],\n [\"U\", \"L\", \"BL\"],\n [\"U\", \"F\", \"L\"],\n [\"U\", \"R\", \"F\"],\n [\"U\", \"BR\", \"R\"],\n [\"DB\", \"BR\", \"BL\"],\n [\"BL\", \"DBL\", \"DB\"],\n [\"DBL\", \"BL\", \"L\"],\n [\"L\", \"DFL\", \"DBL\"],\n [\"DFL\", \"L\", \"F\"],\n [\"F\", \"DFR\", \"DFL\"],\n [\"DFR\", \"F\", \"R\"],\n [\"R\", \"DBR\", \"DFR\"],\n [\"DBR\", \"R\", \"BR\"],\n [\"BR\", \"DB\", \"DBR\"],\n [\"D\", \"DFL\", \"DFR\"],\n [\"D\", \"DBL\", \"DFL\"],\n [\"D\", \"DB\", \"DBL\"],\n [\"D\", \"DBR\", \"DB\"],\n [\"D\", \"DFR\", \"DBR\"],\n ][loc][ori];\n return face;\n}\n\n// how much to rotate a facelet (divided by 18 degrees) and where to draw it\nlet rotation_amounts = [\n [0, 3, 7],\n [8, 1, 5],\n [6, 9, 3],\n [4, 7, 1],\n [2, 5, 9],\n [0, 9, 1],\n [9, 0, 2],\n [2, 7, 9],\n [7, 2, 4],\n [4, 5, 7],\n [5, 4, 6],\n [6, 3, 5],\n [3, 6, 8],\n [8, 1, 3],\n [1, 8, 0],\n [5, 8, 2],\n [3, 6, 0],\n [1, 4, 8],\n [9, 2, 6],\n [7, 0, 4],\n];\nlet translation_amounts;\n{\n let A = Math.sin(Math.PI / 5);\n let B = Math.cos(Math.PI / 10);\n let C = Math.cos(Math.PI / 5);\n let D = Math.sin(Math.PI / 10);\n translation_amounts = {\n U: [0, 0],\n L: [-A - B, C - D],\n F: [0, 2 * C],\n R: [A + B, C - D],\n BR: [B, -1 - D],\n BL: [-B, -1 - D],\n DBR: [2 * A + 2 * B, 0],\n DB: [3 * A + 3 * B, -C - D],\n DBL: [4 * A + 4 * B, 0],\n DFL: [3 * A + 4 * B, 1 + C],\n DFR: [3 * A + 2 * B, 1 + C],\n D: [3 * A + 3 * B, C - D],\n };\n // trigonometry :(\n}\n\nfunction create_svg_template(state, colour_scheme) {\n state = state || id;\n colour_scheme = colour_scheme || default_colour_scheme;\n let svgns = \"http://www.w3.org/2000/svg\";\n let root = document.createElementNS(svgns, \"svg\");\n root.setAttribute(\"viewBox\", \"-2.590 -2.218 9.796 4.936\");\n /*\n\tlong diagonal = 1\n\tshort side = sin(pi/5)\n\tlong side = cos(pi/5)\n\tdiagonal of pentagon = 2cos(pi/10)\n\tviewbox size calculations and stuff:\n\tleftmost: -(2cos(pi/10) + sin(pi/5)) = -2.490\n\trightmost: 4sin(pi/5) + 5cos(pi/10) = 7.106\n\ttopmost: -(2cos(pi/5)^2 + cos(pi/5)) = -2.118\n\tbottommost: 2cos(pi/5)+1 = 2.618\n\tthe aspect ratio is almost exactly 2, which is pretty convenient.\n\t*/\n root.setAttribute(\"width\", \"12em\");\n root.setAttribute(\"height\", \"6em\");\n\n // create a polygon for each facelet\n let points = \"0,0 -0.475528,-0.654508 0,-1 0.475528,-0.654508\";\n // 0.4755 = sin(pi/5)cos(pi/5) and 0.6545 = cos(pi/5)^2\n for (let i = 0; i < 20; i++) {\n for (let j = 0; j < 3; j++) {\n let face = map_piece_to_face(i, j);\n let el = document.createElementNS(svgns, \"polygon\");\n let [translate_x, translate_y] = translation_amounts[face];\n let theta = rotation_amounts[i][j] * 36;\n el.setAttribute(\"class\", `facelet loc${i}_${j}`);\n el.setAttribute(\"points\", points);\n el.setAttribute(\n \"transform\",\n `translate(${translate_x},${translate_y}) rotate(${theta})`,\n );\n el.setAttribute(\n \"fill\",\n colour_scheme[map_piece_to_face(state[0][i], state[1][i] + j)],\n );\n el.setAttribute(\"stroke\", \"currentColor\");\n el.setAttribute(\"stroke-linejoin\", \"round\");\n el.setAttribute(\"stroke-width\", \"0.03\");\n root.appendChild(el);\n }\n }\n\n // create a polygon for each face to serve as an outline\n let face_points = \"\";\n for (let i = 0; i < 5; i++) {\n face_points += `${Math.sin((Math.PI * 2 * i) / 5)},${-Math.cos(\n (Math.PI * 2 * i) / 5,\n )} `;\n }\n for (let face of face_names) {\n let el = document.createElementNS(svgns, \"polygon\");\n let [translate_x, translate_y] = translation_amounts[face];\n let theta = face === \"U\" || (face[0] === \"D\" && face !== \"D\") ? 0 : 180;\n el.setAttribute(\"points\", face_points);\n el.setAttribute(\n \"transform\",\n `translate(${translate_x},${translate_y}) rotate(${theta})`,\n );\n el.setAttribute(\"class\", \"face\");\n el.setAttribute(\"fill\", \"none\");\n el.setAttribute(\"stroke\", \"currentColor\");\n el.setAttribute(\"stroke-linejoin\", \"round\");\n el.setAttribute(\"stroke-width\", \"0.05\");\n root.appendChild(el);\n }\n\n return root;\n}\n\nfunction draw_state(svgel, state, colour_scheme) {\n colour_scheme = colour_scheme || default_colour_scheme;\n if (!svgel) {\n return create_svg_template(state, colour_scheme);\n }\n for (let i = 0; i < 20; i++) {\n for (let j = 0; j < 3; j++) {\n let el = svgel.querySelector(`.loc${i}_${j}`);\n el.setAttribute(\n \"fill\",\n colour_scheme[map_piece_to_face(state[0][i], state[1][i] + j)],\n );\n }\n }\n return svgel;\n}\n\n/* Solver logic\n\nFor scrambling purposes, we have these two options:\n(i) generate a random state, solve it, then invert the solution\n(ii) generate a random state, solve it, return the solution as is\n\nThe former has a caveat that \"solve\" really means \"solve into the scramble orientation\". If we solve\ninto an arbitrary orientation, the result is a random-modulo-orientation state, in that the scramble\nhas the same relative positions of pieces as the random state, but possibly with the wrong colours.\n\nThe latter works here because the kilominx states form a group and taking the inverse doesn't affect\nthe randomness, and we do have the freedom to solve into any orientation. Since the WCA regs specify\nthat scrambled puzzles are delivered to the competitor in an arbitrary orientation, we may take this\nto be equivalent to right-composing with a random rotation, and this would \"cancel out\" any rotation\nshowing up at the end of the solution.\n\nSolving to orientations other than white-top-green-front saves a few moves (~2.2 moves by testing 10\norientations out of 60), but it's also proportionally slower for marginal gain.\n\nPhases used:\n\nPhase 1: get the five grey corners out of the U layer (6-gen), then rotate.\n\nPhase 2: form the U layer out of the grey corners (6-gen), then rotate.\n\nPhase 3: solve five more corners at the back/left to reduce to <U,R,F> (6-gen).\n\nPhase 4: finish last three faces (3-gen).\n\nPhase 1 is a skip (all five grey corners are already not on the D layer) ~19% of the time, and takes\njust one flip ~18% of the time, so there's a ~37% chance this step is basically trivial. With colour\nneutrality, this could be something like 99.9% trivial.\n\nPhases 2 and 3 make use of the same permutation/orientation move tables. Ideally, we'd use only one,\nbut it would be kinda terrible for a web app to eat hundreds of megabytes of memory. Luckily for us,\nIDA* settles these phases quickly enough that it doesn't really matter. Unluckily for us, this makes\nthe code a bit more complicated.\n\nPhase 4 is the problematic one, with 35.7 billion states. We use three pruning tables:\n- orientation (3^9 = 19683 states)\n- permutation (10!/2 = 1814400 states)\n- list of states up to 7 moves (3565896 states)\n\nWe don't even need to store the actual distances for the almost-solved states; we just let IDA* work\nits magic with the other pruning tables. Basically, if a state is in the list, the heuristic reports\na lower bound of 0, and if it's not, it reports a lower bound of 8.\n*/\n\nfunction solve_phase1(state) {\n // we don't care about orientation.\n let p = state[0];\n // x < 15 tests if a piece is non-grey.\n if (p.slice(15, 20).every((x) => x < 15)) {\n return [];\n }\n if (p.slice(0, 5).every((x) => x < 15)) {\n return [[6, 1]];\n }\n let flags = p.map((x) => x >= 15);\n let depth = 0;\n let sol;\n while (sol === undefined) {\n depth++;\n sol = search_phase1(flags, depth, -1);\n }\n sol.push([6, 1]);\n return sol;\n}\n\nfunction search_phase1(flags, depth, last) {\n if (depth === 0) {\n if (flags.slice(0, 5).some((x) => x)) {\n return;\n }\n return [];\n }\n for (let move_index = 0; move_index < 6; move_index++) {\n if (move_index === last) {\n continue;\n }\n for (let r = 1; r < 5; r++) {\n let new_flags = compose(flags, moves_full[move_index][r][0]);\n let sol = search_phase1(new_flags, depth - 1, move_index);\n if (sol !== undefined) {\n return [[move_index, r]].concat(sol);\n }\n }\n }\n return;\n}\n\nfunction index_phase2(state) {\n let p = state[0].slice(0, 15);\n let o = state[1];\n let index_c = comb_to_index(p.map((x) => +(x >= 15)));\n let index_o = 243 * index_c;\n for (let i = 0, j = 0; i < 15; i++) {\n if (p[i] < 15) {\n continue;\n }\n index_o += o[i] * Math.pow(3, j);\n // as it so happens, my JS shell is too outdated and doesn't support **\n j++;\n }\n let index_p = 0;\n for (let i = 0; i < 5; i++) {\n index_p += p.indexOf(15 + i) * Math.pow(15, i);\n }\n return [index_o, index_p];\n}\n\nfunction solve_phase2(state) {\n let mtables = [\n generate_phase23_orientation_mtable(),\n generate_phase23_permutation_mtable(),\n ];\n let ptables = [\n generate_phase2_orientation_ptable(),\n generate_phase2_permutation_ptable(),\n ];\n return ida_solve(index_phase2(state), mtables, ptables).concat([[6, 1]]);\n}\n\nfunction index_phase3(state) {\n let pieces = [5, 6, 7, 8, 14];\n let p = state[0].slice(0, 15);\n let o = state[1];\n let index_c = comb_to_index(p.map((x) => +(pieces.indexOf(x) !== -1)));\n let index_o = 243 * index_c;\n for (let i = 0, j = 0; i < 15; i++) {\n if (pieces.indexOf(p[i]) === -1) {\n continue;\n }\n index_o += o[i] * Math.pow(3, j);\n j++;\n }\n let index_p = 0;\n for (let i = 0; i < 5; i++) {\n index_p += p.indexOf(pieces[i]) * Math.pow(15, i);\n }\n return [index_o, index_p];\n}\n\nfunction solve_phase3(state) {\n let mtables = [\n generate_phase23_orientation_mtable(),\n generate_phase23_permutation_mtable(),\n ];\n let ptables = [\n generate_phase3_orientation_ptable(),\n generate_phase3_permutation_ptable(),\n ];\n return ida_solve(index_phase3(state), mtables, ptables);\n}\n\nfunction index_phase4(state) {\n let p = state[0].slice(0, 14);\n let o = state[1];\n let index_o = 0;\n let perm = [];\n let j = 0;\n for (let i of [0, 1, 2, 3, 4, 9, 10, 11, 12, 13]) {\n if (i !== 13) {\n index_o += o[i] * Math.pow(3, j);\n }\n perm[j] = p[i] < 5 ? p[i] : p[i] - 4;\n j++;\n }\n return [index_o, evenpermutation_to_index(perm)];\n}\n\nfunction solve_phase4(state) {\n let mtables = [\n generate_phase4_orientation_mtable(),\n generate_phase4_permutation_mtable(),\n ];\n let ptables = [\n generate_phase4_orientation_ptable(),\n generate_phase4_permutation_ptable(),\n ];\n return ida_solve(index_phase4(state), mtables, ptables);\n}\n\nfunction solve_phase4_fast(state) {\n return phase4_ida_solve(index_phase4(state));\n}\n\nfunction solve(state) {\n let sol = [];\n for (let solver of [\n solve_phase1,\n solve_phase2,\n solve_phase3,\n solve_phase4_fast,\n ]) {\n //console.log(`solving with ${solver.name}`);\n let phase_sol = solver(state);\n state = apply_move_sequence(state, phase_sol);\n //console.log(`solution: ${stringify_move_sequence(phase_sol)}`);\n sol = sol.concat(phase_sol);\n }\n return sol;\n}\n\nfunction cn_solve(state) {\n // Solve with partial colour neutrality. We don't want to check all 120 cases, so we look only\n // at <y, flip>-neutrality, which has 10 cases.\n let sol_lengths = [];\n let shortest_sol;\n let shortest_sol_length = 999999;\n for (let x = 0; x < 2; x++) {\n for (let y = 0; y < 5; y++) {\n let sol = solve(state);\n sol_lengths.push(sol.length);\n if (shortest_sol_length > sol.length) {\n shortest_sol_length = sol.length;\n shortest_sol = sol;\n }\n state = compose_o(move_y, state);\n }\n state = compose_o(move_x2, state);\n }\n console.log(`solution lengths: ${sol_lengths.join(\", \")}`);\n return shortest_sol;\n}\n\nconst tables = {};\n\nfunction generate_phase23_orientation_mtable() {\n if (tables.phase23om) {\n return tables.phase23om;\n }\n const C15_5 = C(15, 5);\n const THREE = [1, 3, 9, 27, 81, 243];\n let phase23om = Array(C(15, 5) * THREE[5]);\n tables.phase23om = phase23om;\n for (let i = 0; i < C15_5; i++) {\n let comb = index_to_comb(i, 5, 15).concat(Array(5).fill(0));\n let new_comb_indices = [];\n for (let move_index = 0; move_index < 6; move_index++) {\n let new_comb = compose(comb, moves[move_index][0]).slice(0, 15);\n new_comb_indices[move_index] = comb_to_index(new_comb);\n }\n for (let j = 0; j < THREE[5]; j++) {\n phase23om[j + 243 * i] = [];\n let orient_full = [];\n for (let k = 0, l = 0; k < 20; k++) {\n if (comb[k] === 1) {\n orient_full[k] = ((j / THREE[l]) | 0) % 3;\n l++;\n } else {\n orient_full[k] = 99; // some irrelevant garbage value\n }\n }\n for (let move_index = 0; move_index < 6; move_index++) {\n let move = moves[move_index];\n let new_orient_full = [];\n for (let k = 0; k < 15; k++) {\n new_orient_full[k] = orient_full[move[0][k]] + move[1][k];\n }\n let new_orient = new_orient_full.filter((x) => x < 10); // get rid of garbage\n let J = 0;\n for (let k = 0; k < 5; k++) {\n J += (new_orient[k] % 3) * THREE[k];\n }\n phase23om[j + 243 * i][move_index] =\n J + 243 * new_comb_indices[move_index];\n }\n }\n }\n return phase23om;\n}\n\nfunction generate_phase2_orientation_ptable() {\n if (tables.phase2op) {\n return tables.phase2op;\n }\n let mtable = generate_phase23_orientation_mtable();\n return (tables.phase2op = bfs(mtable, [243 * 3002]));\n}\n\nfunction generate_phase3_orientation_ptable() {\n if (tables.phase3op) {\n return tables.phase3op;\n }\n let mtable = generate_phase23_orientation_mtable();\n return (tables.phase3op = bfs(mtable, [243 * 246]));\n}\n\nfunction generate_phase23_permutation_mtable() {\n if (tables.phase23pm) {\n return tables.phase23pm;\n }\n const FIFTEEN = [\n 1,\n 15,\n 225,\n Math.pow(15, 3),\n Math.pow(15, 4),\n Math.pow(15, 5),\n ];\n let phase23pm = Array(FIFTEEN[5]);\n let single = Array(15);\n for (let i = 0; i < 15; i++) {\n single[i] = Array(6);\n for (let move_index = 0; move_index < 6; move_index++) {\n single[i][move_index] = moves[move_index][0].indexOf(i);\n }\n }\n let locations = [0, 0, 0, 0, 0];\n for (let ind = 0; ind < FIFTEEN[5]; ind++) {\n phase23pm[ind] = Array(6);\n for (let move_index = 0; move_index < 6; move_index++) {\n let new_ind = 0;\n for (let i = 0; i < 5; i++) {\n new_ind += single[locations[i]][move_index] * FIFTEEN[i];\n }\n phase23pm[ind][move_index] = new_ind;\n }\n locations[0]++;\n for (let i = 0; i < 4; i++) {\n if (locations[i] === 15) {\n locations[i] = 0;\n locations[i + 1]++;\n }\n }\n }\n return (tables.phase23pm = phase23pm);\n}\n\nfunction generate_phase2_permutation_ptable() {\n if (tables.phase2pp) {\n return tables.phase2pp;\n }\n let mtable = generate_phase23_permutation_mtable();\n return (tables.phase2pp = bfs(mtable, [213090]));\n}\n\nfunction generate_phase3_permutation_ptable() {\n if (tables.phase3pp) {\n return tables.phase3pp;\n }\n let mtable = generate_phase23_permutation_mtable();\n return (tables.phase3pp = bfs(mtable, [737420]));\n}\n\nfunction generate_phase4_orientation_mtable() {\n if (tables.phase4om) {\n return tables.phase4om;\n }\n const THREE = [1, 3, 9, 27, 81, 243, 729, 2187, 6561, 19683, 59049];\n let mtable = Array(THREE[9]);\n for (let i = 0; i < THREE[9]; i++) {\n let o = Array(14).fill(0);\n for (let j = 0; j < 9; j++) {\n let J = j < 5 ? j : j + 4;\n o[J] = ((i / THREE[j]) | 0) % 3;\n o[13] -= o[J];\n }\n o[13] = (o[13] + 999) % 3;\n mtable[i] = [];\n for (let move_index = 0; move_index < 3; move_index++) {\n let move = moves[move_index];\n let new_o = [0, 1, 2, 3, 4, 9, 10, 11, 12, 13].map(\n (i) => o[move[0][i]] + move[1][i],\n );\n let new_i = 0;\n for (let j = 0; j < 9; j++) {\n new_i += (new_o[j] % 3) * THREE[j];\n }\n mtable[i][move_index] = new_i;\n }\n }\n return (tables.phase4om = mtable);\n}\n\nfunction generate_phase4_permutation_mtable() {\n if (tables.phase4pm) {\n return tables.phase4pm;\n }\n const HALFFACT10 = factorial(10) / 2;\n const n = 10;\n let pre = [0, 1, 2, 3, 4, -1, -1, -1, -1, 5, 6, 7, 8, 9];\n let post = [0, 1, 2, 3, 4, 9, 10, 11, 12, 13];\n let move_permutations = [\n compose(pre, compose(move_U[0], post)),\n compose(pre, compose(move_R[0], post)),\n compose(pre, compose(move_F[0], post)),\n ];\n let mtable = Array(HALFFACT10);\n let perm = Array(10);\n for (let i = 0; i < HALFFACT10; i++) {\n index_to_evenpermutation10(i, perm);\n mtable[i] = [];\n for (let move_index = 0; move_index < 3; move_index++) {\n let new_perm = compose(perm, move_permutations[move_index]);\n mtable[i][move_index] = evenpermutation10_to_index(new_perm);\n }\n }\n return (tables.phase4pm = mtable);\n}\n\nfunction generate_phase4_orientation_ptable() {\n if (tables.phase4op) {\n return tables.phase4op;\n }\n let mtable = generate_phase4_orientation_mtable();\n return (tables.phase4op = bfs(mtable, [0]));\n}\n\nfunction generate_phase4_permutation_ptable() {\n if (tables.phase4pp) {\n return tables.phase4pp;\n }\n let mtable = generate_phase4_permutation_mtable();\n return (tables.phase4pp = bfs(mtable, [0]));\n}\n\nfunction generate_phase4_near_ptable_list(threshold) {\n if (tables.phase4np_list && tables.phase4np_list.threshold === threshold) {\n return tables.phase4np_list;\n }\n let mtables = [\n generate_phase4_orientation_mtable(),\n generate_phase4_permutation_mtable(),\n ];\n let base = Math.pow(3, 9);\n let states = [0];\n populate(threshold, [0, 0], -1);\n function populate(depth, state, last) {\n states.push(state[0] + base * state[1]);\n if (depth === 0) {\n return;\n }\n let new_state = [];\n for (let move_index = 0; move_index < 3; move_index++) {\n if (move_index === last) {\n continue;\n }\n new_state[0] = state[0];\n new_state[1] = state[1];\n for (let r = 1; r < 5; r++) {\n new_state[0] = mtables[0][new_state[0]][move_index];\n new_state[1] = mtables[1][new_state[1]][move_index];\n populate(depth - 1, new_state, move_index);\n }\n }\n return;\n }\n states.sort((x, y) => x - y);\n let unique_states = [];\n let last = -1;\n for (let state of states) {\n if (state !== last) {\n unique_states.push((last = state));\n }\n }\n unique_states.threshold = threshold;\n return (tables.phase4np_list = unique_states);\n}\n\nfunction binary_search(A, x) {\n let lo = 0;\n let hi = A.length - 1;\n while (hi - lo > 1) {\n // invariants: hi - lo >= 2; x > A[lo-1]; x < A[hi+1]\n let mid = (lo + hi) >> 1; // lo < mid < hi\n if (x > A[mid]) {\n lo = mid + 1;\n } else {\n hi = mid;\n }\n }\n return x === A[lo] || x === A[hi];\n}\n\nfunction cache_all_tables() {\n let time = +new Date();\n let splits = [time];\n console.log(\"generating phase 2/3 move tables...\");\n generate_phase23_orientation_mtable();\n generate_phase23_permutation_mtable();\n splits.push(+new Date());\n console.log(\n `done ${(\n (splits[splits.length - 1] - splits[splits.length - 2]) /\n 1e3\n ).toFixed(3)}`,\n );\n\n console.log(\"generating phase 2 pruning tables...\");\n generate_phase2_orientation_ptable();\n generate_phase2_permutation_ptable();\n splits.push(+new Date());\n console.log(\n `done ${(\n (splits[splits.length - 1] - splits[splits.length - 2]) /\n 1e3\n ).toFixed(3)}`,\n );\n\n console.log(\"generating phase 3 pruning tables...\");\n generate_phase3_orientation_ptable();\n generate_phase3_permutation_ptable();\n splits.push(+new Date());\n console.log(\n `done ${(\n (splits[splits.length - 1] - splits[splits.length - 2]) /\n 1e3\n ).toFixed(3)}`,\n );\n\n console.log(\"generating phase 4 move tables...\");\n generate_phase4_orientation_mtable();\n generate_phase4_permutation_mtable();\n splits.push(+new Date());\n console.log(\n `done ${(\n (splits[splits.length - 1] - splits[splits.length - 2]) /\n 1e3\n ).toFixed(3)}`,\n );\n\n console.log(\"generating phase 4 pruning tables...\");\n generate_phase4_orientation_ptable();\n generate_phase4_permutation_ptable();\n splits.push(+new Date());\n console.log(\n `done ${(\n (splits[splits.length - 1] - splits[splits.length - 2]) /\n 1e3\n ).toFixed(3)}`,\n );\n\n console.log(\"generating phase 4 bonus pruning table...\");\n generate_phase4_near_ptable_list(PHASE4_THRESHOLD);\n splits.push(+new Date());\n console.log(\n `done ${(\n (splits[splits.length - 1] - splits[splits.length - 2]) /\n 1e3\n ).toFixed(3)}`,\n );\n\n console.log(\n `total elapsed: ${((splits[splits.length - 1] - splits[0]) / 1000).toFixed(\n 3,\n )}`,\n );\n}\n\nfunction bfs(mtable, goal_states) {\n let N = mtable.length;\n let nmoves = mtable[0].length;\n let ptable = Array(N).fill(-1);\n for (let state of goal_states) {\n ptable[state] = 0;\n }\n let depth = 0;\n let done = false;\n while (!done) {\n done = true;\n for (let state = 0; state < N; state++) {\n if (ptable[state] !== depth) {\n continue;\n }\n for (let move_index = 0; move_index < nmoves; move_index++) {\n let new_state = mtable[state][move_index];\n while (new_state !== state) {\n if (ptable[new_state] === -1) {\n done = false;\n ptable[new_state] = depth + 1;\n }\n new_state = mtable[new_state][move_index];\n }\n }\n }\n depth++;\n }\n return ptable;\n}\n\nfunction ida_solve(indices, mtables, ptables) {\n let ncoords = indices.length;\n let bound = 0;\n for (let i = 0; i < ncoords; i++) {\n bound = Math.max(bound, ptables[i][indices[i]]);\n }\n while (true) {\n let path = ida_search(indices, mtables, ptables, bound, -1);\n if (path !== undefined) {\n return path;\n }\n bound++;\n }\n}\n\nfunction ida_search(indices, mtables, ptables, bound, last) {\n let ncoords = indices.length;\n let nmoves = mtables[0][0].length;\n let heuristic = 0;\n for (let i = 0; i < ncoords; i++) {\n heuristic = Math.max(heuristic, ptables[i][indices[i]]);\n }\n if (heuristic > bound) {\n return;\n }\n if (bound === 0 || heuristic === 0) {\n return [];\n }\n for (let m = 0; m < nmoves; m++) {\n if (m === last) {\n continue;\n }\n let new_indices = indices.slice();\n for (let c = 0; c < ncoords; c++) {\n new_indices[c] = mtables[c][indices[c]][m];\n }\n let r = 1;\n while (indices.some((_, i) => indices[i] !== new_indices[i])) {\n let subpath = ida_search(new_indices, mtables, ptables, bound - 1, m);\n if (subpath !== undefined) {\n return [[m, r]].concat(subpath);\n }\n for (let c = 0; c < ncoords; c++) {\n new_indices[c] = mtables[c][new_indices[c]][m];\n }\n r++;\n }\n }\n return;\n}\n\nfunction phase4_ida_solve(indices) {\n let mtable_o = generate_phase4_orientation_mtable();\n let mtable_p = generate_phase4_permutation_mtable();\n let ptable_o = generate_phase4_orientation_ptable();\n let ptable_p = generate_phase4_permutation_ptable();\n let ptable_n = generate_phase4_near_ptable_list(PHASE4_THRESHOLD);\n let bound = Math.max(ptable_o[indices[0]], ptable_p[indices[1]]);\n while (true) {\n let path = phase4_ida_search(\n indices,\n bound,\n -1,\n mtable_o,\n mtable_p,\n ptable_o,\n ptable_p,\n ptable_n,\n );\n if (path !== undefined) {\n return path;\n }\n bound++;\n }\n}\n\nfunction phase4_ida_search(\n indices,\n bound,\n last,\n mtable_o,\n mtable_p,\n ptable_o,\n ptable_p,\n ptable_n,\n) {\n let heuristic = Math.max(ptable_o[indices[0]], ptable_p[indices[1]]);\n if (heuristic > bound) {\n return;\n }\n if (\n heuristic <= PHASE4_THRESHOLD &&\n !binary_search(ptable_n, indices[0] + 19683 * indices[1])\n ) {\n heuristic = PHASE4_THRESHOLD + 1;\n }\n if (heuristic > bound) {\n return;\n }\n if (bound === 0 || heuristic === 0) {\n return [];\n }\n for (let m = 0; m < 3; m++) {\n if (m === last) {\n continue;\n }\n let new_indices = indices.slice();\n for (let r = 1; r < 5; r++) {\n new_indices[0] = mtable_o[new_indices[0]][m];\n new_indices[1] = mtable_p[new_indices[1]][m];\n let subpath = phase4_ida_search(\n new_indices,\n bound - 1,\n m,\n mtable_o,\n mtable_p,\n ptable_o,\n ptable_p,\n ptable_n,\n );\n if (subpath !== undefined) {\n return [[m, r]].concat(subpath);\n }\n }\n }\n return;\n}\n\nfunction* phase4_ida_solve_gen(indices) {\n let mtable_o = generate_phase4_orientation_mtable();\n let mtable_p = generate_phase4_permutation_mtable();\n let ptable_o = generate_phase4_orientation_ptable();\n let ptable_p = generate_phase4_permutation_ptable();\n let ptable_n = generate_phase4_near_ptable_list(PHASE4_THRESHOLD);\n let bound = Math.max(ptable_o[indices[0]], ptable_p[indices[1]]);\n while (true) {\n yield* phase4_ida_search_gen(\n indices,\n bound,\n -1,\n mtable_o,\n mtable_p,\n ptable_o,\n ptable_p,\n ptable_n,\n );\n bound++;\n }\n}\n\nfunction* phase4_ida_search_gen(\n indices,\n bound,\n last,\n mtable_o,\n mtable_p,\n ptable_o,\n ptable_p,\n ptable_n,\n) {\n let heuristic = Math.max(ptable_o[indices[0]], ptable_p[indices[1]]);\n if (heuristic > bound) {\n return;\n }\n if (\n heuristic <= PHASE4_THRESHOLD &&\n !binary_search(ptable_n, indices[0] + 19683 * indices[1])\n ) {\n heuristic = PHASE4_THRESHOLD + 1;\n }\n if (heuristic > bound) {\n return;\n }\n if (bound === 0 || heuristic === 0) {\n yield [];\n }\n for (let m = 0; m < 3; m++) {\n if (m === last) {\n continue;\n }\n let new_indices = indices.slice();\n for (let r = 1; r < 5; r++) {\n new_indices[0] = mtable_o[new_indices[0]][m];\n new_indices[1] = mtable_p[new_indices[1]][m];\n let subpath_gen = phase4_ida_search_gen(\n new_indices,\n bound - 1,\n m,\n mtable_o,\n mtable_p,\n ptable_o,\n ptable_p,\n ptable_n,\n );\n while (true) {\n let { value: subpath, done } = subpath_gen.next();\n if (done) {\n break;\n }\n yield [[m, r]].concat(subpath);\n }\n }\n }\n}\n\n/* Additional solving logic for the hybrid scrambler\n\nRather than being a purely random-move or random-state scramble (the former isn't random enough, but\nthe latter is too slow), we fully randomise the locations of the white pieces and of the grey pieces\nthen apply a bunch of random moves afterwards.\n\nThis is in the sense that the C(20,10,5,5) = 46558512 possible combinations of where the white, grey\nand E-slice pieces are (without distinguishing between the white pieces, etc.) are equally likely.\n\nCorner orientation is effectively randomised by doing at least 8 random moves on each hemisphere, so\nfor all intents and purposes, this should be as good as a random-state scramble.\n*/\n\nfunction generate_hs_mtable() {\n if (tables.hsm) {\n return tables.hsm;\n }\n const C20_5 = C(20, 5); // = 15504\n let mtable = Array(C20_5);\n for (let i = 0; i < C20_5; i++) {\n mtable[i] = Array(7);\n let comb = index_to_comb(i, 5, 20);\n for (let m = 0; m < 7; m++) {\n let new_comb = compose(comb, moves[m][0]);\n mtable[i][m] = comb_to_index(new_comb);\n }\n }\n return (tables.hsm = mtable);\n}\n\nfunction generate_hs_u_ptable() {\n if (tables.hsup) {\n return tables.hsup;\n }\n let mtable = generate_hs_mtable();\n return (tables.hsup = bfs(mtable, [15503]));\n}\n\nfunction generate_hs_d_ptable() {\n if (tables.hsdp) {\n return tables.hsdp;\n }\n let mtable = generate_hs_mtable();\n return (tables.hsdp = bfs(mtable, [0]));\n}\n\nfunction index_hs(state) {\n let p = state[0];\n return [\n comb_to_index(p.map((x) => +(x < 5))),\n comb_to_index(p.map((x) => +(x >= 15))),\n ];\n}\n\n// this is too unpredictably slow\n// (obv we could generate a full pruning table, but that defeats the purpose of fast initialisation)\nfunction solve_hs(state) {\n let mtables = Array(2).fill(generate_hs_mtable());\n let ptables = [generate_hs_u_ptable(), generate_hs_d_ptable()];\n return ida_solve(index_hs(state), mtables, ptables);\n}\n\n// this gives sequences ~2 moves longer on average, but is way faster\nfunction solve_hs_twophase(state) {\n let mtable = generate_hs_mtable();\n let u_ptable = generate_hs_u_ptable();\n let d_ptable = generate_hs_d_ptable();\n let indices = index_hs(state);\n let sol1;\n /*\n\tif (u_ptable[indices[0]] < d_ptable[indices[1]]) sol1 = ida_solve([indices[0]], [mtable], [u_ptable]);\n\telse sol1 = ida_solve([indices[1]], [mtable], [d_ptable]);\n\t// don't do this because it'd give solutions starting with flip pretty often.\n\t*/\n sol1 = ida_solve([indices[1]], [mtable], [d_ptable]);\n let s1 = apply_move_sequence(state, sol1);\n let sol2 = ida_solve(index_hs(s1), [mtable, mtable], [u_ptable, d_ptable]);\n return sol1.concat(sol2);\n}\n\nfunction generate_hybrid_scramble() {\n let move_sequence = [];\n let sort_seq = solve_hs_twophase(random_state());\n for (let [m, r] of sort_seq) {\n let period = m === 6 ? 2 : 5;\n move_sequence.unshift([m, (period - r) % period]);\n }\n\n // TODO: remove possible move cancellations between the random-state and random-move phases\n return move_sequence.concat(generate_random_move_scramble(2, 9));\n}\n\nfunction generate_fullseparate_mtable() {\n if (tables.fsm) {\n return tables.fsm;\n }\n const C20_10 = C(20, 10); // = 184756\n const C19_9 = C(19, 9); // = 92378\n let moves12 = moves.slice(0, 6);\n moves12 = moves12.concat(\n moves12.map((move) => compose_o(compose_o(move_x2, move), move_x2)),\n );\n // get all 12 face moves by conjugating the six \"top half\" moves with a flip\n let moves15 = moves12.concat([move_x2, move_y, move_rot]);\n let mtable = Array(C20_10 * 2);\n let mtable15 = Array(C20_10 * 2);\n for (let i = 0; i < C20_10; i++) {\n mtable[i * 2] = Array(12);\n mtable[i * 2 + 1] = Array(12);\n mtable15[i * 2] = Array(15);\n mtable15[i * 2 + 1] = Array(15);\n let comb = index_to_comb(i, 10, 20);\n let perm = [];\n for (let j = 0, k = 0; j < 20; j++) {\n if (comb[j] === 0) {\n perm[j] = -1;\n } else {\n perm[j] = k++;\n }\n }\n for (let m = 0; m < 15; m++) {\n let new_perm = compose(perm, moves15[m][0]);\n let new_comb = compose(comb, moves15[m][0]);\n let parity = permutation_parity(new_perm.filter((x) => x >= 0));\n let I = comb_to_index(new_comb);\n mtable15[i * 2][m] = I * 2 + parity;\n mtable15[i * 2 + 1][m] = I * 2 + (parity ^ 1);\n if (m < 12) {\n mtable[i * 2][m] = I * 2 + parity;\n mtable[i * 2 + 1][m] = I * 2 + (parity ^ 1);\n }\n }\n }\n tables.fsm = mtable;\n tables.fsm15 = mtable15;\n return mtable;\n}\n\nfunction generate_fullseparate_ptable() {\n if (tables.fsp) {\n return tables.fsp;\n }\n let mtable = generate_fullseparate_mtable();\n /*\n\tlet separations = [\n\t\t[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],\n\t\t[0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1],\n\t\t[0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1],\n\t\t[0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1],\n\t\t[0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],\n\t\t[0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1],\n\t\t[1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1].map(x => 1-x),\n\t\t[1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0].map(x => 1-x),\n\t\t[1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0].map(x => 1-x),\n\t\t[0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0],\n\t];\n\t*/\n let goal_states = [0];\n let l = 1;\n while (true) {\n for (let ind of goal_states) {\n for (let m = 12; m < 15; m++) {\n let new_ind = tables.fsm15[ind][m];\n if (goal_states.indexOf(new_ind) === -1) {\n goal_states.push(new_ind);\n goal_states.sort((x, y) => x - y); // slow but w/e\n }\n }\n }\n if (goal_states.length === l) {\n break;\n }\n l = goal_states.length;\n }\n print(goal_states.toSource());\n return (tables.fsp = bfs5(mtable, goal_states));\n}\n\nfunction bfs5(mtable, goal_states) {\n let N = mtable.length;\n let nmoves = mtable[0].length;\n let ptable = Array(N).fill(-1);\n let queue = goal_states.slice();\n let new_queue = [];\n let depth = 0;\n while (queue.length > 0) {\n new_queue.length = 0;\n for (let state of queue) {\n if (ptable[state] !== -1) {\n continue;\n }\n ptable[state] = depth;\n for (let move_index = 0; move_index < nmoves; move_index++) {\n let new_state = mtable[state][move_index];\n for (let r = 1; r <= 4; r++) {\n if (r === 1 || r === 4) {\n new_queue.push(new_state);\n }\n new_state = mtable[new_state][move_index];\n }\n }\n }\n [queue, new_queue] = [new_queue, queue];\n depth += 1;\n }\n return ptable;\n}\n\nexport function getRandomKilominxScramble() {\n return new Alg(stringify_move_sequence(generate_random_state_scramble()));\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["evenpermutation10_to_index", "index_to_evenpermutation10", "C", "C", "i", "last"]
|
|
7
|
-
}
|