cubing 0.25.13 → 0.26.1
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/.DS_Store +0 -0
- package/dist/esm/{2x2x2.kpuzzle.json-BHTFIME6.js → 2x2x2.kpuzzle.json-RJHNQ246.js} +1 -1
- package/dist/esm/{2x2x2.kpuzzle.json-BHTFIME6.js.map → 2x2x2.kpuzzle.json-RJHNQ246.js.map} +1 -1
- package/dist/esm/{2x2x2.sgs.json-NLV7NA3B.js → 2x2x2.sgs.json-OIAKZDZZ.js} +5 -5
- package/dist/esm/{2x2x2.sgs.json-NLV7NA3B.js.map → 2x2x2.sgs.json-OIAKZDZZ.js.map} +1 -1
- package/dist/esm/{3d-dynamic-ZXCKVS2R.js → 3d-dynamic-OTQHIOVR.js} +5 -5
- package/dist/esm/{3d-dynamic-ZXCKVS2R.js.map → 3d-dynamic-OTQHIOVR.js.map} +1 -1
- package/dist/esm/{3x3x3-min2phase-UBW46KDU.js → 3x3x3-min2phase-GFNNX26U.js} +1 -1
- package/dist/esm/{3x3x3-min2phase-UBW46KDU.js.map → 3x3x3-min2phase-GFNNX26U.js.map} +1 -1
- package/dist/esm/{444-solver-XVU6Q26C.js → 444-solver-2ECPETB3.js} +6 -6
- package/dist/esm/{444-solver-XVU6Q26C.js.map → 444-solver-2ECPETB3.js.map} +1 -1
- package/dist/esm/alg/index.js +1 -1
- package/dist/esm/bluetooth/index.js +6 -8
- package/dist/esm/bluetooth/index.js.map +1 -1
- package/dist/esm/{chunk-FB7SFELN.js → chunk-3CEMUTUD.js} +2 -2
- package/dist/esm/{chunk-FB7SFELN.js.map → chunk-3CEMUTUD.js.map} +1 -1
- package/dist/esm/{chunk-NSLR2SC4.js → chunk-5Q4SJSNY.js} +2 -2
- package/dist/esm/{chunk-NSLR2SC4.js.map → chunk-5Q4SJSNY.js.map} +1 -1
- package/dist/esm/{chunk-ZPAGJE7S.js → chunk-AD6PFNOU.js} +2 -2
- package/dist/esm/{chunk-ZPAGJE7S.js.map → chunk-AD6PFNOU.js.map} +1 -1
- package/dist/esm/{chunk-GBMX6FHY.js → chunk-ALBEW4DJ.js} +1 -1
- package/dist/esm/{chunk-GBMX6FHY.js.map → chunk-ALBEW4DJ.js.map} +1 -1
- package/dist/esm/{chunk-KWHGWTPB.js → chunk-CRU5TVHA.js} +4 -4
- package/dist/esm/{chunk-KWHGWTPB.js.map → chunk-CRU5TVHA.js.map} +1 -1
- package/dist/esm/{chunk-AT7N3AOZ.js → chunk-CYG3DDTX.js} +3 -2
- package/dist/esm/chunk-CYG3DDTX.js.map +7 -0
- package/dist/esm/{chunk-YAOUFM4D.js → chunk-HUCMGBEC.js} +295 -2
- package/dist/esm/chunk-HUCMGBEC.js.map +7 -0
- package/dist/esm/{chunk-RPPJMADS.js → chunk-J7OB2GEM.js} +6 -6
- package/dist/esm/{chunk-RPPJMADS.js.map → chunk-J7OB2GEM.js.map} +1 -1
- package/dist/esm/{chunk-FIUPFE4L.js → chunk-JIBAUV55.js} +7 -7
- package/dist/esm/{chunk-FIUPFE4L.js.map → chunk-JIBAUV55.js.map} +1 -1
- package/dist/esm/{chunk-ASJ4L4HQ.js → chunk-MC2D6L32.js} +3 -3
- package/dist/esm/{chunk-ASJ4L4HQ.js.map → chunk-MC2D6L32.js.map} +1 -1
- package/dist/esm/{chunk-RN5JA7BB.js → chunk-PDVAUAMY.js} +2 -2
- package/dist/esm/{chunk-RN5JA7BB.js.map → chunk-PDVAUAMY.js.map} +1 -1
- package/dist/esm/{chunk-AMOANNTB.js → chunk-PMKVGKT4.js} +4 -4
- package/dist/esm/{chunk-AMOANNTB.js.map → chunk-PMKVGKT4.js.map} +1 -1
- package/dist/esm/{chunk-DO7GZAW4.js → chunk-QZOJPCN5.js} +1 -1
- package/dist/esm/{chunk-DO7GZAW4.js.map → chunk-QZOJPCN5.js.map} +1 -1
- package/dist/esm/{chunk-BEXHMXCT.js → chunk-RHC3DIN3.js} +1 -1
- package/dist/esm/{chunk-BEXHMXCT.js.map → chunk-RHC3DIN3.js.map} +1 -1
- package/dist/esm/{chunk-43SBQEWR.js → chunk-V55YSWJY.js} +3 -3
- package/dist/esm/chunk-V55YSWJY.js.map +7 -0
- package/dist/esm/{chunk-YRNGJPFS.js → chunk-XQKTAWAA.js} +6 -6
- package/dist/esm/{chunk-YRNGJPFS.js.map → chunk-XQKTAWAA.js.map} +1 -1
- package/dist/esm/{clock.kpuzzle.json-PYHONPBY.js → clock.kpuzzle.json-3Q7KDODZ.js} +1 -1
- package/dist/esm/clock.kpuzzle.json-3Q7KDODZ.js.map +7 -0
- package/dist/esm/{fto-solver-TOOJNOZB.js → fto-solver-5EQEC77M.js} +2 -2
- package/dist/esm/{fto-solver-TOOJNOZB.js.map → fto-solver-5EQEC77M.js.map} +1 -1
- package/dist/esm/{fto.dynamic-ZIN22CCJ.js → fto.dynamic-ISSUUAOX.js} +6 -6
- package/dist/esm/{fto.dynamic-ZIN22CCJ.js.map → fto.dynamic-ISSUUAOX.js.map} +1 -1
- package/dist/esm/{kilosolver-A3MNW2DJ.js → kilosolver-RP3POREU.js} +3 -3
- package/dist/esm/{kilosolver-A3MNW2DJ.js.map → kilosolver-RP3POREU.js.map} +1 -1
- package/dist/esm/kpuzzle/index.js +2 -2
- package/dist/esm/{master_tetraminx-solver-QSJNGET5.js → master_tetraminx-solver-RFBUNQMC.js} +2 -2
- package/dist/esm/{master_tetraminx-solver-QSJNGET5.js.map → master_tetraminx-solver-RFBUNQMC.js.map} +1 -1
- package/dist/esm/{megaminx.sgs.json-4RFNTV3K.js → megaminx.sgs.json-NUXKWG2L.js} +6 -6
- package/dist/esm/{megaminx.sgs.json-4RFNTV3K.js.map → megaminx.sgs.json-NUXKWG2L.js.map} +0 -0
- package/dist/esm/notation/index.js +2 -2
- package/dist/esm/protocol/index.js +2 -3
- package/dist/esm/puzzle-geometry/index.js +2 -2
- package/dist/esm/puzzles/index.js +3 -3
- package/dist/esm/pyraminx.sgs.json-2BVIFZAF.js +14 -0
- package/dist/esm/{pyraminx.sgs.json-XWDFTFGD.js.map → pyraminx.sgs.json-2BVIFZAF.js.map} +0 -0
- package/dist/esm/{redi_cube-FYRLEZZH.js → redi_cube-5B6YHJGL.js} +3 -3
- package/dist/esm/{redi_cube-FYRLEZZH.js.map → redi_cube-5B6YHJGL.js.map} +1 -1
- package/dist/esm/{redi_cube.kpuzzle.json-43CP47Z6.js → redi_cube.kpuzzle.json-VGO74GBL.js} +1 -1
- package/dist/esm/{redi_cube.kpuzzle.json-43CP47Z6.js.map → redi_cube.kpuzzle.json-VGO74GBL.js.map} +1 -1
- package/dist/esm/scramble/index.js +8 -8
- package/dist/esm/search/index.js +8 -8
- package/dist/esm/{search-worker-js-entry-MQ5EKNR4.js → search-worker-js-entry-CZHIWNVF.js} +24 -24
- package/dist/esm/{search-worker-js-entry-MQ5EKNR4.js.map → search-worker-js-entry-CZHIWNVF.js.map} +1 -1
- package/dist/esm/{search-worker-ts-entry-AEZHCL75.js → search-worker-ts-entry-4WJDKASM.js} +5 -5
- package/dist/esm/{search-worker-ts-entry-AEZHCL75.js.map → search-worker-ts-entry-4WJDKASM.js.map} +1 -1
- package/dist/esm/skewb.sgs.json-IMR7QJQC.js +16 -0
- package/dist/esm/{skewb.sgs.json-ENZWYZTX.js.map → skewb.sgs.json-IMR7QJQC.js.map} +0 -0
- package/dist/esm/{sq1-hyperorbit.kpuzzle.json-AMXAFQCM.js → sq1-hyperorbit.kpuzzle.json-NHAYS6MD.js} +1 -1
- package/dist/esm/sq1-hyperorbit.kpuzzle.json-NHAYS6MD.js.map +7 -0
- package/dist/esm/{sq1-solver-KMN2GSOU.js → sq1-solver-G73T6FTJ.js} +2 -2
- package/dist/esm/{sq1-solver-KMN2GSOU.js.map → sq1-solver-G73T6FTJ.js.map} +1 -1
- package/dist/esm/stream/index.js +1 -1
- package/dist/esm/stream/index.js.map +1 -1
- package/dist/esm/twisty/index.js +73 -52
- package/dist/esm/twisty/index.js.map +2 -2
- package/dist/esm/{worker-inside-generated-string-HCFERKXI.js → worker-inside-generated-string-4FDHMKDI.js} +27 -27
- package/dist/esm/worker-inside-generated-string-4FDHMKDI.js.map +7 -0
- package/dist/types/Alg-6f3dc52c.d.ts +278 -0
- package/dist/types/KPuzzleDefinition-8531b592.d.ts +349 -0
- package/dist/types/KState-ba36d9a3.d.ts +70 -0
- package/dist/types/PuzzleLoader-a7faf593.d.ts +172 -0
- package/dist/types/alg/index.d.ts +49 -13
- package/dist/types/bluetooth/index.d.ts +147 -11
- package/dist/types/{bluetooth/smart-puzzle/bluetooth-puzzle.d.ts → bluetooth-puzzle-bc1a5264.d.ts} +14 -8
- package/dist/types/kpuzzle/index.d.ts +8 -6
- package/dist/types/notation/index.d.ts +8 -2
- package/dist/types/outside-d6602f71.d.ts +22 -0
- package/dist/types/parse-6d363160.d.ts +9 -0
- package/dist/types/protocol/index.d.ts +26 -4
- package/dist/types/puzzle-geometry/index.d.ts +7 -6
- package/dist/types/puzzles/index.d.ts +29 -12
- package/dist/types/scramble/index.d.ts +4 -1
- package/dist/types/search/index.d.ts +8 -2
- package/dist/types/stream/index.d.ts +57 -3
- package/dist/types/twisty/index.d.ts +1027 -16
- package/package.json +4 -2
- package/dist/esm/chunk-43SBQEWR.js.map +0 -7
- package/dist/esm/chunk-6BUCXDZU.js +0 -274
- package/dist/esm/chunk-6BUCXDZU.js.map +0 -7
- package/dist/esm/chunk-AT7N3AOZ.js.map +0 -7
- package/dist/esm/chunk-YAOUFM4D.js.map +0 -7
- package/dist/esm/clock.kpuzzle.json-PYHONPBY.js.map +0 -7
- package/dist/esm/pyraminx.sgs.json-XWDFTFGD.js +0 -14
- package/dist/esm/skewb.sgs.json-ENZWYZTX.js +0 -16
- package/dist/esm/sq1-hyperorbit.kpuzzle.json-AMXAFQCM.js.map +0 -7
- package/dist/esm/worker-inside-generated-string-HCFERKXI.js.map +0 -7
- package/dist/types/alg/Alg.d.ts +0 -118
- package/dist/types/alg/Alg.spec.d.ts +0 -1
- package/dist/types/alg/AlgBuilder.d.ts +0 -11
- package/dist/types/alg/Serializable.d.ts +0 -0
- package/dist/types/alg/common.d.ts +0 -19
- package/dist/types/alg/debug.d.ts +0 -4
- package/dist/types/alg/example.d.ts +0 -14
- package/dist/types/alg/is.d.ts +0 -4
- package/dist/types/alg/iteration.d.ts +0 -9
- package/dist/types/alg/keyboard.d.ts +0 -2
- package/dist/types/alg/limits.d.ts +0 -4
- package/dist/types/alg/operation.d.ts +0 -6
- package/dist/types/alg/operation.spec.d.ts +0 -1
- package/dist/types/alg/parse.d.ts +0 -12
- package/dist/types/alg/parse.spec.d.ts +0 -1
- package/dist/types/alg/test/alg-comparison.d.ts +0 -10
- package/dist/types/alg/test/alg.spec.d.ts +0 -1
- package/dist/types/alg/traversal.d.ts +0 -39
- package/dist/types/alg/units/QuantumWithAmount.d.ts +0 -11
- package/dist/types/alg/units/Unit.d.ts +0 -9
- package/dist/types/alg/units/containers/Commutator.d.ts +0 -14
- package/dist/types/alg/units/containers/Conjugate.d.ts +0 -14
- package/dist/types/alg/units/containers/Grouping.d.ts +0 -19
- package/dist/types/alg/units/index.d.ts +0 -8
- package/dist/types/alg/units/leaves/LineComment.d.ts +0 -12
- package/dist/types/alg/units/leaves/LineComment.spec.d.ts +0 -1
- package/dist/types/alg/units/leaves/Move.d.ts +0 -50
- package/dist/types/alg/units/leaves/Move.spec.d.ts +0 -1
- package/dist/types/alg/units/leaves/Newline.d.ts +0 -9
- package/dist/types/alg/units/leaves/Pause.d.ts +0 -9
- package/dist/types/alg/url.d.ts +0 -11
- package/dist/types/alg/url.spec.d.ts +0 -1
- package/dist/types/alg/validation.d.ts +0 -19
- package/dist/types/alg/warnOnce.d.ts +0 -1
- package/dist/types/bluetooth/connect/index.d.ts +0 -6
- package/dist/types/bluetooth/debug.d.ts +0 -2
- package/dist/types/bluetooth/keyboard.d.ts +0 -14
- package/dist/types/bluetooth/smart-puzzle/Heykube.d.ts +0 -17
- package/dist/types/bluetooth/smart-puzzle/connect.d.ts +0 -3
- package/dist/types/bluetooth/smart-puzzle/endianness.d.ts +0 -1
- package/dist/types/bluetooth/smart-puzzle/gan.d.ts +0 -34
- package/dist/types/bluetooth/smart-puzzle/giiker.d.ts +0 -21
- package/dist/types/bluetooth/smart-puzzle/giiker.spec.d.ts +0 -4
- package/dist/types/bluetooth/smart-puzzle/gocube.d.ts +0 -22
- package/dist/types/bluetooth/smart-robot/GanRobot.d.ts +0 -35
- package/dist/types/bluetooth/smart-robot/index.d.ts +0 -4
- package/dist/types/bluetooth/smart-timer/GanTimer.d.ts +0 -19
- package/dist/types/bluetooth/smart-timer/index.d.ts +0 -4
- package/dist/types/bluetooth/transformer.d.ts +0 -9
- package/dist/types/cubing.bundle-global.d.ts +0 -1
- package/dist/types/cubing.bundle-global.exports.d.ts +0 -24
- package/dist/types/kpuzzle/3x3x3/3x3x3.kpuzzle.json.d.ts +0 -2
- package/dist/types/kpuzzle/3x3x3/3x3x3.kpuzzle.json.spec.d.ts +0 -1
- package/dist/types/kpuzzle/3x3x3/puzzle-orientation.d.ts +0 -4
- package/dist/types/kpuzzle/KPuzzle.d.ts +0 -30
- package/dist/types/kpuzzle/KPuzzleDefinition.d.ts +0 -21
- package/dist/types/kpuzzle/KState.d.ts +0 -19
- package/dist/types/kpuzzle/KTransformation.d.ts +0 -24
- package/dist/types/kpuzzle/calculate.d.ts +0 -16
- package/dist/types/kpuzzle/combine.d.ts +0 -3
- package/dist/types/kpuzzle/construct.d.ts +0 -5
- package/dist/types/notation/CountAnimatedLeaves.d.ts +0 -2
- package/dist/types/notation/CountMoves.d.ts +0 -3
- package/dist/types/protocol/binary/binary3x3x3.d.ts +0 -19
- package/dist/types/protocol/binary/binary3x3x3.spec.d.ts +0 -1
- package/dist/types/protocol/binary/hex.d.ts +0 -2
- package/dist/types/protocol/binary/hex.spec.d.ts +0 -1
- package/dist/types/protocol/binary/orbit-indexing.d.ts +0 -5
- package/dist/types/protocol/binary/orbit-indexing.spec.d.ts +0 -1
- package/dist/types/protocol/binary/puzzle-orientation.d.ts +0 -4
- package/dist/types/puzzle-geometry/FaceNameSwizzler.d.ts +0 -12
- package/dist/types/puzzle-geometry/Options.d.ts +0 -45
- package/dist/types/puzzle-geometry/PGPuzzles.d.ts +0 -5
- package/dist/types/puzzle-geometry/PGPuzzles.spec.d.ts +0 -4
- package/dist/types/puzzle-geometry/Perm.d.ts +0 -18
- package/dist/types/puzzle-geometry/PermOriSet.d.ts +0 -71
- package/dist/types/puzzle-geometry/PlatonicGenerator.d.ts +0 -10
- package/dist/types/puzzle-geometry/PuzzleGeometry.d.ts +0 -176
- package/dist/types/puzzle-geometry/Quat.d.ts +0 -43
- package/dist/types/puzzle-geometry/Quat.spec.d.ts +0 -1
- package/dist/types/puzzle-geometry/SchreierSims.d.ts +0 -2
- package/dist/types/puzzle-geometry/notation-mapping/FTONotationMapper.d.ts +0 -10
- package/dist/types/puzzle-geometry/notation-mapping/FaceRenamingMapper.d.ts +0 -12
- package/dist/types/puzzle-geometry/notation-mapping/MegaminxScramblingNotationMapper.d.ts +0 -8
- package/dist/types/puzzle-geometry/notation-mapping/NotationMapper.d.ts +0 -7
- package/dist/types/puzzle-geometry/notation-mapping/NullMapper.d.ts +0 -6
- package/dist/types/puzzle-geometry/notation-mapping/NxNxNCubeMapper.d.ts +0 -8
- package/dist/types/puzzle-geometry/notation-mapping/PyraminxNotationMapper.d.ts +0 -15
- package/dist/types/puzzle-geometry/notation-mapping/SkewbNotationMapper.d.ts +0 -9
- package/dist/types/puzzle-geometry/notation-mapping/index.d.ts +0 -8
- package/dist/types/puzzle-geometry/orientcenters.spec.d.ts +0 -1
- package/dist/types/puzzles/PuzzleLoader.d.ts +0 -18
- package/dist/types/puzzles/async/async-pg3d.d.ts +0 -33
- package/dist/types/puzzles/async/lazy-cached.d.ts +0 -1
- package/dist/types/puzzles/customPGPuzzleLoader.d.ts +0 -11
- package/dist/types/puzzles/events.d.ts +0 -8
- package/dist/types/puzzles/implementations/2x2x2/2x2x2.kpuzzle.json.d.ts +0 -2
- package/dist/types/puzzles/implementations/2x2x2/2x2x2.kpuzzle.svg.d.ts +0 -2
- package/dist/types/puzzles/implementations/2x2x2/index.d.ts +0 -2
- package/dist/types/puzzles/implementations/3x3x3/3x3x3-ll.kpuzzle.svg.d.ts +0 -2
- package/dist/types/puzzles/implementations/3x3x3/3x3x3.kpuzzle.svg.d.ts +0 -2
- package/dist/types/puzzles/implementations/3x3x3/index.d.ts +0 -2
- package/dist/types/puzzles/implementations/clock/clock.kpuzzle.json.d.ts +0 -2
- package/dist/types/puzzles/implementations/clock/clock.kpuzzle.svg.d.ts +0 -2
- package/dist/types/puzzles/implementations/clock/index.d.ts +0 -2
- package/dist/types/puzzles/implementations/fto/fto.kpuzzle.svg.d.ts +0 -1
- package/dist/types/puzzles/implementations/fto/index.d.ts +0 -12
- package/dist/types/puzzles/implementations/kilominx/index.d.ts +0 -2
- package/dist/types/puzzles/implementations/kilominx/kilominx.kpuzzle.svg.d.ts +0 -1
- package/dist/types/puzzles/implementations/megaminx/index.d.ts +0 -11
- package/dist/types/puzzles/implementations/pyraminx/index.d.ts +0 -7
- package/dist/types/puzzles/implementations/pyraminx/pyraminx.kpuzzle.json.d.ts +0 -2
- package/dist/types/puzzles/implementations/pyraminx/pyraminx.kpuzzle.svg.d.ts +0 -2
- package/dist/types/puzzles/implementations/redi-cube/index.d.ts +0 -2
- package/dist/types/puzzles/implementations/redi-cube/redi_cube.kpuzzle.json.d.ts +0 -2
- package/dist/types/puzzles/implementations/redi-cube/redi_cube.kpuzzle.svg.d.ts +0 -1
- package/dist/types/puzzles/implementations/square1/index.d.ts +0 -2
- package/dist/types/puzzles/implementations/square1/sq1-hyperorbit.kpuzzle.json.d.ts +0 -2
- package/dist/types/puzzles/implementations/square1/sq1-hyperorbit.kpuzzle.svg.d.ts +0 -2
- package/dist/types/puzzles/stickerings/appearance.d.ts +0 -50
- package/dist/types/puzzles/stickerings/cube-stickerings.d.ts +0 -5
- package/dist/types/puzzles/stickerings/fto-stickerings.d.ts +0 -5
- package/dist/types/puzzles/stickerings/global-custom-stickering-hack.d.ts +0 -2
- package/dist/types/puzzles/stickerings/megaminx-stickerings.d.ts +0 -5
- package/dist/types/search/inside/api.d.ts +0 -21
- package/dist/types/search/inside/api.spec.d.ts +0 -1
- package/dist/types/search/inside/inside-worker.d.ts +0 -2
- package/dist/types/search/inside/search-worker-js-entry.d.ts +0 -1
- package/dist/types/search/inside/search-worker-ts-entry-path-getter.d.ts +0 -1
- package/dist/types/search/inside/search-worker-ts-entry.d.ts +0 -1
- package/dist/types/search/inside/solve/addOrientationSuffix.d.ts +0 -2
- package/dist/types/search/inside/solve/parseSGS.d.ts +0 -18
- package/dist/types/search/inside/solve/puzzles/2x2x2.d.ts +0 -6
- package/dist/types/search/inside/solve/puzzles/2x2x2.sgs.json.d.ts +0 -3
- package/dist/types/search/inside/solve/puzzles/3x3x3/convert.d.ts +0 -2
- package/dist/types/search/inside/solve/puzzles/3x3x3/filter.d.ts +0 -4
- package/dist/types/search/inside/solve/puzzles/3x3x3/index.d.ts +0 -8
- package/dist/types/search/inside/solve/puzzles/3x3x3/legacy-sgs.d.ts +0 -1
- package/dist/types/search/inside/solve/puzzles/3x3x3-inefficient.sgs.json.d.ts +0 -3
- package/dist/types/search/inside/solve/puzzles/4x4x4.d.ts +0 -4
- package/dist/types/search/inside/solve/puzzles/5x5x5.d.ts +0 -2
- package/dist/types/search/inside/solve/puzzles/big-cubes.d.ts +0 -2
- package/dist/types/search/inside/solve/puzzles/clock.d.ts +0 -1
- package/dist/types/search/inside/solve/puzzles/fto.d.ts +0 -5
- package/dist/types/search/inside/solve/puzzles/fto.dynamic.d.ts +0 -3
- package/dist/types/search/inside/solve/puzzles/kilominx.d.ts +0 -2
- package/dist/types/search/inside/solve/puzzles/master_tetraminx.d.ts +0 -2
- package/dist/types/search/inside/solve/puzzles/megaminx.d.ts +0 -4
- package/dist/types/search/inside/solve/puzzles/megaminx.sgs.json.d.ts +0 -5
- package/dist/types/search/inside/solve/puzzles/pyraminx.d.ts +0 -6
- package/dist/types/search/inside/solve/puzzles/pyraminx.sgs.json.d.ts +0 -3
- package/dist/types/search/inside/solve/puzzles/redi_cube.d.ts +0 -2
- package/dist/types/search/inside/solve/puzzles/sgs-defs.spec.d.ts +0 -1
- package/dist/types/search/inside/solve/puzzles/skewb.d.ts +0 -6
- package/dist/types/search/inside/solve/puzzles/skewb.sgs.json.d.ts +0 -5
- package/dist/types/search/inside/solve/puzzles/sq1.d.ts +0 -2
- package/dist/types/search/inside/solve/puzzles/wca-minx.d.ts +0 -1
- package/dist/types/search/inside/solve/tremble.d.ts +0 -13
- package/dist/types/search/inside/worker-guard.d.ts +0 -3
- package/dist/types/search/instantiator.d.ts +0 -4
- package/dist/types/search/outside.d.ts +0 -17
- package/dist/types/search/worker-inside-generated-string.d.ts +0 -1
- package/dist/types/stream/process/ReorientedStream.d.ts +0 -20
- package/dist/types/stream/proxy-event.d.ts +0 -13
- package/dist/types/stream/twizzle/TwizzleStream.d.ts +0 -18
- package/dist/types/stream/twizzle/stream-types.d.ts +0 -32
- package/dist/types/stream/websocket-proxy.d.ts +0 -21
- package/dist/types/twisty/controllers/AnimationTypes.d.ts +0 -32
- package/dist/types/twisty/controllers/RenderScheduler.d.ts +0 -12
- package/dist/types/twisty/controllers/TwistyAnimationController.d.ts +0 -36
- package/dist/types/twisty/controllers/TwistyPlayerController.d.ts +0 -15
- package/dist/types/twisty/controllers/easing.d.ts +0 -1
- package/dist/types/twisty/controllers/indexer/AlgDuration.d.ts +0 -17
- package/dist/types/twisty/controllers/indexer/AlgIndexer.d.ts +0 -36
- package/dist/types/twisty/controllers/indexer/SimpleAlgIndexer.d.ts +0 -19
- package/dist/types/twisty/controllers/indexer/simultaneous-moves/SimultaneousMoveIndexer.d.ts +0 -22
- package/dist/types/twisty/controllers/indexer/simultaneous-moves/simul-moves.d.ts +0 -25
- package/dist/types/twisty/controllers/indexer/tree/AlgWalker.d.ts +0 -63
- package/dist/types/twisty/controllers/indexer/tree/TreeAlgIndexer.d.ts +0 -20
- package/dist/types/twisty/controllers/indexer/tree/chunkAlgs.d.ts +0 -2
- package/dist/types/twisty/controllers/stream/timeline-move-calculation-draft.d.ts +0 -15
- package/dist/types/twisty/heavy-code-imports/3d.d.ts +0 -2
- package/dist/types/twisty/heavy-code-imports/dynamic-entries/3d-dynamic.d.ts +0 -10
- package/dist/types/twisty/model/PromiseFreshener.d.ts +0 -13
- package/dist/types/twisty/model/TwistyPlayerModel.d.ts +0 -85
- package/dist/types/twisty/model/TwistySceneModel.d.ts +0 -27
- package/dist/types/twisty/model/UserVisibleErrorTracker.d.ts +0 -10
- package/dist/types/twisty/model/helpers.d.ts +0 -4
- package/dist/types/twisty/model/props/TwistyProp.d.ts +0 -59
- package/dist/types/twisty/model/props/TwistyProp.spec.d.ts +0 -4
- package/dist/types/twisty/model/props/TwistyPropDebugger.d.ts +0 -26
- package/dist/types/twisty/model/props/general/ArbitraryStringProp.d.ts +0 -4
- package/dist/types/twisty/model/props/general/URLProp.d.ts +0 -5
- package/dist/types/twisty/model/props/puzzle/display/FoundationDisplayProp.d.ts +0 -5
- package/dist/types/twisty/model/props/puzzle/display/HintFaceletProp.d.ts +0 -10
- package/dist/types/twisty/model/props/puzzle/display/SpriteProp.d.ts +0 -9
- package/dist/types/twisty/model/props/puzzle/display/StickeringProp.d.ts +0 -50
- package/dist/types/twisty/model/props/puzzle/state/AlgProp.d.ts +0 -26
- package/dist/types/twisty/model/props/puzzle/state/AlgTransformationProp.d.ts +0 -11
- package/dist/types/twisty/model/props/puzzle/state/AnchorTransformationProp.d.ts +0 -14
- package/dist/types/twisty/model/props/puzzle/state/CatchUpMoveProp.d.ts +0 -10
- package/dist/types/twisty/model/props/puzzle/state/CurrentLeavesSimplified.d.ts +0 -16
- package/dist/types/twisty/model/props/puzzle/state/CurrentMoveInfoProp.d.ts +0 -13
- package/dist/types/twisty/model/props/puzzle/state/CurrentStateProp.d.ts +0 -14
- package/dist/types/twisty/model/props/puzzle/state/IndexerConstructorProp.d.ts +0 -19
- package/dist/types/twisty/model/props/puzzle/state/IndexerConstructorRequestProp.d.ts +0 -11
- package/dist/types/twisty/model/props/puzzle/state/IndexerProp.d.ts +0 -14
- package/dist/types/twisty/model/props/puzzle/state/LegacyPositionProp.d.ts +0 -11
- package/dist/types/twisty/model/props/puzzle/state/MovePressInputProp.d.ts +0 -10
- package/dist/types/twisty/model/props/puzzle/state/NaiveMoveCountProp.d.ts +0 -9
- package/dist/types/twisty/model/props/puzzle/state/PuzzleAlgProp.d.ts +0 -13
- package/dist/types/twisty/model/props/puzzle/state/SetupAnchorProp.d.ts +0 -9
- package/dist/types/twisty/model/props/puzzle/state/SetupTransformationProp.d.ts +0 -5
- package/dist/types/twisty/model/props/puzzle/structure/KPuzzleProp.d.ts +0 -10
- package/dist/types/twisty/model/props/puzzle/structure/PuzzleDescriptionProp.d.ts +0 -5
- package/dist/types/twisty/model/props/puzzle/structure/PuzzleIDProp.d.ts +0 -10
- package/dist/types/twisty/model/props/puzzle/structure/PuzzleIDRequestProp.d.ts +0 -25
- package/dist/types/twisty/model/props/puzzle/structure/PuzzleLoaderProp.d.ts +0 -12
- package/dist/types/twisty/model/props/timeline/CoarseTimelineInfoProp.d.ts +0 -24
- package/dist/types/twisty/model/props/timeline/DetailedTimelineInfoProp.d.ts +0 -21
- package/dist/types/twisty/model/props/timeline/PlayingInfoProp.d.ts +0 -14
- package/dist/types/twisty/model/props/timeline/TempoScaleProp.d.ts +0 -5
- package/dist/types/twisty/model/props/timeline/TimestampRequestProp.d.ts +0 -15
- package/dist/types/twisty/model/props/viewer/BackViewProp.d.ts +0 -11
- package/dist/types/twisty/model/props/viewer/BackgroundProp.d.ts +0 -10
- package/dist/types/twisty/model/props/viewer/ButtonAppearanceProp.d.ts +0 -21
- package/dist/types/twisty/model/props/viewer/ControlPanelProp.d.ts +0 -10
- package/dist/types/twisty/model/props/viewer/LatitudeLimit.d.ts +0 -5
- package/dist/types/twisty/model/props/viewer/OrbitCoordinatesProp.d.ts +0 -28
- package/dist/types/twisty/model/props/viewer/OrbitCoordinatesRequestProp.d.ts +0 -14
- package/dist/types/twisty/model/props/viewer/TimeRangeProp.d.ts +0 -10
- package/dist/types/twisty/model/props/viewer/ViewerLinkProp.d.ts +0 -11
- package/dist/types/twisty/model/props/viewer/VisualizationProp.d.ts +0 -12
- package/dist/types/twisty/model/props/viewer/VisualizationStrategyProp.d.ts +0 -12
- package/dist/types/twisty/views/2D/KPuzzleSVGWrapper.d.ts +0 -17
- package/dist/types/twisty/views/2D/Twisty2DPuzzle.css.d.ts +0 -2
- package/dist/types/twisty/views/2D/Twisty2DPuzzle.d.ts +0 -27
- package/dist/types/twisty/views/2D/Twisty2DPuzzleWrapper.d.ts +0 -15
- package/dist/types/twisty/views/2D/Twisty2DSceneWrapper.d.ts +0 -19
- package/dist/types/twisty/views/3D/DragTracker.d.ts +0 -27
- package/dist/types/twisty/views/3D/RendererPool.d.ts +0 -3
- package/dist/types/twisty/views/3D/TAU.d.ts +0 -2
- package/dist/types/twisty/views/3D/Twisty3DPuzzleWrapper.d.ts +0 -21
- package/dist/types/twisty/views/3D/Twisty3DRenderTarget.d.ts +0 -3
- package/dist/types/twisty/views/3D/Twisty3DScene.d.ts +0 -14
- package/dist/types/twisty/views/3D/Twisty3DSceneWrapper.d.ts +0 -33
- package/dist/types/twisty/views/3D/Twisty3DVantage.css.d.ts +0 -2
- package/dist/types/twisty/views/3D/Twisty3DVantage.d.ts +0 -36
- package/dist/types/twisty/views/3D/TwistyOrbitControls.d.ts +0 -23
- package/dist/types/twisty/views/3D/TwistyOrbitControls.spec.d.ts +0 -4
- package/dist/types/twisty/views/3D/puzzles/Cube3D.d.ts +0 -58
- package/dist/types/twisty/views/3D/puzzles/PG3D.d.ts +0 -64
- package/dist/types/twisty/views/3D/puzzles/Twisty3DPuzzle.d.ts +0 -5
- package/dist/types/twisty/views/ClassListManager.d.ts +0 -10
- package/dist/types/twisty/views/ManagedCustomElement.d.ts +0 -19
- package/dist/types/twisty/views/TwistyAlgEditor/LeafTokens.d.ts +0 -17
- package/dist/types/twisty/views/TwistyAlgEditor/TwistyAlgEditor.css.d.ts +0 -2
- package/dist/types/twisty/views/TwistyAlgEditor/TwistyAlgEditor.d.ts +0 -40
- package/dist/types/twisty/views/TwistyAlgEditor/TwistyAlgEditor.spec.d.ts +0 -4
- package/dist/types/twisty/views/TwistyAlgEditor/model.d.ts +0 -60
- package/dist/types/twisty/views/TwistyAlgViewer.css.d.ts +0 -2
- package/dist/types/twisty/views/TwistyAlgViewer.d.ts +0 -51
- package/dist/types/twisty/views/TwistyPlayer.css.d.ts +0 -2
- package/dist/types/twisty/views/TwistyPlayer.d.ts +0 -112
- package/dist/types/twisty/views/TwistyPlayerSettable.d.ts +0 -79
- package/dist/types/twisty/views/TwistyViewerWrapper.css.d.ts +0 -2
- package/dist/types/twisty/views/canvas.d.ts +0 -2
- package/dist/types/twisty/views/control-panel/TwistyButtons.css.d.ts +0 -3
- package/dist/types/twisty/views/control-panel/TwistyButtons.d.ts +0 -32
- package/dist/types/twisty/views/control-panel/TwistyScrubber.css.d.ts +0 -2
- package/dist/types/twisty/views/control-panel/TwistyScrubber.d.ts +0 -13
- package/dist/types/twisty/views/control-panel/webkit-fullscreen.d.ts +0 -14
- package/dist/types/twisty/views/document.d.ts +0 -1
- package/dist/types/twisty/views/node-custom-element-shims.d.ts +0 -4
- package/dist/types/twisty/views/screenshot.d.ts +0 -11
- package/dist/types/twisty/views/stream/TwistyStreamSource.css.d.ts +0 -2
- package/dist/types/twisty/views/stream/TwistyStreamSource.d.ts +0 -12
- package/dist/types/twisty/views/twizzle/TwizzleLink.css.d.ts +0 -2
- package/dist/types/twisty/views/twizzle/TwizzleLink.d.ts +0 -11
- package/dist/types/twisty/views/twizzle/url-params.d.ts +0 -18
- package/dist/types/vendor/comlink-everywhere/inside/index.d.ts +0 -4
- package/dist/types/vendor/comlink-everywhere/node-adapter.d.ts +0 -6
- package/dist/types/vendor/comlink-everywhere/outside/index.d.ts +0 -5
- package/dist/types/vendor/cstimer/src/js/lib/mathlib.d.ts +0 -4
- package/dist/types/vendor/cstimer/src/js/scramble/444-solver.d.ts +0 -3
- package/dist/types/vendor/min2phase/3x3x3-min2phase.d.ts +0 -2
- package/dist/types/vendor/p-lazy/p-lazy.d.ts +0 -9
- package/dist/types/vendor/random-uint-below/get-random-values.d.ts +0 -2
- package/dist/types/vendor/random-uint-below/index.d.ts +0 -3
- package/dist/types/vendor/random-uint-below/random-choice.d.ts +0 -1
- package/dist/types/vendor/random-uint-below/random53BitValue.d.ts +0 -1
- package/dist/types/vendor/sq12phase/sq1-solver.d.ts +0 -1
- package/dist/types/vendor/three/examples/jsm/libs/stats.modified.module.d.ts +0 -32
- package/dist/types/vendor/unsafe-raw-aes/unsafe-raw-aes.d.ts +0 -3
- package/dist/types/vendor/xyzzy/fto-solver-original.d.ts +0 -148
- package/dist/types/vendor/xyzzy/fto-solver.d.ts +0 -1
- package/dist/types/vendor/xyzzy/kilosolver.d.ts +0 -2
- package/dist/types/vendor/xyzzy/master_tetraminx-solver.d.ts +0 -1
- package/dist/types/vendor/xyzzy/redi_cube.d.ts +0 -2
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/cubing/vendor/xyzzy/fto-solver.js"],
|
|
4
4
|
"sourcesContent": ["/* eslint-disable */\n/* ftosolver.js - An FTO solver\nversion 0.5.1 (2021-04-20)\n\nCopyright (c) 2016, 2020, 2021\n\nFrom https://gist.github.com/torchlight/9a5c53da09d8e090756a228f4b5f3471\nOriginally MIT licensed, added to `cubing.js` under the GPL license by permission from the author (@torchlight/xyzzy).\n\nCompatibility note:\nThis is targeted at Firefox / Spidermonkey releases from 2019 and onwards. It might not run on older\nJavaScript engines. Recent Chrome / Node releases should also work, but are not tested as much.\n*/\n\nimport { randomUIntBelowFactory } from \"../random-uint-below\";\n\n/* Helper functions */\n\nfunction counter(A) {\n let counts = [];\n for (let a of A) counts[a] = (counts[a] || 0) + 1;\n return counts;\n}\n\n/* Combinatoric functions */\n\nfunction factorial(n) {\n if (n < 2) return n;\n let f = 1;\n for (let i = 2; i <= n; i++) f *= i;\n return f;\n}\n\nfunction C(n, k) {\n if (k < 0 || k > n) return 0;\n if (k === 0 || k === n) return 1;\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 C4(n, k0, k1, k2, k3 = n - k0 - k1 - k2) {\n return C(n, k0 + k1) * C(k0 + k1, k0) * C(k2 + k3, k2);\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]) parity ^= 1;\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]) perm[j]++;\n else parity ^= 1;\n }\n }\n if (parity === 1) [perm[n - 2], perm[n - 1]] = [perm[n - 1], perm[n - 2]];\n return perm;\n}\n\nfunction evenpermutation_to_index(perm) {\n return permutation_to_index(perm) >> 1;\n}\n\nlet [evenpermutation8_to_index, index_to_evenpermutation8] = (() => {\n let index_in_set_bits = new Int8Array(256 * 8);\n let look_up_set_bits = new Int8Array(256 * 8);\n for (let i = 0; i < 256; i++) {\n for (let j = 0, counter = 0; j < 8; j++) {\n if (((i >>> j) & 1) === 0) {\n continue;\n }\n index_in_set_bits[(j << 8) | i] = counter;\n look_up_set_bits[(counter << 8) | i] = j;\n counter++;\n }\n }\n\n function evenpermutation8_to_index(perm) {\n let unused = 0xff; // track which values in 0..7 haven't been used so far\n let f = 2520; // = 7!/2\n let ind = 0;\n for (let i = 0; i < 6; i++) {\n let v = perm[i];\n ind += index_in_set_bits[unused | (v << 8)] * f;\n unused &= ~(1 << v);\n f /= 7 - i;\n }\n return ind;\n }\n\n // note: this is *not* a drop-in replacement for index_to_evenpermutation!\n function index_to_evenpermutation8(ind, perm) {\n let unused = 0xff;\n let f = 2520; // = 7!/2\n let parity = 0;\n for (let i = 0; i < 6; i++) {\n let a = (ind / f) | 0;\n ind -= a * f;\n parity ^= a & 1;\n let v = look_up_set_bits[unused | (a << 8)];\n perm[i] = v;\n unused &= ~(1 << v);\n f /= 7 - i;\n }\n // the last two elements are uniquely determined by the others\n perm[6] = look_up_set_bits[unused | (parity << 8)];\n perm[7] = look_up_set_bits[unused | ((parity ^ 1) << 8)];\n return perm;\n }\n\n return [evenpermutation8_to_index, index_to_evenpermutation8];\n})();\n\nfunction random_permutation(n, randomUintBelow) {\n let p = [0];\n for (let i = 1; i < n; i++) {\n let r = randomUintBelow(i + 1);\n p[i] = p[r];\n p[r] = i;\n }\n return p;\n}\n\nfunction random_even_permutation(n, randomUintBelow) {\n let p = random_permutation(n, randomUintBelow);\n if (permutation_parity(p) === 1) {\n [p[0], p[1]] = [p[1], p[0]];\n }\n return p;\n}\n\nfunction comb_to_index(l) {\n let bits = l.length;\n let ones = 0;\n for (let i = 0; i < bits; i++) ones += +(l[i] === 1);\n let zeros = bits - ones;\n if (zeros === 0 || ones === 0 || bits === 1) return 0;\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 } // l[i] === 1\n else {\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\n// this is \"incorrect\" for n=0 but that's out of scope\nfunction ctz(n) {\n n |= 0;\n return 31 - Math.clz32(n ^ (n - 1));\n}\n\nlet comb_lookup_tables = {};\nfunction generate_comb_lookup_tables(n, k) {\n // 2 <= n <= 28, 0 <= k <= n\n n |= 0;\n k |= 0;\n let key = n + \" \" + k;\n if (comb_lookup_tables[key]) {\n return comb_lookup_tables[key];\n }\n let total = C(n, k);\n let index_to_comb_table = new Uint32Array(total);\n let comb_to_index_table = new Uint32Array(1 << n).fill(-1);\n for (let i = 0, c = (1 << k) - 1; i < total; i++) {\n index_to_comb_table[i] = c;\n comb_to_index_table[c] = i;\n let t = c | (c - 1);\n c = (t + 1) | (((~t & -~t) - 1) >> (ctz(c) + 1));\n }\n return (comb_lookup_tables[key] = [index_to_comb_table, comb_to_index_table]);\n}\n\nfunction popcount(n) {\n n |= 0;\n let c = 0;\n while (n !== 0) {\n n &= n - 1;\n c++;\n }\n return c;\n}\n\nfunction spread_bits(n) {\n n &= 0xffff;\n n = (n | (n << 8)) & 0x00ff00ff;\n n = (n | (n << 4)) & 0x0f0f0f0f;\n n = (n | (n << 2)) & 0x33333333;\n n = (n | (n << 1)) & 0x55555555;\n return n;\n}\n\nfunction interleave_bits(x, y) {\n return spread_bits(x) | (spread_bits(y) << 1);\n}\n\nlet comb4_lookup_tables = {};\nfunction generate_comb4_lookup_tables(n, k0, k1, k2, k3) {\n // 3 <= n <= 14\n // 0 <= k0,k1,k2,k3 <= n\n // n = k0 + k1 + k2 + k3\n // WARNING: This does not return the combinations in sorted order.\n // (but if only two of k0,k1,k2,k3 are nonzero, then they will be sorted)\n n |= 0;\n k0 |= 0;\n k1 |= 0;\n k2 |= 0;\n k3 |= 0;\n if (n !== k0 + k1 + k2 + k3) {\n throw \"generate_comb4_lookup_tables: invalid parameters\";\n }\n let key = [n, k0, k1, k2, k3].join(\" \");\n if (comb4_lookup_tables[key]) {\n return comb4_lookup_tables[key];\n }\n let [itcl, ctil] = generate_comb_lookup_tables(n, k1 + k3);\n let [itch, ctih] = generate_comb_lookup_tables(n, k2 + k3);\n let total = C4(n, k0, k1, k2, k3);\n let index_to_comb4_table = new Uint32Array(total);\n let comb4_to_index_table = new Uint32Array(4 ** n).fill(-1);\n for (let i = 0, index = 0; i < itch.length; i++) {\n let ch = itch[i];\n for (let j = 0; j < itcl.length; j++) {\n let cl = itcl[j];\n if (popcount(cl & ch) === k3) {\n let c = interleave_bits(cl, ch);\n index_to_comb4_table[index] = c;\n comb4_to_index_table[c] = index;\n index++;\n }\n }\n }\n return (comb4_lookup_tables[key] = [\n index_to_comb4_table,\n comb4_to_index_table,\n ]);\n}\n\nfunction compose(A, B) {\n let C = [];\n for (let i = 0; i < B.length; i++) C[i] = A[B[i]];\n return C;\n}\n\nfunction compose3(A, B, C) {\n let D = [];\n for (let i = 0; i < C.length; i++) D[i] = A[B[C[i]]];\n return D;\n}\n\nfunction compose_o(A, B) {\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];\n }\n return [p, o];\n}\n\n/*\nfunction permutation_from_cycle(cycle, n)\n{\n\tlet perm = [];\n\tfor (let i = 0; i < n; i++) {perm[i] = i};\n\tfor (let i = 0; i < cycle.length; i++)\n\t{\n\t\tperm[cycle[i]] = cycle[(i + 1) % cycle.length];\n\t}\n\treturn perm;\n}\n*/\n\nfunction permutation_from_cycles(cycles, n) {\n let perm = [];\n for (let i = 0; i < n; i++) {\n perm[i] = i;\n }\n for (let cycle of cycles) {\n for (let i = 0; i < cycle.length; i++) {\n perm[cycle[i]] = cycle[(i + 1) % cycle.length];\n }\n }\n return perm;\n}\n\nfunction reduce_permutation(perm, keep) {\n // perm: a permutation\n // keep: array of booleans, of the same length as perm\n let n = perm.length;\n let count = Array(n).fill(0);\n for (let i = 1; i < n; i++) {\n count[i] = count[i - 1] + keep[i - 1];\n }\n let nn = count[n - 1] + keep[n - 1];\n let reduced = Array(nn);\n for (let i = 0; i < n; i++) {\n if (keep[i]) {\n reduced[count[i]] = count[perm[i]];\n }\n }\n return reduced;\n}\n\nfunction invert_permutation(perm) {\n let n = perm.length;\n let inverse = Array(n);\n for (let i = 0; i < n; i++) {\n inverse[perm[i]] = i;\n }\n return inverse;\n}\n\nfunction gcd(a, b) {\n while (a && b) {\n [a, b] = [b % a, a];\n }\n return Math.abs(a + b);\n}\n\nfunction lcm(a, b) {\n return (a * b) / gcd(a, b);\n}\n\nfunction permutation_order(perm) {\n let order = 1;\n let n = perm.length;\n let visited = Array(n).fill(false);\n let i = -1;\n while (true) {\n i = visited.indexOf(false, i + 1);\n if (i === -1) {\n break;\n }\n let cycle_length = 0;\n let j = i;\n while (!visited[j]) {\n visited[j] = true;\n j = perm[j];\n cycle_length++;\n }\n //console.log(cycle_length);\n order = lcm(order, cycle_length);\n }\n return order;\n}\n\n/*\nFacelet layout:\n\t\t\t\tU\t\t\t\t\t\t\t\t\tB\n\t\t8\t7\t6\t5\t4\t\t\t\t\t67\t68\t69\t70\t71\n\t44\t\t3\t2\t1\t\t49\t\t\t22\t\t64\t65\t66\t\t35\n\t43\t39\t\t0\t\t46\t50\t\t\t23\t19\t\t63\t\t30\t34\nL\t42\t38\t36\t\t45\t47\t51\tR\tBR\t24\t20\t18\t\t27\t29\t33\tBL\n\t41\t37\t\t9\t\t48\t52\t\t\t25\t21\t\t54\t\t28\t32\n\t40\t\t10\t11\t12\t\t53\t\t\t26\t\t57\t56\t55\t\t31\n\t\t13\t14\t15\t16\t17\t\t\t\t\t62\t61\t60\t59\t58\n\t\t\t\tF\t\t\t\t\t\t\t\t\tD\n\nWe'll be using the facelet permutations as the underlying representation. This specific labelling\ngives us three symmetries that can be written very compactly, and this turns out to be enough to\ngenerate any face move from any other face move.\n\nWhich is nice, because I don't have an FTO and it would be very error prone if I were to write out\nevery move individually.\n\nX = T2\nY = Ro Lo' (I think)\nZ = mirroring so that U swaps with L and F swaps with R\n\nFaces / colours (Lanlan colour scheme):\n0: U (white)\n1: F (red)\n2: BR (grey)\n3: BL (orange)\n4: L (purple)\n5: R (green)\n6: D (yellow)\n7: B (blue)\n*/\n\nlet solved_state = Array(72)\n .fill()\n .map((_, i) => (i / 9) | 0);\n\nlet move_U = permutation_from_cycles(\n [\n [0, 4, 8],\n [1, 6, 3],\n [2, 5, 7],\n [9, 22, 35],\n [45, 67, 44],\n [47, 68, 43],\n [46, 69, 39],\n [50, 70, 38],\n [49, 71, 36],\n ],\n 72,\n);\nlet move_Ui = compose(move_U, move_U);\n\nlet move_X = Array(72)\n .fill()\n .map((_, i) => ((i / 18) | 0) * 18 + ((i + 9) % 18));\nlet move_Y = Array(72)\n .fill()\n .map((_, i) => ((i / 36) | 0) * 36 + ((i + 18) % 36));\nlet move_Z = Array(72)\n .fill()\n .map((_, i) => (i + 36) % 72);\n\n// Z changes sign, so this is really setting up to U' rather than U\nlet move_L = compose3(move_Z, move_Ui, move_Z);\nlet move_F = compose3(move_X, move_U, move_X);\nlet move_R = compose3(move_X, move_L, move_X);\n\n//let move_BR = compose3(move_Y, move_U, move_Y);\n//let move_BL = compose3(move_Y, move_F, move_Y);\n//let move_B = compose3(move_Y, move_R, move_Y);\n//let move_D = compose3(move_Y, move_L, move_Y);\n\nlet move_Us = permutation_from_cycles(\n [\n [10, 24, 30],\n [11, 23, 34],\n [12, 19, 33],\n [42, 48, 64],\n [41, 52, 65],\n [37, 51, 66],\n ],\n 72,\n);\nlet move_Uw = compose(move_U, move_Us);\nlet move_Uwi = compose(move_Uw, move_Uw);\n\nlet move_Lw = compose3(move_Z, move_Uwi, move_Z);\nlet move_Fw = compose3(move_X, move_Uw, move_X);\nlet move_Rw = compose3(move_X, move_Lw, move_X);\n\nlet colour_map = Array(72)\n .fill()\n .map((_, i) => (i / 9) | 0);\n\nlet corner_piece_facelets = [\n [0, 45, 9, 36], // U-F\n [4, 67, 22, 49], // U-BR\n [8, 44, 35, 71], // U-BL\n [13, 58, 31, 40], // F-BL\n [17, 53, 26, 62], // F-BR\n [18, 63, 27, 54], // BR-BL\n];\n\nlet edge_piece_facelets = [\n [1, 46], // U-R\n [3, 39], // U-L\n [6, 69], // U-B\n [10, 37], // F-L\n [33, 42], // BL-L\n [12, 48], // F-R *\n [15, 60], // F-D *\n [24, 51], // BR-R *\n [19, 64], // BR-B **\n [28, 55], // BL-D **\n [30, 66], // BL-B **\n [21, 57], // BR-D **\n];\n\nlet centreA_piece_facelets = Array(12)\n .fill()\n .map((_, i) => ((i / 3) | 0) * 9 + [2, 5, 7][i % 3]);\nlet centreB_piece_facelets = centreA_piece_facelets.map((x) => x + 36);\n\n/*\nfacelet definition sanity test:\nall corner facelets are 0,4,8 mod 9; facelet order is always in U,R,U,R orbits\nall edge facelets are 1,3,6 mod 9; facelet order is always in U,R orbits\nall centre facelets are 2,5,7 mod 9\n\nfunction facelet_sanity_test()\n{\nif (corner_piece_facelets.length !== 6) {console.log('wrong number of corner pieces'); return;}\nif (edge_piece_facelets.length !== 12) {console.log('wrong number of edge pieces'); return;}\nif (!corner_piece_facelets.every(x => {return x.every(y => y % 9 % 4 === 0) && x[0] < 36 && x[2] < 36 && x[1] >= 36 && x[3] >= 36;}))\n{\n\tconsole.log('corner pieces weird');\n\treturn;\n}\nif (!edge_piece_facelets.every(x => {return x.every(y => [1,3,6].indexOf(y % 9) !== -1) && x[0] < 36 && x[1] >= 36;}))\n{\n\tconsole.log('edge pieces weird');\n\treturn;\n}\n}\n\n*/\n\nfunction identify_corner_piece(colourA, colourB) {\n // return a 2-tuple [p, o] where\n // p in {0,1,2,3,4,5} is the corner piece's ID and\n // o in {0,1} is its orientation\n for (let i = 0; i < 6; i++) {\n if (\n colourA === colour_map[corner_piece_facelets[i][0]] &&\n colourB === colour_map[corner_piece_facelets[i][2]]\n ) {\n return [i, 0];\n } else if (\n colourA === colour_map[corner_piece_facelets[i][2]] &&\n colourB === colour_map[corner_piece_facelets[i][0]]\n ) {\n return [i, 1];\n }\n }\n throw \"unknown corner piece\";\n}\n\nfunction identify_edge_piece(colourA, colourB) {\n // return p in {0..11} the edge piece's ID\n // (edges are not flippable on the FTO)\n for (let i = 0; i < 12; i++) {\n if (\n colourA === colour_map[edge_piece_facelets[i][0]] &&\n colourB === colour_map[edge_piece_facelets[i][1]]\n ) {\n return i;\n }\n if (\n colourB === colour_map[edge_piece_facelets[i][0]] &&\n colourA === colour_map[edge_piece_facelets[i][1]]\n ) {\n return i;\n }\n }\n throw \"unknown edge piece\";\n}\n\nfunction get_corner_piece(facelets, location) {\n return identify_corner_piece(\n facelets[corner_piece_facelets[location][0]],\n facelets[corner_piece_facelets[location][2]],\n );\n}\n\nfunction get_edge_piece(facelets, location) {\n return identify_edge_piece(\n facelets[edge_piece_facelets[location][0]],\n facelets[edge_piece_facelets[location][1]],\n );\n}\n\nfunction set_corner_piece(facelets, location, value, orientation) {\n let indices = corner_piece_facelets[location];\n let colours = corner_piece_facelets[value].map((x) => colour_map[x]);\n if (orientation % 2 !== 0) {\n colours = [colours[2], colours[3], colours[0], colours[1]];\n }\n for (let i = 0; i < 4; i++) {\n facelets[indices[i]] = colours[i];\n }\n}\n\nfunction set_edge_piece(facelets, location, value) {\n let indices = edge_piece_facelets[location];\n let colours = edge_piece_facelets[value].map((x) => colour_map[x]);\n for (let i = 0; i < 2; i++) {\n facelets[indices[i]] = colours[i];\n }\n}\n\nfunction convert_move_to_permutations(move) {\n let state = move.map((x) => colour_map[x]);\n //console.log(state);\n let cp_raw = Array(6)\n .fill()\n .map((_, i) => get_corner_piece(state, i));\n let cp_half = cp_raw.map(([p, o]) => p + 6 * o);\n let cp = cp_half.concat(cp_half.map((x) => (x + 6) % 12));\n let ep = Array(12)\n .fill()\n .map((_, i) => get_edge_piece(state, i));\n let ap = Array(12)\n .fill()\n .map((_, i) =>\n centreA_piece_facelets.indexOf(move[centreA_piece_facelets[i]]),\n );\n let bp = Array(12)\n .fill()\n .map((_, i) =>\n centreB_piece_facelets.indexOf(move[centreB_piece_facelets[i]]),\n );\n return { cp: cp, ep: ep, ap: ap, bp: bp };\n}\n\nlet moves = [\n move_U,\n move_L,\n move_F,\n move_R,\n move_Uw,\n move_Lw,\n move_Fw,\n move_Rw,\n];\nlet move_names = [\"U\", \"L\", \"F\", \"R\", \"u\", \"l\", \"f\", \"r\"];\n\nlet move_permutations = moves.map(convert_move_to_permutations);\n\n/*\nlet commute_table = (function () {\n\tlet n = moves.length;\n\tlet t = Array(n);\n\tfor (let i = 0; i < n; i++)\n\t{\n\t\tt[i] = Array(n);\n\t\tfor (let j = 0; j < n; j++)\n\t\t{\n\t\t\tlet a = compose(moves[i], moves[j]);\n\t\t\tlet b = compose(moves[j], moves[i]);\n\t\t\tt[i][j] = (a.join(' ') === b.join(' '));\n\t\t}\n\t}\n\treturn t;\n})();\n*/\n\n// generate a random state with the BR-BL corner solved\nfunction random_state(randomUintBelow) {\n let facelets = Array(72);\n let cp = random_even_permutation(5, randomUintBelow);\n cp.push(5);\n let co = Array(4)\n .fill()\n .map((_) => randomUintBelow(2));\n co.push(co.reduce((x, y) => x ^ y));\n co.push(0);\n for (let i = 0; i < 6; i++) {\n set_corner_piece(facelets, i, cp[i], co[i]);\n }\n\n let ep = random_even_permutation(12, randomUintBelow);\n for (let i = 0; i < 12; i++) {\n set_edge_piece(facelets, i, ep[i]);\n }\n\n let a = random_permutation(12, randomUintBelow).map((x) => (x / 3) | 0);\n let b = random_permutation(12, randomUintBelow).map((x) => 4 + ((x / 3) | 0));\n for (let i = 0; i < 12; i++) {\n facelets[centreA_piece_facelets[i]] = a[i];\n facelets[centreB_piece_facelets[i]] = b[i];\n }\n return facelets;\n}\n\nfunction stringify_move_sequence(move_sequence, no_wide = false) {\n if (no_wide) {\n const U = 0,\n L = 1,\n F = 2,\n R = 3,\n D = 4,\n BR = 5,\n B = 6,\n BL = 7;\n move_sequence = move_sequence.map((x) => x.slice());\n let ordering = [U, L, F, R, D, BR, B, BL];\n let rotations = [\n [U, R, BR, B, D, BL, L, F],\n [BL, L, U, B, R, BR, D, F],\n [BL, D, F, L, R, U, B, BR],\n [F, D, BR, R, B, U, L, BL],\n ];\n rotations = rotations.concat(rotations.map((p) => invert_permutation(p)));\n for (let i = 0; i < move_sequence.length; i++) {\n if (move_sequence[i][0] < 4) {\n // it's already a single-layer turn\n move_sequence[i][0] = ordering[move_sequence[i][0]];\n } else {\n // it's a double-layer turn and we need to Do Stuff\n let m = ordering[move_sequence[i][0]];\n let r = move_sequence[i][1];\n move_sequence[i][0] = m;\n ordering = compose(r === 1 ? rotations[m ^ 4] : rotations[m], ordering);\n //console.log(ordering);\n }\n }\n }\n let names = no_wide ? \"U L F R D BR B BL\".split(\" \") : move_names; // WARNING: this ordering is _not_ the same as the facelet colours\n let suffixes = [\"0\", \"\", \"'\"];\n let s = move_sequence.map(([m, r]) => 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(state, moves[m]);\n }\n }\n return state;\n}\n\nfunction invert_move_sequence(move_sequence) {\n return move_sequence.map(([m, r]) => [m, (3 - r) % 3]).reverse();\n}\n\nfunction simplify_move_sequence(move_sequence, make_noise = false) {\n if (move_sequence.length === 0) {\n return [];\n }\n let simplified = [];\n let last_move = undefined;\n for (let [m, r] of move_sequence) {\n if (last_move && last_move[0] === m) {\n // turn of the same face\n last_move[1] += r;\n last_move[1] %= 3;\n if (last_move[1] === 0) {\n simplified.pop();\n last_move =\n simplified.length === 0\n ? undefined\n : simplified[simplified.length - 1];\n }\n } else if (\n simplified.length >= 2 &&\n (last_move[0] ^ m) === 4 &&\n simplified[simplified.length - 2][0] === m\n ) {\n // turn of the opposite face\n simplified[simplified.length - 2][1] += r;\n simplified[simplified.length - 2][1] %= 3;\n if (simplified[simplified.length - 2][1] === 0) {\n simplified.splice(simplified.length - 2, 1);\n }\n } else {\n last_move = [m, r];\n simplified.push(last_move);\n }\n }\n if (make_noise && \"\" + move_sequence !== \"\" + simplified) {\n console.log(`simplified ${move_sequence} to ${simplified}`);\n }\n return simplified;\n}\n\nfunction generate_random_state_scramble(randomUintBelow) {\n return stringify_move_sequence(\n invert_move_sequence(solve(random_state(randomUintBelow), true)),\n true,\n );\n}\n\nfunction generate_multiple_random_state_scrambles(n) {\n let scrambles = [];\n for (let i = 0; i < n; i++) {\n scrambles[i] = generate_random_state_scramble();\n }\n return scrambles;\n}\n\n/*\nActual solver logic goes here.\n\nUnlike most of the earlier random-state scramblers I've written before, this one comes with a slight\ncomplication: the FTO's states are _not_ a group. In other words, we can't skip inverting the\nsolution to get the scramble. Not a big deal.\n\nWe assume the D-BR-B-BL corner is solved. (If not, rotate puzzle accordingly.)\n\nPhase 1: Solve a small pyramid around the D-BR-B-BL corner.\n- centres #6, #9 in orbit A and #6, #9 in orbit B\n- edges #8, #9, #10, #11\nReduction: (132/9)**2 * (12*11*10*9) = 2555520\n\nPhase 2: Reduce to LU 2-gen.\n- remaining BR, D centres, one each of F, R centres (#5, #7, #8 in each orbit)\n- edges F-R, F-D, R-BR (#5, #6, #7)\n- corner F-BR (#4)\n- corner orientation constraint on the other four corners\nReduction: 120**2 * (8*7*6) * 10 * 4 = 193536000\n\nPhase 3: Finish solve.\n- remaining centres (#0..#4, #10, #11 in each orbit)\n- edges #0..#4\n- corners #0..#3\nReduction: 210**2 * (5!/2) * (4!/2*2) = 63504000\n\n\n*/\n\nfunction generate_mtable_comb_generic(n, k, permutations) {\n let N = C(n, k);\n let nmoves = permutations.length;\n let [itc, cti] = generate_comb_lookup_tables(n, k);\n let mtable = Array(nmoves)\n .fill()\n .map(() => new Uint32Array(N));\n for (let i = 0; i < N; i++) {\n let c = itc[i];\n let arr = Array(n);\n for (let j = 0; j < n; j++) {\n arr[j] = (c >> j) & 1;\n }\n for (let m = 0; m < nmoves; m++) {\n let arr2 = compose(arr, permutations[m]);\n let c2 = arr2.reduce((acc, x, j) => acc | (x << j), 0);\n mtable[m][i] = cti[c2];\n }\n }\n return mtable;\n}\n\nfunction generate_mtable_comb4_generic(n, k0, k1, k2, k3, permutations) {\n let N = C4(n, k0, k1, k2, k3);\n let nmoves = permutations.length;\n let [itc, cti] = generate_comb4_lookup_tables(n, k0, k1, k2, k3);\n let mtable = Array(nmoves)\n .fill()\n .map(() => new Uint32Array(N));\n for (let i = 0; i < N; i++) {\n let c = itc[i];\n let arr = Array(n);\n for (let j = 0; j < n; j++) {\n arr[j] = (c >> (2 * j)) & 3;\n }\n for (let m = 0; m < nmoves; m++) {\n let arr2 = compose(arr, permutations[m]);\n let c2 = arr2.reduce((acc, x, j) => acc | (x << (2 * j)), 0);\n mtable[m][i] = cti[c2];\n }\n }\n return mtable;\n}\n\nfunction generate_mtable_single_generic(permutations) {\n let n = permutations[0].length;\n let nmoves = permutations.length;\n let mtable = Array(nmoves)\n .fill()\n .map(() => new Uint32Array(n));\n for (let i = 0; i < n; i++) {\n for (let m = 0; m < nmoves; m++) {\n mtable[m][permutations[m][i]] = i;\n // we're using right-action convention here,\n // so we use the *inverse* of the permutation\n // to track how pieces move.\n }\n }\n return mtable;\n}\n\nfunction combine_mtables(mtable0, mtable1) {\n let n0 = mtable0[0].length;\n let n1 = mtable1[0].length;\n let nmoves = mtable0.length;\n let combined = Array(nmoves)\n .fill()\n .map(() => new Uint32Array(n0 * n1));\n for (let j = 0; j < n1; j++) {\n for (let i = 0; i < n0; i++) {\n let index = i + n0 * j;\n for (let m = 0; m < nmoves; m++) {\n combined[m][index] = mtable0[m][i] + n0 * mtable1[m][j];\n }\n }\n }\n return combined;\n}\n\nfunction trim_unreachable(mtable, origin) {\n // input: mtable\n // output: [trimmed mtable, map]\n let nmoves = mtable.length;\n let n = mtable[0].length;\n let reachable = new Uint8Array(n);\n reachable[origin] = 1;\n let done = false;\n while (!done) {\n done = true;\n for (let i = 0; i < n; i++) {\n if (!reachable[i]) {\n continue;\n }\n for (let m = 0; m < nmoves; m++) {\n if (!reachable[mtable[m][i]]) {\n reachable[mtable[m][i]] = 1;\n done = false;\n }\n }\n }\n }\n let map = new Int32Array(n).fill(-1);\n for (let i = 0, counter = 0; i < n; i++) {\n if (!reachable[i]) {\n continue;\n }\n map[i] = counter;\n counter++;\n }\n return [mtable.map((entry) => reduce_permutation(entry, reachable)), map];\n}\n\nfunction reduce_to_quotient(mtable, origins) {\n let nmoves = mtable.length;\n let n = mtable[0].length;\n let quotient_map = new Int32Array(n).fill(-1);\n origins.forEach((x) => {\n quotient_map[x] = 0;\n });\n let preimages = [origins];\n for (let image = 0; image < preimages.length; image++) {\n let equiv_class = preimages[image];\n for (let m = 0; m < nmoves; m++) {\n let j = mtable[m][equiv_class[0]];\n if (quotient_map[j] !== -1) {\n continue;\n } // already looked at those nodes\n let new_equiv_class = equiv_class.map((x) => mtable[m][x]);\n let new_image = preimages.length;\n preimages.push(new_equiv_class);\n for (let x of new_equiv_class) {\n if (quotient_map[x] !== -1) {\n throw \"quotienting failed\";\n }\n quotient_map[x] = new_image;\n }\n }\n }\n let n_quot = preimages.length;\n let mtable_quot = Array(nmoves)\n .fill()\n .map(() => new Int32Array(n_quot));\n for (let m = 0; m < nmoves; m++) {\n for (let i = 0; i < n_quot; i++) {\n mtable_quot[m][i] = quotient_map[mtable[m][preimages[i][0]]];\n }\n }\n return [mtable_quot, quotient_map];\n}\n\nfunction generate_mirrored_coordinate_table(mtable, a, b) {\n let n = mtable[0].length;\n let nmoves = mtable.length;\n let mirror_map = new Int32Array(n).fill(-1);\n mirror_map[a] = b;\n mirror_map[b] = a;\n let done = false;\n while (!done) {\n done = true;\n for (let i = 0; i < n; i++) {\n if (mirror_map[i] === -1) {\n continue;\n }\n let I = mirror_map[i];\n for (let m = 0; m < nmoves; m++) {\n let M = m ^ 1;\n let new_i = mtable[m][i];\n let new_I = mtable[M][mtable[M][I]];\n // convert moves according to this table:\n // U -> L2\n // L -> U2\n // F -> R2\n // R -> F2\n if (mirror_map[new_i] === -1) {\n done = false;\n mirror_map[new_i] = new_I;\n mirror_map[new_I] = new_i;\n } else if (mirror_map[new_i] !== new_I) {\n throw \"mirroring failed - is the initial map correct?\";\n }\n }\n }\n }\n return mirror_map;\n}\n\nfunction bfs(mtable, goal_states) {\n let N = mtable[0].length;\n let nmoves = mtable.length;\n let ptable = new Int8Array(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[move_index][state];\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[move_index][new_state];\n }\n }\n }\n depth++;\n }\n return ptable;\n}\n\nfunction* ida_solve_gen(indices, mtables, ptables, moves_left, commute) {\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 while (bound <= moves_left) {\n //console.log(`searching depth ${bound}`);\n yield* ida_search_gen(indices, mtables, ptables, bound, -1, commute);\n bound++;\n }\n}\n\nfunction* ida_search_gen(indices, mtables, ptables, bound, last, commute) {\n let ncoords = indices.length;\n let nmoves = mtables[0].length;\n let heuristic = 0;\n for (let i = 0; i < ncoords; i++)\n heuristic = Math.max(heuristic, ptables[i][indices[i]]);\n if (heuristic > bound) return;\n if (bound === 0) {\n yield [];\n return;\n }\n if (heuristic === 0 && bound === 1) return;\n for (let m = 0; m < nmoves; m++) {\n if (m === last) continue;\n if (m < last && commute[m][last]) continue;\n let new_indices = indices.slice();\n for (let c = 0; c < ncoords; c++)\n new_indices[c] = mtables[c][m][indices[c]];\n let r = 1;\n while (indices.some((_, i) => indices[i] != new_indices[i])) {\n let subpath_gen = ida_search_gen(\n new_indices,\n mtables,\n ptables,\n bound - 1,\n m,\n commute,\n );\n while (true) {\n let { value: subpath, done } = subpath_gen.next();\n if (done) break;\n yield [[m, r]].concat(subpath);\n }\n for (let c = 0; c < ncoords; c++) {\n new_indices[c] = mtables[c][m][new_indices[c]];\n }\n r++;\n }\n }\n}\n\nfunction solve(facelets, readable = false) {\n let phase1sol = solve_phase1_gen(facelets).next().value;\n let facelets2 = apply_move_sequence(facelets, phase1sol);\n let phase2sol = (\n readable ? solve_phase2_and_phase3_readable : solve_phase2_and_phase3_fast\n )(facelets2);\n let solution = simplify_move_sequence(phase1sol.concat(phase2sol), false);\n if (\n apply_move_sequence(facelets, solution).join(\"\") !== solved_state.join(\"\")\n ) {\n console.log(\"solving failed!\");\n console.log(facelets);\n console.log(phase1sol);\n console.log(facelets2);\n console.log(phase2sol);\n console.log(apply_move_sequence(facelets, solution));\n }\n return solution;\n}\n\nlet cached_mtables = {};\nlet cached_ptables = {};\n\n/* Phase 1 stuff */\n\nlet phase1_centre_colour_map = [0, 0, 2, 3, 0, 0, 2, 3];\nfunction index_phase1(facelets) {\n let [itc, cti] = generate_comb4_lookup_tables(12, 6, 0, 3, 3);\n let ep = Array(12)\n .fill()\n .map((_, i) => get_edge_piece(facelets, i));\n let edge_coord =\n ep.indexOf(8) +\n 12 * ep.indexOf(9) +\n 12 ** 2 * ep.indexOf(10) +\n 12 ** 3 * ep.indexOf(11);\n let [a_coord, b_coord] = [centreA_piece_facelets, centreB_piece_facelets].map(\n (facelet_indices) => {\n let arr = facelet_indices.map(\n (x) => phase1_centre_colour_map[facelets[x]],\n );\n return cti[arr.reduce((acc, x, j) => acc | (x << (2 * j)), 0)];\n },\n );\n return [edge_coord, a_coord, b_coord];\n}\n\nfunction generate_phase1_edge_mtable() {\n if (cached_mtables.phase1_edge) {\n return cached_mtables.phase1_edge;\n }\n let m1 = generate_mtable_single_generic(move_permutations.map((x) => x.ep));\n let m2 = combine_mtables(m1, m1);\n let m4 = combine_mtables(m2, m2);\n return (cached_mtables.phase1_edge = m4);\n}\n\nfunction generate_phase1_edge_ptable() {\n if (cached_ptables.phase1_edge) {\n return cached_ptables.phase1_edge;\n }\n return (cached_ptables.phase1_edge = bfs(generate_phase1_edge_mtable(), [\n 8 + 12 * 9 + 12 ** 2 * 10 + 12 ** 3 * 11,\n ]));\n}\n\nfunction generate_phase1_centreA_mtable() {\n if (cached_mtables.phase1_centreA) {\n return cached_mtables.phase1_centreA;\n }\n return (cached_mtables.phase1_centreA = generate_mtable_comb4_generic(\n 12,\n 6,\n 0,\n 3,\n 3,\n move_permutations.map((x) => x.ap),\n ));\n}\n\nfunction generate_phase1_centreB_mtable() {\n if (cached_mtables.phase1_centreB) {\n return cached_mtables.phase1_centreB;\n }\n return (cached_mtables.phase1_centreB = generate_mtable_comb4_generic(\n 12,\n 6,\n 0,\n 3,\n 3,\n move_permutations.map((x) => x.bp),\n ));\n}\n\nfunction generate_phase1_centre_ptable() {\n // the pruning tables for the two centre orbits are identical due to the specific facelet\n // labelling we're using.\n if (cached_ptables.phase1_centre) {\n return cached_ptables.phase1_centre;\n }\n let [itc, cti] = generate_comb4_lookup_tables(12, 6, 0, 3, 3);\n let goal_states = itc\n .filter((x) => {\n let x6 = (x >> 12) & 3;\n let x9 = (x >> 18) & 3;\n return x6 === 2 && x9 === 3;\n })\n .map((x) => cti[x]);\n return (cached_ptables.phase1_centre = bfs(\n generate_phase1_centreB_mtable(),\n goal_states,\n ));\n}\n\nfunction* solve_phase1_gen(facelets) {\n let mtables = [\n generate_phase1_edge_mtable(),\n generate_phase1_centreA_mtable(),\n generate_phase1_centreB_mtable(),\n ];\n let ptables = [\n generate_phase1_edge_ptable(),\n generate_phase1_centre_ptable(),\n generate_phase1_centre_ptable(),\n ];\n yield* phase1_ida_solve_gen(index_phase1(facelets), mtables, ptables, 15);\n}\n\nfunction* phase1_ida_solve_gen(indices, mtables, ptables, moves_left) {\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 while (bound <= moves_left) {\n //console.log(`searching depth ${bound}`);\n yield* phase1_ida_search_gen(indices, mtables, ptables, bound, -1);\n bound++;\n }\n}\n\nfunction* phase1_ida_search_gen(indices, mtables, ptables, bound, last) {\n let ncoords = 3; //indices.length;\n let nmoves = 8; //mtables[0].length;\n let heuristic = Math.max(\n ptables[0][indices[0]],\n ptables[1][indices[1]],\n ptables[2][indices[2]],\n ); //0;\n //for (let i = 0; i < ncoords; i++) heuristic = Math.max(heuristic, ptables[i][indices[i]]);\n if (heuristic > bound) return;\n if (bound === 0) {\n yield [];\n return;\n }\n if (heuristic === 0 && bound === 1) return;\n for (let m = 0; m < nmoves; m++) {\n if (m === last) continue;\n if (m === last - 4) continue;\n let new_indices = [];\n new_indices[0] = mtables[0][m][indices[0]];\n new_indices[1] = mtables[1][m][indices[1]];\n new_indices[2] = mtables[2][m][indices[2]];\n let r = 1;\n while (indices.some((_, i) => indices[i] != new_indices[i])) {\n let subpath_gen = phase1_ida_search_gen(\n new_indices,\n mtables,\n ptables,\n bound - 1,\n m,\n );\n while (true) {\n let { value: subpath, done } = subpath_gen.next();\n if (done) break;\n yield [[m, r]].concat(subpath);\n }\n new_indices[0] = mtables[0][m][new_indices[0]];\n new_indices[1] = mtables[1][m][new_indices[1]];\n new_indices[2] = mtables[2][m][new_indices[2]];\n r++;\n }\n }\n}\n\n/* Phase 2 stuff */\n\nlet phase2_centre_colour_map = [0, 1, 2, 0, 0, 1, 2, 0];\n// we don't care about swapping U and BL centres in phase 2\n\nlet phase2_centre_indices = [0, 1, 2, 3, 4, 5, 7, 8, 10, 11]; // 6 and 9 are already solved in phase 1\nlet phase2_keep = [\n true,\n true,\n true,\n true,\n true,\n true,\n false,\n true,\n true,\n false,\n true,\n true,\n];\nlet phase2_corner_keep = [\n true,\n true,\n true,\n true,\n true,\n false,\n true,\n true,\n true,\n true,\n true,\n false,\n];\n\nfunction index_phase2(facelets) {\n let [itc, cti] = generate_comb4_lookup_tables(10, 5, 3, 2, 0);\n let ep = Array(8)\n .fill()\n .map((_, i) => get_edge_piece(facelets, i));\n let edge_coord = ep.indexOf(5) + 8 * ep.indexOf(6) + 8 ** 2 * ep.indexOf(7);\n let corners = Array(5)\n .fill()\n .map((_, i) => get_corner_piece(facelets, i));\n let cp_inverse_full = invert_permutation(\n corners\n .map(([p, o]) => p + 5 * o)\n .concat(corners.map(([p, o]) => p + 5 * (o ^ 1))),\n );\n let cp_inverse = cp_inverse_full.slice(0, 5).map((x) => x % 5);\n let co_inverse = cp_inverse_full.slice(0, 5).map((x) => (x / 5) | 0);\n let corner_coord =\n evenpermutation_to_index(cp_inverse) * 8 +\n (co_inverse[0] ^ co_inverse[2]) +\n 2 * (co_inverse[0] ^ co_inverse[3]) +\n 4 * co_inverse[4];\n let [a_coord, b_coord] = [centreA_piece_facelets, centreB_piece_facelets].map(\n (facelet_indices) => {\n let arr = compose(facelet_indices, phase2_centre_indices).map(\n (x) => phase2_centre_colour_map[facelets[x]],\n );\n return cti[arr.reduce((acc, x, j) => acc | (x << (2 * j)), 0)];\n },\n );\n // we don't need these move tables, but we do need the reduction maps\n // that are computed with these (and stored in global vars, yikes)\n generate_phase2_edge_mtable();\n generate_phase2_corner_mtable_compact();\n return [\n a_coord,\n b_coord,\n phase2_corner_reduction_map[corner_coord] +\n 40 * phase2_edge_reduction_map[edge_coord],\n ];\n}\n\nfunction* solve_phase2_gen(facelets) {\n yield* phase2_ida_solve_gen(index_phase2(facelets), 30);\n}\n\nfunction solve_phase2(facelets) {\n return solve_phase2_gen(facelets).next().value;\n}\n\nfunction generate_phase2_centre_mtables() {\n if (cached_mtables.phase2_centre) {\n return cached_mtables.phase2_centre;\n }\n let a = generate_mtable_comb4_generic(\n 10,\n 5,\n 3,\n 2,\n 0,\n move_permutations\n .slice(0, 4)\n .map((x) => reduce_permutation(x.ap, phase2_keep)),\n );\n let b = generate_mtable_comb4_generic(\n 10,\n 5,\n 3,\n 2,\n 0,\n move_permutations\n .slice(0, 4)\n .map((x) => reduce_permutation(x.bp, phase2_keep)),\n );\n return (cached_mtables.phase2_centre = [a, b]);\n}\n\nlet phase2_edge_reduction_map;\nfunction generate_phase2_edge_mtable() {\n if (cached_mtables.phase2_edge) {\n return cached_mtables.phase2_edge;\n }\n let e = generate_mtable_single_generic(\n move_permutations.slice(0, 4).map((x) => x.ep.slice(0, 8)),\n );\n let eee = combine_mtables(e, combine_mtables(e, e));\n let eee_trimmed;\n [eee_trimmed, phase2_edge_reduction_map] = trim_unreachable(eee, 0o765);\n return (cached_mtables.phase2_edge = eee_trimmed);\n}\n\nfunction generate_phase2_corner_mtable() {\n if (cached_mtables.phase2_corner) {\n return cached_mtables.phase2_corner;\n }\n const HALFFACT5 = factorial(5) / 2; // = 60\n const N = HALFFACT5 * 8; // = 480\n const keep = [\n true,\n true,\n true,\n true,\n true,\n false,\n true,\n true,\n true,\n true,\n true,\n false,\n ];\n // ignore the sixth and twelfth entries, which encode corner #5's state\n let mtable = Array(4)\n .fill()\n .map(() => new Uint32Array(N));\n let permutations = move_permutations\n .slice(0, 4)\n .map((x) => invert_permutation(reduce_permutation(x.cp, keep)));\n // using the left-action convention here, so take inverses\n for (let i = 0; i < N; i++) {\n let p = index_to_evenpermutation(i >> 3, 5);\n let o = [0, 0, i & 1, (i >> 1) & 1, (i >> 2) & 1];\n o[1] = o[2] ^ o[3] ^ o[4];\n let cp = Array(10);\n for (let j = 0; j < 5; j++) {\n cp[j] = p[j] + 5 * o[j];\n cp[j + 5] = p[j] + 5 * (o[j] ^ 1);\n }\n for (let m = 0; m < 4; m++) {\n let cp2 = compose(permutations[m], cp);\n let p2 = cp2.slice(0, 5).map((x) => x % 5);\n let o2 = cp2.slice(0, 5).map((x) => (x / 5) | 0);\n let orientation_index = (o2[0] ^ o2[2]) + 2 * (o2[0] ^ o2[3]) + 4 * o2[4];\n mtable[m][i] = evenpermutation_to_index(p2) * 8 + orientation_index;\n }\n }\n return (cached_mtables.phase2_corner = mtable);\n /*\n\tfar as I can tell, there's no clean way to index the cosets of the corner subgroup in this\n\tphase. so we just do it the dirty way (see `reduce_to_quotient`).\n\t*/\n}\n\nlet phase2_corner_reduction_map;\nfunction generate_phase2_corner_mtable_compact() {\n if (cached_mtables.phase2_corner_compact) {\n return cached_mtables.phase2_corner_compact;\n }\n [cached_mtables.phase2_corner_compact, phase2_corner_reduction_map] =\n reduce_to_quotient(\n generate_phase2_corner_mtable(),\n phase2_corner_goal_states(),\n );\n return cached_mtables.phase2_corner_compact;\n}\n\nfunction generate_phase2_ce_mtable() {\n if (cached_mtables.phase2_ce) {\n return cached_mtables.phase2_ce;\n }\n let c = generate_phase2_corner_mtable_compact();\n let e = generate_phase2_edge_mtable();\n return (cached_mtables.phase2_ce = combine_mtables(c, e));\n}\n\nlet phase2_ce_mirror_map;\nfunction generate_phase2_ce_mirror_map() {\n if (phase2_ce_mirror_map) {\n return phase2_ce_mirror_map;\n }\n const ce_solved = index_phase2(solved_state)[2];\n return (phase2_ce_mirror_map = generate_mirrored_coordinate_table(\n generate_phase2_ce_mtable(),\n ce_solved,\n ce_solved,\n ));\n}\n\nfunction phase2_centre_goal_states() {\n let [itc, cti] = generate_comb4_lookup_tables(10, 5, 3, 2, 0);\n return itc.filter((x) => ((x >> 10) & 63) === 41).map((x) => cti[x]);\n /*\n\tthe combination tracks the centre pieces at indices\n\t0, 1, 2, 3, 4, 5, 7, 8, 10, 11\n\tin little endian order.\n\tright-shifting 10 bits changes this to\n\t5, 7, 8, 10, 11\n\tand masking by 63 keeps only the three least significant digits\n\t5, 7, 8\n\twhich are exactly the pieces we're solving in this phase.\n\t1 + 4 * 2 + 4**2 * 2 = 41\n\tWARNING: this needs to be adjusted if the centre indexing is changed\n\t(also, this returns a Uint32Array, but nothing we do here can possibly cause overflow so\n\tthat's not a problem)\n\t*/\n}\n\nfunction phase2_corner_goal_states() {\n let mtable = generate_phase2_corner_mtable();\n let N = mtable[0].length;\n let flags = Array(N).fill(false);\n flags[0] = true; /* index 0 is the solved state */\n let done = false;\n while (!done) {\n done = true;\n for (let i = 0; i < N; i++) {\n if (flags[i]) {\n if (!flags[mtable[0][i]]) {\n done = false;\n flags[mtable[0][i]] = true;\n }\n if (!flags[mtable[1][i]]) {\n done = false;\n flags[mtable[1][i]] = true;\n }\n }\n }\n }\n return flags.map((_, i) => i).filter((i) => flags[i]);\n}\n\nfunction generate_phase2_ace_ptable() {\n if (cached_ptables.phase2_ace) {\n return cached_ptables.phase2_ace;\n }\n const [mtable_a, mtable_b] = generate_phase2_centre_mtables();\n const mtable_ce = generate_phase2_ce_mtable();\n const Na = 2520;\n const Nce = 40 * 336;\n const N = Na * Nce; // = 33868800\n const ce_solved = index_phase2(solved_state)[2];\n const max_depth = 9;\n let ptable = new Int8Array(N).fill(max_depth);\n for (let a_solved of phase2_centre_goal_states()) {\n ptable[a_solved + Na * ce_solved] = 0;\n }\n for (let depth = 0; depth < max_depth - 1; depth++) {\n for (\n let state = ptable.indexOf(depth);\n state !== -1;\n state = ptable.indexOf(depth, state + 1)\n ) {\n let a = state % Na,\n ce = (state / Na) | 0;\n for (let move_index = 0; move_index < 4; move_index++) {\n let new_a = mtable_a[move_index][a];\n let new_ce = mtable_ce[move_index][ce];\n let new_state = new_a + Na * new_ce;\n if (ptable[new_state] === max_depth) {\n ptable[new_state] = depth + 1;\n }\n new_a = mtable_a[move_index][new_a];\n new_ce = mtable_ce[move_index][new_ce];\n new_state = new_a + Na * new_ce;\n if (ptable[new_state] === max_depth) {\n ptable[new_state] = depth + 1;\n }\n }\n }\n }\n // don't bother filling in the table for depth >=10; this saves a substantial amount of time\n // on startup at a slight cost of pruning effectiveness\n return (cached_ptables.phase2_ace = ptable);\n}\n\nfunction* phase2_ida_solve_gen(indices, moves_left) {\n let [mtable_a, mtable_b] = generate_phase2_centre_mtables();\n let mtable_ce = generate_phase2_ce_mtable();\n let ptable_ace = generate_phase2_ace_ptable();\n let mirror_map = generate_phase2_ce_mirror_map();\n let [a, b, ce] = indices;\n let ce_mirror = mirror_map[ce];\n let bound = Math.max(\n ptable_ace[a + 2520 * ce],\n ptable_ace[b + 2520 * ce_mirror],\n );\n while (bound <= moves_left) {\n //console.log(`searching depth ${bound}`);\n yield* phase2_ida_search_gen(\n a,\n b,\n ce,\n mtable_a,\n mtable_b,\n mtable_ce,\n ptable_ace,\n mirror_map,\n bound,\n -1,\n );\n bound++;\n }\n}\n\nfunction* phase2_ida_search_gen(\n a,\n b,\n ce,\n mtable_a,\n mtable_b,\n mtable_ce,\n ptable_ace,\n mirror_map,\n bound,\n last,\n) {\n let h = Math.max(\n ptable_ace[a + 2520 * ce],\n ptable_ace[b + 2520 * mirror_map[ce]],\n );\n if (h > bound) {\n return;\n }\n if (bound === 0) {\n yield [];\n return;\n } else if (h === 0) {\n return;\n }\n for (let m = 0; m < 4; m++) {\n if (m === last) continue;\n let new_a = a,\n new_b = b,\n new_ce = ce;\n for (let r = 1; r <= 2; r++) {\n new_a = mtable_a[m][new_a];\n new_b = mtable_b[m][new_b];\n new_ce = mtable_ce[m][new_ce];\n let subpath_gen = phase2_ida_search_gen(\n new_a,\n new_b,\n new_ce,\n mtable_a,\n mtable_b,\n mtable_ce,\n ptable_ace,\n mirror_map,\n bound - 1,\n m,\n );\n while (true) {\n let { value: subpath, done } = subpath_gen.next();\n if (done) break;\n yield [[m, r]].concat(subpath);\n }\n }\n }\n}\n\n/* Phase 3 mostly-2-gen stuff */\n\nlet phase3_2gen_centre_indices = [0, 1, 2, 3, 4, 10, 11];\n\nlet phase3_2gen_keep = [\n true,\n true,\n true,\n true,\n true,\n false,\n false,\n false,\n false,\n false,\n true,\n true,\n];\n\nlet phase3_2gen_move_seqs = [\n [[0, 1]], // U\n [[1, 1]], // L\n\n // F U R U' R' F'\n [\n [2, 1],\n [0, 1],\n [3, 1],\n [0, 2],\n [3, 2],\n [2, 2],\n ],\n [\n [3, 2],\n [1, 2],\n [2, 2],\n [1, 1],\n [2, 1],\n [3, 1],\n ],\n [\n [6, 1],\n [0, 1],\n [3, 1],\n [0, 2],\n [3, 2],\n [6, 2],\n ],\n [\n [7, 2],\n [1, 2],\n [2, 2],\n [1, 1],\n [2, 1],\n [7, 1],\n ],\n\n // F U F' U F U F'\n [\n [2, 1],\n [0, 1],\n [2, 2],\n [0, 1],\n [2, 1],\n [0, 1],\n [2, 2],\n ],\n [\n [3, 2],\n [1, 1],\n [3, 1],\n [1, 1],\n [3, 2],\n [1, 1],\n [3, 1],\n ],\n\n // F R F' L' U' F R F'\n [\n [2, 1],\n [3, 1],\n [2, 2],\n [1, 2],\n [0, 2],\n [2, 1],\n [3, 1],\n [2, 2],\n ],\n [\n [3, 2],\n [2, 2],\n [3, 1],\n [0, 1],\n [1, 1],\n [3, 2],\n [2, 2],\n [3, 1],\n ],\n [\n [6, 1],\n [0, 1],\n [6, 2],\n [0, 2],\n [1, 2],\n [6, 1],\n [0, 1],\n [6, 2],\n ],\n [\n [7, 2],\n [1, 2],\n [7, 1],\n [1, 1],\n [0, 1],\n [7, 2],\n [1, 2],\n [7, 1],\n ],\n\n // F R' F' R U F' L F\n [\n [2, 1],\n [3, 2],\n [2, 2],\n [3, 1],\n [0, 1],\n [2, 2],\n [1, 1],\n [2, 1],\n ],\n [\n [3, 2],\n [2, 1],\n [3, 1],\n [2, 2],\n [1, 2],\n [3, 1],\n [0, 2],\n [3, 2],\n ],\n [\n [6, 1],\n [0, 2],\n [6, 2],\n [7, 1],\n [6, 1],\n [1, 2],\n [7, 1],\n [6, 1],\n ],\n [\n [7, 2],\n [1, 1],\n [7, 1],\n [6, 2],\n [7, 2],\n [0, 1],\n [6, 2],\n [7, 2],\n ],\n\n // F' L' F' R' F' R' U' R'\n [\n [2, 2],\n [1, 2],\n [2, 2],\n [3, 2],\n [2, 2],\n [3, 2],\n [0, 2],\n [3, 2],\n ],\n [\n [6, 2],\n [7, 2],\n [1, 2],\n [0, 2],\n [1, 2],\n [0, 2],\n [6, 2],\n [7, 2],\n ],\n /*\n[[2,1], [0,2], [2,2], [0,2], [2,1], [3,1], [0,2], [3,2], [2,2]], // F U' F' U' F R U' R' F'\n[[3,2], [1,1], [3,1], [1,1], [3,2], [2,2], [1,1], [2,1], [3,1]], // R' L R L R' F' L F R\n[[6,1], [3,2], [6,2], [1,2], [6,1], [0,1], [3,2], [0,2], [6,2]], // f R' f' L' f U R' U' f'\n[[7,2], [2,1], [7,1], [0,1], [7,2], [1,2], [2,1], [1,1], [7,1]], // r' F r U r' L' F L r\n[[2,1], [0,1], [3,1], [0,2], [3,2], [0,1], [3,1], [0,2], [3,2], [2,2]], // F (U R U' R')2 F'\n[[3,2], [1,2], [2,2], [1,1], [2,1], [1,2], [2,2], [1,1], [2,1], [3,1]], // R' (L' F' L F)2 R\n[[6,1], [0,1], [3,1], [0,2], [3,2], [0,1], [3,1], [0,2], [3,2], [6,2]], // f (U R U' R')2 f'\n[[7,2], [1,2], [2,2], [1,1], [2,1], [1,2], [2,2], [1,1], [2,1], [7,1]], // r' (L' F' L F)2 r\n*/\n];\nphase3_2gen_move_seqs = phase3_2gen_move_seqs.concat(\n phase3_2gen_move_seqs.map((seq) => invert_move_sequence(seq)),\n);\nlet phase3_2gen_nmoves = phase3_2gen_move_seqs.length; // = 36\n/*\nThe moves we're using for this phase:\nU\nL\nF U R U' R' F'\nR' L' F' L F R\nf U R U' R' f'\nr' L' F' L F r\nF U F' U F U F' (= F' U F U F' U F = r' F r U r' F r = r l U' l F l r')\nR' L R L R' L R (= R L R' L R L R' = f R f' L f R f' = f' u R u L' u f)\n\nF R F' L' U' F R F'\nR' F' R U L R' F' R\nf U f' U' L' f U f'\nr' L' r L U r' L' r\n\nF R' F' R U F' L F\nR' F R F' L' R U' R'\nf U' f' r f L' r f\nr' L r f' r' U f' r'\n\nF' L' F' R' F' R' U' R'\nf' r' L' U' L' U' f' r'\n\nand the inverses of the above\n\nThese are the atomic 4-gen move sequences of length <= 8 where the induced permutations lie in the\n<U,L> group (verified with GAP, barring transcription errors).\n\nTemporarily going out of LU 2-gen can sometimes save _many_ moves, e.g. the F R U R' U' F' scramble\nobviously has a 6-move 4-gen solution (F U R U' R' F'), but the optimal 2-gen solution is 24 moves:\nU L' U L' U' L' U' L U' L U L' U L' U L U L' U' L U' L U L'.\n*/\n\nlet phase3_2gen_facelet_permutations = phase3_2gen_move_seqs.map((seq) =>\n apply_move_sequence(permutation_from_cycles([], 72), seq),\n);\nlet phase3_2gen_piece_permutations = phase3_2gen_facelet_permutations.map(\n convert_move_to_permutations,\n);\nlet phase3_2gen_move_orders =\n phase3_2gen_facelet_permutations.map(permutation_order);\n\nfunction index_phase3_2gen(facelets) {\n let [itc, cti] = generate_comb4_lookup_tables(7, 3, 2, 0, 2);\n let ep = Array(5)\n .fill()\n .map((_, i) => get_edge_piece(facelets, i));\n let edge_coord = evenpermutation_to_index(ep);\n let corners = Array(4)\n .fill()\n .map((_, i) => get_corner_piece(facelets, i));\n let corner_coord =\n evenpermutation_to_index(corners.map((x) => x[0])) * 2 +\n corners.find((x) => x[0] === 0)[1];\n let [a_coord, b_coord] = [centreA_piece_facelets, centreB_piece_facelets].map(\n (facelet_indices) => {\n let arr = compose(facelet_indices, phase3_2gen_centre_indices).map(\n (x) => facelets[x] % 4,\n );\n return cti[arr.reduce((acc, x, j) => acc | (x << (2 * j)), 0)];\n },\n );\n return [a_coord + 210 * b_coord, corner_coord + 24 * edge_coord];\n}\n\nfunction generate_phase3_2gen_edge_mtable() {\n if (cached_mtables.phase3_2gen_edge) {\n return cached_mtables.phase3_2gen_edge;\n }\n const HALFFACT5 = factorial(5) / 2; // = 60\n let mtable = Array(phase3_2gen_nmoves)\n .fill()\n .map(() => new Uint32Array(HALFFACT5));\n let permutations = phase3_2gen_piece_permutations.map((x) =>\n x.ep.slice(0, 5),\n );\n for (let i = 0; i < HALFFACT5; i++) {\n let p = index_to_evenpermutation(i, 5);\n for (let m = 0; m < phase3_2gen_nmoves; m++) {\n mtable[m][i] = evenpermutation_to_index(compose(p, permutations[m]));\n }\n }\n return (cached_mtables.phase3_2gen_edge = mtable);\n}\n\n// the group of corner states is the binary tetrahedral group 2T, where |2T| = 24\nfunction generate_phase3_2gen_corner_mtable() {\n if (cached_mtables.phase3_2gen_corner) {\n return cached_mtables.phase3_2gen_corner;\n }\n const HALFFACT4 = factorial(4) / 2; // = 12\n const N = HALFFACT4 * 2; // = 24\n const keep = [\n true,\n true,\n true,\n true,\n false,\n false,\n true,\n true,\n true,\n true,\n false,\n false,\n ];\n let mtable = Array(phase3_2gen_nmoves)\n .fill()\n .map(() => new Uint32Array(N));\n let permutations = phase3_2gen_piece_permutations.map((x) =>\n reduce_permutation(x.cp, keep).slice(0, 4),\n );\n for (let i = 0; i < N; i += 2) {\n let p = index_to_evenpermutation(i >> 1, 4);\n let cp = p.concat(p.map((x) => x + 4));\n for (let m = 0; m < phase3_2gen_nmoves; m++) {\n let cp2 = compose(cp, permutations[m]);\n let p2 = cp2.map((x) => x % 4);\n let o2 = cp2.find((x) => x % 4 === 0) >> 2;\n mtable[m][i] = evenpermutation_to_index(p2) * 2 + o2;\n mtable[m][i + 1] = evenpermutation_to_index(p2) * 2 + (o2 ^ 1);\n }\n }\n return (cached_mtables.phase3_2gen_corner = mtable);\n}\n\nfunction generate_phase3_2gen_corneredge_mtable() {\n if (cached_mtables.phase3_2gen_corneredge) {\n return cached_mtables.phase3_2gen_corneredge;\n }\n return (cached_mtables.phase3_2gen_corneredge = combine_mtables(\n generate_phase3_2gen_corner_mtable(),\n generate_phase3_2gen_edge_mtable(),\n ));\n}\n\nfunction generate_phase3_2gen_centre_mtable() {\n if (cached_mtables.phase3_2gen_centre) {\n return cached_mtables.phase3_2gen_centre;\n }\n let mtable_a = generate_mtable_comb4_generic(\n 7,\n 3,\n 2,\n 0,\n 2,\n phase3_2gen_piece_permutations.map((x) =>\n reduce_permutation(x.ap, phase3_2gen_keep),\n ),\n );\n let mtable_b = generate_mtable_comb4_generic(\n 7,\n 3,\n 2,\n 0,\n 2,\n phase3_2gen_piece_permutations.map((x) =>\n reduce_permutation(x.bp, phase3_2gen_keep),\n ),\n );\n cached_mtables.phase3_2gen_centreA = mtable_a;\n cached_mtables.phase3_2gen_centreB = mtable_b;\n return (cached_mtables.phase3_2gen_centre = combine_mtables(\n mtable_a,\n mtable_b,\n ));\n}\n\nlet phase3_2gen_depth_table;\nfunction generate_phase3_2gen_depth_table() {\n if (phase3_2gen_depth_table) {\n return phase3_2gen_depth_table;\n }\n const mtable_ab = generate_phase3_2gen_centre_mtable();\n const mtable_ce = generate_phase3_2gen_corneredge_mtable();\n const Nab = mtable_ab[0].length; // = 44100\n const Nce = mtable_ce[0].length; // = 1440\n const N = Nab * Nce; // = 63504000\n const max_depth = 25; // pre-determined; hard-coding this makes the algorithm a bit faster\n const all_weights = phase3_2gen_move_seqs.map((seq) => seq.length);\n const table = new Int8Array(N).fill(max_depth);\n const solved_indices = index_phase3_2gen(solved_state);\n table[solved_indices[0] + Nab * solved_indices[1]] = 0;\n let depth = 0;\n let done = false;\n while (!done && depth < max_depth - 1) {\n done = true;\n //console.log(`scanning depth ${depth}`);\n let move_indices = Array(phase3_2gen_nmoves)\n .fill()\n .map((x, i) => i)\n .filter((m) => all_weights[m] + depth < max_depth);\n move_indices.sort((m, mm) => all_weights[m] - all_weights[mm]);\n let weights = compose(all_weights, move_indices);\n let mtable_ab_pruned = compose(mtable_ab, move_indices);\n let mtable_ce_pruned = compose(mtable_ce, move_indices);\n let nmoves = move_indices.length;\n //console.log(move_indices);\n for (\n let state = table.indexOf(depth);\n state !== -1;\n state = table.indexOf(depth, state + 1)\n ) {\n let ab = state % Nab,\n ce = (state / Nab) | 0;\n for (let mi = 0; mi < nmoves; mi++) {\n let weight = weights[mi];\n let new_ab = mtable_ab_pruned[mi][ab];\n let new_ce = mtable_ce_pruned[mi][ce];\n let new_state = new_ab + Nab * new_ce;\n if (table[new_state] > depth + weight) {\n done = false;\n table[new_state] = depth + weight;\n }\n }\n }\n depth++;\n }\n return (phase3_2gen_depth_table = table);\n}\n\nlet phase3_2gen_ace_table;\nfunction generate_phase3_2gen_ace_table() {\n if (phase3_2gen_ace_table) {\n return phase3_2gen_ace_table;\n }\n const mtable_ab = generate_phase3_2gen_centre_mtable();\n const mtable_a = cached_mtables.phase3_2gen_centreA;\n const mtable_ce = generate_phase3_2gen_corneredge_mtable();\n const Na = mtable_a[0].length; // = 210\n const Nce = mtable_ce[0].length; // = 1440\n const N = Na * Nce; // = 302400\n const max_depth = 25; // pre-determined; hard-coding this makes the algorithm a bit faster\n const all_weights = phase3_2gen_move_seqs.map((seq) => seq.length);\n const table = new Int8Array(N).fill(max_depth);\n const solved_indices = index_phase3_2gen(solved_state);\n table[(solved_indices[0] % Na) + Na * solved_indices[1]] = 0;\n let depth = 0;\n let done = false;\n while (!done && depth < max_depth - 1) {\n done = true;\n //console.log(`scanning depth ${depth}`);\n let move_indices = Array(phase3_2gen_nmoves)\n .fill()\n .map((x, i) => i)\n .filter((m) => all_weights[m] + depth < max_depth);\n move_indices.sort((m, mm) => all_weights[m] - all_weights[mm]);\n let weights = compose(all_weights, move_indices);\n let mtable_a_pruned = compose(mtable_a, move_indices);\n let mtable_ce_pruned = compose(mtable_ce, move_indices);\n let nmoves = move_indices.length;\n //console.log(move_indices);\n for (\n let state = table.indexOf(depth);\n state !== -1;\n state = table.indexOf(depth, state + 1)\n ) {\n let a = state % Na,\n ce = (state / Na) | 0;\n for (let mi = 0; mi < nmoves; mi++) {\n let weight = weights[mi];\n let new_a = mtable_a_pruned[mi][a];\n let new_ce = mtable_ce_pruned[mi][ce];\n let new_state = new_a + Na * new_ce;\n if (table[new_state] > depth + weight) {\n done = false;\n table[new_state] = depth + weight;\n }\n }\n }\n depth++;\n }\n return (phase3_2gen_ace_table = table);\n}\n\nlet phase3_2gen_ce_mirror_map;\nfunction generate_phase3_2gen_ce_mirror_map() {\n if (phase3_2gen_ce_mirror_map) {\n return phase3_2gen_ce_mirror_map;\n }\n const mtable_ce = generate_phase3_2gen_corneredge_mtable().slice(0, 2);\n const solved_indices = index_phase3_2gen(solved_state);\n return (phase3_2gen_ce_mirror_map = generate_mirrored_coordinate_table(\n mtable_ce,\n solved_indices[1],\n solved_indices[1],\n ));\n}\n\n/*\nfunction solve_phase3_2gen(facelets, indices=index_phase3_2gen(facelets), simplify=true)\n{\n\tlet [ab, ce] = indices;\n\tlet Nab = 44100;\n\tlet mtable_ab = generate_phase3_2gen_centre_mtable();\n\tlet mtable_ce = generate_phase3_2gen_corneredge_mtable();\n\tlet depth_table = generate_phase3_2gen_depth_table();\n\tlet seq = [];\n\twhile (depth_table[ab + Nab*ce] > 0)\n\t{\n\t\tlet distance = depth_table[ab + Nab*ce];\n\t\tfor (let m = 0; m < phase3_2gen_nmoves; m++)\n\t\t{\n\t\t\tlet new_ab = mtable_ab[m][ab];\n\t\t\tlet new_ce = mtable_ce[m][ce];\n\t\t\tlet new_distance = depth_table[new_ab + Nab*new_ce];\n\t\t\tif (new_distance === distance-phase3_2gen_move_seqs[m].length)\n\t\t\t{\n\t\t\t\tseq = seq.concat(phase3_2gen_move_seqs[m]);\n\t\t\t\tab = new_ab;\n\t\t\t\tce = new_ce;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn simplify ? simplify_move_sequence(seq) : seq;\n}\n*/\n\nfunction solve_phase3_2gen(facelets, indices = index_phase3_2gen(facelets)) {\n //const THRESHOLD = 31;\n let [ab, ce] = indices;\n let a = ab % 210,\n b = Math.floor(ab / 210);\n let mtable_ab = generate_phase3_2gen_centre_mtable();\n let mtable_a = cached_mtables.phase3_2gen_centreA;\n let mtable_b = cached_mtables.phase3_2gen_centreB;\n let mtable_ce = generate_phase3_2gen_corneredge_mtable();\n let ace_table = generate_phase3_2gen_ace_table();\n let mirror_map_ce = generate_phase3_2gen_ce_mirror_map();\n let bound = 0;\n while (true) {\n let gen = solve_phase3_2gen_ida(\n a,\n b,\n ce,\n mtable_a,\n mtable_b,\n mtable_ce,\n ace_table,\n mirror_map_ce,\n bound,\n );\n for (let solution of gen) {\n return solution.map((m) => phase3_2gen_move_seqs[m]).flat();\n }\n bound++;\n }\n}\n\nfunction solve_phase3_2gen_readable(\n facelets,\n indices = index_phase3_2gen(facelets),\n) {\n //const THRESHOLD = 31;\n let [ab, ce] = indices;\n let a = ab % 210,\n b = Math.floor(ab / 210);\n let mtable_ab = generate_phase3_2gen_centre_mtable();\n let mtable_a = cached_mtables.phase3_2gen_centreA;\n let mtable_b = cached_mtables.phase3_2gen_centreB;\n let mtable_ce = generate_phase3_2gen_corneredge_mtable();\n //let depth_table = generate_phase3_2gen_depth_table();\n let ace_table = generate_phase3_2gen_ace_table();\n let mirror_map_ce = generate_phase3_2gen_ce_mirror_map();\n let initial = solve_phase3_2gen(facelets).length;\n let best_score = Infinity;\n let best_solution;\n //console.log(`initial: ${initial}`);\n for (let bound = initial; bound <= initial + 0; bound++) {\n let gen = solve_phase3_2gen_ida(\n a,\n b,\n ce,\n mtable_a,\n mtable_b,\n mtable_ce,\n ace_table,\n mirror_map_ce,\n bound,\n );\n for (let solution of gen) {\n let expanded = solution.map((m) => phase3_2gen_move_seqs[m]).flat();\n let simplified = simplify_move_sequence(expanded);\n let score = grade_readability(simplified);\n if (score < best_score) {\n best_score = score;\n best_solution = simplified;\n //console.log(`${score} ${stringify_move_sequence(simplified, true)}`);\n //if (score <= THRESHOLD) {break search;}\n }\n }\n }\n return best_solution;\n}\n\nfunction alternation_penalty(x) {\n return ((x - 1) * (x - 2)) / 2;\n // A B A B A costs 1\n // A B A B A B costs 3\n // A B A B A B A costs 6\n // A B A B A B A B costs 10\n // etc.\n // this should be chosen to be a convex function\n}\n\nfunction grade_readability(seq) {\n let nowide = stringify_move_sequence(seq, true).replace(/'/g, \"\").split(\" \");\n return (\n seq.length +\n alternations(nowide)\n .map(alternation_penalty)\n .reduce((x, y) => x + y, 0)\n );\n}\n\nfunction alternations(seq) {\n // return a list of \"alternating\" run lengths\n // convention:\n // A B does not count\n // A B A counts as length 1\n // A B A B counts as length 2\n // A B A B A counts as length 3\n // etc.\n if (seq.length < 3) {\n return [];\n }\n let n = seq.length;\n let a = [];\n for (let i = 0; i < n - 2; i++) {\n a[i] = seq[i] === seq[i + 2];\n }\n a.push(false);\n let i = -1;\n let runs = [];\n while (i < n - 2) {\n i = a.indexOf(true, i + 1);\n if (i === -1) {\n break;\n }\n let j = a.indexOf(false, i + 1);\n runs.push(j - i);\n i = j;\n }\n return runs;\n}\n\nfunction* solve_phase3_2gen_ida(\n a,\n b,\n ce,\n mtable_a,\n mtable_b,\n mtable_ce,\n ace_table,\n mirror_map_ce,\n bound,\n last = -1,\n) {\n let h_ace = ace_table[a + 210 * ce];\n let h_bce = ace_table[b + 210 * mirror_map_ce[ce]];\n let h = Math.max(h_ace, h_bce);\n //console.log(h_ace, h_bce, bound);\n if (h > bound) {\n return;\n }\n if (bound === 0) {\n yield [];\n return;\n }\n if (h === 0) {\n return;\n } // this solution includes redundant moves\n for (let m = 0; m < phase3_2gen_nmoves; m++) {\n if (m === last && phase3_2gen_move_orders[m] <= 3) {\n continue;\n }\n let new_a = mtable_a[m][a];\n let new_b = mtable_b[m][b];\n let new_ce = mtable_ce[m][ce];\n let new_bound = bound - phase3_2gen_move_seqs[m].length;\n if (new_bound < 0) {\n continue;\n }\n let subpath_gen = solve_phase3_2gen_ida(\n new_a,\n new_b,\n new_ce,\n mtable_a,\n mtable_b,\n mtable_ce,\n ace_table,\n mirror_map_ce,\n new_bound,\n m,\n );\n while (true) {\n let { value: subpath, done } = subpath_gen.next();\n if (done) {\n break;\n }\n yield [m].concat(subpath);\n }\n }\n}\n\n/* Some glue code */\n\nfunction solve_phase2_and_phase3_fast(\n facelets,\n phase2_attempts = 200,\n cap = 24,\n) {\n let pool = [];\n let gen = solve_phase2_gen(facelets);\n let facelets_t2 = compose(facelets, move_X).map((x) => x ^ 1);\n let gen_t2 = solve_phase2_gen(facelets_t2);\n let best = Array(1000);\n // phase 2 always takes <= 15 moves and phase 3 <= 25 moves, so this is a safe upper bound\n for (let i = 0; i < phase2_attempts; i++) {\n {\n let { value, done } = gen.next();\n if (!done) {\n let intermediate_facelets = apply_move_sequence(facelets, value);\n let solution = value.concat(solve_phase3_2gen(intermediate_facelets));\n if (solution.length <= cap) {\n return solution;\n } else if (solution.length < best.length) {\n best = solution;\n }\n }\n }\n {\n let { value, done } = gen_t2.next();\n if (!done) {\n let intermediate_facelets = apply_move_sequence(facelets_t2, value);\n let solution = value\n .concat(solve_phase3_2gen(intermediate_facelets))\n .map(([m, r]) => [m ^ 2, r]);\n if (solution.length <= cap) {\n return solution;\n } else if (solution.length < best.length) {\n best = solution;\n }\n }\n }\n }\n return best;\n}\n\nfunction solve_phase2_and_phase3_readable(\n facelets,\n phase2_attempts = 20,\n cap = 30,\n) {\n let pool = [];\n let gen = solve_phase2_gen(facelets);\n let facelets_t2 = compose(facelets, move_X).map((x) => x ^ 1);\n let gen_t2 = solve_phase2_gen(facelets_t2);\n let best;\n let best_score = Infinity;\n for (let i = 0; i < phase2_attempts; i++) {\n {\n let { value, done } = gen.next();\n if (!done) {\n let intermediate_facelets = apply_move_sequence(facelets, value);\n let solution = simplify_move_sequence(\n value.concat(solve_phase3_2gen_readable(intermediate_facelets)),\n );\n let score = grade_readability(solution);\n if (score <= cap) {\n return solution;\n } else if (score < best_score) {\n best = solution;\n best_score = score;\n }\n }\n }\n {\n let { value, done } = gen_t2.next();\n if (!done) {\n let intermediate_facelets = apply_move_sequence(facelets_t2, value);\n let solution = simplify_move_sequence(\n value.concat(solve_phase3_2gen_readable(intermediate_facelets)),\n );\n solution = solution.map(([m, r]) => [m ^ 2, r]);\n let score = grade_readability(solution);\n if (score <= cap) {\n return solution;\n } else if (score < best_score) {\n best = solution;\n best_score = score;\n }\n }\n }\n }\n return best;\n}\n\nconst randomUintBelow = randomUIntBelowFactory();\nexport async function randomFTOScrambleString() {\n return generate_random_state_scramble(await randomUintBelow);\n}\n"],
|
|
5
|
-
"mappings": "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CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA;AAAA,EAEN;AAAA,IACE,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA;AAAA,EAIN;AAAA,IACE,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA;AAAA,EAEN;AAAA,IACE,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA;AAAA,EAIN;AAAA,IACE,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA;AAAA,EAEN;AAAA,IACE,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA;AAAA,EAEN;AAAA,IACE,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA;AAAA,EAEN;AAAA,IACE,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA,IACJ,CAAC,GAAG;AAAA;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",
|
|
5
|
+
"mappings": "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;AAAA,IACE,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,EACP;AAAA,EACA;AAAA,IACE,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,EACP;AAAA,EACA;AAAA,IACE,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,EACP;AAAA,EACA;AAAA,IACE,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,EACP;AAAA,EAGA;AAAA,IACE,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,EACP;AAAA,EACA;AAAA,IACE,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,CAAC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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
parseSGS
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-3CEMUTUD.js";
|
|
4
4
|
import {
|
|
5
5
|
puzzles
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-XQKTAWAA.js";
|
|
7
|
+
import "./chunk-HUCMGBEC.js";
|
|
8
|
+
import "./chunk-QZOJPCN5.js";
|
|
9
9
|
import "./chunk-MGJA5U5O.js";
|
|
10
10
|
|
|
11
11
|
// src/cubing/search/inside/solve/puzzles/fto.dynamic.ts
|
|
12
12
|
async function randomFTOScrambleString() {
|
|
13
|
-
const { randomFTOScrambleString: randomFTOScrambleString2 } = await import("./fto-solver-
|
|
13
|
+
const { randomFTOScrambleString: randomFTOScrambleString2 } = await import("./fto-solver-5EQEC77M.js");
|
|
14
14
|
return randomFTOScrambleString2();
|
|
15
15
|
}
|
|
16
16
|
var cachedData = null;
|
|
@@ -643,4 +643,4 @@ export {
|
|
|
643
643
|
randomFTOScrambleString,
|
|
644
644
|
sgsDataFTO
|
|
645
645
|
};
|
|
646
|
-
//# sourceMappingURL=fto.dynamic-
|
|
646
|
+
//# sourceMappingURL=fto.dynamic-ISSUUAOX.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/cubing/search/inside/solve/puzzles/fto.dynamic.ts"],
|
|
4
4
|
"sourcesContent": ["import { puzzles } from \"../../../../puzzles\";\nimport { parseSGS, SGSCachedData } from \"../parseSGS\";\n\nexport async function randomFTOScrambleString(): Promise<string> {\n const { randomFTOScrambleString } = await import(\n \"../../../../vendor/xyzzy/fto-solver\"\n );\n return randomFTOScrambleString() as Promise<string>;\n}\n\nlet cachedData: Promise<SGSCachedData> | null = null;\nexport async function sgsDataFTO() {\n return (cachedData ??= uncachedSGSDataFTO());\n}\n\n// TODO: Reduce info.\nasync function uncachedSGSDataFTO(): Promise<SGSCachedData> {\n return parseSGS(\n await puzzles[\"fto\"].kpuzzle(),\n `SubgroupSizes 24 12 11 12 12 11 10 9 11 8 10 9 7 8 10 10 6 9 8 5 7 6 5 4 4 8 7 3 6 6 360\n\nAlg T\nAlg B\nAlg B T\nAlg B'\nAlg B' T\nAlg U\nAlg U T\nAlg U'\nAlg U' T\nAlg B BL\nAlg B BL T\nAlg B BL'\nAlg B BL' T\nAlg B' BR\nAlg B' BR T\nAlg B' BR'\nAlg B' BR' T\nAlg U R'\nAlg U R' T\nAlg U' L\nAlg U' L T\nAlg B BL' D\nAlg B BL' D T\n\nAlg R\nAlg R'\nAlg R D\nAlg R D'\nAlg R BR\nAlg R BR'\nAlg R' F\nAlg R' L\nAlg R' L'\nAlg B L B'\nAlg U L' U'\n\nAlg B U B'\nAlg B U' B'\nAlg B R B'\nAlg B R' B'\nAlg B' U' B\nAlg B' U B L\nAlg B' U B L'\nAlg B' U' B BL'\nAlg B U' B' BR\nAlg B' R' B F\n\nAlg BR\nAlg BR'\nAlg BR BL\nAlg BR BL'\nAlg BR' F\nAlg BR' F'\nAlg BR' D\nAlg B BR B'\nAlg U F U'\nAlg BR BL L\nAlg BR' D BR'\n\nAlg B' BL B\nAlg B' BL' B\nAlg BR D' BR'\nAlg B' BL B D'\nAlg B' BL B BL\nAlg B' BL B BL'\nAlg B' BL L B\nAlg B' BL' B F'\nAlg B' BL' B L'\nAlg B' BL' B BL'\nAlg B' BL' L BL' B\n\nAlg R' BR R\nAlg R' BR' R\nAlg BR BL' D BR\nAlg R' BR D R\nAlg R' BR D' R\nAlg R' BR R BL\nAlg B' D' BL D B\nAlg BR B D' B' BR'\nAlg BR BL' D BR L'\nAlg BR BL' D BL BR\n\nAlg U BR U'\nAlg U BR' U'\nAlg U' R U\nAlg U' R' U\nAlg U BR B' U'\nAlg U BR' U' D\nAlg U BR' U' D'\nAlg U' R F' U\nAlg U' R' U L'\n\nAlg U B U'\nAlg U B' U'\nAlg U B U' L\nAlg U B U' L'\nAlg U B' U' BL'\nAlg U B U' L F\nAlg U B U' L F'\nAlg U B' U' BL' D'\n\nAlg B BL' L BL B'\nAlg B BL' L' BL B'\nAlg U B' D B U'\nAlg U B' D' B U'\nAlg U R D R' U'\nAlg U R D' R' U'\nAlg R' F L F' R\nAlg R' F L' F' R\nAlg B L' B F' D B\nAlg U B' D' B U' D\n\nAlg F\nAlg F'\nAlg F D\nAlg F D'\nAlg F' L\nAlg F' L'\nAlg F D' BL\n\nAlg F BL F'\nAlg F BL' F'\nAlg BR' BL BR\nAlg BR' BL' BR\nAlg F BR F' BR'\nAlg F BL F' BL'\nAlg F BL' F' L\nAlg F BL' L' F'\nAlg F BR' BL BR F'\n\nAlg F' BL F\nAlg F' BL' F\nAlg U BL U'\nAlg U BL' U'\nAlg F U' F' U\nAlg F' BL F D'\nAlg F' BL F BL'\nAlg F' BL D F\n\nAlg L\nAlg L'\nAlg L BL\nAlg L BL'\nAlg F' D F\nAlg L BL D\n\nAlg L' BL L\nAlg L' BL' L\nAlg L' BL D L\nAlg L' BL D' L\nAlg L' BL L BL'\nAlg L' BL D' L BL\nAlg L' BL D' L BL'\n\nAlg L D L'\nAlg L D' L'\nAlg R' D R\nAlg R' D' R\nAlg L D L' D'\nAlg L R L' R'\nAlg L' B' L B\nAlg R' D R BL\nAlg L BL' L' BL L'\n\nAlg U L' D L U'\nAlg U B D B' U'\nAlg U L' D' L U'\nAlg U B D' B' U'\nAlg R' D' BL' D R\nAlg U B D' B' U' D\nAlg U B' L B L' U'\nAlg U B D B' U' BL'\nAlg U B D' B' L' D' L U'\n\nAlg F L F'\nAlg F L' F'\nAlg F L F' D\nAlg F L F' D'\nAlg F L' F' BL'\n\nAlg L BL' D BL L'\nAlg L BL' D' BL L'\nAlg F D L D' L' F'\nAlg F L D L' D' F'\nAlg F L' B' L B F'\nAlg F' D' R' D R F\nAlg F D L D' L' F' BL'\nAlg F' R' B' R' B R' F\n\nAlg B D B'\nAlg B D' B'\nAlg L' D L\nAlg L' D' L\nAlg B D B' D'\nAlg B' L B L'\nAlg B D B' D' BL\n\nAlg D\nAlg D'\nAlg D BL\nAlg D BL'\n\nAlg D BL' D BL D'\nAlg D BL' D' BL D'\nAlg B D R D' R' B'\nAlg B R D R' D' B'\nAlg D BL' D BL D' BL\nAlg D BL' D BL D' BL'\n\nAlg D BL D BL' D'\nAlg D BL D' BL' D'\nAlg B' BL' B BR D' BR'\nAlg D BL D BL' D' BL\nAlg D BL D BL' D' BL'\n\nAlg D' BL D\nAlg D' BL' D\nAlg D' BL D BL\nAlg D' BL D BL'\n\nAlg B D' B' BL B D B'\nAlg B D' B' BL' B D B'\nAlg D' BL' D BL D' BL D\n\nAlg B R' B' BL B R B'\nAlg B R' B' BL' B R B'\nAlg L R L' BL' L R' L'\n\nAlg F BL' B' BL F' BL' B\nAlg F' R' F BL F' R F\nAlg F' R' F BL' F' R F\nAlg BR R BR' BL' BR R' BR'\nAlg F L' BL U BL' U' L F'\nAlg F' U' F D F' U F D'\nAlg F BL F' D F BL' F' BL D'\n\nAlg F D F U' F' U D' F'\nAlg F D F' BL F BL' D' F'\nAlg F U D BL' U' BL D' F'\nAlg F U' D F U F' D' F'\nAlg F' BR L F BR' F' L' F\nAlg U R BL' F BL F' R' U'\n\nAlg BL\nAlg BL'\n\nAlg F U BL U' BL' F'\nAlg F BL U BL' U' F'\nAlg U BL BR BL' BR' U'\nAlg BR F BL F' BL' BR'\nAlg F U' F' U BL' U BL U'\n\nAlg F U' F' D F U F' D'\nAlg B' U' F U B U' F' U\nAlg D F U' F' D' F U F'\nAlg BR' U BR D' BR' U' BR D\nAlg D' BR BL' F BL' F' BL BR' BL D\n\nAlg D BL D F' U' B L' BL' L R' BR' R L' BL L B' U F D\nAlg B D BR F' R' BR' R B' F D' BL D B BR' D' B'\nAlg L B' BR' L F BR L' B BR' L U F U' BR' F L BL BR'\nAlg L BL' D' BR' B R' U' R BR B' D BL' L'\nAlg B BR B' D' B D B F' R' B' R BR' B' BR F BR' BL\nAlg L' BL D L' D' L' D L' U' R' F' R U D'\nAlg U' L BL L U' D R' BL B' BL F' BL' B R BL' U D' L U\nAlg L BL BR' L U' D R' F' R BL' U BL D' BR L\nAlg D L' R F' R' L BL' BR BL' B' BL B BR' F BL' F' D'\nAlg B BL B BR' L R' U' R BR L' B\nAlg L B' R' BR B F BL D' BL' D BL' B' F' BR' R U B L'\nAlg D' L' BL F' D' BL' D B F' R' BR R B' F' BL' L D\nAlg B D' R D' R' BL BR' B BR' B' BL' D' BR B R' B' R B' BL' D'\nAlg U' L R' F U L' BL' L B BL' B' BL L U' L' F' R L' U\nAlg F' D BL' BR' BL' BR B' U' F L F' U B D F L U BL' U' L'\nAlg L' U BR' U D R' BL F R BL' U D' BR' L' BL' BR' L'\nAlg U' L' U' D R' BL B' BL F BL' B R BL' U D' L' BL' L' U\nAlg D F BL L' BL' B L' B' L' B L' B' L' BL L BL' F' D'\nAlg F' BR' B BL' BR BL B' F L' F' L B BR' B' BR L' F L BL'\nAlg F' L F' L U' D R' F R U D' L' BL' F L' F\nAlg F U' F' BR F' R' BR' U F' L' BL F' D' BL'\nAlg B BR' U R BR' R' BR U' B' BR\nAlg F' BR' B BR' R BR' BL' BR R' BR BL B' BR F\nAlg L' U BL B' U' BL U BL' B BR BL' BR' U' L\nAlg BR BL' BR' BL L' BL BR BL' BR' L\nAlg U BR' U' BR L' BL BR BL' BR' L\nAlg U' L F BL' F' BL F' BR F BR' L' U\nAlg F L F' BL D F' D' F BL' L'\nAlg U BR' U BR L BL BR BL' BR' L' U\nAlg F BR R BL' F' BL' F R' BL BR' BL F'\nAlg D BL D B U BR' D BR' L' U' BR' U BR L D' BR U' B' D\nAlg U BL' U' BL U BL D L' D BR D' L D BR U BR U D\nAlg B' U F U' B' U F' BR' U' B L B' U BR U' B L' B BL\nAlg B U' B BL U' BL L U' D R' F' R U' D' L' BL' U B\nAlg B L R F D' BR' D F' R' BL' U' L U L' U BL L' B'\nAlg D BL D F' BR' F BL' D R' BR' R F D' BL F' BR D\nAlg L' D F' R' U BR L BL B' BL B BL' BR' L' U' R D' L\nAlg F BL' U D L' U' BR R F' R' BR' U L D BL U' D BL F'\nAlg BR' BL' U' L' BL D F' L' F' L F L U L' D' BR L BL\nAlg B' L' BL U D R' F' R U D' L' BL L U BL' L B\nAlg B BL' L U B' L BL' L B' U' B' L' D L' U' B L' B' D'\nAlg B' R' L U L' R BR BL' B BR' B' BL B' BL' B'\nAlg F L R BL B' U' B R' BL' L' BL F' BL BR' BL L BL' BR L'\nAlg B' U' BL L U D R' F R U D' L' BL' U BL' B' U B'\nAlg U BR BL' BR' D' B D' F' D B' D' F BL' U' BL' F' BL' F D'\nAlg D' BL' D L BL L' D' BL D F' D F D' BL' D' BL D\nAlg B' BL' B' BL L' B' BL' F' D F L F' D' F BL' L BL' B L B\nAlg F BL' U D' BL' D' L' U' BR R F R' BR' U L U' D' BL F'\nAlg U' D' B D F' D' BR' D' BR D BR B' BL' D F BL U BL'\nAlg B BL BR D' BR L' R F R' BR' L D BL' BR' BL' B'\nAlg L' F L' U BR' U' BR L F' BR' L U BR U'\nAlg F' BL' D' BR' BL B' U' BL U B BL' BR D F\nAlg F' D' BR' U R' U BL U' R U' BL' BR D F\nAlg F U' BR F' U' BL' B U F BR' R F' U BL L\nAlg B' BL' U' BL U B BL' B BL BR BL' BR' B' BL\nAlg D' F' U BL U' L F U' F' U L' BL' F D\nAlg F' BL' D' BR' BL BR' F' BR U' B' BR' U R' BR' F'\nAlg B' U' B BL' B U' B BL' L U' L BL' L B\nAlg F' D' F U' F U F' BL F' BL' D F\nAlg F' D BR F' R F R' BR' F D'\nAlg D BL D B BR' D L' BL' L' BL' BR' BL L BL L D' BR B' D\nAlg B L BL L' BL' L' D F' R' BR R D' F L' BL' L' B'\nAlg B BL' F' BL BR D' BR' F D' B' D L F' BL' F L D L D' BL\nAlg B D' BR' D' BR' F D' BL' D' BL D BL F' D BR D' B'\nAlg B D' B U B' D B F' BR' F L' F BR F' L U' B BL\nAlg L BL' B' U BL L' BL L U L' BL' L BL' U' B BL' L'\nAlg U D F' D BR BL' BR' BL B D' F D B' D BR BL BR' U'\nAlg F' D BR L' U' R F' R' U BR' L D BR' BL BR D F\nAlg BR' L BL L' BL' BR BL' F BL' L R BL B' U B R' BL' L' F'\nAlg D BL BR D B F' R' U' BR' U R B' F D' BR' D'\nAlg D' B BR' D L' BL' L' BL' BR BL L BL L D' BR B' D' BL' D'\nAlg B U' R B' BL' B R' U' B BL' B' U' BL B' U' L U L'\nAlg B D' B' D' BR' BL BR D' B' L B BR' U B U' BL' BR BL L' BL'\nAlg B D BR' D' F BL' D' BL' D BL D F' BR D BR D B'\nAlg D' B D F' D' BR' D' BR D BR BL BR' BL' BR B' BL' D F\nAlg L BL B' U BL L' BL L U' L' BL' L BL' U' B BL L'\nAlg B' U B' D' B U' B' D BL' U BL' U' BL' B' U BL' U'\nAlg D' BR' B' L' U L' B' U B L U' L B BR D BL\nAlg L' D L' F U' F' L D' L' F U BR F' L F BR' F' L BL'\nAlg D BR D B F' R' U' BR U R B' F D' BR' BL' D'\nAlg BR BL D F BR' BL BR BL' BR F' BR' D' BL' BR'\nAlg BR' U' L' BL F' BL' F L BL' U BL BR\nAlg D' BR' B' U BR U' BL U' BL' U BR' B BR D\nAlg F U BR' U R U' BR B U' F' BL U' L' U BL' B'\nAlg B U' L F BR F' L F' BR' F L U B'\nAlg BR BL F BL' L F' BR' BL' F BL L' BL' F' BL\nAlg U' BR' L BL' BR L U' BR' U L' BL L' U' BR U'\nAlg L' F L' U BR' U' BR L F' L BL' BR BL BR'\nAlg F' D' BR' BL U R' U BL' U' R U' BR D F\nAlg F' BR' B F' U F BR U' BR' B' F BL BR BL'\nAlg L B' U' R' BR B F BL D' BL D BL' B' F' BR' R B L'\nAlg B F BL B L F BR' R' BL U' R BL' BR' F' L' F' BR' B\nAlg U BR F' D F BR' U' L' BL L' BL' L U L B' BL L' B U'\nAlg F' L B F BL B R U' R' B' BL' B' F' L BL L F\nAlg D BL D B BR' D BR' D' BR D BR BL BR' BL' D' B' D\nAlg D' BR' BL B BR B' BL' D BL D' B' BL B BR' BL' BR D\nAlg D F' U BR U' L U' BR' U L' D B D' F D B' D BL\nAlg L B BL' B L F R U' R' F' L' B' BL B' L' BL'\nAlg B D' B U B' D F' BR F L' F BR' F' L B U' B BL\nAlg B' BL L B' L' B' L B' BR' R' U' R BR L'\nAlg D' F' U' B L' BL' L R' BR R L' BL L B' U F D' BL' D'\nAlg B' F' BL' B' F U D' R BR R' BL U' BL' D B'\nAlg F' BL' D BL F BL' D' B' U' B D F' D' B' F U B\nAlg F' L' BL' L' B F BL B R U R' B' BL' B' F' L' F\nAlg L' BL U' D F D' BL' D BL F' BL' D' BL D F' U D' BL L\nAlg B' BR L R' U R BR F L' B' BL' B L F' BR L' B\nAlg B' L B' BR' B L' B' D F' U F D' F U' F' BR B' BL'\nAlg B' BR D' BL' BR' BL B L' R' L' R BR L D L BL BR' B BL\nAlg L' D F' L F L' F D' L' BL' L' D BL' BR' BL' BR BL' D'\nAlg B' F BR F BR L R' BL U R BL' BR L' B' BL' B' F\nAlg F L' F' BR' B BR' F' BR B' BR' F' L F' BR'\nAlg BR' B' BR BL' D' BR D BR' BL B\nAlg L' F L' U BR' U' L U' BR U F' L\nAlg F U' BR' R U' BR BL BR' U' BL' U' R' F' BR U\nAlg B' BR' R' U' BL D' BL U BL' D R BL' BR B\nAlg D BR' U' L BL' F' BL F L' BL U BL' BR D'\nAlg F' BL' D' F BR' BL BR BL' BR F' BR' D BL F\nAlg F' BR' BL' BR D' F' BR F BR' D BL F\nAlg F' BR R' BR BL' BR' R BR' BL F\nAlg B BR F' BR' B' F BL F BL' F'\nAlg B D' B U B' D BL' F R' F BL F' R B F' U' B BL\nAlg L BL' B' U L U L BL L B' BL B' U' BL' U' B' L' BL\nAlg L' BL' U' D F D' BL' D BL F BL' D' BL D F' U D' BL' L\nAlg F' L F' BL' D' BR' B R' U' R BR B' D BL' F L' F\nAlg U D' BR' D BR' U' L U BR L' D' BR D L U' L' BL\nAlg B' BR' B' BL B L F' BR' R' U' R BR F BR L' B\nAlg U' F' D BR' F' BR D L D L' U D' B D' B' F D' BL F\nAlg B F BL B F' L F BR' R' BL U' R BL' BR' F' BR' L' B\nAlg F' D' BL B BR' BL BR BL' BR' D' BR' D BR D F D' B' D\nAlg B' BR' B' BL B L F BR' R' U' R BR F' BR L' B\nAlg L' F BR L' R' BR BL' BR' R BR' BL B' L F' L' B L' BL'\nAlg B' U' BL' U D' BL' D F L' R U R' F' L U' BL U B\nAlg D' B D BL BR BL' BR' D' BR' D BR D' BR B' D' BL' D'\nAlg B' BR' L F' BR' R' U R BR F L' B' BL' B BR B\nAlg L U L' D' BR' D L U' L' U D' BR D BR BL BR' BL' U' BL'\nAlg F' L F' BL D' B BR' R' U R B' BR D BL F L' F\nAlg B' L B' BR' B L' F' R F' BL F R' F BL' B' BR B' BL'\nAlg F' L BL' BR' R' BL U R BR B L' B L B L' F BL' B\nAlg L' F D' BR U' BR' D BR' U BR L' B' L F' L' B L' BL'\nAlg B' BR' L F BR' R' U R BR F' L' B' BL' B BR B\nAlg L F' D' F BR' BL BR BL' BR F' BR' D F L'\nAlg F' BL' D F BL' F' BL D' BR' BL BR F\nAlg B' BR' R' BL D' BL U' BL' D BL' U R BR B\nAlg B' L BL' BR BL L' B' F BL F' BL' B BR' B\nAlg F U' BR' R BR F' U BL L U BL' B U'\nAlg B' BR B' BL F BL' B F' L BL' BR' BL L' B\nAlg U' L BL' U' R U' BL' U R' U BL' L' U\nAlg F U' BR' R' F' BR' F BL BR R BL' F' BR U\nAlg B U' L' F' BR F L' F BR' F' L' U B'\nAlg F' BR' B' F BR' BL' BR F BL B F' BL BR BL'\nAlg B BL' U' L U BL' B' BL' B' L' BL U B' U' BL L BL L\nAlg B R' U' B U R B' BR F D' B' D BL F' BL' BR' BL\nAlg U BL U' B BL U BL U' BL D' B U B' D B U' B\nAlg B BL B BL' B BR B' BL BR' R' L U' L' R B\nAlg U' L BL' B BL B' L' F U B' R U R' U F' U B BL\nAlg F' BL' D' BR' L' B' L B BL BR BL' B' L' B L D BL F BL\nAlg L B' L' F U B' R BR B BR' R' BR BL' BR' BL B U' F' BL\nAlg D' F BL B BR' B BR B' BL' D BL D' B' F' D\nAlg B' L' BL F U F' L' U B U' L F U' F' BL' L BL' B BL B\nAlg D BL D B U F' R' BR' R F U' B' D\nAlg B BR B' D' BL BR D BR D B' BL' B D BR' BL' D' BL' D'\nAlg B' R BR B' BR' R' B U' F' L B L' BL' F BL U BL'\nAlg U BR BL' BR' D' B D' F' D B' BL' BR BL BR' D' F U' D'\nAlg U' D' BR' U' BR' D' L' D BR' D' L D' BL' U' BL' U BL U'\nAlg L' F' BR F' R F' R' L F' BR' D L BL' L' BL D' F BL'\nAlg B D BL' D B U R BR R' U' B' D' BL D' B' BL\nAlg B' U L' U B BL L' F' BL F D' B' U B D B' L B L'\nAlg L BL' B' U L F R U' R' F' U L F' L B L' F\nAlg L' D R' U BR L BL B' BL' B BL' BR' L' U' R F D' L\nAlg D' B U F' R' BR R F U' B' D' BL' D'\nAlg B D BL' B' U' BL L' D L D' BL' U B BL B' D'\nAlg B U' BL' U' F U' B U B' F' U BL U' B U' B\nAlg U BR' U L BL' L U' BR U BR' L' BL BR L' U\nAlg F' D' BR' BL B' U' BL' U B BL' BR D BL F\nAlg B' L' B' F BL' F' BL F' BR F BR' B L B\nAlg F' BL' D' BR F' BR' F D BR' BL BR F\nAlg F D' F' U' F' D' BR D F' D' BR' D' F' U\nAlg BR' BL' U' BL L U' F U F' L' U BR\nAlg F BR R U' BR B U BR' F BR BL' BR D BL F\nAlg F' BR' F U' BL L' U BL' B' F' BL' BR D' BL F\nAlg B' U L' B' U L' D F L F' D' L U' B L U' L B L'\nAlg B BL B L F BR' R' U' R BR F' L' B\nAlg B D' B BR' R' U' B' U R BR U' D' F L' F' U L' D' L\nAlg L U' L' U B BL' U B BL B' U R B' BL B R' U B'\nAlg D F' D BL U' R U' BL' U R' U B D' F D B' D BL\nAlg B BL U B BR' L R' F' U' F R BR L' B' U' B'\nAlg B' U' B F' D F D' B' U B D BL F' BL' D' BL F\nAlg B D BR B F' U' R' BR' R U B' F BR' D' BL B'\nAlg L B' F R BL' U' R' BL B F' L U BR' U' BL L U BR U'\nAlg F' L F' BL L U' D R' F' R U D' L' F L' F\nAlg L U L' F' BL' F L B BL' U BL' U' BL B' BL L U' L\nAlg B' L F BR' R' U R BR F' L' B' BL' B'\nAlg U BR' U' L' U' BR' F' BR F BR D R' F R U D' L' BL' L'\nAlg B L BL L F' D R' BR' R F D' L BL L BL' L' B'\nAlg F' BL' D F' D' B D' B' U' D L D BR' L' F BR D' F U\nAlg B U B BR' L R' F' U F R BR L' B' U' BL' B'\nAlg U B' L BL' B L' U' L' BL L BL' L U BR F' D' F BR' U'\nAlg B BL' D BR B F' U' R' BR R U B' F BR' D' B'\nAlg B BR B F BR' U BL' L R BR' R' L' F' U BR U BL B BL'\nAlg B' BR' L R' U R BR L' B' BL' B'\nAlg B' U BR' R L F' BR' F L' R' BR U' B' BR B'\nAlg F' BL' F' BR R U' BR B F BR BL' D F U BL'\nAlg F' BR' B' U BR' F BR' F' BR U' BR B BR F\nAlg BR' BL' U' BL L' F' BL F BL' L U BR\nAlg U' L BL U' R U' BL U R' U BL L' U\nAlg F BR' F' U' L F BR U F' U' L' BL U BL'\nAlg L' F U' BR' U L' U BR U' L F' L\nAlg F' BR' B' U' BR' U F BR B U' BL U BR BL'\nAlg F' BR' U BR D' BR U' BR' D F\nAlg F BL' BR R BL' F' BL F R' BL BR' F'\nAlg L BL' B BL' U BL U' BL B' L' F' BL F L U' L U L\nAlg B F BL B F' L F' BR' R' BL U' R BL' BR' F BR' L' B\nAlg F BL B' F' BR B' BR' B L F BL B' BR B BL' BR' F' L' B\nAlg B F D' BL U R BL' BR' R' U' D B F' BL B\nAlg L B' U B' BR B BR U' BR' B L' F BL' B F' BR' B' BL'\nAlg U' L R' F L U L' BL' B BL B' L' BL L U' F' R L' U\nAlg BR BL F BL' F' L' F' BR' L B BR B' L' F L B BR' B' BL\nAlg B' BR' L F L' B' BL B L F' BR' R' U' R BR' L' B\nAlg D L U' BR U L U' R BL' F' R' F BL F' BR' U L D BL D\nAlg B F BL B F BR' L R' BL U' R BL' BR' L' F BR' B\nAlg L B' L' U L' B' U L' D F L' F' D' L U' B L U' B\nAlg B' BR L F' BR R' BL U R BL' BR F L' B' F BL' B' F'\nAlg B' BL L B L' B' BL' L' U BL' U R' L' R U' BL U' L B\nAlg B U' D' F D B BL' B' U D' R BR R' U' F' U D B'\nAlg D F L F' L' F R L' BL B L B' BL' L R' F' L D'\nAlg L BL D' B BR' R' U R B' BR D BL L'\nAlg D F D' B' U' B U' D F' D' F U B' U B F' BL'\nAlg D' BR' BL BR B' BL' B D BL' D' BL B BR' B' BL' BR D\nAlg U BR' U' L U R' L R BR L' B' L' B L U' L' BL'\nAlg BR' L R' U R BR B L' B L B L' BL' B\nAlg B BR' B U BR' R L F' BR F L' R' BR U' B\nAlg F' L B' BR' B L BL' L' B' BR B L BL L F\nAlg D F U' F' U D' BR U' D' F U F' D BR'\nAlg B' BL' BR D' BR' D BL BR' B BR\nAlg B BL U' BR' L U BR' F' BL D BL BR F BR\nAlg L' U BR BL BR' B' BL U' BL' U B BL' U' L\nAlg U B' BL U' L' BL' U' F BR' R' BR U F'\nAlg D BR' BL U' BL' L F' BL' F BL L' U BR D'\nAlg BR L' BL BR' BL' L BL' BR BL BR'\nAlg F BL F' BL' B F' BR F BR' B'\nAlg D BR L' U' R F' R' U BR L BL B' BL B BL' BR D'\nAlg D' BL' D BL D F' D' F D' BL' D L BL' L' D' BL D\nAlg B F D' F' U' BL' B U B' BL F D B U' B' U B' F' BL\nAlg B U F' D' R BR' R' U' D B BL B' U F U' B'\nAlg B BL B L B BR' F BR B' BR' R' U' R F' BR L' B\nAlg B BL B L F' U' F' U F BR' R' U' R BR' F BR' L' B\nAlg B' U' B F' D F D' B' U B U' D BL' F' BL D' F U BL\nAlg L F' BR B' F' R BL' U' R' BL B F' BR L BL BR L\nAlg D F' D' BL F' D' F R BL B' L U L' B R' F' BL' D F\nAlg B BL BR BL D' BR L' R F' R' BR' L D BR' BL' B'\nAlg B' L B' BR' B L' BL' U BL U' B' BR B' U BL' U'\nAlg D' B BR' F BL' F' D BR D' BL F' BR B' F D' BL' D'\nAlg B D F' L' R F D BR' D' F' R BR' L D B' BL' D' F D'\nAlg D L BL' F' R U R' B F' L BL' L' B' F' BL L' D'\nAlg B' BR' L F R' U R BR B BR' F' BR B' L' B' BL' B'\nAlg D L F BL F L BL' L D' BL' D' F' D' F' L BL D' BL'\nAlg D F BL F' BR B' BL' B BL BR' BL L' R F R' L D'\nAlg L BL' B' L B L B' L F R U R' B F'\nAlg F' D' BL F R B' L U' L' B R' BL' F' D F BL' D F D'\nAlg B' L' BL U' D' L' BL' L U' D R' F R U' BL' L B\nAlg L' F L' BL U' BL' U L F' L U' BL U BL'\nAlg D' F' BL L U' F U F' L' U BL' U' F D\nAlg B' U F D F' U F D' F U B U' F U\nAlg U B' BR' U R' U' R BR U' B\nAlg F' BL' D F BL F' BR F' BR' F BL' D' BL F\nAlg F' BR' BL' BR D BL' F BL F' D' BL F\nAlg U' F R F' BL' F R' F BL F U\nAlg F' BR F BR' L BL' BR' BL BR L'\nAlg F U' B F U' BR U BR' U F' U' B' U F'\nAlg D F' BR R F' R' F BR' D' F\nAlg B D' B U B' D B U' B BR BL BR' D BL BR BL BR' BL D'\nAlg B' U' L' D' F D' L' F' L D F' D L U B BL'\nAlg D L' F R L' BL B L' B' BL' L R' F' L F L' F' D'\nAlg D L' D' BL D F' D F D' BL' L BL D'\nAlg D' B R U' B' F' BL' L BL L' BL B F U R' BR' B' D\nAlg D L BL' F L BL L' B' F R U' R' B F BL L' D'\nAlg D F' BL F BL U BL F' D B D' F D B' D BR BL BR' U'\nAlg B F' BL B F' BR' F' L F R' U' R BL' BR BL F' L' B\nAlg L F BR B' D BL D' R U' R' D BL' D' B BR' F' L BL L\nAlg B F BL B F' BR' L R' U' R BL' BR BL L' B\nAlg D' B U BR' D BR' L' U' BR U BR L D' BR U' B' D' BL' D'\nAlg F' D' BR' BL' BR D' BR L' U' R F R' U BR' L D' F\nAlg D F U D' BL U' B D' F BR F' D' F' D BR' D B' BL\nAlg B U' D' F D BL' D' BR D' BR' D BL B' BL' B F' U D B'\nAlg L' BL' L' F BR B' D BL D' R U R' D BL' D' B BR' F' L'\nAlg B U F' U' B BL' B' U D' R BR R' D F U' B'\nAlg B L BL' U' L U' L' U R BL F D' BR D F' R' L' B'\nAlg B' L B' BR' B L' F' BL F BL' B' BR B' F U' F' U BL'\nAlg D' B BR R U' B' F' BL' L BL' L' BL B F U R' B' D\nAlg B BL' U' B BL' B D B D' B D B D' BL B' U BL B'\nAlg U BR' U' BR L' F BR' L' U BR U' L F' L\nAlg L' U BR BL BR' B U BR' U' BR B' BL' U' L\nAlg BR BL D BR' BL' L BL' BR BL L' BL D' BL' BR'\nAlg F' BL' D' BR' D BL BR' B U BR U' B' BR F\nAlg F U' F' D F' U' B' U F' U' B U' F' D'\nAlg B' U BR' R' U R U' BR B U'\nAlg L U BL U' BL' L' BL L' F' BL' F BL L BL'\nAlg U B' BL' BR' U F' BR' D' F BR' U BL' L' BL'\nAlg F BL' L' F' BL D' F' BR U' R' F' U F' BR'\nAlg U B U' BL L U' L' U BL' B'\nAlg U BL U' B BR' B U BL' U' BL L B' BR B L' B\nAlg B BL B L F' U' F U F BR' R' U' R BR' F' BR' L' B\nAlg B BR D L' D' F' D F D' F' D' F D' BR' L D' B D B\nAlg F' L B' L' F L' U' F R U R' F' L' U' B BL L'\nAlg B' L' F U F L' F R U' R' U L F R U R' U B F' BL\nAlg B U F' D' F' U R BR' R' U' F D B BL B' F U' B'\nAlg F BL U BL' U' F' BL L U' L D BR L' U L U' BR' U D' L\nAlg B U' D' B' F BL B BL' D' BR D BR' D BL D' F' U D B'\nAlg B BL' D' B' D B BL D BR' BL BR' R D R' BR BL' BR D' B'\nAlg B F U' F' D' F' U' R BL' BR' R' BL U' F D B BL B\nAlg D BR' BL B' BL' B BL' BR' L' U' R F R' U BR' L D'\nAlg B' F' U' F' BL' D' B BR' R' U R B' BR D F U B F\nAlg B' D' B' D BR L' D F' D F D F' D' F D L D' BR' B'\nAlg D' B F D BL' D' BL B BR' B' BR B' BL' F' D\nAlg B D B' F BL L' BL' F' L BL L' BL' BR L R L' R' BR' L' D'\nAlg B U B F' BL' B' D' F' U R BR R' U' F D F U' B'\nAlg BR BL' L' F' BR U F' U' BR L' B' BR' L F' BR L' B L'\nAlg D BL' L' BL D F' D' F D' BL' D L D'\nAlg F' BL' B F U' B U B' D' F' BL' B U' B' BL U F D B'\nAlg B' F' L BL' BR' R' BL U R BR L' B' F BL' B'\nAlg BR BL' BR' BL L' F L' BL' BR BL BR' L F' L\nAlg B BL BR' F U' L F U BR' F BL D BR' BL\nAlg B' BL' B' U BR' U' BR BL' BR BL BR' B BL B\nAlg BR' U' L F U' F' U L' BL' U BL BR\nAlg B U BR R' BR U' B' BR U' B' U BR' R' BR\nAlg B BR BL L BL BR' BL' L U' BL' U BL L BL' B'\nAlg F' BR' B BL' BR' R BR' BL BR R' BR B' BR F\nAlg F' BR' B U BR' U' B' BR BL' D' BR D BL F\nAlg D' F' BR U' R' F' U F' BR' F BL' L' F' BL\nAlg B BL U' L U L' BL' U B' U'\nAlg L' F' R B F' BR L' D' F' D BR' L B' F R' F BL L\nAlg D F BL L' BL' B L B' L B L B' L BL L BL' F' D'\nAlg B BL B BR' L R' U' R BR L' B U BR' U' BR BL' BR BL BR'\nAlg B' F R U' R' F' L' B L' B' L' B BL L'\nAlg B' L' F D R' F' L' U L F R' U D' L' B BL L F' L\nAlg D' L' BL F R' BR' R B' F D' BL D B F BL' L D\nAlg B' BR' R' U' BL' U' L R' F R F' L' R U' BL BR B BL\nAlg BR L BL BR L U' D R' BL F' R BL' U' D' BR U' L\nAlg BR L B' L F R F U F' U' R' L' B L F' BR' L BL\nAlg B F U D' R BL' BR' R' BL U' D B F' BL B\nAlg L' BL L' D B D' BL' B' D' L R' D R BL' U' L U BL'\nAlg L' D BL' U' R' BL F R U D' BR L' BL' BR' L'\nAlg U BR' U' L' BL' U BR U' L' B' F R BL' U R' BL B F' L'\nAlg BR L' BL' L' B' F R BL' U R' BL B F BR F BR L'\nAlg B' F' L F BR BL B' BR' B BL' F' L' B' BR B BR' B F BL'\nAlg B D BR B' D' BL' D B F' R' BR R F BR' D' B'\nAlg D BL' L' BL' L BL L' BL F' BL' L' F L BL F BL' L D'\nAlg U' D R' F R U L D' L D L D' BL' L\nAlg U D' BR D' L' D R F BR F' BR' R' BR' D' L U' D' BL'\nAlg B' F' BR' L R' BL U R BL' BR L' B' F BL' B'\nAlg L' F BL' F' BL F' BR F BR' L\nAlg L BL F' D F D' BL' F L' F'\nAlg F' D' BR U BR' D BR' U' BR F\nAlg BR' L BL' BR BL BR L' F' BR' F\nAlg B BR F BR' B' BR F' R' BR' BL' BR R BR' BL\nAlg BR' B U BR' R BR R' U' BR B'\nAlg F' BL' BR R' BR BL BR' R BR' F\nAlg BR L' BL BR' BL' BR' L U BR U'\nAlg U BR' U' BR BL' BR BL BR'\n`,\n );\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;AAGA,yCAAiE;AAC/D,QAAM,EAAE,sDAA4B,MAAM,OACxC;AAEF,SAAO;
|
|
5
|
+
"mappings": ";;;;;;;;;;;AAGA,yCAAiE;AAC/D,QAAM,EAAE,sDAA4B,MAAM,OACxC;AAEF,SAAO,yBAAwB;AACjC;AAEA,IAAI,aAA4C;AAChD,4BAAmC;AACjC,SAAQ,4BAAe,mBAAmB;AAC5C;AAGA,oCAA4D;AAC1D,SAAO,SACL,MAAM,QAAQ,OAAO,QAAQ,GAC7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CA4mBF;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
import {
|
|
3
3
|
randomUIntBelowFactory
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-V55YSWJY.js";
|
|
5
5
|
import {
|
|
6
6
|
Alg
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-QZOJPCN5.js";
|
|
8
8
|
import "./chunk-MGJA5U5O.js";
|
|
9
9
|
|
|
10
10
|
// src/cubing/vendor/xyzzy/kilosolver.js
|
|
@@ -711,4 +711,4 @@ getRandomKilominxScramble().then((alg) => alg.log());
|
|
|
711
711
|
export {
|
|
712
712
|
getRandomKilominxScramble
|
|
713
713
|
};
|
|
714
|
-
//# sourceMappingURL=kilosolver-
|
|
714
|
+
//# sourceMappingURL=kilosolver-RP3POREU.js.map
|