Skip to main content

passagemath: Algorithms for Rubik's cube

Project description

passagemath is open source mathematical software in Python, released under the GNU General Public Licence GPLv2+.

It is a fork of SageMath, which has been developed 2005-2025 under the motto “Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, and MATLAB”.

The passagemath fork uses the motto “Creating a Free Passage Between the Scientific Python Ecosystem and Mathematical Software Communities.” It was created in October 2024 with the following goals:

Full documentation is available online.

passagemath attempts to support and provides binary wheels suitable for all major Linux distributions and recent versions of macOS.

Binary wheels for native Windows (x86_64) are are available for a subset of the passagemath distributions. Use of the full functionality of passagemath on Windows currently requires the use of Windows Subsystem for Linux (WSL) or virtualization.

The supported Python versions in the passagemath 10.6.x series are 3.10.x-3.14.x.

About this pip-installable distribution package

This pip-installable distribution passagemath-rubiks provides an interface to several programs for working with Rubik’s cubes.

Michael Reid (GPL) http://www.cflmath.com/~reid/Rubik/optimal_solver.html

  • optimal - uses many pre-computed tables to find an optimal solution to the 3x3x3 Rubik’s cube

Dik T. Winter (MIT License)

  • cube - uses Kociemba’s algorithm to iteratively find a short solution to the 3x3x3 Rubik’s cube

  • size222 - solves a 2x2x2 Rubik’s cube

Eric Dietz (GPL) https://web.archive.org/web/20121212175710/http://www.wrongway.org/?rubiksource

  • cu2 - A fast, non-optimal 2x2x2 solver

  • cubex - A fast, non-optimal 3x3x3 solver

  • mcube - A fast, non-optimal 4x4x4 solver

What is included

  • Interface

  • Features (via passagemath-environment)

  • Binary wheels on PyPI contain prebuilt copies of rubiks executables.

Examples

Using rubiks programs on the command line:

$ pipx run --pip-args="--prefer-binary" --spec "passagemath-rubiks" sage -sh -c cubex

Finding the installation location of a rubiks program:

$ pipx run --pip-args="--prefer-binary" --spec "passagemath-rubiks[test]" ipython

In [1]: from sage.features.rubiks import cubex

In [2]: cubex().absolute_filename()

Using the Python interface:

$ pipx run --pip-args="--prefer-binary" --spec "passagemath-rubiks[test]" ipython

In [1]: from sage.interfaces.rubik import *

In [2]: C = RubiksCube("R U F L B D")

In [3]: sol = CubexSolver().solve(C.facets()); sol
Out[3]: "U' L' L' U L U' L U D L L D' L' D L' D' L D L' U' L D' L' U L' B' U' L' U B L D L D' U' L' U L B L B' L' U L U' L' F' L' F L' F L F' L' D' L' D D L D' B L B' L B' L B F' L F F B' L F' B D' D' L D B' B' L' D' B U' U' L' B' D' F' F' L D F'"

Using sage.groups.perm_gps:

$ pipx run --pip-args="--prefer-binary" --spec "passagemath-rubiks[test]" ipython

In [1]: from passagemath_rubiks import *

In [2]: rubik = CubeGroup(); state = rubik.faces("R")

In [3]: rubik.solve(state)
Out[3]: 'R'

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

