Skip to main content

A pseudo-random number generator for JAX based on the 20 round ChaCha cipher.

Project description

JAX-ChaCha-PRNG

A cryptographically-secure pseudo-random number generator for JAX based on the 20 round ChaCha cipher.

The ChaCha cipher was introduced in Daniel J. Bernstein "ChaCha, a variant of Salsa20".

The implementation follows the specification in the IRTF RFC 7539: "ChaCha20 and Poly1305 for IETF Protocols".

Note that the implementation is not security-hardened. Our threat models assumes that the machine on which the code is executed is a trusted environment and we keep key values, cipher states and plaintexts in plain memory.

API

The package is split into two modules:

  • The cipher module is a full implementation of the ChaCha20 cipher.
  • The random module provides a JAX-style API for the CSPRNG based on the cipher.

Random

The package currently exposes basic RNG functions using the same interface as JAX:

  • chacha.random.PRNGKey: Equivalent to jax.random.PRNGKey: Given a seed of up to 256 bits, it returns a PRNGKey object from which randomness can be generated.
  • chacha.random.split: Equivalent to jax.random.split: Splits a given PRNGKey into the desired number of fresh PRNGKey instances.
  • chacha.random.fold_in: !Deprecated! Equivalent to jax.random.fold_in: Deterministically derives a new PRNGKey from a given one and additional data.
  • chacha.random.random_bits: Equivalent to jax._src.random._random_bits: Raw access to random bits, returned as an array of unsinged integers.
  • chacha.random.uniform: Equivalent to jax.random.uniform: Uniformly sampled floating point numbers in the range [0, 1).

Note: PRNGKey instances of this ChaCha20-based RNG are not interoperable with those of jax.random, i.e., you cannot mix them.

Security notice Versions prior to 2.0.0 may repeat random states via the split and fold_in functions.

Usage notes

Per conventions of pseudo-random number generation in the JAX framework, the functions random_bits and uniform are deterministic given the randomness state (the PRNGKey object). The user needs to split the state using split before each call to random_bits or uniform to get proper pseudo-random numbers. For more details, see what the JAX documentation has to say about this.

Implementation remarks

The PRNGKey object is the state of the ChaCha cipher with the randomness seed provided by the user as the cipher key. Every invocation of split generates random numbers from the given state to use as fresh nonces in the derived states, with the key kept constant. The counter in the state is used internally within calls to random_bits and uniform which can thus output up to 256 GiB of random values for each state.

Cipher

The following methods for direct use of the ChaCha20 cipher for encryption are available:

Quick use functions:

  • chacha.cipher.encrypt_with_key: Encrypt a of any length message by providing a 256 bit key, 96 bit nonce/IV and an optional 32 bit initial counter value.
  • chacha.cipher.decrypt_with_key: Decrypt a of any length message by providing a 256 bit key, 96 bit nonce/IV and an optional 32 bit initial counter value.

State construction and use:

  • chacha.cipher.setup_state: Create a ChaCha state structure by providing a 256 bit key, 96 bit nonce/IV and a 32 bit initial counter value.
  • chacha.cipher.encrypt: Encrypt a message of any length using a ChaCha state structure.
  • chacha.cipher.decrypt: Decrypt a message of any length using a ChaCha state structure.

Installing

For the latest stable version install via pip

pip install jax-chacha-prng

Binaries for glibc based 64-bit linux systems (manylinux wheels) are compiled with CPU and CUDA support (you will have to install JAX with CUDA support to benefit from this). Binaries for all other systems are compiled for CPU execution only. This is because JAX does not have CUDA libraries for these systems either.

However, you can instruct pip to instead compile the package from sources via

pip install --no-binary :all: jax-chacha-prng

or by installing it directly from the v1-stable branch:

pip install git+https://github.com/DPBayes/jax-chacha-prng@v1-stable#egg=jax-chacha-prng

This will compile CUDA kernels if the CUDA library is present on the system, otherwise only CPU kernels will be built. To check whether CUDA kernels were built and installed, you can check the return value of chacha.native.cuda_supported().

