Security framework for Zope.
Project description
AccessControl
AccessControl provides a general security framework for use in Zope.
Changelog
For changes before version 3.0, see HISTORY.rst.
7.2 (2024-11-03)
Prevent untrusted access to AccessControl.userfolder.UserFolder.data (fixes GHSA-g5vw-3h65-2q3v).
7.1 (2024-10-10)
Add final support for Python 3.13.
Respect PURE_PYTHON environment variable set to 0 when running tests.
Let the roles access in rolesForPermissionOn interpret AttributeError and Unauthorized as “no roles definition for this permission at this object” and report any other exception (for the Python and C implementation). We have to treat Unauthorized like AttributeError to support Shared.DC.Scripts.Bindings.UnauthorizedBinding which raises Unauthorized for any access.
7.0 (2024-05-30)
Add preliminary support for Python 3.13 as of 3.13b1.
Remove support for Python 3.7.
Build Windows wheels on GHA.
Make dict views (.keys(), .items() and .values()) behave like their unrestricted versions. (#147)
Make .items() validate each keys and values, like .keys() and .values() do.
Fix build errors on recent macOS versions.
6.3 (2023-11-20)
Add support for Python 3.12.
6.2 (2023-09-04)
Fix information disclosure through str.format_map. (CVE-2023-41050)
6.1 (2023-05-22)
Update C header files for ExtensionClass and Acquisition from the original packages where needed. (#140)
Add preliminary support for Python 3.12a5.
6.0 (2023-01-12)
Build Linux binary wheels for Python 3.11
Drop support for Python 2.7, 3.5, 3.6.
5.7 (2022-11-17)
Add support for building arm64 wheels on macOS.
5.6 (2022-11-03)
Add support for final Python 3.11 release.
5.5 (2022-10-10)
Switch from -Ofast to -O3 when compiling code for Linux wheels. (#133)
Add support for Python 3.11 (as of 3.11.0rc2).
5.4 (2022-08-26)
Add support for Python 3.11 (as of 3.11.0b5).
Support default argument in next built-in function. (#131)
5.3.1 (2022-03-29)
Prevent race condition in guarded_import (#123)
5.3 (2022-02-25)
Provide AccessControl.get_safe_globals to facilitate safe use.
Honor PURE_PYTHON environment variable to enable python implementation during runtime.
Add support for Python 3.10.
5.2 (2021-07-30)
Fix Appveyor configuration so tests can run and wheels build.
5.1 (2021-07-30)
NOTE: This release has been yanked from PyPI due to wheel build issues.
Fix a remote code execution issue by preventing access to string.Formatter from restricted code.
5.0 (2020-10-07)
Add support for Python 3.9.
Remove deprecated classes and functions in (see #32):
AccessControl/DTML.py
AccessControl/Owned.py
AccessControl/Role.py
AccessControl/Permissions.py
Add deprecation warnings for BBB imports in:
AccessControl/AuthEncoding.py
AccessControl/Owned.py
AccessControl/Role.py
AccessControl/User.py
Although this version might run on Zope 4, it is no longer supported because of the dropped deprecation warnings.
4.2 (2020-04-20)
4.1 (2019-09-02)
Python 3: Allow iteration over the result of dict.{keys,values,items} (#89).
4.0 (2019-05-08)
Changes since 3.0.12:
Add support for Python 3.5, 3.6, 3.7 and 3.8.
Restore simple access to bytes methods in Python 3 (#83)
Clarify deprecation warnings for several BBB shims. (#32)
Add a test to prove that a user folder flag cannot be acquired elsewhere. (#7)
Tighten basic auth string handling in BasicUserFolder.identify (#56)
Prevent the Zope 4 ZMI from showing an add dialog for the user folder. (#82)
Fix order of roles returned by AccessControl.rolemanager.RoleManager.userdefined_roles.
Add configuration for zodbupdate.
Add TaintedBytes besides TaintedString in AccessControl.tainted. (#57)
Security fix: In str.format, check the security for attributes that are accessed. (Ported from 2.13).
Port override_container context manager here from 2.13.
Add AppVeyor configuration to automate building Windows eggs.
Fix for compilers that only support C89 syntax (e.g. on Windows).
Sanitize and test RoleManager role handling.
Depend on RestrictedPython >= 4.0.
#16: Fixed permission handling by avoiding column and row numbers as identifiers for permissions and roles.
Extract .AuthEncoding to its own package for reuse.
Declare missing dependency on BTrees.
Drop Record dependency, which now does its own security declaration.
Remove leftovers from history support dropped in Zope.
Remove duplicate guard against * imports. (#60)
3.0.12 (2015-12-21)
Avoid acquiring access from module wrapped by SecurityInfo._ModuleSecurityInfo. See: https://github.com/zopefoundation/AccessControl/issues/12
3.0.11 (2014-11-02)
Harden test fix for machines that do not define localhost.
3.0.10 (2014-11-02)
Test fix for machines that do not define localhost.
3.0.9 (2014-08-08)
GitHub #6: Do not pass SecurityInfo instance itself to declarePublic/declarePrivate when using the public/private decorator. This fixes Conflicting security declarations warnings on Zope startup.
LP #1248529: Leave existing security manager in place inside RoleManager.manage_getUserRolesAndPermissions.
3.0.8 (2013-07-16)
LP #1169923: ensure initialization of shared ImplPython state (used by ImplC) when using the “C” security policy. Thanks to Arnaud Fontaine for the patch.
3.0.7 (2013-05-14)
Remove long-deprecated ‘Shared’ roles support (pre-dates Zope, never used by Zope itself)
Prevent infinite loop when looking up local roles in an acquisition chain with cycles.
3.0.6 (2012-10-31)
LP #1071067: Use a stronger random number generator and a constant time comparison function.
3.0.5 (2012-10-21)
LP #966101: Recognize special zope2.Private permission in ZCML role directive.
3.0.4 (2012-09-09)
LP #1047318: Tighten import restrictions for restricted code.
3.0.3 (2012-08-23)
Fix a bug in ZopeSecurityPolicy.py. Global variable rolesForPermissionOn could be overridden if __role__ had custom rolesForPermissionOn.
3.0.2 (2012-06-22)
Add Anonymous as a default role for Public permission.
3.0.1 (2012-05-24)
Fix tests under Python 2.6.
3.0 (2012-05-12)
Added decorators for public, private and protected security declarations.
Update tests to take advantage of automatic test suite discovery.
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
Built Distributions
Hashes for AccessControl-7.2-cp313-cp313-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6b79330739939c7979c972e3c8b3b997650048d87655cc213a310d5b5eb30742 |
|
MD5 | 8a902817a022dccdca22f3d0d575bd1e |
|
BLAKE2b-256 | 81260a2b17864e034b207016d3067afae30ffa30ac3b545dfc96478ae4108c1c |
Hashes for AccessControl-7.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8aaae5928084f1918814e5c3134857dad9961598c890f80d86e47d5a13c86d1f |
|
MD5 | 7820ed16773532ca3561616bb5a54edc |
|
BLAKE2b-256 | 8e85207f9cfed81eddbc4637d6f549d9dbcfe3e9a21178ddce673f76a67377b8 |
Hashes for AccessControl-7.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6eb36ff878a070edb7f25356c64327b2d11e4d52fa348391eb244a0c3bf1a7be |
|
MD5 | 9751dfc7671675a6093b8abd844dc0c4 |
|
BLAKE2b-256 | bbf226add981f1bacaa206c745019ad120bd90d8ccddad316b06014e3105b21d |
Hashes for AccessControl-7.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a9a9b2bf2b5858a63cb3947b235017991bf526d61ffe29575a0eba0be147194f |
|
MD5 | c05b2bf588d5c2206deb4dc0c2b954ac |
|
BLAKE2b-256 | fc302be52a2f8f14ef4acca7e6c8df18869391eaa88cf3be4619664028a3e16b |
Hashes for AccessControl-7.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 844242ff91cf20908863eb78c682276e37abfd4dc5491f19a7947f7703cdfea1 |
|
MD5 | 6acde161bdfe9a225a6d907b7513f561 |
|
BLAKE2b-256 | d85695badf5e50370abc020b16246f7b84d72c114b6e16602ae47c7d7b4720aa |
Hashes for AccessControl-7.2-cp313-cp313-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3155f57b00c680d5efbd76e51c42ab2a930cb257675f5a4b725cd8928c2be6dc |
|
MD5 | 9903d6a10001529a06b7aa9e6464c9ea |
|
BLAKE2b-256 | 690a0109170d5a7fd962dcd06a1afea50791858907f0e196993ee6188a1470e3 |
Hashes for AccessControl-7.2-cp312-cp312-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 32ae5837702356ca302fde16bb796961d27715e958ca8bde27c8eeb08b708e5d |
|
MD5 | e544a9b404d1579b3b0896022031a642 |
|
BLAKE2b-256 | 4c524520b35508b486adcc9c0724ad4b61a818ab6f26148f5009e284af66c9e8 |
Hashes for AccessControl-7.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2f587a269a99ff4d7335008dc1bdfe219696b746859c306c7cabecd3afd775a3 |
|
MD5 | f64b4bfc94f656eb32e4b14c97b271f2 |
|
BLAKE2b-256 | 94aedb4344a41c02522df5854d0edce3b638a92c1b037bd4d6b36f65d677b193 |
Hashes for AccessControl-7.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a92cbe0ab08f3c8680079f5c2ee0e10de68bc60fb92454f71d269e6aeaf7ca09 |
|
MD5 | 4ffad996b804808301f8a7cf5fcf9a0a |
|
BLAKE2b-256 | 755ef769db2e8389f36fcc50ab60083719e06ce6e122d2028993d17f1d74e2fb |
Hashes for AccessControl-7.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 13b68217275fb038b69234e0b9cb3ec1b4ab3dcdc752eb65a06df95ac4586623 |
|
MD5 | 379f55e6d752973943efe3deb9b0ed41 |
|
BLAKE2b-256 | 55efef880c9f10dbfa20d7cc4ba17fd8e6cfe49afbae8ea731d687c524438d98 |
Hashes for AccessControl-7.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e19f58685e63aed611448344651a8aa7f61e50674b88a1119ee31c40c205fd3a |
|
MD5 | b4dc9f157473e84b6f54f91499f0ebb9 |
|
BLAKE2b-256 | 1bd23f98cf0ae4faf458afac3f18aa683b7b83e84d4de25fee972b473fd3bd7b |
Hashes for AccessControl-7.2-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 54e74c681754457c5471a77cad32d539432b8b333f3c058271858737f1d39378 |
|
MD5 | 4b0cdf7af57f0e3d115a4809d7e14e9c |
|
BLAKE2b-256 | 8ddd78238bd23020cf99e03b850813f6c486486f3abd8345257dcbd3eff54726 |
Hashes for AccessControl-7.2-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 37f536cb13934757ac6a9bcbf45a7b786dd93c399a5f73467121ec63b005919a |
|
MD5 | acbd35114a1d5d00a1c1bb054537c753 |
|
BLAKE2b-256 | 23d23779216d986ad2a6cc560471aa7b8849399f21c30d3fce4b96d9e8cdca8a |
Hashes for AccessControl-7.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ddbdbb02e8442101c68b97b6a5e37bb2ebe34b8dc40a52dad2a355691f578850 |
|
MD5 | 0216d74b7f2a5a7a0538fe6a74ed9811 |
|
BLAKE2b-256 | dde0fee91f1bc41dc681d7b64ffe9a16f4c4c1e64c7d656bd4eb6045d9846cdf |
Hashes for AccessControl-7.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 276beb0803fa803d5d7388d29fa168b1a01e2aee0abd40ae6f14458b66eb1591 |
|
MD5 | 5cc46425c93a7f80e949115b7e4693d3 |
|
BLAKE2b-256 | 6a6cc63bf737d704746aa787c2439035dbb087b7f8eebb11c34dbb5549fe62cd |
Hashes for AccessControl-7.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e0722e4b2a4da63c6c53a5c5d329b32122ee33ab43b3490954b0879ad6f21029 |
|
MD5 | c18f472c74923fad4e47569a71c6ce84 |
|
BLAKE2b-256 | c71d99c1620fa0898fd4e0526b4debf1ffe82f208be159268dbd610a8aa3a5bc |
Hashes for AccessControl-7.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 64b27e83813896aa4bdf661c41590cd3d247766c05768ba6bc7bce5217b302dd |
|
MD5 | de5cbbfd492db5662a3fbac6b3387586 |
|
BLAKE2b-256 | d966a9d739ba332e26b96be1c62fe3acd682dd7d686ceaaaa4a3e9e7ea522a3c |
Hashes for AccessControl-7.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ae851c1cbc0a7ff63af3575c51c55c72c5e73bce0953a09ed160541248f11985 |
|
MD5 | c8c1f094a498c6a949af32db70757b86 |
|
BLAKE2b-256 | c26b9cdc26e265686628834d33eaff3f0407f9fe6599b75a95eb420453d2ce9c |
Hashes for AccessControl-7.2-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3af277e239ec7781c5a758e861efaa59797f72b51c78d4b8e264d67228199379 |
|
MD5 | 4177207bd814db6fbee560bebc8a6f70 |
|
BLAKE2b-256 | 5c5909bb761406de17620c7f92382168bffdf3ae7cc2412be811d00c90f2e9ab |
Hashes for AccessControl-7.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 59b89cd98cdd16a22375ec052d337df4cf0c47b84ae9c516c0ea2a4c168f9080 |
|
MD5 | f8da0be4f8475f5bfa9113f01bc097d0 |
|
BLAKE2b-256 | 7fee87e7d2c0daef0cb05412bdaea4ffaea014f68944d6f3a7e17e2601334f2e |
Hashes for AccessControl-7.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c7804292ead31cc3be8b8054ef4670a12ff88b18d61814d4739a195bd4421d3d |
|
MD5 | f1b2f8857d7f8878d1accefe0050688c |
|
BLAKE2b-256 | 033e3aeadfe7938f76f74293e0a192544b7b345ff7cce516c3f3669872594a6d |
Hashes for AccessControl-7.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ae0141e2bc4005fd9524e38d51462a204fd7f78e36ead09915ddf102b2a47f5 |
|
MD5 | e7e1fe6e0a3550b3b5fff2ac47a4009a |
|
BLAKE2b-256 | 646b6ae106823c1c28ac57015686411e76cf653e039ab9d68d641fb8c20e4413 |
Hashes for AccessControl-7.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5726ee38e480aa0324e487db867a01542d588470c9f41cb247bc22663c405496 |
|
MD5 | d5bb57422ad90b8273bf74965de21149 |
|
BLAKE2b-256 | b66293b86c96378c1a4fbebb6bb1c11e6ecb8c94b5c798aaa1657829947a32f3 |
Hashes for AccessControl-7.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fa41e67603f58fcd71f3c7bcddb63ed22daf1ff370afdde2dd89e61cb004821c |
|
MD5 | 808800c3a765f979d9cd9d2215b046a9 |
|
BLAKE2b-256 | 66db34b2a0aea057252c6a031e6cb9a6138c05a3a7fb76d0760286564b5d78a2 |
Hashes for AccessControl-7.2-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e68ec69d12b7d0f525abddb89afef0a4f81f2ca275afaef41ce211c203d7f1e2 |
|
MD5 | fb29fbe87350c7f1387c17c09e1aa5d3 |
|
BLAKE2b-256 | 65a9d9fe874fdd1c51e6040fd3c0ec66466e233f60fd5200ea24d775eafbb91a |
Hashes for AccessControl-7.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 410dc2e15b1aee9848c5c9aaf24591ad9d60a191c6e50b84498d34d6353d6a3b |
|
MD5 | a9633e3af58bcc2e3139f30a01dc2c13 |
|
BLAKE2b-256 | 8302486a29eb35a65d2ed082b7cf00d5bc7ff6187035e32b2622e9f0a7b89524 |
Hashes for AccessControl-7.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a8028f1aeceada35d6f3b69a41ddefc22291025544dc9ac3ded4da864d54949 |
|
MD5 | f67ee230dd6a0ce5ed11f44980afbb67 |
|
BLAKE2b-256 | 1ffe29dfa2a321770e9116d0e68fbad58e7ed4a11f47c3d9c6f5279238db6acc |
Hashes for AccessControl-7.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b89d84b921bb2df3773eb883978ba630ee2d3227ce16c74da5e66cec0d497a82 |
|
MD5 | a7cf250a2dbd1164b0a77116e1183813 |
|
BLAKE2b-256 | 946b694226a7b532b2e90b02ff42930f4377b00b0a5c3317e84a5f87da00827f |
Hashes for AccessControl-7.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 37da27ada7b0d331e2392df2e66146a8e3c2019988ab27a5dc6b56d77258e0da |
|
MD5 | b500f087511fa162cd8ea13cd70bdc29 |
|
BLAKE2b-256 | 913c058ede3da0c0a3f7e690fa027eeca75b792b0fe0254b34d26eb7fa6cff4a |
Hashes for AccessControl-7.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a10c57d144f162f9eb400e2cf6e21b0193ede63729baa9c866d920d5e439f8fe |
|
MD5 | fbb906aef23db50260588e9fe2e7b750 |
|
BLAKE2b-256 | a2dee06fae414d7f1969a2108e712ff2f914696745e5350590ea0c22988dd629 |
Hashes for AccessControl-7.2-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0faa6d1052e3ca91baa8bade090447d0a0573fe466f5215be2c84b7767870fc |
|
MD5 | a667ea266ac410d44cfafb99cc01e997 |
|
BLAKE2b-256 | e38eba02e5bde31f95904d1753bb9ca4d9271106d77487c94c5a59e8b74abf5b |
Hashes for AccessControl-7.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 950e3aecbd4cfb53d3553151cd4620c319196bb7bf953cc29d04529ac8d7193e |
|
MD5 | 5b52b5fb441a47e2550b5b7ef957ff2b |
|
BLAKE2b-256 | 659a270f887d687ea3690e93a9556d7911f3745ab2c0db7d52b56edd66b09782 |
Hashes for AccessControl-7.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 72543f93024b989b40a8667ecce4209d435a8665f4d7ec39d674781be780244c |
|
MD5 | d550d42d77ed0b0eed0a346fd63f4e95 |
|
BLAKE2b-256 | 01fd1bfdd78a7d2151f85a2ee370de09128b70f22e0b54aa7181bf88ac2cd5c2 |
Hashes for AccessControl-7.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 61b1c75ebc863b96213f5cb81f0cf5d8ab5f9d86fbc4ce1b9e2b8ac6abf220ee |
|
MD5 | 7f270b3a10e89b0d844e64ddde17b478 |
|
BLAKE2b-256 | 8d0a6e6a6c8234f9d04b10a2eda3649521db58465372494aca67706dd23c70fa |
Hashes for AccessControl-7.2-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 267ccb4d7b8570b634c0020ff3c4cd99703917a25a1feec5a8342f774de58047 |
|
MD5 | 32a7d3e0481ae14ff47acf7d37e12db8 |
|
BLAKE2b-256 | 05c3058bae89c844c6cc810ad0e7b614c4985bef3c9a5b2cadf93c68d4041e11 |
Hashes for AccessControl-7.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5e28ca08d46fd01592a9d061ce7bb84f9becfe39f36e949a3052c0ce6109b67 |
|
MD5 | 95c29818fb73474bbaa9083048ebb37d |
|
BLAKE2b-256 | db444c0a04de894bad721a7c4b67b871e868a31f798c535a95932a717e3322ae |