passagemath_rubiks-10.6.44.tar.gz (8.6 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

passagemath_rubiks-10.6.44-cp314-cp314t-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

passagemath_rubiks-10.6.44-cp314-cp314t-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

passagemath_rubiks-10.6.44-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

passagemath_rubiks-10.6.44-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

passagemath_rubiks-10.6.44-cp314-cp314t-macosx_13_0_x86_64.whl (214.0 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ x86-64

passagemath_rubiks-10.6.44-cp314-cp314t-macosx_13_0_arm64.whl (205.8 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ ARM64

passagemath_rubiks-10.6.44-cp312-abi3-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.12+musllinux: musl 1.2+ x86-64

passagemath_rubiks-10.6.44-cp312-abi3-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.12+musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.6.44-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

passagemath_rubiks-10.6.44-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

passagemath_rubiks-10.6.44-cp312-abi3-macosx_13_0_x86_64.whl (213.9 kB view details)

Uploaded CPython 3.12+macOS 13.0+ x86-64

passagemath_rubiks-10.6.44-cp312-abi3-macosx_13_0_arm64.whl (205.4 kB view details)

Uploaded CPython 3.12+macOS 13.0+ ARM64

passagemath_rubiks-10.6.44-cp311-cp311-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

passagemath_rubiks-10.6.44-cp311-cp311-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.6.44-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

passagemath_rubiks-10.6.44-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

passagemath_rubiks-10.6.44-cp311-cp311-macosx_13_0_x86_64.whl (213.2 kB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

passagemath_rubiks-10.6.44-cp311-cp311-macosx_13_0_arm64.whl (204.8 kB view details)

Uploaded CPython 3.11macOS 13.0+ ARM64

passagemath_rubiks-10.6.44-cp310-cp310-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

passagemath_rubiks-10.6.44-cp310-cp310-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.6.44-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

passagemath_rubiks-10.6.44-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

passagemath_rubiks-10.6.44-cp310-cp310-macosx_13_0_x86_64.whl (213.4 kB view details)

Uploaded CPython 3.10macOS 13.0+ x86-64

passagemath_rubiks-10.6.44-cp310-cp310-macosx_13_0_arm64.whl (205.0 kB view details)

Uploaded CPython 3.10macOS 13.0+ ARM64

File details

Details for the file passagemath_rubiks-10.6.44.tar.gz.

File metadata

  • Download URL: passagemath_rubiks-10.6.44.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for passagemath_rubiks-10.6.44.tar.gz
Algorithm Hash digest
SHA256 86dd603c19f2abd97ebfd412b2a68e4db0efe206df6ed2e4cd948e0e0bae0fc5
MD5 3b0b276de983c5483932f1a0d9053879
BLAKE2b-256 66c69b92e021765b923422f0660764079d4561f3013267fcb52cd49be0082834

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.44-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.44-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 afd4c2db166329717615a72e72361f51fed2ce7bfc10d888130a43bedc354b0c
MD5 3382340d6f9bca91c2c8bf36bb65d42d
BLAKE2b-256 df07e776e257d953fc2ad3b5fca5a9fc5ab8c744af6e69f98c541e47a786349d

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.44-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.44-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 cb104a3744852122c5c5872dacc561303317e32087367b826d019f3ff618c6e1
MD5 d93cb76d85652d9e0bf0cc8ae578d42e
BLAKE2b-256 ff877bb92d9d49029b0b3433e4c0ecf83f9f926f3561328287035082928d4d2d

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.44-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.44-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7c40bec3bdb8f2a9232291c319016b187c0ac2054d2d3d77c4dbd4839544514d
MD5 b6091a1de80549151aa34e743134f215
BLAKE2b-256 b5c29c36d84196e6cf691500186de9bc8295deb86e2e766a0f717b03d3ec57a5

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.44-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.44-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f23d0d466e66bab3ea593ce90b292d45323acecbc4543920701c3359f0cd8fe7
MD5 9e3395190bd798fbec9bd657b6dd5d0a
BLAKE2b-256 8430cb6119ec9e505f5e8955f13925e428c3cfe93e5fefb429c0baa73738c106

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.44-cp314-cp314t-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.44-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 7adaf4906fcd973c2e01485a8f72c69b571a791e34f0b50e860d251fed8ce105
MD5 14828b86bba0b8cb8594d505b7096253
BLAKE2b-256 7393c44b87c2413082f2f319e67be02f74999e67fa1e572ce13c040335de8bd8

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.44-cp314-cp314t-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.44-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 92b529c2f898e4e76be4dbdda12cca4c17d1ea3c47c5602b24148f6ea1a2671d
MD5 18a1d067eba01add4beb59713fd39746
BLAKE2b-256 cb05b2c31cf9afc10ffde33c3222d1cb26715517525c573fbe81968c922365be

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.44-cp312-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.44-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b98f4a5457f9a5a87d0253c6d29006dd472b6e41184196583a3e37c4b4d8cd45
MD5 17c3295ee83b3e44e0579e9fe8b2615f
BLAKE2b-256 6af000f8fec174e270f86ff9699c213edbe9c29150684691e58c956c92d52c6d

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.44-cp312-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.44-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 95bcbbd3cd0ecbb7646965ad95fcd689211ca51e5c863df0613897399a70cac6
MD5 c97571de32ca35cd101f6ff9e426b8cc
BLAKE2b-256 66cc887ccb38eed0a6d8a01c61d96bc5e19cc372b2f3ab8e77a12516f5a086e7

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.44-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.44-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 781498c9dfedd328dea5ea67d52b44abeadc6f3c95a4f67bab502d6759224520
MD5 b0fb1bea67bf6b9b0290037cc3090bdf
BLAKE2b-256 2cd9707638da687ba0d1d9130845ebaa7d33a7ec3842a427130d2b9fd5143654

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.44-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.44-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7c860125a2889b198b0e838ca0038cd19d330797f62c30986cd3cb330d4c918b
MD5 58819eb1d495e3b276684251091b1955
BLAKE2b-256 09ecaa3a8c25c727ab2082208c86f855812faf5dab967cf518dc759ca8782716

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.44-cp312-abi3-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.44-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 58f67fb877e7f22bad815cb19a13942b96fefce57c010ddff2e08b112aaecc27
MD5 de6be74a8e91c170aaf4f89b18f2f773
BLAKE2b-256 2f7a676a0bc99834363791a5642106fb746337ce68682d7e535043fe0a30db26

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.44-cp312-abi3-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.44-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 e3ca789d56f3c7cc67a9305ba2d195c9e51301ef59b7f0bd33f29ff4bb8585f1
MD5 61518dc5f13c5be8d338bc850cd44140
BLAKE2b-256 33abfa0527f35750de59f6905b5f67cf9976fca3c395907cd761813361bd16c1

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.44-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.44-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4d1198c8df23f051f0efdab1a7646c8611cce37ae6d17c1bff354a90db3fc09b
MD5 a6c3285651673de5ed88748ba9c254d7
BLAKE2b-256 107967974ef431a820cffc75cce834c16258d6ca58b2c6bd83ba3bcd2b8b3ff8

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.44-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.44-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 af7e6d313415829405db73f76d4a7df05cc7a7ab8910a15cc7ed06a5a816e450
MD5 1d6215674d5dbd31f7e1f6a3dd7a2550
BLAKE2b-256 c4e87ac1f8f89bf93b08832d5cb14f6a548dea0e26e9626cc6f9bd8142fc1e27

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.44-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.44-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 55d6f34f41d45135501bac435c77e1a11c09d1495a9e4079a2c618dac9d9b88c
MD5 7594ca62fe75f6f277e54c8bffa03bef
BLAKE2b-256 91a9694563cca3e0fb5bbe48def60d9c4d391ecdb057ab562ed36053c0cbd399

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.44-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.44-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5f821ff2c21edf131ec7094d9c082371eada9d4323f9ff488c6b685485f1f758
MD5 e65a372c7201074dc65f793c6130cb3c
BLAKE2b-256 e1df5358151f3fba40187cbc4ef9e25fe6169a95c4f364ab3b43e99c7ce562b1

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.44-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.44-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 b6df99a13366cfccffd9262f51b0332e5e476e3e22b00bd776774b98fcc7b768
MD5 3a2e79ef9039748de79bcc1a65b7764f
BLAKE2b-256 8cb332619c80aa96df5d22b76624545b03ea613022a1f39908b2c72d60e3b2c6

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.44-cp311-cp311-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.44-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 ded6b452fcdeb984f33e68b62426d6f93accfbad355ae786fed16ff868d4fb3f
MD5 7f2e518d55b0d666b000ece4a07c0313
BLAKE2b-256 35c4e5aed31e37646167a14291ab353d4ac0646753e066090f4762112d115a1d

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.44-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.44-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 36a9320ecf9b09b5165321f4af8ef99fef00cd9001a71dad35eb8d8ace4c1e4f
MD5 e6d32dace2169a9a47b8e6d93f9d5cae
BLAKE2b-256 b19f4cdb56ec4d211fde2e9d824dc51ac8620a3379a53bf2105b48bc6e9cf655

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.44-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.44-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d0fcfbad3fd36c1ac51c9e878f35cb443e6ff227fdce636b9877a7fc4cda3ea3
MD5 47f2081ed74c4c4e4d67613cca74efd6
BLAKE2b-256 27f01fff5acaa1412e0786b6ee3200f9498332e95b1e97e55780f492921284f0

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.44-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.44-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 54a597e56e241c957de24510d833c955bf2f1e34e2b1d7fa9b17f00ae9cf917d
MD5 5c157a1f0686178e57837eb15512c0bf
BLAKE2b-256 d0085bfb9686a45bb94239f26b644f0f4eec99e0d9e903446501713e0b01fad9

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.44-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.44-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2f2247e55249aadafe1d62fab572f0a0f9384526a5b820e3659e6365ac669e0f
MD5 9a8b09d640cbf5dab5feba0022958f58
BLAKE2b-256 607329cfa914a62bb03720b72d19d140fdd600db8930f4ec422393343a019eb6

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.44-cp310-cp310-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.44-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 3350e24a2d4c9bf2dd2bb149b7e23b148c074c44317a0ca349ab0a7329e443c3
MD5 6d1fdce5c935677eb2b1facd2a47ed3b
BLAKE2b-256 b998215c7f34612ec978daff6eff0961e66600eeba94427d06f9880184548e16

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.44-cp310-cp310-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.44-cp310-cp310-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 701746c8fd5c4339dd4c65222df2bac97a8bf13b7839de6392c665f598c98c42
MD5 b2d5182a14c4efa26ad8c3b97a130813
BLAKE2b-256 44a8a317db8fe931881fd3a5f26ec86b0d3388ecbd4de11c00e627234c14707b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page