Note about JAX versions

JAX is still under ungoing development and its developers currently give no guarantee that the API remains stable between releases. However, recent releases were mostly stable in the interfaces required for JAX-ChaCha-PRNG. In order to allow usage with JAX-ChaCha-PRNG with the most current JAX release, we therefore do not currently constrain the JAX version from above in our dependency list.

However, if you should encounter issues with a new JAX release at some point, you can use the compatible-jax installation target to force usage of the latest JAX version known to be compatible with JAX-ChaCha-PRNG:

pip install .[compatible-jax]

JAX-ChaCha-PRNG is currently known to work reliably with JAX versions 0.2.12 - 0.4.25 . We regularly check the compatible version range, but do not expect new versions of JAX to be immediately tested.

Versioning

Version numbers adhere to Semantic Versioning. Changes between releases are tracked in ChangeLog.txt.

License

The software is licensed under the Apache License 2.0. You can find the full license text in LICENSES/Apache-2.0.txt.

Single files included from third parties may be under a different license, which is annotated in the file itself and a full license text included in the LICENSES directory. The repository is fully REUSE-compliant.

Acknowledgements

We thank the NVIDIA AI Technology Center Finland for their contribution of GPU performance benchmarking and helpful discussions on optimisation.

Developing and Testing

We welcome any fixes, improvements or other contributions via pull request to this repository.

Before submitting your changes, please make sure to run our Python unit tests via pytest tests/ and ensure that they all succeed. If you add new functionality, please also add tests.

If you made changes to the native C++/CUDA code, please also compile and run the native tests:

mkdir build
cmake -DBUILD_TESTING=On ..
make -j
./cpu_kernel_tests
./gpu_kernel_tests # if you have CUDA installed and a GPU available

Project details


Download files

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

Source Distribution

jax-chacha-prng-1.4.3.tar.gz (226.0 kB view details)

Uploaded Source

Built Distributions

