diff options
author | Kai Knoblich <kai@FreeBSD.org> | 2021-08-02 06:10:10 +0000 |
---|---|---|
committer | Kai Knoblich <kai@FreeBSD.org> | 2021-08-02 06:16:01 +0000 |
commit | 7cb5fb35608f4cc8a97afd2bdb83fa7f797fcadc (patch) | |
tree | 40d488cdaacc509c662b286ce26913159c8ea9f8 | |
parent | d0d7bd815ebf7019ee4b96ae3e943be81e88ab93 (diff) | |
download | ports-7cb5fb35608f4cc8a97afd2bdb83fa7f797fcadc.tar.gz ports-7cb5fb35608f4cc8a97afd2bdb83fa7f797fcadc.zip |
games/anki: Update to 2.1.44
Since the 2.1.36 release the build system has changed significantly
again and devel/bazel is now used by upstream for the entire build
process.
With this change, a lot of bazel rules and also some translation files
needs to be downloaded from various repositories during the buildtime.
In order to still make Anki compatible with the Ports framework, the
following approach is used:
1. Prefetch all the required files before buildtime.
2. Create and setup a few local bazel repositories along with a set
of custom bazel rules and to provide Node, Protobuf and Yarn from
the Ports tree.
3. Compile the Rust library and place the output files to the
respective local bazel repository for further processing.
4. Build the rest via devel/bazel
From a technical point of view, Anki should also be able to be built on
other 64-bit architectures (but requires further patching of a few bazel
rules), as soon as devel/bazel can also be built for those platforms.
The option NLS is gone because the translations are now compiled
directly into the Rust library and they only generate a small overhead.
Changelog since 2.1.35 (too many changes/fixes to list them separately):
https://changes.ankiweb.net/
Reviewed by: tcberner
MFH: 2021Q3
Differential Revision: https://reviews.freebsd.org/D31358
36 files changed, 1867 insertions, 1357 deletions
diff --git a/games/anki/Makefile b/games/anki/Makefile index d6568ad2c589..fbf47144582d 100644 --- a/games/anki/Makefile +++ b/games/anki/Makefile @@ -1,12 +1,11 @@ # Created by: Andrew Pantyukhin <infofarmer@FreeBSD.org> PORTNAME= anki -DISTVERSION= 2.1.35 -PORTREVISION= 11 -# Don't forget to update ${_MY_BUILDHASH} +DISTVERSION= 2.1.44 +# Don't forget to update ${_MY_BUILDHASH} if DISTVERSION changes CATEGORIES= games education python -MASTER_SITES= LOCAL/kai/:npmcache -DISTFILES= anki-npm-cache-${DISTVERSION}${EXTRACT_SUFX}:npmcache +MASTER_SITES= LOCAL/kai/:yarncache +DISTFILES= anki-yarn-cache-${DISTVERSION}${EXTRACT_SUFX}:yarncache DIST_SUBDIR= python MAINTAINER= kai@FreeBSD.org @@ -18,14 +17,17 @@ LICENSE_FILE= ${WRKSRC}/LICENSE DEPRECATED= Uses EOL Python 2.7 via www/py-qt5-webengine EXPIRATION_DATE=2021-06-23 +NOT_FOR_ARCHS= armv6 armv7 i386 mips powerpc +NOT_FOR_ARCHS_REASON= the bazel build framework supports only 64-bit systems. + BUILD_DEPENDS= bash:shells/bash \ - maturin:devel/py-maturin@${PY_FLAVOR} \ + bazel:devel/bazel \ protoc:devel/protobuf \ - npm:www/npm \ - rsync:net/rsync \ + yarn:www/yarn \ ${PYTHON_PKGNAMEPREFIX}mypy-protobuf>=1.21:devel/py-mypy-protobuf@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}stringcase==1.2.0:devel/py-stringcase@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}stringcase>0:devel/py-stringcase@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}black>0:devel/py-black@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}fluent>0:devel/py-fluent@${PY_FLAVOR} \ ${RUN_DEPENDS} # For x64 architectures there's also a Python package "orjson" that still needs @@ -51,295 +53,352 @@ RUN_DEPENDS= lame:audio/lame \ ${PYTHON_PKGNAMEPREFIX}waitress>0:www/py-waitress@${PY_FLAVOR} # USES=ssl is required for the compilation of the Rust code -USES= cargo desktop-file-utils gmake perl5 pyqt:5 python:3.7+ shebangfix ssl +USES= cargo desktop-file-utils pyqt:5 python:3.8+ shebangfix ssl USE_GITHUB= yes GH_ACCOUNT= ankitects -GH_TUPLE= ankitects:anki-core-i18n:fbda2ed:i18ncore \ - ankitects:anki-desktop-ftl:f56e959:i18nfluent \ - ankitects:anki-desktop-i18n:a93ccef:i18ndesktop \ - ankitects:rust-coarsetime:f9e2c86216f0f4803bc75404828318fc206dab29:coarsetime \ - ankitects:fluent-rs:f61c5e10a53161ef5261f3c87b62047f12e4aa74:fluent \ - ankitects:hyper-timeout:664b6f9c387f6a7d75d1609a65c02554e8c55bc7:hypertimeout \ - ankitects:reqwest:57665e2c2a39db85723ba860f1b570a608bb73f9:reqwest \ - ankitects:tokio-io-timeout:96e1358555c49905de89170f2b1102a7d8b6c4c2:tokioiotimeout -USE_PERL5= build +# Translation files +GH_TUPLE= ankitects:anki-core-i18n:30ab198:ftlrslib \ + ankitects:anki-desktop-ftl:3920d26:ftlextra +# Cargo crates +GH_TUPLE+= ankitects:hyper-timeout:anki-2020-11-03:hypertimeout \ + ankitects:reqwest:anki-2020-11-03:reqwest \ + ankitects:tokio-io-timeout:anki-2020-11-03:tokioiotimeout +# Bazel Skylib framework and sets of bazel rules +GH_TUPLE+= bazelbuild:bazel-skylib:e59b620:bzlskylib \ + bazelbuild:rules_cc:40548a2:bzlrcc \ + bazelbuild:rules_java:c13e3ea:bzlrjava \ + bazelbuild:rules_nodejs:1689fa1:bzlrnodejs \ + bazelbuild:rules_proto:f7a30f6:bzlrproto \ + ankitects:rules_pip:73953e0:bzlrpip \ + ankitects:rules_python:3927c9b:bzlrpython \ + ankitects:rules_rust:dfd1200:bzlrrust \ + ankitects:rules_sass:275ace7:bzlrsass \ + ankitects:rules_svelte:f09155c:bzlrsvelte + USE_PYQT= core gui network printsupport sip svg webchannel webengine widgets xml_build -SHEBANG_FILES= qt/po/scripts/build-mo-files \ - qt/po/scripts/copy-qt-files \ - qt/runanki \ - qt/tools/build_ui.sh \ - scripts/rename +SHEBANG_FILES= qt/tools/runanki.system.in -CARGO_CRATES= addr2line-0.13.0 \ - adler-0.2.3 \ - aho-corasick-0.7.14 \ - anyhow-1.0.33 \ - arc-swap-0.4.7 \ +CARGO_CRATES= addr2line-0.15.2 \ + adler-1.0.2 \ + ahash-0.4.7 \ + aho-corasick-0.7.18 \ + ammonia-3.1.2 \ + anyhow-1.0.42 \ + arc-swap-1.3.0 \ arrayref-0.3.6 \ arrayvec-0.4.12 \ - arrayvec-0.5.1 \ - askama-0.10.3 \ - askama_derive-0.10.3 \ + arrayvec-0.5.2 \ + askama-0.10.5 \ + askama_derive-0.10.5 \ askama_escape-0.10.1 \ - askama_shared-0.10.4 \ - async-compression-0.3.5 \ + askama_shared-0.11.1 \ + async-compression-0.3.8 \ + async-trait-0.1.50 \ atty-0.2.14 \ autocfg-1.0.1 \ - backtrace-0.3.53 \ + backtrace-0.3.60 \ base64-0.12.3 \ + base64-0.13.0 \ bitflags-1.2.1 \ - blake2b_simd-0.5.10 \ - blake3-0.3.7 \ - bumpalo-3.4.0 \ - byteorder-1.3.4 \ + bitvec-0.19.5 \ + blake3-0.3.8 \ + bumpalo-3.7.0 \ + byteorder-1.4.3 \ bytes-0.4.12 \ bytes-0.5.6 \ - cc-1.0.61 \ + bytes-1.0.1 \ + cc-1.0.69 \ cfg-if-0.1.10 \ cfg-if-1.0.0 \ chrono-0.4.19 \ - cloudabi-0.1.0 \ + coarsetime-0.1.19 \ constant_time_eq-0.1.5 \ - core-foundation-0.7.0 \ - core-foundation-sys-0.7.0 \ + core-foundation-0.9.1 \ + core-foundation-sys-0.8.2 \ crc32fast-1.2.1 \ - crossbeam-channel-0.4.4 \ - crossbeam-utils-0.7.2 \ + crossbeam-channel-0.5.1 \ + crossbeam-utils-0.8.5 \ crypto-mac-0.8.0 \ - ctor-0.1.16 \ - derivative-2.1.1 \ + ctor-0.1.20 \ + derivative-2.2.0 \ digest-0.9.0 \ - dirs-2.0.2 \ - dirs-sys-0.3.5 \ - dtoa-0.4.6 \ + dirs-next-2.0.0 \ + dirs-sys-next-0.1.2 \ + dtoa-0.4.8 \ either-1.6.1 \ - encoding_rs-0.8.24 \ + encoding_rs-0.8.28 \ + env_logger-0.8.4 \ failure-0.1.8 \ failure_derive-0.1.8 \ fallible-iterator-0.2.0 \ fallible-streaming-iterator-0.1.9 \ fixedbitset-0.2.0 \ - flate2-1.0.18 \ - fluent-langneg-0.12.1 \ - fluent-syntax-0.9.3 \ + flate2-1.0.20 \ + fluent-0.13.1 \ + fluent-bundle-0.13.2 \ + fluent-langneg-0.13.0 \ + fluent-syntax-0.10.3 \ fnv-1.0.7 \ foreign-types-0.3.2 \ foreign-types-shared-0.1.1 \ + form_urlencoded-1.0.1 \ fuchsia-zircon-0.3.3 \ fuchsia-zircon-sys-0.3.3 \ - futures-0.3.6 \ - futures-channel-0.3.6 \ - futures-core-0.3.6 \ - futures-executor-0.3.6 \ - futures-io-0.3.6 \ - futures-macro-0.3.6 \ - futures-sink-0.3.6 \ - futures-task-0.3.6 \ - futures-util-0.3.6 \ - fxhash-0.2.1 \ + funty-1.1.0 \ + futf-0.1.4 \ + futures-0.3.15 \ + futures-channel-0.3.15 \ + futures-core-0.3.15 \ + futures-executor-0.3.15 \ + futures-io-0.3.15 \ + futures-macro-0.3.15 \ + futures-sink-0.3.15 \ + futures-task-0.3.15 \ + futures-util-0.3.15 \ generic-array-0.14.4 \ - getrandom-0.1.15 \ + getopts-0.2.21 \ + getrandom-0.1.16 \ + getrandom-0.2.3 \ ghost-0.1.2 \ - gimli-0.22.0 \ - h2-0.2.6 \ + gimli-0.24.0 \ + h2-0.2.7 \ hashbrown-0.9.1 \ - heck-0.3.1 \ - hermit-abi-0.1.17 \ - hex-0.4.2 \ + hashbrown-0.11.2 \ + hashlink-0.6.0 \ + heck-0.3.3 \ + hermit-abi-0.1.19 \ + hex-0.4.3 \ + html5ever-0.25.1 \ htmlescape-0.3.1 \ - http-0.2.1 \ + http-0.2.4 \ http-body-0.3.1 \ - httparse-1.3.4 \ + httparse-1.4.1 \ httpdate-0.3.2 \ - humansize-1.1.0 \ - hyper-0.13.8 \ + humansize-1.1.1 \ + humantime-2.1.0 \ + hyper-0.13.10 \ + hyper-rustls-0.21.0 \ hyper-tls-0.4.3 \ - idna-0.2.0 \ - indexmap-1.6.0 \ + idna-0.2.3 \ + indexmap-1.7.0 \ indoc-0.3.6 \ indoc-impl-0.3.6 \ - instant-0.1.7 \ - intl_pluralrules-6.0.0 \ - inventory-0.1.9 \ - inventory-impl-0.1.9 \ + instant-0.1.10 \ + intl-memoizer-0.5.1 \ + intl_pluralrules-7.0.1 \ + inventory-0.1.10 \ + inventory-impl-0.1.10 \ iovec-0.1.4 \ - itertools-0.8.2 \ + ipnet-2.3.1 \ itertools-0.9.0 \ - itoa-0.4.6 \ - js-sys-0.3.45 \ + itoa-0.4.7 \ + js-sys-0.3.51 \ kernel32-sys-0.2.2 \ lazy_static-1.4.0 \ lexical-core-0.7.6 \ - libc-0.2.79 \ - libsqlite3-sys-0.18.0 \ - linked-hash-map-0.5.3 \ - lock_api-0.4.1 \ - log-0.4.11 \ - lru-cache-0.1.2 \ + libc-0.2.98 \ + libsqlite3-sys-0.20.1 \ + lock_api-0.4.4 \ + log-0.4.14 \ + mac-0.1.1 \ + maplit-1.0.2 \ + markup5ever-0.10.1 \ + markup5ever_rcdom-0.1.0 \ matches-0.1.8 \ - maybe-uninit-2.0.0 \ - memchr-2.3.3 \ + memchr-2.4.0 \ mime-0.3.16 \ mime_guess-2.0.3 \ - miniz_oxide-0.4.3 \ - mio-0.6.22 \ - miow-0.2.1 \ - multimap-0.8.2 \ - native-tls-0.2.4 \ - net2-0.2.35 \ + miniz_oxide-0.4.4 \ + mio-0.6.23 \ + miow-0.2.2 \ + multimap-0.8.3 \ + native-tls-0.2.7 \ + net2-0.2.37 \ + new_debug_unreachable-1.0.4 \ nodrop-0.1.14 \ - nom-5.1.2 \ + nom-6.1.2 \ num-format-0.4.0 \ - num-integer-0.1.43 \ - num-traits-0.2.12 \ + num-integer-0.1.44 \ + num-traits-0.2.14 \ num_cpus-1.13.0 \ - num_enum-0.5.1 \ - num_enum_derive-0.5.1 \ - object-0.21.1 \ - once_cell-1.4.1 \ - openssl-0.10.30 \ - openssl-probe-0.1.2 \ - openssl-sys-0.9.58 \ - parking_lot-0.11.0 \ - parking_lot_core-0.8.0 \ + num_enum-0.5.2 \ + num_enum_derive-0.5.2 \ + object-0.25.3 \ + once_cell-1.8.0 \ + openssl-0.10.35 \ + openssl-probe-0.1.4 \ + openssl-sys-0.9.65 \ + parking_lot-0.11.1 \ + parking_lot_core-0.8.3 \ paste-0.1.18 \ paste-impl-0.1.18 \ percent-encoding-2.1.0 \ petgraph-0.5.1 \ - pin-project-0.4.27 \ - pin-project-internal-0.4.27 \ - pin-project-lite-0.1.11 \ + phf-0.8.0 \ + phf_codegen-0.8.0 \ + phf_generator-0.8.0 \ + phf_shared-0.8.0 \ + pin-project-1.0.8 \ + pin-project-internal-1.0.8 \ + pin-project-lite-0.1.12 \ + pin-project-lite-0.2.7 \ pin-utils-0.1.0 \ pkg-config-0.3.19 \ - podio-0.1.7 \ - ppv-lite86-0.2.9 \ - proc-macro-crate-0.1.5 \ - proc-macro-hack-0.5.18 \ + ppv-lite86-0.2.10 \ + precomputed-hash-0.1.1 \ + proc-macro-crate-1.0.0 \ + proc-macro-hack-0.5.19 \ proc-macro-nested-0.1.6 \ - proc-macro2-1.0.24 \ - prost-0.6.1 \ - prost-build-0.6.1 \ - prost-derive-0.6.1 \ - prost-types-0.6.1 \ - pyo3-0.11.1 \ - pyo3-derive-backend-0.11.1 \ - pyo3cls-0.11.1 \ - quote-1.0.7 \ + proc-macro2-1.0.27 \ + prost-0.7.0 \ + prost-build-0.7.0 \ + prost-derive-0.7.0 \ + prost-types-0.7.0 \ + pulldown-cmark-0.8.0 \ + pyo3-0.13.2 \ + pyo3-macros-0.13.2 \ + pyo3-macros-backend-0.13.2 \ + quote-1.0.9 \ + radium-0.5.3 \ rand-0.7.3 \ + rand-0.8.4 \ rand_chacha-0.2.2 \ + rand_chacha-0.3.1 \ rand_core-0.5.1 \ + rand_core-0.6.3 \ rand_hc-0.2.0 \ - redox_syscall-0.1.57 \ - redox_users-0.3.5 \ - regex-1.4.1 \ - regex-syntax-0.6.20 \ + rand_hc-0.3.1 \ + rand_pcg-0.2.1 \ + redox_syscall-0.2.9 \ + redox_users-0.4.0 \ + regex-1.5.4 \ + regex-syntax-0.6.25 \ remove_dir_all-0.5.3 \ - rental-0.5.5 \ + rental-0.5.6 \ rental-impl-0.5.5 \ - rusqlite-0.23.1 \ - rust-argon2-0.8.2 \ - rustc-demangle-0.1.18 \ + ring-0.16.20 \ + rusqlite-0.24.2 \ + rustc-demangle-0.1.20 \ + rustc-hash-1.1.0 \ + rustls-0.18.1 \ + rustversion-1.0.5 \ ryu-1.0.5 \ schannel-0.1.19 \ scopeguard-1.1.0 \ - security-framework-0.4.4 \ - security-framework-sys-0.4.3 \ - serde-1.0.117 \ + sct-0.6.1 \ + security-framework-2.3.1 \ + security-framework-sys-2.3.0 \ + serde-1.0.126 \ serde-aux-0.6.1 \ - serde_derive-1.0.117 \ - serde_json-1.0.59 \ - serde_repr-0.1.6 \ + serde_derive-1.0.126 \ + serde_json-1.0.64 \ + serde_repr-0.1.7 \ serde_tuple-0.5.0 \ serde_tuple_macros-0.5.0 \ serde_urlencoded-0.6.1 \ sha1-0.6.0 \ - slab-0.4.2 \ - slog-2.5.2 \ - slog-async-2.5.0 \ + siphasher-0.3.5 \ + slab-0.4.3 \ + slog-2.7.0 \ + slog-async-2.6.0 \ slog-envlogger-2.2.0 \ - slog-scope-4.3.0 \ + slog-scope-4.4.0 \ slog-stdlog-4.1.0 \ - slog-term-2.6.0 \ - smallvec-1.4.2 \ - socket2-0.3.15 \ + slog-term-2.8.0 \ + smallvec-1.6.1 \ + socket2-0.3.19 \ + spin-0.5.2 \ stable_deref_trait-1.2.0 \ static_assertions-1.1.0 \ - subtle-2.3.0 \ - syn-1.0.46 \ - synstructure-0.12.4 \ + string_cache-0.8.1 \ + string_cache_codegen-0.5.1 \ + subtle-2.4.1 \ + syn-1.0.74 \ + synstructure-0.12.5 \ take_mut-0.2.2 \ - tempfile-3.1.0 \ - term-0.6.1 \ - thiserror-1.0.21 \ - thiserror-impl-1.0.21 \ - thread_local-1.0.1 \ - time-0.1.44 \ + tap-1.0.1 \ + tempfile-3.2.0 \ + tendril-0.4.2 \ + term-0.7.0 \ + termcolor-1.1.2 \ + thiserror-1.0.26 \ + thiserror-impl-1.0.26 \ + thread_local-1.1.3 \ + time-0.1.43 \ tinystr-0.3.4 \ - tinyvec-0.3.4 \ - tokio-0.2.22 \ - tokio-socks-0.2.2 \ + tinyvec-1.3.1 \ + tinyvec_macros-0.1.0 \ + tokio-0.2.25 \ + tokio-rustls-0.14.1 \ + tokio-socks-0.3.0 \ tokio-tls-0.3.1 \ tokio-util-0.3.1 \ - toml-0.5.7 \ - tower-service-0.3.0 \ - tracing-0.1.21 \ - tracing-core-0.1.17 \ + toml-0.5.8 \ + tower-service-0.3.1 \ + tracing-0.1.26 \ + tracing-core-0.1.18 \ + tracing-futures-0.2.5 \ try-lock-0.2.3 \ - type-map-0.3.0 \ - typenum-1.12.0 \ - unic-langid-0.8.0 \ - unic-langid-impl-0.8.0 \ - unic-langid-macros-0.8.0 \ - unic-langid-macros-impl-0.8.0 \ + type-map-0.4.0 \ + typenum-1.13.0 \ + unic-langid-0.9.0 \ + unic-langid-impl-0.9.0 \ + unic-langid-macros-0.9.0 \ + unic-langid-macros-impl-0.9.0 \ unicase-2.6.0 \ - unicode-bidi-0.3.4 \ - unicode-normalization-0.1.13 \ - unicode-segmentation-1.6.0 \ - unicode-xid-0.2.1 \ + unicode-bidi-0.3.5 \ + unicode-normalization-0.1.19 \ + unicode-segmentation-1.8.0 \ + unicode-width-0.1.8 \ + unicode-xid-0.2.2 \ unindent-0.1.7 \ - url-2.1.1 \ + untrusted-0.7.1 \ + url-2.2.2 \ + utf-8-0.7.6 \ utime-0.3.1 \ - vcpkg-0.2.10 \ - version_check-0.9.2 \ + vcpkg-0.2.15 \ + version_check-0.9.3 \ want-0.3.0 \ wasi-0.9.0+wasi-snapshot-preview1 \ - wasi-0.10.0+wasi-snapshot-preview1 \ - wasm-bindgen-0.2.68 \ - wasm-bindgen-backend-0.2.68 \ - wasm-bindgen-futures-0.4.18 \ - wasm-bindgen-macro-0.2.68 \ - wasm-bindgen-macro-support-0.2.68 \ - wasm-bindgen-shared-0.2.68 \ - web-sys-0.3.45 \ - which-3.1.1 \ + wasi-0.10.2+wasi-snapshot-preview1 \ + wasm-bindgen-0.2.74 \ + wasm-bindgen-backend-0.2.74 \ + wasm-bindgen-futures-0.4.24 \ + wasm-bindgen-macro-0.2.74 \ + wasm-bindgen-macro-support-0.2.74 \ + wasm-bindgen-shared-0.2.74 \ + web-sys-0.3.51 \ + webpki-0.21.4 \ + webpki-roots-0.20.0 \ + which-4.1.0 \ winapi-0.2.8 \ winapi-0.3.9 \ winapi-build-0.1.1 \ winapi-i686-pc-windows-gnu-0.4.0 \ + winapi-util-0.1.5 \ winapi-x86_64-pc-windows-gnu-0.4.0 \ - winreg-0.6.2 \ + winreg-0.7.0 \ ws2_32-sys-0.2.1 \ - zip-0.5.6 + wyz-0.2.0 \ + xml5ever-0.16.1 \ + zip-0.5.13 CARGO_USE_GITHUB= yes - -CARGO_CARGOLOCK= ${WRKSRC}/rspy/Cargo.lock -CARGO_CARGOTOML= ${WRKSRC}/rspy/Cargo.toml +CARGO_CARGOTOML= ${WRKSRC}/pylib/rsbridge/Cargo.toml CARGO_BUILD= no CARGO_INSTALL= no -MAKE_ARGS= DEVEL="rspy pylib ts qt" PYTHON_FILE="${PYTHON_CMD}" SHELL="${LOCALBASE}/bin/bash" -# devel/py-maturin acts as a wrapper for "cargo" and "rustc". Ensure that it -# uses the arguments/flags for Rust of the Ports framework. -MAKE_ARGS+= BUILDFLAGS="--cargo-extra-args='${CARGO_BUILD_ARGS} --verbose'" -MAKE_ENV= ${CARGO_ENV} npm_config_offline=true - -ALL_TARGET= build +# BAZEL=1 is required otherwise ${WRKSRC}/rslib/build/main.rs produces a dummy +# buildinfo.txt that doesn't contain the actual build hash. +CARGO_ENV= BAZEL=1 \ + BUILDINFO=${_MY_LOCALREPO}/rust_output/buildinfo.txt \ + PYO3_PYTHON=${PYTHON_CMD} \ + PROTOC=${LOCALBASE}/bin/protoc \ + BACKEND_PROTO=${WRKSRC}/rslib/backend.proto \ + RSLIB_FTL_ROOT=${_MY_LOCALREPO}/ftlrslib/l10n.toml \ + EXTRA_FTL_ROOT=${_MY_LOCALREPO}/ftlextra/l10n.toml -PLIST_SUB= _PY_SONAME=${_PY_SONAME} - -OPTIONS_DEFINE= NLS OPTIONS_DEFAULT= MPV OPTIONS_GROUP= PLAYER OPTIONS_GROUP_PLAYER= MPLAYER MPV @@ -350,101 +409,164 @@ MPV_DESC= mpv media player support MPLAYER_RUN_DEPENDS= mplayer:multimedia/mplayer MPV_RUN_DEPENDS= mpv:multimedia/mpv -NLS_USES= gettext - # Should contain the most recent commit that reflects ${DISTVERSION} and must # be exactly 8 digits otherwise the check for newer versions won't work as # expected. -_MY_BUILDHASH= 84dcaa86 - -.include <bsd.port.pre.mk> +_MY_BUILDHASH= b2b3275f +# Path of the local bazel repositories +_MY_LOCALREPO= ${WRKSRC}/local_repos +# Path of cache that is used by www/yarn +_MY_YARNCACHE= ${WRKDIR}/.yarn -.if ${PYTHON_REL} < 30800 -_PY_SONAME= .cpython-${PYTHON_SUFFIX}m -.else -_PY_SONAME= ${PYTHON_EXT_SUFFIX} -.endif - -# Place the translation files to the appropriate directories post-extract: - @${RLN} ${WRKSRC_i18ncore} ${WRKSRC}/rslib/ftl/repo - @${RLN} ${WRKSRC_i18nfluent} ${WRKSRC}/qt/ftl/repo - @${RLN} ${WRKSRC_i18ndesktop} ${WRKSRC}/qt/po/repo + # Create a configuration file for bazel + @${ECHO_CMD} "startup --batch" > ${WRKSRC}/user.bazelrc + # Create local repositories which are used by bazel + @${MKDIR} ${_MY_LOCALREPO} \ + ${_MY_LOCALREPO}/local_node/node/bin \ + ${_MY_LOCALREPO}/local_node/node/lib \ + ${_MY_LOCALREPO}/local_node/yarn/bin \ + ${_MY_LOCALREPO}/protoc_bin_freebsd/bin \ + ${_MY_LOCALREPO}/pyqt5 \ + ${_MY_LOCALREPO}/rust_output/fluent_proto \ + ${_MY_LOCALREPO}/rust_output/librsbridge + # Create empty WORKSPACE files in the top directory of each local + # repository + @${TOUCH} ${_MY_LOCALREPO}/local_node/WORKSPACE \ + ${_MY_LOCALREPO}/protoc_bin_freebsd/WORKSPACE \ + ${_MY_LOCALREPO}/pyqt5/WORKSPACE \ + ${_MY_LOCALREPO}/rust_output/WORKSPACE + # Copy the bazel rules for NodeJS to the custom local repository as + # they need some patching + @${CP} -r ${WRKSRC_bzlrnodejs} ${_MY_LOCALREPO}/rules_nodejs + # Link the remaining bazel rules into the custom local repository as + # they don't need to be patched +.for _dir in bzlskylib bzlrcc bzlrjava bzlrpip bzlrproto bzlrpython bzlrrust bzlrsass bzlrsvelte ftlextra ftlrslib + @${RLN} ${WRKSRC_${_dir}} ${_MY_LOCALREPO}/${_dir:S/bzlr/rules_/} +.endfor + # Copy custom BUILD.bazel files to the local repositories + @${CP} ${FILESDIR}/bazel/BUILD.bazel-local_node \ + ${_MY_LOCALREPO}/local_node/BUILD.bazel + @${CP} ${FILESDIR}/bazel/BUILD.bazel-protoc_bin_freebsd \ + ${_MY_LOCALREPO}/protoc_bin_freebsd/BUILD.bazel + @${CP} ${FILESDIR}/bazel/BUILD.bazel-pyqt5 \ + ${_MY_LOCALREPO}/pyqt5/BUILD.bazel + @${CP} ${FILESDIR}/bazel/BUILD.bazel-rust_output-fluent_proto \ + ${_MY_LOCALREPO}/rust_output/fluent_proto/BUILD.bazel + @${CP} ${FILESDIR}/bazel/BUILD.bazel-rust_output-librsbridge \ + ${_MY_LOCALREPO}/rust_output/librsbridge/BUILD.bazel + @${CP} ${FILESDIR}/bazel/BUILD.bazel-i18n ${WRKSRC_ftlrslib}/BUILD.bazel + @${CP} ${FILESDIR}/bazel/BUILD.bazel-i18n ${WRKSRC_ftlextra}/BUILD.bazel + # Move some files out of the way as they will be replaced by custom copies. + @${MV} ${WRKSRC}/repos.bzl ${WRKSRC}/repos.bzl.dist + @${MV} ${WRKSRC}/pip/pyqt5/defs.bzl ${WRKSRC}/pip/pyqt5/defs.bzl.dist + @${MV} ${WRKSRC}/pylib/rsbridge/BUILD.bazel ${WRKSRC}/pylib/rsbridge/BUILD.bazel.dist + @${MV} ${WRKSRC}/rslib/BUILD.bazel ${WRKSRC}/rslib/BUILD.bazel.dist + # Required for a successful Rust compilation + @${MV} ${WRKSRC}/Cargo.lock ${WRKSRC}/Cargo.lock.dist + # Copy the replacement files + @${CP} ${FILESDIR}/bazel/repos.bzl ${WRKSRC}/ + @${CP} ${FILESDIR}/bazel/pyqt5.bzl ${WRKSRC}/pip/pyqt5/defs.bzl + @${CP} ${FILESDIR}/bazel/BUILD.bazel-pylib-rsbridge \ + ${WRKSRC}/pylib/rsbridge/BUILD.bazel + @${CP} ${FILESDIR}/bazel/BUILD.bazel-rslib \ + ${WRKSRC}/rslib/BUILD.bazel post-patch: - # Add trailing directory names to cargo repositories - @${REINPLACE_CMD} -Ee '/^fluent =/ s|(${WRKSRC_fluent})|\1/fluent|; \ - /^intl-memoizer =/ s|(${WRKSRC_fluent})|\1/intl-memoizer|' ${WRKSRC}/rslib/Cargo.toml - @${REINPLACE_CMD} -e 's|%%DATADIR%%|${DATADIR}|' ${WRKSRC}/qt/runanki - @${REINPLACE_CMD} -e 's|%%MAKE_CMD%%|${MAKE_CMD}|' ${WRKSRC}/qt/Makefile - @${REINPLACE_CMD} -e 's|%%UNZIP_NATIVE_CMD%%|${UNZIP_NATIVE_CMD}|' ${WRKSRC}/rspy/Makefile - -post-patch-NLS-on: - @${REINPLACE_CMD} -e 's|### NLS ###||' ${WRKSRC}/qt/Makefile + @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \ + ${_MY_LOCALREPO}/rules_nodejs/internal/node/node_patches.js + @${REINPLACE_CMD} -e 's|\@PREFIX\@|${PREFIX}|' \ + ${WRKSRC}/qt/tools/runanki.system.in + @${REINPLACE_CMD} -e 's|%%_MY_BUILDHASH%%|${_MY_BUILDHASH}|' \ + ${WRKSRC}/scripts/status.sh + @${REINPLACE_CMD} -e 's|%%_MY_LOCALREPO%%|${_MY_LOCALREPO}|g' \ + ${WRKSRC}/repos.bzl ${WRKSRC}/protobuf.bzl + @${REINPLACE_CMD} -e 's|%%_MY_YARNCACHE%%|${_MY_YARNCACHE}|' \ + ${_MY_LOCALREPO}/rules_nodejs/internal/npm_install/npm_install.bzl -# Although PYTHON_FILE is set to ${PYTHON_CMD} via MAKE_ARGS to make the -# compilation of the pyo3 crate possible there are also hardcoded "python" -# occurences in too many places. pre-configure: - ${MKDIR} ${WRKDIR}/.bin && ${LN} -s ${PYTHON_CMD} ${WRKDIR}/.bin/python + # Link the binaries of Node, Protobuf and Yarn into the local bazel + # repositories to provide them during build. + ${LN} -s ${LOCALBASE}/bin/protoc-gen-mypy ${WRKSRC}/pylib/tools/protoc-gen-mypy + ${LN} -s ${LOCALBASE}/bin/node ${_MY_LOCALREPO}/local_node/node/bin/node + ${LN} -s ${LOCALBASE}/bin/yarn.js ${_MY_LOCALREPO}/local_node/yarn/bin/yarn.js + ${LN} -s ${LOCALBASE}/bin/protoc ${_MY_LOCALREPO}/protoc_bin_freebsd/bin/protoc # Overview of the build process # +# Steps 1 and 2 are built separately from the bazel build process. +# # 1. rslib (Rust library, implictly built by step 2) -# `-> produces ${WRKSRC}/proto/fluent.proto -# 2. rspy (Rust/Python bridge) which is built by devel/py-maturin -# `-> produces ${WRKSRC}/pylib/ankirspy.cpython-${PYTHON_SUFFIX}m.so -# 3. pylib (Python-only library) -# 4. ts (builds ${WRKSRC}/ts/node_modules/.bin/{tsc,sass}) -# 5. qt (Python library with Qt5 bindings) +# `-> produces ${_MY_LOCALREPO}/rust_output/fluent.proto +# 2. pylib/rsbridge (Rust/Python bridge) +# `-> produces ${_MY_LOCALREPO}/rust_output/librsbridge.so +# 3. The remaining components (Python, Qt5 and JS) are built by bazel pre-build: - # Set the buildhash that is used at various places during build. - ${ECHO_CMD} ${_MY_BUILDHASH} > ${WRKSRC}/meta/buildhash + # Generate buildinfo.txt which is used via BUILDINFO in ${CARGO_ENV} during + # compilation. + ${ECHO_CMD} -e "STABLE_VERSION ${DISTVERSION}\nSTABLE_BUILDHASH ${_MY_BUILDHASH}" >> ${_MY_LOCALREPO}/rust_output/buildinfo.txt + ${CARGO_CARGO_RUN} build \ + --manifest-path ${CARGO_CARGOTOML} \ + --verbose \ + ${CARGO_BUILD_ARGS} + # These files are required for the remaining build process via bazel so copy + # them the local repository. + ${CP} `${FIND} ${CARGO_TARGET_DIR} -name "fluent.proto"` ${_MY_LOCALREPO}/rust_output/fluent_proto/ + ${CP} `${FIND} ${CARGO_TARGET_DIR} -name "librsbridge.so"` ${_MY_LOCALREPO}/rust_output/librsbridge/ + +do-build: + cd ${WRKSRC} && \ + bazel --output_user_root="${WRKDIR}/.bazel" build \ + --action_env=PYTHON_SITE_PACKAGES="${PYTHON_SITELIBDIR}" \ + --action_env=PYTHON_SYS_EXECUTABLE="${PYTHON_CMD}" \ + --compilation_mode opt \ + --subcommands \ + dist post-build: + ${TAR} -xf `${FIND} ${WRKDIR}/.bazel -name "dist.tar"` -C ${WRKSRC} + cd ${WRKSRC}/bazel-dist && \ + ${UNZIP_NATIVE_CMD} anki-${DISTVERSION}-*.whl && \ + ${UNZIP_NATIVE_CMD} aqt-${DISTVERSION}-*.whl # Compile Anki's Python libary (pylib) and Qt5 library (aqt) to prepare # them for installation - ${PYTHON_CMD} -m compileall ${WRKSRC}/pylib/anki - ${PYTHON_CMD} -O -m compileall ${WRKSRC}/pylib/anki - ${PYTHON_CMD} -m compileall ${WRKSRC}/qt/aqt - ${PYTHON_CMD} -O -m compileall ${WRKSRC}/qt/aqt + ${PYTHON_CMD} -m compileall ${WRKSRC}/bazel-dist/anki + ${PYTHON_CMD} -O -m compileall ${WRKSRC}/bazel-dist/anki + ${PYTHON_CMD} -m compileall ${WRKSRC}/bazel-dist/aqt + ${PYTHON_CMD} -O -m compileall ${WRKSRC}/bazel-dist/aqt do-install: ${MKDIR} ${STAGEDIR}${DATADIR}/anki \ ${STAGEDIR}${DATADIR}/aqt \ - ${STAGEDIR}${DATADIR}/aqt_data \ ${STAGEDIR}${PREFIX}/share/pixmaps \ ${STAGEDIR}${PREFIX}/share/applications - cd ${WRKSRC}/pylib \ + cd ${WRKSRC}/bazel-dist/ \ && ${COPYTREE_SHARE} anki ${STAGEDIR}${DATADIR} "! -name .gitignore" \ - && ${INSTALL_LIB} *.so ${STAGEDIR}${DATADIR} - cd ${WRKSRC}/qt \ - && ${COPYTREE_SHARE} aqt ${STAGEDIR}${DATADIR} "! -name .gitignore" \ - && ${COPYTREE_SHARE} aqt_data ${STAGEDIR}${DATADIR} "! -name .gitignore" \ + && ${COPYTREE_SHARE} aqt ${STAGEDIR}${DATADIR} "! -name .gitignore" + cd ${WRKSRC}/qt/linux \ && ${INSTALL_DATA} anki.xpm anki.png ${STAGEDIR}${PREFIX}/share/pixmaps \ && ${INSTALL_DATA} anki.desktop ${STAGEDIR}${PREFIX}/share/applications \ - && ${INSTALL_MAN} anki.1 ${STAGEDIR}${MANPREFIX}/man/man1 \ - && ${INSTALL_SCRIPT} runanki ${STAGEDIR}${PREFIX}/bin/anki + && ${INSTALL_MAN} anki.1 ${STAGEDIR}${MANPREFIX}/man/man1 + cd ${WRKSRC}/qt/tools \ + && ${INSTALL_SCRIPT} runanki.system.in ${STAGEDIR}${PREFIX}/bin/anki + ${STRIP_CMD} ${STAGEDIR}${DATADIR}/anki/_backend/rsbridge.so -# Helper target to make the generation of the npm cache easier -# -# The command "npx pbjs" tries to install additional dependencies for the CLI -# component of the "protobufjs" package and will fail during build because the -# environment variable "npm_config_offline" is set to "true" via ${MAKE_ENV}. -# -# Thus "npx pbjs" is issued after "npm install" to get the remaining -# dependencies to populate the cache with them. -make-npm-cache: +# Helper target to make the generation of the yarn cache easier +make-yarn-cache: # Run "make extract" before executing this target - @cd ${WRKDIR} && ${RM} -r .npm + @${RM} -r ${_MY_YARNCACHE} @cd ${WRKSRC}/ts \ - && ${SETENV} HOME=${WRKDIR} npm install \ - && ${TOUCH} in.proto \ - && ${SETENV} HOME=${WRKDIR} npx --cache ${WRKDIR}/.npm pbjs -q -t static-module in.proto -o out.proto - @cd ${WRKDIR}/.npm \ - && ${RM} -r _locks anonymous-cli-metrics.json + && ${LOCALBASE}/bin/yarn --cache-folder ${_MY_YARNCACHE} install + @cd ${WRKSRC_bzlrnodejs}/packages/labs/grpc_web/ \ + && ${LOCALBASE}/bin/yarn --cache-folder ${_MY_YARNCACHE} install + @cd ${WRKSRC_bzlrnodejs}/packages/labs/protobufjs/ \ + && ${LOCALBASE}/bin/yarn --cache-folder ${_MY_YARNCACHE} install + @cd ${WRKSRC_bzlrsass}/sass \ + && ${LOCALBASE}/bin/yarn --cache-folder ${_MY_YARNCACHE} install + @cd ${WRKSRC_bzlrsvelte}/internal \ + && ${LOCALBASE}/bin/yarn --cache-folder ${_MY_YARNCACHE} install @cd ${WRKDIR} \ - && ${TAR} -czf ${PORTNAME}-npm-cache-${DISTVERSION}${EXTRACT_SUFX} .npm \ - && ${ECHO} "Please upload the file ${WRKDIR}/${PORTNAME}-npm-cache-${DISTVERSION}${EXTRACT_SUFX}" + && ${TAR} -czf ${PORTNAME}-yarn-cache-${DISTVERSION}${EXTRACT_SUFX} .yarn \ + && ${ECHO} "Please upload the file ${WRKDIR}/${PORTNAME}-yarn-cache-${DISTVERSION}${EXTRACT_SUFX}" -.include <bsd.port.post.mk> +.include <bsd.port.mk> diff --git a/games/anki/distinfo b/games/anki/distinfo index 95be963edb9d..a1520a3a8641 100644 --- a/games/anki/distinfo +++ b/games/anki/distinfo @@ -1,521 +1,643 @@ -TIMESTAMP = 1624129001 -SHA256 (python/anki-npm-cache-2.1.35.tar.gz) = 2168a9374715882affbaaa78d2775bc365f23cab6ecf3e74154936e128d01246 -SIZE (python/anki-npm-cache-2.1.35.tar.gz) = 51533006 -SHA256 (python/rust/crates/addr2line-0.13.0.tar.gz) = 1b6a2d3371669ab3ca9797670853d61402b03d0b4b9ebf33d677dfa720203072 -SIZE (python/rust/crates/addr2line-0.13.0.tar.gz) = 29996 -SHA256 (python/rust/crates/adler-0.2.3.tar.gz) = ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e -SIZE (python/rust/crates/adler-0.2.3.tar.gz) = 12168 -SHA256 (python/rust/crates/aho-corasick-0.7.14.tar.gz) = b476ce7103678b0c6d3d395dbbae31d48ff910bd28be979ba5d48c6351131d0d -SIZE (python/rust/crates/aho-corasick-0.7.14.tar.gz) = 113042 -SHA256 (python/rust/crates/anyhow-1.0.33.tar.gz) = a1fd36ffbb1fb7c834eac128ea8d0e310c5aeb635548f9d58861e1308d46e71c -SIZE (python/rust/crates/anyhow-1.0.33.tar.gz) = 28540 -SHA256 (python/rust/crates/arc-swap-0.4.7.tar.gz) = 4d25d88fd6b8041580a654f9d0c581a047baee2b3efee13275f2fc392fc75034 -SIZE (python/rust/crates/arc-swap-0.4.7.tar.gz) = 48625 -SHA256 (python/rust/crates/arrayref-0.3.6.tar.gz) = a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544 -SIZE (python/rust/crates/arrayref-0.3.6.tar.gz) = 10035 -SHA256 (python/rust/crates/arrayvec-0.4.12.tar.gz) = cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9 -SIZE (python/rust/crates/arrayvec-0.4.12.tar.gz) = 26551 -SHA256 (python/rust/crates/arrayvec-0.5.1.tar.gz) = cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8 -SIZE (python/rust/crates/arrayvec-0.5.1.tar.gz) = 26816 -SHA256 (python/rust/crates/askama-0.10.3.tar.gz) = 70a6e7ebd44d0047fd48206c83c5cd3214acc7b9d87f001da170145c47ef7d12 -SIZE (python/rust/crates/askama-0.10.3.tar.gz) = 7988 -SHA256 (python/rust/crates/askama_derive-0.10.3.tar.gz) = e1d7169690c4f56343dcd821ab834972a22570a2662a19a84fd7775d5e1c3881 -SIZE (python/rust/crates/askama_derive-0.10.3.tar.gz) = 6834 -SHA256 (python/rust/crates/askama_escape-0.10.1.tar.gz) = 90c108c1a94380c89d2215d0ac54ce09796823cca0fd91b299cfff3b33e346fb -SIZE (python/rust/crates/askama_escape-0.10.1.tar.gz) = 8535 -SHA256 (python/rust/crates/askama_shared-0.10.4.tar.gz) = 62fc272363345c8cdc030e4c259d9d028237f8b057dc9bb327772a257bde6bb5 -SIZE (python/rust/crates/askama_shared-0.10.4.tar.gz) = 29058 -SHA256 (python/rust/crates/async-compression-0.3.5.tar.gz) = 9021768bcce77296b64648cc7a7460e3df99979b97ed5c925c38d1cc83778d98 -SIZE (python/rust/crates/async-compression-0.3.5.tar.gz) = 39371 -SHA256 (python/rust/crates/atty-0.2.14.tar.gz) = d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8 -SIZE (python/rust/crates/atty-0.2.14.tar.gz) = 5470 -SHA256 (python/rust/crates/autocfg-1.0.1.tar.gz) = cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a -SIZE (python/rust/crates/autocfg-1.0.1.tar.gz) = 12908 -SHA256 (python/rust/crates/backtrace-0.3.53.tar.gz) = 707b586e0e2f247cbde68cdd2c3ce69ea7b7be43e1c5b426e37c9319c4b9838e -SIZE (python/rust/crates/backtrace-0.3.53.tar.gz) = 71892 -SHA256 (python/rust/crates/base64-0.12.3.tar.gz) = 3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff -SIZE (python/rust/crates/base64-0.12.3.tar.gz) = 57545 -SHA256 (python/rust/crates/bitflags-1.2.1.tar.gz) = cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693 -SIZE (python/rust/crates/bitflags-1.2.1.tar.gz) = 16745 -SHA256 (python/rust/crates/blake2b_simd-0.5.10.tar.gz) = d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a -SIZE (python/rust/crates/blake2b_simd-0.5.10.tar.gz) = 34093 -SHA256 (python/rust/crates/blake3-0.3.7.tar.gz) = e9ff35b701f3914bdb8fad3368d822c766ef2858b2583198e41639b936f09d3f -SIZE (python/rust/crates/blake3-0.3.7.tar.gz) = 155136 -SHA256 (python/rust/crates/bumpalo-3.4.0.tar.gz) = 2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820 -SIZE (python/rust/crates/bumpalo-3.4.0.tar.gz) = 129102 -SHA256 (python/rust/crates/byteorder-1.3.4.tar.gz) = 08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de -SIZE (python/rust/crates/byteorder-1.3.4.tar.gz) = 21943 -SHA256 (python/rust/crates/bytes-0.4.12.tar.gz) = 206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c -SIZE (python/rust/crates/bytes-0.4.12.tar.gz) = 46361 -SHA256 (python/rust/crates/bytes-0.5.6.tar.gz) = 0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38 -SIZE (python/rust/crates/bytes-0.5.6.tar.gz) = 46291 -SHA256 (python/rust/crates/cc-1.0.61.tar.gz) = ed67cbde08356238e75fc4656be4749481eeffb09e19f320a25237d5221c985d -SIZE (python/rust/crates/cc-1.0.61.tar.gz) = 53454 -SHA256 (python/rust/crates/cfg-if-0.1.10.tar.gz) = 4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822 -SIZE (python/rust/crates/cfg-if-0.1.10.tar.gz) = 7933 -SHA256 (python/rust/crates/cfg-if-1.0.0.tar.gz) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd -SIZE (python/rust/crates/cfg-if-1.0.0.tar.gz) = 7934 -SHA256 (python/rust/crates/chrono-0.4.19.tar.gz) = 670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73 -SIZE (python/rust/crates/chrono-0.4.19.tar.gz) = 155663 -SHA256 (python/rust/crates/cloudabi-0.1.0.tar.gz) = 4344512281c643ae7638bbabc3af17a11307803ec8f0fcad9fae512a8bf36467 -SIZE (python/rust/crates/cloudabi-0.1.0.tar.gz) = 22687 -SHA256 (python/rust/crates/constant_time_eq-0.1.5.tar.gz) = 245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc -SIZE (python/rust/crates/constant_time_eq-0.1.5.tar.gz) = 4936 -SHA256 (python/rust/crates/core-foundation-0.7.0.tar.gz) = 57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171 -SIZE (python/rust/crates/core-foundation-0.7.0.tar.gz) = 25384 -SHA256 (python/rust/crates/core-foundation-sys-0.7.0.tar.gz) = b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac -SIZE (python/rust/crates/core-foundation-sys-0.7.0.tar.gz) = 17033 -SHA256 (python/rust/crates/crc32fast-1.2.1.tar.gz) = 81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a -SIZE (python/rust/crates/crc32fast-1.2.1.tar.gz) = 38172 -SHA256 (python/rust/crates/crossbeam-channel-0.4.4.tar.gz) = b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87 -SIZE (python/rust/crates/crossbeam-channel-0.4.4.tar.gz) = 86868 -SHA256 (python/rust/crates/crossbeam-utils-0.7.2.tar.gz) = c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8 -SIZE (python/rust/crates/crossbeam-utils-0.7.2.tar.gz) = 34338 -SHA256 (python/rust/crates/crypto-mac-0.8.0.tar.gz) = b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab -SIZE (python/rust/crates/crypto-mac-0.8.0.tar.gz) = 9115 -SHA256 (python/rust/crates/ctor-0.1.16.tar.gz) = 7fbaabec2c953050352311293be5c6aba8e141ba19d6811862b232d6fd020484 -SIZE (python/rust/crates/ctor-0.1.16.tar.gz) = 4770 -SHA256 (python/rust/crates/derivative-2.1.1.tar.gz) = cb582b60359da160a9477ee80f15c8d784c477e69c217ef2cdd4169c24ea380f -SIZE (python/rust/crates/derivative-2.1.1.tar.gz) = 45571 -SHA256 (python/rust/crates/digest-0.9.0.tar.gz) = d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066 -SIZE (python/rust/crates/digest-0.9.0.tar.gz) = 13247 -SHA256 (python/rust/crates/dirs-2.0.2.tar.gz) = 13aea89a5c93364a98e9b37b2fa237effbb694d5cfe01c5b70941f7eb087d5e3 -SIZE (python/rust/crates/dirs-2.0.2.tar.gz) = 11779 -SHA256 (python/rust/crates/dirs-sys-0.3.5.tar.gz) = 8e93d7f5705de3e49895a2b5e0b8855a1c27f080192ae9c32a6432d50741a57a -SIZE (python/rust/crates/dirs-sys-0.3.5.tar.gz) = 10643 -SHA256 (python/rust/crates/dtoa-0.4.6.tar.gz) = 134951f4028bdadb9b84baf4232681efbf277da25144b9b0ad65df75946c422b -SIZE (python/rust/crates/dtoa-0.4.6.tar.gz) = 15979 -SHA256 (python/rust/crates/either-1.6.1.tar.gz) = e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457 -SIZE (python/rust/crates/either-1.6.1.tar.gz) = 13641 -SHA256 (python/rust/crates/encoding_rs-0.8.24.tar.gz) = a51b8cf747471cb9499b6d59e59b0444f4c90eba8968c4e44874e92b5b64ace2 -SIZE (python/rust/crates/encoding_rs-0.8.24.tar.gz) = 1366911 -SHA256 (python/rust/crates/failure-0.1.8.tar.gz) = d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86 -SIZE (python/rust/crates/failure-0.1.8.tar.gz) = 37582 -SHA256 (python/rust/crates/failure_derive-0.1.8.tar.gz) = aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4 -SIZE (python/rust/crates/failure_derive-0.1.8.tar.gz) = 4950 -SHA256 (python/rust/crates/fallible-iterator-0.2.0.tar.gz) = 4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7 -SIZE (python/rust/crates/fallible-iterator-0.2.0.tar.gz) = 18509 -SHA256 (python/rust/crates/fallible-streaming-iterator-0.1.9.tar.gz) = 7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a -SIZE (python/rust/crates/fallible-streaming-iterator-0.1.9.tar.gz) = 9249 -SHA256 (python/rust/crates/fixedbitset-0.2.0.tar.gz) = 37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d -SIZE (python/rust/crates/fixedbitset-0.2.0.tar.gz) = 13597 -SHA256 (python/rust/crates/flate2-1.0.18.tar.gz) = da80be589a72651dcda34d8b35bcdc9b7254ad06325611074d9cc0fbb19f60ee -SIZE (python/rust/crates/flate2-1.0.18.tar.gz) = 74164 -SHA256 (python/rust/crates/fluent-langneg-0.12.1.tar.gz) = fe5815efd5542e40841cd34ef9003822352b04c67a70c595c6758597c72e1f56 -SIZE (python/rust/crates/fluent-langneg-0.12.1.tar.gz) = 19329 -SHA256 (python/rust/crates/fluent-syntax-0.9.3.tar.gz) = ac0f7e83d14cccbf26e165d8881dcac5891af0d85a88543c09dd72ebd31d91ba -SIZE (python/rust/crates/fluent-syntax-0.9.3.tar.gz) = 73722 -SHA256 (python/rust/crates/fnv-1.0.7.tar.gz) = 3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1 -SIZE (python/rust/crates/fnv-1.0.7.tar.gz) = 11266 -SHA256 (python/rust/crates/foreign-types-0.3.2.tar.gz) = f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1 -SIZE (python/rust/crates/foreign-types-0.3.2.tar.gz) = 7504 -SHA256 (python/rust/crates/foreign-types-shared-0.1.1.tar.gz) = 00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b -SIZE (python/rust/crates/foreign-types-shared-0.1.1.tar.gz) = 5672 -SHA256 (python/rust/crates/fuchsia-zircon-0.3.3.tar.gz) = 2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82 -SIZE (python/rust/crates/fuchsia-zircon-0.3.3.tar.gz) = 22565 -SHA256 (python/rust/crates/fuchsia-zircon-sys-0.3.3.tar.gz) = 3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7 -SIZE (python/rust/crates/fuchsia-zircon-sys-0.3.3.tar.gz) = 7191 -SHA256 (python/rust/crates/futures-0.3.6.tar.gz) = 5d8e3078b7b2a8a671cb7a3d17b4760e4181ea243227776ba83fd043b4ca034e -SIZE (python/rust/crates/futures-0.3.6.tar.gz) = 39860 -SHA256 (python/rust/crates/futures-channel-0.3.6.tar.gz) = a7a4d35f7401e948629c9c3d6638fb9bf94e0b2121e96c3b428cc4e631f3eb74 -SIZE (python/rust/crates/futures-channel-0.3.6.tar.gz) = 29465 -SHA256 (python/rust/crates/futures-core-0.3.6.tar.gz) = d674eaa0056896d5ada519900dbf97ead2e46a7b6621e8160d79e2f2e1e2784b -SIZE (python/rust/crates/futures-core-0.3.6.tar.gz) = 13838 -SHA256 (python/rust/crates/futures-executor-0.3.6.tar.gz) = cc709ca1da6f66143b8c9bec8e6260181869893714e9b5a490b169b0414144ab -SIZE (python/rust/crates/futures-executor-0.3.6.tar.gz) = 16639 -SHA256 (python/rust/crates/futures-io-0.3.6.tar.gz) = 5fc94b64bb39543b4e432f1790b6bf18e3ee3b74653c5449f63310e9a74b123c -SIZE (python/rust/crates/futures-io-0.3.6.tar.gz) = 9129 -SHA256 (python/rust/crates/futures-macro-0.3.6.tar.gz) = f57ed14da4603b2554682e9f2ff3c65d7567b53188db96cb71538217fc64581b -SIZE (python/rust/crates/futures-macro-0.3.6.tar.gz) = 9778 -SHA256 (python/rust/crates/futures-sink-0.3.6.tar.gz) = 0d8764258ed64ebc5d9ed185cf86a95db5cac810269c5d20ececb32e0088abbd -SIZE (python/rust/crates/futures-sink-0.3.6.tar.gz) = 7730 -SHA256 (python/rust/crates/futures-task-0.3.6.tar.gz) = 4dd26820a9f3637f1302da8bceba3ff33adbe53464b54ca24d4e2d4f1db30f94 -SIZE (python/rust/crates/futures-task-0.3.6.tar.gz) = 11130 -SHA256 (python/rust/crates/futures-util-0.3.6.tar.gz) = 8a894a0acddba51a2d49a6f4263b1e64b8c579ece8af50fa86503d52cd1eea34 -SIZE (python/rust/crates/futures-util-0.3.6.tar.gz) = 133258 -SHA256 (python/rust/crates/fxhash-0.2.1.tar.gz) = c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c -SIZE (python/rust/crates/fxhash-0.2.1.tar.gz) = 4102 -SHA256 (python/rust/crates/generic-array-0.14.4.tar.gz) = 501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817 -SIZE (python/rust/crates/generic-array-0.14.4.tar.gz) = 28916 -SHA256 (python/rust/crates/getrandom-0.1.15.tar.gz) = fc587bc0ec293155d5bfa6b9891ec18a1e330c234f896ea47fbada4cadbe47e6 -SIZE (python/rust/crates/getrandom-0.1.15.tar.gz) = 24786 -SHA256 (python/rust/crates/ghost-0.1.2.tar.gz) = 1a5bcf1bbeab73aa4cf2fde60a846858dc036163c7c33bec309f8d17de785479 -SIZE (python/rust/crates/ghost-0.1.2.tar.gz) = 12777 -SHA256 (python/rust/crates/gimli-0.22.0.tar.gz) = aaf91faf136cb47367fa430cd46e37a788775e7fa104f8b4bcb3861dc389b724 -SIZE (python/rust/crates/gimli-0.22.0.tar.gz) = 704135 -SHA256 (python/rust/crates/h2-0.2.6.tar.gz) = 993f9e0baeed60001cf565546b0d3dbe6a6ad23f2bd31644a133c641eccf6d53 -SIZE (python/rust/crates/h2-0.2.6.tar.gz) = 157564 -SHA256 (python/rust/crates/hashbrown-0.9.1.tar.gz) = d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04 -SIZE (python/rust/crates/hashbrown-0.9.1.tar.gz) = 77734 -SHA256 (python/rust/crates/heck-0.3.1.tar.gz) = 20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205 -SIZE (python/rust/crates/heck-0.3.1.tar.gz) = 54666 -SHA256 (python/rust/crates/hermit-abi-0.1.17.tar.gz) = 5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8 -SIZE (python/rust/crates/hermit-abi-0.1.17.tar.gz) = 10065 -SHA256 (python/rust/crates/hex-0.4.2.tar.gz) = 644f9158b2f133fd50f5fb3242878846d9eb792e445c893805ff0e3824006e35 -SIZE (python/rust/crates/hex-0.4.2.tar.gz) = 13385 -SHA256 (python/rust/crates/htmlescape-0.3.1.tar.gz) = e9025058dae765dee5070ec375f591e2ba14638c63feff74f13805a72e523163 -SIZE (python/rust/crates/htmlescape-0.3.1.tar.gz) = 53226 -SHA256 (python/rust/crates/http-0.2.1.tar.gz) = 28d569972648b2c512421b5f2a405ad6ac9666547189d0c5477a3f200f3e02f9 -SIZE (python/rust/crates/http-0.2.1.tar.gz) = 102231 -SHA256 (python/rust/crates/http-body-0.3.1.tar.gz) = 13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b -SIZE (python/rust/crates/http-body-0.3.1.tar.gz) = 5394 -SHA256 (python/rust/crates/httparse-1.3.4.tar.gz) = cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9 -SIZE (python/rust/crates/httparse-1.3.4.tar.gz) = 23739 -SHA256 (python/rust/crates/httpdate-0.3.2.tar.gz) = 494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47 -SIZE (python/rust/crates/httpdate-0.3.2.tar.gz) = 10768 -SHA256 (python/rust/crates/humansize-1.1.0.tar.gz) = b6cab2627acfc432780848602f3f558f7e9dd427352224b0d9324025796d2a5e -SIZE (python/rust/crates/humansize-1.1.0.tar.gz) = 4459 -SHA256 (python/rust/crates/hyper-0.13.8.tar.gz) = 2f3afcfae8af5ad0576a31e768415edb627824129e8e5a29b8bfccb2f234e835 -SIZE (python/rust/crates/hyper-0.13.8.tar.gz) = 139668 -SHA256 (python/rust/crates/hyper-tls-0.4.3.tar.gz) = d979acc56dcb5b8dddba3917601745e877576475aa046df3226eabdecef78eed -SIZE (python/rust/crates/hyper-tls-0.4.3.tar.gz) = 14195 -SHA256 (python/rust/crates/idna-0.2.0.tar.gz) = 02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9 -SIZE (python/rust/crates/idna-0.2.0.tar.gz) = 257203 -SHA256 (python/rust/crates/indexmap-1.6.0.tar.gz) = 55e2e4c765aa53a0424761bf9f41aa7a6ac1efa87238f59560640e27fca028f2 -SIZE (python/rust/crates/indexmap-1.6.0.tar.gz) = 47565 -SHA256 (python/rust/crates/indoc-0.3.6.tar.gz) = 47741a8bc60fb26eb8d6e0238bbb26d8575ff623fdc97b1a2c00c050b9684ed8 -SIZE (python/rust/crates/indoc-0.3.6.tar.gz) = 9663 -SHA256 (python/rust/crates/indoc-impl-0.3.6.tar.gz) = ce046d161f000fffde5f432a0d034d0341dc152643b2598ed5bfce44c4f3a8f0 -SIZE (python/rust/crates/indoc-impl-0.3.6.tar.gz) = 7933 -SHA256 (python/rust/crates/instant-0.1.7.tar.gz) = 63312a18f7ea8760cdd0a7c5aac1a619752a246b833545e3e36d1f81f7cd9e66 -SIZE (python/rust/crates/instant-0.1.7.tar.gz) = 5097 -SHA256 (python/rust/crates/intl_pluralrules-6.0.0.tar.gz) = d82c14d8eece42c03353e0ce86a4d3f97b1f1cef401e4d962dca6c6214a85002 -SIZE (python/rust/crates/intl_pluralrules-6.0.0.tar.gz) = 15999 -SHA256 (python/rust/crates/inventory-0.1.9.tar.gz) = fedd49de24d8c263613701406611410687148ae8c37cd6452650b250f753a0dd -SIZE (python/rust/crates/inventory-0.1.9.tar.gz) = 11578 -SHA256 (python/rust/crates/inventory-impl-0.1.9.tar.gz) = ddead8880bc50f57fcd3b5869a7f6ff92570bb4e8f6870c22e2483272f2256da -SIZE (python/rust/crates/inventory-impl-0.1.9.tar.gz) = 1859 -SHA256 (python/rust/crates/iovec-0.1.4.tar.gz) = b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e -SIZE (python/rust/crates/iovec-0.1.4.tar.gz) = 8720 -SHA256 (python/rust/crates/itertools-0.8.2.tar.gz) = f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484 -SIZE (python/rust/crates/itertools-0.8.2.tar.gz) = 89203 -SHA256 (python/rust/crates/itertools-0.9.0.tar.gz) = 284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b -SIZE (python/rust/crates/itertools-0.9.0.tar.gz) = 96429 -SHA256 (python/rust/crates/itoa-0.4.6.tar.gz) = dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6 -SIZE (python/rust/crates/itoa-0.4.6.tar.gz) = 12167 -SHA256 (python/rust/crates/js-sys-0.3.45.tar.gz) = ca059e81d9486668f12d455a4ea6daa600bd408134cd17e3d3fb5a32d1f016f8 -SIZE (python/rust/crates/js-sys-0.3.45.tar.gz) = 67143 -SHA256 (python/rust/crates/kernel32-sys-0.2.2.tar.gz) = 7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d -SIZE (python/rust/crates/kernel32-sys-0.2.2.tar.gz) = 24537 -SHA256 (python/rust/crates/lazy_static-1.4.0.tar.gz) = e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646 -SIZE (python/rust/crates/lazy_static-1.4.0.tar.gz) = 10443 -SHA256 (python/rust/crates/lexical-core-0.7.6.tar.gz) = 6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe -SIZE (python/rust/crates/lexical-core-0.7.6.tar.gz) = 494385 -SHA256 (python/rust/crates/libc-0.2.79.tar.gz) = 2448f6066e80e3bfc792e9c98bf705b4b0fc6e8ef5b43e5889aff0eaa9c58743 -SIZE (python/rust/crates/libc-0.2.79.tar.gz) = 511752 -SHA256 (python/rust/crates/libsqlite3-sys-0.18.0.tar.gz) = 1e704a02bcaecd4a08b93a23f6be59d0bd79cd161e0963e9499165a0a35df7bd -SIZE (python/rust/crates/libsqlite3-sys-0.18.0.tar.gz) = 2281735 -SHA256 (python/rust/crates/linked-hash-map-0.5.3.tar.gz) = 8dd5a6d5999d9907cda8ed67bbd137d3af8085216c2ac62de5be860bd41f304a -SIZE (python/rust/crates/linked-hash-map-0.5.3.tar.gz) = 16130 -SHA256 (python/rust/crates/lock_api-0.4.1.tar.gz) = 28247cc5a5be2f05fbcd76dd0cf2c7d3b5400cb978a28042abcd4fa0b3f8261c -SIZE (python/rust/crates/lock_api-0.4.1.tar.gz) = 20339 -SHA256 (python/rust/crates/log-0.4.11.tar.gz) = 4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b -SIZE (python/rust/crates/log-0.4.11.tar.gz) = 36276 -SHA256 (python/rust/crates/lru-cache-0.1.2.tar.gz) = 31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c -SIZE (python/rust/crates/lru-cache-0.1.2.tar.gz) = 9307 -SHA256 (python/rust/crates/matches-0.1.8.tar.gz) = 7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08 -SIZE (python/rust/crates/matches-0.1.8.tar.gz) = 2216 -SHA256 (python/rust/crates/maybe-uninit-2.0.0.tar.gz) = 60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00 -SIZE (python/rust/crates/maybe-uninit-2.0.0.tar.gz) = 11809 -SHA256 (python/rust/crates/memchr-2.3.3.tar.gz) = 3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400 -SIZE (python/rust/crates/memchr-2.3.3.tar.gz) = 22566 -SHA256 (python/rust/crates/mime-0.3.16.tar.gz) = 2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d -SIZE (python/rust/crates/mime-0.3.16.tar.gz) = 15206 -SHA256 (python/rust/crates/mime_guess-2.0.3.tar.gz) = 2684d4c2e97d99848d30b324b00c8fcc7e5c897b7cbb5819b09e7c90e8baf212 -SIZE (python/rust/crates/mime_guess-2.0.3.tar.gz) = 27437 -SHA256 (python/rust/crates/miniz_oxide-0.4.3.tar.gz) = 0f2d26ec3309788e423cfbf68ad1800f061638098d76a83681af979dc4eda19d -SIZE (python/rust/crates/miniz_oxide-0.4.3.tar.gz) = 50058 -SHA256 (python/rust/crates/mio-0.6.22.tar.gz) = fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430 -SIZE (python/rust/crates/mio-0.6.22.tar.gz) = 102782 -SHA256 (python/rust/crates/miow-0.2.1.tar.gz) = 8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919 -SIZE (python/rust/crates/miow-0.2.1.tar.gz) = 21133 -SHA256 (python/rust/crates/multimap-0.8.2.tar.gz) = 1255076139a83bb467426e7f8d0134968a8118844faa755985e077cf31850333 -SIZE (python/rust/crates/multimap-0.8.2.tar.gz) = 13453 -SHA256 (python/rust/crates/native-tls-0.2.4.tar.gz) = 2b0d88c06fe90d5ee94048ba40409ef1d9315d86f6f38c2efdaad4fb50c58b2d -SIZE (python/rust/crates/native-tls-0.2.4.tar.gz) = 32170 -SHA256 (python/rust/crates/net2-0.2.35.tar.gz) = 3ebc3ec692ed7c9a255596c67808dee269f64655d8baf7b4f0638e51ba1d6853 -SIZE (python/rust/crates/net2-0.2.35.tar.gz) = 20660 -SHA256 (python/rust/crates/nodrop-0.1.14.tar.gz) = 72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb -SIZE (python/rust/crates/nodrop-0.1.14.tar.gz) = 7667 -SHA256 (python/rust/crates/nom-5.1.2.tar.gz) = ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af -SIZE (python/rust/crates/nom-5.1.2.tar.gz) = 136174 -SHA256 (python/rust/crates/num-format-0.4.0.tar.gz) = bafe4179722c2894288ee77a9f044f02811c86af699344c498b0840c698a2465 -SIZE (python/rust/crates/num-format-0.4.0.tar.gz) = 59791 -SHA256 (python/rust/crates/num-integer-0.1.43.tar.gz) = 8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b -SIZE (python/rust/crates/num-integer-0.1.43.tar.gz) = 21966 -SHA256 (python/rust/crates/num-traits-0.2.12.tar.gz) = ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611 -SIZE (python/rust/crates/num-traits-0.2.12.tar.gz) = 43807 -SHA256 (python/rust/crates/num_cpus-1.13.0.tar.gz) = 05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3 -SIZE (python/rust/crates/num_cpus-1.13.0.tar.gz) = 14704 -SHA256 (python/rust/crates/num_enum-0.5.1.tar.gz) = 226b45a5c2ac4dd696ed30fa6b94b057ad909c7b7fc2e0d0808192bced894066 -SIZE (python/rust/crates/num_enum-0.5.1.tar.gz) = 8210 -SHA256 (python/rust/crates/num_enum_derive-0.5.1.tar.gz) = 1c0fd9eba1d5db0994a239e09c1be402d35622277e35468ba891aa5e3188ce7e -SIZE (python/rust/crates/num_enum_derive-0.5.1.tar.gz) = 7579 -SHA256 (python/rust/crates/object-0.21.1.tar.gz) = 37fd5004feb2ce328a52b0b3d01dbf4ffff72583493900ed15f22d4111c51693 -SIZE (python/rust/crates/object-0.21.1.tar.gz) = 174624 -SHA256 (python/rust/crates/once_cell-1.4.1.tar.gz) = 260e51e7efe62b592207e9e13a68e43692a7a279171d6ba57abd208bf23645ad -SIZE (python/rust/crates/once_cell-1.4.1.tar.gz) = 24366 -SHA256 (python/rust/crates/openssl-0.10.30.tar.gz) = 8d575eff3665419f9b83678ff2815858ad9d11567e082f5ac1814baba4e2bcb4 -SIZE (python/rust/crates/openssl-0.10.30.tar.gz) = 191808 -SHA256 (python/rust/crates/openssl-probe-0.1.2.tar.gz) = 77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de -SIZE (python/rust/crates/openssl-probe-0.1.2.tar.gz) = 6427 -SHA256 (python/rust/crates/openssl-sys-0.9.58.tar.gz) = a842db4709b604f0fe5d1170ae3565899be2ad3d9cbc72dedc789ac0511f78de -SIZE (python/rust/crates/openssl-sys-0.9.58.tar.gz) = 47014 -SHA256 (python/rust/crates/parking_lot-0.11.0.tar.gz) = a4893845fa2ca272e647da5d0e46660a314ead9c2fdd9a883aabc32e481a8733 -SIZE (python/rust/crates/parking_lot-0.11.0.tar.gz) = 39558 -SHA256 (python/rust/crates/parking_lot_core-0.8.0.tar.gz) = c361aa727dd08437f2f1447be8b59a33b0edd15e0fcee698f935613d9efbca9b -SIZE (python/rust/crates/parking_lot_core-0.8.0.tar.gz) = 33870 -SHA256 (python/rust/crates/paste-0.1.18.tar.gz) = 45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880 -SIZE (python/rust/crates/paste-0.1.18.tar.gz) = 12259 -SHA256 (python/rust/crates/paste-impl-0.1.18.tar.gz) = d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6 -SIZE (python/rust/crates/paste-impl-0.1.18.tar.gz) = 9451 -SHA256 (python/rust/crates/percent-encoding-2.1.0.tar.gz) = d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e -SIZE (python/rust/crates/percent-encoding-2.1.0.tar.gz) = 9748 -SHA256 (python/rust/crates/petgraph-0.5.1.tar.gz) = 467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7 -SIZE (python/rust/crates/petgraph-0.5.1.tar.gz) = 147173 -SHA256 (python/rust/crates/pin-project-0.4.27.tar.gz) = 2ffbc8e94b38ea3d2d8ba92aea2983b503cd75d0888d75b86bb37970b5698e15 -SIZE (python/rust/crates/pin-project-0.4.27.tar.gz) = 50964 -SHA256 (python/rust/crates/pin-project-internal-0.4.27.tar.gz) = 65ad2ae56b6abe3a1ee25f15ee605bacadb9a764edaba9c2bf4103800d4a1895 -SIZE (python/rust/crates/pin-project-internal-0.4.27.tar.gz) = 29739 -SHA256 (python/rust/crates/pin-project-lite-0.1.11.tar.gz) = c917123afa01924fc84bb20c4c03f004d9c38e5127e3c039bbf7f4b9c76a2f6b -SIZE (python/rust/crates/pin-project-lite-0.1.11.tar.gz) = 25308 -SHA256 (python/rust/crates/pin-utils-0.1.0.tar.gz) = 8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184 -SIZE (python/rust/crates/pin-utils-0.1.0.tar.gz) = 7580 -SHA256 (python/rust/crates/pkg-config-0.3.19.tar.gz) = 3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c -SIZE (python/rust/crates/pkg-config-0.3.19.tar.gz) = 15451 -SHA256 (python/rust/crates/podio-0.1.7.tar.gz) = b18befed8bc2b61abc79a457295e7e838417326da1586050b919414073977f19 -SIZE (python/rust/crates/podio-0.1.7.tar.gz) = 10294 -SHA256 (python/rust/crates/ppv-lite86-0.2.9.tar.gz) = c36fa947111f5c62a733b652544dd0016a43ce89619538a8ef92724a6f501a20 -SIZE (python/rust/crates/ppv-lite86-0.2.9.tar.gz) = 20933 -SHA256 (python/rust/crates/proc-macro-crate-0.1.5.tar.gz) = 1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785 -SIZE (python/rust/crates/proc-macro-crate-0.1.5.tar.gz) = 8096 -SHA256 (python/rust/crates/proc-macro-hack-0.5.18.tar.gz) = 99c605b9a0adc77b7211c6b1f722dcb613d68d66859a44f3d485a6da332b0598 -SIZE (python/rust/crates/proc-macro-hack-0.5.18.tar.gz) = 14619 -SHA256 (python/rust/crates/proc-macro-nested-0.1.6.tar.gz) = eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a -SIZE (python/rust/crates/proc-macro-nested-0.1.6.tar.gz) = 6498 -SHA256 (python/rust/crates/proc-macro2-1.0.24.tar.gz) = 1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71 -SIZE (python/rust/crates/proc-macro2-1.0.24.tar.gz) = 37716 -SHA256 (python/rust/crates/prost-0.6.1.tar.gz) = ce49aefe0a6144a45de32927c77bd2859a5f7677b55f220ae5b744e87389c212 -SIZE (python/rust/crates/prost-0.6.1.tar.gz) = 23393 -SHA256 (python/rust/crates/prost-build-0.6.1.tar.gz) = 02b10678c913ecbd69350e8535c3aef91a8676c0773fc1d7b95cdd196d7f2f26 -SIZE (python/rust/crates/prost-build-0.6.1.tar.gz) = 7935314 -SHA256 (python/rust/crates/prost-derive-0.6.1.tar.gz) = 537aa19b95acde10a12fec4301466386f757403de4cd4e5b4fa78fb5ecb18f72 -SIZE (python/rust/crates/prost-derive-0.6.1.tar.gz) = 15007 -SHA256 (python/rust/crates/prost-types-0.6.1.tar.gz) = 1834f67c0697c001304b75be76f67add9c89742eda3a085ad8ee0bb38c3417aa -SIZE (python/rust/crates/prost-types-0.6.1.tar.gz) = 24092 -SHA256 (python/rust/crates/pyo3-0.11.1.tar.gz) = 9ca8710ffa8211c9a62a8a3863c4267c710dc42a82a7fd29c97de465d7ea6b7d -SIZE (python/rust/crates/pyo3-0.11.1.tar.gz) = 230111 -SHA256 (python/rust/crates/pyo3-derive-backend-0.11.1.tar.gz) = 58ad070bf6967b0d29ea74931ffcf9c6bbe8402a726e9afbeafadc0a287cc2b3 -SIZE (python/rust/crates/pyo3-derive-backend-0.11.1.tar.gz) = 25011 -SHA256 (python/rust/crates/pyo3cls-0.11.1.tar.gz) = c3fa17e1ea569d0bf3b7c00f2a9eea831ca05e55dd76f1794c541abba1c64baa -SIZE (python/rust/crates/pyo3cls-0.11.1.tar.gz) = 1693 -SHA256 (python/rust/crates/quote-1.0.7.tar.gz) = aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37 -SIZE (python/rust/crates/quote-1.0.7.tar.gz) = 25170 -SHA256 (python/rust/crates/rand-0.7.3.tar.gz) = 6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03 -SIZE (python/rust/crates/rand-0.7.3.tar.gz) = 112246 -SHA256 (python/rust/crates/rand_chacha-0.2.2.tar.gz) = f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402 -SIZE (python/rust/crates/rand_chacha-0.2.2.tar.gz) = 13267 -SHA256 (python/rust/crates/rand_core-0.5.1.tar.gz) = 90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19 -SIZE (python/rust/crates/rand_core-0.5.1.tar.gz) = 21116 -SHA256 (python/rust/crates/rand_hc-0.2.0.tar.gz) = ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c -SIZE (python/rust/crates/rand_hc-0.2.0.tar.gz) = 11670 -SHA256 (python/rust/crates/redox_syscall-0.1.57.tar.gz) = 41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce -SIZE (python/rust/crates/redox_syscall-0.1.57.tar.gz) = 17087 -SHA256 (python/rust/crates/redox_users-0.3.5.tar.gz) = de0737333e7a9502c789a36d7c7fa6092a49895d4faa31ca5df163857ded2e9d -SIZE (python/rust/crates/redox_users-0.3.5.tar.gz) = 12644 -SHA256 (python/rust/crates/regex-1.4.1.tar.gz) = 8963b85b8ce3074fecffde43b4b0dded83ce2f367dc8d363afc56679f3ee820b -SIZE (python/rust/crates/regex-1.4.1.tar.gz) = 236871 -SHA256 (python/rust/crates/regex-syntax-0.6.20.tar.gz) = 8cab7a364d15cde1e505267766a2d3c4e22a843e1a601f0fa7564c0f82ced11c -SIZE (python/rust/crates/regex-syntax-0.6.20.tar.gz) = 293727 -SHA256 (python/rust/crates/remove_dir_all-0.5.3.tar.gz) = 3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7 -SIZE (python/rust/crates/remove_dir_all-0.5.3.tar.gz) = 9184 -SHA256 (python/rust/crates/rental-0.5.5.tar.gz) = 8545debe98b2b139fb04cad8618b530e9b07c152d99a5de83c860b877d67847f -SIZE (python/rust/crates/rental-0.5.5.tar.gz) = 16796 -SHA256 (python/rust/crates/rental-impl-0.5.5.tar.gz) = 475e68978dc5b743f2f40d8e0a8fdc83f1c5e78cbf4b8fa5e74e73beebc340de -SIZE (python/rust/crates/rental-impl-0.5.5.tar.gz) = 12093 -SHA256 (python/rust/crates/rusqlite-0.23.1.tar.gz) = 45d0fd62e1df63d254714e6cb40d0a0e82e7a1623e7a27f679d851af092ae58b -SIZE (python/rust/crates/rusqlite-0.23.1.tar.gz) = 112106 -SHA256 (python/rust/crates/rust-argon2-0.8.2.tar.gz) = 9dab61250775933275e84053ac235621dfb739556d5c54a2f2e9313b7cf43a19 -SIZE (python/rust/crates/rust-argon2-0.8.2.tar.gz) = 28291 -SHA256 (python/rust/crates/rustc-demangle-0.1.18.tar.gz) = 6e3bad0ee36814ca07d7968269dd4b7ec89ec2da10c4bb613928d3077083c232 -SIZE (python/rust/crates/rustc-demangle-0.1.18.tar.gz) = 19913 -SHA256 (python/rust/crates/ryu-1.0.5.tar.gz) = 71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e -SIZE (python/rust/crates/ryu-1.0.5.tar.gz) = 49570 -SHA256 (python/rust/crates/schannel-0.1.19.tar.gz) = 8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75 -SIZE (python/rust/crates/schannel-0.1.19.tar.gz) = 42755 -SHA256 (python/rust/crates/scopeguard-1.1.0.tar.gz) = d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd -SIZE (python/rust/crates/scopeguard-1.1.0.tar.gz) = 11470 -SHA256 (python/rust/crates/security-framework-0.4.4.tar.gz) = 64808902d7d99f78eaddd2b4e2509713babc3dc3c85ad6f4c447680f3c01e535 -SIZE (python/rust/crates/security-framework-0.4.4.tar.gz) = 54841 -SHA256 (python/rust/crates/security-framework-sys-0.4.3.tar.gz) = 17bf11d99252f512695eb468de5516e5cf75455521e69dfe343f3b74e4748405 -SIZE (python/rust/crates/security-framework-sys-0.4.3.tar.gz) = 10508 -SHA256 (python/rust/crates/serde-1.0.117.tar.gz) = b88fa983de7720629c9387e9f517353ed404164b1e482c970a90c1a4aaf7dc1a -SIZE (python/rust/crates/serde-1.0.117.tar.gz) = 74505 -SHA256 (python/rust/crates/serde-aux-0.6.1.tar.gz) = ae50f53d4b01e854319c1f5b854cd59471f054ea7e554988850d3f36ca1dc852 -SIZE (python/rust/crates/serde-aux-0.6.1.tar.gz) = 5701 -SHA256 (python/rust/crates/serde_derive-1.0.117.tar.gz) = cbd1ae72adb44aab48f325a02444a5fc079349a8d804c1fc922aed3f7454c74e -SIZE (python/rust/crates/serde_derive-1.0.117.tar.gz) = 50712 -SHA256 (python/rust/crates/serde_json-1.0.59.tar.gz) = dcac07dbffa1c65e7f816ab9eba78eb142c6d44410f4eeba1e26e4f5dfa56b95 -SIZE (python/rust/crates/serde_json-1.0.59.tar.gz) = 114956 -SHA256 (python/rust/crates/serde_repr-0.1.6.tar.gz) = 2dc6b7951b17b051f3210b063f12cc17320e2fe30ae05b0fe2a3abb068551c76 -SIZE (python/rust/crates/serde_repr-0.1.6.tar.gz) = 10181 -SHA256 (python/rust/crates/serde_tuple-0.5.0.tar.gz) = f4f025b91216f15a2a32aa39669329a475733590a015835d1783549a56d09427 -SIZE (python/rust/crates/serde_tuple-0.5.0.tar.gz) = 3817 -SHA256 (python/rust/crates/serde_tuple_macros-0.5.0.tar.gz) = 4076151d1a2b688e25aaf236997933c66e18b870d0369f8b248b8ab2be630d7e -SIZE (python/rust/crates/serde_tuple_macros-0.5.0.tar.gz) = 2205 -SHA256 (python/rust/crates/serde_urlencoded-0.6.1.tar.gz) = 9ec5d77e2d4c73717816afac02670d5c4f534ea95ed430442cad02e7a6e32c97 -SIZE (python/rust/crates/serde_urlencoded-0.6.1.tar.gz) = 12540 -SHA256 (python/rust/crates/sha1-0.6.0.tar.gz) = 2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d -SIZE (python/rust/crates/sha1-0.6.0.tar.gz) = 9244 -SHA256 (python/rust/crates/slab-0.4.2.tar.gz) = c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8 -SIZE (python/rust/crates/slab-0.4.2.tar.gz) = 10136 -SHA256 (python/rust/crates/slog-2.5.2.tar.gz) = 1cc9c640a4adbfbcc11ffb95efe5aa7af7309e002adab54b185507dbf2377b99 -SIZE (python/rust/crates/slog-2.5.2.tar.gz) = 43204 -SHA256 (python/rust/crates/slog-async-2.5.0.tar.gz) = 51b3336ce47ce2f96673499fc07eb85e3472727b9a7a2959964b002c2ce8fbbb -SIZE (python/rust/crates/slog-async-2.5.0.tar.gz) = 18033 -SHA256 (python/rust/crates/slog-envlogger-2.2.0.tar.gz) = 906a1a0bc43fed692df4b82a5e2fbfc3733db8dad8bb514ab27a4f23ad04f5c0 -SIZE (python/rust/crates/slog-envlogger-2.2.0.tar.gz) = 13240 -SHA256 (python/rust/crates/slog-scope-4.3.0.tar.gz) = 7c44c89dd8b0ae4537d1ae318353eaf7840b4869c536e31c41e963d1ea523ee6 -SIZE (python/rust/crates/slog-scope-4.3.0.tar.gz) = 16986 -SHA256 (python/rust/crates/slog-stdlog-4.1.0.tar.gz) = 8228ab7302adbf4fcb37e66f3cda78003feb521e7fd9e3847ec117a7784d0f5a -SIZE (python/rust/crates/slog-stdlog-4.1.0.tar.gz) = 14523 -SHA256 (python/rust/crates/slog-term-2.6.0.tar.gz) = bab1d807cf71129b05ce36914e1dbb6fbfbdecaf686301cb457f4fa967f9f5b6 -SIZE (python/rust/crates/slog-term-2.6.0.tar.gz) = 26304 -SHA256 (python/rust/crates/smallvec-1.4.2.tar.gz) = fbee7696b84bbf3d89a1c2eccff0850e3047ed46bfcd2e92c29a2d074d57e252 -SIZE (python/rust/crates/smallvec-1.4.2.tar.gz) = 26109 -SHA256 (python/rust/crates/socket2-0.3.15.tar.gz) = b1fa70dc5c8104ec096f4fe7ede7a221d35ae13dcd19ba1ad9a81d2cab9a1c44 -SIZE (python/rust/crates/socket2-0.3.15.tar.gz) = 29282 -SHA256 (python/rust/crates/stable_deref_trait-1.2.0.tar.gz) = a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3 -SIZE (python/rust/crates/stable_deref_trait-1.2.0.tar.gz) = 8054 -SHA256 (python/rust/crates/static_assertions-1.1.0.tar.gz) = a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f -SIZE (python/rust/crates/static_assertions-1.1.0.tar.gz) = 18480 -SHA256 (python/rust/crates/subtle-2.3.0.tar.gz) = 343f3f510c2915908f155e94f17220b19ccfacf2a64a2a5d8004f2c3e311e7fd -SIZE (python/rust/crates/subtle-2.3.0.tar.gz) = 11096 -SHA256 (python/rust/crates/syn-1.0.46.tar.gz) = 5ad5de3220ea04da322618ded2c42233d02baca219d6f160a3e9c87cda16c942 -SIZE (python/rust/crates/syn-1.0.46.tar.gz) = 225691 -SHA256 (python/rust/crates/synstructure-0.12.4.tar.gz) = b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701 -SIZE (python/rust/crates/synstructure-0.12.4.tar.gz) = 18105 -SHA256 (python/rust/crates/take_mut-0.2.2.tar.gz) = f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60 -SIZE (python/rust/crates/take_mut-0.2.2.tar.gz) = 4263 -SHA256 (python/rust/crates/tempfile-3.1.0.tar.gz) = 7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9 -SIZE (python/rust/crates/tempfile-3.1.0.tar.gz) = 25823 -SHA256 (python/rust/crates/term-0.6.1.tar.gz) = c0863a3345e70f61d613eab32ee046ccd1bcc5f9105fe402c61fcd0c13eeb8b5 -SIZE (python/rust/crates/term-0.6.1.tar.gz) = 37578 -SHA256 (python/rust/crates/thiserror-1.0.21.tar.gz) = 318234ffa22e0920fe9a40d7b8369b5f649d490980cf7aadcf1eb91594869b42 -SIZE (python/rust/crates/thiserror-1.0.21.tar.gz) = 16187 -SHA256 (python/rust/crates/thiserror-impl-1.0.21.tar.gz) = cae2447b6282786c3493999f40a9be2a6ad20cb8bd268b0a0dbf5a065535c0ab -SIZE (python/rust/crates/thiserror-impl-1.0.21.tar.gz) = 13199 -SHA256 (python/rust/crates/thread_local-1.0.1.tar.gz) = d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14 -SIZE (python/rust/crates/thread_local-1.0.1.tar.gz) = 12609 -SHA256 (python/rust/crates/time-0.1.44.tar.gz) = 6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255 -SIZE (python/rust/crates/time-0.1.44.tar.gz) = 28885 -SHA256 (python/rust/crates/tinystr-0.3.4.tar.gz) = 29738eedb4388d9ea620eeab9384884fc3f06f586a2eddb56bedc5885126c7c1 -SIZE (python/rust/crates/tinystr-0.3.4.tar.gz) = 19341 -SHA256 (python/rust/crates/tinyvec-0.3.4.tar.gz) = 238ce071d267c5710f9d31451efec16c5ee22de34df17cc05e56cbc92e967117 -SIZE (python/rust/crates/tinyvec-0.3.4.tar.gz) = 17586 -SHA256 (python/rust/crates/tokio-0.2.22.tar.gz) = 5d34ca54d84bf2b5b4d7d31e901a8464f7b60ac145a284fba25ceb801f2ddccd -SIZE (python/rust/crates/tokio-0.2.22.tar.gz) = 400639 -SHA256 (python/rust/crates/tokio-socks-0.2.2.tar.gz) = 1997788a0e25e09300e44680ba1ef9d44d6f634a883641f80109e8b59c928daf -SIZE (python/rust/crates/tokio-socks-0.2.2.tar.gz) = 16371 -SHA256 (python/rust/crates/tokio-tls-0.3.1.tar.gz) = 9a70f4fcd7b3b24fb194f837560168208f669ca8cb70d0c4b862944452396343 -SIZE (python/rust/crates/tokio-tls-0.3.1.tar.gz) = 22517 -SHA256 (python/rust/crates/tokio-util-0.3.1.tar.gz) = be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499 -SIZE (python/rust/crates/tokio-util-0.3.1.tar.gz) = 27233 -SHA256 (python/rust/crates/toml-0.5.7.tar.gz) = 75cf45bb0bef80604d001caaec0d09da99611b3c0fd39d3080468875cdb65645 -SIZE (python/rust/crates/toml-0.5.7.tar.gz) = 54372 -SHA256 (python/rust/crates/tower-service-0.3.0.tar.gz) = e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860 -SIZE (python/rust/crates/tower-service-0.3.0.tar.gz) = 5321 -SHA256 (python/rust/crates/tracing-0.1.21.tar.gz) = b0987850db3733619253fe60e17cb59b82d37c7e6c0236bb81e4d6b87c879f27 -SIZE (python/rust/crates/tracing-0.1.21.tar.gz) = 65404 -SHA256 (python/rust/crates/tracing-core-0.1.17.tar.gz) = f50de3927f93d202783f4513cda820ab47ef17f624b03c096e86ef00c67e6b5f -SIZE (python/rust/crates/tracing-core-0.1.17.tar.gz) = 47774 -SHA256 (python/rust/crates/try-lock-0.2.3.tar.gz) = 59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642 -SIZE (python/rust/crates/try-lock-0.2.3.tar.gz) = 4158 -SHA256 (python/rust/crates/type-map-0.3.0.tar.gz) = 9d2741b1474c327d95c1f1e3b0a2c3977c8e128409c572a33af2914e7d636717 -SIZE (python/rust/crates/type-map-0.3.0.tar.gz) = 3188 -SHA256 (python/rust/crates/typenum-1.12.0.tar.gz) = 373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33 -SIZE (python/rust/crates/typenum-1.12.0.tar.gz) = 36037 -SHA256 (python/rust/crates/unic-langid-0.8.0.tar.gz) = 24d81136159f779c35b10655f45210c71cd5ca5a45aadfe9840a61c7071735ed -SIZE (python/rust/crates/unic-langid-0.8.0.tar.gz) = 4640 -SHA256 (python/rust/crates/unic-langid-impl-0.8.0.tar.gz) = c43c61e94492eb67f20facc7b025778a904de83d953d8fcb60dd9adfd6e2d0ea -SIZE (python/rust/crates/unic-langid-impl-0.8.0.tar.gz) = 36947 -SHA256 (python/rust/crates/unic-langid-macros-0.8.0.tar.gz) = 49bd90791278634d57e3ed4a4073108e3f79bfb87ab6a7b8664ba097425703df -SIZE (python/rust/crates/unic-langid-macros-0.8.0.tar.gz) = 2053 -SHA256 (python/rust/crates/unic-langid-macros-impl-0.8.0.tar.gz) = e0098f77bd754f8fb7850cdf4ab143aa821898c4ac6dc16bcb2aa3e62ce858d1 -SIZE (python/rust/crates/unic-langid-macros-impl-0.8.0.tar.gz) = 1447 -SHA256 (python/rust/crates/unicase-2.6.0.tar.gz) = 50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6 -SIZE (python/rust/crates/unicase-2.6.0.tar.gz) = 23478 -SHA256 (python/rust/crates/unicode-bidi-0.3.4.tar.gz) = 49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5 -SIZE (python/rust/crates/unicode-bidi-0.3.4.tar.gz) = 32228 -SHA256 (python/rust/crates/unicode-normalization-0.1.13.tar.gz) = 6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977 -SIZE (python/rust/crates/unicode-normalization-0.1.13.tar.gz) = 91691 -SHA256 (python/rust/crates/unicode-segmentation-1.6.0.tar.gz) = e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0 -SIZE (python/rust/crates/unicode-segmentation-1.6.0.tar.gz) = 90703 -SHA256 (python/rust/crates/unicode-xid-0.2.1.tar.gz) = f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564 -SIZE (python/rust/crates/unicode-xid-0.2.1.tar.gz) = 14392 -SHA256 (python/rust/crates/unindent-0.1.7.tar.gz) = f14ee04d9415b52b3aeab06258a3f07093182b88ba0f9b8d203f211a7a7d41c7 -SIZE (python/rust/crates/unindent-0.1.7.tar.gz) = 8346 -SHA256 (python/rust/crates/url-2.1.1.tar.gz) = 829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb -SIZE (python/rust/crates/url-2.1.1.tar.gz) = 70383 -SHA256 (python/rust/crates/utime-0.3.1.tar.gz) = 91baa0c65eabd12fcbdac8cc35ff16159cab95cae96d0222d6d0271db6193cef -SIZE (python/rust/crates/utime-0.3.1.tar.gz) = 8311 -SHA256 (python/rust/crates/vcpkg-0.2.10.tar.gz) = 6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c -SIZE (python/rust/crates/vcpkg-0.2.10.tar.gz) = 11504 -SHA256 (python/rust/crates/version_check-0.9.2.tar.gz) = b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed -SIZE (python/rust/crates/version_check-0.9.2.tar.gz) = 11979 -SHA256 (python/rust/crates/want-0.3.0.tar.gz) = 1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0 -SIZE (python/rust/crates/want-0.3.0.tar.gz) = 6550 -SHA256 (python/rust/crates/wasi-0.9.0+wasi-snapshot-preview1.tar.gz) = cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519 -SIZE (python/rust/crates/wasi-0.9.0+wasi-snapshot-preview1.tar.gz) = 31521 -SHA256 (python/rust/crates/wasi-0.10.0+wasi-snapshot-preview1.tar.gz) = 1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f -SIZE (python/rust/crates/wasi-0.10.0+wasi-snapshot-preview1.tar.gz) = 26964 -SHA256 (python/rust/crates/wasm-bindgen-0.2.68.tar.gz) = 1ac64ead5ea5f05873d7c12b545865ca2b8d28adfc50a49b84770a3a97265d42 -SIZE (python/rust/crates/wasm-bindgen-0.2.68.tar.gz) = 159094 -SHA256 (python/rust/crates/wasm-bindgen-backend-0.2.68.tar.gz) = f22b422e2a757c35a73774860af8e112bff612ce6cb604224e8e47641a9e4f68 -SIZE (python/rust/crates/wasm-bindgen-backend-0.2.68.tar.gz) = 23522 -SHA256 (python/rust/crates/wasm-bindgen-futures-0.4.18.tar.gz) = b7866cab0aa01de1edf8b5d7936938a7e397ee50ce24119aef3e1eaa3b6171da -SIZE (python/rust/crates/wasm-bindgen-futures-0.4.18.tar.gz) = 13690 -SHA256 (python/rust/crates/wasm-bindgen-macro-0.2.68.tar.gz) = 6b13312a745c08c469f0b292dd2fcd6411dba5f7160f593da6ef69b64e407038 -SIZE (python/rust/crates/wasm-bindgen-macro-0.2.68.tar.gz) = 11630 -SHA256 (python/rust/crates/wasm-bindgen-macro-support-0.2.68.tar.gz) = f249f06ef7ee334cc3b8ff031bfc11ec99d00f34d86da7498396dc1e3b1498fe -SIZE (python/rust/crates/wasm-bindgen-macro-support-0.2.68.tar.gz) = 17793 -SHA256 (python/rust/crates/wasm-bindgen-shared-0.2.68.tar.gz) = 1d649a3145108d7d3fbcde896a468d1bd636791823c9921135218ad89be08307 -SIZE (python/rust/crates/wasm-bindgen-shared-0.2.68.tar.gz) = 6725 -SHA256 (python/rust/crates/web-sys-0.3.45.tar.gz) = 4bf6ef87ad7ae8008e15a355ce696bed26012b7caa21605188cfd8214ab51e2d -SIZE (python/rust/crates/web-sys-0.3.45.tar.gz) = 630993 -SHA256 (python/rust/crates/which-3.1.1.tar.gz) = d011071ae14a2f6671d0b74080ae0cd8ebf3a6f8c9589a2cd45f23126fe29724 -SIZE (python/rust/crates/which-3.1.1.tar.gz) = 8071 -SHA256 (python/rust/crates/winapi-0.2.8.tar.gz) = 167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a -SIZE (python/rust/crates/winapi-0.2.8.tar.gz) = 455145 -SHA256 (python/rust/crates/winapi-0.3.9.tar.gz) = 5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419 -SIZE (python/rust/crates/winapi-0.3.9.tar.gz) = 1200382 -SHA256 (python/rust/crates/winapi-build-0.1.1.tar.gz) = 2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc -SIZE (python/rust/crates/winapi-build-0.1.1.tar.gz) = 669 -SHA256 (python/rust/crates/winapi-i686-pc-windows-gnu-0.4.0.tar.gz) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6 -SIZE (python/rust/crates/winapi-i686-pc-windows-gnu-0.4.0.tar.gz) = 2918815 -SHA256 (python/rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.tar.gz) = 712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f -SIZE (python/rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.tar.gz) = 2947998 -SHA256 (python/rust/crates/winreg-0.6.2.tar.gz) = b2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9 -SIZE (python/rust/crates/winreg-0.6.2.tar.gz) = 19338 -SHA256 (python/rust/crates/ws2_32-sys-0.2.1.tar.gz) = d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e -SIZE (python/rust/crates/ws2_32-sys-0.2.1.tar.gz) = 4697 -SHA256 (python/rust/crates/zip-0.5.6.tar.gz) = 58287c28d78507f5f91f2a4cf1e8310e2c76fd4c6932f93ac60fd1ceb402db7d -SIZE (python/rust/crates/zip-0.5.6.tar.gz) = 33064 -SHA256 (python/ankitects-anki-2.1.35_GH0.tar.gz) = 188c0756bd2acda0b5d675c2f8462b4bca32aed451e7ffa495e9de5c387aebd0 -SIZE (python/ankitects-anki-2.1.35_GH0.tar.gz) = 1496408 -SHA256 (python/ankitects-anki-core-i18n-fbda2ed_GH0.tar.gz) = d4cc9f878b8946b8c0a4a86935f947fc13044d837e014234b57e04fafdced602 -SIZE (python/ankitects-anki-core-i18n-fbda2ed_GH0.tar.gz) = 227281 -SHA256 (python/ankitects-anki-desktop-ftl-f56e959_GH0.tar.gz) = 3a2b5223737e7063b9d52ec90ee8598358322493745a8d254fd3c2aa464c647a -SIZE (python/ankitects-anki-desktop-ftl-f56e959_GH0.tar.gz) = 36793 -SHA256 (python/ankitects-anki-desktop-i18n-a93ccef_GH0.tar.gz) = 1cebef1595b08a480e4c64b15a5a765056be10c1fdfd658d1dfcfdc9d04af74d -SIZE (python/ankitects-anki-desktop-i18n-a93ccef_GH0.tar.gz) = 1391777 -SHA256 (python/ankitects-rust-coarsetime-f9e2c86216f0f4803bc75404828318fc206dab29_GH0.tar.gz) = e79be82d7c2f2d10856392697187f5c4a7b0858ce7046b0a2f969c32b735d81e -SIZE (python/ankitects-rust-coarsetime-f9e2c86216f0f4803bc75404828318fc206dab29_GH0.tar.gz) = 7110 -SHA256 (python/ankitects-fluent-rs-f61c5e10a53161ef5261f3c87b62047f12e4aa74_GH0.tar.gz) = 79e6574fb1611c5e5f7b159014f04bdb32374ffb20be03f36462a98e79deae04 -SIZE (python/ankitects-fluent-rs-f61c5e10a53161ef5261f3c87b62047f12e4aa74_GH0.tar.gz) = 112354 -SHA256 (python/ankitects-hyper-timeout-664b6f9c387f6a7d75d1609a65c02554e8c55bc7_GH0.tar.gz) = a31fb414802ecc5b52fc953d8d44e39084ad245bd4da3e8b9bc4e98f426fcb4d -SIZE (python/ankitects-hyper-timeout-664b6f9c387f6a7d75d1609a65c02554e8c55bc7_GH0.tar.gz) = 8461 -SHA256 (python/ankitects-reqwest-57665e2c2a39db85723ba860f1b570a608bb73f9_GH0.tar.gz) = 1402e2f4c65819f644d6c5a15fccd6eb6ca3a9b12b4157d3d04999a10dbbaf7a -SIZE (python/ankitects-reqwest-57665e2c2a39db85723ba860f1b570a608bb73f9_GH0.tar.gz) = 219588 -SHA256 (python/ankitects-tokio-io-timeout-96e1358555c49905de89170f2b1102a7d8b6c4c2_GH0.tar.gz) = a7490d924a3850a1518757a0eba225cc27784b7a79f7f525d935c92e206100e9 -SIZE (python/ankitects-tokio-io-timeout-96e1358555c49905de89170f2b1102a7d8b6c4c2_GH0.tar.gz) = 8152 +TIMESTAMP = 1627628162 +SHA256 (python/anki-yarn-cache-2.1.44.tar.gz) = 31fd744d235897fe9a019081a613da7594315c8974ed2e3bc5709c957456fff8 +SIZE (python/anki-yarn-cache-2.1.44.tar.gz) = 137877372 +SHA256 (python/rust/crates/addr2line-0.15.2.crate) = e7a2e47a1fbe209ee101dd6d61285226744c6c8d3c21c8dc878ba6cb9f467f3a +SIZE (python/rust/crates/addr2line-0.15.2.crate) = 32966 +SHA256 (python/rust/crates/adler-1.0.2.crate) = f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe +SIZE (python/rust/crates/adler-1.0.2.crate) = 12778 +SHA256 (python/rust/crates/ahash-0.4.7.crate) = 739f4a8db6605981345c5654f3a85b056ce52f37a39d34da03f25bf2151ea16e +SIZE (python/rust/crates/ahash-0.4.7.crate) = 51474 +SHA256 (python/rust/crates/aho-corasick-0.7.18.crate) = 1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f +SIZE (python/rust/crates/aho-corasick-0.7.18.crate) = 112923 +SHA256 (python/rust/crates/ammonia-3.1.2.crate) = 2e445c26125ff80316eaea16e812d717b147b82a68682bd4730f74d4845c8b35 +SIZE (python/rust/crates/ammonia-3.1.2.crate) = 39704 +SHA256 (python/rust/crates/anyhow-1.0.42.crate) = 595d3cfa7a60d4555cb5067b99f07142a08ea778de5cf993f7b75c7d8fabc486 +SIZE (python/rust/crates/anyhow-1.0.42.crate) = 34827 +SHA256 (python/rust/crates/arc-swap-1.3.0.crate) = e906254e445520903e7fc9da4f709886c84ae4bc4ddaf0e093188d66df4dc820 +SIZE (python/rust/crates/arc-swap-1.3.0.crate) = 63680 +SHA256 (python/rust/crates/arrayref-0.3.6.crate) = a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544 +SIZE (python/rust/crates/arrayref-0.3.6.crate) = 10035 +SHA256 (python/rust/crates/arrayvec-0.4.12.crate) = cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9 +SIZE (python/rust/crates/arrayvec-0.4.12.crate) = 26551 +SHA256 (python/rust/crates/arrayvec-0.5.2.crate) = 23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b +SIZE (python/rust/crates/arrayvec-0.5.2.crate) = 27838 +SHA256 (python/rust/crates/askama-0.10.5.crate) = d298738b6e47e1034e560e5afe63aa488fea34e25ec11b855a76f0d7b8e73134 +SIZE (python/rust/crates/askama-0.10.5.crate) = 7994 +SHA256 (python/rust/crates/askama_derive-0.10.5.crate) = ca2925c4c290382f9d2fa3d1c1b6a63fa1427099721ecca4749b154cc9c25522 +SIZE (python/rust/crates/askama_derive-0.10.5.crate) = 6927 +SHA256 (python/rust/crates/askama_escape-0.10.1.crate) = 90c108c1a94380c89d2215d0ac54ce09796823cca0fd91b299cfff3b33e346fb +SIZE (python/rust/crates/askama_escape-0.10.1.crate) = 8535 +SHA256 (python/rust/crates/askama_shared-0.11.1.crate) = 2582b77e0f3c506ec4838a25fa8a5f97b9bed72bb6d3d272ea1c031d8bd373bc +SIZE (python/rust/crates/askama_shared-0.11.1.crate) = 30554 +SHA256 (python/rust/crates/async-compression-0.3.8.crate) = 5443ccbb270374a2b1055fc72da40e1f237809cd6bb0e97e66d264cd138473a6 +SIZE (python/rust/crates/async-compression-0.3.8.crate) = 57977 +SHA256 (python/rust/crates/async-trait-0.1.50.crate) = 0b98e84bbb4cbcdd97da190ba0c58a1bb0de2c1fdf67d159e192ed766aeca722 +SIZE (python/rust/crates/async-trait-0.1.50.crate) = 25321 +SHA256 (python/rust/crates/atty-0.2.14.crate) = d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8 +SIZE (python/rust/crates/atty-0.2.14.crate) = 5470 +SHA256 (python/rust/crates/autocfg-1.0.1.crate) = cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a +SIZE (python/rust/crates/autocfg-1.0.1.crate) = 12908 +SHA256 (python/rust/crates/backtrace-0.3.60.crate) = b7815ea54e4d821e791162e078acbebfd6d8c8939cd559c9335dceb1c8ca7282 +SIZE (python/rust/crates/backtrace-0.3.60.crate) = 70983 +SHA256 (python/rust/crates/base64-0.12.3.crate) = 3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff +SIZE (python/rust/crates/base64-0.12.3.crate) = 57545 +SHA256 (python/rust/crates/base64-0.13.0.crate) = 904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd +SIZE (python/rust/crates/base64-0.13.0.crate) = 62070 +SHA256 (python/rust/crates/bitflags-1.2.1.crate) = cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693 +SIZE (python/rust/crates/bitflags-1.2.1.crate) = 16745 +SHA256 (python/rust/crates/bitvec-0.19.5.crate) = 8942c8d352ae1838c9dda0b0ca2ab657696ef2232a20147cf1b30ae1a9cb4321 +SIZE (python/rust/crates/bitvec-0.19.5.crate) = 148200 +SHA256 (python/rust/crates/blake3-0.3.8.crate) = b64485778c4f16a6a5a9d335e80d449ac6c70cdd6a06d2af18a6f6f775a125b3 +SIZE (python/rust/crates/blake3-0.3.8.crate) = 154058 +SHA256 (python/rust/crates/bumpalo-3.7.0.crate) = 9c59e7af012c713f529e7a3ee57ce9b31ddd858d4b512923602f74608b009631 +SIZE (python/rust/crates/bumpalo-3.7.0.crate) = 134261 +SHA256 (python/rust/crates/byteorder-1.4.3.crate) = 14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610 +SIZE (python/rust/crates/byteorder-1.4.3.crate) = 22512 +SHA256 (python/rust/crates/bytes-0.4.12.crate) = 206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c +SIZE (python/rust/crates/bytes-0.4.12.crate) = 46361 +SHA256 (python/rust/crates/bytes-0.5.6.crate) = 0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38 +SIZE (python/rust/crates/bytes-0.5.6.crate) = 46291 +SHA256 (python/rust/crates/bytes-1.0.1.crate) = b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040 +SIZE (python/rust/crates/bytes-1.0.1.crate) = 48142 +SHA256 (python/rust/crates/cc-1.0.69.crate) = e70cc2f62c6ce1868963827bd677764c62d07c3d9a3e1fb1177ee1a9ab199eb2 +SIZE (python/rust/crates/cc-1.0.69.crate) = 56044 +SHA256 (python/rust/crates/cfg-if-0.1.10.crate) = 4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822 +SIZE (python/rust/crates/cfg-if-0.1.10.crate) = 7933 +SHA256 (python/rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd +SIZE (python/rust/crates/cfg-if-1.0.0.crate) = 7934 +SHA256 (python/rust/crates/chrono-0.4.19.crate) = 670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73 +SIZE (python/rust/crates/chrono-0.4.19.crate) = 155663 +SHA256 (python/rust/crates/coarsetime-0.1.19.crate) = 2918e2ffa91a49dabbba4965fe38a37a1ba0b6953a29e32cc250a8d59cd42232 +SIZE (python/rust/crates/coarsetime-0.1.19.crate) = 7927 +SHA256 (python/rust/crates/constant_time_eq-0.1.5.crate) = 245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc +SIZE (python/rust/crates/constant_time_eq-0.1.5.crate) = 4936 +SHA256 (python/rust/crates/core-foundation-0.9.1.crate) = 0a89e2ae426ea83155dccf10c0fa6b1463ef6d5fcb44cee0b224a408fa640a62 +SIZE (python/rust/crates/core-foundation-0.9.1.crate) = 25985 +SHA256 (python/rust/crates/core-foundation-sys-0.8.2.crate) = ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b +SIZE (python/rust/crates/core-foundation-sys-0.8.2.crate) = 17461 +SHA256 (python/rust/crates/crc32fast-1.2.1.crate) = 81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a +SIZE (python/rust/crates/crc32fast-1.2.1.crate) = 38172 +SHA256 (python/rust/crates/crossbeam-channel-0.5.1.crate) = 06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4 +SIZE (python/rust/crates/crossbeam-channel-0.5.1.crate) = 86919 +SHA256 (python/rust/crates/crossbeam-utils-0.8.5.crate) = d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db +SIZE (python/rust/crates/crossbeam-utils-0.8.5.crate) = 38414 +SHA256 (python/rust/crates/crypto-mac-0.8.0.crate) = b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab +SIZE (python/rust/crates/crypto-mac-0.8.0.crate) = 9115 +SHA256 (python/rust/crates/ctor-0.1.20.crate) = 5e98e2ad1a782e33928b96fc3948e7c355e5af34ba4de7670fe8bac2a3b2006d +SIZE (python/rust/crates/ctor-0.1.20.crate) = 9328 +SHA256 (python/rust/crates/derivative-2.2.0.crate) = fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b +SIZE (python/rust/crates/derivative-2.2.0.crate) = 48076 +SHA256 (python/rust/crates/digest-0.9.0.crate) = d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066 +SIZE (python/rust/crates/digest-0.9.0.crate) = 13247 +SHA256 (python/rust/crates/dirs-next-2.0.0.crate) = b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1 +SIZE (python/rust/crates/dirs-next-2.0.0.crate) = 11689 +SHA256 (python/rust/crates/dirs-sys-next-0.1.2.crate) = 4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d +SIZE (python/rust/crates/dirs-sys-next-0.1.2.crate) = 10681 +SHA256 (python/rust/crates/dtoa-0.4.8.crate) = 56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0 +SIZE (python/rust/crates/dtoa-0.4.8.crate) = 16175 +SHA256 (python/rust/crates/either-1.6.1.crate) = e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457 +SIZE (python/rust/crates/either-1.6.1.crate) = 13641 +SHA256 (python/rust/crates/encoding_rs-0.8.28.crate) = 80df024fbc5ac80f87dfef0d9f5209a252f2a497f7f42944cff24d8253cac065 +SIZE (python/rust/crates/encoding_rs-0.8.28.crate) = 1368577 +SHA256 (python/rust/crates/env_logger-0.8.4.crate) = a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3 +SIZE (python/rust/crates/env_logger-0.8.4.crate) = 33342 +SHA256 (python/rust/crates/failure-0.1.8.crate) = d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86 +SIZE (python/rust/crates/failure-0.1.8.crate) = 37582 +SHA256 (python/rust/crates/failure_derive-0.1.8.crate) = aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4 +SIZE (python/rust/crates/failure_derive-0.1.8.crate) = 4950 +SHA256 (python/rust/crates/fallible-iterator-0.2.0.crate) = 4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7 +SIZE (python/rust/crates/fallible-iterator-0.2.0.crate) = 18509 +SHA256 (python/rust/crates/fallible-streaming-iterator-0.1.9.crate) = 7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a +SIZE (python/rust/crates/fallible-streaming-iterator-0.1.9.crate) = 9249 +SHA256 (python/rust/crates/fixedbitset-0.2.0.crate) = 37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d +SIZE (python/rust/crates/fixedbitset-0.2.0.crate) = 13597 +SHA256 (python/rust/crates/flate2-1.0.20.crate) = cd3aec53de10fe96d7d8c565eb17f2c687bb5518a2ec453b5b1252964526abe0 +SIZE (python/rust/crates/flate2-1.0.20.crate) = 74036 +SHA256 (python/rust/crates/fluent-0.13.1.crate) = ef9e54ec7b674ae3477d948ae790e90ae24d54fb31c2e7173252978d9b09bdfa +SIZE (python/rust/crates/fluent-0.13.1.crate) = 3982 +SHA256 (python/rust/crates/fluent-bundle-0.13.2.crate) = 092ebd50cd3f8a6d664bf156e3550d2f7232fbe446da6707d727cca53f707ce2 +SIZE (python/rust/crates/fluent-bundle-0.13.2.crate) = 24130 +SHA256 (python/rust/crates/fluent-langneg-0.13.0.crate) = 2c4ad0989667548f06ccd0e306ed56b61bd4d35458d54df5ec7587c0e8ed5e94 +SIZE (python/rust/crates/fluent-langneg-0.13.0.crate) = 11723 +SHA256 (python/rust/crates/fluent-syntax-0.10.3.crate) = 784f660373ea898f712a7e67b43f35bf79608d46112747c29767d087611d716b +SIZE (python/rust/crates/fluent-syntax-0.10.3.crate) = 22083 +SHA256 (python/rust/crates/fnv-1.0.7.crate) = 3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1 +SIZE (python/rust/crates/fnv-1.0.7.crate) = 11266 +SHA256 (python/rust/crates/foreign-types-0.3.2.crate) = f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1 +SIZE (python/rust/crates/foreign-types-0.3.2.crate) = 7504 +SHA256 (python/rust/crates/foreign-types-shared-0.1.1.crate) = 00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b +SIZE (python/rust/crates/foreign-types-shared-0.1.1.crate) = 5672 +SHA256 (python/rust/crates/form_urlencoded-1.0.1.crate) = 5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191 +SIZE (python/rust/crates/form_urlencoded-1.0.1.crate) = 8773 +SHA256 (python/rust/crates/fuchsia-zircon-0.3.3.crate) = 2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82 +SIZE (python/rust/crates/fuchsia-zircon-0.3.3.crate) = 22565 +SHA256 (python/rust/crates/fuchsia-zircon-sys-0.3.3.crate) = 3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7 +SIZE (python/rust/crates/fuchsia-zircon-sys-0.3.3.crate) = 7191 +SHA256 (python/rust/crates/funty-1.1.0.crate) = fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7 +SIZE (python/rust/crates/funty-1.1.0.crate) = 11631 +SHA256 (python/rust/crates/futf-0.1.4.crate) = 7c9c1ce3fa9336301af935ab852c437817d14cd33690446569392e65170aac3b +SIZE (python/rust/crates/futf-0.1.4.crate) = 11341 +SHA256 (python/rust/crates/futures-0.3.15.crate) = 0e7e43a803dae2fa37c1f6a8fe121e1f7bf9548b4dfc0522a42f34145dadfc27 +SIZE (python/rust/crates/futures-0.3.15.crate) = 46425 +SHA256 (python/rust/crates/futures-channel-0.3.15.crate) = e682a68b29a882df0545c143dc3646daefe80ba479bcdede94d5a703de2871e2 +SIZE (python/rust/crates/futures-channel-0.3.15.crate) = 31867 +SHA256 (python/rust/crates/futures-core-0.3.15.crate) = 0402f765d8a89a26043b889b26ce3c4679d268fa6bb22cd7c6aad98340e179d1 +SIZE (python/rust/crates/futures-core-0.3.15.crate) = 14514 +SHA256 (python/rust/crates/futures-executor-0.3.15.crate) = badaa6a909fac9e7236d0620a2f57f7664640c56575b71a7552fbd68deafab79 +SIZE (python/rust/crates/futures-executor-0.3.15.crate) = 17166 +SHA256 (python/rust/crates/futures-io-0.3.15.crate) = acc499defb3b348f8d8f3f66415835a9131856ff7714bf10dadfc4ec4bdb29a1 +SIZE (python/rust/crates/futures-io-0.3.15.crate) = 9058 +SHA256 (python/rust/crates/futures-macro-0.3.15.crate) = a4c40298486cdf52cc00cd6d6987892ba502c7656a16a4192a9992b1ccedd121 +SIZE (python/rust/crates/futures-macro-0.3.15.crate) = 10872 +SHA256 (python/rust/crates/futures-sink-0.3.15.crate) = a57bead0ceff0d6dde8f465ecd96c9338121bb7717d3e7b108059531870c4282 +SIZE (python/rust/crates/futures-sink-0.3.15.crate) = 7672 +SHA256 (python/rust/crates/futures-task-0.3.15.crate) = 8a16bef9fc1a4dddb5bee51c989e3fbba26569cbb0e31f5b303c184e3dd33dae +SIZE (python/rust/crates/futures-task-0.3.15.crate) = 11811 +SHA256 (python/rust/crates/futures-util-0.3.15.crate) = feb5c238d27e2bf94ffdfd27b2c29e3df4a68c4193bb6427384259e2bf191967 +SIZE (python/rust/crates/futures-util-0.3.15.crate) = 141962 +SHA256 (python/rust/crates/generic-array-0.14.4.crate) = 501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817 +SIZE (python/rust/crates/generic-array-0.14.4.crate) = 28916 +SHA256 (python/rust/crates/getopts-0.2.21.crate) = 14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5 +SIZE (python/rust/crates/getopts-0.2.21.crate) = 18457 +SHA256 (python/rust/crates/getrandom-0.1.16.crate) = 8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce +SIZE (python/rust/crates/getrandom-0.1.16.crate) = 25077 +SHA256 (python/rust/crates/getrandom-0.2.3.crate) = 7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753 +SIZE (python/rust/crates/getrandom-0.2.3.crate) = 26261 +SHA256 (python/rust/crates/ghost-0.1.2.crate) = 1a5bcf1bbeab73aa4cf2fde60a846858dc036163c7c33bec309f8d17de785479 +SIZE (python/rust/crates/ghost-0.1.2.crate) = 12777 +SHA256 (python/rust/crates/gimli-0.24.0.crate) = 0e4075386626662786ddb0ec9081e7c7eeb1ba31951f447ca780ef9f5d568189 +SIZE (python/rust/crates/gimli-0.24.0.crate) = 703534 +SHA256 (python/rust/crates/h2-0.2.7.crate) = 5e4728fd124914ad25e99e3d15a9361a879f6620f63cb56bbb08f95abb97a535 +SIZE (python/rust/crates/h2-0.2.7.crate) = 156989 +SHA256 (python/rust/crates/hashbrown-0.9.1.crate) = d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04 +SIZE (python/rust/crates/hashbrown-0.9.1.crate) = 77734 +SHA256 (python/rust/crates/hashbrown-0.11.2.crate) = ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e +SIZE (python/rust/crates/hashbrown-0.11.2.crate) = 85713 +SHA256 (python/rust/crates/hashlink-0.6.0.crate) = d99cf782f0dc4372d26846bec3de7804ceb5df083c2d4462c0b8d2330e894fa8 +SIZE (python/rust/crates/hashlink-0.6.0.crate) = 24952 +SHA256 (python/rust/crates/heck-0.3.3.crate) = 6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c +SIZE (python/rust/crates/heck-0.3.3.crate) = 10260 +SHA256 (python/rust/crates/hermit-abi-0.1.19.crate) = 62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33 +SIZE (python/rust/crates/hermit-abi-0.1.19.crate) = 9979 +SHA256 (python/rust/crates/hex-0.4.3.crate) = 7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70 +SIZE (python/rust/crates/hex-0.4.3.crate) = 13299 +SHA256 (python/rust/crates/html5ever-0.25.1.crate) = aafcf38a1a36118242d29b92e1b08ef84e67e4a5ed06e0a80be20e6a32bfed6b +SIZE (python/rust/crates/html5ever-0.25.1.crate) = 73165 +SHA256 (python/rust/crates/htmlescape-0.3.1.crate) = e9025058dae765dee5070ec375f591e2ba14638c63feff74f13805a72e523163 +SIZE (python/rust/crates/htmlescape-0.3.1.crate) = 53226 +SHA256 (python/rust/crates/http-0.2.4.crate) = 527e8c9ac747e28542699a951517aa9a6945af506cd1f2e1b53a576c17b6cc11 +SIZE (python/rust/crates/http-0.2.4.crate) = 105489 +SHA256 (python/rust/crates/http-body-0.3.1.crate) = 13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b +SIZE (python/rust/crates/http-body-0.3.1.crate) = 5394 +SHA256 (python/rust/crates/httparse-1.4.1.crate) = f3a87b616e37e93c22fb19bcd386f02f3af5ea98a25670ad0fce773de23c5e68 +SIZE (python/rust/crates/httparse-1.4.1.crate) = 25592 +SHA256 (python/rust/crates/httpdate-0.3.2.crate) = 494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47 +SIZE (python/rust/crates/httpdate-0.3.2.crate) = 10768 +SHA256 (python/rust/crates/humansize-1.1.1.crate) = 02296996cb8796d7c6e3bc2d9211b7802812d36999a51bb754123ead7d37d026 +SIZE (python/rust/crates/humansize-1.1.1.crate) = 9131 +SHA256 (python/rust/crates/humantime-2.1.0.crate) = 9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4 +SIZE (python/rust/crates/humantime-2.1.0.crate) = 16749 +SHA256 (python/rust/crates/hyper-0.13.10.crate) = 8a6f157065790a3ed2f88679250419b5cdd96e714a0d65f7797fd337186e96bb +SIZE (python/rust/crates/hyper-0.13.10.crate) = 141981 +SHA256 (python/rust/crates/hyper-rustls-0.21.0.crate) = 37743cc83e8ee85eacfce90f2f4102030d9ff0a95244098d781e9bee4a90abb6 +SIZE (python/rust/crates/hyper-rustls-0.21.0.crate) = 27489 +SHA256 (python/rust/crates/hyper-tls-0.4.3.crate) = d979acc56dcb5b8dddba3917601745e877576475aa046df3226eabdecef78eed +SIZE (python/rust/crates/hyper-tls-0.4.3.crate) = 14195 +SHA256 (python/rust/crates/idna-0.2.3.crate) = 418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8 +SIZE (python/rust/crates/idna-0.2.3.crate) = 271023 +SHA256 (python/rust/crates/indexmap-1.7.0.crate) = bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5 +SIZE (python/rust/crates/indexmap-1.7.0.crate) = 50363 +SHA256 (python/rust/crates/indoc-0.3.6.crate) = 47741a8bc60fb26eb8d6e0238bbb26d8575ff623fdc97b1a2c00c050b9684ed8 +SIZE (python/rust/crates/indoc-0.3.6.crate) = 9663 +SHA256 (python/rust/crates/indoc-impl-0.3.6.crate) = ce046d161f000fffde5f432a0d034d0341dc152643b2598ed5bfce44c4f3a8f0 +SIZE (python/rust/crates/indoc-impl-0.3.6.crate) = 7933 +SHA256 (python/rust/crates/instant-0.1.10.crate) = bee0328b1209d157ef001c94dd85b4f8f64139adb0eac2659f4b08382b2f474d +SIZE (python/rust/crates/instant-0.1.10.crate) = 5218 +SHA256 (python/rust/crates/intl-memoizer-0.5.1.crate) = c310433e4a310918d6ed9243542a6b83ec1183df95dff8f23f87bb88a264a66f +SIZE (python/rust/crates/intl-memoizer-0.5.1.crate) = 8292 +SHA256 (python/rust/crates/intl_pluralrules-7.0.1.crate) = b18f988384267d7066cc2be425e6faf352900652c046b6971d2e228d3b1c5ecf +SIZE (python/rust/crates/intl_pluralrules-7.0.1.crate) = 9263 +SHA256 (python/rust/crates/inventory-0.1.10.crate) = 0f0f7efb804ec95e33db9ad49e4252f049e37e8b0a4652e3cd61f7999f2eff7f +SIZE (python/rust/crates/inventory-0.1.10.crate) = 11572 +SHA256 (python/rust/crates/inventory-impl-0.1.10.crate) = 75c094e94816723ab936484666968f5b58060492e880f3c8d00489a1e244fa51 +SIZE (python/rust/crates/inventory-impl-0.1.10.crate) = 6228 +SHA256 (python/rust/crates/iovec-0.1.4.crate) = b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e +SIZE (python/rust/crates/iovec-0.1.4.crate) = 8720 +SHA256 (python/rust/crates/ipnet-2.3.1.crate) = 68f2d64f2edebec4ce84ad108148e67e1064789bee435edc5b60ad398714a3a9 +SIZE (python/rust/crates/ipnet-2.3.1.crate) = 24932 +SHA256 (python/rust/crates/itertools-0.9.0.crate) = 284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b +SIZE (python/rust/crates/itertools-0.9.0.crate) = 96429 +SHA256 (python/rust/crates/itoa-0.4.7.crate) = dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736 +SIZE (python/rust/crates/itoa-0.4.7.crate) = 12099 +SHA256 (python/rust/crates/js-sys-0.3.51.crate) = 83bdfbace3a0e81a4253f73b49e960b053e396a11012cbd49b9b74d6a2b67062 +SIZE (python/rust/crates/js-sys-0.3.51.crate) = 67124 +SHA256 (python/rust/crates/kernel32-sys-0.2.2.crate) = 7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d +SIZE (python/rust/crates/kernel32-sys-0.2.2.crate) = 24537 +SHA256 (python/rust/crates/lazy_static-1.4.0.crate) = e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646 +SIZE (python/rust/crates/lazy_static-1.4.0.crate) = 10443 +SHA256 (python/rust/crates/lexical-core-0.7.6.crate) = 6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe +SIZE (python/rust/crates/lexical-core-0.7.6.crate) = 494385 +SHA256 (python/rust/crates/libc-0.2.98.crate) = 320cfe77175da3a483efed4bc0adc1968ca050b098ce4f2f1c13a56626128790 +SIZE (python/rust/crates/libc-0.2.98.crate) = 522087 +SHA256 (python/rust/crates/libsqlite3-sys-0.20.1.crate) = 64d31059f22935e6c31830db5249ba2b7ecd54fd73a9909286f0a67aa55c2fbd +SIZE (python/rust/crates/libsqlite3-sys-0.20.1.crate) = 2306064 +SHA256 (python/rust/crates/lock_api-0.4.4.crate) = 0382880606dff6d15c9476c416d18690b72742aa7b605bb6dd6ec9030fbf07eb +SIZE (python/rust/crates/lock_api-0.4.4.crate) = 20356 +SHA256 (python/rust/crates/log-0.4.14.crate) = 51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710 +SIZE (python/rust/crates/log-0.4.14.crate) = 34582 +SHA256 (python/rust/crates/mac-0.1.1.crate) = c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4 +SIZE (python/rust/crates/mac-0.1.1.crate) = 4838 +SHA256 (python/rust/crates/maplit-1.0.2.crate) = 3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d +SIZE (python/rust/crates/maplit-1.0.2.crate) = 8871 +SHA256 (python/rust/crates/markup5ever-0.10.1.crate) = a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd +SIZE (python/rust/crates/markup5ever-0.10.1.crate) = 34668 +SHA256 (python/rust/crates/markup5ever_rcdom-0.1.0.crate) = f015da43bcd8d4f144559a3423f4591d69b8ce0652c905374da7205df336ae2b +SIZE (python/rust/crates/markup5ever_rcdom-0.1.0.crate) = 25165 +SHA256 (python/rust/crates/matches-0.1.8.crate) = 7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08 +SIZE (python/rust/crates/matches-0.1.8.crate) = 2216 +SHA256 (python/rust/crates/memchr-2.4.0.crate) = b16bd47d9e329435e309c58469fe0791c2d0d1ba96ec0954152a5ae2b04387dc +SIZE (python/rust/crates/memchr-2.4.0.crate) = 63392 +SHA256 (python/rust/crates/mime-0.3.16.crate) = 2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d +SIZE (python/rust/crates/mime-0.3.16.crate) = 15206 +SHA256 (python/rust/crates/mime_guess-2.0.3.crate) = 2684d4c2e97d99848d30b324b00c8fcc7e5c897b7cbb5819b09e7c90e8baf212 +SIZE (python/rust/crates/mime_guess-2.0.3.crate) = 27437 +SHA256 (python/rust/crates/miniz_oxide-0.4.4.crate) = a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b +SIZE (python/rust/crates/miniz_oxide-0.4.4.crate) = 49938 +SHA256 (python/rust/crates/mio-0.6.23.crate) = 4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4 +SIZE (python/rust/crates/mio-0.6.23.crate) = 103554 +SHA256 (python/rust/crates/miow-0.2.2.crate) = ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d +SIZE (python/rust/crates/miow-0.2.2.crate) = 22044 +SHA256 (python/rust/crates/multimap-0.8.3.crate) = e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a +SIZE (python/rust/crates/multimap-0.8.3.crate) = 13518 +SHA256 (python/rust/crates/native-tls-0.2.7.crate) = b8d96b2e1c8da3957d58100b09f102c6d9cfdfced01b7ec5a8974044bb09dbd4 +SIZE (python/rust/crates/native-tls-0.2.7.crate) = 24958 +SHA256 (python/rust/crates/net2-0.2.37.crate) = 391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae +SIZE (python/rust/crates/net2-0.2.37.crate) = 21311 +SHA256 (python/rust/crates/new_debug_unreachable-1.0.4.crate) = e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54 +SIZE (python/rust/crates/new_debug_unreachable-1.0.4.crate) = 2561 +SHA256 (python/rust/crates/nodrop-0.1.14.crate) = 72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb +SIZE (python/rust/crates/nodrop-0.1.14.crate) = 7667 +SHA256 (python/rust/crates/nom-6.1.2.crate) = e7413f999671bd4745a7b624bd370a569fb6bc574b23c83a3c5ed2e453f3d5e2 +SIZE (python/rust/crates/nom-6.1.2.crate) = 147539 +SHA256 (python/rust/crates/num-format-0.4.0.crate) = bafe4179722c2894288ee77a9f044f02811c86af699344c498b0840c698a2465 +SIZE (python/rust/crates/num-format-0.4.0.crate) = 59791 +SHA256 (python/rust/crates/num-integer-0.1.44.crate) = d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db +SIZE (python/rust/crates/num-integer-0.1.44.crate) = 22216 +SHA256 (python/rust/crates/num-traits-0.2.14.crate) = 9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290 +SIZE (python/rust/crates/num-traits-0.2.14.crate) = 45476 +SHA256 (python/rust/crates/num_cpus-1.13.0.crate) = 05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3 +SIZE (python/rust/crates/num_cpus-1.13.0.crate) = 14704 +SHA256 (python/rust/crates/num_enum-0.5.2.crate) = e5adf0198d427ee515335639f275e806ca01acf9f07d7cf14bb36a10532a6169 +SIZE (python/rust/crates/num_enum-0.5.2.crate) = 10479 +SHA256 (python/rust/crates/num_enum_derive-0.5.2.crate) = b1def5a3f69d4707d8a040b12785b98029a39e8c610ae685c7f6265669767482 +SIZE (python/rust/crates/num_enum_derive-0.5.2.crate) = 7670 +SHA256 (python/rust/crates/object-0.25.3.crate) = a38f2be3697a57b4060074ff41b44c16870d916ad7877c17696e063257482bc7 +SIZE (python/rust/crates/object-0.25.3.crate) = 230711 +SHA256 (python/rust/crates/once_cell-1.8.0.crate) = 692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56 +SIZE (python/rust/crates/once_cell-1.8.0.crate) = 28925 +SHA256 (python/rust/crates/openssl-0.10.35.crate) = 549430950c79ae24e6d02e0b7404534ecf311d94cc9f861e9e4020187d13d885 +SIZE (python/rust/crates/openssl-0.10.35.crate) = 204462 +SHA256 (python/rust/crates/openssl-probe-0.1.4.crate) = 28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a +SIZE (python/rust/crates/openssl-probe-0.1.4.crate) = 7066 +SHA256 (python/rust/crates/openssl-sys-0.9.65.crate) = 7a7907e3bfa08bb85105209cdfcb6c63d109f8f6c1ed6ca318fff5c1853fbc1d +SIZE (python/rust/crates/openssl-sys-0.9.65.crate) = 54405 +SHA256 (python/rust/crates/parking_lot-0.11.1.crate) = 6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb +SIZE (python/rust/crates/parking_lot-0.11.1.crate) = 39854 +SHA256 (python/rust/crates/parking_lot_core-0.8.3.crate) = fa7a782938e745763fe6907fc6ba86946d72f49fe7e21de074e08128a99fb018 +SIZE (python/rust/crates/parking_lot_core-0.8.3.crate) = 32147 +SHA256 (python/rust/crates/paste-0.1.18.crate) = 45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880 +SIZE (python/rust/crates/paste-0.1.18.crate) = 12259 +SHA256 (python/rust/crates/paste-impl-0.1.18.crate) = d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6 +SIZE (python/rust/crates/paste-impl-0.1.18.crate) = 9451 +SHA256 (python/rust/crates/percent-encoding-2.1.0.crate) = d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e +SIZE (python/rust/crates/percent-encoding-2.1.0.crate) = 9748 +SHA256 (python/rust/crates/petgraph-0.5.1.crate) = 467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7 +SIZE (python/rust/crates/petgraph-0.5.1.crate) = 147173 +SHA256 (python/rust/crates/phf-0.8.0.crate) = 3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12 +SIZE (python/rust/crates/phf-0.8.0.crate) = 3902 +SHA256 (python/rust/crates/phf_codegen-0.8.0.crate) = cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815 +SIZE (python/rust/crates/phf_codegen-0.8.0.crate) = 3192 +SHA256 (python/rust/crates/phf_generator-0.8.0.crate) = 17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526 +SIZE (python/rust/crates/phf_generator-0.8.0.crate) = 7604 +SHA256 (python/rust/crates/phf_shared-0.8.0.crate) = c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7 +SIZE (python/rust/crates/phf_shared-0.8.0.crate) = 2860 +SHA256 (python/rust/crates/pin-project-1.0.8.crate) = 576bc800220cc65dac09e99e97b08b358cfab6e17078de8dc5fee223bd2d0c08 +SIZE (python/rust/crates/pin-project-1.0.8.crate) = 54991 +SHA256 (python/rust/crates/pin-project-internal-1.0.8.crate) = 6e8fe8163d14ce7f0cdac2e040116f22eac817edabff0be91e8aff7e9accf389 +SIZE (python/rust/crates/pin-project-internal-1.0.8.crate) = 27941 +SHA256 (python/rust/crates/pin-project-lite-0.1.12.crate) = 257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777 +SIZE (python/rust/crates/pin-project-lite-0.1.12.crate) = 16854 +SHA256 (python/rust/crates/pin-project-lite-0.2.7.crate) = 8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443 +SIZE (python/rust/crates/pin-project-lite-0.2.7.crate) = 27212 +SHA256 (python/rust/crates/pin-utils-0.1.0.crate) = 8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184 +SIZE (python/rust/crates/pin-utils-0.1.0.crate) = 7580 +SHA256 (python/rust/crates/pkg-config-0.3.19.crate) = 3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c +SIZE (python/rust/crates/pkg-config-0.3.19.crate) = 15451 +SHA256 (python/rust/crates/ppv-lite86-0.2.10.crate) = ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857 +SIZE (python/rust/crates/ppv-lite86-0.2.10.crate) = 20915 +SHA256 (python/rust/crates/precomputed-hash-0.1.1.crate) = 925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c +SIZE (python/rust/crates/precomputed-hash-0.1.1.crate) = 1640 +SHA256 (python/rust/crates/proc-macro-crate-1.0.0.crate) = 41fdbd1df62156fbc5945f4762632564d7d038153091c3fcf1067f6aef7cff92 +SIZE (python/rust/crates/proc-macro-crate-1.0.0.crate) = 8442 +SHA256 (python/rust/crates/proc-macro-hack-0.5.19.crate) = dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5 +SIZE (python/rust/crates/proc-macro-hack-0.5.19.crate) = 15556 +SHA256 (python/rust/crates/proc-macro-nested-0.1.6.crate) = eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a +SIZE (python/rust/crates/proc-macro-nested-0.1.6.crate) = 6498 +SHA256 (python/rust/crates/proc-macro2-1.0.27.crate) = f0d8caf72986c1a598726adc988bb5984792ef84f5ee5aa50209145ee8077038 +SIZE (python/rust/crates/proc-macro2-1.0.27.crate) = 38625 +SHA256 (python/rust/crates/prost-0.7.0.crate) = 9e6984d2f1a23009bd270b8bb56d0926810a3d483f59c987d77969e9d8e840b2 +SIZE (python/rust/crates/prost-0.7.0.crate) = 24775 +SHA256 (python/rust/crates/prost-build-0.7.0.crate) = 32d3ebd75ac2679c2af3a92246639f9fcc8a442ee420719cc4fe195b98dd5fa3 +SIZE (python/rust/crates/prost-build-0.7.0.crate) = 8220115 +SHA256 (python/rust/crates/prost-derive-0.7.0.crate) = 169a15f3008ecb5160cba7d37bcd690a7601b6d30cfb87a117d45e59d52af5d4 +SIZE (python/rust/crates/prost-derive-0.7.0.crate) = 15218 +SHA256 (python/rust/crates/prost-types-0.7.0.crate) = b518d7cdd93dab1d1122cf07fa9a60771836c668dde9d9e2a139f957f0d9f1bb +SIZE (python/rust/crates/prost-types-0.7.0.crate) = 25694 +SHA256 (python/rust/crates/pulldown-cmark-0.8.0.crate) = ffade02495f22453cd593159ea2f59827aae7f53fa8323f756799b670881dcf8 +SIZE (python/rust/crates/pulldown-cmark-0.8.0.crate) = 106330 +SHA256 (python/rust/crates/pyo3-0.13.2.crate) = 4837b8e8e18a102c23f79d1e9a110b597ea3b684c95e874eb1ad88f8683109c3 +SIZE (python/rust/crates/pyo3-0.13.2.crate) = 281372 +SHA256 (python/rust/crates/pyo3-macros-0.13.2.crate) = a47f2c300ceec3e58064fd5f8f5b61230f2ffd64bde4970c81fdd0563a2db1bb +SIZE (python/rust/crates/pyo3-macros-0.13.2.crate) = 5434 +SHA256 (python/rust/crates/pyo3-macros-backend-0.13.2.crate) = 87b097e5d84fcbe3e167f400fbedd657820a375b034c78bd852050749a575d66 +SIZE (python/rust/crates/pyo3-macros-backend-0.13.2.crate) = 33106 +SHA256 (python/rust/crates/quote-1.0.9.crate) = c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7 +SIZE (python/rust/crates/quote-1.0.9.crate) = 25042 +SHA256 (python/rust/crates/radium-0.5.3.crate) = 941ba9d78d8e2f7ce474c015eea4d9c6d25b6a3327f9832ee29a4de27f91bbb8 +SIZE (python/rust/crates/radium-0.5.3.crate) = 7588 +SHA256 (python/rust/crates/rand-0.7.3.crate) = 6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03 +SIZE (python/rust/crates/rand-0.7.3.crate) = 112246 +SHA256 (python/rust/crates/rand-0.8.4.crate) = 2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8 +SIZE (python/rust/crates/rand-0.8.4.crate) = 87406 +SHA256 (python/rust/crates/rand_chacha-0.2.2.crate) = f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402 +SIZE (python/rust/crates/rand_chacha-0.2.2.crate) = 13267 +SHA256 (python/rust/crates/rand_chacha-0.3.1.crate) = e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88 +SIZE (python/rust/crates/rand_chacha-0.3.1.crate) = 15251 +SHA256 (python/rust/crates/rand_core-0.5.1.crate) = 90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19 +SIZE (python/rust/crates/rand_core-0.5.1.crate) = 21116 +SHA256 (python/rust/crates/rand_core-0.6.3.crate) = d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7 +SIZE (python/rust/crates/rand_core-0.6.3.crate) = 21938 +SHA256 (python/rust/crates/rand_hc-0.2.0.crate) = ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c +SIZE (python/rust/crates/rand_hc-0.2.0.crate) = 11670 +SHA256 (python/rust/crates/rand_hc-0.3.1.crate) = d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7 +SIZE (python/rust/crates/rand_hc-0.3.1.crate) = 11891 +SHA256 (python/rust/crates/rand_pcg-0.2.1.crate) = 16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429 +SIZE (python/rust/crates/rand_pcg-0.2.1.crate) = 11291 +SHA256 (python/rust/crates/redox_syscall-0.2.9.crate) = 5ab49abadf3f9e1c4bc499e8845e152ad87d2ad2d30371841171169e9d75feee +SIZE (python/rust/crates/redox_syscall-0.2.9.crate) = 23533 +SHA256 (python/rust/crates/redox_users-0.4.0.crate) = 528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64 +SIZE (python/rust/crates/redox_users-0.4.0.crate) = 13023 +SHA256 (python/rust/crates/regex-1.5.4.crate) = d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461 +SIZE (python/rust/crates/regex-1.5.4.crate) = 236581 +SHA256 (python/rust/crates/regex-syntax-0.6.25.crate) = f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b +SIZE (python/rust/crates/regex-syntax-0.6.25.crate) = 293293 +SHA256 (python/rust/crates/remove_dir_all-0.5.3.crate) = 3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7 +SIZE (python/rust/crates/remove_dir_all-0.5.3.crate) = 9184 +SHA256 (python/rust/crates/rental-0.5.6.crate) = cc89fe2acac36d212474d138aaf939c04a82df5b61d07011571ebce5aef81f2e +SIZE (python/rust/crates/rental-0.5.6.crate) = 16858 +SHA256 (python/rust/crates/rental-impl-0.5.5.crate) = 475e68978dc5b743f2f40d8e0a8fdc83f1c5e78cbf4b8fa5e74e73beebc340de +SIZE (python/rust/crates/rental-impl-0.5.5.crate) = 12093 +SHA256 (python/rust/crates/ring-0.16.20.crate) = 3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc +SIZE (python/rust/crates/ring-0.16.20.crate) = 5082615 +SHA256 (python/rust/crates/rusqlite-0.24.2.crate) = d5f38ee71cbab2c827ec0ac24e76f82eca723cee92c509a65f67dee393c25112 +SIZE (python/rust/crates/rusqlite-0.24.2.crate) = 120103 +SHA256 (python/rust/crates/rustc-demangle-0.1.20.crate) = dead70b0b5e03e9c814bcb6b01e03e68f7c57a80aa48c72ec92152ab3e818d49 +SIZE (python/rust/crates/rustc-demangle-0.1.20.crate) = 23298 +SHA256 (python/rust/crates/rustc-hash-1.1.0.crate) = 08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2 +SIZE (python/rust/crates/rustc-hash-1.1.0.crate) = 9331 +SHA256 (python/rust/crates/rustls-0.18.1.crate) = 5d1126dcf58e93cee7d098dbda643b5f92ed724f1f6a63007c1116eed6700c81 +SIZE (python/rust/crates/rustls-0.18.1.crate) = 207782 +SHA256 (python/rust/crates/rustversion-1.0.5.crate) = 61b3909d758bb75c79f23d4736fac9433868679d3ad2ea7a61e3c25cfda9a088 +SIZE (python/rust/crates/rustversion-1.0.5.crate) = 16984 +SHA256 (python/rust/crates/ryu-1.0.5.crate) = 71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e +SIZE (python/rust/crates/ryu-1.0.5.crate) = 49570 +SHA256 (python/rust/crates/schannel-0.1.19.crate) = 8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75 +SIZE (python/rust/crates/schannel-0.1.19.crate) = 42755 +SHA256 (python/rust/crates/scopeguard-1.1.0.crate) = d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd +SIZE (python/rust/crates/scopeguard-1.1.0.crate) = 11470 +SHA256 (python/rust/crates/sct-0.6.1.crate) = b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce +SIZE (python/rust/crates/sct-0.6.1.crate) = 26825 +SHA256 (python/rust/crates/security-framework-2.3.1.crate) = 23a2ac85147a3a11d77ecf1bc7166ec0b92febfa4461c37944e180f319ece467 +SIZE (python/rust/crates/security-framework-2.3.1.crate) = 61581 +SHA256 (python/rust/crates/security-framework-sys-2.3.0.crate) = 7e4effb91b4b8b6fb7732e670b6cee160278ff8e6bf485c7805d9e319d76e284 +SIZE (python/rust/crates/security-framework-sys-2.3.0.crate) = 12561 +SHA256 (python/rust/crates/serde-1.0.126.crate) = ec7505abeacaec74ae4778d9d9328fe5a5d04253220a85c4ee022239fc996d03 +SIZE (python/rust/crates/serde-1.0.126.crate) = 75138 +SHA256 (python/rust/crates/serde-aux-0.6.1.crate) = ae50f53d4b01e854319c1f5b854cd59471f054ea7e554988850d3f36ca1dc852 +SIZE (python/rust/crates/serde-aux-0.6.1.crate) = 5701 +SHA256 (python/rust/crates/serde_derive-1.0.126.crate) = 963a7dbc9895aeac7ac90e74f34a5d5261828f79df35cbed41e10189d3804d43 +SIZE (python/rust/crates/serde_derive-1.0.126.crate) = 54189 +SHA256 (python/rust/crates/serde_json-1.0.64.crate) = 799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79 +SIZE (python/rust/crates/serde_json-1.0.64.crate) = 115138 +SHA256 (python/rust/crates/serde_repr-0.1.7.crate) = 98d0516900518c29efa217c298fa1f4e6c6ffc85ae29fd7f4ee48f176e1a9ed5 +SIZE (python/rust/crates/serde_repr-0.1.7.crate) = 10173 +SHA256 (python/rust/crates/serde_tuple-0.5.0.crate) = f4f025b91216f15a2a32aa39669329a475733590a015835d1783549a56d09427 +SIZE (python/rust/crates/serde_tuple-0.5.0.crate) = 3817 +SHA256 (python/rust/crates/serde_tuple_macros-0.5.0.crate) = 4076151d1a2b688e25aaf236997933c66e18b870d0369f8b248b8ab2be630d7e +SIZE (python/rust/crates/serde_tuple_macros-0.5.0.crate) = 2205 +SHA256 (python/rust/crates/serde_urlencoded-0.6.1.crate) = 9ec5d77e2d4c73717816afac02670d5c4f534ea95ed430442cad02e7a6e32c97 +SIZE (python/rust/crates/serde_urlencoded-0.6.1.crate) = 12540 +SHA256 (python/rust/crates/sha1-0.6.0.crate) = 2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d +SIZE (python/rust/crates/sha1-0.6.0.crate) = 9244 +SHA256 (python/rust/crates/siphasher-0.3.5.crate) = cbce6d4507c7e4a3962091436e56e95290cb71fa302d0d270e32130b75fbff27 +SIZE (python/rust/crates/siphasher-0.3.5.crate) = 9455 +SHA256 (python/rust/crates/slab-0.4.3.crate) = f173ac3d1a7e3b28003f40de0b5ce7fe2710f9b9dc3fc38664cebee46b3b6527 +SIZE (python/rust/crates/slab-0.4.3.crate) = 15681 +SHA256 (python/rust/crates/slog-2.7.0.crate) = 8347046d4ebd943127157b94d63abb990fcf729dc4e9978927fdf4ac3c998d06 +SIZE (python/rust/crates/slog-2.7.0.crate) = 45432 +SHA256 (python/rust/crates/slog-async-2.6.0.crate) = c60813879f820c85dbc4eabf3269befe374591289019775898d56a81a804fbdc +SIZE (python/rust/crates/slog-async-2.6.0.crate) = 18190 +SHA256 (python/rust/crates/slog-envlogger-2.2.0.crate) = 906a1a0bc43fed692df4b82a5e2fbfc3733db8dad8bb514ab27a4f23ad04f5c0 +SIZE (python/rust/crates/slog-envlogger-2.2.0.crate) = 13240 +SHA256 (python/rust/crates/slog-scope-4.4.0.crate) = 2f95a4b4c3274cd2869549da82b57ccc930859bdbf5bcea0424bc5f140b3c786 +SIZE (python/rust/crates/slog-scope-4.4.0.crate) = 16753 +SHA256 (python/rust/crates/slog-stdlog-4.1.0.crate) = 8228ab7302adbf4fcb37e66f3cda78003feb521e7fd9e3847ec117a7784d0f5a +SIZE (python/rust/crates/slog-stdlog-4.1.0.crate) = 14523 +SHA256 (python/rust/crates/slog-term-2.8.0.crate) = 95c1e7e5aab61ced6006149ea772770b84a0d16ce0f7885def313e4829946d76 +SIZE (python/rust/crates/slog-term-2.8.0.crate) = 25251 +SHA256 (python/rust/crates/smallvec-1.6.1.crate) = fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e +SIZE (python/rust/crates/smallvec-1.6.1.crate) = 26444 +SHA256 (python/rust/crates/socket2-0.3.19.crate) = 122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e +SIZE (python/rust/crates/socket2-0.3.19.crate) = 33782 +SHA256 (python/rust/crates/spin-0.5.2.crate) = 6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d +SIZE (python/rust/crates/spin-0.5.2.crate) = 12004 +SHA256 (python/rust/crates/stable_deref_trait-1.2.0.crate) = a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3 +SIZE (python/rust/crates/stable_deref_trait-1.2.0.crate) = 8054 +SHA256 (python/rust/crates/static_assertions-1.1.0.crate) = a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f +SIZE (python/rust/crates/static_assertions-1.1.0.crate) = 18480 +SHA256 (python/rust/crates/string_cache-0.8.1.crate) = 8ddb1139b5353f96e429e1a5e19fbaf663bddedaa06d1dbd49f82e352601209a +SIZE (python/rust/crates/string_cache-0.8.1.crate) = 14423 +SHA256 (python/rust/crates/string_cache_codegen-0.5.1.crate) = f24c8e5e19d22a726626f1a5e16fe15b132dcf21d10177fa5a45ce7962996b97 +SIZE (python/rust/crates/string_cache_codegen-0.5.1.crate) = 8243 +SHA256 (python/rust/crates/subtle-2.4.1.crate) = 6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601 +SIZE (python/rust/crates/subtle-2.4.1.crate) = 12630 +SHA256 (python/rust/crates/syn-1.0.74.crate) = 1873d832550d4588c3dbc20f01361ab00bfe741048f71e3fecf145a7cc18b29c +SIZE (python/rust/crates/syn-1.0.74.crate) = 232974 +SHA256 (python/rust/crates/synstructure-0.12.5.crate) = 474aaa926faa1603c40b7885a9eaea29b444d1cb2850cb7c0e37bb1a4182f4fa +SIZE (python/rust/crates/synstructure-0.12.5.crate) = 18020 +SHA256 (python/rust/crates/take_mut-0.2.2.crate) = f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60 +SIZE (python/rust/crates/take_mut-0.2.2.crate) = 4263 +SHA256 (python/rust/crates/tap-1.0.1.crate) = 55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369 +SIZE (python/rust/crates/tap-1.0.1.crate) = 11316 +SHA256 (python/rust/crates/tempfile-3.2.0.crate) = dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22 +SIZE (python/rust/crates/tempfile-3.2.0.crate) = 25892 +SHA256 (python/rust/crates/tendril-0.4.2.crate) = a9ef557cb397a4f0a5a3a628f06515f78563f2209e64d47055d9dc6052bf5e33 +SIZE (python/rust/crates/tendril-0.4.2.crate) = 37138 +SHA256 (python/rust/crates/term-0.7.0.crate) = c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f +SIZE (python/rust/crates/term-0.7.0.crate) = 37082 +SHA256 (python/rust/crates/termcolor-1.1.2.crate) = 2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4 +SIZE (python/rust/crates/termcolor-1.1.2.crate) = 17287 +SHA256 (python/rust/crates/thiserror-1.0.26.crate) = 93119e4feac1cbe6c798c34d3a53ea0026b0b1de6a120deef895137c0529bfe2 +SIZE (python/rust/crates/thiserror-1.0.26.crate) = 16711 +SHA256 (python/rust/crates/thiserror-impl-1.0.26.crate) = 060d69a0afe7796bf42e9e2ff91f5ee691fb15c53d38b4b62a9a53eb23164745 +SIZE (python/rust/crates/thiserror-impl-1.0.26.crate) = 13431 +SHA256 (python/rust/crates/thread_local-1.1.3.crate) = 8018d24e04c95ac8790716a5987d0fec4f8b27249ffa0f7d33f1369bdfb88cbd +SIZE (python/rust/crates/thread_local-1.1.3.crate) = 13111 +SHA256 (python/rust/crates/time-0.1.43.crate) = ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438 +SIZE (python/rust/crates/time-0.1.43.crate) = 28653 +SHA256 (python/rust/crates/tinystr-0.3.4.crate) = 29738eedb4388d9ea620eeab9384884fc3f06f586a2eddb56bedc5885126c7c1 +SIZE (python/rust/crates/tinystr-0.3.4.crate) = 19341 +SHA256 (python/rust/crates/tinyvec-1.3.1.crate) = 848a1e1181b9f6753b5e96a092749e29b11d19ede67dfbbd6c7dc7e0f49b5338 +SIZE (python/rust/crates/tinyvec-1.3.1.crate) = 42386 +SHA256 (python/rust/crates/tinyvec_macros-0.1.0.crate) = cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c +SIZE (python/rust/crates/tinyvec_macros-0.1.0.crate) = 1817 +SHA256 (python/rust/crates/tokio-0.2.25.crate) = 6703a273949a90131b290be1fe7b039d0fc884aa1935860dfcbe056f28cd8092 +SIZE (python/rust/crates/tokio-0.2.25.crate) = 413390 +SHA256 (python/rust/crates/tokio-rustls-0.14.1.crate) = e12831b255bcfa39dc0436b01e19fea231a37db570686c06ee72c423479f889a +SIZE (python/rust/crates/tokio-rustls-0.14.1.crate) = 23935 +SHA256 (python/rust/crates/tokio-socks-0.3.0.crate) = d611fd5d241872372d52a0a3d309c52d0b95a6a67671a6c8f7ab2c4a37fb2539 +SIZE (python/rust/crates/tokio-socks-0.3.0.crate) = 17434 +SHA256 (python/rust/crates/tokio-tls-0.3.1.crate) = 9a70f4fcd7b3b24fb194f837560168208f669ca8cb70d0c4b862944452396343 +SIZE (python/rust/crates/tokio-tls-0.3.1.crate) = 22517 +SHA256 (python/rust/crates/tokio-util-0.3.1.crate) = be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499 +SIZE (python/rust/crates/tokio-util-0.3.1.crate) = 27233 +SHA256 (python/rust/crates/toml-0.5.8.crate) = a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa +SIZE (python/rust/crates/toml-0.5.8.crate) = 54219 +SHA256 (python/rust/crates/tower-service-0.3.1.crate) = 360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6 +SIZE (python/rust/crates/tower-service-0.3.1.crate) = 6299 +SHA256 (python/rust/crates/tracing-0.1.26.crate) = 09adeb8c97449311ccd28a427f96fb563e7fd31aabf994189879d9da2394b89d +SIZE (python/rust/crates/tracing-0.1.26.crate) = 68583 +SHA256 (python/rust/crates/tracing-core-0.1.18.crate) = a9ff14f98b1a4b289c6248a023c1c2fa1491062964e9fed67ab29c4e4da4a052 +SIZE (python/rust/crates/tracing-core-0.1.18.crate) = 48381 +SHA256 (python/rust/crates/tracing-futures-0.2.5.crate) = 97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2 +SIZE (python/rust/crates/tracing-futures-0.2.5.crate) = 11637 +SHA256 (python/rust/crates/try-lock-0.2.3.crate) = 59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642 +SIZE (python/rust/crates/try-lock-0.2.3.crate) = 4158 +SHA256 (python/rust/crates/type-map-0.4.0.crate) = b6d3364c5e96cb2ad1603037ab253ddd34d7fb72a58bdddf4b7350760fc69a46 +SIZE (python/rust/crates/type-map-0.4.0.crate) = 3177 +SHA256 (python/rust/crates/typenum-1.13.0.crate) = 879f6906492a7cd215bfa4cf595b600146ccfac0c79bcbd1f3000162af5e8b06 +SIZE (python/rust/crates/typenum-1.13.0.crate) = 40238 +SHA256 (python/rust/crates/unic-langid-0.9.0.crate) = 73328fcd730a030bdb19ddf23e192187a6b01cd98be6d3140622a89129459ce5 +SIZE (python/rust/crates/unic-langid-0.9.0.crate) = 3899 +SHA256 (python/rust/crates/unic-langid-impl-0.9.0.crate) = 1a4a8eeaf0494862c1404c95ec2f4c33a2acff5076f64314b465e3ddae1b934d +SIZE (python/rust/crates/unic-langid-impl-0.9.0.crate) = 33921 +SHA256 (python/rust/crates/unic-langid-macros-0.9.0.crate) = 18f980d6d87e8805f2836d64b4138cc95aa7986fa63b1f51f67d5fbff64dd6e5 +SIZE (python/rust/crates/unic-langid-macros-0.9.0.crate) = 1855 +SHA256 (python/rust/crates/unic-langid-macros-impl-0.9.0.crate) = 29396ffd97e27574c3e01368b1a64267d3064969e4848e2e130ff668be9daa9f +SIZE (python/rust/crates/unic-langid-macros-impl-0.9.0.crate) = 1829 +SHA256 (python/rust/crates/unicase-2.6.0.crate) = 50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6 +SIZE (python/rust/crates/unicase-2.6.0.crate) = 23478 +SHA256 (python/rust/crates/unicode-bidi-0.3.5.crate) = eeb8be209bb1c96b7c177c7420d26e04eccacb0eeae6b980e35fcb74678107e0 +SIZE (python/rust/crates/unicode-bidi-0.3.5.crate) = 33423 +SHA256 (python/rust/crates/unicode-normalization-0.1.19.crate) = d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9 +SIZE (python/rust/crates/unicode-normalization-0.1.19.crate) = 107353 +SHA256 (python/rust/crates/unicode-segmentation-1.8.0.crate) = 8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b +SIZE (python/rust/crates/unicode-segmentation-1.8.0.crate) = 94011 +SHA256 (python/rust/crates/unicode-width-0.1.8.crate) = 9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3 +SIZE (python/rust/crates/unicode-width-0.1.8.crate) = 16732 +SHA256 (python/rust/crates/unicode-xid-0.2.2.crate) = 8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3 +SIZE (python/rust/crates/unicode-xid-0.2.2.crate) = 14955 +SHA256 (python/rust/crates/unindent-0.1.7.crate) = f14ee04d9415b52b3aeab06258a3f07093182b88ba0f9b8d203f211a7a7d41c7 +SIZE (python/rust/crates/unindent-0.1.7.crate) = 8346 +SHA256 (python/rust/crates/untrusted-0.7.1.crate) = a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a +SIZE (python/rust/crates/untrusted-0.7.1.crate) = 7924 +SHA256 (python/rust/crates/url-2.2.2.crate) = a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c +SIZE (python/rust/crates/url-2.2.2.crate) = 68555 +SHA256 (python/rust/crates/utf-8-0.7.6.crate) = 09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9 +SIZE (python/rust/crates/utf-8-0.7.6.crate) = 10422 +SHA256 (python/rust/crates/utime-0.3.1.crate) = 91baa0c65eabd12fcbdac8cc35ff16159cab95cae96d0222d6d0271db6193cef +SIZE (python/rust/crates/utime-0.3.1.crate) = 8311 +SHA256 (python/rust/crates/vcpkg-0.2.15.crate) = accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426 +SIZE (python/rust/crates/vcpkg-0.2.15.crate) = 228735 +SHA256 (python/rust/crates/version_check-0.9.3.crate) = 5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe +SIZE (python/rust/crates/version_check-0.9.3.crate) = 12547 +SHA256 (python/rust/crates/want-0.3.0.crate) = 1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0 +SIZE (python/rust/crates/want-0.3.0.crate) = 6550 +SHA256 (python/rust/crates/wasi-0.9.0+wasi-snapshot-preview1.crate) = cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519 +SIZE (python/rust/crates/wasi-0.9.0+wasi-snapshot-preview1.crate) = 31521 +SHA256 (python/rust/crates/wasi-0.10.2+wasi-snapshot-preview1.crate) = fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6 +SIZE (python/rust/crates/wasi-0.10.2+wasi-snapshot-preview1.crate) = 27505 +SHA256 (python/rust/crates/wasm-bindgen-0.2.74.crate) = d54ee1d4ed486f78874278e63e4069fc1ab9f6a18ca492076ffb90c5eb2997fd +SIZE (python/rust/crates/wasm-bindgen-0.2.74.crate) = 158439 +SHA256 (python/rust/crates/wasm-bindgen-backend-0.2.74.crate) = 3b33f6a0694ccfea53d94db8b2ed1c3a8a4c86dd936b13b9f0a15ec4a451b900 +SIZE (python/rust/crates/wasm-bindgen-backend-0.2.74.crate) = 25434 +SHA256 (python/rust/crates/wasm-bindgen-futures-0.4.24.crate) = 5fba7978c679d53ce2d0ac80c8c175840feb849a161664365d1287b41f2e67f1 +SIZE (python/rust/crates/wasm-bindgen-futures-0.4.24.crate) = 14759 +SHA256 (python/rust/crates/wasm-bindgen-macro-0.2.74.crate) = 088169ca61430fe1e58b8096c24975251700e7b1f6fd91cc9d59b04fb9b18bd4 +SIZE (python/rust/crates/wasm-bindgen-macro-0.2.74.crate) = 11536 +SHA256 (python/rust/crates/wasm-bindgen-macro-support-0.2.74.crate) = be2241542ff3d9f241f5e2cb6dd09b37efe786df8851c54957683a49f0987a97 +SIZE (python/rust/crates/wasm-bindgen-macro-support-0.2.74.crate) = 17831 +SHA256 (python/rust/crates/wasm-bindgen-shared-0.2.74.crate) = d7cff876b8f18eed75a66cf49b65e7f967cb354a7aa16003fb55dbfd25b44b4f +SIZE (python/rust/crates/wasm-bindgen-shared-0.2.74.crate) = 7163 +SHA256 (python/rust/crates/web-sys-0.3.51.crate) = e828417b379f3df7111d3a2a9e5753706cae29c41f7c4029ee9fd77f3e09e582 +SIZE (python/rust/crates/web-sys-0.3.51.crate) = 651133 +SHA256 (python/rust/crates/webpki-0.21.4.crate) = b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea +SIZE (python/rust/crates/webpki-0.21.4.crate) = 58505 +SHA256 (python/rust/crates/webpki-roots-0.20.0.crate) = 0f20dea7535251981a9670857150d571846545088359b28e4951d350bdaf179f +SIZE (python/rust/crates/webpki-roots-0.20.0.crate) = 244786 +SHA256 (python/rust/crates/which-4.1.0.crate) = b55551e42cbdf2ce2bedd2203d0cc08dba002c27510f86dab6d0ce304cba3dfe +SIZE (python/rust/crates/which-4.1.0.crate) = 7684 +SHA256 (python/rust/crates/winapi-0.2.8.crate) = 167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a +SIZE (python/rust/crates/winapi-0.2.8.crate) = 455145 +SHA256 (python/rust/crates/winapi-0.3.9.crate) = 5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419 +SIZE (python/rust/crates/winapi-0.3.9.crate) = 1200382 +SHA256 (python/rust/crates/winapi-build-0.1.1.crate) = 2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc +SIZE (python/rust/crates/winapi-build-0.1.1.crate) = 669 +SHA256 (python/rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6 +SIZE (python/rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = 2918815 +SHA256 (python/rust/crates/winapi-util-0.1.5.crate) = 70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178 +SIZE (python/rust/crates/winapi-util-0.1.5.crate) = 10164 +SHA256 (python/rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f +SIZE (python/rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 2947998 +SHA256 (python/rust/crates/winreg-0.7.0.crate) = 0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69 +SIZE (python/rust/crates/winreg-0.7.0.crate) = 21225 +SHA256 (python/rust/crates/ws2_32-sys-0.2.1.crate) = d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e +SIZE (python/rust/crates/ws2_32-sys-0.2.1.crate) = 4697 +SHA256 (python/rust/crates/wyz-0.2.0.crate) = 85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214 +SIZE (python/rust/crates/wyz-0.2.0.crate) = 12926 +SHA256 (python/rust/crates/xml5ever-0.16.1.crate) = 0b1b52e6e8614d4a58b8e70cf51ec0cc21b256ad8206708bcff8139b5bbd6a59 +SIZE (python/rust/crates/xml5ever-0.16.1.crate) = 41282 +SHA256 (python/rust/crates/zip-0.5.13.crate) = 93ab48844d61251bb3835145c521d88aa4031d7139e8485990f60ca911fa0815 +SIZE (python/rust/crates/zip-0.5.13.crate) = 48237 +SHA256 (python/ankitects-anki-2.1.44_GH0.tar.gz) = c24c87aac042b3ac803ea22669091730a48b575ee9d9939672d46caf6d3287b5 +SIZE (python/ankitects-anki-2.1.44_GH0.tar.gz) = 1078527 +SHA256 (python/ankitects-anki-core-i18n-30ab198_GH0.tar.gz) = 99afa625af30055255b2f8e636f0b38007c6da792d399306f0deb4b2672e1a83 +SIZE (python/ankitects-anki-core-i18n-30ab198_GH0.tar.gz) = 715196 +SHA256 (python/ankitects-anki-desktop-ftl-3920d26_GH0.tar.gz) = c33512feb108400839eb18337a0531b755c2b343a9390b326216760bd0285a5f +SIZE (python/ankitects-anki-desktop-ftl-3920d26_GH0.tar.gz) = 174083 +SHA256 (python/ankitects-hyper-timeout-anki-2020-11-03_GH0.tar.gz) = ac85b7bf4911586a06bed019ec16bd10fbeb09bcab0fe4c9783123b1c36e4366 +SIZE (python/ankitects-hyper-timeout-anki-2020-11-03_GH0.tar.gz) = 8473 +SHA256 (python/ankitects-reqwest-anki-2020-11-03_GH0.tar.gz) = d06b88063a7d150e83039979e98d6aa1bf84e7dcd7aecc16b6f76a5a72d584bd +SIZE (python/ankitects-reqwest-anki-2020-11-03_GH0.tar.gz) = 169320 +SHA256 (python/ankitects-tokio-io-timeout-anki-2020-11-03_GH0.tar.gz) = d081728c976f90f0d605ab4a8477e1448146bc06fc0327fe25894ea39aa93c8e +SIZE (python/ankitects-tokio-io-timeout-anki-2020-11-03_GH0.tar.gz) = 8172 +SHA256 (python/bazelbuild-bazel-skylib-e59b620_GH0.tar.gz) = 1c187d8d6b2ad6804cbb0f76c089e3667ae5d363d87cd46a425f25654b0448cf +SIZE (python/bazelbuild-bazel-skylib-e59b620_GH0.tar.gz) = 78257 +SHA256 (python/bazelbuild-rules_cc-40548a2_GH0.tar.gz) = 9ad895164b7d69a4eb43630a3477bd0737981065a3c92b4b4d6b000d6a8ea7d7 +SIZE (python/bazelbuild-rules_cc-40548a2_GH0.tar.gz) = 129284 +SHA256 (python/bazelbuild-rules_java-c13e3ea_GH0.tar.gz) = 113ddc63ac86f493453c4298d78f726cc219ea33cd9fe23659f4269f747390cb +SIZE (python/bazelbuild-rules_java-c13e3ea_GH0.tar.gz) = 12055 +SHA256 (python/bazelbuild-rules_nodejs-1689fa1_GH0.tar.gz) = a65952b0e7ad2470699d9d7dcd311ff36e024cbe8ceb49b83bb54688b2102ee8 +SIZE (python/bazelbuild-rules_nodejs-1689fa1_GH0.tar.gz) = 5603917 +SHA256 (python/bazelbuild-rules_proto-f7a30f6_GH0.tar.gz) = d92ce309a1309b4e67a761b9f446bd4c9802aadb685199cb94d5eb637b72bae2 +SIZE (python/bazelbuild-rules_proto-f7a30f6_GH0.tar.gz) = 14397 +SHA256 (python/ankitects-rules_pip-73953e0_GH0.tar.gz) = e32cfe55d3d6a931b2d9d11fe69c82166e10138d015fbecfb82d3aea15b8aceb +SIZE (python/ankitects-rules_pip-73953e0_GH0.tar.gz) = 2075755 +SHA256 (python/ankitects-rules_python-3927c9b_GH0.tar.gz) = 4c367da5f0b8bdd585ae097d7666e1f491e6def99a24b39b95daf48976f2948d +SIZE (python/ankitects-rules_python-3927c9b_GH0.tar.gz) = 2565208 +SHA256 (python/ankitects-rules_rust-dfd1200_GH0.tar.gz) = 3c3a6f51bf5e2aab73f9cf80b975b8887c9ef5fc404912a6f7af9c50fd54f6ec +SIZE (python/ankitects-rules_rust-dfd1200_GH0.tar.gz) = 284139 +SHA256 (python/ankitects-rules_sass-275ace7_GH0.tar.gz) = 0d42aa56eb20694ad0b802bf478449ec9879cf4ac6d9aaf652d6945d2664a6d7 +SIZE (python/ankitects-rules_sass-275ace7_GH0.tar.gz) = 20268 +SHA256 (python/ankitects-rules_svelte-f09155c_GH0.tar.gz) = 711d01b2e3ee7e2a9a81d0d87fdfd6645be6c9813064e839b66afb9015d72b10 +SIZE (python/ankitects-rules_svelte-f09155c_GH0.tar.gz) = 63486 diff --git a/games/anki/files/bazel/BUILD.bazel-i18n b/games/anki/files/bazel/BUILD.bazel-i18n new file mode 100644 index 000000000000..200af3d25163 --- /dev/null +++ b/games/anki/files/bazel/BUILD.bazel-i18n @@ -0,0 +1,10 @@ +# Used for the fluent i18n translation bazel repositories: +# - ftlextra +# - ftlrslib + +filegroup( + name = "files", + srcs = glob(["**/*.ftl"]), + visibility = ["//visibility:public"], +) +exports_files(["l10n.toml"]) diff --git a/games/anki/files/bazel/BUILD.bazel-local_node b/games/anki/files/bazel/BUILD.bazel-local_node new file mode 100644 index 000000000000..62a687e4a1a1 --- /dev/null +++ b/games/anki/files/bazel/BUILD.bazel-local_node @@ -0,0 +1 @@ +exports_files(["node/bin/node"]) diff --git a/games/anki/files/bazel/BUILD.bazel-protoc_bin_freebsd b/games/anki/files/bazel/BUILD.bazel-protoc_bin_freebsd new file mode 100644 index 000000000000..0ef0e2ab8079 --- /dev/null +++ b/games/anki/files/bazel/BUILD.bazel-protoc_bin_freebsd @@ -0,0 +1 @@ +exports_files(["bin/protoc"]) diff --git a/games/anki/files/bazel/BUILD.bazel-pylib-rsbridge b/games/anki/files/bazel/BUILD.bazel-pylib-rsbridge new file mode 100644 index 000000000000..7e84e1562e1c --- /dev/null +++ b/games/anki/files/bazel/BUILD.bazel-pylib-rsbridge @@ -0,0 +1,12 @@ +# Handles the further processing of "librsbridge.so" within bazel + +load("@bazel_skylib//rules:copy_file.bzl", "copy_file") + +copy_file( + name = "rsbridge", + src = "//local_repos/rust_output/librsbridge", + out = "librsbridge.so", + visibility = [ + "//pylib:__subpackages__", + ], +) diff --git a/games/anki/files/bazel/BUILD.bazel-pyqt5 b/games/anki/files/bazel/BUILD.bazel-pyqt5 new file mode 100644 index 000000000000..f8566c60fca5 --- /dev/null +++ b/games/anki/files/bazel/BUILD.bazel-pyqt5 @@ -0,0 +1,27 @@ +# Stub layout for the PyQT5 repository + +load("@rules_python//python:defs.bzl", "py_library") + +package(default_visibility = ["//visibility:public"]) + +py_library( + name = "pkg", + srcs = glob(["**/*.py"]), + data = glob(["**/*"], exclude = [ + "**/*.py", + "**/*.pyc", + "**/* *", + "BUILD", + "WORKSPACE", + "bin/*", + "__pycache__", + # these make building slower + "Qt/qml/**", + "**/*.sip", + "**/*.png", + ]), + + # This makes this directory a top-level in the python import + # search path for anything that depends on this. + imports = ["."], +) diff --git a/games/anki/files/bazel/BUILD.bazel-rslib b/games/anki/files/bazel/BUILD.bazel-rslib new file mode 100644 index 000000000000..bb579eac2e9e --- /dev/null +++ b/games/anki/files/bazel/BUILD.bazel-rslib @@ -0,0 +1,25 @@ +# Handles the further processing of "fluent.proto" within bazel + +load("@bazel_skylib//rules:copy_file.bzl", "copy_file") +load("@rules_proto//proto:defs.bzl", "proto_library") + +copy_file( + name = "fluent_proto", + src = "//local_repos/rust_output/fluent_proto", + out = "fluent.proto", + visibility = ["//visibility:public"], +) + +proto_library( + name = "fluent_proto_lib", + srcs = ["fluent.proto"], + visibility = ["//visibility:public"], +) + +proto_library( + name = "backend_proto_lib", + srcs = ["backend.proto"], + visibility = ["//visibility:public"], +) + +exports_files(["backend.proto"]) diff --git a/games/anki/files/bazel/BUILD.bazel-rust_output-fluent_proto b/games/anki/files/bazel/BUILD.bazel-rust_output-fluent_proto new file mode 100644 index 000000000000..8bc3891275a5 --- /dev/null +++ b/games/anki/files/bazel/BUILD.bazel-rust_output-fluent_proto @@ -0,0 +1,7 @@ +# Expose "fluent.proto" to bazel + +filegroup( + name = "fluent_proto", + srcs = ["fluent.proto"], + visibility = ["//visibility:public"], +) diff --git a/games/anki/files/bazel/BUILD.bazel-rust_output-librsbridge b/games/anki/files/bazel/BUILD.bazel-rust_output-librsbridge new file mode 100644 index 000000000000..9b5ad80ca11b --- /dev/null +++ b/games/anki/files/bazel/BUILD.bazel-rust_output-librsbridge @@ -0,0 +1,7 @@ +# Expose "librsbridge.so" to bazel + +filegroup( + name = "librsbridge", + srcs = ["librsbridge.so"], + visibility = ["//visibility:public"], +) diff --git a/games/anki/files/bazel/pyqt5.bzl b/games/anki/files/bazel/pyqt5.bzl new file mode 100644 index 000000000000..059f34c410ab --- /dev/null +++ b/games/anki/files/bazel/pyqt5.bzl @@ -0,0 +1,13 @@ +# Stub version of "pyqt5" to avoid loading external dependencies. + +def _impl(repository_ctx): + return None + +install_pyqt5 = repository_rule( + attrs = { + "python_interpreter": attr.string(default = "python"), + "python_runtime": attr.string(mandatory=True), + }, + local=True, + implementation = _impl, +) diff --git a/games/anki/files/bazel/repos.bzl b/games/anki/files/bazel/repos.bzl new file mode 100644 index 000000000000..00f4aef8efcd --- /dev/null +++ b/games/anki/files/bazel/repos.bzl @@ -0,0 +1,109 @@ +# Definitions of local bazel repositories + +def register_repos(): + "Register required dependency repos." + + # bazel + ######### + native.local_repository( + name = "bazel_skylib", + path = "%%_MY_LOCALREPO%%/bzlskylib", + ) + + # rust + ######## + native.local_repository( + name = "io_bazel_rules_rust", + path = "%%_MY_LOCALREPO%%/rules_rust", + ) + + # protobuf + ############ + native.local_repository( + name = "rules_proto", + path = "%%_MY_LOCALREPO%%/rules_proto", + ) + + # python + ########## + native.local_repository( + name = "rules_python", + path = "%%_MY_LOCALREPO%%/rules_python", + ) + + # python pip + ############## + native.local_repository( + name = "com_github_ali5h_rules_pip", + path = "%%_MY_LOCALREPO%%/rules_pip", + ) + + # javascript + ############## + native.local_repository( + name = "build_bazel_rules_nodejs", + path = "%%_MY_LOCALREPO%%/rules_nodejs", + ) + + # sass + ######## + native.local_repository( + name = "io_bazel_rules_sass", + path = "%%_MY_LOCALREPO%%/rules_sass", + ) + + # svelte + ########## + native.local_repository( + name = "build_bazel_rules_svelte", + path = "%%_MY_LOCALREPO%%/rules_svelte", + ) + + # i18n translation files + ########################## + native.local_repository( + name = "rslib_ftl", + path = "%%_MY_LOCALREPO%%/ftlrslib", + ) + + # i18n extra files + #################### + native.local_repository( + name = "extra_ftl", + path = "%%_MY_LOCALREPO%%/ftlextra", + ) + + # transitive dependency + ######################### + native.local_repository( + name = "rules_cc", + path = "%%_MY_LOCALREPO%%/rules_cc", + ) + + # transitive dependency + ######################### + native.local_repository( + name = "rules_java", + path = "%%_MY_LOCALREPO%%/rules_java", + ) + + # transitive dependency + ######################### + native.local_repository( + name = "build_bazel_rules_typescript", + path = "%%_MY_LOCALREPO%%/rules_nodejs/third_party/github.com/bazelbuild/rules_typescript", + ) + + # stub pyqt5 repository + ######################### + native.local_repository( + name = "pyqt5", + path = "%%_MY_LOCALREPO%%/pyqt5", + ) + + # provides node from ports + ############################ + native.local_repository( + name = "local_node", + path = "%%_MY_LOCALREPO%%/local_node", + ) diff --git a/games/anki/files/patch-Makefile b/games/anki/files/patch-Makefile deleted file mode 100644 index 69ca2a9c7852..000000000000 --- a/games/anki/files/patch-Makefile +++ /dev/null @@ -1,27 +0,0 @@ -Coerce sequential processing of the build targets as it's already done for the -"develop" target in the same file. - -Not doing this will often cause failures with the "build-qt" target that needs -files in ${WRKSRC}/ts/dist/ which is created by the "build-ts" target. - -A workaround would be to set MAKE_JOBS_UNSAFE but that would also slow down the -compilation of the Rust library. - -Also the "build-ts" target must be run after the "build-pylib" target otherwise -it produces a ${WRKSRC}/ts/dist/graphs.js with wrong content. - ---- Makefile.orig 2020-08-30 01:23:44 UTC -+++ Makefile -@@ -115,7 +115,11 @@ qt/po/repo: - $(MAKE) pull-i18n - - .PHONY: build --build: clean-dist build-ts build-rspy build-pylib build-qt add-buildhash -+build: -+ @set -eu -o pipefail ${SHELLFLAGS}; \ -+ for dir in $(DEVEL); do \ -+ $(SUBMAKE) -C $$dir build BUILDFLAGS="$(BUILDFLAGS)"; \ -+ done - @echo - @echo "Build complete." - diff --git a/games/anki/files/patch-defs.bzl b/games/anki/files/patch-defs.bzl new file mode 100644 index 000000000000..9065e3756f88 --- /dev/null +++ b/games/anki/files/patch-defs.bzl @@ -0,0 +1,61 @@ +Avoid loading of Rust and Python PIP rules as both tries to load their +dependencies (cargo crates, Python packages) during the build process. + +Also define local repositories to use "www/node" and "www/yarn" from the +Ports tree. + +--- defs.bzl.orig 2021-05-04 05:04:50 UTC ++++ defs.bzl +@@ -1,6 +1,5 @@ + load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace") + load("@bazel_skylib//lib:versions.bzl", "versions") +-load("@io_bazel_rules_rust//rust:repositories.bzl", "rust_repositories") + load("@net_ankiweb_anki//cargo:crates.bzl", "raze_fetch_remote_crates") + load(":python.bzl", "setup_local_python") + load(":protobuf.bzl", "setup_protobuf_binary") +@@ -8,7 +7,6 @@ load("//rslib:clang_format.bzl", "setup_clang_format") + load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories", "yarn_install") + load("@io_bazel_rules_sass//:defs.bzl", "sass_repositories") + load("@build_bazel_rules_svelte//:defs.bzl", "rules_svelte_dependencies") +-load("@com_github_ali5h_rules_pip//:defs.bzl", "pip_import") + load("//pip/pyqt5:defs.bzl", "install_pyqt5") + + anki_version = "2.1.44" +@@ -18,13 +16,6 @@ def setup_deps(): + + versions.check(minimum_bazel_version = "3.7.0") + +- rust_repositories( +- edition = "2018", +- version = "1.48.0", +- ) +- +- raze_fetch_remote_crates() +- + setup_local_python(name = "python") + + setup_protobuf_binary(name = "com_google_protobuf") +@@ -33,18 +24,16 @@ def setup_deps(): + + native.register_toolchains("@python//:python3_toolchain") + +- pip_import( +- name = "py_deps", +- requirements = "@net_ankiweb_anki//pip:requirements.txt", +- python_runtime = "@python//:python", +- ) +- + install_pyqt5( + name = "pyqt5", + python_runtime = "@python//:python", + ) + +- node_repositories(package_json = ["@net_ankiweb_anki//ts:package.json"]) ++ node_repositories( ++ package_json = ["@net_ankiweb_anki//ts:package.json"], ++ vendored_node = "@local_node//:node", ++ vendored_yarn = "@local_node//:yarn", ++ ) + + yarn_install( + name = "npm", diff --git a/games/anki/files/patch-ftl_BUILD.bazel b/games/anki/files/patch-ftl_BUILD.bazel new file mode 100644 index 000000000000..1d09b3dd0383 --- /dev/null +++ b/games/anki/files/patch-ftl_BUILD.bazel @@ -0,0 +1,16 @@ +Avoid loading of "requirements.bzl" because it requires "pip_import" which +is already disabled in "defs.bzl". + +--- ftl/BUILD.bazel.orig 2021-05-04 05:04:50 UTC ++++ ftl/BUILD.bazel +@@ -1,10 +1,6 @@ +-load("@py_deps//:requirements.bzl", "requirement") + + fluent_syntax = [ +- requirement("fluent.syntax"), +- requirement("compare-locales"), + # undeclared runtime dependency +- requirement("six"), + ] + + filegroup( diff --git a/games/anki/files/patch-late__deps.bzl b/games/anki/files/patch-late__deps.bzl new file mode 100644 index 000000000000..cae77b835aec --- /dev/null +++ b/games/anki/files/patch-late__deps.bzl @@ -0,0 +1,14 @@ +Avoid loading of "requirements.bzl" because it requires "pip_import" which +is already disabled in "defs.bzl". + +--- late_deps.bzl.orig 2021-05-04 05:04:50 UTC ++++ late_deps.bzl +@@ -1,8 +1,6 @@ + """Repo setup that can't happen until after defs.bzl:setup_deps() is run.""" + +-load("@py_deps//:requirements.bzl", "pip_install") + load("@npm//@bazel/labs:package.bzl", "npm_bazel_labs_dependencies") + + def setup_late_deps(): +- pip_install() + npm_bazel_labs_dependencies() diff --git a/games/anki/files/patch-local__repos_rules__nodejs_internal_common_os__name.bzl b/games/anki/files/patch-local__repos_rules__nodejs_internal_common_os__name.bzl new file mode 100644 index 000000000000..b34274f6fcbb --- /dev/null +++ b/games/anki/files/patch-local__repos_rules__nodejs_internal_common_os__name.bzl @@ -0,0 +1,29 @@ +Add FreeBSD to the list of supported operating systems. + +At the moment only the "amd64" architecture is defined here but it should be +possible to add more architectures here. + +--- local_repos/rules_nodejs/internal/common/os_name.bzl.orig 2021-07-27 08:47:19 UTC ++++ local_repos/rules_nodejs/internal/common/os_name.bzl +@@ -21,6 +21,7 @@ OS_ARCH_NAMES = [ + ("linux", "amd64"), + ("linux", "arm64"), + ("linux", "s390x"), ++ ("freebsd", "amd64"), + ] + + OS_NAMES = ["_".join(os_arch_name) for os_arch_name in OS_ARCH_NAMES] +@@ -48,6 +49,13 @@ def os_name(rctx): + return OS_NAMES[4] + else: + return OS_NAMES[2] ++ elif os_name.startswith("freebsd"): ++ # This is not ideal, but bazel doesn't directly expose arch. ++ arch = rctx.execute(["uname", "-m"]).stdout.strip() ++ if arch == "amd64": ++ return OS_NAMES[5] ++ else: ++ fail("Unsupported FreeBSD architecture: " + arch) + else: + fail("Unsupported operating system: " + os_name) + diff --git a/games/anki/files/patch-local__repos_rules__nodejs_internal_node_node__patches.js b/games/anki/files/patch-local__repos_rules__nodejs_internal_node_node__patches.js new file mode 100644 index 000000000000..a7ce2d7ad36a --- /dev/null +++ b/games/anki/files/patch-local__repos_rules__nodejs_internal_node_node__patches.js @@ -0,0 +1,13 @@ +Avoid hardcoded paths and Use "shells/bash" from the Ports tree. + +--- local_repos/rules_nodejs/internal/node/node_patches.js.orig 2021-02-20 14:13:32 UTC ++++ local_repos/rules_nodejs/internal/node/node_patches.js +@@ -579,7 +579,7 @@ set Path=${nodeDir};%Path% + else { + const nodeEntry = path.join(nodeDir, 'node'); + if (!fs$1.existsSync(nodeEntry)) { +- fs$1.writeFileSync(nodeEntry, `#!/bin/bash ++ fs$1.writeFileSync(nodeEntry, `#!%%LOCALBASE%%/bin/bash + export NP_SUBPROCESS_NODE_DIR="${nodeDir}" + export PATH="${nodeDir}":\$PATH + if [[ ! "\${@}" =~ "${file}" ]]; then diff --git a/games/anki/files/patch-local__repos_rules__nodejs_internal_npm__install_npm__install.bzl b/games/anki/files/patch-local__repos_rules__nodejs_internal_npm__install_npm__install.bzl new file mode 100644 index 000000000000..ba8b4ee38d91 --- /dev/null +++ b/games/anki/files/patch-local__repos_rules__nodejs_internal_npm__install_npm__install.bzl @@ -0,0 +1,14 @@ +Add additional arguments to "www/yarn" to point to the cache folder and prevent +it to establish network connections during the build process. + +--- local_repos/rules_nodejs/internal/npm_install/npm_install.bzl.orig 2021-02-21 10:43:57 UTC ++++ local_repos/rules_nodejs/internal/npm_install/npm_install.bzl +@@ -360,6 +360,8 @@ def _yarn_install_impl(repository_ctx): + yarn = get_yarn_label(repository_ctx) + + yarn_args = [] ++ yarn_args.append("--cache-folder %%_MY_YARNCACHE%%") ++ yarn_args.append("--offline") + + # Set frozen lockfile as default install to install the exact version from the yarn.lock + # file. To perform an yarn install use the vendord yarn binary with: diff --git a/games/anki/files/patch-local__repos_rules__nodejs_toolchains_node_BUILD.bazel b/games/anki/files/patch-local__repos_rules__nodejs_toolchains_node_BUILD.bazel new file mode 100644 index 000000000000..709ac8495747 --- /dev/null +++ b/games/anki/files/patch-local__repos_rules__nodejs_toolchains_node_BUILD.bazel @@ -0,0 +1,55 @@ +Add FreeBSD to the list of supported operating systems. + +At the moment only the "amd64" architecture is defined here but it should be +possible to add more architectures here. + +--- local_repos/rules_nodejs/toolchains/node/BUILD.bazel.orig 2021-02-20 14:13:32 UTC ++++ local_repos/rules_nodejs/toolchains/node/BUILD.bazel +@@ -26,6 +26,14 @@ platform( + ) + + platform( ++ name = "freebsd_amd64", ++ constraint_values = [ ++ "@bazel_tools//platforms:freebsd", ++ "@bazel_tools//platforms:x86_64", ++ ], ++) ++ ++platform( + name = "linux_amd64", + constraint_values = [ + "@bazel_tools//platforms:linux", +@@ -78,6 +86,7 @@ alias( + name = "toolchain", + actual = select({ + "@bazel_tools//src/conditions:darwin": "@nodejs_darwin_amd64_config//:toolchain", ++ "@bazel_tools//src/conditions:freebsd_x86_64": "@nodejs_freebsd_amd64_config//:toolchain", + "@bazel_tools//src/conditions:linux_aarch64": "@nodejs_linux_arm64_config//:toolchain", + "@bazel_tools//src/conditions:linux_s390x": "@nodejs_linux_s390x_config//:toolchain", + "@bazel_tools//src/conditions:linux_x86_64": "@nodejs_linux_amd64_config//:toolchain", +@@ -92,6 +101,7 @@ alias( + name = "node_bin", + actual = select({ + "@bazel_tools//src/conditions:darwin": "@nodejs_darwin_amd64//:node_bin", ++ "@bazel_tools//src/conditions:freebsd_x86_64": "@nodejs_freebsd_amd64//:node_bin", + "@bazel_tools//src/conditions:linux_aarch64": "@nodejs_linux_arm64//:node_bin", + "@bazel_tools//src/conditions:linux_s390x": "@nodejs_linux_s390x//:node_bin", + "@bazel_tools//src/conditions:linux_x86_64": "@nodejs_linux_amd64//:node_bin", +@@ -99,6 +109,16 @@ alias( + "//conditions:default": "@nodejs_linux_amd64//:node_bin", + }), + visibility = ["//visibility:public"], ++) ++ ++toolchain( ++ name = "node_freebsd_amd64_toolchain", ++ target_compatible_with = [ ++ "@bazel_tools//platforms:freebsd", ++ "@bazel_tools//platforms:x86_64", ++ ], ++ toolchain = "@nodejs_freebsd_amd64_config//:toolchain", ++ toolchain_type = ":toolchain_type", + ) + + toolchain( diff --git a/games/anki/files/patch-platforms_BUILD.bazel b/games/anki/files/patch-platforms_BUILD.bazel new file mode 100644 index 000000000000..d6d048fdc1f5 --- /dev/null +++ b/games/anki/files/patch-platforms_BUILD.bazel @@ -0,0 +1,17 @@ +At the moment only the "amd64" architecture is defined here but it should be +possible to add more architectures here. + +--- platforms/BUILD.bazel.orig 2021-01-08 07:47:26 UTC ++++ platforms/BUILD.bazel +@@ -23,3 +23,11 @@ config_setting( + "@platforms//cpu:x86_64", + ], + ) ++ ++config_setting( ++ name = "freebsd_x86_64", ++ constraint_values = [ ++ "@platforms//os:freebsd", ++ "@platforms//cpu:x86_64", ++ ], ++) diff --git a/games/anki/files/patch-protobuf.bzl b/games/anki/files/patch-protobuf.bzl new file mode 100644 index 000000000000..054ec7dea4f3 --- /dev/null +++ b/games/anki/files/patch-protobuf.bzl @@ -0,0 +1,27 @@ +Define a local repository to use "devel/protobuf" from the Ports tree. + +At the moment it is only exposed for the "amd64" architecture but it should be +possible to add more architectures here. + +--- protobuf.bzl.orig 2021-03-27 05:13:11 UTC ++++ protobuf.bzl +@@ -15,6 +15,7 @@ alias( + "@net_ankiweb_anki//platforms:windows_x86_64": "@protoc_bin_windows//:bin/protoc.exe", + "@net_ankiweb_anki//platforms:macos_x86_64": "@protoc_bin_macos//:bin/protoc", + "@net_ankiweb_anki//platforms:linux_x86_64": "@protoc_bin_linux_x86_64//:bin/protoc", ++ "@net_ankiweb_anki//platforms:freebsd_x86_64": "@protoc_bin_freebsd//:bin/protoc", + "@net_ankiweb_anki//platforms:linux_arm64": "@protoc_bin_linux_arm64//:bin/protoc" + }), + visibility = ["//visibility:public"] +@@ -66,6 +67,11 @@ def setup_protobuf_binary(name): + ], + sha256 = "642554ed4dd2dba94e1afddcccdd7d832999cea309299cc5952f13db389894f8", + build_file_content = """exports_files(["bin/protoc.exe"])""", ++ ) ++ ++ native.local_repository( ++ name = "protoc_bin_freebsd", ++ path = "%%_MY_LOCALREPO%%/protoc_bin_freebsd", + ) + + if not native.existing_rule(name): diff --git a/games/anki/files/patch-pylib_Makefile b/games/anki/files/patch-pylib_Makefile deleted file mode 100644 index 24067b37d2f5..000000000000 --- a/games/anki/files/patch-pylib_Makefile +++ /dev/null @@ -1,39 +0,0 @@ -Use the current directory to locate and load the ankirspy (= Rust/Python -bridge) module that was built with "build-rspy" target. - -Also avoid Python wheel generation as the produced wheels won't be used. The -Python code will be compiled and installed via Port's Makefile. - ---- pylib/Makefile.orig 2020-08-30 01:23:44 UTC -+++ pylib/Makefile -@@ -32,11 +32,9 @@ PHONY: all - all: check - - .build/run-deps: setup.py -- SKIP_ANKI_RSPY=true python -m pip install -e . - @touch $@ - - .build/dev-deps: requirements.dev -- python -m pip install -r requirements.dev - @touch $@ - - PROTODEPS := ../proto/backend.proto ../proto/fluent.proto -@@ -45,7 +43,7 @@ PROTODEPS := ../proto/backend.proto ../proto/fluent.pr - protoc --proto_path=../proto --python_out=anki --mypy_out=anki $(PROTODEPS) - perl -i'' -pe 's/from fluent_pb2/from anki.fluent_pb2/' anki/backend_pb2.pyi - perl -i'' -pe 's/import fluent_pb2/import anki.fluent_pb2/' anki/backend_pb2.py -- python tools/genbackend.py -+ PYTHONPATH=. python tools/genbackend.py - python -m black -t py36 anki/rsbackend_gen.py - @touch $@ - -@@ -104,9 +102,6 @@ CHECKDEPS := $(shell "${FIND}" anki tests -name '*.py' - build: .build/build - - .build/build: $(BUILD_STEPS) $(CHECKDEPS) -- rm -rf dist build -- python setup.py -q bdist_wheel -- rsync -a dist/*.whl ../dist/ - touch $@ - - # prepare code for running in place diff --git a/games/anki/files/patch-pylib_anki_BUILD.bazel b/games/anki/files/patch-pylib_anki_BUILD.bazel new file mode 100644 index 000000000000..99d13d99839f --- /dev/null +++ b/games/anki/files/patch-pylib_anki_BUILD.bazel @@ -0,0 +1,34 @@ +Avoid loading of "requirements.bzl" because it requires "pip_import" which +is already disabled in "defs.bzl". + +--- pylib/anki/BUILD.bazel.orig 2021-05-04 05:04:50 UTC ++++ pylib/anki/BUILD.bazel +@@ -1,6 +1,5 @@ + load("@bazel_skylib//rules:copy_file.bzl", "copy_file") + load("@rules_python//python:defs.bzl", "py_library") +-load("@py_deps//:requirements.bzl", "requirement") + load("@rules_python//experimental/python:wheel.bzl", "py_package", "py_wheel") + load("//:defs.bzl", "anki_version") + load("//pylib:orjson.bzl", "orjson_if_available") +@@ -39,13 +38,6 @@ py_library( + ], + visibility = ["//visibility:public"], + deps = [ +- requirement("beautifulsoup4"), +- requirement("decorator"), +- requirement("distro"), +- requirement("protobuf"), +- requirement("requests"), +- requirement("flask"), +- requirement("waitress"), + ] + orjson_if_available(), + ) + +@@ -70,6 +62,7 @@ py_wheel( + "//platforms:windows_x86_64": "win_amd64", + "//platforms:macos_x86_64": "macosx_10_7_x86_64", + "//platforms:linux_x86_64": "manylinux2014_x86_64", ++ "//platforms:freebsd_x86_64": "freebsd_x86_64", + "//platforms:linux_arm64": "manylinux2014_aarch64", + }), + python_tag = "cp38", diff --git a/games/anki/files/patch-pylib_anki___backend_BUILD.bazel b/games/anki/files/patch-pylib_anki___backend_BUILD.bazel new file mode 100644 index 000000000000..be6c3b4915e5 --- /dev/null +++ b/games/anki/files/patch-pylib_anki___backend_BUILD.bazel @@ -0,0 +1,21 @@ +Avoid loading of "requirements.bzl" because it requires "pip_import" which +is already disabled in "defs.bzl". + +--- pylib/anki/_backend/BUILD.bazel.orig 2021-05-04 05:04:50 UTC ++++ pylib/anki/_backend/BUILD.bazel +@@ -1,5 +1,4 @@ + load("@rules_python//python:defs.bzl", "py_binary") +-load("@py_deps//:requirements.bzl", "requirement") + load("//pylib:protobuf.bzl", "py_proto_library_typed") + load("@bazel_skylib//rules:copy_file.bzl", "copy_file") + load("@bazel_skylib//lib:selects.bzl", "selects") +@@ -27,9 +26,6 @@ py_binary( + "genbackend.py", + ], + deps = [ +- requirement("black"), +- requirement("stringcase"), +- requirement("protobuf"), + ], + ) + diff --git a/games/anki/files/patch-pylib_orjson.bzl b/games/anki/files/patch-pylib_orjson.bzl new file mode 100644 index 000000000000..719627a2493c --- /dev/null +++ b/games/anki/files/patch-pylib_orjson.bzl @@ -0,0 +1,15 @@ +Avoid loading of "requirements.bzl" because it requires "pip_import" which +is already disabled in "defs.bzl". + +--- pylib/orjson.bzl.orig 2021-05-04 05:04:50 UTC ++++ pylib/orjson.bzl +@@ -1,8 +1,7 @@ +-load("@py_deps//:requirements.bzl", "requirement") + + def orjson_if_available(): + "Include orjson if it's listed in requirements.txt." +- target = requirement("orjson") ++ target = "not_found" + if "not_found" in target: + return [] + else: diff --git a/games/anki/files/patch-pylib_tools_BUILD.bazel b/games/anki/files/patch-pylib_tools_BUILD.bazel new file mode 100644 index 000000000000..d2d2dcd0fa8f --- /dev/null +++ b/games/anki/files/patch-pylib_tools_BUILD.bazel @@ -0,0 +1,28 @@ +Avoid loading of "requirements.bzl" because it requires "pip_import" which +is already disabled in "defs.bzl". + +--- pylib/tools/BUILD.bazel.orig 2021-05-04 05:04:50 UTC ++++ pylib/tools/BUILD.bazel +@@ -1,5 +1,4 @@ + load("@rules_python//python:defs.bzl", "py_binary", "py_library") +-load("@py_deps//:requirements.bzl", "requirement") + + py_binary( + name = "protoc-gen-mypy", +@@ -7,7 +6,6 @@ py_binary( + visibility = [ + "//visibility:public", + ], +- deps = [requirement("mypy-protobuf")], + ) + + py_binary( +@@ -41,8 +39,6 @@ py_binary( + imports = ["."], + visibility = ["//pylib:__subpackages__"], + deps = [ +- requirement("black"), +- requirement("stringcase"), + ], + ) + diff --git a/games/anki/files/patch-qt_BUILD.bazel b/games/anki/files/patch-qt_BUILD.bazel new file mode 100644 index 000000000000..a7ae65d55655 --- /dev/null +++ b/games/anki/files/patch-qt_BUILD.bazel @@ -0,0 +1,70 @@ +Avoid loading of "requirements.bzl" because it requires "pip_import" which +is already disabled in "defs.bzl". + +--- qt/BUILD.bazel.orig 2021-05-04 05:04:50 UTC ++++ qt/BUILD.bazel +@@ -1,5 +1,4 @@ + load("@rules_python//python:defs.bzl", "py_binary", "py_test") +-load("@py_deps//:requirements.bzl", "requirement") + + py_binary( + name = "genhooks_gui", +@@ -10,8 +9,6 @@ py_binary( + visibility = [":__subpackages__"], + deps = [ + "//pylib/tools:hookslib", +- requirement("black"), +- requirement("stringcase"), + ], + ) + +@@ -32,8 +29,6 @@ py_test( + deps = [ + "//pylib/anki", + "//qt/aqt:aqt_without_data", +- requirement("pytest"), +- requirement("mock"), + ], + ) + +@@ -56,7 +51,6 @@ py_test( + "//pylib/anki", + "//qt/aqt:aqt_without_data", + "@pyqt5//:pkg", +- requirement("mypy"), + ], + ) + +@@ -76,7 +70,6 @@ py_test( + deps = [ + "//pylib/anki", + "//qt/aqt:aqt_without_data", +- requirement("pylint"), + "@pyqt5//:pkg", + ], + ) +@@ -93,8 +86,6 @@ py_test( + main = "tests/run_format.py", + deps = [ + "//qt/aqt:aqt_without_data", +- requirement("black"), +- requirement("isort"), + ], + ) + +@@ -111,8 +102,6 @@ py_binary( + main = "tests/run_format.py", + tags = ["manual"], + deps = [ +- requirement("black"), +- requirement("isort"), + ], + ) + +@@ -134,6 +123,5 @@ py_binary( + srcs = ["tools/profile.py"], + tags = ["manual"], + deps = [ +- requirement("snakeviz"), + ], + ) diff --git a/games/anki/files/patch-qt_Makefile b/games/anki/files/patch-qt_Makefile deleted file mode 100644 index 11f41a566dac..000000000000 --- a/games/anki/files/patch-qt_Makefile +++ /dev/null @@ -1,45 +0,0 @@ -Avoid Python wheel generation in the ".build/build" target as the produced -wheels won't be used. The Python code will be compiled and installed via -Port's Makefile. - ---- qt/Makefile.orig 2020-08-30 01:23:44 UTC -+++ qt/Makefile -@@ -35,11 +35,9 @@ PHONY: all - all: check - - .build/run-deps: setup.py -- python -m pip install -e . - @touch $@ - - .build/dev-deps: requirements.dev -- python -m pip install -r requirements.dev - @touch $@ - - .build/ui: $(shell "${FIND}" designer -type f) -@@ -55,7 +53,7 @@ all: check - TSDEPS := $(wildcard ts/src/*.ts) $(wildcard ts/scss/*.scss) - - .build/js: $(TSDEPS) -- (cd ts && make build) -+ (cd ts && %%MAKE_CMD%% build) - python ./tools/extract_scss_colors.py - @touch $@ - -@@ -64,7 +62,7 @@ TSDEPS := $(wildcard ts/src/*.ts) $(wildcard ts/scss/* - python -m black aqt/gui_hooks.py - @touch $@ - --BUILD_STEPS := .build/vernum .build/run-deps .build/dev-deps .build/js .build/ui aqt/buildinfo.py .build/hooks .build/i18n -+BUILD_STEPS := .build/vernum .build/run-deps .build/dev-deps .build/js .build/ui aqt/buildinfo.py .build/hooks ### NLS ###.build/i18n - - # Checking - ###################### -@@ -137,8 +135,6 @@ build: .build/build - .build/build: $(BUILD_STEPS) $(CHECKDEPS) $(wildcard ../ts/dist/*) - rm -rf dist build - rsync -a ../ts/dist/ aqt_data/web/ -- python setup.py -q bdist_wheel -- rsync -a dist/*.whl ../dist/ - touch $@ - - .PHONY: develop diff --git a/games/anki/files/patch-qt_aqt_BUILD.bazel b/games/anki/files/patch-qt_aqt_BUILD.bazel new file mode 100644 index 000000000000..58bb874bd8d7 --- /dev/null +++ b/games/anki/files/patch-qt_aqt_BUILD.bazel @@ -0,0 +1,35 @@ +Avoid loading of "requirements.bzl" because it requires "pip_import" which +is already disabled in "defs.bzl". + +--- qt/aqt/BUILD.bazel.orig 2021-05-04 05:04:50 UTC ++++ qt/aqt/BUILD.bazel +@@ -1,6 +1,5 @@ + load("@bazel_skylib//rules:copy_file.bzl", "copy_file") + load("@rules_python//python:defs.bzl", "py_library") +-load("@py_deps//:requirements.bzl", "requirement") + load("@rules_python//experimental/python:wheel.bzl", "py_package", "py_wheel") + load("//:defs.bzl", "anki_version") + +@@ -42,22 +41,9 @@ aqt_core_data = [ + ] + + aqt_deps = [ +- requirement("protobuf"), +- requirement("decorator"), +- requirement("requests"), +- requirement("beautifulsoup4"), +- requirement("flask"), +- requirement("flask-cors"), +- requirement("waitress"), +- requirement("send2trash"), +- requirement("markdown"), +- requirement("jsonschema"), + "@pyqt5//:pkg", + ] + select({ + "@bazel_tools//src/conditions:host_windows": [ +- requirement("psutil"), +- requirement("pywin32"), +- requirement("winrt"), + ], + "//conditions:default": [], + }) diff --git a/games/anki/files/patch-qt_runanki b/games/anki/files/patch-qt_runanki deleted file mode 100644 index 08100574c58b..000000000000 --- a/games/anki/files/patch-qt_runanki +++ /dev/null @@ -1,10 +0,0 @@ ---- qt/runanki.orig 2020-08-30 01:23:44 UTC -+++ qt/runanki -@@ -1,4 +1,7 @@ - #!/usr/bin/env python3 - -+import sys -+sys.path.append("%%DATADIR%%") -+ - import aqt - aqt.run() diff --git a/games/anki/files/patch-rslib_Cargo.toml b/games/anki/files/patch-rslib_Cargo.toml index ca01e6b172f4..63f02f27d3da 100644 --- a/games/anki/files/patch-rslib_Cargo.toml +++ b/games/anki/files/patch-rslib_Cargo.toml @@ -1,19 +1,16 @@ -Avoid vendored OpenSSL dependencies. +Enable "translations" feature to add the translations from the fluent repos. ---- rslib/Cargo.toml.orig 2020-09-04 08:35:57 UTC +--- rslib/Cargo.toml.orig 2021-05-04 05:04:50 UTC +++ rslib/Cargo.toml -@@ -61,10 +61,10 @@ features = ["trace", "functions", "collation"] - version = "0.23.1" - features = ["trace", "functions", "collation", "bundled"] +@@ -7,6 +7,11 @@ license = "AGPL-3.0-or-later" + description = "Anki's Rust library code" + build = "build/main.rs" --[target.'cfg(linux)'.dependencies.reqwest] --git = "https://github.com/ankitects/reqwest.git" --rev = "57665e2c2a39db85723ba860f1b570a608bb73f9" --features = ["json", "socks", "stream", "native-tls-vendored"] -+#[target.'cfg(linux)'.dependencies.reqwest] -+#git = "https://github.com/ankitects/reqwest.git" -+#rev = "57665e2c2a39db85723ba860f1b570a608bb73f9" -+#features = ["json", "socks", "stream", "native-tls-vendored"] - - [target.'cfg(not(linux))'.dependencies.reqwest] - git = "https://github.com/ankitects/reqwest.git" ++[features] ++default = ["translations"] ++ ++translations = [] ++ + [lib] + name = "anki" + path = "src/lib.rs" diff --git a/games/anki/files/patch-rspy_Makefile b/games/anki/files/patch-rspy_Makefile deleted file mode 100644 index ed75c7b29e4b..000000000000 --- a/games/anki/files/patch-rspy_Makefile +++ /dev/null @@ -1,27 +0,0 @@ -Extract the contents of Python wheel file to Anki's Python library to load it -directly from that place. The .so file will be used for installation later. - -Rust from Ports is used as well so there is no need to bootstrap it via -"rustup". - ---- rspy/Makefile.orig 2020-08-30 01:23:44 UTC -+++ rspy/Makefile -@@ -71,6 +71,7 @@ build: .build/build - touch ../proto/backend.proto - ${BUILD_VARIABLES} \ - maturin build -i "${PYTHON_FILE}" -o "$(OUTDIR)" $(BUILDFLAGS) -+ %%UNZIP_NATIVE_CMD%% -o -d ../pylib/ `find ../dist/ -name "*.whl"` - touch $@ - - check: .build/check -@@ -87,10 +88,6 @@ clean: - RUST_TOOLCHAIN := $(shell cat rust-toolchain) - - .build/tools: requirements.txt rust-toolchain -- python -m pip install -r requirements.txt -- rustup toolchain install $(RUST_TOOLCHAIN) -- rustup component add rustfmt-preview --toolchain $(RUST_TOOLCHAIN) -- rustup component add clippy-preview --toolchain $(RUST_TOOLCHAIN) - @touch $@ - - # we should not call clippy because it break things when running make check Mac OS diff --git a/games/anki/files/patch-scripts_BUILD.bazel b/games/anki/files/patch-scripts_BUILD.bazel new file mode 100644 index 000000000000..d97fc234d3ad --- /dev/null +++ b/games/anki/files/patch-scripts_BUILD.bazel @@ -0,0 +1,10 @@ +Avoid loading of "requirements.bzl" because it requires "pip_import" which +is already disabled in "defs.bzl". + +--- scripts/BUILD.bazel.orig 2021-05-04 05:04:50 UTC ++++ scripts/BUILD.bazel +@@ -1,4 +1,3 @@ +-load("@py_deps//:requirements.bzl", "requirement") + + py_binary( + name = "buildinfo", diff --git a/games/anki/files/patch-scripts_status.sh b/games/anki/files/patch-scripts_status.sh new file mode 100644 index 000000000000..00e6545bd3c4 --- /dev/null +++ b/games/anki/files/patch-scripts_status.sh @@ -0,0 +1,9 @@ +Use _MY_BUILDHASH which is defined in the Port's Makefile + +--- scripts/status.sh.orig 2021-02-15 17:35:54 UTC ++++ scripts/status.sh +@@ -1,3 +1,3 @@ + #!/bin/bash + +-echo "STABLE_BUILDHASH $(git rev-parse --short=8 HEAD || echo nogit)" ++echo "STABLE_BUILDHASH $(git rev-parse --short=8 HEAD || echo %%_MY_BUILDHASH%%)" diff --git a/games/anki/pkg-plist b/games/anki/pkg-plist index 48d85612f54d..ecc695699669 100644 --- a/games/anki/pkg-plist +++ b/games/anki/pkg-plist @@ -3,8 +3,6 @@ man/man1/anki.1.gz %%DATADIR%%/anki/__init__.py %%DATADIR%%/anki/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc %%DATADIR%%/anki/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.pyc -%%DATADIR%%/anki/__pycache__/backend_pb2.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc -%%DATADIR%%/anki/__pycache__/backend_pb2.cpython-%%PYTHON_SUFFIX%%.pyc %%DATADIR%%/anki/__pycache__/buildinfo.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc %%DATADIR%%/anki/__pycache__/buildinfo.cpython-%%PYTHON_SUFFIX%%.pyc %%DATADIR%%/anki/__pycache__/cards.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc @@ -27,10 +25,10 @@ man/man1/anki.1.gz %%DATADIR%%/anki/__pycache__/exporting.cpython-%%PYTHON_SUFFIX%%.pyc %%DATADIR%%/anki/__pycache__/find.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc %%DATADIR%%/anki/__pycache__/find.cpython-%%PYTHON_SUFFIX%%.pyc -%%DATADIR%%/anki/__pycache__/fluent_pb2.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc -%%DATADIR%%/anki/__pycache__/fluent_pb2.cpython-%%PYTHON_SUFFIX%%.pyc %%DATADIR%%/anki/__pycache__/hooks.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc %%DATADIR%%/anki/__pycache__/hooks.cpython-%%PYTHON_SUFFIX%%.pyc +%%DATADIR%%/anki/__pycache__/hooks_gen.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc +%%DATADIR%%/anki/__pycache__/hooks_gen.cpython-%%PYTHON_SUFFIX%%.pyc %%DATADIR%%/anki/__pycache__/httpclient.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc %%DATADIR%%/anki/__pycache__/httpclient.cpython-%%PYTHON_SUFFIX%%.pyc %%DATADIR%%/anki/__pycache__/lang.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc @@ -45,10 +43,10 @@ man/man1/anki.1.gz %%DATADIR%%/anki/__pycache__/notes.cpython-%%PYTHON_SUFFIX%%.pyc %%DATADIR%%/anki/__pycache__/rsbackend.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc %%DATADIR%%/anki/__pycache__/rsbackend.cpython-%%PYTHON_SUFFIX%%.pyc -%%DATADIR%%/anki/__pycache__/rsbackend_gen.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc -%%DATADIR%%/anki/__pycache__/rsbackend_gen.cpython-%%PYTHON_SUFFIX%%.pyc %%DATADIR%%/anki/__pycache__/sched.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc %%DATADIR%%/anki/__pycache__/sched.cpython-%%PYTHON_SUFFIX%%.pyc +%%DATADIR%%/anki/__pycache__/scheduler.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc +%%DATADIR%%/anki/__pycache__/scheduler.cpython-%%PYTHON_SUFFIX%%.pyc %%DATADIR%%/anki/__pycache__/schedv2.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc %%DATADIR%%/anki/__pycache__/schedv2.cpython-%%PYTHON_SUFFIX%%.pyc %%DATADIR%%/anki/__pycache__/sound.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc @@ -67,15 +65,28 @@ man/man1/anki.1.gz %%DATADIR%%/anki/__pycache__/tags.cpython-%%PYTHON_SUFFIX%%.pyc %%DATADIR%%/anki/__pycache__/template.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc %%DATADIR%%/anki/__pycache__/template.cpython-%%PYTHON_SUFFIX%%.pyc -%%DATADIR%%/anki/__pycache__/template_legacy.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc -%%DATADIR%%/anki/__pycache__/template_legacy.cpython-%%PYTHON_SUFFIX%%.pyc %%DATADIR%%/anki/__pycache__/types.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc %%DATADIR%%/anki/__pycache__/types.cpython-%%PYTHON_SUFFIX%%.pyc %%DATADIR%%/anki/__pycache__/utils.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc %%DATADIR%%/anki/__pycache__/utils.cpython-%%PYTHON_SUFFIX%%.pyc -%%DATADIR%%/anki/backend_pb2.py -%%DATADIR%%/anki/backend_pb2.pyi +%%DATADIR%%/anki/_backend/__init__.py +%%DATADIR%%/anki/_backend/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc +%%DATADIR%%/anki/_backend/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.pyc +%%DATADIR%%/anki/_backend/__pycache__/backend_pb2.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc +%%DATADIR%%/anki/_backend/__pycache__/backend_pb2.cpython-%%PYTHON_SUFFIX%%.pyc +%%DATADIR%%/anki/_backend/__pycache__/fluent_pb2.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc +%%DATADIR%%/anki/_backend/__pycache__/fluent_pb2.cpython-%%PYTHON_SUFFIX%%.pyc +%%DATADIR%%/anki/_backend/__pycache__/generated.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc +%%DATADIR%%/anki/_backend/__pycache__/generated.cpython-%%PYTHON_SUFFIX%%.pyc +%%DATADIR%%/anki/_backend/backend_pb2.py +%%DATADIR%%/anki/_backend/backend_pb2.pyi +%%DATADIR%%/anki/_backend/fluent_pb2.py +%%DATADIR%%/anki/_backend/fluent_pb2.pyi +%%DATADIR%%/anki/_backend/generated.py +%%DATADIR%%/anki/_backend/rsbridge.pyi +%%DATADIR%%/anki/_backend/rsbridge.so %%DATADIR%%/anki/buildinfo.py +%%DATADIR%%/anki/buildinfo.txt %%DATADIR%%/anki/cards.py %%DATADIR%%/anki/collection.py %%DATADIR%%/anki/config.py @@ -86,9 +97,8 @@ man/man1/anki.1.gz %%DATADIR%%/anki/errors.py %%DATADIR%%/anki/exporting.py %%DATADIR%%/anki/find.py -%%DATADIR%%/anki/fluent_pb2.py -%%DATADIR%%/anki/fluent_pb2.pyi %%DATADIR%%/anki/hooks.py +%%DATADIR%%/anki/hooks_gen.py %%DATADIR%%/anki/httpclient.py %%DATADIR%%/anki/importing/__init__.py %%DATADIR%%/anki/importing/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc @@ -124,8 +134,8 @@ man/man1/anki.1.gz %%DATADIR%%/anki/notes.py %%DATADIR%%/anki/py.typed %%DATADIR%%/anki/rsbackend.py -%%DATADIR%%/anki/rsbackend_gen.py %%DATADIR%%/anki/sched.py +%%DATADIR%%/anki/scheduler.py %%DATADIR%%/anki/schedv2.py %%DATADIR%%/anki/sound.py %%DATADIR%%/anki/stats.py @@ -133,12 +143,16 @@ man/man1/anki.1.gz %%DATADIR%%/anki/stdmodels.py %%DATADIR%%/anki/storage.py %%DATADIR%%/anki/sync.py +%%DATADIR%%/anki/syncserver/__init__.py +%%DATADIR%%/anki/syncserver/__main__.py +%%DATADIR%%/anki/syncserver/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc +%%DATADIR%%/anki/syncserver/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.pyc +%%DATADIR%%/anki/syncserver/__pycache__/__main__.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc +%%DATADIR%%/anki/syncserver/__pycache__/__main__.cpython-%%PYTHON_SUFFIX%%.pyc %%DATADIR%%/anki/tags.py %%DATADIR%%/anki/template.py -%%DATADIR%%/anki/template_legacy.py %%DATADIR%%/anki/types.py %%DATADIR%%/anki/utils.py -%%DATADIR%%/ankirspy%%_PY_SONAME%%.so %%DATADIR%%/aqt/__init__.py %%DATADIR%%/aqt/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc %%DATADIR%%/aqt/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.pyc @@ -150,8 +164,6 @@ man/man1/anki.1.gz %%DATADIR%%/aqt/__pycache__/addons.cpython-%%PYTHON_SUFFIX%%.pyc %%DATADIR%%/aqt/__pycache__/browser.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc %%DATADIR%%/aqt/__pycache__/browser.cpython-%%PYTHON_SUFFIX%%.pyc -%%DATADIR%%/aqt/__pycache__/buildinfo.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc -%%DATADIR%%/aqt/__pycache__/buildinfo.cpython-%%PYTHON_SUFFIX%%.pyc %%DATADIR%%/aqt/__pycache__/clayout.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc %%DATADIR%%/aqt/__pycache__/clayout.cpython-%%PYTHON_SUFFIX%%.pyc %%DATADIR%%/aqt/__pycache__/colors.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc @@ -182,6 +194,8 @@ man/man1/anki.1.gz %%DATADIR%%/aqt/__pycache__/fields.cpython-%%PYTHON_SUFFIX%%.pyc %%DATADIR%%/aqt/__pycache__/gui_hooks.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc %%DATADIR%%/aqt/__pycache__/gui_hooks.cpython-%%PYTHON_SUFFIX%%.pyc +%%DATADIR%%/aqt/__pycache__/hooks_gen.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc +%%DATADIR%%/aqt/__pycache__/hooks_gen.cpython-%%PYTHON_SUFFIX%%.pyc %%DATADIR%%/aqt/__pycache__/importing.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc %%DATADIR%%/aqt/__pycache__/importing.cpython-%%PYTHON_SUFFIX%%.pyc %%DATADIR%%/aqt/__pycache__/legacy.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc @@ -204,6 +218,8 @@ man/man1/anki.1.gz %%DATADIR%%/aqt/__pycache__/overview.cpython-%%PYTHON_SUFFIX%%.pyc %%DATADIR%%/aqt/__pycache__/pinnedmodules.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc %%DATADIR%%/aqt/__pycache__/pinnedmodules.cpython-%%PYTHON_SUFFIX%%.pyc +%%DATADIR%%/aqt/__pycache__/platform.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc +%%DATADIR%%/aqt/__pycache__/platform.cpython-%%PYTHON_SUFFIX%%.pyc %%DATADIR%%/aqt/__pycache__/preferences.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc %%DATADIR%%/aqt/__pycache__/preferences.cpython-%%PYTHON_SUFFIX%%.pyc %%DATADIR%%/aqt/__pycache__/previewer.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc @@ -216,8 +232,12 @@ man/man1/anki.1.gz %%DATADIR%%/aqt/__pycache__/qt.cpython-%%PYTHON_SUFFIX%%.pyc %%DATADIR%%/aqt/__pycache__/reviewer.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc %%DATADIR%%/aqt/__pycache__/reviewer.cpython-%%PYTHON_SUFFIX%%.pyc +%%DATADIR%%/aqt/__pycache__/scheduling.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc +%%DATADIR%%/aqt/__pycache__/scheduling.cpython-%%PYTHON_SUFFIX%%.pyc %%DATADIR%%/aqt/__pycache__/schema_change_tracker.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc %%DATADIR%%/aqt/__pycache__/schema_change_tracker.cpython-%%PYTHON_SUFFIX%%.pyc +%%DATADIR%%/aqt/__pycache__/sidebar.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc +%%DATADIR%%/aqt/__pycache__/sidebar.cpython-%%PYTHON_SUFFIX%%.pyc %%DATADIR%%/aqt/__pycache__/sound.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc %%DATADIR%%/aqt/__pycache__/sound.cpython-%%PYTHON_SUFFIX%%.pyc %%DATADIR%%/aqt/__pycache__/stats.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc @@ -250,10 +270,112 @@ man/man1/anki.1.gz %%DATADIR%%/aqt/addcards.py %%DATADIR%%/aqt/addons.py %%DATADIR%%/aqt/browser.py -%%DATADIR%%/aqt/buildinfo.py %%DATADIR%%/aqt/clayout.py %%DATADIR%%/aqt/colors.py %%DATADIR%%/aqt/customstudy.py +%%DATADIR%%/aqt/data/web/css/core.css +%%DATADIR%%/aqt/data/web/css/deckbrowser.css +%%DATADIR%%/aqt/data/web/css/editable.css +%%DATADIR%%/aqt/data/web/css/editor.css +%%DATADIR%%/aqt/data/web/css/overview.css +%%DATADIR%%/aqt/data/web/css/reviewer-bottom.css +%%DATADIR%%/aqt/data/web/css/reviewer.css +%%DATADIR%%/aqt/data/web/css/toolbar-bottom.css +%%DATADIR%%/aqt/data/web/css/toolbar.css +%%DATADIR%%/aqt/data/web/css/webview.css +%%DATADIR%%/aqt/data/web/imgs/anki-logo-thin.png +%%DATADIR%%/aqt/data/web/imgs/gears.svg +%%DATADIR%%/aqt/data/web/imgs/media-record.png +%%DATADIR%%/aqt/data/web/imgs/more.png +%%DATADIR%%/aqt/data/web/imgs/paperclip.png +%%DATADIR%%/aqt/data/web/imgs/refresh.svg +%%DATADIR%%/aqt/data/web/imgs/text_bold.png +%%DATADIR%%/aqt/data/web/imgs/text_clear.png +%%DATADIR%%/aqt/data/web/imgs/text_cloze.png +%%DATADIR%%/aqt/data/web/imgs/text_italic.png +%%DATADIR%%/aqt/data/web/imgs/text_sub.png +%%DATADIR%%/aqt/data/web/imgs/text_super.png +%%DATADIR%%/aqt/data/web/imgs/text_under.png +%%DATADIR%%/aqt/data/web/js/deckbrowser.js +%%DATADIR%%/aqt/data/web/js/editor.js +%%DATADIR%%/aqt/data/web/js/mathjax.js +%%DATADIR%%/aqt/data/web/js/overview.js +%%DATADIR%%/aqt/data/web/js/reviewer-bottom.js +%%DATADIR%%/aqt/data/web/js/reviewer.js +%%DATADIR%%/aqt/data/web/js/toolbar.js +%%DATADIR%%/aqt/data/web/js/vendor/css_browser_selector.min.js +%%DATADIR%%/aqt/data/web/js/vendor/jquery-ui.min.js +%%DATADIR%%/aqt/data/web/js/vendor/jquery.min.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/a11y/assistive-mml.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/a11y/complexity.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/a11y/explorer.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/a11y/semantic-enrich.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/input/tex/extensions/action.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/input/tex/extensions/all-packages.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/input/tex/extensions/ams.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/input/tex/extensions/amscd.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/input/tex/extensions/autoload.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/input/tex/extensions/bbox.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/input/tex/extensions/boldsymbol.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/input/tex/extensions/braket.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/input/tex/extensions/bussproofs.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/input/tex/extensions/cancel.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/input/tex/extensions/color.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/input/tex/extensions/colorv2.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/input/tex/extensions/configmacros.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/input/tex/extensions/enclose.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/input/tex/extensions/extpfeil.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/input/tex/extensions/html.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/input/tex/extensions/mhchem.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/input/tex/extensions/newcommand.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/input/tex/extensions/noerrors.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/input/tex/extensions/noundefined.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/input/tex/extensions/physics.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/input/tex/extensions/require.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/input/tex/extensions/tagformat.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/input/tex/extensions/textmacros.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/input/tex/extensions/unicode.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/input/tex/extensions/verb.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_AMS-Regular.woff +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Bold.woff +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Regular.woff +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Bold.woff +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Regular.woff +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Bold.woff +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Italic.woff +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Regular.woff +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-BoldItalic.woff +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Italic.woff +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Regular.woff +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Bold.woff +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Italic.woff +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Regular.woff +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Script-Regular.woff +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Size1-Regular.woff +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Size2-Regular.woff +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Size3-Regular.woff +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Size4-Regular.woff +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Typewriter-Regular.woff +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Bold.woff +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Regular.woff +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Zero.woff +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/sre/mathmaps/de.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/sre/mathmaps/en.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/sre/mathmaps/es.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/sre/mathmaps/fr.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/sre/mathmaps/nemeth.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/sre/sre-node.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/sre/sre_browser.js +%%DATADIR%%/aqt/data/web/js/vendor/mathjax/tex-chtml.js +%%DATADIR%%/aqt/data/web/js/vendor/plot.js +%%DATADIR%%/aqt/data/web/js/vendor/protobuf.min.js +%%DATADIR%%/aqt/data/web/js/vendor/protobuf.min.js.map +%%DATADIR%%/aqt/data/web/js/webview.js +%%DATADIR%%/aqt/data/web/pages/congrats.html +%%DATADIR%%/aqt/data/web/pages/congrats.js +%%DATADIR%%/aqt/data/web/pages/graphs.css +%%DATADIR%%/aqt/data/web/pages/graphs.html +%%DATADIR%%/aqt/data/web/pages/graphs.js %%DATADIR%%/aqt/dbcheck.py %%DATADIR%%/aqt/deckbrowser.py %%DATADIR%%/aqt/deckchooser.py @@ -338,8 +460,6 @@ man/man1/anki.1.gz %%DATADIR%%/aqt/forms/__pycache__/progress.cpython-%%PYTHON_SUFFIX%%.pyc %%DATADIR%%/aqt/forms/__pycache__/reposition.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc %%DATADIR%%/aqt/forms/__pycache__/reposition.cpython-%%PYTHON_SUFFIX%%.pyc -%%DATADIR%%/aqt/forms/__pycache__/reschedule.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc -%%DATADIR%%/aqt/forms/__pycache__/reschedule.cpython-%%PYTHON_SUFFIX%%.pyc %%DATADIR%%/aqt/forms/__pycache__/setgroup.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc %%DATADIR%%/aqt/forms/__pycache__/setgroup.cpython-%%PYTHON_SUFFIX%%.pyc %%DATADIR%%/aqt/forms/__pycache__/setlang.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc @@ -389,7 +509,6 @@ man/man1/anki.1.gz %%DATADIR%%/aqt/forms/profiles.py %%DATADIR%%/aqt/forms/progress.py %%DATADIR%%/aqt/forms/reposition.py -%%DATADIR%%/aqt/forms/reschedule.py %%DATADIR%%/aqt/forms/setgroup.py %%DATADIR%%/aqt/forms/setlang.py %%DATADIR%%/aqt/forms/stats.py @@ -398,6 +517,7 @@ man/man1/anki.1.gz %%DATADIR%%/aqt/forms/taglimit.py %%DATADIR%%/aqt/forms/template.py %%DATADIR%%/aqt/gui_hooks.py +%%DATADIR%%/aqt/hooks_gen.py %%DATADIR%%/aqt/importing.py %%DATADIR%%/aqt/legacy.py %%DATADIR%%/aqt/main.py @@ -409,6 +529,7 @@ man/man1/anki.1.gz %%DATADIR%%/aqt/mpv.py %%DATADIR%%/aqt/overview.py %%DATADIR%%/aqt/pinnedmodules.py +%%DATADIR%%/aqt/platform.py %%DATADIR%%/aqt/preferences.py %%DATADIR%%/aqt/previewer.py %%DATADIR%%/aqt/profiles.py @@ -416,7 +537,9 @@ man/man1/anki.1.gz %%DATADIR%%/aqt/py.typed %%DATADIR%%/aqt/qt.py %%DATADIR%%/aqt/reviewer.py +%%DATADIR%%/aqt/scheduling.py %%DATADIR%%/aqt/schema_change_tracker.py +%%DATADIR%%/aqt/sidebar.py %%DATADIR%%/aqt/sound.py %%DATADIR%%/aqt/stats.py %%DATADIR%%/aqt/studydeck.py @@ -431,392 +554,6 @@ man/man1/anki.1.gz %%DATADIR%%/aqt/utils.py %%DATADIR%%/aqt/webview.py %%DATADIR%%/aqt/winpaths.py -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/af/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/ar/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/bg/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/ca/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/cs/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/da/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/de/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/el/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/en-GB/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/eo/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/es/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/et/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/eu/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/fa/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/fi/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/fr/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/ga-IE/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/gl/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/he/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/hi-IN/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/hr/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/hu/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/hy-AM/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/it/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/ja/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/jbo/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/kab/LC_MESSAGES/anki.mo -@dir %%NLS%%%%DATADIR%%/aqt_data/locale/gettext/km/LC_MESSAGES -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/ko/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/la/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/mn/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/mr/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/ms/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/nb-NO/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/nl/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/nn-NO/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/oc/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/or/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/pl/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/pt-BR/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/pt-PT/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/ro/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/ru/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/sk/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/sl/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/sr/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/sv-SE/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/th/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/tr/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/uk/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/vi/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/zh-CN/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/gettext/zh-TW/LC_MESSAGES/anki.mo -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qscintilla_cs.qm -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qscintilla_de.qm -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qscintilla_es.qm -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qscintilla_fr.qm -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qscintilla_pt_br.qm -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/am.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/ar.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/bg.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/bn.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/ca.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/cs.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/da.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/de.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/el.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/en-GB.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/en-US.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/es-419.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/es.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/et.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/fa.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/fi.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/fil.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/fr.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/gu.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/he.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/hi.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/hr.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/hu.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/id.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/it.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/ja.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/kn.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/ko.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/lt.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/lv.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/ml.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/mr.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/ms.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/nb.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/nl.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/pl.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/pt-BR.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/pt-PT.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/ro.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/ru.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/sk.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/sl.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/sr.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/sv.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/sw.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/ta.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/te.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/th.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/tr.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/uk.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/vi.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/zh-CN.pak -%%NLS%%%%DATADIR%%/aqt_data/locale/qt/qtwebengine_locales/zh-TW.pak -%%DATADIR%%/aqt_data/web/browsersel.js -%%DATADIR%%/aqt_data/web/deckbrowser.css -%%DATADIR%%/aqt_data/web/deckbrowser.js -%%DATADIR%%/aqt_data/web/editor.css -%%DATADIR%%/aqt_data/web/editor.js -%%DATADIR%%/aqt_data/web/graphs.html -%%DATADIR%%/aqt_data/web/graphs.js -%%DATADIR%%/aqt_data/web/imgs/anki-logo-thin.png -%%DATADIR%%/aqt_data/web/imgs/gears.svg -%%DATADIR%%/aqt_data/web/imgs/media-record.png -%%DATADIR%%/aqt_data/web/imgs/more.png -%%DATADIR%%/aqt_data/web/imgs/paperclip.png -%%DATADIR%%/aqt_data/web/imgs/refresh.svg -%%DATADIR%%/aqt_data/web/imgs/text_bold.png -%%DATADIR%%/aqt_data/web/imgs/text_clear.png -%%DATADIR%%/aqt_data/web/imgs/text_cloze.png -%%DATADIR%%/aqt_data/web/imgs/text_italic.png -%%DATADIR%%/aqt_data/web/imgs/text_sub.png -%%DATADIR%%/aqt_data/web/imgs/text_super.png -%%DATADIR%%/aqt_data/web/imgs/text_under.png -%%DATADIR%%/aqt_data/web/jquery-ui.js -%%DATADIR%%/aqt_data/web/jquery.js -%%DATADIR%%/aqt_data/web/mathjax/MathJax.js -%%DATADIR%%/aqt_data/web/mathjax/conf.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/FontWarnings.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/HTML-CSS/handle-floats.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/HelpDialog.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/MatchWebFonts.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/MathEvents.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/MathMenu.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/MathZoom.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/Safe.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/TeX/AMScd.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/TeX/AMSmath.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/TeX/AMSsymbols.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/TeX/HTML.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/TeX/action.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/TeX/autobold.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/TeX/autoload-all.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/TeX/bbox.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/TeX/begingroup.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/TeX/boldsymbol.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/TeX/cancel.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/TeX/color.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/TeX/enclose.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/TeX/extpfeil.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/TeX/mathchoice.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/TeX/mediawiki-texvc.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/TeX/mhchem.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/TeX/mhchem3/mhchem.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/TeX/newcommand.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/TeX/noErrors.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/TeX/noUndefined.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/TeX/unicode.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/TeX/verb.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/asciimath2jax.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/fast-preview.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/jsMath2jax.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/mhchem.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/mml2jax.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/tex2jax.js -%%DATADIR%%/aqt_data/web/mathjax/extensions/toMathML.js -%%DATADIR%%/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_AMS-Regular.woff -%%DATADIR%%/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Caligraphic-Bold.woff -%%DATADIR%%/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Caligraphic-Regular.woff -%%DATADIR%%/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Fraktur-Bold.woff -%%DATADIR%%/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Fraktur-Regular.woff -%%DATADIR%%/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Main-Bold.woff -%%DATADIR%%/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Main-Italic.woff -%%DATADIR%%/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Main-Regular.woff -%%DATADIR%%/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Math-BoldItalic.woff -%%DATADIR%%/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Math-Italic.woff -%%DATADIR%%/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Math-Regular.woff -%%DATADIR%%/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Bold.woff -%%DATADIR%%/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Italic.woff -%%DATADIR%%/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Regular.woff -%%DATADIR%%/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Script-Regular.woff -%%DATADIR%%/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Size1-Regular.woff -%%DATADIR%%/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Size2-Regular.woff -%%DATADIR%%/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Size3-Regular.woff -%%DATADIR%%/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Size4-Regular.woff -%%DATADIR%%/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Typewriter-Regular.woff -%%DATADIR%%/aqt_data/web/mathjax/jax/element/mml/jax.js -%%DATADIR%%/aqt_data/web/mathjax/jax/element/mml/optable/Arrows.js -%%DATADIR%%/aqt_data/web/mathjax/jax/element/mml/optable/BasicLatin.js -%%DATADIR%%/aqt_data/web/mathjax/jax/element/mml/optable/CombDiacritMarks.js -%%DATADIR%%/aqt_data/web/mathjax/jax/element/mml/optable/CombDiactForSymbols.js -%%DATADIR%%/aqt_data/web/mathjax/jax/element/mml/optable/Dingbats.js -%%DATADIR%%/aqt_data/web/mathjax/jax/element/mml/optable/GeneralPunctuation.js -%%DATADIR%%/aqt_data/web/mathjax/jax/element/mml/optable/GeometricShapes.js -%%DATADIR%%/aqt_data/web/mathjax/jax/element/mml/optable/GreekAndCoptic.js -%%DATADIR%%/aqt_data/web/mathjax/jax/element/mml/optable/Latin1Supplement.js -%%DATADIR%%/aqt_data/web/mathjax/jax/element/mml/optable/LetterlikeSymbols.js -%%DATADIR%%/aqt_data/web/mathjax/jax/element/mml/optable/MathOperators.js -%%DATADIR%%/aqt_data/web/mathjax/jax/element/mml/optable/MiscMathSymbolsA.js -%%DATADIR%%/aqt_data/web/mathjax/jax/element/mml/optable/MiscMathSymbolsB.js -%%DATADIR%%/aqt_data/web/mathjax/jax/element/mml/optable/MiscSymbolsAndArrows.js -%%DATADIR%%/aqt_data/web/mathjax/jax/element/mml/optable/MiscTechnical.js -%%DATADIR%%/aqt_data/web/mathjax/jax/element/mml/optable/SpacingModLetters.js -%%DATADIR%%/aqt_data/web/mathjax/jax/element/mml/optable/SuppMathOperators.js -%%DATADIR%%/aqt_data/web/mathjax/jax/element/mml/optable/SupplementalArrowsA.js -%%DATADIR%%/aqt_data/web/mathjax/jax/element/mml/optable/SupplementalArrowsB.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/AsciiMath/config.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/AsciiMath/jax.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/MathML/config.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/MathML/entities/a.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/MathML/entities/b.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/MathML/entities/c.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/MathML/entities/d.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/MathML/entities/e.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/MathML/entities/f.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/MathML/entities/fr.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/MathML/entities/g.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/MathML/entities/h.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/MathML/entities/i.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/MathML/entities/j.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/MathML/entities/k.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/MathML/entities/l.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/MathML/entities/m.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/MathML/entities/n.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/MathML/entities/o.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/MathML/entities/opf.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/MathML/entities/p.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/MathML/entities/q.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/MathML/entities/r.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/MathML/entities/s.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/MathML/entities/scr.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/MathML/entities/t.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/MathML/entities/u.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/MathML/entities/v.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/MathML/entities/w.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/MathML/entities/x.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/MathML/entities/y.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/MathML/entities/z.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/MathML/jax.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/TeX/config.js -%%DATADIR%%/aqt_data/web/mathjax/jax/input/TeX/jax.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/CommonHTML/autoload/annotation-xml.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/CommonHTML/autoload/maction.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/CommonHTML/autoload/menclose.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/CommonHTML/autoload/mglyph.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/CommonHTML/autoload/mmultiscripts.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/CommonHTML/autoload/ms.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/CommonHTML/autoload/mtable.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/CommonHTML/autoload/multiline.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/CommonHTML/config.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/CommonHTML/fonts/TeX/AMS-Regular.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/CommonHTML/fonts/TeX/Caligraphic-Bold.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/CommonHTML/fonts/TeX/Fraktur-Bold.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/CommonHTML/fonts/TeX/Fraktur-Regular.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/CommonHTML/fonts/TeX/Main-Bold.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/CommonHTML/fonts/TeX/Math-BoldItalic.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/CommonHTML/fonts/TeX/SansSerif-Bold.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/CommonHTML/fonts/TeX/SansSerif-Italic.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/CommonHTML/fonts/TeX/SansSerif-Regular.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/CommonHTML/fonts/TeX/Script-Regular.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/CommonHTML/fonts/TeX/Typewriter-Regular.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/CommonHTML/fonts/TeX/fontdata-extra.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/CommonHTML/fonts/TeX/fontdata.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/CommonHTML/jax.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/autoload/annotation-xml.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/autoload/maction.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/autoload/menclose.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/autoload/mglyph.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/autoload/mmultiscripts.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/autoload/ms.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/autoload/mtable.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/autoload/multiline.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/config.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Arrows.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/BBBold.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/BoxDrawing.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/CombDiacritMarks.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Dingbats.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/EnclosedAlphanum.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/GeneralPunctuation.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/GeometricShapes.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/GreekAndCoptic.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Latin1Supplement.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/LatinExtendedA.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/LetterlikeSymbols.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Main.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MathOperators.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MiscMathSymbolsB.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MiscSymbols.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MiscTechnical.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/PUA.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/SpacingModLetters.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/SuppMathOperators.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Caligraphic/Bold/Main.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Caligraphic/Regular/Main.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/BasicLatin.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/Main.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/Other.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/PUA.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/BasicLatin.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/Main.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/Other.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/PUA.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Greek/Bold/Main.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Greek/BoldItalic/Main.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Greek/Italic/Main.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Greek/Regular/Main.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/Arrows.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/CombDiacritMarks.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/CombDiactForSymbols.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/GeneralPunctuation.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/GeometricShapes.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/Latin1Supplement.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/LatinExtendedA.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/LatinExtendedB.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/LetterlikeSymbols.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/Main.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MathOperators.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MiscMathSymbolsA.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MiscSymbols.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MiscTechnical.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/SpacingModLetters.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/SuppMathOperators.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/SupplementalArrowsA.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Italic/CombDiacritMarks.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Italic/GeneralPunctuation.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Italic/Latin1Supplement.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Italic/LetterlikeSymbols.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Italic/Main.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Regular/CombDiacritMarks.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Regular/GeometricShapes.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Regular/Main.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Regular/MiscSymbols.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Regular/SpacingModLetters.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Math/BoldItalic/Main.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Math/Italic/Main.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Bold/BasicLatin.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Bold/CombDiacritMarks.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Bold/Main.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Bold/Other.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Italic/BasicLatin.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Italic/CombDiacritMarks.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Italic/Main.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Italic/Other.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Regular/BasicLatin.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Regular/CombDiacritMarks.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Regular/Main.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Regular/Other.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Script/Regular/BasicLatin.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Script/Regular/Main.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Script/Regular/Other.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Size1/Regular/Main.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Size2/Regular/Main.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Size3/Regular/Main.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Size4/Regular/Main.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/BasicLatin.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/CombDiacritMarks.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/Main.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/Other.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/WinChrome/Regular/Main.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/WinIE6/Regular/AMS.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/WinIE6/Regular/Bold.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/WinIE6/Regular/Main.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/fontdata-extra.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/fontdata.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/imageFonts.js -%%DATADIR%%/aqt_data/web/mathjax/jax/output/HTML-CSS/jax.js -%%DATADIR%%/aqt_data/web/overview.css -%%DATADIR%%/aqt_data/web/overview.js -%%DATADIR%%/aqt_data/web/plot.js -%%DATADIR%%/aqt_data/web/reviewer-bottom.css -%%DATADIR%%/aqt_data/web/reviewer-bottom.js -%%DATADIR%%/aqt_data/web/reviewer.css -%%DATADIR%%/aqt_data/web/reviewer.js -%%DATADIR%%/aqt_data/web/toolbar-bottom.css -%%DATADIR%%/aqt_data/web/toolbar.css -%%DATADIR%%/aqt_data/web/toolbar.js -%%DATADIR%%/aqt_data/web/webview.css -%%DATADIR%%/aqt_data/web/webview.js share/applications/anki.desktop share/pixmaps/anki.png share/pixmaps/anki.xpm |