jax_chacha_prng-1.4.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (313.8 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

jax_chacha_prng-1.4.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl (56.5 kB view details)

Uploaded PyPy macOS 10.9+ x86-64

jax_chacha_prng-1.4.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (313.8 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

jax_chacha_prng-1.4.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl (56.5 kB view details)

Uploaded PyPy macOS 10.9+ x86-64

jax_chacha_prng-1.4.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (313.8 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

jax_chacha_prng-1.4.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (56.6 kB view details)

Uploaded PyPy macOS 10.9+ x86-64

jax_chacha_prng-1.4.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (313.0 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

jax_chacha_prng-1.4.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl (55.7 kB view details)

Uploaded PyPy macOS 10.9+ x86-64

jax_chacha_prng-1.4.3-cp312-cp312-musllinux_1_1_x86_64.whl (684.8 kB view details)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

jax_chacha_prng-1.4.3-cp312-cp312-musllinux_1_1_aarch64.whl (668.7 kB view details)

Uploaded CPython 3.12 musllinux: musl 1.1+ ARM64

jax_chacha_prng-1.4.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (314.2 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

jax_chacha_prng-1.4.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (148.2 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

jax_chacha_prng-1.4.3-cp312-cp312-macosx_11_0_arm64.whl (54.8 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

jax_chacha_prng-1.4.3-cp312-cp312-macosx_10_9_x86_64.whl (57.4 kB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

jax_chacha_prng-1.4.3-cp312-cp312-macosx_10_9_universal2.whl (98.4 kB view details)

Uploaded CPython 3.12 macOS 10.9+ universal2 (ARM64, x86-64)

jax_chacha_prng-1.4.3-cp311-cp311-musllinux_1_1_x86_64.whl (684.9 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

jax_chacha_prng-1.4.3-cp311-cp311-musllinux_1_1_aarch64.whl (668.8 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ ARM64

jax_chacha_prng-1.4.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (314.0 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

jax_chacha_prng-1.4.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (147.9 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

jax_chacha_prng-1.4.3-cp311-cp311-macosx_11_0_arm64.whl (54.3 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

jax_chacha_prng-1.4.3-cp311-cp311-macosx_10_9_x86_64.whl (56.6 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

jax_chacha_prng-1.4.3-cp311-cp311-macosx_10_9_universal2.whl (97.0 kB view details)

Uploaded CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)

jax_chacha_prng-1.4.3-cp310-cp310-musllinux_1_1_x86_64.whl (684.9 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

jax_chacha_prng-1.4.3-cp310-cp310-musllinux_1_1_aarch64.whl (668.8 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ ARM64

jax_chacha_prng-1.4.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (314.0 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

jax_chacha_prng-1.4.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (147.9 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

jax_chacha_prng-1.4.3-cp310-cp310-macosx_11_0_arm64.whl (54.2 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

jax_chacha_prng-1.4.3-cp310-cp310-macosx_10_9_x86_64.whl (56.6 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

jax_chacha_prng-1.4.3-cp310-cp310-macosx_10_9_universal2.whl (97.0 kB view details)

Uploaded CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)

jax_chacha_prng-1.4.3-cp39-cp39-musllinux_1_1_x86_64.whl (685.1 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

jax_chacha_prng-1.4.3-cp39-cp39-musllinux_1_1_aarch64.whl (668.7 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ ARM64

jax_chacha_prng-1.4.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (314.0 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

jax_chacha_prng-1.4.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (148.0 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

jax_chacha_prng-1.4.3-cp39-cp39-macosx_11_0_arm64.whl (54.4 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

jax_chacha_prng-1.4.3-cp39-cp39-macosx_10_9_x86_64.whl (56.7 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

jax_chacha_prng-1.4.3-cp39-cp39-macosx_10_9_universal2.whl (97.2 kB view details)

Uploaded CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)

jax_chacha_prng-1.4.3-cp38-cp38-musllinux_1_1_x86_64.whl (684.8 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

jax_chacha_prng-1.4.3-cp38-cp38-musllinux_1_1_aarch64.whl (668.8 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ ARM64

jax_chacha_prng-1.4.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (313.9 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

jax_chacha_prng-1.4.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (147.8 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

jax_chacha_prng-1.4.3-cp38-cp38-macosx_11_0_arm64.whl (54.3 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

jax_chacha_prng-1.4.3-cp38-cp38-macosx_10_9_x86_64.whl (56.6 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

jax_chacha_prng-1.4.3-cp38-cp38-macosx_10_9_universal2.whl (97.0 kB view details)

Uploaded CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64)

jax_chacha_prng-1.4.3-cp37-cp37m-musllinux_1_1_x86_64.whl (685.1 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ x86-64

jax_chacha_prng-1.4.3-cp37-cp37m-musllinux_1_1_aarch64.whl (669.0 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ ARM64

jax_chacha_prng-1.4.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (313.8 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

jax_chacha_prng-1.4.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (148.5 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

jax_chacha_prng-1.4.3-cp37-cp37m-macosx_10_9_x86_64.whl (56.1 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

File details

Details for the file jax-chacha-prng-1.4.3.tar.gz.

File metadata

  • Download URL: jax-chacha-prng-1.4.3.tar.gz
  • Upload date:
  • Size: 226.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for jax-chacha-prng-1.4.3.tar.gz
Algorithm Hash digest
SHA256 c22604db0900dea34d683de4d3e290c5fd2b974bb583284cd6a8bb06db666d19
MD5 9f79d50d8f5e15dde59a34ec41b2779f
BLAKE2b-256 0f4082d102bfa9083110f3f7bc58cf300aa0c4a0fc957ca505a94a43a70127e6

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4bb0d9bf6aa6f3a2df6826b73d7a043598f7b6c35192d6e144e037b3be3ee082
MD5 bb0f68c3bfbeb1cfcedf8909e1e41ce9
BLAKE2b-256 81e964811d08a984a5b82b9bfaf0dc966daa0c38772cc062e96a985bbddb70b4

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 801184e170e27a140f13208158964610db4448e5f7d9453437b9612592e8315e
MD5 c1a08afb6b9c31dc09fc89bc592a1ef4
BLAKE2b-256 5eca3f757162adfb411890189932acebe91fdbd46c0824253c902f95644c3b52

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1709448593379ab1957a49a2c8ca5e3e98b2d4453442f71bff7791472da08596
MD5 76d1ecba0bbf6088cdea6a73e39cddf8
BLAKE2b-256 f18156f4119e7d616a806c500575b92712e43bcb0873e1b387484aaa887180f0

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 33a16600cf448a575bab3846a9c2054ff348d7e7e63f66df9ecbe621f47d0bda
MD5 94f0f4ae9c7046df53168136297d1f54
BLAKE2b-256 a3a15b3503b19fe36a22a7c1732e71ede8e81fd9564130aa232ac7db31616277

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 43eac730077ce8ba460b4c52f83f0692a762c1826abe4167c8afeae12e4835f0
MD5 01b09c27a94bc25a8743f7f5229eeeb3
BLAKE2b-256 21c779378bda8f98f0dea50946626cc0e496ac8439de3882ef56b98dc2f4dd4c

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3aac599c6b257e28697f38395b1d105f70f78437d342b8473e81f163bf993f50
MD5 25f71f42a868b34eebbef9ea909cf8df
BLAKE2b-256 9e55691f9ccf64edb15017ccb281eb8ed26126b82a498147bccd4ed0cd5a0cb7

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 119814dee4d6232ab89dee3a784029f4b69717f2ddbe70119de29ace6ec000c9
MD5 449d337377127b53a8f7b1b8603faeb5
BLAKE2b-256 f11549c1fe87c55d78c2530b1a38df8d8ec42fda7b556d1c6fa212b92c816c33

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4448a940e579cdbe36e2247d3992cbbab68ee6af512d2899953db435839aaf08
MD5 f47e74733ecb3db3c30827da1071ea1c
BLAKE2b-256 e1648446b815f959ca20fefce94faacbbf10120f5222d0c60e530a46e7e53ffa

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 24607a623f13173cdd4c604974ec1cdf8b6dabdd6d9ca0c78f2b890168f522a8
MD5 fec5ac4af945e8b5e8f70ba4d1da6820
BLAKE2b-256 d0fca9448c738ec9068e7830b65af98ef0e863d88861e1113be11aaaf8a8a881

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8c565c6b9110126cb9ea8559463e78a1540fd6fda24c52ca305811146ce32074
MD5 a1848d61c9d0021f94d82934d1211c2f
BLAKE2b-256 823666b6ec5b838f10db57cb103299caf22ffa7ad816a71800880aa3c87aa3e1

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a6e538e70f49f143464893d12b16840228c546ffafd85d111fe3d3490a829ac0
MD5 c05f51e704853c67a080ed028435dc5a
BLAKE2b-256 dbd517ae421ba437cd75d3870dc667becfd8b86cb4aad90c02c7202e285f890d

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2fba4f3181d047a488b449fefffcc3e0bea43c496ed0ee6effae8bfab99dea46
MD5 bcfb1c93abd51c6f47b249f7290dace1
BLAKE2b-256 546e52a4359e24e2a267e12e65f7cba439b3a84072196b2f1a6d36046e139f55

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp312-cp312-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 ca800be820408413851619049b91e205af04741e9eacc206e48b3b35efc9c145
MD5 c01398bf6a3e1a5c444d2fac8a402206
BLAKE2b-256 ab6201ea331f1d371c7b60c73a45b4fa8fa2c2ff7dcf5f29400a6a975946b0d8

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp312-cp312-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp312-cp312-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 960d400bb61979a33a356a468031cf24cdaf40e11d1646d6c59bb82c511927bb
MD5 5eb5a1a0a09c123fd2f750fc685a14a7
BLAKE2b-256 fa47cddd3b7d7c1e7eccb50a24e0344c3b28897b96e4fe119df938119d17ba5e

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f0fb09991cac4b716e95f1111c2f46b99f27196993d50a5d222a3bc211619a29
MD5 6262063690dd4c8dcdb5e83ca076967d
BLAKE2b-256 d2232ef2e4639bc391524062cac5a63e03bd3d4c8fc9b3623f9c891d35d7e522

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f38c68f797fa04ec5d393d5d9885a01e2d841c6e356894a95cf2d0e0acca65c4
MD5 44da1f9c3abffb46199c5c99cacb75f7
BLAKE2b-256 42dfd6cace240d8ad46d6292b7fea294e9169a9514caa396c10039cbed947683

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d90acdfc28699c16f58b3daf71fc90b745b7f9573b2f2784fd248cb70d589ba5
MD5 b3be0befa8e34431b10a7c4d49782624
BLAKE2b-256 5a3c38584b682c08d7cab1732a491ca09fb77219900888687e81c9475bc91f88

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1e00c25b6264967792ebf5977f78f4a4a7d6e54a5590f7a4dbe3bcee113bacc0
MD5 c420c93486461c9687072b4e448a60ee
BLAKE2b-256 f686996cc4ece2ee7f4ba0b052fbe474ea7b37a3d2fab1b89a8c069ad2102e5d

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp312-cp312-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 a86ea04074f01ae2dcc44ff95830663b988891b45592b236625b343d4a69f22c
MD5 3a0e1b054d693e9ffd42473351f6274a
BLAKE2b-256 b545e665acd16a759084d4112f9de7eea84c1484a957e4993146c4dbca8ccb32

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 1bdd6f1498d34b4dda32c1c2a42140b0aaba06b4bfc5528d7e1efd152b9b8726
MD5 ed5fa3d38f116a033622de8e6609433d
BLAKE2b-256 b9e6db6486699b7d91e2b6073ea255a596a7d5045ba04dfd7267b1b9c8124df6

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp311-cp311-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 3890c24e8ab0a7aff5082f53643330e482beb64bc7b6757dca5c4e014cad9353
MD5 55c89e3cd52c89f535bbbfe4699fbdb4
BLAKE2b-256 a1d34e6c65e9367b766550d06366947f84e4aeb5c821ba23a30ff4f2b2074541

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 39bc9ae8dd6890b37c4cab278721123e240c7250e1ffed3a0e3df7779a05beeb
MD5 44c615beedae039e1764061dddc8169e
BLAKE2b-256 c56c74c0ba2424236d62db11c1b3614a8c571600bbe5bce505453bc821694d95

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 58623b4309f87358d0093e335dd396f3694857ad5b69634c41aaf0730c0b61ad
MD5 2ea385a1fc8a5610525c70687edc2dba
BLAKE2b-256 6c77297e809a2463baee7749bc90ea24f31a98109ef56b70eafffd3a6b5780c3

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3a96e05b53b34ee283fdc827fcfc9794186cfd7424a9481be0fc2f71e94023ab
MD5 40e6a620a1fbfd9b00606128f37847e5
BLAKE2b-256 ebbf133be9b8b92635d6f88bae549821feb7ed12471a6f287b36d1a2bff2d054

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 61aadc943ede8228e116aa2d1e82f655172bed7b7d8d5aa89ff3c3294db90117
MD5 0ce833572a1fcce3a1a8221455aafaf2
BLAKE2b-256 535c55c5470a9d14faf3a97aecb2b871cafae59d0393097ffd01bfd5f09d147f

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 aca80384ceaf9a3178b74da5778dd5fb90c07e178dd6fa8290062535fc63d200
MD5 3b3e659bda995be462bae1378fb3827d
BLAKE2b-256 95a6418a2cc0afe589b8e0b78c60bf0bca3278fcf02e6bfc06feb9427d170620

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 8cfc609e7e692c5424c4bb00096c9f2e407f09daa6e5bd1dd7eb4f15785530fb
MD5 e618f897b49e18ecfe372212141a1346
BLAKE2b-256 ec91add2236ab389823f06a12d2e1d67de73a0b1d8dcf4e6c8315c8f037ad6f4

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp310-cp310-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 9963ed29826fca075bf7049ab84b7066d18686e134a3e41a6785c55ef055cdf9
MD5 f35c48395c6a32951705190b841bcd80
BLAKE2b-256 ba325310ae1a29bced42d877df3bcb523a7fbc8dbb82189dfcbc4a1cbe217930

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b11dae3230ef2bb818b328592bc4e0c527c031f22c10edcc2e860a92c34bbe0f
MD5 f830b052e750447e915562f1cac48535
BLAKE2b-256 6eda49bbaed7d3998e91b044e7dc468596fe903afc8bc638e8a0032122c8920d

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 26ebf5e93746df0c504da4e3db3e82396f13896e5c5ab368e1029bf2e798d358
MD5 7675b558fc57986fd86525fc08bf98a8
BLAKE2b-256 307882c4db6b3eed6edc7dae71c8ece83dde99943616426fe22f1eb76cff1c79

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d4935afd8626fe81809235b188b5516007121734f78001fc4d27f76f91eeed48
MD5 8fc21af68b22233b9a536735f5163bbd
BLAKE2b-256 e256f1d71373abb17465461a044600ba85ac9d2a2a2cae227abc6d30a2d0fcde

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c4b2c907c3c7063ccc8aade27c0ec7a6522b57f82b74a29dbfba86920a53082a
MD5 a78bcece75869ee57e09c58d6892b3c2
BLAKE2b-256 ef8cd844714560fa99664e1ff2c1a5e07cdca638c86411233b71b0e87e82f661

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 45594dccee8f4466395139a4f982fd17cba80bdb710d950a60315b6796386d85
MD5 832d87c52fe9207a54c47ca81eb94263
BLAKE2b-256 a208da1abccc258327999b91d86ca1a3003a0eaadde12ba1f033a4baf103ec65

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 c963b1911d0e4c58a78e6f3139b057a78e603f1548f60001910654399cf2af5d
MD5 3f0631137af88a806a2bee21f3ec4b6f
BLAKE2b-256 49733337038bffd911e04b8f68a118ff96b61d4f1a432d74614e37a449adb12a

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp39-cp39-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 6718a12cd8f7919a4dbcbeb66079b7d08aee10605c525d5c60fa7fb2421eaa42
MD5 529e35dd14814fb76a2dcd92e96b7d05
BLAKE2b-256 07a880a5c5b1007600e68fc0ff5825c7800ea457ad49b8fa65cf8ddc979e7352

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a0e30b3f1b4adfea0ab2ec15349ebf0543c620f2c81ec1e91856f569ab9b273c
MD5 c3c1d6c334937d252bd62d0d3627c6ef
BLAKE2b-256 207be016484f57d6c57798b5228e8d45668962973a9851ddec78c61904b81664

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 50bbc50f49487e465e1cb3c0d0546be61649df00db6aec9dd2a0f55ade317721
MD5 9c7582c8c61d48aea9dd399827fe5b2a
BLAKE2b-256 3a4b06c7384d2f32713ec8361bab2e1f1a9a82217bf98fba39b8c4238197f7d9

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a605fd60332e56dc9f0f3c80d8c20d1d071df99040b9f753a7070e11c8dd552f
MD5 1ac0b6673aef4c72f936961451499210
BLAKE2b-256 515eeef404e3901f8ec5d14b731bbbca5be27446e0433b603af5ab2dbb70d0f7

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 781f9138d7bdbfc4e4dddbafbf2ecd76bb3b71544dd6df56baf588cfe98e9da3
MD5 508fbeefad8c8ff5441c5f924ec483e4
BLAKE2b-256 bedf0330647135c23020ababfd7c20051ce9b287ae66afe7cea27bc2c81b74cd

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp39-cp39-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 92e453520d396fabf1ad5944e45a7a7febdde3dcf179d39255dc5d1b3bef708d
MD5 1d38ed0dbc85bb76dc340d042ccf67e2
BLAKE2b-256 5bb4749ba59843b4cb5bb9875e0f226022b30d157bdacd160cdc012b86b402a8

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 fe53965745fc1027767a58f3822de2e9d18c91572f39f9346f5c09e91b2a115a
MD5 23f85e10fa3043f18e07cc3330876ba7
BLAKE2b-256 cb4c9a3ad9b59951a8d6d3ef2fd2cddb1f3bca5327b97279e69987255722ce3d

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp38-cp38-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 f231c61728e0695765793ec3ef653b94bee1daba09c6a789ad41f24e4b298a7e
MD5 34b6af57e4bc820f63ee45c9fcb7b762
BLAKE2b-256 ede9cc5af16b70e3e69134cd695d22a3be2d065567a7deb493f12a6f7c655d94

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a64086a75c82c2e9b8c691423508f85b5975c59df3e9fff293754dd9b5fc9972
MD5 0c0a896ff3d64ce8042ec1c72a3dec91
BLAKE2b-256 319263ad9d4c39ea6385a6a202eee6414b72cfb5def2e94810d1dd52efff8f02

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a456cfc0367414afd91000d828e0d6664f6a2d44ff29353c259b9018d613169d
MD5 8f2d19b1afa807fbb6d350a943b5ce33
BLAKE2b-256 871627003c8a01b87ec2a5a7199c94b74956ef1947972e568e88ee7e27a2c604

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a11b00ae97e65a09055787e8a654c1ecf8a61c5fb51d1dfc4b04310eeaf5430b
MD5 053bee31a549a3a6038b354a153af838
BLAKE2b-256 f761786d35b412ffaccfcbf921fc3d15b8736b25e34ec33b08259596859daa9b

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4ff70acce6e81ea7b1498493d5fa1d669bb6ecd500639a8bcfa00a5539a9de46
MD5 8e5d06339046dc5320f9d5547b86ac7b
BLAKE2b-256 9de73964b17201e742215d4785c2e9b1e4fbe54dbb8ba9579193d9b016dfb636

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp38-cp38-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 a1f0717baaf9dfd947c7d2269f16e783d59d655715709a942dfed490ae1ce06d
MD5 f04e3060d96d6d62bacf88b0b743ce74
BLAKE2b-256 a147c4cd350ffd8d1253a4d1f9a8247f534748a9ba753e243de93decdd59f6fd

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp37-cp37m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 0b4659ff5881292b42ff1013de3146d457f64734bb0529860b503125d1851fa3
MD5 df56e4fbb5164f68e2234c6ceffae75c
BLAKE2b-256 57b67bdbd502cbc08b15a6f795585bd16248995201711247dba7b325d6955649

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp37-cp37m-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp37-cp37m-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 b563a62c032a86fde4f561682797ebbc988bbf239d804d90b8abf9b362808649
MD5 1487fea6e730715b8389547a1f09f187
BLAKE2b-256 07a8e3fa29c78781f28c34e93d9e76018ade1e392df7171ecf52bebbafca2804

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 24edc608aff57829608ddf838cbdbddced5f6dec74d1d04dfa264445afdf27f5
MD5 91db6709a1ac950f94db44b183413420
BLAKE2b-256 475f73752ffa643c7fb57bf347295d2dbd22f2b49cd2b8ed05fa722ed7b98b38

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f6de8be8fbf8d5664e5ad8dcdfcbe1cca2719aee8d90ffe6819f5df0a79a2521
MD5 c3084448ddbd4cbd84687db43d53fc10
BLAKE2b-256 100b1cf3922dfd9b51da3b576a2feb783d55da39437225406c73a82fd5aa6f4f

See more details on using hashes here.

File details

Details for the file jax_chacha_prng-1.4.3-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for jax_chacha_prng-1.4.3-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 73abcd998c0fb0fddc4a37b98f413b19828a4d7f95dd6620a5d18fcbd09d75cf
MD5 f9144d481db5d69192da1e740677f5a7
BLAKE2b-256 e5fc5aa176ca41bbfc1d2343b23782841f5d2c66d95fba8ffde9a58bd497f319

See more details on using hashes here.

Supported by

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