You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by pa...@apache.org on 2026/02/25 03:00:24 UTC
(arrow-nanoarrow) branch asf-site updated: update docs to 0.8.0
This is an automated email from the ASF dual-hosted git repository.
paleolimbot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/arrow-nanoarrow.git
The following commit(s) were added to refs/heads/asf-site by this push:
new f6eef612 update docs to 0.8.0
f6eef612 is described below
commit f6eef612709b64fb9ffe418611730aa76c643166
Author: Dewey Dunnington <de...@wherobots.com>
AuthorDate: Tue Feb 24 21:00:12 2026 -0600
update docs to 0.8.0
---
{latest => 0.8.0}/.buildinfo | 2 +-
0.8.0/.doctrees/environment.pickle | Bin 0 -> 1149646 bytes
.../.doctrees/getting-started/cpp.doctree | Bin 62111 -> 61519 bytes
0.8.0/.doctrees/getting-started/index.doctree | Bin 0 -> 5621 bytes
0.8.0/.doctrees/getting-started/python.doctree | Bin 0 -> 36542 bytes
0.8.0/.doctrees/getting-started/r.doctree | Bin 0 -> 27376 bytes
0.8.0/.doctrees/index.doctree | Bin 0 -> 30385 bytes
0.8.0/.doctrees/reference/c.doctree | Bin 0 -> 1002857 bytes
0.8.0/.doctrees/reference/cpp.doctree | Bin 0 -> 137471 bytes
0.8.0/.doctrees/reference/device.doctree | Bin 0 -> 220289 bytes
0.8.0/.doctrees/reference/index.doctree | Bin 0 -> 5843 bytes
0.8.0/.doctrees/reference/ipc.doctree | Bin 0 -> 293763 bytes
0.8.0/.doctrees/reference/python/advanced.doctree | Bin 0 -> 98171 bytes
.../reference/python/array-stream.doctree | Bin 0 -> 43620 bytes
0.8.0/.doctrees/reference/python/array.doctree | Bin 0 -> 87782 bytes
0.8.0/.doctrees/reference/python/index.doctree | Bin 0 -> 6919 bytes
0.8.0/.doctrees/reference/python/schema.doctree | Bin 0 -> 321638 bytes
0.8.0/.doctrees/reference/r.doctree | Bin 0 -> 5573 bytes
0.8.0/.doctrees/reference/testing.doctree | Bin 0 -> 155991 bytes
0.8.0/.doctrees/roadmap.doctree | Bin 0 -> 24007 bytes
0.8.0/_sources/getting-started/cpp.rst.txt | 542 +
0.8.0/_sources/getting-started/index.rst.txt | 26 +
0.8.0/_sources/getting-started/python.rst.txt | 426 +
0.8.0/_sources/getting-started/r.rst.txt | 286 +
0.8.0/_sources/index.rst.txt | 28 +
0.8.0/_sources/reference/c.rst.txt | 78 +
0.8.0/_sources/reference/cpp.rst.txt | 50 +
0.8.0/_sources/reference/device.rst.txt | 41 +
0.8.0/_sources/reference/index.rst.txt | 30 +
0.8.0/_sources/reference/ipc.rst.txt | 33 +
0.8.0/_sources/reference/python/advanced.rst.txt | 37 +
.../_sources/reference/python/array-stream.rst.txt | 22 +
0.8.0/_sources/reference/python/array.rst.txt | 22 +
0.8.0/_sources/reference/python/index.rst.txt | 29 +
0.8.0/_sources/reference/python/schema.rst.txt | 22 +
0.8.0/_sources/reference/r.rst.txt | 21 +
0.8.0/_sources/reference/testing.rst.txt | 27 +
0.8.0/_sources/roadmap.rst.txt | 103 +
0.8.0/_static/base-stemmer.js | 476 +
0.8.0/_static/basic.css | 906 ++
{latest => 0.8.0}/_static/doctools.js | 11 +-
0.8.0/_static/documentation_options.js | 13 +
0.8.0/_static/english-stemmer.js | 1066 ++
0.8.0/_static/file.png | Bin 0 -> 286 bytes
0.8.0/_static/language_data.js | 13 +
0.8.0/_static/minus.png | Bin 0 -> 90 bytes
0.8.0/_static/plus.png | Bin 0 -> 90 bytes
0.8.0/_static/pygments.css | 152 +
0.8.0/_static/scripts/bootstrap.js | 3 +
0.8.0/_static/scripts/bootstrap.js.LICENSE.txt | 5 +
0.8.0/_static/scripts/bootstrap.js.map | 1 +
0.8.0/_static/scripts/fontawesome.js | 3 +
0.8.0/_static/scripts/fontawesome.js.LICENSE.txt | 5 +
0.8.0/_static/scripts/fontawesome.js.map | 1 +
0.8.0/_static/scripts/pydata-sphinx-theme.js | 2 +
0.8.0/_static/scripts/pydata-sphinx-theme.js.map | 1 +
{latest => 0.8.0}/_static/searchtools.js | 172 +-
{latest => 0.8.0}/_static/sphinx_highlight.js | 67 +-
0.8.0/_static/styles/pydata-sphinx-theme.css | 32 +
0.8.0/_static/styles/pydata-sphinx-theme.css.map | 1 +
0.8.0/_static/styles/theme.css | 2 +
.../vendor/fontawesome/webfonts/fa-brands-400.ttf | Bin 0 -> 209128 bytes
.../fontawesome/webfonts/fa-brands-400.woff2 | Bin 0 -> 117852 bytes
.../vendor/fontawesome/webfonts/fa-regular-400.ttf | Bin 0 -> 67860 bytes
.../fontawesome/webfonts/fa-regular-400.woff2 | Bin 0 -> 25392 bytes
.../vendor/fontawesome/webfonts/fa-solid-900.ttf | Bin 0 -> 420332 bytes
.../vendor/fontawesome/webfonts/fa-solid-900.woff2 | Bin 0 -> 156400 bytes
0.8.0/_static/webpack-macros.html | 24 +
{latest => 0.8.0}/genindex.html | 30 +-
{latest => 0.8.0}/getting-started/cpp.html | 10 +-
{latest => 0.8.0}/getting-started/index.html | 10 +-
{latest => 0.8.0}/getting-started/python.html | 10 +-
{latest => 0.8.0}/getting-started/r.html | 10 +-
{latest => 0.8.0}/index.html | 12 +-
0.8.0/objects.inv | Bin 0 -> 22193 bytes
{latest => 0.8.0}/py-modindex.html | 10 +-
{latest => 0.8.0}/r/404.html | 4 +-
0.8.0/r/404.md | 3 +
{latest => 0.8.0}/r/LICENSE.html | 4 +-
0.8.0/r/LICENSE.md | 206 +
{latest => 0.8.0}/r/authors.html | 12 +-
0.8.0/r/authors.md | 28 +
.../r/deps/bootstrap-5.3.1/bootstrap.bundle.min.js | 7 +
.../bootstrap-5.3.1/bootstrap.bundle.min.js.map | 1 +
.../r/deps/bootstrap-5.3.1/bootstrap.min.css | 2 +-
.../deps/bootstrap-toc-1.0.1/bootstrap-toc.min.js | 5 +
0.8.0/r/deps/clipboard.js-2.0.11/clipboard.min.js | 7 +
0.8.0/r/deps/data-deps.txt | 13 +
0.8.0/r/deps/font-awesome-6.5.2/css/all.css | 8028 ++++++++++++++
0.8.0/r/deps/font-awesome-6.5.2/css/all.min.css | 9 +
0.8.0/r/deps/font-awesome-6.5.2/css/v4-shims.css | 2194 ++++
.../r/deps/font-awesome-6.5.2/css/v4-shims.min.css | 6 +
.../font-awesome-6.5.2/webfonts/fa-brands-400.ttf | Bin 0 -> 209128 bytes
.../webfonts/fa-brands-400.woff2 | Bin 0 -> 117852 bytes
.../font-awesome-6.5.2/webfonts/fa-regular-400.ttf | Bin 0 -> 67860 bytes
.../webfonts/fa-regular-400.woff2 | Bin 0 -> 25392 bytes
.../font-awesome-6.5.2/webfonts/fa-solid-900.ttf | Bin 0 -> 420332 bytes
.../font-awesome-6.5.2/webfonts/fa-solid-900.woff2 | Bin 0 -> 156400 bytes
.../webfonts/fa-v4compatibility.ttf | Bin 0 -> 10832 bytes
.../webfonts/fa-v4compatibility.woff2 | Bin 0 -> 4792 bytes
0.8.0/r/deps/headroom-0.11.0/headroom.min.js | 7 +
.../r/deps/headroom-0.11.0/jQuery.headroom.min.js | 7 +
0.8.0/r/deps/jquery-3.6.0/jquery-3.6.0.js | 10881 +++++++++++++++++++
0.8.0/r/deps/jquery-3.6.0/jquery-3.6.0.min.js | 2 +
0.8.0/r/deps/jquery-3.6.0/jquery-3.6.0.min.map | 1 +
.../r/deps/search-1.0.0/autocomplete.jquery.min.js | 7 +
0.8.0/r/deps/search-1.0.0/fuse.min.js | 9 +
0.8.0/r/deps/search-1.0.0/mark.min.js | 7 +
{latest => 0.8.0}/r/index.html | 4 +-
0.8.0/r/index.md | 258 +
{latest => 0.8.0}/r/katex-auto.js | 4 +-
{latest => 0.8.0}/r/lightswitch.js | 4 +-
0.8.0/r/link.svg | 12 +
0.8.0/r/llms.txt | 360 +
{latest => 0.8.0}/r/news/index.html | 17 +-
0.8.0/r/news/index.md | 174 +
0.8.0/r/pkgdown.js | 162 +
0.8.0/r/pkgdown.yml | 5 +
.../r/reference/array_stream_set_finalizer.html | 4 +-
0.8.0/r/reference/array_stream_set_finalizer.md | 44 +
.../r/reference/as_nanoarrow_array.html | 4 +-
0.8.0/r/reference/as_nanoarrow_array.md | 80 +
.../r/reference/as_nanoarrow_array_stream.html | 4 +-
0.8.0/r/reference/as_nanoarrow_array_stream.md | 88 +
.../r/reference/as_nanoarrow_buffer.html | 4 +-
0.8.0/r/reference/as_nanoarrow_buffer.md | 44 +
.../r/reference/as_nanoarrow_schema.html | 4 +-
0.8.0/r/reference/as_nanoarrow_schema.md | 81 +
.../as_nanoarrow_schema.python.builtin.object.html | 141 +
.../as_nanoarrow_schema.python.builtin.object.md | 79 +
.../r/reference/as_nanoarrow_vctr.html | 4 +-
0.8.0/r/reference/as_nanoarrow_vctr.md | 77 +
.../r/reference/basic_array_stream.html | 4 +-
0.8.0/r/reference/basic_array_stream.md | 46 +
{latest => 0.8.0}/r/reference/convert_array.html | 6 +-
0.8.0/r/reference/convert_array.md | 128 +
.../r/reference/convert_array_stream.html | 4 +-
0.8.0/r/reference/convert_array_stream.md | 94 +
.../r/reference/example_ipc_stream.html | 4 +-
0.8.0/r/reference/example_ipc_stream.md | 30 +
{latest => 0.8.0}/r/reference/index.html | 74 +-
0.8.0/r/reference/index.md | 100 +
.../r/reference/infer_nanoarrow_ptype.html | 6 +-
0.8.0/r/reference/infer_nanoarrow_ptype.md | 69 +
.../reference/infer_nanoarrow_ptype_extension.html | 4 +-
.../r/reference/infer_nanoarrow_ptype_extension.md | 52 +
{latest => 0.8.0}/r/reference/na_type.html | 4 +-
0.8.0/r/reference/na_type.md | 240 +
{latest => 0.8.0}/r/reference/na_vctrs.html | 4 +-
0.8.0/r/reference/na_vctrs.md | 45 +
.../r/reference/nanoarrow-package.html | 4 +-
0.8.0/r/reference/nanoarrow-package.md | 31 +
.../r/reference/nanoarrow_array_init.html | 4 +-
0.8.0/r/reference/nanoarrow_array_init.md | 86 +
.../r/reference/nanoarrow_buffer_init.html | 4 +-
0.8.0/r/reference/nanoarrow_buffer_init.md | 49 +
.../r/reference/nanoarrow_extension_array.html | 4 +-
0.8.0/r/reference/nanoarrow_extension_array.md | 49 +
.../r/reference/nanoarrow_extension_spec.html | 4 +-
0.8.0/r/reference/nanoarrow_extension_spec.md | 57 +
.../r/reference/nanoarrow_pointer_is_valid.html | 4 +-
0.8.0/r/reference/nanoarrow_pointer_is_valid.md | 109 +
.../r/reference/nanoarrow_version.html | 6 +-
0.8.0/r/reference/nanoarrow_version.md | 31 +
{latest => 0.8.0}/r/reference/read_nanoarrow.html | 4 +-
0.8.0/r/reference/read_nanoarrow.md | 69 +
0.8.0/r/search.json | 1 +
{latest => 0.8.0}/r/sitemap.xml | 1 +
{latest => 0.8.0}/reference/c.html | 24 +-
{latest => 0.8.0}/reference/cpp.html | 10 +-
{latest => 0.8.0}/reference/device.html | 10 +-
{latest => 0.8.0}/reference/index.html | 10 +-
{latest => 0.8.0}/reference/ipc.html | 17 +-
{latest => 0.8.0}/reference/python/advanced.html | 26 +-
.../reference/python/array-stream.html | 20 +-
{latest => 0.8.0}/reference/python/array.html | 32 +-
{latest => 0.8.0}/reference/python/index.html | 12 +-
{latest => 0.8.0}/reference/python/schema.html | 382 +-
{latest => 0.8.0}/reference/r.html | 10 +-
{latest => 0.8.0}/reference/testing.html | 10 +-
{latest => 0.8.0}/roadmap.html | 10 +-
{latest => 0.8.0}/search.html | 10 +-
0.8.0/searchindex.js | 1 +
docs.tgz | Bin 0 -> 4054964 bytes
latest/.buildinfo | 2 +-
latest/.doctrees/environment.pickle | Bin 1162153 -> 1149646 bytes
latest/.doctrees/getting-started/cpp.doctree | Bin 62111 -> 61519 bytes
latest/.doctrees/getting-started/index.doctree | Bin 5650 -> 5621 bytes
latest/.doctrees/getting-started/python.doctree | Bin 37048 -> 36542 bytes
latest/.doctrees/getting-started/r.doctree | Bin 27686 -> 27376 bytes
latest/.doctrees/index.doctree | Bin 31064 -> 30385 bytes
latest/.doctrees/reference/c.doctree | Bin 1024262 -> 1002857 bytes
latest/.doctrees/reference/cpp.doctree | Bin 140890 -> 137471 bytes
latest/.doctrees/reference/device.doctree | Bin 226430 -> 220289 bytes
latest/.doctrees/reference/index.doctree | Bin 5872 -> 5843 bytes
latest/.doctrees/reference/ipc.doctree | Bin 299836 -> 293763 bytes
latest/.doctrees/reference/python/advanced.doctree | Bin 102599 -> 98171 bytes
.../reference/python/array-stream.doctree | Bin 45864 -> 43620 bytes
latest/.doctrees/reference/python/array.doctree | Bin 92221 -> 87782 bytes
latest/.doctrees/reference/python/index.doctree | Bin 7066 -> 6919 bytes
latest/.doctrees/reference/python/schema.doctree | Bin 314033 -> 321638 bytes
latest/.doctrees/reference/r.doctree | Bin 5587 -> 5573 bytes
latest/.doctrees/reference/testing.doctree | Bin 159780 -> 155991 bytes
latest/.doctrees/roadmap.doctree | Bin 24217 -> 24007 bytes
latest/_static/base-stemmer.js | 476 +
latest/_static/doctools.js | 11 +-
latest/_static/english-stemmer.js | 1066 ++
latest/_static/language_data.js | 193 +-
latest/_static/searchtools.js | 172 +-
latest/_static/sphinx_highlight.js | 67 +-
latest/genindex.html | 30 +-
latest/getting-started/cpp.html | 10 +-
latest/getting-started/index.html | 10 +-
latest/getting-started/python.html | 10 +-
latest/getting-started/r.html | 10 +-
latest/index.html | 12 +-
latest/objects.inv | Bin 22093 -> 22193 bytes
latest/py-modindex.html | 10 +-
latest/r/404.html | 4 +-
latest/r/404.md | 3 +
latest/r/LICENSE.html | 4 +-
latest/r/LICENSE.md | 206 +
latest/r/authors.html | 12 +-
latest/r/authors.md | 28 +
latest/r/deps/bootstrap-5.3.1/bootstrap.min.css | 2 +-
latest/r/index.html | 4 +-
latest/r/index.md | 258 +
latest/r/katex-auto.js | 4 +-
latest/r/lightswitch.js | 4 +-
latest/r/llms.txt | 360 +
latest/r/news/index.html | 17 +-
latest/r/news/index.md | 174 +
latest/r/pkgdown.js | 192 +-
latest/r/pkgdown.yml | 4 +-
latest/r/reference/array_stream_set_finalizer.html | 4 +-
latest/r/reference/array_stream_set_finalizer.md | 44 +
latest/r/reference/as_nanoarrow_array.html | 4 +-
latest/r/reference/as_nanoarrow_array.md | 80 +
latest/r/reference/as_nanoarrow_array_stream.html | 4 +-
latest/r/reference/as_nanoarrow_array_stream.md | 88 +
latest/r/reference/as_nanoarrow_buffer.html | 4 +-
latest/r/reference/as_nanoarrow_buffer.md | 44 +
latest/r/reference/as_nanoarrow_schema.html | 4 +-
latest/r/reference/as_nanoarrow_schema.md | 81 +
.../as_nanoarrow_schema.python.builtin.object.html | 141 +
.../as_nanoarrow_schema.python.builtin.object.md | 79 +
latest/r/reference/as_nanoarrow_vctr.html | 4 +-
latest/r/reference/as_nanoarrow_vctr.md | 77 +
latest/r/reference/basic_array_stream.html | 4 +-
latest/r/reference/basic_array_stream.md | 46 +
latest/r/reference/convert_array.html | 6 +-
latest/r/reference/convert_array.md | 128 +
latest/r/reference/convert_array_stream.html | 4 +-
latest/r/reference/convert_array_stream.md | 94 +
latest/r/reference/example_ipc_stream.html | 4 +-
latest/r/reference/example_ipc_stream.md | 30 +
latest/r/reference/index.html | 74 +-
latest/r/reference/index.md | 100 +
latest/r/reference/infer_nanoarrow_ptype.html | 6 +-
latest/r/reference/infer_nanoarrow_ptype.md | 69 +
.../reference/infer_nanoarrow_ptype_extension.html | 4 +-
.../r/reference/infer_nanoarrow_ptype_extension.md | 52 +
latest/r/reference/na_type.html | 4 +-
latest/r/reference/na_type.md | 240 +
latest/r/reference/na_vctrs.html | 4 +-
latest/r/reference/na_vctrs.md | 45 +
latest/r/reference/nanoarrow-package.html | 4 +-
latest/r/reference/nanoarrow-package.md | 31 +
latest/r/reference/nanoarrow_array_init.html | 4 +-
latest/r/reference/nanoarrow_array_init.md | 86 +
latest/r/reference/nanoarrow_buffer_init.html | 4 +-
latest/r/reference/nanoarrow_buffer_init.md | 49 +
latest/r/reference/nanoarrow_extension_array.html | 4 +-
latest/r/reference/nanoarrow_extension_array.md | 49 +
latest/r/reference/nanoarrow_extension_spec.html | 4 +-
latest/r/reference/nanoarrow_extension_spec.md | 57 +
latest/r/reference/nanoarrow_pointer_is_valid.html | 4 +-
latest/r/reference/nanoarrow_pointer_is_valid.md | 109 +
latest/r/reference/nanoarrow_version.html | 6 +-
latest/r/reference/nanoarrow_version.md | 31 +
latest/r/reference/read_nanoarrow.html | 4 +-
latest/r/reference/read_nanoarrow.md | 69 +
latest/r/search.json | 2 +-
latest/r/sitemap.xml | 1 +
latest/reference/c.html | 24 +-
latest/reference/cpp.html | 10 +-
latest/reference/device.html | 10 +-
latest/reference/index.html | 10 +-
latest/reference/ipc.html | 17 +-
latest/reference/python/advanced.html | 26 +-
latest/reference/python/array-stream.html | 20 +-
latest/reference/python/array.html | 32 +-
latest/reference/python/index.html | 12 +-
latest/reference/python/schema.html | 382 +-
latest/reference/r.html | 10 +-
latest/reference/testing.html | 10 +-
latest/roadmap.html | 10 +-
latest/search.html | 10 +-
latest/searchindex.js | 2 +-
switcher.json | 6 +-
300 files changed, 34803 insertions(+), 1229 deletions(-)
diff --git a/latest/.buildinfo b/0.8.0/.buildinfo
similarity index 82%
copy from latest/.buildinfo
copy to 0.8.0/.buildinfo
index f2bcd9f9..7a56b43a 100644
--- a/latest/.buildinfo
+++ b/0.8.0/.buildinfo
@@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file records the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: 8b7a28439724fc3a2af30f3dc5e6a07f
+config: 1174389cbc70ef9d7d08bd8bf84e2271
tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/0.8.0/.doctrees/environment.pickle b/0.8.0/.doctrees/environment.pickle
new file mode 100644
index 00000000..ac3c9096
Binary files /dev/null and b/0.8.0/.doctrees/environment.pickle differ
diff --git a/latest/.doctrees/getting-started/cpp.doctree b/0.8.0/.doctrees/getting-started/cpp.doctree
similarity index 50%
copy from latest/.doctrees/getting-started/cpp.doctree
copy to 0.8.0/.doctrees/getting-started/cpp.doctree
index cb9c1a7f..dce28de3 100644
Binary files a/latest/.doctrees/getting-started/cpp.doctree and b/0.8.0/.doctrees/getting-started/cpp.doctree differ
diff --git a/0.8.0/.doctrees/getting-started/index.doctree b/0.8.0/.doctrees/getting-started/index.doctree
new file mode 100644
index 00000000..12a7e542
Binary files /dev/null and b/0.8.0/.doctrees/getting-started/index.doctree differ
diff --git a/0.8.0/.doctrees/getting-started/python.doctree b/0.8.0/.doctrees/getting-started/python.doctree
new file mode 100644
index 00000000..dfa285c5
Binary files /dev/null and b/0.8.0/.doctrees/getting-started/python.doctree differ
diff --git a/0.8.0/.doctrees/getting-started/r.doctree b/0.8.0/.doctrees/getting-started/r.doctree
new file mode 100644
index 00000000..71a7fdc1
Binary files /dev/null and b/0.8.0/.doctrees/getting-started/r.doctree differ
diff --git a/0.8.0/.doctrees/index.doctree b/0.8.0/.doctrees/index.doctree
new file mode 100644
index 00000000..02b76fb7
Binary files /dev/null and b/0.8.0/.doctrees/index.doctree differ
diff --git a/0.8.0/.doctrees/reference/c.doctree b/0.8.0/.doctrees/reference/c.doctree
new file mode 100644
index 00000000..56ed3e9a
Binary files /dev/null and b/0.8.0/.doctrees/reference/c.doctree differ
diff --git a/0.8.0/.doctrees/reference/cpp.doctree b/0.8.0/.doctrees/reference/cpp.doctree
new file mode 100644
index 00000000..5bc4f5f4
Binary files /dev/null and b/0.8.0/.doctrees/reference/cpp.doctree differ
diff --git a/0.8.0/.doctrees/reference/device.doctree b/0.8.0/.doctrees/reference/device.doctree
new file mode 100644
index 00000000..6bdf9566
Binary files /dev/null and b/0.8.0/.doctrees/reference/device.doctree differ
diff --git a/0.8.0/.doctrees/reference/index.doctree b/0.8.0/.doctrees/reference/index.doctree
new file mode 100644
index 00000000..146eab90
Binary files /dev/null and b/0.8.0/.doctrees/reference/index.doctree differ
diff --git a/0.8.0/.doctrees/reference/ipc.doctree b/0.8.0/.doctrees/reference/ipc.doctree
new file mode 100644
index 00000000..3cd42b06
Binary files /dev/null and b/0.8.0/.doctrees/reference/ipc.doctree differ
diff --git a/0.8.0/.doctrees/reference/python/advanced.doctree b/0.8.0/.doctrees/reference/python/advanced.doctree
new file mode 100644
index 00000000..a7cbb2e3
Binary files /dev/null and b/0.8.0/.doctrees/reference/python/advanced.doctree differ
diff --git a/0.8.0/.doctrees/reference/python/array-stream.doctree b/0.8.0/.doctrees/reference/python/array-stream.doctree
new file mode 100644
index 00000000..a9170cac
Binary files /dev/null and b/0.8.0/.doctrees/reference/python/array-stream.doctree differ
diff --git a/0.8.0/.doctrees/reference/python/array.doctree b/0.8.0/.doctrees/reference/python/array.doctree
new file mode 100644
index 00000000..97d1e1ef
Binary files /dev/null and b/0.8.0/.doctrees/reference/python/array.doctree differ
diff --git a/0.8.0/.doctrees/reference/python/index.doctree b/0.8.0/.doctrees/reference/python/index.doctree
new file mode 100644
index 00000000..eec543f2
Binary files /dev/null and b/0.8.0/.doctrees/reference/python/index.doctree differ
diff --git a/0.8.0/.doctrees/reference/python/schema.doctree b/0.8.0/.doctrees/reference/python/schema.doctree
new file mode 100644
index 00000000..c686321e
Binary files /dev/null and b/0.8.0/.doctrees/reference/python/schema.doctree differ
diff --git a/0.8.0/.doctrees/reference/r.doctree b/0.8.0/.doctrees/reference/r.doctree
new file mode 100644
index 00000000..908f091a
Binary files /dev/null and b/0.8.0/.doctrees/reference/r.doctree differ
diff --git a/0.8.0/.doctrees/reference/testing.doctree b/0.8.0/.doctrees/reference/testing.doctree
new file mode 100644
index 00000000..c22fe548
Binary files /dev/null and b/0.8.0/.doctrees/reference/testing.doctree differ
diff --git a/0.8.0/.doctrees/roadmap.doctree b/0.8.0/.doctrees/roadmap.doctree
new file mode 100644
index 00000000..5f2179aa
Binary files /dev/null and b/0.8.0/.doctrees/roadmap.doctree differ
diff --git a/0.8.0/_sources/getting-started/cpp.rst.txt b/0.8.0/_sources/getting-started/cpp.rst.txt
new file mode 100644
index 00000000..8d4008d4
--- /dev/null
+++ b/0.8.0/_sources/getting-started/cpp.rst.txt
@@ -0,0 +1,542 @@
+.. raw:: html
+
+ <!---
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ -->
+
+Getting started with nanoarrow in C/C++
+=======================================
+
+This tutorial provides a short example of writing a C++ library that
+exposes an Arrow-based API and uses nanoarrow to implement a simple text
+file reader/writer. In general, nanoarrow can help you write a library
+or application that:
+
+- exposes an Arrow-based API to read from a data source or format,
+- exposes an Arrow-based API to write to a data source or format,
+- exposes one or more compute functions that operates on and produces
+ data in the form of Arrow arrays, and/or
+- exposes an extension type implementation.
+
+Because Arrow has bindings in many languages, it means that you or
+others can easily bind or use your tool in higher-level runtimes like R,
+Java, C++, Python, Rust, Julia, Go, or Ruby, among others.
+
+The nanoarrow library is not the only way that an Arrow-based API can be
+implemented: Arrow C++, Rust, and Go are all excellent choices and can
+compile into static libraries that are C-linkable from other languages;
+however, existing Arrow implementations produce relatively large static
+libraries and can present complex build-time or run-time linking
+requirements depending on the implementation and features used. If the
+set of libraries you’re working with already provide the conveniences
+you require, nanoarrow may provide all the functionality you need.
+
+Now that we’ve talked about why you might want to build a library with
+nanoarrow…let’s build one!
+
+.. note::
+ This tutorial also goes over some of the basic structure of writing a C++ library.
+ If you already know how to do this, feel free to scroll to the code examples provided
+ below or take a look at the
+ `final example project <https://github.com/apache/arrow-nanoarrow/tree/main/examples/linesplitter>`__.
+The library
+-----------
+
+The library we’ll write in this tutorial is a simple text processing
+library that splits and reassembles lines of text. It will be able to:
+
+- Read text from a buffer into an ``ArrowArray`` as one element per
+ line, and
+- Write elements of an ``ArrowArray`` into a buffer, inserting line
+ breaks after every element.
+
+For the sake of argument, we’ll call it ``linesplitter``.
+
+The development environment
+---------------------------
+
+There are many excellent IDEs that can be used to develop C and C++
+libraries. For this tutorial, we will use
+`VSCode <https://code.visualstudio.com/>`__ and
+`CMake <https://cmake.org/>`__. You’ll need both installed to follow
+along: VSCode can be downloaded from the official site for most
+platforms; CMake is typically installed via your favourite package
+manager (e.g., ``brew install cmake``, ``apt-get install cmake``,
+``dnf install cmake``, etc.). You will also need a C and C++ compiler:
+on MacOS these can be installed using ``xcode-select --install``; on
+Linux you will need the packages that provide ``gcc``, ``g++``, and
+``make`` (e.g., ``apt-get install build-essential``); on Windows you
+will need to install `Visual
+Studio <https://visualstudio.microsoft.com/downloads/>`__ and CMake from
+the official download pages.
+
+Once you have VSCode installed, ensure you have the **CMake Tools** and
+**C/C++** extensions installed. Once your environment is set up, create
+a folder called ``linesplitter`` and open it using **File -> Open
+Folder**.
+
+The interface
+-------------
+
+We’ll expose the interface to our library as a header called
+``linesplitter.h``. To ensure the definitions are only included once in
+any given source file, we’ll add the following line at the top:
+
+.. code:: cpp
+
+ #pragma once
+
+Then, we need the `Arrow C Data
+interface <https://arrow.apache.org/docs/format/CDataInterface.html#structure-definitions>`__
+itself, since it provides the type definitions that are recognized by
+other Arrow implementations on which our API will be built. It’s
+designed to be copy and pasted in this way - there’s no need to put it
+in another file include something from another project.
+
+.. code:: cpp
+
+ #include <stdint.h>
+
+ #ifndef ARROW_C_DATA_INTERFACE
+ #define ARROW_C_DATA_INTERFACE
+
+ #define ARROW_FLAG_DICTIONARY_ORDERED 1
+ #define ARROW_FLAG_NULLABLE 2
+ #define ARROW_FLAG_MAP_KEYS_SORTED 4
+
+ struct ArrowSchema {
+ // Array type description
+ const char* format;
+ const char* name;
+ const char* metadata;
+ int64_t flags;
+ int64_t n_children;
+ struct ArrowSchema** children;
+ struct ArrowSchema* dictionary;
+
+ // Release callback
+ void (*release)(struct ArrowSchema*);
+ // Opaque producer-specific data
+ void* private_data;
+ };
+
+ struct ArrowArray {
+ // Array data description
+ int64_t length;
+ int64_t null_count;
+ int64_t offset;
+ int64_t n_buffers;
+ int64_t n_children;
+ const void** buffers;
+ struct ArrowArray** children;
+ struct ArrowArray* dictionary;
+
+ // Release callback
+ void (*release)(struct ArrowArray*);
+ // Opaque producer-specific data
+ void* private_data;
+ };
+
+ #endif // ARROW_C_DATA_INTERFACE
+
+Next, we’ll provide definitions for the functions we’ll implement below:
+
+.. code:: c
+
+ // Builds an ArrowArray of type string that will contain one element for each line
+ // in src and places it into out.
+ //
+ // On success, returns {0, ""}; on error, returns {<errno code>, <error message>}
+ std::pair<int, std::string> linesplitter_read(const std::string& src,
+ struct ArrowArray* out);
+
+ // Concatenates all elements of a string ArrowArray inserting a newline between
+ // elements.
+ //
+ // On success, returns {0, <result>}; on error, returns {<errno code>, <error message>}
+ std::pair<int, std::string> linesplitter_write(struct ArrowArray* input);
+
+.. note::
+ You may notice that we don't include or mention nanoarrow in any way in the header
+ that is exposed to users. Because nanoarrow is designed to be vendored and is not
+ distributed as a system library, it is not safe for users of your library to
+ ``#include "nanoarrow.h"`` because it might conflict with another library that does
+ the same (with possibly a different version of nanoarrow).
+Arrow C data/nanoarrow interface basics
+---------------------------------------
+
+Now that we’ve seen the functions we need to implement and the Arrow
+types exposed in the C data interface, let’s unpack a few basics about
+using the Arrow C data interface and a few conventions used in the
+nanoarrow implementation.
+
+First, let’s discuss the ``ArrowSchema`` and the ``ArrowArray``. You can
+think of an ``ArrowSchema`` as an expression of a data type, whereas an
+``ArrowArray`` is the data itself. These structures accommodate nested
+types: columns are encoded in the ``children`` member of each. You
+always need to know the data type of an ``ArrowArray`` before accessing
+its contents. In our case we only operate on arrays of one type
+(“string”) and document that in our interface; for functions that
+operate on more than one type of array you will need to accept an
+``ArrowSchema`` and inspect it (e.g., using nanoarrow’s helper
+functions).
+
+Second, let’s discuss error handling. You may have noticed in the
+function definitions above that we return ``int``, which is an
+errno-compatible error code or ``0`` to indicate success. Functions in
+nanoarrow that need to communicate more detailed error information
+accept an ``ArrowError*`` argument (which can be ``NULL`` if the caller
+does care about the extra information). Any nanoarrow function that
+might fail communicates errors in this way. To avoid verbose code like
+the following:
+
+.. code:: c
+
+ int init_string_non_null(struct ArrowSchema* schema) {
+ int code = ArrowSchemaInitFromType(&schema, NANOARROW_TYPE_STRING);
+ if (code != NANOARROW_OK) {
+ return code;
+ }
+
+ schema->flags &= ~ARROW_FLAG_NULLABLE;
+ return NANOARROW_OK;
+ }
+
+…you can use the ``NANOARROW_RETURN_NOT_OK()`` macro:
+
+.. code:: c
+
+ int init_string_non_null(struct ArrowSchema* schema) {
+ NANOARROW_RETURN_NOT_OK(ArrowSchemaInitFromType(&schema, NANOARROW_TYPE_STRING));
+ schema->flags &= ~ARROW_FLAG_NULLABLE;
+ return NANOARROW_OK;
+ }
+
+This works as long as your internal functions that use nanoarrow also
+return ``int`` and/or an ``ArrowError*`` argument. This usually means
+that there is an outer function that presents a more idiomatic interface
+(e.g., returning ``std::optional<>`` or throwing an exception) and an
+inner function that uses nanoarrow-style error handling. Embracing
+``NANOARROW_RETURN_NOT_OK()`` is key to happiness when using the
+nanoarrow library.
+
+Third, let’s discuss memory management. Because nanoarrow is implemented
+in C and provides a C interface, the library by default uses C-style
+memory management (i.e., if you allocate it, you clean it up). This is
+unnecessary when you have C++ at your disposal, so nanoarrow also
+provides a C++ header (``nanoarrow.hpp``) with
+``std::unique_ptr<>``-like wrappers around anything that requires
+explicit clean up. Whereas in C you might have to write code like this:
+
+.. code:: c
+
+ struct ArrowSchema schema;
+ struct ArrowArray array;
+
+ // Ok: if this returns, array was not initialized
+ NANOARROW_RETURN_NOT_OK(ArrowSchemaInitFromType(&schema, NANOARROW_TYPE_STRING));
+
+ // Verbose: if this fails, we need to release schema before returning
+ // or it will leak.
+ int code = ArrowArrayInitFromSchema(&array, &schema, NULL);
+ if (code != NANOARROW_OK) {
+ ArrowSchemaRelease(&schema);
+ return code;
+ }
+
+…using the ``nanoarrow.hpp`` types we can do:
+
+.. code:: cpp
+
+ nanoarrow::UniqueSchema schema;
+ nanoarrow::UniqueArray array;
+
+ NANOARROW_RETURN_NOT_OK(ArrowSchemaInitFromType(schema.get(), NANOARROW_TYPE_STRING));
+ NANOARROW_RETURN_NOT_OK(ArrowArrayInitFromSchema(array.get(), schema.get(), NULL));
+
+Building the library
+--------------------
+
+Our library implementation will live in ``linesplitter.cc``. Before
+writing the actual implementations, let’s add just enough to our project
+that we can build it using VSCode’s C/C++/CMake integration:
+
+.. code:: cpp
+
+ #include <cerrno>
+ #include <cstdint>
+ #include <sstream>
+ #include <string>
+ #include <utility>
+
+ #include "nanoarrow/nanoarrow.hpp"
+
+ #include "linesplitter.h"
+
+ std::pair<int, std::string> linesplitter_read(const std::string& src,
+ struct ArrowArray* out) {
+ return {ENOTSUP, ""};
+ }
+
+ std::pair<int, std::string> linesplitter_write(struct ArrowArray* input) {
+ return {ENOTSUP, ""};
+ }
+
+We also need a ``CMakeLists.txt`` file that tells CMake and VSCode what
+to build. CMake has a lot of options and can scale to coordinate very
+large projects; however we only need a few lines to leverage VSCode’s
+integration.
+
+.. code:: cmake
+
+ project(linesplitter)
+
+ set(CMAKE_CXX_STANDARD 11)
+
+ include(FetchContent)
+
+ FetchContent_Declare(
+ nanoarrow
+ URL https://github.com/apache/arrow-nanoarrow/releases/download/apache-arrow-nanoarrow-0.2.0/apache-arrow-nanoarrow-0.2.0.tar.gz
+ URL_HASH SHA512=38a100ae5c36a33aa330010eb27b051cff98671e9c82fff22b1692bb77ae61bd6dc2a52ac6922c6c8657bd4c79a059ab26e8413de8169eeed3c9b7fdb216c817)
+ FetchContent_MakeAvailable(nanoarrow)
+
+ add_library(linesplitter linesplitter.cc)
+ target_link_libraries(linesplitter PRIVATE nanoarrow_static)
+
+After saving ``CMakeLists.txt``, you may have to close and re-open the
+``linesplitter`` directory in VSCode to activate the CMake integration.
+From the command palette (i.e., Control/Command-Shift-P), choose
+**CMake: Build**. If all went well, you should see a few lines of output
+indicating progress towards building and linking ``linesplitter``.
+
+.. note::
+ Depending on your version of CMake you might also see a few warnings. This CMakeLists.txt
+ is intentionally minimal and as such does not attempt to silence them.
+.. note::
+ If you're not using VSCode, you can accomplish the equivalent task in in a terminal
+ with ``mkdir build && cd build && cmake .. && cmake --build .``.
+Building an ArrowArray
+----------------------
+
+The input for our ``linesplitter_read()`` function is an
+``std::string``, which we’ll iterate over and add each detected line as
+its own element. First, we’ll define a function for the core logic of
+detecting the number of characters until the next ``\n`` or
+end-of-string.
+
+.. code:: cpp
+
+ static int64_t find_newline(const ArrowStringView& src) {
+ for (int64_t i = 0; i < src.size_bytes; i++) {
+ if (src.data[i] == '\n') {
+ return i;
+ }
+ }
+
+ return src.size_bytes;
+ }
+
+The next function we’ll define is an internal function that uses
+nanoarrow-style error handling. This uses the ``ArrowArrayAppend*()``
+family of functions provided by nanoarrow to build the array:
+
+.. code:: cpp
+
+ static int linesplitter_read_internal(const std::string& src, ArrowArray* out,
+ ArrowError* error) {
+ nanoarrow::UniqueArray tmp;
+ NANOARROW_RETURN_NOT_OK(ArrowArrayInitFromType(tmp.get(), NANOARROW_TYPE_STRING));
+ NANOARROW_RETURN_NOT_OK(ArrowArrayStartAppending(tmp.get()));
+
+ ArrowStringView src_view = {src.data(), static_cast<int64_t>(src.size())};
+ ArrowStringView line_view;
+ int64_t next_newline = -1;
+ while ((next_newline = find_newline(src_view)) >= 0) {
+ line_view = {src_view.data, next_newline};
+ NANOARROW_RETURN_NOT_OK(ArrowArrayAppendString(tmp.get(), line_view));
+ src_view.data += next_newline + 1;
+ src_view.size_bytes -= next_newline + 1;
+ }
+
+ NANOARROW_RETURN_NOT_OK(ArrowArrayFinishBuildingDefault(tmp.get(), error));
+
+ ArrowArrayMove(tmp.get(), out);
+ return NANOARROW_OK;
+ }
+
+Finally, we define a wrapper that corresponds to the outer function
+definition.
+
+.. code:: cpp
+
+ std::pair<int, std::string> linesplitter_read(const std::string& src, ArrowArray* out) {
+ ArrowError error;
+ int code = linesplitter_read_internal(src, out, &error);
+ if (code != NANOARROW_OK) {
+ return {code, std::string(ArrowErrorMessage(&error))};
+ } else {
+ return {NANOARROW_OK, ""};
+ }
+ }
+
+Reading an ArrowArray
+---------------------
+
+The input for our ``linesplitter_write()`` function is an
+``ArrowArray*`` like the one we create in ``linesplitter_read()``. Just
+as nanoarrow provides helpers to build arrays, it also provides helpers
+to read them via the ``ArrowArrayView*()`` family of functions. Again,
+we first define an internal function that uses nanoarrow-style error
+handling:
+
+.. code:: cpp
+
+ static int linesplitter_write_internal(ArrowArray* input, std::stringstream& out,
+ ArrowError* error) {
+ nanoarrow::UniqueArrayView input_view;
+ ArrowArrayViewInitFromType(input_view.get(), NANOARROW_TYPE_STRING);
+ NANOARROW_RETURN_NOT_OK(ArrowArrayViewSetArray(input_view.get(), input, error));
+
+ ArrowStringView item;
+ for (int64_t i = 0; i < input->length; i++) {
+ if (ArrowArrayViewIsNull(input_view.get(), i)) {
+ out << "\n";
+ } else {
+ item = ArrowArrayViewGetStringUnsafe(input_view.get(), i);
+ out << std::string(item.data, item.size_bytes) << "\n";
+ }
+ }
+
+ return NANOARROW_OK;
+ }
+
+Then, provide an outer wrapper that corresponds to the outer function
+definition.
+
+.. code:: cpp
+
+ std::pair<int, std::string> linesplitter_write(ArrowArray* input) {
+ std::stringstream out;
+ ArrowError error;
+ int code = linesplitter_write_internal(input, out, &error);
+ if (code != NANOARROW_OK) {
+ return {code, std::string(ArrowErrorMessage(&error))};
+ } else {
+ return {NANOARROW_OK, out.str()};
+ }
+ }
+
+Testing
+-------
+
+We have an implementation, but does it work? Unlike higher-level
+runtimes like R and Python, we can’t just open a prompt and type some
+code to find out. For C and C++ libraries, the
+`googletest <https://google.github.io/googletest/quickstart-cmake.html>`__
+framework provides a quick and easy way to do this that scales nicely as
+the complexity of your project grows.
+
+First, we’ll add a stub test and some CMake to get going. In
+``linesplitter_test.cc``, add the following:
+
+.. code:: cpp
+
+ #include <gtest/gtest.h>
+
+ #include "nanoarrow/nanoarrow.hpp"
+
+ #include "linesplitter.h"
+
+ TEST(Linesplitter, LinesplitterRoundtrip) {
+ EXPECT_EQ(4, 4);
+ }
+
+Then, add the following to your ``CMakeLists.txt``:
+
+.. code:: cmake
+
+ FetchContent_Declare(
+ googletest
+ URL https://github.com/google/googletest/archive/refs/tags/v1.13.0.zip
+ )
+ FetchContent_MakeAvailable(googletest)
+
+ enable_testing()
+
+ add_executable(linesplitter_test linesplitter_test.cc)
+ target_link_libraries(linesplitter_test linesplitter GTest::gtest_main)
+
+ include(GoogleTest)
+ gtest_discover_tests(linesplitter_test)
+
+After you’re done, build the project again using the **CMake: Build**
+command from the command palette. If all goes well, choose **CMake:
+Refresh Tests** and then **Test: Run All Tests** from the command
+palette to run them! You should see some output indicating that tests
+ran successfully, or you can use VSCode’s “Testing” panel to visually
+inspect which tests passed.
+
+.. note::
+ If you're not using VSCode, you can accomplish the equivalent task in in a terminal
+ with ``cd build && ctest .``.
+Now we’re ready to fill in the test! Our two functions happen to round
+trip, so a useful first test might be to check.
+
+.. code:: cpp
+
+ TEST(Linesplitter, LinesplitterRoundtrip) {
+ nanoarrow::UniqueArray out;
+ auto result = linesplitter_read("line1\nline2\nline3", out.get());
+ ASSERT_EQ(result.first, 0);
+ ASSERT_EQ(result.second, "");
+
+ ASSERT_EQ(out->length, 3);
+
+ nanoarrow::UniqueArrayView out_view;
+ ArrowArrayViewInitFromType(out_view.get(), NANOARROW_TYPE_STRING);
+ ASSERT_EQ(ArrowArrayViewSetArray(out_view.get(), out.get(), nullptr), 0);
+ ArrowStringView item;
+
+ item = ArrowArrayViewGetStringUnsafe(out_view.get(), 0);
+ ASSERT_EQ(std::string(item.data, item.size_bytes), "line1");
+
+ item = ArrowArrayViewGetStringUnsafe(out_view.get(), 1);
+ ASSERT_EQ(std::string(item.data, item.size_bytes), "line2");
+
+ item = ArrowArrayViewGetStringUnsafe(out_view.get(), 2);
+ ASSERT_EQ(std::string(item.data, item.size_bytes), "line3");
+
+
+ auto result2 = linesplitter_write(out.get());
+ ASSERT_EQ(result2.first, 0);
+ ASSERT_EQ(result2.second, "line1\nline2\nline3\n");
+ }
+
+Writing tests in this way also opens up a relatively straightforward
+debug path via the **CMake: Set Debug target** and **CMake: Debug**
+commands. If the first thing that happens when you write run your test
+is a crash, running the tests with the debugger turned on will
+automatically pause at the line of code that caused the crash. For more
+fine-tuned debugging, you can set breakpoints and step through code.
+
+Summary
+-------
+
+This tutorial covered the basics of writing and testing a C++ library
+exposing an Arrow-based API implemented using the nanoarrow C library.
diff --git a/0.8.0/_sources/getting-started/index.rst.txt b/0.8.0/_sources/getting-started/index.rst.txt
new file mode 100644
index 00000000..3ca7140d
--- /dev/null
+++ b/0.8.0/_sources/getting-started/index.rst.txt
@@ -0,0 +1,26 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements. See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership. The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License. You may obtain a copy of the License at
+
+.. http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+.. software distributed under the License is distributed on an
+.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+.. KIND, either express or implied. See the License for the
+.. specific language governing permissions and limitations
+.. under the License.
+
+Getting Started
+===============
+
+.. toctree::
+ :maxdepth: 2
+
+ C/C++ <cpp>
+ Python <python>
+ R <r>
diff --git a/0.8.0/_sources/getting-started/python.rst.txt b/0.8.0/_sources/getting-started/python.rst.txt
new file mode 100644
index 00000000..5a09cfc7
--- /dev/null
+++ b/0.8.0/_sources/getting-started/python.rst.txt
@@ -0,0 +1,426 @@
+.. raw:: html
+
+ <!---
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ -->
+
+.. raw:: html
+
+ <!-- Render with jupyter nbconvert --to markdown README.ipynb -->
+
+nanoarrow for Python
+====================
+
+The nanoarrow Python package provides bindings to the nanoarrow C
+library. Like the nanoarrow C library, it provides tools to facilitate
+the use of the `Arrow C
+Data <https://arrow.apache.org/docs/format/CDataInterface.html>`__ and
+`Arrow C
+Stream <https://arrow.apache.org/docs/format/CStreamInterface.html>`__
+interfaces.
+
+Installation
+------------
+
+The nanoarrow Python bindings are available from
+`PyPI <https://pypi.org/>`__ and
+`conda-forge <https://conda-forge.org/>`__:
+
+.. code:: shell
+
+ pip install nanoarrow
+ conda install nanoarrow -c conda-forge
+
+Development versions (based on the ``main`` branch) are also available:
+
+.. code:: shell
+
+ pip install --extra-index-url https://pypi.fury.io/arrow-nightlies/ \
+ --prefer-binary --pre nanoarrow
+
+If you can import the namespace, you’re good to go!
+
+.. code:: python
+
+ import nanoarrow as na
+
+Data types, arrays, and array streams
+-------------------------------------
+
+The Arrow C Data and Arrow C Stream interfaces are comprised of three
+structures: the ``ArrowSchema`` which represents a data type of an
+array, the ``ArrowArray`` which represents the values of an array, and
+an ``ArrowArrayStream``, which represents zero or more ``ArrowArray``\ s
+with a common ``ArrowSchema``. These concepts map to the
+``nanoarrow.Schema``, ``nanoarrow.Array``, and ``nanoarrow.ArrayStream``
+in the Python package.
+
+.. code:: python
+
+ na.int32()
+
+::
+
+ <Schema> int32
+
+.. code:: python
+
+ na.Array([1, 2, 3], na.int32())
+
+::
+
+ nanoarrow.Array<int32>[3]
+ 1
+ 2
+ 3
+
+The ``nanoarrow.Array`` can accommodate arrays with any number of
+chunks, reflecting the reality that many array containers (e.g.,
+``pyarrow.ChunkedArray``, ``polars.Series``) support this.
+
+.. code:: python
+
+ chunked = na.Array.from_chunks([[1, 2, 3], [4, 5, 6]], na.int32())
+ chunked
+
+::
+
+ nanoarrow.Array<int32>[6]
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+
+Whereas chunks of an ``Array`` are always fully materialized when the
+object is constructed, the chunks of an ``ArrayStream`` have not
+necessarily been resolved yet.
+
+.. code:: python
+
+ stream = na.ArrayStream(chunked)
+ stream
+
+::
+
+ nanoarrow.ArrayStream<int32>
+
+.. code:: python
+
+ with stream:
+ for chunk in stream:
+ print(chunk)
+
+::
+
+ nanoarrow.Array<int32>[3]
+ 1
+ 2
+ 3
+ nanoarrow.Array<int32>[3]
+ 4
+ 5
+ 6
+
+The ``nanoarrow.ArrayStream`` also provides an interface to nanoarrow’s
+`Arrow
+IPC <https://arrow.apache.org/docs/format/Columnar.html#serialization-and-interprocess-communication-ipc>`__
+reader:
+
+.. code:: python
+
+ url = "https://github.com/apache/arrow-experiments/raw/main/data/arrow-commits/arrow-commits.arrows"
+ na.ArrayStream.from_url(url)
+
+::
+
+ nanoarrow.ArrayStream<non-nullable struct<commit: string, time: timestamp('us', 'UTC'), files: int3...>
+
+These objects implement the `Arrow PyCapsule
+interface <https://arrow.apache.org/docs/format/CDataInterface/PyCapsuleInterface.html>`__
+for both producing and consuming and are interchangeable with
+``pyarrow`` objects in many cases:
+
+.. code:: python
+
+ import pyarrow as pa
+
+ pa.field(na.int32())
+
+::
+
+ pyarrow.Field<: int32>
+
+.. code:: python
+
+ pa.chunked_array(chunked)
+
+::
+
+ <pyarrow.lib.ChunkedArray object at 0x12a49a250>
+ [
+ [
+ 1,
+ 2,
+ 3
+ ],
+ [
+ 4,
+ 5,
+ 6
+ ]
+ ]
+
+.. code:: python
+
+ pa.array(chunked.chunk(1))
+
+::
+
+ <pyarrow.lib.Int32Array object at 0x11b552500>
+ [
+ 4,
+ 5,
+ 6
+ ]
+
+.. code:: python
+
+ na.Array(pa.array([10, 11, 12]))
+
+::
+
+ nanoarrow.Array<int64>[3]
+ 10
+ 11
+ 12
+
+.. code:: python
+
+ na.Schema(pa.string())
+
+::
+
+ <Schema> string
+
+Low-level C library bindings
+----------------------------
+
+The nanoarrow Python package also provides lower level wrappers around
+Arrow C interface structures. You can create these using
+``nanoarrow.c_schema()``, ``nanoarrow.c_array()``, and
+``nanoarrow.c_array_stream()``.
+
+Schemas
+~~~~~~~
+
+Use ``nanoarrow.c_schema()`` to convert an object to an ``ArrowSchema``
+and wrap it as a Python object. This works for any object implementing
+the `Arrow PyCapsule
+Interface <https://arrow.apache.org/docs/format/CDataInterface.html>`__
+(e.g., ``pyarrow.Schema``, ``pyarrow.DataType``, and ``pyarrow.Field``).
+
+.. code:: python
+
+ na.c_schema(pa.decimal128(10, 3))
+
+::
+
+ <nanoarrow.c_schema.CSchema decimal128(10, 3)>
+ - format: 'd:10,3'
+ - name: ''
+ - flags: 2
+ - metadata: NULL
+ - dictionary: NULL
+ - children[0]:
+
+Using ``c_schema()`` is a good fit for testing and for ephemeral schema
+objects that are being passed from one library to another. To extract
+the fields of a schema in a more convenient form, use ``Schema()``:
+
+.. code:: python
+
+ schema = na.Schema(pa.decimal128(10, 3))
+ schema.precision, schema.scale
+
+::
+
+ (10, 3)
+
+The ``CSchema`` object cleans up after itself: when the object is
+deleted, the underlying ``ArrowSchema`` is released.
+
+Arrays
+~~~~~~
+
+You can use ``nanoarrow.c_array()`` to convert an array-like object to
+an ``ArrowArray``, wrap it as a Python object, and attach a schema that
+can be used to interpret its contents. This works for any object
+implementing the `Arrow PyCapsule
+Interface <https://arrow.apache.org/docs/format/CDataInterface.html>`__
+(e.g., ``pyarrow.Array``, ``pyarrow.RecordBatch``).
+
+.. code:: python
+
+ na.c_array(["one", "two", "three", None], na.string())
+
+::
+
+ <nanoarrow.c_array.CArray string>
+ - length: 4
+ - offset: 0
+ - null_count: 1
+ - buffers: (4754305168, 4754307808, 4754310464)
+ - dictionary: NULL
+ - children[0]:
+
+Using ``c_array()`` is a good fit for testing and for ephemeral array
+objects that are being passed from one library to another. For a higher
+level interface, use ``Array()``:
+
+.. code:: python
+
+ array = na.Array(["one", "two", "three", None], na.string())
+ array.to_pylist()
+
+::
+
+ ['one', 'two', 'three', None]
+
+.. code:: python
+
+ array.buffers
+
+::
+
+ (nanoarrow.c_lib.CBufferView(bool[1 b] 11100000),
+ nanoarrow.c_lib.CBufferView(int32[20 b] 0 3 6 11 11),
+ nanoarrow.c_lib.CBufferView(string[11 b] b'onetwothree'))
+
+Advanced users can create arrays directly from buffers using
+``c_array_from_buffers()``:
+
+.. code:: python
+
+ na.c_array_from_buffers(
+ na.string(),
+ 2,
+ [None, na.c_buffer([0, 3, 6], na.int32()), b"abcdef"]
+ )
+
+::
+
+ <nanoarrow.c_array.CArray string>
+ - length: 2
+ - offset: 0
+ - null_count: 0
+ - buffers: (0, 5002908320, 4999694624)
+ - dictionary: NULL
+ - children[0]:
+
+Array streams
+~~~~~~~~~~~~~
+
+You can use ``nanoarrow.c_array_stream()`` to wrap an object
+representing a sequence of ``CArray``\ s with a common ``CSchema`` to an
+``ArrowArrayStream`` and wrap it as a Python object. This works for any
+object implementing the `Arrow PyCapsule
+Interface <https://arrow.apache.org/docs/format/CDataInterface.html>`__
+(e.g., ``pyarrow.RecordBatchReader``, ``pyarrow.ChunkedArray``).
+
+.. code:: python
+
+ pa_batch = pa.record_batch({"col1": [1, 2, 3]})
+ reader = pa.RecordBatchReader.from_batches(pa_batch.schema, [pa_batch])
+ array_stream = na.c_array_stream(reader)
+ array_stream
+
+::
+
+ <nanoarrow.c_array_stream.CArrayStream>
+ - get_schema(): struct<col1: int64>
+
+You can pull the next array from the stream using ``.get_next()`` or use
+it like an iterator. The ``.get_next()`` method will raise
+``StopIteration`` when there are no more arrays in the stream.
+
+.. code:: python
+
+ for array in array_stream:
+ print(array)
+
+::
+
+ <nanoarrow.c_array.CArray struct<col1: int64>>
+ - length: 3
+ - offset: 0
+ - null_count: 0
+ - buffers: (0,)
+ - dictionary: NULL
+ - children[1]:
+ 'col1': <nanoarrow.c_array.CArray int64>
+ - length: 3
+ - offset: 0
+ - null_count: 0
+ - buffers: (0, 2642948588352)
+ - dictionary: NULL
+ - children[0]:
+
+Use ``ArrayStream()`` for a higher level interface:
+
+.. code:: python
+
+ reader = pa.RecordBatchReader.from_batches(pa_batch.schema, [pa_batch])
+ na.ArrayStream(reader).read_all()
+
+::
+
+ nanoarrow.Array<non-nullable struct<col1: int64>>[3]
+ {'col1': 1}
+ {'col1': 2}
+ {'col1': 3}
+
+Development
+-----------
+
+Python bindings for nanoarrow are managed with
+`setuptools <https://setuptools.pypa.io/en/latest/index.html>`__. This
+means you can build the project using:
+
+.. code:: shell
+
+ git clone https://github.com/apache/arrow-nanoarrow.git
+ cd arrow-nanoarrow/python
+ # Build dependencies:
+ # pip install meson meson-python cython
+ pip install -e . --no-build-isolation
+
+Tests use `pytest <https://docs.pytest.org/>`__:
+
+.. code:: shell
+
+ # Install dependencies
+ pip install -e ".[test]"
+
+ # Run tests
+ pytest -vvx
+
+CMake is currently required to ensure that the vendored copy of
+nanoarrow in the Python package stays in sync with the nanoarrow sources
+in the working tree.
diff --git a/0.8.0/_sources/getting-started/r.rst.txt b/0.8.0/_sources/getting-started/r.rst.txt
new file mode 100644
index 00000000..5153b18d
--- /dev/null
+++ b/0.8.0/_sources/getting-started/r.rst.txt
@@ -0,0 +1,286 @@
+.. raw:: html
+
+ <!---
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ -->
+
+.. raw:: html
+
+ <!-- README.md is generated from README.Rmd. Please edit that file -->
+
+nanoarrow
+=========
+
+.. raw:: html
+
+ <!-- badges: start -->
+
+.. raw:: html
+
+ <!-- badges: end -->
+
+The goal of nanoarrow is to provide minimal useful bindings to the
+`Arrow C
+Data <https://arrow.apache.org/docs/format/CDataInterface.html>`__ and
+`Arrow C
+Stream <https://arrow.apache.org/docs/format/CStreamInterface.html>`__
+interfaces using the `nanoarrow C
+library <https://arrow.apache.org/nanoarrow/>`__.
+
+Installation
+------------
+
+You can install the released version of nanoarrow from
+`CRAN <https://cran.r-project.org/>`__ with:
+
+.. code:: r
+
+ install.packages("nanoarrow")
+
+You can install the development version of nanoarrow from
+`GitHub <https://github.com/>`__ with:
+
+.. code:: r
+
+ # install.packages("remotes")
+ remotes::install_github("apache/arrow-nanoarrow/r")
+
+If you can load the package, you’re good to go!
+
+.. code:: r
+
+ library(nanoarrow)
+
+Example
+-------
+
+The Arrow C Data and Arrow C Stream interfaces are comprised of three
+structures: the ``ArrowSchema`` which represents a data type of an
+array, the ``ArrowArray`` which represents the values of an array, and
+an ``ArrowArrayStream``, which represents zero or more ``ArrowArray``\ s
+with a common ``ArrowSchema``. All three can be wrapped by R objects
+using the nanoarrow R package.
+
+Schemas
+~~~~~~~
+
+Use ``infer_nanoarrow_schema()`` to get the ArrowSchema object that
+corresponds to a given R vector type; use ``as_nanoarrow_schema()`` to
+convert an object from some other data type representation (e.g., an
+arrow R package ``DataType`` like ``arrow::int32()``); or use
+``na_XXX()`` functions to construct them.
+
+.. code:: r
+
+ infer_nanoarrow_schema(1:5)
+ #> <nanoarrow_schema int32>
+ #> $ format : chr "i"
+ #> $ name : chr ""
+ #> $ metadata : list()
+ #> $ flags : int 2
+ #> $ children : list()
+ #> $ dictionary: NULL
+ as_nanoarrow_schema(arrow::schema(col1 = arrow::float64()))
+ #> <nanoarrow_schema struct>
+ #> $ format : chr "+s"
+ #> $ name : chr ""
+ #> $ metadata : list()
+ #> $ flags : int 0
+ #> $ children :List of 1
+ #> ..$ col1:<nanoarrow_schema double>
+ #> .. ..$ format : chr "g"
+ #> .. ..$ name : chr "col1"
+ #> .. ..$ metadata : list()
+ #> .. ..$ flags : int 2
+ #> .. ..$ children : list()
+ #> .. ..$ dictionary: NULL
+ #> $ dictionary: NULL
+ na_int64()
+ #> <nanoarrow_schema int64>
+ #> $ format : chr "l"
+ #> $ name : chr ""
+ #> $ metadata : list()
+ #> $ flags : int 2
+ #> $ children : list()
+ #> $ dictionary: NULL
+
+Arrays
+~~~~~~
+
+Use ``as_nanoarrow_array()`` to convert an object to an ArrowArray
+object:
+
+.. code:: r
+
+ as_nanoarrow_array(1:5)
+ #> <nanoarrow_array int32[5]>
+ #> $ length : int 5
+ #> $ null_count: int 0
+ #> $ offset : int 0
+ #> $ buffers :List of 2
+ #> ..$ :<nanoarrow_buffer validity<bool>[0][0 b]> ``
+ #> ..$ :<nanoarrow_buffer data<int32>[5][20 b]> `1 2 3 4 5`
+ #> $ dictionary: NULL
+ #> $ children : list()
+ as_nanoarrow_array(data.frame(col1 = c(1.1, 2.2)))
+ #> <nanoarrow_array struct[2]>
+ #> $ length : int 2
+ #> $ null_count: int 0
+ #> $ offset : int 0
+ #> $ buffers :List of 1
+ #> ..$ :<nanoarrow_buffer validity<bool>[0][0 b]> ``
+ #> $ children :List of 1
+ #> ..$ col1:<nanoarrow_array double[2]>
+ #> .. ..$ length : int 2
+ #> .. ..$ null_count: int 0
+ #> .. ..$ offset : int 0
+ #> .. ..$ buffers :List of 2
+ #> .. .. ..$ :<nanoarrow_buffer validity<bool>[0][0 b]> ``
+ #> .. .. ..$ :<nanoarrow_buffer data<double>[2][16 b]> `1.1 2.2`
+ #> .. ..$ dictionary: NULL
+ #> .. ..$ children : list()
+ #> $ dictionary: NULL
+
+You can use ``as.vector()`` or ``as.data.frame()`` to get the R
+representation of the object back:
+
+.. code:: r
+
+ array <- as_nanoarrow_array(data.frame(col1 = c(1.1, 2.2)))
+ as.data.frame(array)
+ #> col1
+ #> 1 1.1
+ #> 2 2.2
+
+Even though at the C level the ArrowArray is distinct from the
+ArrowSchema, at the R level we attach a schema wherever possible. You
+can access the attached schema using ``infer_nanoarrow_schema()``:
+
+.. code:: r
+
+ infer_nanoarrow_schema(array)
+ #> <nanoarrow_schema struct>
+ #> $ format : chr "+s"
+ #> $ name : chr ""
+ #> $ metadata : list()
+ #> $ flags : int 0
+ #> $ children :List of 1
+ #> ..$ col1:<nanoarrow_schema double>
+ #> .. ..$ format : chr "g"
+ #> .. ..$ name : chr "col1"
+ #> .. ..$ metadata : list()
+ #> .. ..$ flags : int 2
+ #> .. ..$ children : list()
+ #> .. ..$ dictionary: NULL
+ #> $ dictionary: NULL
+
+Array Streams
+~~~~~~~~~~~~~
+
+The easiest way to create an ArrowArrayStream is from a list of arrays
+or objects that can be converted to an array using
+``as_nanoarrow_array()``:
+
+.. code:: r
+
+ stream <- basic_array_stream(
+ list(
+ data.frame(col1 = c(1.1, 2.2)),
+ data.frame(col1 = c(3.3, 4.4))
+ )
+ )
+
+You can pull batches from the stream using the ``$get_next()`` method.
+The last batch will return ``NULL``.
+
+.. code:: r
+
+ stream$get_next()
+ #> <nanoarrow_array struct[2]>
+ #> $ length : int 2
+ #> $ null_count: int 0
+ #> $ offset : int 0
+ #> $ buffers :List of 1
+ #> ..$ :<nanoarrow_buffer validity<bool>[0][0 b]> ``
+ #> $ children :List of 1
+ #> ..$ col1:<nanoarrow_array double[2]>
+ #> .. ..$ length : int 2
+ #> .. ..$ null_count: int 0
+ #> .. ..$ offset : int 0
+ #> .. ..$ buffers :List of 2
+ #> .. .. ..$ :<nanoarrow_buffer validity<bool>[0][0 b]> ``
+ #> .. .. ..$ :<nanoarrow_buffer data<double>[2][16 b]> `1.1 2.2`
+ #> .. ..$ dictionary: NULL
+ #> .. ..$ children : list()
+ #> $ dictionary: NULL
+ stream$get_next()
+ #> <nanoarrow_array struct[2]>
+ #> $ length : int 2
+ #> $ null_count: int 0
+ #> $ offset : int 0
+ #> $ buffers :List of 1
+ #> ..$ :<nanoarrow_buffer validity<bool>[0][0 b]> ``
+ #> $ children :List of 1
+ #> ..$ col1:<nanoarrow_array double[2]>
+ #> .. ..$ length : int 2
+ #> .. ..$ null_count: int 0
+ #> .. ..$ offset : int 0
+ #> .. ..$ buffers :List of 2
+ #> .. .. ..$ :<nanoarrow_buffer validity<bool>[0][0 b]> ``
+ #> .. .. ..$ :<nanoarrow_buffer data<double>[2][16 b]> `3.3 4.4`
+ #> .. ..$ dictionary: NULL
+ #> .. ..$ children : list()
+ #> $ dictionary: NULL
+ stream$get_next()
+ #> NULL
+
+You can pull all the batches into a ``data.frame()`` by calling
+``as.data.frame()`` or ``as.vector()``:
+
+.. code:: r
+
+ stream <- basic_array_stream(
+ list(
+ data.frame(col1 = c(1.1, 2.2)),
+ data.frame(col1 = c(3.3, 4.4))
+ )
+ )
+
+ as.data.frame(stream)
+ #> col1
+ #> 1 1.1
+ #> 2 2.2
+ #> 3 3.3
+ #> 4 4.4
+
+After consuming a stream, you should call the release method as soon as
+you can. This lets the implementation of the stream release any
+resources (like open files) it may be holding in a more predictable way
+than waiting for the garbage collector to clean up the object.
+
+Integration with the arrow package
+----------------------------------
+
+The nanoarrow package implements ``as_nanoarrow_schema()``,
+``as_nanoarrow_array()``, and ``as_nanoarrow_array_stream()`` for most
+arrow package types. Similarly, it implements
+``arrow::as_arrow_array()``, ``arrow::as_record_batch()``,
+``arrow::as_arrow_table()``, ``arrow::as_record_batch_reader()``,
+``arrow::infer_type()``, ``arrow::as_data_type()``, and
+``arrow::as_schema()`` for nanoarrow objects such that you can pass
+equivalent nanoarrow objects into many arrow functions and vice versa.
diff --git a/0.8.0/_sources/index.rst.txt b/0.8.0/_sources/index.rst.txt
new file mode 100644
index 00000000..9076df54
--- /dev/null
+++ b/0.8.0/_sources/index.rst.txt
@@ -0,0 +1,28 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements. See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership. The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License. You may obtain a copy of the License at
+
+.. http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+.. software distributed under the License is distributed on an
+.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+.. KIND, either express or implied. See the License for the
+.. specific language governing permissions and limitations
+.. under the License.
+
+.. include:: README_generated.rst
+
+Contents
+--------
+
+.. toctree::
+ :maxdepth: 2
+
+ Getting Started <getting-started/index>
+ Roadmap <roadmap>
+ API Reference <reference/index>
diff --git a/0.8.0/_sources/reference/c.rst.txt b/0.8.0/_sources/reference/c.rst.txt
new file mode 100644
index 00000000..97d4d6ef
--- /dev/null
+++ b/0.8.0/_sources/reference/c.rst.txt
@@ -0,0 +1,78 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements. See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership. The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License. You may obtain a copy of the License at
+
+.. http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+.. software distributed under the License is distributed on an
+.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+.. KIND, either express or implied. See the License for the
+.. specific language governing permissions and limitations
+.. under the License.
+
+C API Reference
+==================
+
+.. doxygengroup:: nanoarrow
+
+Creating schemas
+------------------
+.. doxygengroup:: nanoarrow-schema
+ :members:
+
+Reading schemas
+------------------
+.. doxygengroup:: nanoarrow-schema-view
+ :members:
+
+Creating arrays
+------------------
+.. doxygengroup:: nanoarrow-array
+ :members:
+
+Reading arrays
+------------------
+.. doxygengroup:: nanoarrow-array-view
+ :members:
+
+Owning, growable buffers
+------------------------
+.. doxygengroup:: nanoarrow-buffer
+ :members:
+
+Bitmap utilities
+------------------
+.. doxygengroup:: nanoarrow-bitmap
+ :members:
+
+Create, read, and modify schema metadata
+----------------------------------------
+.. doxygengroup:: nanoarrow-metadata
+ :members:
+
+Memory management
+------------------
+.. doxygengroup:: nanoarrow-malloc
+ :members:
+
+Error handling
+------------------
+.. doxygengroup:: nanoarrow-errors
+ :members:
+
+Utility data structures
+-----------------------
+.. doxygengroup:: nanoarrow-utils
+ :members:
+
+Arrow C Data Interface
+----------------------
+
+.. doxygengroup:: nanoarrow-arrow-cdata
+ :members:
+ :undoc-members:
diff --git a/0.8.0/_sources/reference/cpp.rst.txt b/0.8.0/_sources/reference/cpp.rst.txt
new file mode 100644
index 00000000..7736800f
--- /dev/null
+++ b/0.8.0/_sources/reference/cpp.rst.txt
@@ -0,0 +1,50 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements. See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership. The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License. You may obtain a copy of the License at
+
+.. http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+.. software distributed under the License is distributed on an
+.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+.. KIND, either express or implied. See the License for the
+.. specific language governing permissions and limitations
+.. under the License.
+
+C++ API Reference
+==================
+
+.. doxygengroup:: nanoarrow_hpp
+
+Error handling
+--------------
+
+.. doxygengroup:: nanoarrow_hpp-errors
+ :members:
+
+Owning object wrappers
+----------------------
+.. doxygengroup:: nanoarrow_hpp-unique
+ :members:
+
+Array Stream utilities
+----------------------
+
+.. doxygengroup:: nanoarrow_hpp-array-stream
+ :members:
+
+Buffer utilities
+----------------
+
+.. doxygengroup:: nanoarrow_hpp-buffer
+ :members:
+
+Range-for utilities
+-------------------
+
+.. doxygengroup:: nanoarrow_hpp-range_for
+ :members:
diff --git a/0.8.0/_sources/reference/device.rst.txt b/0.8.0/_sources/reference/device.rst.txt
new file mode 100644
index 00000000..56cc5428
--- /dev/null
+++ b/0.8.0/_sources/reference/device.rst.txt
@@ -0,0 +1,41 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements. See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership. The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License. You may obtain a copy of the License at
+
+.. http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+.. software distributed under the License is distributed on an
+.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+.. KIND, either express or implied. See the License for the
+.. specific language governing permissions and limitations
+.. under the License.
+
+Device Extension Reference
+==========================
+
+C API
+------------------------
+
+.. doxygengroup:: nanoarrow_device
+ :project: nanoarrow_c
+ :members:
+
+C++ Helpers
+------------------------
+
+.. doxygengroup:: nanoarrow_device_hpp-unique
+ :project: nanoarrow_c
+ :members:
+
+Arrow C Device Interface
+------------------------
+
+.. doxygengroup:: nanoarrow_device-arrow-cdata
+ :project: nanoarrow_c
+ :members:
+ :undoc-members:
diff --git a/0.8.0/_sources/reference/index.rst.txt b/0.8.0/_sources/reference/index.rst.txt
new file mode 100644
index 00000000..d0b9fa93
--- /dev/null
+++ b/0.8.0/_sources/reference/index.rst.txt
@@ -0,0 +1,30 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements. See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership. The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License. You may obtain a copy of the License at
+
+.. http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+.. software distributed under the License is distributed on an
+.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+.. KIND, either express or implied. See the License for the
+.. specific language governing permissions and limitations
+.. under the License.
+
+API Reference
+=============
+
+.. toctree::
+ :maxdepth: 2
+
+ R API Reference <r>
+ Python API Reference <python/index>
+ C API Reference <c>
+ C++ API Reference <cpp>
+ Testing API Reference <testing>
+ IPC Extension Reference <ipc>
+ Device Extension Reference <device>
diff --git a/0.8.0/_sources/reference/ipc.rst.txt b/0.8.0/_sources/reference/ipc.rst.txt
new file mode 100644
index 00000000..7d3ae1e1
--- /dev/null
+++ b/0.8.0/_sources/reference/ipc.rst.txt
@@ -0,0 +1,33 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements. See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership. The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License. You may obtain a copy of the License at
+
+.. http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+.. software distributed under the License is distributed on an
+.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+.. KIND, either express or implied. See the License for the
+.. specific language governing permissions and limitations
+.. under the License.
+
+IPC Extension Reference
+=======================
+
+C API
+------------------------
+
+.. doxygengroup:: nanoarrow_ipc
+ :project: nanoarrow_c
+ :members:
+
+C++ Helpers
+------------------------
+
+.. doxygengroup:: nanoarrow_ipc_hpp-unique
+ :project: nanoarrow_c
+ :members:
diff --git a/0.8.0/_sources/reference/python/advanced.rst.txt b/0.8.0/_sources/reference/python/advanced.rst.txt
new file mode 100644
index 00000000..631396b1
--- /dev/null
+++ b/0.8.0/_sources/reference/python/advanced.rst.txt
@@ -0,0 +1,37 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements. See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership. The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License. You may obtain a copy of the License at
+
+.. http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+.. software distributed under the License is distributed on an
+.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+.. KIND, either express or implied. See the License for the
+.. specific language governing permissions and limitations
+.. under the License.
+
+Low-level Helpers
+=================
+
+C Schema Utilities
+------------------
+
+.. automodule:: nanoarrow.c_schema
+ :members:
+
+C Array Utilities
+-----------------
+
+.. automodule:: nanoarrow.c_array
+ :members:
+
+C ArrayStream Utilities
+-----------------------
+
+.. automodule:: nanoarrow.c_array_stream
+ :members:
diff --git a/0.8.0/_sources/reference/python/array-stream.rst.txt b/0.8.0/_sources/reference/python/array-stream.rst.txt
new file mode 100644
index 00000000..451a6688
--- /dev/null
+++ b/0.8.0/_sources/reference/python/array-stream.rst.txt
@@ -0,0 +1,22 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements. See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership. The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License. You may obtain a copy of the License at
+
+.. http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+.. software distributed under the License is distributed on an
+.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+.. KIND, either express or implied. See the License for the
+.. specific language governing permissions and limitations
+.. under the License.
+
+High-level ArrayStream Implementation
+=====================================
+
+.. automodule:: nanoarrow.array_stream
+ :members:
diff --git a/0.8.0/_sources/reference/python/array.rst.txt b/0.8.0/_sources/reference/python/array.rst.txt
new file mode 100644
index 00000000..392c3241
--- /dev/null
+++ b/0.8.0/_sources/reference/python/array.rst.txt
@@ -0,0 +1,22 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements. See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership. The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License. You may obtain a copy of the License at
+
+.. http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+.. software distributed under the License is distributed on an
+.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+.. KIND, either express or implied. See the License for the
+.. specific language governing permissions and limitations
+.. under the License.
+
+High-level ArrayStream Implementation
+=====================================
+
+.. automodule:: nanoarrow.array
+ :members:
diff --git a/0.8.0/_sources/reference/python/index.rst.txt b/0.8.0/_sources/reference/python/index.rst.txt
new file mode 100644
index 00000000..7729a7c6
--- /dev/null
+++ b/0.8.0/_sources/reference/python/index.rst.txt
@@ -0,0 +1,29 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements. See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership. The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License. You may obtain a copy of the License at
+
+.. http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+.. software distributed under the License is distributed on an
+.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+.. KIND, either express or implied. See the License for the
+.. specific language governing permissions and limitations
+.. under the License.
+
+Python API reference
+====================
+
+.. automodule:: nanoarrow
+
+.. toctree::
+ :maxdepth: 2
+
+ Schema/DataType Objects <schema>
+ High-level Array Implementation <array>
+ High-level ArrayStream Implementation <array-stream>
+ Low-level Helpers <advanced>
diff --git a/0.8.0/_sources/reference/python/schema.rst.txt b/0.8.0/_sources/reference/python/schema.rst.txt
new file mode 100644
index 00000000..b52a20ed
--- /dev/null
+++ b/0.8.0/_sources/reference/python/schema.rst.txt
@@ -0,0 +1,22 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements. See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership. The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License. You may obtain a copy of the License at
+
+.. http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+.. software distributed under the License is distributed on an
+.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+.. KIND, either express or implied. See the License for the
+.. specific language governing permissions and limitations
+.. under the License.
+
+Schema/Data Type Objects
+========================
+
+.. automodule:: nanoarrow.schema
+ :members:
diff --git a/0.8.0/_sources/reference/r.rst.txt b/0.8.0/_sources/reference/r.rst.txt
new file mode 100644
index 00000000..69becb16
--- /dev/null
+++ b/0.8.0/_sources/reference/r.rst.txt
@@ -0,0 +1,21 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements. See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership. The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License. You may obtain a copy of the License at
+
+.. http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+.. software distributed under the License is distributed on an
+.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+.. KIND, either express or implied. See the License for the
+.. specific language governing permissions and limitations
+.. under the License.
+
+R API Reference
+==================
+
+See `R Documentation <../r/reference/index.html>`__.
diff --git a/0.8.0/_sources/reference/testing.rst.txt b/0.8.0/_sources/reference/testing.rst.txt
new file mode 100644
index 00000000..059099c4
--- /dev/null
+++ b/0.8.0/_sources/reference/testing.rst.txt
@@ -0,0 +1,27 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements. See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership. The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License. You may obtain a copy of the License at
+
+.. http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+.. software distributed under the License is distributed on an
+.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+.. KIND, either express or implied. See the License for the
+.. specific language governing permissions and limitations
+.. under the License.
+
+Testing API Reference
+======================
+
+.. doxygengroup:: nanoarrow_testing
+
+Integration testing JSON
+------------------------
+
+.. doxygengroup:: nanoarrow_testing-json
+ :members:
diff --git a/0.8.0/_sources/roadmap.rst.txt b/0.8.0/_sources/roadmap.rst.txt
new file mode 100644
index 00000000..5b6b92a2
--- /dev/null
+++ b/0.8.0/_sources/roadmap.rst.txt
@@ -0,0 +1,103 @@
+.. raw:: html
+
+ <!---
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ -->
+
+Roadmap
+=======
+
+Apache Arrow nanoarrow is a relatively new library and is under active
+development. Maintaining the balance between useful and minimal is
+difficult to do; however, there are a number of features that fit
+comforably within the scope of nanoarrow that have not yet been
+scheduled for implementation.
+
+C library
+---------
+
+- **Type coverage**: The C library currently provides support for all
+ types that are available via the Arrow C Data interface except string
+ view/list view types. Support for these should be added in nanoarrow
+ as well
+ (`#583 <https://github.com/apache/arrow-nanoarrow/issues/583>`__,
+ `#616 <https://github.com/apache/arrow-nanoarrow/issues/616>`__,
+ `#510 <https://github.com/apache/arrow-nanoarrow/issues/510>`__).
+- **Remove Arrow C++ dependency for tests**: The C library and IPC
+ extension rely on Arrow C++ for some test code that was written early
+ in the library’s development. These tests are valuable to ensure
+ compatibility between nanoarrow and Arrow C++; however, including
+ them in the default test suite complicates release verification for
+ some users and prevents testing in environments where Arrow C++ does
+ not currently build (e.g., WASM, compilers without C++17 support)
+ (`#619 <https://github.com/apache/arrow-nanoarrow/issues/619>`__).
+- **Test verbosity**: Tests for the C library were written before
+ testing utilities in the ``nanoarrow_testing`` library were available
+ (and before there was a ``nanoarrow_testing`` library in which to put
+ new ones). As a result, some of them are very verbose and can be
+ difficult to read, which can and should be improved
+ (`#577 <https://github.com/apache/arrow-nanoarrow/issues/577>`__,
+ `#566 <https://github.com/apache/arrow-nanoarrow/issues/566>`__).
+- **C++ integration**: The existing C++ integration is intentionally
+ minimal; however, there are likely improvements that could be made to
+ better integrate nanoarrow into existing C++ projects
+ (`#599 <https://github.com/apache/arrow-nanoarrow/issues/599>`__).
+- **Documentation**: As the C library and its user base evolves,
+ documentation needs to be refined and expanded to support the current
+ set of use cases
+ (`#187 <https://github.com/apache/arrow-nanoarrow/issues/187>`__,
+ `#497 <https://github.com/apache/arrow-nanoarrow/issues/497>`__).
+- **IPC Dictionary support**: The IPC extension does not currently
+ support reading dictionary messages an IPC stream
+ (`#622 <https://github.com/apache/arrow-nanoarrow/issues/622>`__).
+- **IPC Compression support**: The IPC extension does not currently
+ support compressed streams using per-buffer compression, although
+ streams can be compressed outside the nanoarrow library (e.g., gzip
+ compression of the entire stream)
+ (`#621 <https://github.com/apache/arrow-nanoarrow/issues/621>`__)
+
+R bindings
+----------
+
+- **Conversion internals**: The initial implementation of conversion
+ from Arrow data to R vectors was implemented in C and its verbosity
+ makes it difficult to add support for new types. The internals should
+ be refactored to make the conversion code easier to understand for
+ new developers
+ (`#392 <https://github.com/apache/arrow-nanoarrow/pull/392>`__).
+- **Type support**: The R bindings currently rely on the Arrow R
+ package for conversion of some R types (e.g., list_of), and some
+ types are not supported in nanoarrow nor the arrow R package (e.g.,
+ run-end encoding, list view, and string/binary view)
+ (`#617 <https://github.com/apache/arrow-nanoarrow/issues/617>`__).
+- **ALTREP support**: A recent R release added enhanced ALTREP support
+ such that types that convert to ``list()`` can defer materialization
+ cost/allocation. Arrow sources that arrive in chunks (e.g., from a
+ ``Table`` or ``ChunkedArray``) currently can’t be converted via any
+ ALTREP mechanism and support could be added
+ (`#219 <https://github.com/apache/arrow-nanoarrow/issues/219>`__).
+
+Python bindings
+---------------
+
+- **Type support**: The Python bindings do not currently support
+ unions, string/binary view, or list view, or run-end-encoded types.
+ When creating Arrow arrays from iterables of Python objects, some
+ types are not yet supported (e.g., struct, list, datetime objects)
+ (`#618 <https://github.com/apache/arrow-nanoarrow/issues/618>`__,
+ `#620 <https://github.com/apache/arrow-nanoarrow/issues/620>`__).
diff --git a/0.8.0/_static/base-stemmer.js b/0.8.0/_static/base-stemmer.js
new file mode 100644
index 00000000..e6fa0c49
--- /dev/null
+++ b/0.8.0/_static/base-stemmer.js
@@ -0,0 +1,476 @@
+// @ts-check
+
+/**@constructor*/
+BaseStemmer = function() {
+ /** @protected */
+ this.current = '';
+ this.cursor = 0;
+ this.limit = 0;
+ this.limit_backward = 0;
+ this.bra = 0;
+ this.ket = 0;
+
+ /**
+ * @param {string} value
+ */
+ this.setCurrent = function(value) {
+ this.current = value;
+ this.cursor = 0;
+ this.limit = this.current.length;
+ this.limit_backward = 0;
+ this.bra = this.cursor;
+ this.ket = this.limit;
+ };
+
+ /**
+ * @return {string}
+ */
+ this.getCurrent = function() {
+ return this.current;
+ };
+
+ /**
+ * @param {BaseStemmer} other
+ */
+ this.copy_from = function(other) {
+ /** @protected */
+ this.current = other.current;
+ this.cursor = other.cursor;
+ this.limit = other.limit;
+ this.limit_backward = other.limit_backward;
+ this.bra = other.bra;
+ this.ket = other.ket;
+ };
+
+ /**
+ * @param {number[]} s
+ * @param {number} min
+ * @param {number} max
+ * @return {boolean}
+ */
+ this.in_grouping = function(s, min, max) {
+ /** @protected */
+ if (this.cursor >= this.limit) return false;
+ var ch = this.current.charCodeAt(this.cursor);
+ if (ch > max || ch < min) return false;
+ ch -= min;
+ if ((s[ch >>> 3] & (0x1 << (ch & 0x7))) == 0) return false;
+ this.cursor++;
+ return true;
+ };
+
+ /**
+ * @param {number[]} s
+ * @param {number} min
+ * @param {number} max
+ * @return {boolean}
+ */
+ this.go_in_grouping = function(s, min, max) {
+ /** @protected */
+ while (this.cursor < this.limit) {
+ var ch = this.current.charCodeAt(this.cursor);
+ if (ch > max || ch < min)
+ return true;
+ ch -= min;
+ if ((s[ch >>> 3] & (0x1 << (ch & 0x7))) == 0)
+ return true;
+ this.cursor++;
+ }
+ return false;
+ };
+
+ /**
+ * @param {number[]} s
+ * @param {number} min
+ * @param {number} max
+ * @return {boolean}
+ */
+ this.in_grouping_b = function(s, min, max) {
+ /** @protected */
+ if (this.cursor <= this.limit_backward) return false;
+ var ch = this.current.charCodeAt(this.cursor - 1);
+ if (ch > max || ch < min) return false;
+ ch -= min;
+ if ((s[ch >>> 3] & (0x1 << (ch & 0x7))) == 0) return false;
+ this.cursor--;
+ return true;
+ };
+
+ /**
+ * @param {number[]} s
+ * @param {number} min
+ * @param {number} max
+ * @return {boolean}
+ */
+ this.go_in_grouping_b = function(s, min, max) {
+ /** @protected */
+ while (this.cursor > this.limit_backward) {
+ var ch = this.current.charCodeAt(this.cursor - 1);
+ if (ch > max || ch < min) return true;
+ ch -= min;
+ if ((s[ch >>> 3] & (0x1 << (ch & 0x7))) == 0) return true;
+ this.cursor--;
+ }
+ return false;
+ };
+
+ /**
+ * @param {number[]} s
+ * @param {number} min
+ * @param {number} max
+ * @return {boolean}
+ */
+ this.out_grouping = function(s, min, max) {
+ /** @protected */
+ if (this.cursor >= this.limit) return false;
+ var ch = this.current.charCodeAt(this.cursor);
+ if (ch > max || ch < min) {
+ this.cursor++;
+ return true;
+ }
+ ch -= min;
+ if ((s[ch >>> 3] & (0X1 << (ch & 0x7))) == 0) {
+ this.cursor++;
+ return true;
+ }
+ return false;
+ };
+
+ /**
+ * @param {number[]} s
+ * @param {number} min
+ * @param {number} max
+ * @return {boolean}
+ */
+ this.go_out_grouping = function(s, min, max) {
+ /** @protected */
+ while (this.cursor < this.limit) {
+ var ch = this.current.charCodeAt(this.cursor);
+ if (ch <= max && ch >= min) {
+ ch -= min;
+ if ((s[ch >>> 3] & (0X1 << (ch & 0x7))) != 0) {
+ return true;
+ }
+ }
+ this.cursor++;
+ }
+ return false;
+ };
+
+ /**
+ * @param {number[]} s
+ * @param {number} min
+ * @param {number} max
+ * @return {boolean}
+ */
+ this.out_grouping_b = function(s, min, max) {
+ /** @protected */
+ if (this.cursor <= this.limit_backward) return false;
+ var ch = this.current.charCodeAt(this.cursor - 1);
+ if (ch > max || ch < min) {
+ this.cursor--;
+ return true;
+ }
+ ch -= min;
+ if ((s[ch >>> 3] & (0x1 << (ch & 0x7))) == 0) {
+ this.cursor--;
+ return true;
+ }
+ return false;
+ };
+
+ /**
+ * @param {number[]} s
+ * @param {number} min
+ * @param {number} max
+ * @return {boolean}
+ */
+ this.go_out_grouping_b = function(s, min, max) {
+ /** @protected */
+ while (this.cursor > this.limit_backward) {
+ var ch = this.current.charCodeAt(this.cursor - 1);
+ if (ch <= max && ch >= min) {
+ ch -= min;
+ if ((s[ch >>> 3] & (0x1 << (ch & 0x7))) != 0) {
+ return true;
+ }
+ }
+ this.cursor--;
+ }
+ return false;
+ };
+
+ /**
+ * @param {string} s
+ * @return {boolean}
+ */
+ this.eq_s = function(s)
+ {
+ /** @protected */
+ if (this.limit - this.cursor < s.length) return false;
+ if (this.current.slice(this.cursor, this.cursor + s.length) != s)
+ {
+ return false;
+ }
+ this.cursor += s.length;
+ return true;
+ };
+
+ /**
+ * @param {string} s
+ * @return {boolean}
+ */
+ this.eq_s_b = function(s)
+ {
+ /** @protected */
+ if (this.cursor - this.limit_backward < s.length) return false;
+ if (this.current.slice(this.cursor - s.length, this.cursor) != s)
+ {
+ return false;
+ }
+ this.cursor -= s.length;
+ return true;
+ };
+
+ /**
+ * @param {Among[]} v
+ * @return {number}
+ */
+ this.find_among = function(v)
+ {
+ /** @protected */
+ var i = 0;
+ var j = v.length;
+
+ var c = this.cursor;
+ var l = this.limit;
+
+ var common_i = 0;
+ var common_j = 0;
+
+ var first_key_inspected = false;
+
+ while (true)
+ {
+ var k = i + ((j - i) >>> 1);
+ var diff = 0;
+ var common = common_i < common_j ? common_i : common_j; // smaller
+ // w[0]: string, w[1]: substring_i, w[2]: result, w[3]: function (optional)
+ var w = v[k];
+ var i2;
+ for (i2 = common; i2 < w[0].length; i2++)
+ {
+ if (c + common == l)
+ {
+ diff = -1;
+ break;
+ }
+ diff = this.current.charCodeAt(c + common) - w[0].charCodeAt(i2);
+ if (diff != 0) break;
+ common++;
+ }
+ if (diff < 0)
+ {
+ j = k;
+ common_j = common;
+ }
+ else
+ {
+ i = k;
+ common_i = common;
+ }
+ if (j - i <= 1)
+ {
+ if (i > 0) break; // v->s has been inspected
+ if (j == i) break; // only one item in v
+
+ // - but now we need to go round once more to get
+ // v->s inspected. This looks messy, but is actually
+ // the optimal approach.
+
+ if (first_key_inspected) break;
+ first_key_inspected = true;
+ }
+ }
+ do {
+ var w = v[i];
+ if (common_i >= w[0].length)
+ {
+ this.cursor = c + w[0].length;
+ if (w.length < 4) return w[2];
+ var res = w[3](this);
+ this.cursor = c + w[0].length;
+ if (res) return w[2];
+ }
+ i = w[1];
+ } while (i >= 0);
+ return 0;
+ };
+
+ // find_among_b is for backwards processing. Same comments apply
+ /**
+ * @param {Among[]} v
+ * @return {number}
+ */
+ this.find_among_b = function(v)
+ {
+ /** @protected */
+ var i = 0;
+ var j = v.length
+
+ var c = this.cursor;
+ var lb = this.limit_backward;
+
+ var common_i = 0;
+ var common_j = 0;
+
+ var first_key_inspected = false;
+
+ while (true)
+ {
+ var k = i + ((j - i) >> 1);
+ var diff = 0;
+ var common = common_i < common_j ? common_i : common_j;
+ var w = v[k];
+ var i2;
+ for (i2 = w[0].length - 1 - common; i2 >= 0; i2--)
+ {
+ if (c - common == lb)
+ {
+ diff = -1;
+ break;
+ }
+ diff = this.current.charCodeAt(c - 1 - common) - w[0].charCodeAt(i2);
+ if (diff != 0) break;
+ common++;
+ }
+ if (diff < 0)
+ {
+ j = k;
+ common_j = common;
+ }
+ else
+ {
+ i = k;
+ common_i = common;
+ }
+ if (j - i <= 1)
+ {
+ if (i > 0) break;
+ if (j == i) break;
+ if (first_key_inspected) break;
+ first_key_inspected = true;
+ }
+ }
+ do {
+ var w = v[i];
+ if (common_i >= w[0].length)
+ {
+ this.cursor = c - w[0].length;
+ if (w.length < 4) return w[2];
+ var res = w[3](this);
+ this.cursor = c - w[0].length;
+ if (res) return w[2];
+ }
+ i = w[1];
+ } while (i >= 0);
+ return 0;
+ };
+
+ /* to replace chars between c_bra and c_ket in this.current by the
+ * chars in s.
+ */
+ /**
+ * @param {number} c_bra
+ * @param {number} c_ket
+ * @param {string} s
+ * @return {number}
+ */
+ this.replace_s = function(c_bra, c_ket, s)
+ {
+ /** @protected */
+ var adjustment = s.length - (c_ket - c_bra);
+ this.current = this.current.slice(0, c_bra) + s + this.current.slice(c_ket);
+ this.limit += adjustment;
+ if (this.cursor >= c_ket) this.cursor += adjustment;
+ else if (this.cursor > c_bra) this.cursor = c_bra;
+ return adjustment;
+ };
+
+ /**
+ * @return {boolean}
+ */
+ this.slice_check = function()
+ {
+ /** @protected */
+ if (this.bra < 0 ||
+ this.bra > this.ket ||
+ this.ket > this.limit ||
+ this.limit > this.current.length)
+ {
+ return false;
+ }
+ return true;
+ };
+
+ /**
+ * @param {number} c_bra
+ * @return {boolean}
+ */
+ this.slice_from = function(s)
+ {
+ /** @protected */
+ var result = false;
+ if (this.slice_check())
+ {
+ this.replace_s(this.bra, this.ket, s);
+ result = true;
+ }
+ return result;
+ };
+
+ /**
+ * @return {boolean}
+ */
+ this.slice_del = function()
+ {
+ /** @protected */
+ return this.slice_from("");
+ };
+
+ /**
+ * @param {number} c_bra
+ * @param {number} c_ket
+ * @param {string} s
+ */
+ this.insert = function(c_bra, c_ket, s)
+ {
+ /** @protected */
+ var adjustment = this.replace_s(c_bra, c_ket, s);
+ if (c_bra <= this.bra) this.bra += adjustment;
+ if (c_bra <= this.ket) this.ket += adjustment;
+ };
+
+ /**
+ * @return {string}
+ */
+ this.slice_to = function()
+ {
+ /** @protected */
+ var result = '';
+ if (this.slice_check())
+ {
+ result = this.current.slice(this.bra, this.ket);
+ }
+ return result;
+ };
+
+ /**
+ * @return {string}
+ */
+ this.assign_to = function()
+ {
+ /** @protected */
+ return this.current.slice(0, this.limit);
+ };
+};
diff --git a/0.8.0/_static/basic.css b/0.8.0/_static/basic.css
new file mode 100644
index 00000000..4738b2ed
--- /dev/null
+++ b/0.8.0/_static/basic.css
@@ -0,0 +1,906 @@
+/*
+ * Sphinx stylesheet -- basic theme.
+ */
+
+/* -- main layout ----------------------------------------------------------- */
+
+div.clearer {
+ clear: both;
+}
+
+div.section::after {
+ display: block;
+ content: '';
+ clear: left;
+}
+
+/* -- relbar ---------------------------------------------------------------- */
+
+div.related {
+ width: 100%;
+ font-size: 90%;
+}
+
+div.related h3 {
+ display: none;
+}
+
+div.related ul {
+ margin: 0;
+ padding: 0 0 0 10px;
+ list-style: none;
+}
+
+div.related li {
+ display: inline;
+}
+
+div.related li.right {
+ float: right;
+ margin-right: 5px;
+}
+
+/* -- sidebar --------------------------------------------------------------- */
+
+div.sphinxsidebarwrapper {
+ padding: 10px 5px 0 10px;
+}
+
+div.sphinxsidebar {
+ float: left;
+ width: 230px;
+ margin-left: -100%;
+ font-size: 90%;
+ word-wrap: break-word;
+ overflow-wrap : break-word;
+}
+
+div.sphinxsidebar ul {
+ list-style: none;
+}
+
+div.sphinxsidebar ul ul,
+div.sphinxsidebar ul.want-points {
+ margin-left: 20px;
+ list-style: square;
+}
+
+div.sphinxsidebar ul ul {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+div.sphinxsidebar form {
+ margin-top: 10px;
+}
+
+div.sphinxsidebar input {
+ border: 1px solid #98dbcc;
+ font-family: sans-serif;
+ font-size: 1em;
+}
+
+div.sphinxsidebar #searchbox form.search {
+ overflow: hidden;
+}
+
+div.sphinxsidebar #searchbox input[type="text"] {
+ float: left;
+ width: 80%;
+ padding: 0.25em;
+ box-sizing: border-box;
+}
+
+div.sphinxsidebar #searchbox input[type="submit"] {
+ float: left;
+ width: 20%;
+ border-left: none;
+ padding: 0.25em;
+ box-sizing: border-box;
+}
+
+
+img {
+ border: 0;
+ max-width: 100%;
+}
+
+/* -- search page ----------------------------------------------------------- */
+
+ul.search {
+ margin-top: 10px;
+}
+
+ul.search li {
+ padding: 5px 0;
+}
+
+ul.search li a {
+ font-weight: bold;
+}
+
+ul.search li p.context {
+ color: #888;
+ margin: 2px 0 0 30px;
+ text-align: left;
+}
+
+ul.keywordmatches li.goodmatch a {
+ font-weight: bold;
+}
+
+/* -- index page ------------------------------------------------------------ */
+
+table.contentstable {
+ width: 90%;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+table.contentstable p.biglink {
+ line-height: 150%;
+}
+
+a.biglink {
+ font-size: 1.3em;
+}
+
+span.linkdescr {
+ font-style: italic;
+ padding-top: 5px;
+ font-size: 90%;
+}
+
+/* -- general index --------------------------------------------------------- */
+
+table.indextable {
+ width: 100%;
+}
+
+table.indextable td {
+ text-align: left;
+ vertical-align: top;
+}
+
+table.indextable ul {
+ margin-top: 0;
+ margin-bottom: 0;
+ list-style-type: none;
+}
+
+table.indextable > tbody > tr > td > ul {
+ padding-left: 0em;
+}
+
+table.indextable tr.pcap {
+ height: 10px;
+}
+
+table.indextable tr.cap {
+ margin-top: 10px;
+ background-color: #f2f2f2;
+}
+
+img.toggler {
+ margin-right: 3px;
+ margin-top: 3px;
+ cursor: pointer;
+}
+
+div.modindex-jumpbox {
+ border-top: 1px solid #ddd;
+ border-bottom: 1px solid #ddd;
+ margin: 1em 0 1em 0;
+ padding: 0.4em;
+}
+
+div.genindex-jumpbox {
+ border-top: 1px solid #ddd;
+ border-bottom: 1px solid #ddd;
+ margin: 1em 0 1em 0;
+ padding: 0.4em;
+}
+
+/* -- domain module index --------------------------------------------------- */
+
+table.modindextable td {
+ padding: 2px;
+ border-collapse: collapse;
+}
+
+/* -- general body styles --------------------------------------------------- */
+
+div.body {
+ min-width: 360px;
+ max-width: 800px;
+}
+
+div.body p, div.body dd, div.body li, div.body blockquote {
+ -moz-hyphens: auto;
+ -ms-hyphens: auto;
+ -webkit-hyphens: auto;
+ hyphens: auto;
+}
+
+a.headerlink {
+ visibility: hidden;
+}
+
+a:visited {
+ color: #551A8B;
+}
+
+h1:hover > a.headerlink,
+h2:hover > a.headerlink,
+h3:hover > a.headerlink,
+h4:hover > a.headerlink,
+h5:hover > a.headerlink,
+h6:hover > a.headerlink,
+dt:hover > a.headerlink,
+caption:hover > a.headerlink,
+p.caption:hover > a.headerlink,
+div.code-block-caption:hover > a.headerlink {
+ visibility: visible;
+}
+
+div.body p.caption {
+ text-align: inherit;
+}
+
+div.body td {
+ text-align: left;
+}
+
+.first {
+ margin-top: 0 !important;
+}
+
+p.rubric {
+ margin-top: 30px;
+ font-weight: bold;
+}
+
+img.align-left, figure.align-left, .figure.align-left, object.align-left {
+ clear: left;
+ float: left;
+ margin-right: 1em;
+}
+
+img.align-right, figure.align-right, .figure.align-right, object.align-right {
+ clear: right;
+ float: right;
+ margin-left: 1em;
+}
+
+img.align-center, figure.align-center, .figure.align-center, object.align-center {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+img.align-default, figure.align-default, .figure.align-default {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.align-left {
+ text-align: left;
+}
+
+.align-center {
+ text-align: center;
+}
+
+.align-default {
+ text-align: center;
+}
+
+.align-right {
+ text-align: right;
+}
+
+/* -- sidebars -------------------------------------------------------------- */
+
+div.sidebar,
+aside.sidebar {
+ margin: 0 0 0.5em 1em;
+ border: 1px solid #ddb;
+ padding: 7px;
+ background-color: #ffe;
+ width: 40%;
+ float: right;
+ clear: right;
+ overflow-x: auto;
+}
+
+p.sidebar-title {
+ font-weight: bold;
+}
+
+nav.contents,
+aside.topic,
+div.admonition, div.topic, blockquote {
+ clear: left;
+}
+
+/* -- topics ---------------------------------------------------------------- */
+
+nav.contents,
+aside.topic,
+div.topic {
+ border: 1px solid #ccc;
+ padding: 7px;
+ margin: 10px 0 10px 0;
+}
+
+p.topic-title {
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 10px;
+}
+
+/* -- admonitions ----------------------------------------------------------- */
+
+div.admonition {
+ margin-top: 10px;
+ margin-bottom: 10px;
+ padding: 7px;
+}
+
+div.admonition dt {
+ font-weight: bold;
+}
+
+p.admonition-title {
+ margin: 0px 10px 5px 0px;
+ font-weight: bold;
+}
+
+div.body p.centered {
+ text-align: center;
+ margin-top: 25px;
+}
+
+/* -- content of sidebars/topics/admonitions -------------------------------- */
+
+div.sidebar > :last-child,
+aside.sidebar > :last-child,
+nav.contents > :last-child,
+aside.topic > :last-child,
+div.topic > :last-child,
+div.admonition > :last-child {
+ margin-bottom: 0;
+}
+
+div.sidebar::after,
+aside.sidebar::after,
+nav.contents::after,
+aside.topic::after,
+div.topic::after,
+div.admonition::after,
+blockquote::after {
+ display: block;
+ content: '';
+ clear: both;
+}
+
+/* -- tables ---------------------------------------------------------------- */
+
+table.docutils {
+ margin-top: 10px;
+ margin-bottom: 10px;
+ border: 0;
+ border-collapse: collapse;
+}
+
+table.align-center {
+ margin-left: auto;
+ margin-right: auto;
+}
+
+table.align-default {
+ margin-left: auto;
+ margin-right: auto;
+}
+
+table caption span.caption-number {
+ font-style: italic;
+}
+
+table caption span.caption-text {
+}
+
+table.docutils td, table.docutils th {
+ padding: 1px 8px 1px 5px;
+ border-top: 0;
+ border-left: 0;
+ border-right: 0;
+ border-bottom: 1px solid #aaa;
+}
+
+th {
+ text-align: left;
+ padding-right: 5px;
+}
+
+table.citation {
+ border-left: solid 1px gray;
+ margin-left: 1px;
+}
+
+table.citation td {
+ border-bottom: none;
+}
+
+th > :first-child,
+td > :first-child {
+ margin-top: 0px;
+}
+
+th > :last-child,
+td > :last-child {
+ margin-bottom: 0px;
+}
+
+/* -- figures --------------------------------------------------------------- */
+
+div.figure, figure {
+ margin: 0.5em;
+ padding: 0.5em;
+}
+
+div.figure p.caption, figcaption {
+ padding: 0.3em;
+}
+
+div.figure p.caption span.caption-number,
+figcaption span.caption-number {
+ font-style: italic;
+}
+
+div.figure p.caption span.caption-text,
+figcaption span.caption-text {
+}
+
+/* -- field list styles ----------------------------------------------------- */
+
+table.field-list td, table.field-list th {
+ border: 0 !important;
+}
+
+.field-list ul {
+ margin: 0;
+ padding-left: 1em;
+}
+
+.field-list p {
+ margin: 0;
+}
+
+.field-name {
+ -moz-hyphens: manual;
+ -ms-hyphens: manual;
+ -webkit-hyphens: manual;
+ hyphens: manual;
+}
+
+/* -- hlist styles ---------------------------------------------------------- */
+
+table.hlist {
+ margin: 1em 0;
+}
+
+table.hlist td {
+ vertical-align: top;
+}
+
+/* -- object description styles --------------------------------------------- */
+
+.sig {
+ font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace;
+}
+
+.sig-name, code.descname {
+ background-color: transparent;
+ font-weight: bold;
+}
+
+.sig-name {
+ font-size: 1.1em;
+}
+
+code.descname {
+ font-size: 1.2em;
+}
+
+.sig-prename, code.descclassname {
+ background-color: transparent;
+}
+
+.optional {
+ font-size: 1.3em;
+}
+
+.sig-paren {
+ font-size: larger;
+}
+
+.sig-param.n {
+ font-style: italic;
+}
+
+/* C++ specific styling */
+
+.sig-inline.c-texpr,
+.sig-inline.cpp-texpr {
+ font-family: unset;
+}
+
+.sig.c .k, .sig.c .kt,
+.sig.cpp .k, .sig.cpp .kt {
+ color: #0033B3;
+}
+
+.sig.c .m,
+.sig.cpp .m {
+ color: #1750EB;
+}
+
+.sig.c .s, .sig.c .sc,
+.sig.cpp .s, .sig.cpp .sc {
+ color: #067D17;
+}
+
+
+/* -- other body styles ----------------------------------------------------- */
+
+ol.arabic {
+ list-style: decimal;
+}
+
+ol.loweralpha {
+ list-style: lower-alpha;
+}
+
+ol.upperalpha {
+ list-style: upper-alpha;
+}
+
+ol.lowerroman {
+ list-style: lower-roman;
+}
+
+ol.upperroman {
+ list-style: upper-roman;
+}
+
+:not(li) > ol > li:first-child > :first-child,
+:not(li) > ul > li:first-child > :first-child {
+ margin-top: 0px;
+}
+
+:not(li) > ol > li:last-child > :last-child,
+:not(li) > ul > li:last-child > :last-child {
+ margin-bottom: 0px;
+}
+
+ol.simple ol p,
+ol.simple ul p,
+ul.simple ol p,
+ul.simple ul p {
+ margin-top: 0;
+}
+
+ol.simple > li:not(:first-child) > p,
+ul.simple > li:not(:first-child) > p {
+ margin-top: 0;
+}
+
+ol.simple p,
+ul.simple p {
+ margin-bottom: 0;
+}
+
+aside.footnote > span,
+div.citation > span {
+ float: left;
+}
+aside.footnote > span:last-of-type,
+div.citation > span:last-of-type {
+ padding-right: 0.5em;
+}
+aside.footnote > p {
+ margin-left: 2em;
+}
+div.citation > p {
+ margin-left: 4em;
+}
+aside.footnote > p:last-of-type,
+div.citation > p:last-of-type {
+ margin-bottom: 0em;
+}
+aside.footnote > p:last-of-type:after,
+div.citation > p:last-of-type:after {
+ content: "";
+ clear: both;
+}
+
+dl.field-list {
+ display: grid;
+ grid-template-columns: fit-content(30%) auto;
+}
+
+dl.field-list > dt {
+ font-weight: bold;
+ word-break: break-word;
+ padding-left: 0.5em;
+ padding-right: 5px;
+}
+
+dl.field-list > dd {
+ padding-left: 0.5em;
+ margin-top: 0em;
+ margin-left: 0em;
+ margin-bottom: 0em;
+}
+
+dl {
+ margin-bottom: 15px;
+}
+
+dd > :first-child {
+ margin-top: 0px;
+}
+
+dd ul, dd table {
+ margin-bottom: 10px;
+}
+
+dd {
+ margin-top: 3px;
+ margin-bottom: 10px;
+ margin-left: 30px;
+}
+
+.sig dd {
+ margin-top: 0px;
+ margin-bottom: 0px;
+}
+
+.sig dl {
+ margin-top: 0px;
+ margin-bottom: 0px;
+}
+
+dl > dd:last-child,
+dl > dd:last-child > :last-child {
+ margin-bottom: 0;
+}
+
+dt:target, span.highlighted {
+ background-color: #fbe54e;
+}
+
+rect.highlighted {
+ fill: #fbe54e;
+}
+
+dl.glossary dt {
+ font-weight: bold;
+ font-size: 1.1em;
+}
+
+.versionmodified {
+ font-style: italic;
+}
+
+.system-message {
+ background-color: #fda;
+ padding: 5px;
+ border: 3px solid red;
+}
+
+.footnote:target {
+ background-color: #ffa;
+}
+
+.line-block {
+ display: block;
+ margin-top: 1em;
+ margin-bottom: 1em;
+}
+
+.line-block .line-block {
+ margin-top: 0;
+ margin-bottom: 0;
+ margin-left: 1.5em;
+}
+
+.guilabel, .menuselection {
+ font-family: sans-serif;
+}
+
+.accelerator {
+ text-decoration: underline;
+}
+
+.classifier {
+ font-style: oblique;
+}
+
+.classifier:before {
+ font-style: normal;
+ margin: 0 0.5em;
+ content: ":";
+ display: inline-block;
+}
+
+abbr, acronym {
+ border-bottom: dotted 1px;
+ cursor: help;
+}
+
+/* -- code displays --------------------------------------------------------- */
+
+pre {
+ overflow: auto;
+ overflow-y: hidden; /* fixes display issues on Chrome browsers */
+}
+
+pre, div[class*="highlight-"] {
+ clear: both;
+}
+
+span.pre {
+ -moz-hyphens: none;
+ -ms-hyphens: none;
+ -webkit-hyphens: none;
+ hyphens: none;
+ white-space: nowrap;
+}
+
+div[class*="highlight-"] {
+ margin: 1em 0;
+}
+
+td.linenos pre {
+ border: 0;
+ background-color: transparent;
+ color: #aaa;
+}
+
+table.highlighttable {
+ display: block;
+}
+
+table.highlighttable tbody {
+ display: block;
+}
+
+table.highlighttable tr {
+ display: flex;
+}
+
+table.highlighttable td {
+ margin: 0;
+ padding: 0;
+}
+
+table.highlighttable td.linenos {
+ padding-right: 0.5em;
+}
+
+table.highlighttable td.code {
+ flex: 1;
+ overflow: hidden;
+}
+
+.highlight .hll {
+ display: block;
+}
+
+div.highlight pre,
+table.highlighttable pre {
+ margin: 0;
+}
+
+div.code-block-caption + div {
+ margin-top: 0;
+}
+
+div.code-block-caption {
+ margin-top: 1em;
+ padding: 2px 5px;
+ font-size: small;
+}
+
+div.code-block-caption code {
+ background-color: transparent;
+}
+
+table.highlighttable td.linenos,
+span.linenos,
+div.highlight span.gp { /* gp: Generic.Prompt */
+ user-select: none;
+ -webkit-user-select: text; /* Safari fallback only */
+ -webkit-user-select: none; /* Chrome/Safari */
+ -moz-user-select: none; /* Firefox */
+ -ms-user-select: none; /* IE10+ */
+}
+
+div.code-block-caption span.caption-number {
+ padding: 0.1em 0.3em;
+ font-style: italic;
+}
+
+div.code-block-caption span.caption-text {
+}
+
+div.literal-block-wrapper {
+ margin: 1em 0;
+}
+
+code.xref, a code {
+ background-color: transparent;
+ font-weight: bold;
+}
+
+h1 code, h2 code, h3 code, h4 code, h5 code, h6 code {
+ background-color: transparent;
+}
+
+.viewcode-link {
+ float: right;
+}
+
+.viewcode-back {
+ float: right;
+ font-family: sans-serif;
+}
+
+div.viewcode-block:target {
+ margin: -1px -10px;
+ padding: 0 10px;
+}
+
+/* -- math display ---------------------------------------------------------- */
+
+img.math {
+ vertical-align: middle;
+}
+
+div.body div.math p {
+ text-align: center;
+}
+
+span.eqno {
+ float: right;
+}
+
+span.eqno a.headerlink {
+ position: absolute;
+ z-index: 1;
+}
+
+div.math:hover a.headerlink {
+ visibility: visible;
+}
+
+/* -- printout stylesheet --------------------------------------------------- */
+
+@media print {
+ div.document,
+ div.documentwrapper,
+ div.bodywrapper {
+ margin: 0 !important;
+ width: 100%;
+ }
+
+ div.sphinxsidebar,
+ div.related,
+ div.footer,
+ #top-link {
+ display: none;
+ }
+}
\ No newline at end of file
diff --git a/latest/_static/doctools.js b/0.8.0/_static/doctools.js
similarity index 95%
copy from latest/_static/doctools.js
copy to 0.8.0/_static/doctools.js
index 0398ebb9..807cdb17 100644
--- a/latest/_static/doctools.js
+++ b/0.8.0/_static/doctools.js
@@ -59,7 +59,7 @@ const Documentation = {
Object.assign(Documentation.TRANSLATIONS, catalog.messages);
Documentation.PLURAL_EXPR = new Function(
"n",
- `return (${catalog.plural_expr})`
+ `return (${catalog.plural_expr})`,
);
Documentation.LOCALE = catalog.locale;
},
@@ -89,7 +89,7 @@ const Documentation = {
const togglerElements = document.querySelectorAll("img.toggler");
togglerElements.forEach((el) =>
- el.addEventListener("click", (event) => toggler(event.currentTarget))
+ el.addEventListener("click", (event) => toggler(event.currentTarget)),
);
togglerElements.forEach((el) => (el.style.display = ""));
if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler);
@@ -98,14 +98,15 @@ const Documentation = {
initOnKeyListeners: () => {
// only install a listener if it is really needed
if (
- !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS &&
- !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS
+ !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS
+ && !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS
)
return;
document.addEventListener("keydown", (event) => {
// bail for input elements
- if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return;
+ if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName))
+ return;
// bail with special keys
if (event.altKey || event.ctrlKey || event.metaKey) return;
diff --git a/0.8.0/_static/documentation_options.js b/0.8.0/_static/documentation_options.js
new file mode 100644
index 00000000..7e4c114f
--- /dev/null
+++ b/0.8.0/_static/documentation_options.js
@@ -0,0 +1,13 @@
+const DOCUMENTATION_OPTIONS = {
+ VERSION: '',
+ LANGUAGE: 'en',
+ COLLAPSE_INDEX: false,
+ BUILDER: 'html',
+ FILE_SUFFIX: '.html',
+ LINK_SUFFIX: '.html',
+ HAS_SOURCE: true,
+ SOURCELINK_SUFFIX: '.txt',
+ NAVIGATION_WITH_KEYS: false,
+ SHOW_SEARCH_SUMMARY: true,
+ ENABLE_SEARCH_SHORTCUTS: true,
+};
\ No newline at end of file
diff --git a/0.8.0/_static/english-stemmer.js b/0.8.0/_static/english-stemmer.js
new file mode 100644
index 00000000..056760ee
--- /dev/null
+++ b/0.8.0/_static/english-stemmer.js
@@ -0,0 +1,1066 @@
+// Generated from english.sbl by Snowball 3.0.1 - https://snowballstem.org/
+
+/**@constructor*/
+var EnglishStemmer = function() {
+ var base = new BaseStemmer();
+
+ /** @const */ var a_0 = [
+ ["arsen", -1, -1],
+ ["commun", -1, -1],
+ ["emerg", -1, -1],
+ ["gener", -1, -1],
+ ["later", -1, -1],
+ ["organ", -1, -1],
+ ["past", -1, -1],
+ ["univers", -1, -1]
+ ];
+
+ /** @const */ var a_1 = [
+ ["'", -1, 1],
+ ["'s'", 0, 1],
+ ["'s", -1, 1]
+ ];
+
+ /** @const */ var a_2 = [
+ ["ied", -1, 2],
+ ["s", -1, 3],
+ ["ies", 1, 2],
+ ["sses", 1, 1],
+ ["ss", 1, -1],
+ ["us", 1, -1]
+ ];
+
+ /** @const */ var a_3 = [
+ ["succ", -1, 1],
+ ["proc", -1, 1],
+ ["exc", -1, 1]
+ ];
+
+ /** @const */ var a_4 = [
+ ["even", -1, 2],
+ ["cann", -1, 2],
+ ["inn", -1, 2],
+ ["earr", -1, 2],
+ ["herr", -1, 2],
+ ["out", -1, 2],
+ ["y", -1, 1]
+ ];
+
+ /** @const */ var a_5 = [
+ ["", -1, -1],
+ ["ed", 0, 2],
+ ["eed", 1, 1],
+ ["ing", 0, 3],
+ ["edly", 0, 2],
+ ["eedly", 4, 1],
+ ["ingly", 0, 2]
+ ];
+
+ /** @const */ var a_6 = [
+ ["", -1, 3],
+ ["bb", 0, 2],
+ ["dd", 0, 2],
+ ["ff", 0, 2],
+ ["gg", 0, 2],
+ ["bl", 0, 1],
+ ["mm", 0, 2],
+ ["nn", 0, 2],
+ ["pp", 0, 2],
+ ["rr", 0, 2],
+ ["at", 0, 1],
+ ["tt", 0, 2],
+ ["iz", 0, 1]
+ ];
+
+ /** @const */ var a_7 = [
+ ["anci", -1, 3],
+ ["enci", -1, 2],
+ ["ogi", -1, 14],
+ ["li", -1, 16],
+ ["bli", 3, 12],
+ ["abli", 4, 4],
+ ["alli", 3, 8],
+ ["fulli", 3, 9],
+ ["lessli", 3, 15],
+ ["ousli", 3, 10],
+ ["entli", 3, 5],
+ ["aliti", -1, 8],
+ ["biliti", -1, 12],
+ ["iviti", -1, 11],
+ ["tional", -1, 1],
+ ["ational", 14, 7],
+ ["alism", -1, 8],
+ ["ation", -1, 7],
+ ["ization", 17, 6],
+ ["izer", -1, 6],
+ ["ator", -1, 7],
+ ["iveness", -1, 11],
+ ["fulness", -1, 9],
+ ["ousness", -1, 10],
+ ["ogist", -1, 13]
+ ];
+
+ /** @const */ var a_8 = [
+ ["icate", -1, 4],
+ ["ative", -1, 6],
+ ["alize", -1, 3],
+ ["iciti", -1, 4],
+ ["ical", -1, 4],
+ ["tional", -1, 1],
+ ["ational", 5, 2],
+ ["ful", -1, 5],
+ ["ness", -1, 5]
+ ];
+
+ /** @const */ var a_9 = [
+ ["ic", -1, 1],
+ ["ance", -1, 1],
+ ["ence", -1, 1],
+ ["able", -1, 1],
+ ["ible", -1, 1],
+ ["ate", -1, 1],
+ ["ive", -1, 1],
+ ["ize", -1, 1],
+ ["iti", -1, 1],
+ ["al", -1, 1],
+ ["ism", -1, 1],
+ ["ion", -1, 2],
+ ["er", -1, 1],
+ ["ous", -1, 1],
+ ["ant", -1, 1],
+ ["ent", -1, 1],
+ ["ment", 15, 1],
+ ["ement", 16, 1]
+ ];
+
+ /** @const */ var a_10 = [
+ ["e", -1, 1],
+ ["l", -1, 2]
+ ];
+
+ /** @const */ var a_11 = [
+ ["andes", -1, -1],
+ ["atlas", -1, -1],
+ ["bias", -1, -1],
+ ["cosmos", -1, -1],
+ ["early", -1, 5],
+ ["gently", -1, 3],
+ ["howe", -1, -1],
+ ["idly", -1, 2],
+ ["news", -1, -1],
+ ["only", -1, 6],
+ ["singly", -1, 7],
+ ["skies", -1, 1],
+ ["sky", -1, -1],
+ ["ugly", -1, 4]
+ ];
+
+ /** @const */ var /** Array<int> */ g_aeo = [17, 64];
+
+ /** @const */ var /** Array<int> */ g_v = [17, 65, 16, 1];
+
+ /** @const */ var /** Array<int> */ g_v_WXY = [1, 17, 65, 208, 1];
+
+ /** @const */ var /** Array<int> */ g_valid_LI = [55, 141, 2];
+
+ var /** boolean */ B_Y_found = false;
+ var /** number */ I_p2 = 0;
+ var /** number */ I_p1 = 0;
+
+
+ /** @return {boolean} */
+ function r_prelude() {
+ B_Y_found = false;
+ /** @const */ var /** number */ v_1 = base.cursor;
+ lab0: {
+ base.bra = base.cursor;
+ if (!(base.eq_s("'")))
+ {
+ break lab0;
+ }
+ base.ket = base.cursor;
+ if (!base.slice_del())
+ {
+ return false;
+ }
+ }
+ base.cursor = v_1;
+ /** @const */ var /** number */ v_2 = base.cursor;
+ lab1: {
+ base.bra = base.cursor;
+ if (!(base.eq_s("y")))
+ {
+ break lab1;
+ }
+ base.ket = base.cursor;
+ if (!base.slice_from("Y"))
+ {
+ return false;
+ }
+ B_Y_found = true;
+ }
+ base.cursor = v_2;
+ /** @const */ var /** number */ v_3 = base.cursor;
+ lab2: {
+ while(true)
+ {
+ /** @const */ var /** number */ v_4 = base.cursor;
+ lab3: {
+ golab4: while(true)
+ {
+ /** @const */ var /** number */ v_5 = base.cursor;
+ lab5: {
+ if (!(base.in_grouping(g_v, 97, 121)))
+ {
+ break lab5;
+ }
+ base.bra = base.cursor;
+ if (!(base.eq_s("y")))
+ {
+ break lab5;
+ }
+ base.ket = base.cursor;
+ base.cursor = v_5;
+ break golab4;
+ }
+ base.cursor = v_5;
+ if (base.cursor >= base.limit)
+ {
+ break lab3;
+ }
+ base.cursor++;
+ }
+ if (!base.slice_from("Y"))
+ {
+ return false;
+ }
+ B_Y_found = true;
+ continue;
+ }
+ base.cursor = v_4;
+ break;
+ }
+ }
+ base.cursor = v_3;
+ return true;
+ };
+
+ /** @return {boolean} */
+ function r_mark_regions() {
+ I_p1 = base.limit;
+ I_p2 = base.limit;
+ /** @const */ var /** number */ v_1 = base.cursor;
+ lab0: {
+ lab1: {
+ /** @const */ var /** number */ v_2 = base.cursor;
+ lab2: {
+ if (base.find_among(a_0) == 0)
+ {
+ break lab2;
+ }
+ break lab1;
+ }
+ base.cursor = v_2;
+ if (!base.go_out_grouping(g_v, 97, 121))
+ {
+ break lab0;
+ }
+ base.cursor++;
+ if (!base.go_in_grouping(g_v, 97, 121))
+ {
+ break lab0;
+ }
+ base.cursor++;
+ }
+ I_p1 = base.cursor;
+ if (!base.go_out_grouping(g_v, 97, 121))
+ {
+ break lab0;
+ }
+ base.cursor++;
+ if (!base.go_in_grouping(g_v, 97, 121))
+ {
+ break lab0;
+ }
+ base.cursor++;
+ I_p2 = base.cursor;
+ }
+ base.cursor = v_1;
+ return true;
+ };
+
+ /** @return {boolean} */
+ function r_shortv() {
+ lab0: {
+ /** @const */ var /** number */ v_1 = base.limit - base.cursor;
+ lab1: {
+ if (!(base.out_grouping_b(g_v_WXY, 89, 121)))
+ {
+ break lab1;
+ }
+ if (!(base.in_grouping_b(g_v, 97, 121)))
+ {
+ break lab1;
+ }
+ if (!(base.out_grouping_b(g_v, 97, 121)))
+ {
+ break lab1;
+ }
+ break lab0;
+ }
+ base.cursor = base.limit - v_1;
+ lab2: {
+ if (!(base.out_grouping_b(g_v, 97, 121)))
+ {
+ break lab2;
+ }
+ if (!(base.in_grouping_b(g_v, 97, 121)))
+ {
+ break lab2;
+ }
+ if (base.cursor > base.limit_backward)
+ {
+ break lab2;
+ }
+ break lab0;
+ }
+ base.cursor = base.limit - v_1;
+ if (!(base.eq_s_b("past")))
+ {
+ return false;
+ }
+ }
+ return true;
+ };
+
+ /** @return {boolean} */
+ function r_R1() {
+ return I_p1 <= base.cursor;
+ };
+
+ /** @return {boolean} */
+ function r_R2() {
+ return I_p2 <= base.cursor;
+ };
+
+ /** @return {boolean} */
+ function r_Step_1a() {
+ var /** number */ among_var;
+ /** @const */ var /** number */ v_1 = base.limit - base.cursor;
+ lab0: {
+ base.ket = base.cursor;
+ if (base.find_among_b(a_1) == 0)
+ {
+ base.cursor = base.limit - v_1;
+ break lab0;
+ }
+ base.bra = base.cursor;
+ if (!base.slice_del())
+ {
+ return false;
+ }
+ }
+ base.ket = base.cursor;
+ among_var = base.find_among_b(a_2);
+ if (among_var == 0)
+ {
+ return false;
+ }
+ base.bra = base.cursor;
+ switch (among_var) {
+ case 1:
+ if (!base.slice_from("ss"))
+ {
+ return false;
+ }
+ break;
+ case 2:
+ lab1: {
+ /** @const */ var /** number */ v_2 = base.limit - base.cursor;
+ lab2: {
+ {
+ /** @const */ var /** number */ c1 = base.cursor - 2;
+ if (c1 < base.limit_backward)
+ {
+ break lab2;
+ }
+ base.cursor = c1;
+ }
+ if (!base.slice_from("i"))
+ {
+ return false;
+ }
+ break lab1;
+ }
+ base.cursor = base.limit - v_2;
+ if (!base.slice_from("ie"))
+ {
+ return false;
+ }
+ }
+ break;
+ case 3:
+ if (base.cursor <= base.limit_backward)
+ {
+ return false;
+ }
+ base.cursor--;
+ if (!base.go_out_grouping_b(g_v, 97, 121))
+ {
+ return false;
+ }
+ base.cursor--;
+ if (!base.slice_del())
+ {
+ return false;
+ }
+ break;
+ }
+ return true;
+ };
+
+ /** @return {boolean} */
+ function r_Step_1b() {
+ var /** number */ among_var;
+ base.ket = base.cursor;
+ among_var = base.find_among_b(a_5);
+ base.bra = base.cursor;
+ lab0: {
+ /** @const */ var /** number */ v_1 = base.limit - base.cursor;
+ lab1: {
+ switch (among_var) {
+ case 1:
+ /** @const */ var /** number */ v_2 = base.limit - base.cursor;
+ lab2: {
+ lab3: {
+ /** @const */ var /** number */ v_3 = base.limit - base.cursor;
+ lab4: {
+ if (base.find_among_b(a_3) == 0)
+ {
+ break lab4;
+ }
+ if (base.cursor > base.limit_backward)
+ {
+ break lab4;
+ }
+ break lab3;
+ }
+ base.cursor = base.limit - v_3;
+ if (!r_R1())
+ {
+ break lab2;
+ }
+ if (!base.slice_from("ee"))
+ {
+ return false;
+ }
+ }
+ }
+ base.cursor = base.limit - v_2;
+ break;
+ case 2:
+ break lab1;
+ case 3:
+ among_var = base.find_among_b(a_4);
+ if (among_var == 0)
+ {
+ break lab1;
+ }
+ switch (among_var) {
+ case 1:
+ /** @const */ var /** number */ v_4 = base.limit - base.cursor;
+ if (!(base.out_grouping_b(g_v, 97, 121)))
+ {
+ break lab1;
+ }
+ if (base.cursor > base.limit_backward)
+ {
+ break lab1;
+ }
+ base.cursor = base.limit - v_4;
+ base.bra = base.cursor;
+ if (!base.slice_from("ie"))
+ {
+ return false;
+ }
+ break;
+ case 2:
+ if (base.cursor > base.limit_backward)
+ {
+ break lab1;
+ }
+ break;
+ }
+ break;
+ }
+ break lab0;
+ }
+ base.cursor = base.limit - v_1;
+ /** @const */ var /** number */ v_5 = base.limit - base.cursor;
+ if (!base.go_out_grouping_b(g_v, 97, 121))
+ {
+ return false;
+ }
+ base.cursor--;
+ base.cursor = base.limit - v_5;
+ if (!base.slice_del())
+ {
+ return false;
+ }
+ base.ket = base.cursor;
+ base.bra = base.cursor;
+ /** @const */ var /** number */ v_6 = base.limit - base.cursor;
+ among_var = base.find_among_b(a_6);
+ switch (among_var) {
+ case 1:
+ if (!base.slice_from("e"))
+ {
+ return false;
+ }
+ return false;
+ case 2:
+ {
+ /** @const */ var /** number */ v_7 = base.limit - base.cursor;
+ lab5: {
+ if (!(base.in_grouping_b(g_aeo, 97, 111)))
+ {
+ break lab5;
+ }
+ if (base.cursor > base.limit_backward)
+ {
+ break lab5;
+ }
+ return false;
+ }
+ base.cursor = base.limit - v_7;
+ }
+ break;
+ case 3:
+ if (base.cursor != I_p1)
+ {
+ return false;
+ }
+ /** @const */ var /** number */ v_8 = base.limit - base.cursor;
+ if (!r_shortv())
+ {
+ return false;
+ }
+ base.cursor = base.limit - v_8;
+ if (!base.slice_from("e"))
+ {
+ return false;
+ }
+ return false;
+ }
+ base.cursor = base.limit - v_6;
+ base.ket = base.cursor;
+ if (base.cursor <= base.limit_backward)
+ {
+ return false;
+ }
+ base.cursor--;
+ base.bra = base.cursor;
+ if (!base.slice_del())
+ {
+ return false;
+ }
+ }
+ return true;
+ };
+
+ /** @return {boolean} */
+ function r_Step_1c() {
+ base.ket = base.cursor;
+ lab0: {
+ /** @const */ var /** number */ v_1 = base.limit - base.cursor;
+ lab1: {
+ if (!(base.eq_s_b("y")))
+ {
+ break lab1;
+ }
+ break lab0;
+ }
+ base.cursor = base.limit - v_1;
+ if (!(base.eq_s_b("Y")))
+ {
+ return false;
+ }
+ }
+ base.bra = base.cursor;
+ if (!(base.out_grouping_b(g_v, 97, 121)))
+ {
+ return false;
+ }
+ lab2: {
+ if (base.cursor > base.limit_backward)
+ {
+ break lab2;
+ }
+ return false;
+ }
+ if (!base.slice_from("i"))
+ {
+ return false;
+ }
+ return true;
+ };
+
+ /** @return {boolean} */
+ function r_Step_2() {
+ var /** number */ among_var;
+ base.ket = base.cursor;
+ among_var = base.find_among_b(a_7);
+ if (among_var == 0)
+ {
+ return false;
+ }
+ base.bra = base.cursor;
+ if (!r_R1())
+ {
+ return false;
+ }
+ switch (among_var) {
+ case 1:
+ if (!base.slice_from("tion"))
+ {
+ return false;
+ }
+ break;
+ case 2:
+ if (!base.slice_from("ence"))
+ {
+ return false;
+ }
+ break;
+ case 3:
+ if (!base.slice_from("ance"))
+ {
+ return false;
+ }
+ break;
+ case 4:
+ if (!base.slice_from("able"))
+ {
+ return false;
+ }
+ break;
+ case 5:
+ if (!base.slice_from("ent"))
+ {
+ return false;
+ }
+ break;
+ case 6:
+ if (!base.slice_from("ize"))
+ {
+ return false;
+ }
+ break;
+ case 7:
+ if (!base.slice_from("ate"))
+ {
+ return false;
+ }
+ break;
+ case 8:
+ if (!base.slice_from("al"))
+ {
+ return false;
+ }
+ break;
+ case 9:
+ if (!base.slice_from("ful"))
+ {
+ return false;
+ }
+ break;
+ case 10:
+ if (!base.slice_from("ous"))
+ {
+ return false;
+ }
+ break;
+ case 11:
+ if (!base.slice_from("ive"))
+ {
+ return false;
+ }
+ break;
+ case 12:
+ if (!base.slice_from("ble"))
+ {
+ return false;
+ }
+ break;
+ case 13:
+ if (!base.slice_from("og"))
+ {
+ return false;
+ }
+ break;
+ case 14:
+ if (!(base.eq_s_b("l")))
+ {
+ return false;
+ }
+ if (!base.slice_from("og"))
+ {
+ return false;
+ }
+ break;
+ case 15:
+ if (!base.slice_from("less"))
+ {
+ return false;
+ }
+ break;
+ case 16:
+ if (!(base.in_grouping_b(g_valid_LI, 99, 116)))
+ {
+ return false;
+ }
+ if (!base.slice_del())
+ {
+ return false;
+ }
+ break;
+ }
+ return true;
+ };
+
+ /** @return {boolean} */
+ function r_Step_3() {
+ var /** number */ among_var;
+ base.ket = base.cursor;
+ among_var = base.find_among_b(a_8);
+ if (among_var == 0)
+ {
+ return false;
+ }
+ base.bra = base.cursor;
+ if (!r_R1())
+ {
+ return false;
+ }
+ switch (among_var) {
+ case 1:
+ if (!base.slice_from("tion"))
+ {
+ return false;
+ }
+ break;
+ case 2:
+ if (!base.slice_from("ate"))
+ {
+ return false;
+ }
+ break;
+ case 3:
+ if (!base.slice_from("al"))
+ {
+ return false;
+ }
+ break;
+ case 4:
+ if (!base.slice_from("ic"))
+ {
+ return false;
+ }
+ break;
+ case 5:
+ if (!base.slice_del())
+ {
+ return false;
+ }
+ break;
+ case 6:
+ if (!r_R2())
+ {
+ return false;
+ }
+ if (!base.slice_del())
+ {
+ return false;
+ }
+ break;
+ }
+ return true;
+ };
+
+ /** @return {boolean} */
+ function r_Step_4() {
+ var /** number */ among_var;
+ base.ket = base.cursor;
+ among_var = base.find_among_b(a_9);
+ if (among_var == 0)
+ {
+ return false;
+ }
+ base.bra = base.cursor;
+ if (!r_R2())
+ {
+ return false;
+ }
+ switch (among_var) {
+ case 1:
+ if (!base.slice_del())
+ {
+ return false;
+ }
+ break;
+ case 2:
+ lab0: {
+ /** @const */ var /** number */ v_1 = base.limit - base.cursor;
+ lab1: {
+ if (!(base.eq_s_b("s")))
+ {
+ break lab1;
+ }
+ break lab0;
+ }
+ base.cursor = base.limit - v_1;
+ if (!(base.eq_s_b("t")))
+ {
+ return false;
+ }
+ }
+ if (!base.slice_del())
+ {
+ return false;
+ }
+ break;
+ }
+ return true;
+ };
+
+ /** @return {boolean} */
+ function r_Step_5() {
+ var /** number */ among_var;
+ base.ket = base.cursor;
+ among_var = base.find_among_b(a_10);
+ if (among_var == 0)
+ {
+ return false;
+ }
+ base.bra = base.cursor;
+ switch (among_var) {
+ case 1:
+ lab0: {
+ lab1: {
+ if (!r_R2())
+ {
+ break lab1;
+ }
+ break lab0;
+ }
+ if (!r_R1())
+ {
+ return false;
+ }
+ {
+ /** @const */ var /** number */ v_1 = base.limit - base.cursor;
+ lab2: {
+ if (!r_shortv())
+ {
+ break lab2;
+ }
+ return false;
+ }
+ base.cursor = base.limit - v_1;
+ }
+ }
+ if (!base.slice_del())
+ {
+ return false;
+ }
+ break;
+ case 2:
+ if (!r_R2())
+ {
+ return false;
+ }
+ if (!(base.eq_s_b("l")))
+ {
+ return false;
+ }
+ if (!base.slice_del())
+ {
+ return false;
+ }
+ break;
+ }
+ return true;
+ };
+
+ /** @return {boolean} */
+ function r_exception1() {
+ var /** number */ among_var;
+ base.bra = base.cursor;
+ among_var = base.find_among(a_11);
+ if (among_var == 0)
+ {
+ return false;
+ }
+ base.ket = base.cursor;
+ if (base.cursor < base.limit)
+ {
+ return false;
+ }
+ switch (among_var) {
+ case 1:
+ if (!base.slice_from("sky"))
+ {
+ return false;
+ }
+ break;
+ case 2:
+ if (!base.slice_from("idl"))
+ {
+ return false;
+ }
+ break;
+ case 3:
+ if (!base.slice_from("gentl"))
+ {
+ return false;
+ }
+ break;
+ case 4:
+ if (!base.slice_from("ugli"))
+ {
+ return false;
+ }
+ break;
+ case 5:
+ if (!base.slice_from("earli"))
+ {
+ return false;
+ }
+ break;
+ case 6:
+ if (!base.slice_from("onli"))
+ {
+ return false;
+ }
+ break;
+ case 7:
+ if (!base.slice_from("singl"))
+ {
+ return false;
+ }
+ break;
+ }
+ return true;
+ };
+
+ /** @return {boolean} */
+ function r_postlude() {
+ if (!B_Y_found)
+ {
+ return false;
+ }
+ while(true)
+ {
+ /** @const */ var /** number */ v_1 = base.cursor;
+ lab0: {
+ golab1: while(true)
+ {
+ /** @const */ var /** number */ v_2 = base.cursor;
+ lab2: {
+ base.bra = base.cursor;
+ if (!(base.eq_s("Y")))
+ {
+ break lab2;
+ }
+ base.ket = base.cursor;
+ base.cursor = v_2;
+ break golab1;
+ }
+ base.cursor = v_2;
+ if (base.cursor >= base.limit)
+ {
+ break lab0;
+ }
+ base.cursor++;
+ }
+ if (!base.slice_from("y"))
+ {
+ return false;
+ }
+ continue;
+ }
+ base.cursor = v_1;
+ break;
+ }
+ return true;
+ };
+
+ this.stem = /** @return {boolean} */ function() {
+ lab0: {
+ /** @const */ var /** number */ v_1 = base.cursor;
+ lab1: {
+ if (!r_exception1())
+ {
+ break lab1;
+ }
+ break lab0;
+ }
+ base.cursor = v_1;
+ lab2: {
+ {
+ /** @const */ var /** number */ v_2 = base.cursor;
+ lab3: {
+ {
+ /** @const */ var /** number */ c1 = base.cursor + 3;
+ if (c1 > base.limit)
+ {
+ break lab3;
+ }
+ base.cursor = c1;
+ }
+ break lab2;
+ }
+ base.cursor = v_2;
+ }
+ break lab0;
+ }
+ base.cursor = v_1;
+ r_prelude();
+ r_mark_regions();
+ base.limit_backward = base.cursor; base.cursor = base.limit;
+ /** @const */ var /** number */ v_3 = base.limit - base.cursor;
+ r_Step_1a();
+ base.cursor = base.limit - v_3;
+ /** @const */ var /** number */ v_4 = base.limit - base.cursor;
+ r_Step_1b();
+ base.cursor = base.limit - v_4;
+ /** @const */ var /** number */ v_5 = base.limit - base.cursor;
+ r_Step_1c();
+ base.cursor = base.limit - v_5;
+ /** @const */ var /** number */ v_6 = base.limit - base.cursor;
+ r_Step_2();
+ base.cursor = base.limit - v_6;
+ /** @const */ var /** number */ v_7 = base.limit - base.cursor;
+ r_Step_3();
+ base.cursor = base.limit - v_7;
+ /** @const */ var /** number */ v_8 = base.limit - base.cursor;
+ r_Step_4();
+ base.cursor = base.limit - v_8;
+ /** @const */ var /** number */ v_9 = base.limit - base.cursor;
+ r_Step_5();
+ base.cursor = base.limit - v_9;
+ base.cursor = base.limit_backward;
+ /** @const */ var /** number */ v_10 = base.cursor;
+ r_postlude();
+ base.cursor = v_10;
+ }
+ return true;
+ };
+
+ /**@return{string}*/
+ this['stemWord'] = function(/**string*/word) {
+ base.setCurrent(word);
+ this.stem();
+ return base.getCurrent();
+ };
+};
diff --git a/0.8.0/_static/file.png b/0.8.0/_static/file.png
new file mode 100644
index 00000000..a858a410
Binary files /dev/null and b/0.8.0/_static/file.png differ
diff --git a/0.8.0/_static/language_data.js b/0.8.0/_static/language_data.js
new file mode 100644
index 00000000..57767864
--- /dev/null
+++ b/0.8.0/_static/language_data.js
@@ -0,0 +1,13 @@
+/*
+ * This script contains the language-specific data used by searchtools.js,
+ * namely the set of stopwords, stemmer, scorer and splitter.
+ */
+
+const stopwords = new Set(["a", "about", "above", "after", "again", "against", "all", "am", "an", "and", "any", "are", "aren't", "as", "at", "be", "because", "been", "before", "being", "below", "between", "both", "but", "by", "can't", "cannot", "could", "couldn't", "did", "didn't", "do", "does", "doesn't", "doing", "don't", "down", "during", "each", "few", "for", "from", "further", "had", "hadn't", "has", "hasn't", "have", "haven't", "having", "he", "he'd", "he'll", "he's", "her", "here" [...]
+window.stopwords = stopwords; // Export to global scope
+
+
+/* Non-minified versions are copied as separate JavaScript files, if available */
+BaseStemmer=function(){this.current="",this.cursor=0,this.limit=0,this.limit_backward=0,this.bra=0,this.ket=0,this.setCurrent=function(t){this.current=t,this.cursor=0,this.limit=this.current.length,this.limit_backward=0,this.bra=this.cursor,this.ket=this.limit},this.getCurrent=function(){return this.current},this.copy_from=function(t){this.current=t.current,this.cursor=t.cursor,this.limit=t.limit,this.limit_backward=t.limit_backward,this.bra=t.bra,this.ket=t.ket},this.in_grouping=functio [...]
+var EnglishStemmer=function(){var a=new BaseStemmer,c=[["arsen",-1,-1],["commun",-1,-1],["emerg",-1,-1],["gener",-1,-1],["later",-1,-1],["organ",-1,-1],["past",-1,-1],["univers",-1,-1]],o=[["'",-1,1],["'s'",0,1],["'s",-1,1]],u=[["ied",-1,2],["s",-1,3],["ies",1,2],["sses",1,1],["ss",1,-1],["us",1,-1]],t=[["succ",-1,1],["proc",-1,1],["exc",-1,1]],l=[["even",-1,2],["cann",-1,2],["inn",-1,2],["earr",-1,2],["herr",-1,2],["out",-1,2],["y",-1,1]],n=[["",-1,-1],["ed",0,2],["eed",1,1],["ing",0,3] [...]
+window.Stemmer = EnglishStemmer;
diff --git a/0.8.0/_static/minus.png b/0.8.0/_static/minus.png
new file mode 100644
index 00000000..d96755fd
Binary files /dev/null and b/0.8.0/_static/minus.png differ
diff --git a/0.8.0/_static/plus.png b/0.8.0/_static/plus.png
new file mode 100644
index 00000000..7107cec9
Binary files /dev/null and b/0.8.0/_static/plus.png differ
diff --git a/0.8.0/_static/pygments.css b/0.8.0/_static/pygments.css
new file mode 100644
index 00000000..d7dd5778
--- /dev/null
+++ b/0.8.0/_static/pygments.css
@@ -0,0 +1,152 @@
+html[data-theme="light"] .highlight pre { line-height: 125%; }
+html[data-theme="light"] .highlight td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
+html[data-theme="light"] .highlight span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
+html[data-theme="light"] .highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
+html[data-theme="light"] .highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
+html[data-theme="light"] .highlight .hll { background-color: #fae4c2 }
+html[data-theme="light"] .highlight { background: #fefefe; color: #080808 }
+html[data-theme="light"] .highlight .c { color: #515151 } /* Comment */
+html[data-theme="light"] .highlight .err { color: #A12236 } /* Error */
+html[data-theme="light"] .highlight .k { color: #6730C5 } /* Keyword */
+html[data-theme="light"] .highlight .l { color: #7F4707 } /* Literal */
+html[data-theme="light"] .highlight .n { color: #080808 } /* Name */
+html[data-theme="light"] .highlight .o { color: #00622F } /* Operator */
+html[data-theme="light"] .highlight .p { color: #080808 } /* Punctuation */
+html[data-theme="light"] .highlight .ch { color: #515151 } /* Comment.Hashbang */
+html[data-theme="light"] .highlight .cm { color: #515151 } /* Comment.Multiline */
+html[data-theme="light"] .highlight .cp { color: #515151 } /* Comment.Preproc */
+html[data-theme="light"] .highlight .cpf { color: #515151 } /* Comment.PreprocFile */
+html[data-theme="light"] .highlight .c1 { color: #515151 } /* Comment.Single */
+html[data-theme="light"] .highlight .cs { color: #515151 } /* Comment.Special */
+html[data-theme="light"] .highlight .gd { color: #005B82 } /* Generic.Deleted */
+html[data-theme="light"] .highlight .ge { font-style: italic } /* Generic.Emph */
+html[data-theme="light"] .highlight .gh { color: #005B82 } /* Generic.Heading */
+html[data-theme="light"] .highlight .gs { font-weight: bold } /* Generic.Strong */
+html[data-theme="light"] .highlight .gu { color: #005B82 } /* Generic.Subheading */
+html[data-theme="light"] .highlight .kc { color: #6730C5 } /* Keyword.Constant */
+html[data-theme="light"] .highlight .kd { color: #6730C5 } /* Keyword.Declaration */
+html[data-theme="light"] .highlight .kn { color: #6730C5 } /* Keyword.Namespace */
+html[data-theme="light"] .highlight .kp { color: #6730C5 } /* Keyword.Pseudo */
+html[data-theme="light"] .highlight .kr { color: #6730C5 } /* Keyword.Reserved */
+html[data-theme="light"] .highlight .kt { color: #7F4707 } /* Keyword.Type */
+html[data-theme="light"] .highlight .ld { color: #7F4707 } /* Literal.Date */
+html[data-theme="light"] .highlight .m { color: #7F4707 } /* Literal.Number */
+html[data-theme="light"] .highlight .s { color: #00622F } /* Literal.String */
+html[data-theme="light"] .highlight .na { color: #912583 } /* Name.Attribute */
+html[data-theme="light"] .highlight .nb { color: #7F4707 } /* Name.Builtin */
+html[data-theme="light"] .highlight .nc { color: #005B82 } /* Name.Class */
+html[data-theme="light"] .highlight .no { color: #005B82 } /* Name.Constant */
+html[data-theme="light"] .highlight .nd { color: #7F4707 } /* Name.Decorator */
+html[data-theme="light"] .highlight .ni { color: #00622F } /* Name.Entity */
+html[data-theme="light"] .highlight .ne { color: #6730C5 } /* Name.Exception */
+html[data-theme="light"] .highlight .nf { color: #005B82 } /* Name.Function */
+html[data-theme="light"] .highlight .nl { color: #7F4707 } /* Name.Label */
+html[data-theme="light"] .highlight .nn { color: #080808 } /* Name.Namespace */
+html[data-theme="light"] .highlight .nx { color: #080808 } /* Name.Other */
+html[data-theme="light"] .highlight .py { color: #005B82 } /* Name.Property */
+html[data-theme="light"] .highlight .nt { color: #005B82 } /* Name.Tag */
+html[data-theme="light"] .highlight .nv { color: #A12236 } /* Name.Variable */
+html[data-theme="light"] .highlight .ow { color: #6730C5 } /* Operator.Word */
+html[data-theme="light"] .highlight .pm { color: #080808 } /* Punctuation.Marker */
+html[data-theme="light"] .highlight .w { color: #080808 } /* Text.Whitespace */
+html[data-theme="light"] .highlight .mb { color: #7F4707 } /* Literal.Number.Bin */
+html[data-theme="light"] .highlight .mf { color: #7F4707 } /* Literal.Number.Float */
+html[data-theme="light"] .highlight .mh { color: #7F4707 } /* Literal.Number.Hex */
+html[data-theme="light"] .highlight .mi { color: #7F4707 } /* Literal.Number.Integer */
+html[data-theme="light"] .highlight .mo { color: #7F4707 } /* Literal.Number.Oct */
+html[data-theme="light"] .highlight .sa { color: #00622F } /* Literal.String.Affix */
+html[data-theme="light"] .highlight .sb { color: #00622F } /* Literal.String.Backtick */
+html[data-theme="light"] .highlight .sc { color: #00622F } /* Literal.String.Char */
+html[data-theme="light"] .highlight .dl { color: #00622F } /* Literal.String.Delimiter */
+html[data-theme="light"] .highlight .sd { color: #00622F } /* Literal.String.Doc */
+html[data-theme="light"] .highlight .s2 { color: #00622F } /* Literal.String.Double */
+html[data-theme="light"] .highlight .se { color: #00622F } /* Literal.String.Escape */
+html[data-theme="light"] .highlight .sh { color: #00622F } /* Literal.String.Heredoc */
+html[data-theme="light"] .highlight .si { color: #00622F } /* Literal.String.Interpol */
+html[data-theme="light"] .highlight .sx { color: #00622F } /* Literal.String.Other */
+html[data-theme="light"] .highlight .sr { color: #A12236 } /* Literal.String.Regex */
+html[data-theme="light"] .highlight .s1 { color: #00622F } /* Literal.String.Single */
+html[data-theme="light"] .highlight .ss { color: #005B82 } /* Literal.String.Symbol */
+html[data-theme="light"] .highlight .bp { color: #7F4707 } /* Name.Builtin.Pseudo */
+html[data-theme="light"] .highlight .fm { color: #005B82 } /* Name.Function.Magic */
+html[data-theme="light"] .highlight .vc { color: #A12236 } /* Name.Variable.Class */
+html[data-theme="light"] .highlight .vg { color: #A12236 } /* Name.Variable.Global */
+html[data-theme="light"] .highlight .vi { color: #A12236 } /* Name.Variable.Instance */
+html[data-theme="light"] .highlight .vm { color: #7F4707 } /* Name.Variable.Magic */
+html[data-theme="light"] .highlight .il { color: #7F4707 } /* Literal.Number.Integer.Long */
+html[data-theme="dark"] .highlight pre { line-height: 125%; }
+html[data-theme="dark"] .highlight td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
+html[data-theme="dark"] .highlight span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
+html[data-theme="dark"] .highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
+html[data-theme="dark"] .highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
+html[data-theme="dark"] .highlight .hll { background-color: #ffd9002e }
+html[data-theme="dark"] .highlight { background: #2b2b2b; color: #F8F8F2 }
+html[data-theme="dark"] .highlight .c { color: #FFD900 } /* Comment */
+html[data-theme="dark"] .highlight .err { color: #FFA07A } /* Error */
+html[data-theme="dark"] .highlight .k { color: #DCC6E0 } /* Keyword */
+html[data-theme="dark"] .highlight .l { color: #FFD900 } /* Literal */
+html[data-theme="dark"] .highlight .n { color: #F8F8F2 } /* Name */
+html[data-theme="dark"] .highlight .o { color: #ABE338 } /* Operator */
+html[data-theme="dark"] .highlight .p { color: #F8F8F2 } /* Punctuation */
+html[data-theme="dark"] .highlight .ch { color: #FFD900 } /* Comment.Hashbang */
+html[data-theme="dark"] .highlight .cm { color: #FFD900 } /* Comment.Multiline */
+html[data-theme="dark"] .highlight .cp { color: #FFD900 } /* Comment.Preproc */
+html[data-theme="dark"] .highlight .cpf { color: #FFD900 } /* Comment.PreprocFile */
+html[data-theme="dark"] .highlight .c1 { color: #FFD900 } /* Comment.Single */
+html[data-theme="dark"] .highlight .cs { color: #FFD900 } /* Comment.Special */
+html[data-theme="dark"] .highlight .gd { color: #00E0E0 } /* Generic.Deleted */
+html[data-theme="dark"] .highlight .ge { font-style: italic } /* Generic.Emph */
+html[data-theme="dark"] .highlight .gh { color: #00E0E0 } /* Generic.Heading */
+html[data-theme="dark"] .highlight .gs { font-weight: bold } /* Generic.Strong */
+html[data-theme="dark"] .highlight .gu { color: #00E0E0 } /* Generic.Subheading */
+html[data-theme="dark"] .highlight .kc { color: #DCC6E0 } /* Keyword.Constant */
+html[data-theme="dark"] .highlight .kd { color: #DCC6E0 } /* Keyword.Declaration */
+html[data-theme="dark"] .highlight .kn { color: #DCC6E0 } /* Keyword.Namespace */
+html[data-theme="dark"] .highlight .kp { color: #DCC6E0 } /* Keyword.Pseudo */
+html[data-theme="dark"] .highlight .kr { color: #DCC6E0 } /* Keyword.Reserved */
+html[data-theme="dark"] .highlight .kt { color: #FFD900 } /* Keyword.Type */
+html[data-theme="dark"] .highlight .ld { color: #FFD900 } /* Literal.Date */
+html[data-theme="dark"] .highlight .m { color: #FFD900 } /* Literal.Number */
+html[data-theme="dark"] .highlight .s { color: #ABE338 } /* Literal.String */
+html[data-theme="dark"] .highlight .na { color: #FFD900 } /* Name.Attribute */
+html[data-theme="dark"] .highlight .nb { color: #FFD900 } /* Name.Builtin */
+html[data-theme="dark"] .highlight .nc { color: #00E0E0 } /* Name.Class */
+html[data-theme="dark"] .highlight .no { color: #00E0E0 } /* Name.Constant */
+html[data-theme="dark"] .highlight .nd { color: #FFD900 } /* Name.Decorator */
+html[data-theme="dark"] .highlight .ni { color: #ABE338 } /* Name.Entity */
+html[data-theme="dark"] .highlight .ne { color: #DCC6E0 } /* Name.Exception */
+html[data-theme="dark"] .highlight .nf { color: #00E0E0 } /* Name.Function */
+html[data-theme="dark"] .highlight .nl { color: #FFD900 } /* Name.Label */
+html[data-theme="dark"] .highlight .nn { color: #F8F8F2 } /* Name.Namespace */
+html[data-theme="dark"] .highlight .nx { color: #F8F8F2 } /* Name.Other */
+html[data-theme="dark"] .highlight .py { color: #00E0E0 } /* Name.Property */
+html[data-theme="dark"] .highlight .nt { color: #00E0E0 } /* Name.Tag */
+html[data-theme="dark"] .highlight .nv { color: #FFA07A } /* Name.Variable */
+html[data-theme="dark"] .highlight .ow { color: #DCC6E0 } /* Operator.Word */
+html[data-theme="dark"] .highlight .pm { color: #F8F8F2 } /* Punctuation.Marker */
+html[data-theme="dark"] .highlight .w { color: #F8F8F2 } /* Text.Whitespace */
+html[data-theme="dark"] .highlight .mb { color: #FFD900 } /* Literal.Number.Bin */
+html[data-theme="dark"] .highlight .mf { color: #FFD900 } /* Literal.Number.Float */
+html[data-theme="dark"] .highlight .mh { color: #FFD900 } /* Literal.Number.Hex */
+html[data-theme="dark"] .highlight .mi { color: #FFD900 } /* Literal.Number.Integer */
+html[data-theme="dark"] .highlight .mo { color: #FFD900 } /* Literal.Number.Oct */
+html[data-theme="dark"] .highlight .sa { color: #ABE338 } /* Literal.String.Affix */
+html[data-theme="dark"] .highlight .sb { color: #ABE338 } /* Literal.String.Backtick */
+html[data-theme="dark"] .highlight .sc { color: #ABE338 } /* Literal.String.Char */
+html[data-theme="dark"] .highlight .dl { color: #ABE338 } /* Literal.String.Delimiter */
+html[data-theme="dark"] .highlight .sd { color: #ABE338 } /* Literal.String.Doc */
+html[data-theme="dark"] .highlight .s2 { color: #ABE338 } /* Literal.String.Double */
+html[data-theme="dark"] .highlight .se { color: #ABE338 } /* Literal.String.Escape */
+html[data-theme="dark"] .highlight .sh { color: #ABE338 } /* Literal.String.Heredoc */
+html[data-theme="dark"] .highlight .si { color: #ABE338 } /* Literal.String.Interpol */
+html[data-theme="dark"] .highlight .sx { color: #ABE338 } /* Literal.String.Other */
+html[data-theme="dark"] .highlight .sr { color: #FFA07A } /* Literal.String.Regex */
+html[data-theme="dark"] .highlight .s1 { color: #ABE338 } /* Literal.String.Single */
+html[data-theme="dark"] .highlight .ss { color: #00E0E0 } /* Literal.String.Symbol */
+html[data-theme="dark"] .highlight .bp { color: #FFD900 } /* Name.Builtin.Pseudo */
+html[data-theme="dark"] .highlight .fm { color: #00E0E0 } /* Name.Function.Magic */
+html[data-theme="dark"] .highlight .vc { color: #FFA07A } /* Name.Variable.Class */
+html[data-theme="dark"] .highlight .vg { color: #FFA07A } /* Name.Variable.Global */
+html[data-theme="dark"] .highlight .vi { color: #FFA07A } /* Name.Variable.Instance */
+html[data-theme="dark"] .highlight .vm { color: #FFD900 } /* Name.Variable.Magic */
+html[data-theme="dark"] .highlight .il { color: #FFD900 } /* Literal.Number.Integer.Long */
\ No newline at end of file
diff --git a/0.8.0/_static/scripts/bootstrap.js b/0.8.0/_static/scripts/bootstrap.js
new file mode 100644
index 00000000..c8178deb
--- /dev/null
+++ b/0.8.0/_static/scripts/bootstrap.js
@@ -0,0 +1,3 @@
+/*! For license information please see bootstrap.js.LICENSE.txt */
+(()=>{"use strict";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{afterMain:()=>E,afterRead:()=>v,afterWrite:()=>C,applyStyles:()=>$,arrow:()=>J,auto:()=>a,basePlacements:()=>l,beforeMain:()=>y,bef [...]
+//# sourceMappingURL=bootstrap.js.map
\ No newline at end of file
diff --git a/0.8.0/_static/scripts/bootstrap.js.LICENSE.txt b/0.8.0/_static/scripts/bootstrap.js.LICENSE.txt
new file mode 100644
index 00000000..28755c2c
--- /dev/null
+++ b/0.8.0/_static/scripts/bootstrap.js.LICENSE.txt
@@ -0,0 +1,5 @@
+/*!
+ * Bootstrap v5.3.3 (https://getbootstrap.com/)
+ * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
diff --git a/0.8.0/_static/scripts/bootstrap.js.map b/0.8.0/_static/scripts/bootstrap.js.map
new file mode 100644
index 00000000..4a3502ae
--- /dev/null
+++ b/0.8.0/_static/scripts/bootstrap.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"scripts/bootstrap.js","mappings":";mBACA,IAAIA,EAAsB,CCA1BA,EAAwB,CAACC,EAASC,KACjC,IAAI,IAAIC,KAAOD,EACXF,EAAoBI,EAAEF,EAAYC,KAASH,EAAoBI,EAAEH,EAASE,IAC5EE,OAAOC,eAAeL,EAASE,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,IAE1E,ECNDH,EAAwB,CAACS,EAAKC,IAAUL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,GCClFV,EAAyBC,IACH,oBAAXa,QAA0BA,OAAOC,aAC1CV,OAAOC,eAAeL,EAASa,OAAOC,YAAa,CAAEC,MAAO,WAE7DX,OAAOC,eAAeL,EAAS,aAAc,CAAEe,OAAO,GAAO,01BCLvD,IAAI,EAAM,MACNC,EAAS,SACTC,EAAQ,QACRC,EAAO,OACPC,EAAO,OA [...]
\ No newline at end of file
diff --git a/0.8.0/_static/scripts/fontawesome.js b/0.8.0/_static/scripts/fontawesome.js
new file mode 100644
index 00000000..71955b42
--- /dev/null
+++ b/0.8.0/_static/scripts/fontawesome.js
@@ -0,0 +1,3 @@
+/*! For license information please see fontawesome.js.LICENSE.txt */
+(()=>{var c={654:()=>{!function(){"use strict";var c={},l={};try{"undefined"!=typeof window&&(c=window),"undefined"!=typeof document&&(l=document)}catch(c){}var s=void 0===(v=(c.navigator||{}).userAgent)?"":v,a=c,z=l;function e(c,l){var s,a=Object.keys(c);return Object.getOwnPropertySymbols&&(s=Object.getOwnPropertySymbols(c),l&&(s=s.filter((function(l){return Object.getOwnPropertyDescriptor(c,l).enumerable}))),a.push.apply(a,s)),a}function H(c){for(var l=1;l<arguments.length;l++){var s= [...]
+//# sourceMappingURL=fontawesome.js.map
\ No newline at end of file
diff --git a/0.8.0/_static/scripts/fontawesome.js.LICENSE.txt b/0.8.0/_static/scripts/fontawesome.js.LICENSE.txt
new file mode 100644
index 00000000..a91750af
--- /dev/null
+++ b/0.8.0/_static/scripts/fontawesome.js.LICENSE.txt
@@ -0,0 +1,5 @@
+/*!
+ * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
+ * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
+ * Copyright 2024 Fonticons, Inc.
+ */
diff --git a/0.8.0/_static/scripts/fontawesome.js.map b/0.8.0/_static/scripts/fontawesome.js.map
new file mode 100644
index 00000000..8fa96a6d
--- /dev/null
+++ b/0.8.0/_static/scripts/fontawesome.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"scripts/fontawesome.js","mappings":";uBAKC,WAAW,aAAa,IAAIA,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAE,IAAI,oBAAoBC,SAASF,EAAEE,QAAQ,oBAAoBC,WAAWF,EAAEE,SAAS,CAAC,MAAMH,GAAG,CAAC,IAAkCI,OAAE,KAAhCC,GAAGL,EAAEM,WAAW,CAAC,GAAGC,WAAuB,GAAGF,EAAEG,EAAER,EAAES,EAAER,EAAyI,SAASS,EAAET,EAAED,GAAG,IAAIK,EAAED,EAAEO,OAAOC,KAAKX,GAAG,OAAOU,OAAOE,wBAAwBR,EAAEM,OAAOE,sBAAsBZ,GAAGD,IAAIK,EAAEA,EAAES,QAAO,SAASd,GAAG,OAAOW,OAAOI,yBAAyBd,EAAED,GAAGgB,UAAU,KAAIZ,EAAEa,KAAKC,MAAMd,EAAEC,IAAID,CAAC [...]
\ No newline at end of file
diff --git a/0.8.0/_static/scripts/pydata-sphinx-theme.js b/0.8.0/_static/scripts/pydata-sphinx-theme.js
new file mode 100644
index 00000000..771fed0d
--- /dev/null
+++ b/0.8.0/_static/scripts/pydata-sphinx-theme.js
@@ -0,0 +1,2 @@
+(()=>{"use strict";function e(e){"loading"!=document.readyState?e():document.addEventListener("DOMContentLoaded",e)}const t=e=>"string"==typeof e&&/^[v\d]/.test(e)&&o.test(e),n=(e,t,n)=>{u(n);const o=((e,t)=>{const n=r(e),o=r(t),a=n.pop(),s=o.pop(),i=c(n,o);return 0!==i?i:a&&s?c(a.split("."),s.split(".")):a||s?a?-1:1:0})(e,t);return l[n].includes(o)},o=/^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\-]+(?:\.[\da-z\-]+)*))?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)? [...]
+//# sourceMappingURL=pydata-sphinx-theme.js.map
\ No newline at end of file
diff --git a/0.8.0/_static/scripts/pydata-sphinx-theme.js.map b/0.8.0/_static/scripts/pydata-sphinx-theme.js.map
new file mode 100644
index 00000000..0ed1d5e5
--- /dev/null
+++ b/0.8.0/_static/scripts/pydata-sphinx-theme.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"scripts/pydata-sphinx-theme.js","mappings":"mBASO,SAASA,EAAcC,GACD,WAAvBC,SAASC,WAAyBF,IACjCC,SAASE,iBAAiB,mBAAoBH,EACrD,CCLO,MAiCMI,EAAYC,GAA+B,iBAAZA,GAAwB,SAASC,KAAKD,IAAYE,EAAOD,KAAKD,GAkB7FG,EAAU,CAACC,EAAIC,EAAIC,KAE5BC,EAAoBD,GAGpB,MAAME,EAxDqB,EAACJ,EAAIC,KAEhC,MAAMI,EAAKC,EAAiBN,GACtBO,EAAKD,EAAiBL,GAEtBO,EAAKH,EAAGI,MACRC,EAAKH,EAAGE,MAERE,EAAIC,EAAgBP,EAAIE,GAC9B,OAAU,IAANI,EACOA,EAEPH,GAAME,EACCE,EAAgBJ,EAAGK,MAAM,KAAMH,EAAGG,MAAM,MAE1CL,GAAME,EACJF,GAAM, [...]
\ No newline at end of file
diff --git a/latest/_static/searchtools.js b/0.8.0/_static/searchtools.js
similarity index 83%
copy from latest/_static/searchtools.js
copy to 0.8.0/_static/searchtools.js
index 91f4be57..e29b1c75 100644
--- a/latest/_static/searchtools.js
+++ b/0.8.0/_static/searchtools.js
@@ -41,11 +41,12 @@ if (typeof Scorer === "undefined") {
}
// Global search result kind enum, used by themes to style search results.
+// prettier-ignore
class SearchResultKind {
- static get index() { return "index"; }
- static get object() { return "object"; }
- static get text() { return "text"; }
- static get title() { return "title"; }
+ static get index() { return "index"; }
+ static get object() { return "object"; }
+ static get text() { return "text"; }
+ static get title() { return "title"; }
}
const _removeChildren = (element) => {
@@ -58,6 +59,15 @@ const _removeChildren = (element) => {
const _escapeRegExp = (string) =>
string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
+const _escapeHTML = (text) => {
+ return text
+ .replaceAll("&", "&")
+ .replaceAll("<", "<")
+ .replaceAll(">", ">")
+ .replaceAll('"', """)
+ .replaceAll("'", "'");
+};
+
const _displayItem = (item, searchTerms, highlightTerms) => {
const docBuilder = DOCUMENTATION_OPTIONS.BUILDER;
const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX;
@@ -90,25 +100,30 @@ const _displayItem = (item, searchTerms, highlightTerms) => {
let linkEl = listItem.appendChild(document.createElement("a"));
linkEl.href = linkUrl + anchor;
linkEl.dataset.score = score;
- linkEl.innerHTML = title;
+ linkEl.innerHTML = _escapeHTML(title);
if (descr) {
listItem.appendChild(document.createElement("span")).innerHTML =
- " (" + descr + ")";
+ ` (${_escapeHTML(descr)})`;
// highlight search terms in the description
- if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js
- highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted"));
- }
- else if (showSearchSummary)
+ if (SPHINX_HIGHLIGHT_ENABLED)
+ // SPHINX_HIGHLIGHT_ENABLED is set in sphinx_highlight.js
+ highlightTerms.forEach((term) =>
+ _highlightText(listItem, term, "highlighted"),
+ );
+ } else if (showSearchSummary)
fetch(requestUrl)
.then((responseData) => responseData.text())
.then((data) => {
if (data)
listItem.appendChild(
- Search.makeSearchSummary(data, searchTerms, anchor)
+ Search.makeSearchSummary(data, searchTerms, anchor),
);
// highlight search terms in the summary
- if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js
- highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted"));
+ if (SPHINX_HIGHLIGHT_ENABLED)
+ // SPHINX_HIGHLIGHT_ENABLED is set in sphinx_highlight.js
+ highlightTerms.forEach((term) =>
+ _highlightText(listItem, term, "highlighted"),
+ );
});
Search.output.appendChild(listItem);
};
@@ -117,14 +132,14 @@ const _finishSearch = (resultCount) => {
Search.title.innerText = _("Search Results");
if (!resultCount)
Search.status.innerText = Documentation.gettext(
- "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories."
+ "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.",
);
else
Search.status.innerText = Documentation.ngettext(
"Search finished, found one page matching the search query.",
"Search finished, found ${resultCount} pages matching the search query.",
resultCount,
- ).replace('${resultCount}', resultCount);
+ ).replace("${resultCount}", resultCount);
};
const _displayNextItem = (
results,
@@ -138,7 +153,7 @@ const _displayNextItem = (
_displayItem(results.pop(), searchTerms, highlightTerms);
setTimeout(
() => _displayNextItem(results, resultCount, searchTerms, highlightTerms),
- 5
+ 5,
);
}
// search finished, update title and status message
@@ -170,9 +185,10 @@ const _orderResultsByScoreThenName = (a, b) => {
* This is the same as ``\W+`` in Python, preserving the surrogate pair area.
*/
if (typeof splitQuery === "undefined") {
- var splitQuery = (query) => query
+ var splitQuery = (query) =>
+ query
.split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu)
- .filter(term => term) // remove remaining empty strings
+ .filter((term) => term); // remove remaining empty strings
}
/**
@@ -184,16 +200,23 @@ const Search = {
_pulse_status: -1,
htmlToText: (htmlString, anchor) => {
- const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html');
+ const htmlElement = new DOMParser().parseFromString(
+ htmlString,
+ "text/html",
+ );
for (const removalQuery of [".headerlink", "script", "style"]) {
- htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() });
+ htmlElement.querySelectorAll(removalQuery).forEach((el) => {
+ el.remove();
+ });
}
if (anchor) {
- const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`);
+ const anchorContent = htmlElement.querySelector(
+ `[role="main"] ${anchor}`,
+ );
if (anchorContent) return anchorContent.textContent;
console.warn(
- `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.`
+ `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.`,
);
}
@@ -202,7 +225,7 @@ const Search = {
if (docContent) return docContent.textContent;
console.warn(
- "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template."
+ "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template.",
);
return "";
},
@@ -287,12 +310,8 @@ const Search = {
const queryTermLower = queryTerm.toLowerCase();
// maybe skip this "word"
- // stopwords array is from language_data.js
- if (
- stopwords.indexOf(queryTermLower) !== -1 ||
- queryTerm.match(/^\d+$/)
- )
- return;
+ // stopwords set is from language_data.js
+ if (stopwords.has(queryTermLower) || queryTerm.match(/^\d+$/)) return;
// stem the word
let word = stemmer.stemWord(queryTermLower);
@@ -304,8 +323,12 @@ const Search = {
}
});
- if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js
- localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" "))
+ if (SPHINX_HIGHLIGHT_ENABLED) {
+ // SPHINX_HIGHLIGHT_ENABLED is set in sphinx_highlight.js
+ localStorage.setItem(
+ "sphinx_highlight_terms",
+ [...highlightTerms].join(" "),
+ );
}
// console.debug("SEARCH: searching for:");
@@ -318,7 +341,13 @@ const Search = {
/**
* execute search (requires search index to be loaded)
*/
- _performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => {
+ _performSearch: (
+ query,
+ searchTerms,
+ excludedTerms,
+ highlightTerms,
+ objectTerms,
+ ) => {
const filenames = Search._index.filenames;
const docNames = Search._index.docnames;
const titles = Search._index.titles;
@@ -334,10 +363,15 @@ const Search = {
const queryLower = query.toLowerCase().trim();
for (const [title, foundTitles] of Object.entries(allTitles)) {
- if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) {
+ if (
+ title.toLowerCase().trim().includes(queryLower)
+ && queryLower.length >= title.length / 2
+ ) {
for (const [file, id] of foundTitles) {
- const score = Math.round(Scorer.title * queryLower.length / title.length);
- const boost = titles[file] === title ? 1 : 0; // add a boost for document titles
+ const score = Math.round(
+ (Scorer.title * queryLower.length) / title.length,
+ );
+ const boost = titles[file] === title ? 1 : 0; // add a boost for document titles
normalResults.push([
docNames[file],
titles[file] !== title ? `${titles[file]} > ${title}` : title,
@@ -353,9 +387,9 @@ const Search = {
// search for explicit entries in index directives
for (const [entry, foundEntries] of Object.entries(indexEntries)) {
- if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) {
+ if (entry.includes(queryLower) && queryLower.length >= entry.length / 2) {
for (const [file, id, isMain] of foundEntries) {
- const score = Math.round(100 * queryLower.length / entry.length);
+ const score = Math.round((100 * queryLower.length) / entry.length);
const result = [
docNames[file],
titles[file],
@@ -376,11 +410,13 @@ const Search = {
// lookup as object
objectTerms.forEach((term) =>
- normalResults.push(...Search.performObjectSearch(term, objectTerms))
+ normalResults.push(...Search.performObjectSearch(term, objectTerms)),
);
// lookup as search terms in fulltext
- normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms));
+ normalResults.push(
+ ...Search.performTermsSearch(searchTerms, excludedTerms),
+ );
// let the scorer override scores with a custom scoring function
if (Scorer.score) {
@@ -401,7 +437,11 @@ const Search = {
// note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept
let seen = new Set();
results = results.reverse().reduce((acc, result) => {
- let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(',');
+ let resultStr = result
+ .slice(0, 4)
+ .concat([result[5]])
+ .map((v) => String(v))
+ .join(",");
if (!seen.has(resultStr)) {
acc.push(result);
seen.add(resultStr);
@@ -413,8 +453,20 @@ const Search = {
},
query: (query) => {
- const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query);
- const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms);
+ const [
+ searchQuery,
+ searchTerms,
+ excludedTerms,
+ highlightTerms,
+ objectTerms,
+ ] = Search._parseQuery(query);
+ const results = Search._performSearch(
+ searchQuery,
+ searchTerms,
+ excludedTerms,
+ highlightTerms,
+ objectTerms,
+ );
// for debugging
//Search.lastresults = results.slice(); // a copy
@@ -437,7 +489,7 @@ const Search = {
const results = [];
const objectSearchCallback = (prefix, match) => {
- const name = match[4]
+ const name = match[4];
const fullname = (prefix ? prefix + "." : "") + name;
const fullnameLower = fullname.toLowerCase();
if (fullnameLower.indexOf(object) < 0) return;
@@ -489,9 +541,7 @@ const Search = {
]);
};
Object.keys(objects).forEach((prefix) =>
- objects[prefix].forEach((array) =>
- objectSearchCallback(prefix, array)
- )
+ objects[prefix].forEach((array) => objectSearchCallback(prefix, array)),
);
return results;
},
@@ -516,8 +566,14 @@ const Search = {
// find documents, if any, containing the query word in their text/title term indices
// use Object.hasOwnProperty to avoid mismatching against prototype properties
const arr = [
- { files: terms.hasOwnProperty(word) ? terms[word] : undefined, score: Scorer.term },
- { files: titleTerms.hasOwnProperty(word) ? titleTerms[word] : undefined, score: Scorer.title },
+ {
+ files: terms.hasOwnProperty(word) ? terms[word] : undefined,
+ score: Scorer.term,
+ },
+ {
+ files: titleTerms.hasOwnProperty(word) ? titleTerms[word] : undefined,
+ score: Scorer.title,
+ },
];
// add support for partial matches
if (word.length > 2) {
@@ -558,7 +614,8 @@ const Search = {
// create the mapping
files.forEach((file) => {
if (!fileMap.has(file)) fileMap.set(file, [word]);
- else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word);
+ else if (fileMap.get(file).indexOf(word) === -1)
+ fileMap.get(file).push(word);
});
});
@@ -569,11 +626,11 @@ const Search = {
// as search terms with length < 3 are discarded
const filteredTermCount = [...searchTerms].filter(
- (term) => term.length > 2
+ (term) => term.length > 2,
).length;
if (
- wordList.length !== searchTerms.size &&
- wordList.length !== filteredTermCount
+ wordList.length !== searchTerms.size
+ && wordList.length !== filteredTermCount
)
continue;
@@ -581,10 +638,10 @@ const Search = {
if (
[...excludedTerms].some(
(term) =>
- terms[term] === file ||
- titleTerms[term] === file ||
- (terms[term] || []).includes(file) ||
- (titleTerms[term] || []).includes(file)
+ terms[term] === file
+ || titleTerms[term] === file
+ || (terms[term] || []).includes(file)
+ || (titleTerms[term] || []).includes(file),
)
)
break;
@@ -626,7 +683,8 @@ const Search = {
let summary = document.createElement("p");
summary.classList.add("context");
- summary.textContent = top + text.substr(startWithContext, 240).trim() + tail;
+ summary.textContent =
+ top + text.substr(startWithContext, 240).trim() + tail;
return summary;
},
diff --git a/latest/_static/sphinx_highlight.js b/0.8.0/_static/sphinx_highlight.js
similarity index 74%
copy from latest/_static/sphinx_highlight.js
copy to 0.8.0/_static/sphinx_highlight.js
index 8a96c69a..a74e103a 100644
--- a/latest/_static/sphinx_highlight.js
+++ b/0.8.0/_static/sphinx_highlight.js
@@ -1,7 +1,7 @@
/* Highlighting utilities for Sphinx HTML documentation. */
"use strict";
-const SPHINX_HIGHLIGHT_ENABLED = true
+const SPHINX_HIGHLIGHT_ENABLED = true;
/**
* highlight a given string on a node by wrapping it in
@@ -13,9 +13,9 @@ const _highlight = (node, addItems, text, className) => {
const parent = node.parentNode;
const pos = val.toLowerCase().indexOf(text);
if (
- pos >= 0 &&
- !parent.classList.contains(className) &&
- !parent.classList.contains("nohighlight")
+ pos >= 0
+ && !parent.classList.contains(className)
+ && !parent.classList.contains("nohighlight")
) {
let span;
@@ -30,13 +30,7 @@ const _highlight = (node, addItems, text, className) => {
span.appendChild(document.createTextNode(val.substr(pos, text.length)));
const rest = document.createTextNode(val.substr(pos + text.length));
- parent.insertBefore(
- span,
- parent.insertBefore(
- rest,
- node.nextSibling
- )
- );
+ parent.insertBefore(span, parent.insertBefore(rest, node.nextSibling));
node.nodeValue = val.substr(0, pos);
/* There may be more occurrences of search term in this node. So call this
* function recursively on the remaining fragment.
@@ -46,7 +40,7 @@ const _highlight = (node, addItems, text, className) => {
if (isInSVG) {
const rect = document.createElementNS(
"http://www.w3.org/2000/svg",
- "rect"
+ "rect",
);
const bbox = parent.getBBox();
rect.x.baseVal.value = bbox.x;
@@ -65,7 +59,7 @@ const _highlightText = (thisNode, text, className) => {
let addItems = [];
_highlight(thisNode, addItems, text, className);
addItems.forEach((obj) =>
- obj.parent.insertAdjacentElement("beforebegin", obj.target)
+ obj.parent.insertAdjacentElement("beforebegin", obj.target),
);
};
@@ -73,25 +67,31 @@ const _highlightText = (thisNode, text, className) => {
* Small JavaScript module for the documentation.
*/
const SphinxHighlight = {
-
/**
* highlight the search words provided in localstorage in the text
*/
highlightSearchWords: () => {
- if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight
+ if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight
// get and clear terms from localstorage
const url = new URL(window.location);
const highlight =
- localStorage.getItem("sphinx_highlight_terms")
- || url.searchParams.get("highlight")
- || "";
- localStorage.removeItem("sphinx_highlight_terms")
- url.searchParams.delete("highlight");
- window.history.replaceState({}, "", url);
+ localStorage.getItem("sphinx_highlight_terms")
+ || url.searchParams.get("highlight")
+ || "";
+ localStorage.removeItem("sphinx_highlight_terms");
+ // Update history only if '?highlight' is present; otherwise it
+ // clears text fragments (not set in window.location by the browser)
+ if (url.searchParams.has("highlight")) {
+ url.searchParams.delete("highlight");
+ window.history.replaceState({}, "", url);
+ }
// get individual terms from highlight string
- const terms = highlight.toLowerCase().split(/\s+/).filter(x => x);
+ const terms = highlight
+ .toLowerCase()
+ .split(/\s+/)
+ .filter((x) => x);
if (terms.length === 0) return; // nothing to do
// There should never be more than one element matching "div.body"
@@ -107,11 +107,11 @@ const SphinxHighlight = {
document
.createRange()
.createContextualFragment(
- '<p class="highlight-link">' +
- '<a href="javascript:SphinxHighlight.hideSearchWords()">' +
- _("Hide Search Matches") +
- "</a></p>"
- )
+ '<p class="highlight-link">'
+ + '<a href="javascript:SphinxHighlight.hideSearchWords()">'
+ + _("Hide Search Matches")
+ + "</a></p>",
+ ),
);
},
@@ -125,7 +125,7 @@ const SphinxHighlight = {
document
.querySelectorAll("span.highlighted")
.forEach((el) => el.classList.remove("highlighted"));
- localStorage.removeItem("sphinx_highlight_terms")
+ localStorage.removeItem("sphinx_highlight_terms");
},
initEscapeListener: () => {
@@ -134,10 +134,15 @@ const SphinxHighlight = {
document.addEventListener("keydown", (event) => {
// bail for input elements
- if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return;
+ if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName))
+ return;
// bail with special keys
- if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return;
- if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) {
+ if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey)
+ return;
+ if (
+ DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS
+ && event.key === "Escape"
+ ) {
SphinxHighlight.hideSearchWords();
event.preventDefault();
}
diff --git a/0.8.0/_static/styles/pydata-sphinx-theme.css b/0.8.0/_static/styles/pydata-sphinx-theme.css
new file mode 100644
index 00000000..d26dd09d
--- /dev/null
+++ b/0.8.0/_static/styles/pydata-sphinx-theme.css
@@ -0,0 +1,32 @@
+@charset "UTF-8";
+/*!
+ * Bootstrap v5.3.3 (https://getbootstrap.com/)
+ * Copyright 2011-2024 The Bootstrap Authors
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */:root,[data-bs-theme=light]{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;-- [...]
+/*!
+ * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
+ * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
+ * Copyright 2024 Fonticons, Inc.
+ */.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-classic,.fa-regular,.fa-sharp,.fa-solid,.fab,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-classic,.fa-regular,.fa-solid,.far,.fas{font-family:Font Awesome\ 6 Free}.fa-brands,.fab{font-family:Font Awesome\ 6 Brands}.fa-1x{font-si [...]
+
+/*!
+ * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
+ * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
+ * Copyright 2024 Fonticons, Inc.
+ */:host,:root{--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-display:block;font-family:Font Awesome\ 6 Free;font-style:normal;font-weight:900;src:url(../vendor/fontawesome/webfonts/fa-solid-900.woff2) format("woff2"),url(../vendor/fontawesome/webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}
+
+/*!
+ * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
+ * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
+ * Copyright 2024 Fonticons, Inc.
+ */:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-display:block;font-family:Font Awesome\ 6 Free;font-style:normal;font-weight:400;src:url(../vendor/fontawesome/webfonts/fa-regular-400.woff2) format("woff2"),url(../vendor/fontawesome/webfonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-weight:400}
+
+/*!
+ * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
+ * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
+ * Copyright 2024 Fonticons, Inc.
+ */:host,:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-display:block;font-family:Font Awesome\ 6 Brands;font-style:normal;font-weight:400;src:url(../vendor/fontawesome/webfonts/fa-brands-400.woff2) format("woff2"),url(../vendor/fontawesome/webfonts/fa-brands-400.ttf) format("truetype")}.fa-brands,.fab{font-weight:400}.fa-monero:before{content:"\f3d0"}.fa-hooli:before{content:"\f427"}.fa-yelp:before{content [...]
+ --pst-color-text-base
+ );border:1px solid var(--pst-color-table-outer-border);color:var(--pst-color-table)}.table td~td,.table td~th,.table th~td,.table th~th{border-left:1px solid var(--pst-color-table-inner-border)}.table thead tr{background-color:var(--pst-color-table-heading-bg);border-bottom:2px solid var(--pst-color-primary)}.table tbody tr:nth-child(odd){background-color:var(--pst-color-table-row-zebra-low-bg)}.table tbody tr:nth-child(2n){background-color:var(--pst-color-table-row-zebra-high-bg)}.pst [...]
+/*# sourceMappingURL=pydata-sphinx-theme.css.map*/
\ No newline at end of file
diff --git a/0.8.0/_static/styles/pydata-sphinx-theme.css.map b/0.8.0/_static/styles/pydata-sphinx-theme.css.map
new file mode 100644
index 00000000..1142bcdf
--- /dev/null
+++ b/0.8.0/_static/styles/pydata-sphinx-theme.css.map
@@ -0,0 +1 @@
+{"version":3,"file":"styles/pydata-sphinx-theme.css","mappings":"AAsGE,gBCqlBF;AC1rBE;;;;EAAA,CCDF,4BASI,qQAIA,sMAIA,iKAIA,sNAIA,iRAIA,iPAIA,iRAGF,2BACA,qBAMA,yMACA,mGACA,4EAOA,gDC2OI,wBALI,CDpOR,0BACA,0BAKA,wBACA,6BACA,kBACA,6BAEA,yBACA,8BAEA,wCACA,kCACA,0BACA,kCAEA,sCACA,iCACA,yBACA,iCAGA,2BAEA,wBACA,+BACA,+BAEA,8BACA,oCAMA,wBACA,6BACA,0BAGA,sBACA,wBACA,0BACA,+CAEA,4BACA,8BACA,6BACA,2BACA,4BACA,mDACA,8BAGA,8CACA,uDACA,gDACA,uDAIA,gCACA,0BACA,8CAIA,8BACA,qCACA,gCACA,sCFFF,CI9GI,qBFyHA,w [...]
\ No newline at end of file
diff --git a/0.8.0/_static/styles/theme.css b/0.8.0/_static/styles/theme.css
new file mode 100644
index 00000000..4519dd91
--- /dev/null
+++ b/0.8.0/_static/styles/theme.css
@@ -0,0 +1,2 @@
+/* Provided by Sphinx's 'basic' theme, and included in the final set of assets */
+@import "../basic.css";
diff --git a/0.8.0/_static/vendor/fontawesome/webfonts/fa-brands-400.ttf b/0.8.0/_static/vendor/fontawesome/webfonts/fa-brands-400.ttf
new file mode 100644
index 00000000..1fbb1f7c
Binary files /dev/null and b/0.8.0/_static/vendor/fontawesome/webfonts/fa-brands-400.ttf differ
diff --git a/0.8.0/_static/vendor/fontawesome/webfonts/fa-brands-400.woff2 b/0.8.0/_static/vendor/fontawesome/webfonts/fa-brands-400.woff2
new file mode 100644
index 00000000..5d280216
Binary files /dev/null and b/0.8.0/_static/vendor/fontawesome/webfonts/fa-brands-400.woff2 differ
diff --git a/0.8.0/_static/vendor/fontawesome/webfonts/fa-regular-400.ttf b/0.8.0/_static/vendor/fontawesome/webfonts/fa-regular-400.ttf
new file mode 100644
index 00000000..549d68dc
Binary files /dev/null and b/0.8.0/_static/vendor/fontawesome/webfonts/fa-regular-400.ttf differ
diff --git a/0.8.0/_static/vendor/fontawesome/webfonts/fa-regular-400.woff2 b/0.8.0/_static/vendor/fontawesome/webfonts/fa-regular-400.woff2
new file mode 100644
index 00000000..18400d7f
Binary files /dev/null and b/0.8.0/_static/vendor/fontawesome/webfonts/fa-regular-400.woff2 differ
diff --git a/0.8.0/_static/vendor/fontawesome/webfonts/fa-solid-900.ttf b/0.8.0/_static/vendor/fontawesome/webfonts/fa-solid-900.ttf
new file mode 100644
index 00000000..bb2a8695
Binary files /dev/null and b/0.8.0/_static/vendor/fontawesome/webfonts/fa-solid-900.ttf differ
diff --git a/0.8.0/_static/vendor/fontawesome/webfonts/fa-solid-900.woff2 b/0.8.0/_static/vendor/fontawesome/webfonts/fa-solid-900.woff2
new file mode 100644
index 00000000..758dd4f6
Binary files /dev/null and b/0.8.0/_static/vendor/fontawesome/webfonts/fa-solid-900.woff2 differ
diff --git a/0.8.0/_static/webpack-macros.html b/0.8.0/_static/webpack-macros.html
new file mode 100644
index 00000000..89732b23
--- /dev/null
+++ b/0.8.0/_static/webpack-macros.html
@@ -0,0 +1,24 @@
+<!--
+ AUTO-GENERATED from webpack.config.js, do **NOT** edit by hand.
+ These are re-used in layout.html
+-->
+
+{% macro head_pre_assets() %}
+ <!-- Loaded before other Sphinx assets -->
+ <link href="{{ pathto('_static/styles/theme.css', 1) }}?digest=8878045cc6db502f8baf" rel="stylesheet" />
+<link href="{{ pathto('_static/styles/pydata-sphinx-theme.css', 1) }}?digest=8878045cc6db502f8baf" rel="stylesheet" />
+{% endmacro %}
+
+{% macro head_js_preload() %}
+ <!-- So that users can add custom icons -->
+ <script src="{{ pathto('_static/scripts/fontawesome.js', 1) }}?digest=8878045cc6db502f8baf"></script>
+ <!-- Pre-loaded scripts that we'll load fully later -->
+ <link rel="preload" as="script" href="{{ pathto('_static/scripts/bootstrap.js', 1) }}?digest=8878045cc6db502f8baf" />
+<link rel="preload" as="script" href="{{ pathto('_static/scripts/pydata-sphinx-theme.js', 1) }}?digest=8878045cc6db502f8baf" />
+{% endmacro %}
+
+{% macro body_post() %}
+ <!-- Scripts loaded after <body> so the DOM is not blocked -->
+ <script defer src="{{ pathto('_static/scripts/bootstrap.js', 1) }}?digest=8878045cc6db502f8baf"></script>
+<script defer src="{{ pathto('_static/scripts/pydata-sphinx-theme.js', 1) }}?digest=8878045cc6db502f8baf"></script>
+{% endmacro %}
\ No newline at end of file
diff --git a/latest/genindex.html b/0.8.0/genindex.html
similarity index 99%
copy from latest/genindex.html
copy to 0.8.0/genindex.html
index 66381f6a..ade3ec22 100644
--- a/latest/genindex.html
+++ b/0.8.0/genindex.html
@@ -38,13 +38,13 @@
<link rel="preload" as="script" href="_static/scripts/pydata-sphinx-theme.js?digest=8878045cc6db502f8baf" />
<script src="_static/documentation_options.js?v=5929fcd5"></script>
- <script src="_static/doctools.js?v=9bcbadda"></script>
- <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
+ <script src="_static/doctools.js?v=fd6eb6e6"></script>
+ <script src="_static/sphinx_highlight.js?v=6ffebe34"></script>
<script>DOCUMENTATION_OPTIONS.pagename = 'genindex';</script>
<script>
DOCUMENTATION_OPTIONS.theme_version = '0.16.1';
DOCUMENTATION_OPTIONS.theme_switcher_json_url = 'https://arrow.apache.org/nanoarrow/switcher.json';
- DOCUMENTATION_OPTIONS.theme_switcher_version_match = '0.7.0';
+ DOCUMENTATION_OPTIONS.theme_switcher_version_match = '0.8.0';
DOCUMENTATION_OPTIONS.show_version_warning_banner =
false;
</script>
@@ -449,6 +449,8 @@
<li><a href="reference/c.html#_CPPv4N10ArrowArray12private_dataE">ArrowArray::private_data (C++ member)</a>
</li>
<li><a href="reference/c.html#_CPPv4N10ArrowArray7releaseE">ArrowArray::release (C++ member)</a>
+</li>
+ <li><a href="reference/c.html#_CPPv428ArrowArrayAddVariadicBuffersP10ArrowArray7int32_t">ArrowArrayAddVariadicBuffers (C++ function)</a>
</li>
<li><a href="reference/c.html#_CPPv421ArrowArrayAppendBytesP10ArrowArray15ArrowBufferView">ArrowArrayAppendBytes (C++ function)</a>
</li>
@@ -743,11 +745,11 @@
<li><a href="reference/device.html#_CPPv4N11ArrowDevice11device_typeE">ArrowDevice::device_type (C++ member)</a>
</li>
<li><a href="reference/device.html#_CPPv4N11ArrowDevice12private_dataE">ArrowDevice::private_data (C++ member)</a>
-</li>
- <li><a href="reference/device.html#_CPPv4N11ArrowDevice7releaseE">ArrowDevice::release (C++ member)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
+ <li><a href="reference/device.html#_CPPv4N11ArrowDevice7releaseE">ArrowDevice::release (C++ member)</a>
+</li>
<li><a href="reference/device.html#_CPPv4N11ArrowDevice17synchronize_eventE">ArrowDevice::synchronize_event (C++ member)</a>
</li>
<li><a href="reference/device.html#_CPPv416ArrowDeviceArray">ArrowDeviceArray (C++ struct)</a>
@@ -1198,6 +1200,8 @@
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
+ <li><a href="reference/python/schema.html#nanoarrow.schema.dense_union">dense_union() (in module nanoarrow.schema)</a>
+</li>
<li><a href="reference/python/array.html#nanoarrow.array.Array.device">device (Array property)</a>
</li>
<li><a href="reference/python/schema.html#nanoarrow.schema.dictionary">dictionary() (in module nanoarrow.schema)</a>
@@ -1578,16 +1582,18 @@
</li>
<li><a href="reference/python/array.html#nanoarrow.array.Scalar.schema">schema (Scalar property)</a>
</li>
- </ul></td>
- <td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference/python/schema.html#nanoarrow.schema.schema">schema() (in module nanoarrow.schema)</a>
</li>
+ </ul></td>
+ <td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference/python/array.html#nanoarrow.array.Array.serialize">serialize() (Array method)</a>
<ul>
<li><a href="reference/python/schema.html#nanoarrow.schema.Schema.serialize">(Schema method)</a>
</li>
</ul></li>
+ <li><a href="reference/python/schema.html#nanoarrow.schema.sparse_union">sparse_union() (in module nanoarrow.schema)</a>
+</li>
<li><a href="reference/python/schema.html#nanoarrow.schema.ExtensionAccessor.storage">storage (ExtensionAccessor property)</a>
</li>
<li><a href="reference/python/schema.html#nanoarrow.schema.string">string() (in module nanoarrow.schema)</a>
@@ -1608,15 +1614,17 @@
</li>
<li><a href="reference/python/schema.html#nanoarrow.schema.timestamp">timestamp() (in module nanoarrow.schema)</a>
</li>
- </ul></td>
- <td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference/python/schema.html#nanoarrow.schema.TimeUnit">TimeUnit (class in nanoarrow.schema)</a>
</li>
+ </ul></td>
+ <td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference/python/schema.html#nanoarrow.schema.Schema.timezone">timezone (Schema property)</a>
</li>
<li><a href="reference/python/schema.html#nanoarrow.schema.Type">Type (class in nanoarrow.schema)</a>
</li>
<li><a href="reference/python/schema.html#nanoarrow.schema.Schema.type">type (Schema property)</a>
+</li>
+ <li><a href="reference/python/schema.html#nanoarrow.schema.Schema.type_codes">type_codes (Schema property)</a>
</li>
</ul></td>
</tr></table>
@@ -1748,7 +1756,7 @@
<p class="copyright">
- © Copyright 2016-2025 Apache Software Foundation.
+ © Copyright 2016-2026 Apache Software Foundation.
<br/>
</p>
@@ -1757,7 +1765,7 @@
<div class="footer-item">
<p class="sphinx-version">
- Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.
+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 9.1.0.
<br/>
</p>
</div>
diff --git a/latest/getting-started/cpp.html b/0.8.0/getting-started/cpp.html
similarity index 99%
copy from latest/getting-started/cpp.html
copy to 0.8.0/getting-started/cpp.html
index 466dc27f..9a0d44a8 100644
--- a/latest/getting-started/cpp.html
+++ b/0.8.0/getting-started/cpp.html
@@ -39,13 +39,13 @@
<link rel="preload" as="script" href="../_static/scripts/pydata-sphinx-theme.js?digest=8878045cc6db502f8baf" />
<script src="../_static/documentation_options.js?v=5929fcd5"></script>
- <script src="../_static/doctools.js?v=9bcbadda"></script>
- <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
+ <script src="../_static/doctools.js?v=fd6eb6e6"></script>
+ <script src="../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script>DOCUMENTATION_OPTIONS.pagename = 'getting-started/cpp';</script>
<script>
DOCUMENTATION_OPTIONS.theme_version = '0.16.1';
DOCUMENTATION_OPTIONS.theme_switcher_json_url = 'https://arrow.apache.org/nanoarrow/switcher.json';
- DOCUMENTATION_OPTIONS.theme_switcher_version_match = '0.7.0';
+ DOCUMENTATION_OPTIONS.theme_switcher_version_match = '0.8.0';
DOCUMENTATION_OPTIONS.show_version_warning_banner =
false;
</script>
@@ -982,7 +982,7 @@ exposing an Arrow-based API implemented using the nanoarrow C library.</p>
<p class="copyright">
- © Copyright 2016-2025 Apache Software Foundation.
+ © Copyright 2016-2026 Apache Software Foundation.
<br/>
</p>
@@ -991,7 +991,7 @@ exposing an Arrow-based API implemented using the nanoarrow C library.</p>
<div class="footer-item">
<p class="sphinx-version">
- Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.
+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 9.1.0.
<br/>
</p>
</div>
diff --git a/latest/getting-started/index.html b/0.8.0/getting-started/index.html
similarity index 98%
copy from latest/getting-started/index.html
copy to 0.8.0/getting-started/index.html
index d0b42b92..95c2a7b2 100644
--- a/latest/getting-started/index.html
+++ b/0.8.0/getting-started/index.html
@@ -39,13 +39,13 @@
<link rel="preload" as="script" href="../_static/scripts/pydata-sphinx-theme.js?digest=8878045cc6db502f8baf" />
<script src="../_static/documentation_options.js?v=5929fcd5"></script>
- <script src="../_static/doctools.js?v=9bcbadda"></script>
- <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
+ <script src="../_static/doctools.js?v=fd6eb6e6"></script>
+ <script src="../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script>DOCUMENTATION_OPTIONS.pagename = 'getting-started/index';</script>
<script>
DOCUMENTATION_OPTIONS.theme_version = '0.16.1';
DOCUMENTATION_OPTIONS.theme_switcher_json_url = 'https://arrow.apache.org/nanoarrow/switcher.json';
- DOCUMENTATION_OPTIONS.theme_switcher_version_match = '0.7.0';
+ DOCUMENTATION_OPTIONS.theme_switcher_version_match = '0.8.0';
DOCUMENTATION_OPTIONS.show_version_warning_banner =
false;
</script>
@@ -490,7 +490,7 @@
<p class="copyright">
- © Copyright 2016-2025 Apache Software Foundation.
+ © Copyright 2016-2026 Apache Software Foundation.
<br/>
</p>
@@ -499,7 +499,7 @@
<div class="footer-item">
<p class="sphinx-version">
- Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.
+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 9.1.0.
<br/>
</p>
</div>
diff --git a/latest/getting-started/python.html b/0.8.0/getting-started/python.html
similarity index 99%
copy from latest/getting-started/python.html
copy to 0.8.0/getting-started/python.html
index 3c8eb02d..1feb1783 100644
--- a/latest/getting-started/python.html
+++ b/0.8.0/getting-started/python.html
@@ -39,13 +39,13 @@
<link rel="preload" as="script" href="../_static/scripts/pydata-sphinx-theme.js?digest=8878045cc6db502f8baf" />
<script src="../_static/documentation_options.js?v=5929fcd5"></script>
- <script src="../_static/doctools.js?v=9bcbadda"></script>
- <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
+ <script src="../_static/doctools.js?v=fd6eb6e6"></script>
+ <script src="../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script>DOCUMENTATION_OPTIONS.pagename = 'getting-started/python';</script>
<script>
DOCUMENTATION_OPTIONS.theme_version = '0.16.1';
DOCUMENTATION_OPTIONS.theme_switcher_json_url = 'https://arrow.apache.org/nanoarrow/switcher.json';
- DOCUMENTATION_OPTIONS.theme_switcher_version_match = '0.7.0';
+ DOCUMENTATION_OPTIONS.theme_switcher_version_match = '0.8.0';
DOCUMENTATION_OPTIONS.show_version_warning_banner =
false;
</script>
@@ -833,7 +833,7 @@ in the working tree.</p>
<p class="copyright">
- © Copyright 2016-2025 Apache Software Foundation.
+ © Copyright 2016-2026 Apache Software Foundation.
<br/>
</p>
@@ -842,7 +842,7 @@ in the working tree.</p>
<div class="footer-item">
<p class="sphinx-version">
- Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.
+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 9.1.0.
<br/>
</p>
</div>
diff --git a/latest/getting-started/r.html b/0.8.0/getting-started/r.html
similarity index 99%
copy from latest/getting-started/r.html
copy to 0.8.0/getting-started/r.html
index 6a2c79b8..433832ea 100644
--- a/latest/getting-started/r.html
+++ b/0.8.0/getting-started/r.html
@@ -39,13 +39,13 @@
<link rel="preload" as="script" href="../_static/scripts/pydata-sphinx-theme.js?digest=8878045cc6db502f8baf" />
<script src="../_static/documentation_options.js?v=5929fcd5"></script>
- <script src="../_static/doctools.js?v=9bcbadda"></script>
- <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
+ <script src="../_static/doctools.js?v=fd6eb6e6"></script>
+ <script src="../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script>DOCUMENTATION_OPTIONS.pagename = 'getting-started/r';</script>
<script>
DOCUMENTATION_OPTIONS.theme_version = '0.16.1';
DOCUMENTATION_OPTIONS.theme_switcher_json_url = 'https://arrow.apache.org/nanoarrow/switcher.json';
- DOCUMENTATION_OPTIONS.theme_switcher_version_match = '0.7.0';
+ DOCUMENTATION_OPTIONS.theme_switcher_version_match = '0.8.0';
DOCUMENTATION_OPTIONS.show_version_warning_banner =
false;
</script>
@@ -727,7 +727,7 @@ equivalent nanoarrow objects into many arrow functions and vice versa.</p>
<p class="copyright">
- © Copyright 2016-2025 Apache Software Foundation.
+ © Copyright 2016-2026 Apache Software Foundation.
<br/>
</p>
@@ -736,7 +736,7 @@ equivalent nanoarrow objects into many arrow functions and vice versa.</p>
<div class="footer-item">
<p class="sphinx-version">
- Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.
+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 9.1.0.
<br/>
</p>
</div>
diff --git a/latest/index.html b/0.8.0/index.html
similarity index 98%
copy from latest/index.html
copy to 0.8.0/index.html
index 7f3403c8..e1117dba 100644
--- a/latest/index.html
+++ b/0.8.0/index.html
@@ -39,13 +39,13 @@
<link rel="preload" as="script" href="_static/scripts/pydata-sphinx-theme.js?digest=8878045cc6db502f8baf" />
<script src="_static/documentation_options.js?v=5929fcd5"></script>
- <script src="_static/doctools.js?v=9bcbadda"></script>
- <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
+ <script src="_static/doctools.js?v=fd6eb6e6"></script>
+ <script src="_static/sphinx_highlight.js?v=6ffebe34"></script>
<script>DOCUMENTATION_OPTIONS.pagename = 'index';</script>
<script>
DOCUMENTATION_OPTIONS.theme_version = '0.16.1';
DOCUMENTATION_OPTIONS.theme_switcher_json_url = 'https://arrow.apache.org/nanoarrow/switcher.json';
- DOCUMENTATION_OPTIONS.theme_switcher_version_match = '0.7.0';
+ DOCUMENTATION_OPTIONS.theme_switcher_version_match = '0.8.0';
DOCUMENTATION_OPTIONS.show_version_warning_banner =
false;
</script>
@@ -411,7 +411,7 @@ and Python bindings.</p>
<p>CMake is also supported via a build/install with <code class="docutils literal notranslate"><span class="pre">find_package()</span></code> or
using <code class="docutils literal notranslate"><span class="pre">FetchContent</span></code>:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">fetchcontent_declare</span><span class="p">(</span><span class="n">nanoarrow</span>
- <span class="n">URL</span> <span class="s2">"https://www.apache.org/dyn/closer.lua?action=download&filename=arrow/apache-arrow-nanoarrow-0.6.0/apache-arrow-nanoarrow-0.6.0.tar.gz"</span><span class="p">)</span>
+ <span class="n">URL</span> <span class="s2">"https://www.apache.org/dyn/closer.lua?action=download&filename=arrow/apache-arrow-nanoarrow-0.8.0/apache-arrow-nanoarrow-0.8.0.tar.gz"</span><span class="p">)</span>
<span class="n">fetchcontent_makeavailable</span><span class="p">(</span><span class="n">nanoarrow</span><span class="p">)</span>
</pre></div>
@@ -631,7 +631,7 @@ meson<span class="w"> </span><span class="nb">test</span><span class="w"> </span
<p class="copyright">
- © Copyright 2016-2025 Apache Software Foundation.
+ © Copyright 2016-2026 Apache Software Foundation.
<br/>
</p>
@@ -640,7 +640,7 @@ meson<span class="w"> </span><span class="nb">test</span><span class="w"> </span
<div class="footer-item">
<p class="sphinx-version">
- Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.
+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 9.1.0.
<br/>
</p>
</div>
diff --git a/0.8.0/objects.inv b/0.8.0/objects.inv
new file mode 100644
index 00000000..a6888c44
Binary files /dev/null and b/0.8.0/objects.inv differ
diff --git a/latest/py-modindex.html b/0.8.0/py-modindex.html
similarity index 98%
copy from latest/py-modindex.html
copy to 0.8.0/py-modindex.html
index cdec1508..c5d5d1b4 100644
--- a/latest/py-modindex.html
+++ b/0.8.0/py-modindex.html
@@ -38,13 +38,13 @@
<link rel="preload" as="script" href="_static/scripts/pydata-sphinx-theme.js?digest=8878045cc6db502f8baf" />
<script src="_static/documentation_options.js?v=5929fcd5"></script>
- <script src="_static/doctools.js?v=9bcbadda"></script>
- <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
+ <script src="_static/doctools.js?v=fd6eb6e6"></script>
+ <script src="_static/sphinx_highlight.js?v=6ffebe34"></script>
<script>DOCUMENTATION_OPTIONS.pagename = 'py-modindex';</script>
<script>
DOCUMENTATION_OPTIONS.theme_version = '0.16.1';
DOCUMENTATION_OPTIONS.theme_switcher_json_url = 'https://arrow.apache.org/nanoarrow/switcher.json';
- DOCUMENTATION_OPTIONS.theme_switcher_version_match = '0.7.0';
+ DOCUMENTATION_OPTIONS.theme_switcher_version_match = '0.8.0';
DOCUMENTATION_OPTIONS.show_version_warning_banner =
false;
</script>
@@ -420,7 +420,7 @@
<p class="copyright">
- © Copyright 2016-2025 Apache Software Foundation.
+ © Copyright 2016-2026 Apache Software Foundation.
<br/>
</p>
@@ -429,7 +429,7 @@
<div class="footer-item">
<p class="sphinx-version">
- Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.
+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 9.1.0.
<br/>
</p>
</div>
diff --git a/latest/r/404.html b/0.8.0/r/404.html
similarity index 97%
copy from latest/r/404.html
copy to 0.8.0/r/404.html
index 976d416e..98ee092e 100644
--- a/latest/r/404.html
+++ b/0.8.0/r/404.html
@@ -20,7 +20,7 @@
<a class="navbar-brand me-2" href="index.html">nanoarrow</a>
- <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">0.7.0</small>
+ <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">0.8.0</small>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
@@ -61,7 +61,7 @@ Content not found. Please use links in the navbar.
</div>
<div class="pkgdown-footer-right">
- <p>Site built with <a href="https://pkgdown.r-lib.org/" class="external-link">pkgdown</a> 2.1.3.</p>
+ <p>Site built with <a href="https://pkgdown.r-lib.org/" class="external-link">pkgdown</a> 2.2.0.</p>
</div>
</footer>
diff --git a/0.8.0/r/404.md b/0.8.0/r/404.md
new file mode 100644
index 00000000..5107f896
--- /dev/null
+++ b/0.8.0/r/404.md
@@ -0,0 +1,3 @@
+Content not found. Please use links in the navbar.
+
+# Page not found (404)
diff --git a/latest/r/LICENSE.html b/0.8.0/r/LICENSE.html
similarity index 99%
copy from latest/r/LICENSE.html
copy to 0.8.0/r/LICENSE.html
index 5869564e..ff32e27f 100644
--- a/latest/r/LICENSE.html
+++ b/0.8.0/r/LICENSE.html
@@ -7,7 +7,7 @@
<a class="navbar-brand me-2" href="index.html">nanoarrow</a>
- <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">0.7.0</small>
+ <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">0.8.0</small>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
@@ -121,7 +121,7 @@
</div>
<div class="pkgdown-footer-right">
- <p>Site built with <a href="https://pkgdown.r-lib.org/" class="external-link">pkgdown</a> 2.1.3.</p>
+ <p>Site built with <a href="https://pkgdown.r-lib.org/" class="external-link">pkgdown</a> 2.2.0.</p>
</div>
</footer></div>
diff --git a/0.8.0/r/LICENSE.md b/0.8.0/r/LICENSE.md
new file mode 100644
index 00000000..cdeff298
--- /dev/null
+++ b/0.8.0/r/LICENSE.md
@@ -0,0 +1,206 @@
+# Apache License
+
+*Version 2.0, January 2004* *\<<http://www.apache.org/licenses/>\>*
+
+### Terms and Conditions for use, reproduction, and distribution
+
+#### 1. Definitions
+
+“License” shall mean the terms and conditions for use, reproduction, and
+distribution as defined by Sections 1 through 9 of this document.
+
+“Licensor” shall mean the copyright owner or entity authorized by the
+copyright owner that is granting the License.
+
+“Legal Entity” shall mean the union of the acting entity and all other
+entities that control, are controlled by, or are under common control
+with that entity. For the purposes of this definition, “control” means
+**(i)** the power, direct or indirect, to cause the direction or
+management of such entity, whether by contract or otherwise, or **(ii)**
+ownership of fifty percent (50%) or more of the outstanding shares, or
+**(iii)** beneficial ownership of such entity.
+
+“You” (or “Your”) shall mean an individual or Legal Entity exercising
+permissions granted by this License.
+
+“Source” form shall mean the preferred form for making modifications,
+including but not limited to software source code, documentation source,
+and configuration files.
+
+“Object” form shall mean any form resulting from mechanical
+transformation or translation of a Source form, including but not
+limited to compiled object code, generated documentation, and
+conversions to other media types.
+
+“Work” shall mean the work of authorship, whether in Source or Object
+form, made available under the License, as indicated by a copyright
+notice that is included in or attached to the work (an example is
+provided in the Appendix below).
+
+“Derivative Works” shall mean any work, whether in Source or Object
+form, that is based on (or derived from) the Work and for which the
+editorial revisions, annotations, elaborations, or other modifications
+represent, as a whole, an original work of authorship. For the purposes
+of this License, Derivative Works shall not include works that remain
+separable from, or merely link (or bind by name) to the interfaces of,
+the Work and Derivative Works thereof.
+
+“Contribution” shall mean any work of authorship, including the original
+version of the Work and any modifications or additions to that Work or
+Derivative Works thereof, that is intentionally submitted to Licensor
+for inclusion in the Work by the copyright owner or by an individual or
+Legal Entity authorized to submit on behalf of the copyright owner. For
+the purposes of this definition, “submitted” means any form of
+electronic, verbal, or written communication sent to the Licensor or its
+representatives, including but not limited to communication on
+electronic mailing lists, source code control systems, and issue
+tracking systems that are managed by, or on behalf of, the Licensor for
+the purpose of discussing and improving the Work, but excluding
+communication that is conspicuously marked or otherwise designated in
+writing by the copyright owner as “Not a Contribution.”
+
+“Contributor” shall mean Licensor and any individual or Legal Entity on
+behalf of whom a Contribution has been received by Licensor and
+subsequently incorporated within the Work.
+
+#### 2. Grant of Copyright License
+
+Subject to the terms and conditions of this License, each Contributor
+hereby grants to You a perpetual, worldwide, non-exclusive, no-charge,
+royalty-free, irrevocable copyright license to reproduce, prepare
+Derivative Works of, publicly display, publicly perform, sublicense, and
+distribute the Work and such Derivative Works in Source or Object form.
+
+#### 3. Grant of Patent License
+
+Subject to the terms and conditions of this License, each Contributor
+hereby grants to You a perpetual, worldwide, non-exclusive, no-charge,
+royalty-free, irrevocable (except as stated in this section) patent
+license to make, have made, use, offer to sell, sell, import, and
+otherwise transfer the Work, where such license applies only to those
+patent claims licensable by such Contributor that are necessarily
+infringed by their Contribution(s) alone or by combination of their
+Contribution(s) with the Work to which such Contribution(s) was
+submitted. If You institute patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Work or a Contribution incorporated within the Work constitutes direct
+or contributory patent infringement, then any patent licenses granted to
+You under this License for that Work shall terminate as of the date such
+litigation is filed.
+
+#### 4. Redistribution
+
+You may reproduce and distribute copies of the Work or Derivative Works
+thereof in any medium, with or without modifications, and in Source or
+Object form, provided that You meet the following conditions:
+
+- **(a)** You must give any other recipients of the Work or Derivative
+ Works a copy of this License; and
+- **(b)** You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+- **(c)** You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and attribution
+ notices from the Source form of the Work, excluding those notices that
+ do not pertain to any part of the Derivative Works; and
+- **(d)** If the Work includes a “NOTICE” text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained within
+ such NOTICE file, excluding those notices that do not pertain to any
+ part of the Derivative Works, in at least one of the following places:
+ within a NOTICE text file distributed as part of the Derivative Works;
+ within the Source form or documentation, if provided along with the
+ Derivative Works; or, within a display generated by the Derivative
+ Works, if and wherever such third-party notices normally appear. The
+ contents of the NOTICE file are for informational purposes only and do
+ not modify the License. You may add Your own attribution notices
+ within Derivative Works that You distribute, alongside or as an
+ addendum to the NOTICE text from the Work, provided that such
+ additional attribution notices cannot be construed as modifying the
+ License.
+
+You may add Your own copyright statement to Your modifications and may
+provide additional or different license terms and conditions for use,
+reproduction, or distribution of Your modifications, or for any such
+Derivative Works as a whole, provided Your use, reproduction, and
+distribution of the Work otherwise complies with the conditions stated
+in this License.
+
+#### 5. Submission of Contributions
+
+Unless You explicitly state otherwise, any Contribution intentionally
+submitted for inclusion in the Work by You to the Licensor shall be
+under the terms and conditions of this License, without any additional
+terms or conditions. Notwithstanding the above, nothing herein shall
+supersede or modify the terms of any separate license agreement you may
+have executed with Licensor regarding such Contributions.
+
+#### 6. Trademarks
+
+This License does not grant permission to use the trade names,
+trademarks, service marks, or product names of the Licensor, except as
+required for reasonable and customary use in describing the origin of
+the Work and reproducing the content of the NOTICE file.
+
+#### 7. Disclaimer of Warranty
+
+Unless required by applicable law or agreed to in writing, Licensor
+provides the Work (and each Contributor provides its Contributions) on
+an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+express or implied, including, without limitation, any warranties or
+conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+PARTICULAR PURPOSE. You are solely responsible for determining the
+appropriateness of using or redistributing the Work and assume any risks
+associated with Your exercise of permissions under this License.
+
+#### 8. Limitation of Liability
+
+In no event and under no legal theory, whether in tort (including
+negligence), contract, or otherwise, unless required by applicable law
+(such as deliberate and grossly negligent acts) or agreed to in writing,
+shall any Contributor be liable to You for damages, including any
+direct, indirect, special, incidental, or consequential damages of any
+character arising as a result of this License or out of the use or
+inability to use the Work (including but not limited to damages for loss
+of goodwill, work stoppage, computer failure or malfunction, or any and
+all other commercial damages or losses), even if such Contributor has
+been advised of the possibility of such damages.
+
+#### 9. Accepting Warranty or Additional Liability
+
+While redistributing the Work or Derivative Works thereof, You may
+choose to offer, and charge a fee for, acceptance of support, warranty,
+indemnity, or other liability obligations and/or rights consistent with
+this License. However, in accepting such obligations, You may act only
+on Your own behalf and on Your sole responsibility, not on behalf of any
+other Contributor, and only if You agree to indemnify, defend, and hold
+each Contributor harmless for any liability incurred by, or claims
+asserted against, such Contributor by reason of your accepting any such
+warranty or additional liability.
+
+*END OF TERMS AND CONDITIONS*
+
+### APPENDIX: How to apply the Apache License to your work
+
+To apply the Apache License to your work, attach the following
+boilerplate notice, with the fields enclosed by brackets `[]` replaced
+with your own identifying information. (Don’t include the brackets!) The
+text should be enclosed in the appropriate comment syntax for the file
+format. We also recommend that a file or class name and description of
+purpose be included on the same “printed page” as the copyright notice
+for easier identification within third-party archives.
+
+``` R
+Copyright [yyyy] [name of copyright owner]
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+```
diff --git a/latest/r/authors.html b/0.8.0/r/authors.html
similarity index 94%
copy from latest/r/authors.html
copy to 0.8.0/r/authors.html
index 758a3343..a211f5b8 100644
--- a/latest/r/authors.html
+++ b/0.8.0/r/authors.html
@@ -7,7 +7,7 @@
<a class="navbar-brand me-2" href="index.html">nanoarrow</a>
- <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">0.7.0</small>
+ <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">0.8.0</small>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
@@ -52,15 +52,15 @@
<h2 id="citation">Citation</h2>
<p><small class="dont-index">Source: <a href="https://github.com/apache/arrow-nanoarrow/blob/main/r/DESCRIPTION" class="external-link"><code>DESCRIPTION</code></a></small></p>
- <p>Dunnington D, Apache Arrow (2025).
+ <p>Dunnington D, Apache Arrow (2026).
<em>nanoarrow: Interface to the 'nanoarrow' 'C' Library</em>.
-R package version 0.7.0, https://github.com/apache/arrow-nanoarrow, <a href="https://arrow.apache.org/nanoarrow/latest/r/" class="external-link">https://arrow.apache.org/nanoarrow/latest/r/</a>.
+R package version 0.8.0, https://github.com/apache/arrow-nanoarrow, <a href="https://arrow.apache.org/nanoarrow/latest/r/" class="external-link">https://arrow.apache.org/nanoarrow/latest/r/</a>.
</p>
<pre>@Manual{,
title = {nanoarrow: Interface to the 'nanoarrow' 'C' Library},
author = {Dewey Dunnington and {Apache Arrow}},
- year = {2025},
- note = {R package version 0.7.0, https://github.com/apache/arrow-nanoarrow},
+ year = {2026},
+ note = {R package version 0.8.0, https://github.com/apache/arrow-nanoarrow},
url = {https://arrow.apache.org/nanoarrow/latest/r/},
}</pre>
</div>
@@ -74,7 +74,7 @@ R package version 0.7.0, https://github.com/apache/arrow-nanoarrow, <a href="htt
</div>
<div class="pkgdown-footer-right">
- <p>Site built with <a href="https://pkgdown.r-lib.org/" class="external-link">pkgdown</a> 2.1.3.</p>
+ <p>Site built with <a href="https://pkgdown.r-lib.org/" class="external-link">pkgdown</a> 2.2.0.</p>
</div>
</footer></div>
diff --git a/0.8.0/r/authors.md b/0.8.0/r/authors.md
new file mode 100644
index 00000000..bd6b3f0c
--- /dev/null
+++ b/0.8.0/r/authors.md
@@ -0,0 +1,28 @@
+# Authors and Citation
+
+## Authors
+
+- **Dewey Dunnington**. Author, maintainer.
+ [](https://orcid.org/0000-0002-9415-4582)
+
+- **Apache Arrow**. Author, copyright holder.
+
+- **Apache Software Foundation**. Copyright holder.
+
+## Citation
+
+Source:
+[`DESCRIPTION`](https://github.com/apache/arrow-nanoarrow/blob/main/r/DESCRIPTION)
+
+Dunnington D, Apache Arrow (2026). *nanoarrow: Interface to the
+'nanoarrow' 'C' Library*. R package version 0.8.0,
+https://github.com/apache/arrow-nanoarrow,
+<https://arrow.apache.org/nanoarrow/latest/r/>.
+
+ @Manual{,
+ title = {nanoarrow: Interface to the 'nanoarrow' 'C' Library},
+ author = {Dewey Dunnington and {Apache Arrow}},
+ year = {2026},
+ note = {R package version 0.8.0, https://github.com/apache/arrow-nanoarrow},
+ url = {https://arrow.apache.org/nanoarrow/latest/r/},
+ }
diff --git a/0.8.0/r/deps/bootstrap-5.3.1/bootstrap.bundle.min.js b/0.8.0/r/deps/bootstrap-5.3.1/bootstrap.bundle.min.js
new file mode 100644
index 00000000..e8f21f70
--- /dev/null
+++ b/0.8.0/r/deps/bootstrap-5.3.1/bootstrap.bundle.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap v5.3.1 (https://getbootstrap.com/)
+ * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,(function(){"use strict";const t=new Map,e={set(e,i,n){t.has(e)||t.set(e,new Map);const s=t.get(e);s.has(i)||0===s.size?s.set(i,n):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`)},get:(e,i)=>t.has(e)&&t.get(e). [...]
+//# sourceMappingURL=bootstrap.bundle.min.js.map
\ No newline at end of file
diff --git a/0.8.0/r/deps/bootstrap-5.3.1/bootstrap.bundle.min.js.map b/0.8.0/r/deps/bootstrap-5.3.1/bootstrap.bundle.min.js.map
new file mode 100644
index 00000000..3863da8b
--- /dev/null
+++ b/0.8.0/r/deps/bootstrap-5.3.1/bootstrap.bundle.min.js.map
@@ -0,0 +1 @@
+{"version":3,"names":["elementMap","Map","Data","set","element","key","instance","has","instanceMap","get","size","console","error","Array","from","keys","remove","delete","TRANSITION_END","parseSelector","selector","window","CSS","escape","replace","match","id","triggerTransitionEnd","dispatchEvent","Event","isElement","object","jquery","nodeType","getElement","length","document","querySelector","isVisible","getClientRects","elementIsVisible","getComputedStyle","getPropertyValue","close [...]
\ No newline at end of file
diff --git a/latest/r/deps/bootstrap-5.3.1/bootstrap.min.css b/0.8.0/r/deps/bootstrap-5.3.1/bootstrap.min.css
similarity index 96%
copy from latest/r/deps/bootstrap-5.3.1/bootstrap.min.css
copy to 0.8.0/r/deps/bootstrap-5.3.1/bootstrap.min.css
index 3363cb22..b8a510c2 100644
--- a/latest/r/deps/bootstrap-5.3.1/bootstrap.min.css
+++ b/0.8.0/r/deps/bootstrap-5.3.1/bootstrap.min.css
@@ -2,4 +2,4 @@
* Bootstrap v5.3.1 (https://getbootstrap.com/)
* Copyright 2011-2023 The Bootstrap Authors
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
- */:root,[data-bs-theme="light"]{--bs-blue: #0d6efd;--bs-indigo: #6610f2;--bs-purple: #6f42c1;--bs-pink: #d63384;--bs-red: #dc3545;--bs-orange: #fd7e14;--bs-yellow: #ffc107;--bs-green: #198754;--bs-teal: #20c997;--bs-cyan: #0dcaf0;--bs-black: #000;--bs-white: #fff;--bs-gray: #6c757d;--bs-gray-dark: #343a40;--bs-gray-100: #f8f9fa;--bs-gray-200: #e9ecef;--bs-gray-300: #dee2e6;--bs-gray-400: #ced4da;--bs-gray-500: #adb5bd;--bs-gray-600: #6c757d;--bs-gray-700: #495057;--bs-gray-800: #343a4 [...]
+ */:root,[data-bs-theme="light"]{--bs-blue: #0d6efd;--bs-indigo: #6610f2;--bs-purple: #6f42c1;--bs-pink: #d63384;--bs-red: #dc3545;--bs-orange: #fd7e14;--bs-yellow: #ffc107;--bs-green: #198754;--bs-teal: #20c997;--bs-cyan: #0dcaf0;--bs-black: #000;--bs-white: #fff;--bs-gray: #6c757d;--bs-gray-dark: #343a40;--bs-gray-100: #f8f9fa;--bs-gray-200: #e9ecef;--bs-gray-300: #dee2e6;--bs-gray-400: #ced4da;--bs-gray-500: #adb5bd;--bs-gray-600: #6c757d;--bs-gray-700: #495057;--bs-gray-800: #343a4 [...]
diff --git a/0.8.0/r/deps/bootstrap-toc-1.0.1/bootstrap-toc.min.js b/0.8.0/r/deps/bootstrap-toc-1.0.1/bootstrap-toc.min.js
new file mode 100644
index 00000000..c628326a
--- /dev/null
+++ b/0.8.0/r/deps/bootstrap-toc-1.0.1/bootstrap-toc.min.js
@@ -0,0 +1,5 @@
+/*!
+ * Bootstrap Table of Contents v1.0.1 (http://afeld.github.io/bootstrap-toc/)
+ * Copyright 2015 Aidan Feldman
+ * Licensed under MIT (https://github.com/afeld/bootstrap-toc/blob/gh-pages/LICENSE.md) */
+!function(a){"use strict";window.Toc={helpers:{findOrFilter:function(e,t){var n=e.find(t);return e.filter(t).add(n).filter(":not([data-toc-skip])")},generateUniqueIdBase:function(e){return a(e).text().trim().replace(/\'/gi,"").replace(/[& +$,:;=?@"#{}|^~[`%!'<>\]\.\/\(\)\*\\\n\t\b\v]/g,"-").replace(/-{2,}/g,"-").substring(0,64).replace(/^-+|-+$/gm,"").toLowerCase()||e.tagName.toLowerCase()},generateUniqueId:function(e){for(var t=this.generateUniqueIdBase(e),n=0;;n++){var r=t;if(0<n&&(r+= [...]
\ No newline at end of file
diff --git a/0.8.0/r/deps/clipboard.js-2.0.11/clipboard.min.js b/0.8.0/r/deps/clipboard.js-2.0.11/clipboard.min.js
new file mode 100644
index 00000000..1103f811
--- /dev/null
+++ b/0.8.0/r/deps/clipboard.js-2.0.11/clipboard.min.js
@@ -0,0 +1,7 @@
+/*!
+ * clipboard.js v2.0.11
+ * https://clipboardjs.com/
+ *
+ * Licensed MIT © Zeno Rocha
+ */
+!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={686:function(t,e,n){"use strict";n.d(e,{default:function(){return b}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),r=n.n(e);function c(t){try{return document.execCommand(t)}catch(t){return}}var a=function(t){t=r()(t);return c("cut"),t};function o(t,e){var n, [...]
\ No newline at end of file
diff --git a/0.8.0/r/deps/data-deps.txt b/0.8.0/r/deps/data-deps.txt
new file mode 100644
index 00000000..ca4dfd9c
--- /dev/null
+++ b/0.8.0/r/deps/data-deps.txt
@@ -0,0 +1,13 @@
+<script src="deps/jquery-3.6.0/jquery-3.6.0.min.js"></script>
+<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
+<link href="deps/bootstrap-5.3.1/bootstrap.min.css" rel="stylesheet" />
+<script src="deps/bootstrap-5.3.1/bootstrap.bundle.min.js"></script>
+<link href="deps/font-awesome-6.5.2/css/all.min.css" rel="stylesheet" />
+<link href="deps/font-awesome-6.5.2/css/v4-shims.min.css" rel="stylesheet" />
+<script src="deps/headroom-0.11.0/headroom.min.js"></script>
+<script src="deps/headroom-0.11.0/jQuery.headroom.min.js"></script>
+<script src="deps/bootstrap-toc-1.0.1/bootstrap-toc.min.js"></script>
+<script src="deps/clipboard.js-2.0.11/clipboard.min.js"></script>
+<script src="deps/search-1.0.0/autocomplete.jquery.min.js"></script>
+<script src="deps/search-1.0.0/fuse.min.js"></script>
+<script src="deps/search-1.0.0/mark.min.js"></script>
diff --git a/0.8.0/r/deps/font-awesome-6.5.2/css/all.css b/0.8.0/r/deps/font-awesome-6.5.2/css/all.css
new file mode 100644
index 00000000..151dd57c
--- /dev/null
+++ b/0.8.0/r/deps/font-awesome-6.5.2/css/all.css
@@ -0,0 +1,8028 @@
+/*!
+ * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
+ * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
+ * Copyright 2024 Fonticons, Inc.
+ */
+.fa {
+ font-family: var(--fa-style-family, "Font Awesome 6 Free");
+ font-weight: var(--fa-style, 900); }
+
+.fa,
+.fa-classic,
+.fa-sharp,
+.fas,
+.fa-solid,
+.far,
+.fa-regular,
+.fab,
+.fa-brands {
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-font-smoothing: antialiased;
+ display: var(--fa-display, inline-block);
+ font-style: normal;
+ font-variant: normal;
+ line-height: 1;
+ text-rendering: auto; }
+
+.fas,
+.fa-classic,
+.fa-solid,
+.far,
+.fa-regular {
+ font-family: 'Font Awesome 6 Free'; }
+
+.fab,
+.fa-brands {
+ font-family: 'Font Awesome 6 Brands'; }
+
+.fa-1x {
+ font-size: 1em; }
+
+.fa-2x {
+ font-size: 2em; }
+
+.fa-3x {
+ font-size: 3em; }
+
+.fa-4x {
+ font-size: 4em; }
+
+.fa-5x {
+ font-size: 5em; }
+
+.fa-6x {
+ font-size: 6em; }
+
+.fa-7x {
+ font-size: 7em; }
+
+.fa-8x {
+ font-size: 8em; }
+
+.fa-9x {
+ font-size: 9em; }
+
+.fa-10x {
+ font-size: 10em; }
+
+.fa-2xs {
+ font-size: 0.625em;
+ line-height: 0.1em;
+ vertical-align: 0.225em; }
+
+.fa-xs {
+ font-size: 0.75em;
+ line-height: 0.08333em;
+ vertical-align: 0.125em; }
+
+.fa-sm {
+ font-size: 0.875em;
+ line-height: 0.07143em;
+ vertical-align: 0.05357em; }
+
+.fa-lg {
+ font-size: 1.25em;
+ line-height: 0.05em;
+ vertical-align: -0.075em; }
+
+.fa-xl {
+ font-size: 1.5em;
+ line-height: 0.04167em;
+ vertical-align: -0.125em; }
+
+.fa-2xl {
+ font-size: 2em;
+ line-height: 0.03125em;
+ vertical-align: -0.1875em; }
+
+.fa-fw {
+ text-align: center;
+ width: 1.25em; }
+
+.fa-ul {
+ list-style-type: none;
+ margin-left: var(--fa-li-margin, 2.5em);
+ padding-left: 0; }
+ .fa-ul > li {
+ position: relative; }
+
+.fa-li {
+ left: calc(var(--fa-li-width, 2em) * -1);
+ position: absolute;
+ text-align: center;
+ width: var(--fa-li-width, 2em);
+ line-height: inherit; }
+
+.fa-border {
+ border-color: var(--fa-border-color, #eee);
+ border-radius: var(--fa-border-radius, 0.1em);
+ border-style: var(--fa-border-style, solid);
+ border-width: var(--fa-border-width, 0.08em);
+ padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); }
+
+.fa-pull-left {
+ float: left;
+ margin-right: var(--fa-pull-margin, 0.3em); }
+
+.fa-pull-right {
+ float: right;
+ margin-left: var(--fa-pull-margin, 0.3em); }
+
+.fa-beat {
+ -webkit-animation-name: fa-beat;
+ animation-name: fa-beat;
+ -webkit-animation-delay: var(--fa-animation-delay, 0s);
+ animation-delay: var(--fa-animation-delay, 0s);
+ -webkit-animation-direction: var(--fa-animation-direction, normal);
+ animation-direction: var(--fa-animation-direction, normal);
+ -webkit-animation-duration: var(--fa-animation-duration, 1s);
+ animation-duration: var(--fa-animation-duration, 1s);
+ -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
+ animation-iteration-count: var(--fa-animation-iteration-count, infinite);
+ -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);
+ animation-timing-function: var(--fa-animation-timing, ease-in-out); }
+
+.fa-bounce {
+ -webkit-animation-name: fa-bounce;
+ animation-name: fa-bounce;
+ -webkit-animation-delay: var(--fa-animation-delay, 0s);
+ animation-delay: var(--fa-animation-delay, 0s);
+ -webkit-animation-direction: var(--fa-animation-direction, normal);
+ animation-direction: var(--fa-animation-direction, normal);
+ -webkit-animation-duration: var(--fa-animation-duration, 1s);
+ animation-duration: var(--fa-animation-duration, 1s);
+ -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
+ animation-iteration-count: var(--fa-animation-iteration-count, infinite);
+ -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));
+ animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); }
+
+.fa-fade {
+ -webkit-animation-name: fa-fade;
+ animation-name: fa-fade;
+ -webkit-animation-delay: var(--fa-animation-delay, 0s);
+ animation-delay: var(--fa-animation-delay, 0s);
+ -webkit-animation-direction: var(--fa-animation-direction, normal);
+ animation-direction: var(--fa-animation-direction, normal);
+ -webkit-animation-duration: var(--fa-animation-duration, 1s);
+ animation-duration: var(--fa-animation-duration, 1s);
+ -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
+ animation-iteration-count: var(--fa-animation-iteration-count, infinite);
+ -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));
+ animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }
+
+.fa-beat-fade {
+ -webkit-animation-name: fa-beat-fade;
+ animation-name: fa-beat-fade;
+ -webkit-animation-delay: var(--fa-animation-delay, 0s);
+ animation-delay: var(--fa-animation-delay, 0s);
+ -webkit-animation-direction: var(--fa-animation-direction, normal);
+ animation-direction: var(--fa-animation-direction, normal);
+ -webkit-animation-duration: var(--fa-animation-duration, 1s);
+ animation-duration: var(--fa-animation-duration, 1s);
+ -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
+ animation-iteration-count: var(--fa-animation-iteration-count, infinite);
+ -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));
+ animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }
+
+.fa-flip {
+ -webkit-animation-name: fa-flip;
+ animation-name: fa-flip;
+ -webkit-animation-delay: var(--fa-animation-delay, 0s);
+ animation-delay: var(--fa-animation-delay, 0s);
+ -webkit-animation-direction: var(--fa-animation-direction, normal);
+ animation-direction: var(--fa-animation-direction, normal);
+ -webkit-animation-duration: var(--fa-animation-duration, 1s);
+ animation-duration: var(--fa-animation-duration, 1s);
+ -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
+ animation-iteration-count: var(--fa-animation-iteration-count, infinite);
+ -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);
+ animation-timing-function: var(--fa-animation-timing, ease-in-out); }
+
+.fa-shake {
+ -webkit-animation-name: fa-shake;
+ animation-name: fa-shake;
+ -webkit-animation-delay: var(--fa-animation-delay, 0s);
+ animation-delay: var(--fa-animation-delay, 0s);
+ -webkit-animation-direction: var(--fa-animation-direction, normal);
+ animation-direction: var(--fa-animation-direction, normal);
+ -webkit-animation-duration: var(--fa-animation-duration, 1s);
+ animation-duration: var(--fa-animation-duration, 1s);
+ -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
+ animation-iteration-count: var(--fa-animation-iteration-count, infinite);
+ -webkit-animation-timing-function: var(--fa-animation-timing, linear);
+ animation-timing-function: var(--fa-animation-timing, linear); }
+
+.fa-spin {
+ -webkit-animation-name: fa-spin;
+ animation-name: fa-spin;
+ -webkit-animation-delay: var(--fa-animation-delay, 0s);
+ animation-delay: var(--fa-animation-delay, 0s);
+ -webkit-animation-direction: var(--fa-animation-direction, normal);
+ animation-direction: var(--fa-animation-direction, normal);
+ -webkit-animation-duration: var(--fa-animation-duration, 2s);
+ animation-duration: var(--fa-animation-duration, 2s);
+ -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
+ animation-iteration-count: var(--fa-animation-iteration-count, infinite);
+ -webkit-animation-timing-function: var(--fa-animation-timing, linear);
+ animation-timing-function: var(--fa-animation-timing, linear); }
+
+.fa-spin-reverse {
+ --fa-animation-direction: reverse; }
+
+.fa-pulse,
+.fa-spin-pulse {
+ -webkit-animation-name: fa-spin;
+ animation-name: fa-spin;
+ -webkit-animation-direction: var(--fa-animation-direction, normal);
+ animation-direction: var(--fa-animation-direction, normal);
+ -webkit-animation-duration: var(--fa-animation-duration, 1s);
+ animation-duration: var(--fa-animation-duration, 1s);
+ -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
+ animation-iteration-count: var(--fa-animation-iteration-count, infinite);
+ -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));
+ animation-timing-function: var(--fa-animation-timing, steps(8)); }
+
+@media (prefers-reduced-motion: reduce) {
+ .fa-beat,
+ .fa-bounce,
+ .fa-fade,
+ .fa-beat-fade,
+ .fa-flip,
+ .fa-pulse,
+ .fa-shake,
+ .fa-spin,
+ .fa-spin-pulse {
+ -webkit-animation-delay: -1ms;
+ animation-delay: -1ms;
+ -webkit-animation-duration: 1ms;
+ animation-duration: 1ms;
+ -webkit-animation-iteration-count: 1;
+ animation-iteration-count: 1;
+ -webkit-transition-delay: 0s;
+ transition-delay: 0s;
+ -webkit-transition-duration: 0s;
+ transition-duration: 0s; } }
+
+@-webkit-keyframes fa-beat {
+ 0%, 90% {
+ -webkit-transform: scale(1);
+ transform: scale(1); }
+ 45% {
+ -webkit-transform: scale(var(--fa-beat-scale, 1.25));
+ transform: scale(var(--fa-beat-scale, 1.25)); } }
+
+@keyframes fa-beat {
+ 0%, 90% {
+ -webkit-transform: scale(1);
+ transform: scale(1); }
+ 45% {
+ -webkit-transform: scale(var(--fa-beat-scale, 1.25));
+ transform: scale(var(--fa-beat-scale, 1.25)); } }
+
+@-webkit-keyframes fa-bounce {
+ 0% {
+ -webkit-transform: scale(1, 1) translateY(0);
+ transform: scale(1, 1) translateY(0); }
+ 10% {
+ -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);
+ transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); }
+ 30% {
+ -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));
+ transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); }
+ 50% {
+ -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);
+ transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); }
+ 57% {
+ -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));
+ transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); }
+ 64% {
+ -webkit-transform: scale(1, 1) translateY(0);
+ transform: scale(1, 1) translateY(0); }
+ 100% {
+ -webkit-transform: scale(1, 1) translateY(0);
+ transform: scale(1, 1) translateY(0); } }
+
+@keyframes fa-bounce {
+ 0% {
+ -webkit-transform: scale(1, 1) translateY(0);
+ transform: scale(1, 1) translateY(0); }
+ 10% {
+ -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);
+ transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); }
+ 30% {
+ -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));
+ transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); }
+ 50% {
+ -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);
+ transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); }
+ 57% {
+ -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));
+ transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); }
+ 64% {
+ -webkit-transform: scale(1, 1) translateY(0);
+ transform: scale(1, 1) translateY(0); }
+ 100% {
+ -webkit-transform: scale(1, 1) translateY(0);
+ transform: scale(1, 1) translateY(0); } }
+
+@-webkit-keyframes fa-fade {
+ 50% {
+ opacity: var(--fa-fade-opacity, 0.4); } }
+
+@keyframes fa-fade {
+ 50% {
+ opacity: var(--fa-fade-opacity, 0.4); } }
+
+@-webkit-keyframes fa-beat-fade {
+ 0%, 100% {
+ opacity: var(--fa-beat-fade-opacity, 0.4);
+ -webkit-transform: scale(1);
+ transform: scale(1); }
+ 50% {
+ opacity: 1;
+ -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));
+ transform: scale(var(--fa-beat-fade-scale, 1.125)); } }
+
+@keyframes fa-beat-fade {
+ 0%, 100% {
+ opacity: var(--fa-beat-fade-opacity, 0.4);
+ -webkit-transform: scale(1);
+ transform: scale(1); }
+ 50% {
+ opacity: 1;
+ -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));
+ transform: scale(var(--fa-beat-fade-scale, 1.125)); } }
+
+@-webkit-keyframes fa-flip {
+ 50% {
+ -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));
+ transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } }
+
+@keyframes fa-flip {
+ 50% {
+ -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));
+ transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } }
+
+@-webkit-keyframes fa-shake {
+ 0% {
+ -webkit-transform: rotate(-15deg);
+ transform: rotate(-15deg); }
+ 4% {
+ -webkit-transform: rotate(15deg);
+ transform: rotate(15deg); }
+ 8%, 24% {
+ -webkit-transform: rotate(-18deg);
+ transform: rotate(-18deg); }
+ 12%, 28% {
+ -webkit-transform: rotate(18deg);
+ transform: rotate(18deg); }
+ 16% {
+ -webkit-transform: rotate(-22deg);
+ transform: rotate(-22deg); }
+ 20% {
+ -webkit-transform: rotate(22deg);
+ transform: rotate(22deg); }
+ 32% {
+ -webkit-transform: rotate(-12deg);
+ transform: rotate(-12deg); }
+ 36% {
+ -webkit-transform: rotate(12deg);
+ transform: rotate(12deg); }
+ 40%, 100% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg); } }
+
+@keyframes fa-shake {
+ 0% {
+ -webkit-transform: rotate(-15deg);
+ transform: rotate(-15deg); }
+ 4% {
+ -webkit-transform: rotate(15deg);
+ transform: rotate(15deg); }
+ 8%, 24% {
+ -webkit-transform: rotate(-18deg);
+ transform: rotate(-18deg); }
+ 12%, 28% {
+ -webkit-transform: rotate(18deg);
+ transform: rotate(18deg); }
+ 16% {
+ -webkit-transform: rotate(-22deg);
+ transform: rotate(-22deg); }
+ 20% {
+ -webkit-transform: rotate(22deg);
+ transform: rotate(22deg); }
+ 32% {
+ -webkit-transform: rotate(-12deg);
+ transform: rotate(-12deg); }
+ 36% {
+ -webkit-transform: rotate(12deg);
+ transform: rotate(12deg); }
+ 40%, 100% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg); } }
+
+@-webkit-keyframes fa-spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg); }
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg); } }
+
+@keyframes fa-spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg); }
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg); } }
+
+.fa-rotate-90 {
+ -webkit-transform: rotate(90deg);
+ transform: rotate(90deg); }
+
+.fa-rotate-180 {
+ -webkit-transform: rotate(180deg);
+ transform: rotate(180deg); }
+
+.fa-rotate-270 {
+ -webkit-transform: rotate(270deg);
+ transform: rotate(270deg); }
+
+.fa-flip-horizontal {
+ -webkit-transform: scale(-1, 1);
+ transform: scale(-1, 1); }
+
+.fa-flip-vertical {
+ -webkit-transform: scale(1, -1);
+ transform: scale(1, -1); }
+
+.fa-flip-both,
+.fa-flip-horizontal.fa-flip-vertical {
+ -webkit-transform: scale(-1, -1);
+ transform: scale(-1, -1); }
+
+.fa-rotate-by {
+ -webkit-transform: rotate(var(--fa-rotate-angle, 0));
+ transform: rotate(var(--fa-rotate-angle, 0)); }
+
+.fa-stack {
+ display: inline-block;
+ height: 2em;
+ line-height: 2em;
+ position: relative;
+ vertical-align: middle;
+ width: 2.5em; }
+
+.fa-stack-1x,
+.fa-stack-2x {
+ left: 0;
+ position: absolute;
+ text-align: center;
+ width: 100%;
+ z-index: var(--fa-stack-z-index, auto); }
+
+.fa-stack-1x {
+ line-height: inherit; }
+
+.fa-stack-2x {
+ font-size: 2em; }
+
+.fa-inverse {
+ color: var(--fa-inverse, #fff); }
+
+/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
+readers do not read off random characters that represent icons */
+
+.fa-0::before {
+ content: "\30"; }
+
+.fa-1::before {
+ content: "\31"; }
+
+.fa-2::before {
+ content: "\32"; }
+
+.fa-3::before {
+ content: "\33"; }
+
+.fa-4::before {
+ content: "\34"; }
+
+.fa-5::before {
+ content: "\35"; }
+
+.fa-6::before {
+ content: "\36"; }
+
+.fa-7::before {
+ content: "\37"; }
+
+.fa-8::before {
+ content: "\38"; }
+
+.fa-9::before {
+ content: "\39"; }
+
+.fa-fill-drip::before {
+ content: "\f576"; }
+
+.fa-arrows-to-circle::before {
+ content: "\e4bd"; }
+
+.fa-circle-chevron-right::before {
+ content: "\f138"; }
+
+.fa-chevron-circle-right::before {
+ content: "\f138"; }
+
+.fa-at::before {
+ content: "\40"; }
+
+.fa-trash-can::before {
+ content: "\f2ed"; }
+
+.fa-trash-alt::before {
+ content: "\f2ed"; }
+
+.fa-text-height::before {
+ content: "\f034"; }
+
+.fa-user-xmark::before {
+ content: "\f235"; }
+
+.fa-user-times::before {
+ content: "\f235"; }
+
+.fa-stethoscope::before {
+ content: "\f0f1"; }
+
+.fa-message::before {
+ content: "\f27a"; }
+
+.fa-comment-alt::before {
+ content: "\f27a"; }
+
+.fa-info::before {
+ content: "\f129"; }
+
+.fa-down-left-and-up-right-to-center::before {
+ content: "\f422"; }
+
+.fa-compress-alt::before {
+ content: "\f422"; }
+
+.fa-explosion::before {
+ content: "\e4e9"; }
+
+.fa-file-lines::before {
+ content: "\f15c"; }
+
+.fa-file-alt::before {
+ content: "\f15c"; }
+
+.fa-file-text::before {
+ content: "\f15c"; }
+
+.fa-wave-square::before {
+ content: "\f83e"; }
+
+.fa-ring::before {
+ content: "\f70b"; }
+
+.fa-building-un::before {
+ content: "\e4d9"; }
+
+.fa-dice-three::before {
+ content: "\f527"; }
+
+.fa-calendar-days::before {
+ content: "\f073"; }
+
+.fa-calendar-alt::before {
+ content: "\f073"; }
+
+.fa-anchor-circle-check::before {
+ content: "\e4aa"; }
+
+.fa-building-circle-arrow-right::before {
+ content: "\e4d1"; }
+
+.fa-volleyball::before {
+ content: "\f45f"; }
+
+.fa-volleyball-ball::before {
+ content: "\f45f"; }
+
+.fa-arrows-up-to-line::before {
+ content: "\e4c2"; }
+
+.fa-sort-down::before {
+ content: "\f0dd"; }
+
+.fa-sort-desc::before {
+ content: "\f0dd"; }
+
+.fa-circle-minus::before {
+ content: "\f056"; }
+
+.fa-minus-circle::before {
+ content: "\f056"; }
+
+.fa-door-open::before {
+ content: "\f52b"; }
+
+.fa-right-from-bracket::before {
+ content: "\f2f5"; }
+
+.fa-sign-out-alt::before {
+ content: "\f2f5"; }
+
+.fa-atom::before {
+ content: "\f5d2"; }
+
+.fa-soap::before {
+ content: "\e06e"; }
+
+.fa-icons::before {
+ content: "\f86d"; }
+
+.fa-heart-music-camera-bolt::before {
+ content: "\f86d"; }
+
+.fa-microphone-lines-slash::before {
+ content: "\f539"; }
+
+.fa-microphone-alt-slash::before {
+ content: "\f539"; }
+
+.fa-bridge-circle-check::before {
+ content: "\e4c9"; }
+
+.fa-pump-medical::before {
+ content: "\e06a"; }
+
+.fa-fingerprint::before {
+ content: "\f577"; }
+
+.fa-hand-point-right::before {
+ content: "\f0a4"; }
+
+.fa-magnifying-glass-location::before {
+ content: "\f689"; }
+
+.fa-search-location::before {
+ content: "\f689"; }
+
+.fa-forward-step::before {
+ content: "\f051"; }
+
+.fa-step-forward::before {
+ content: "\f051"; }
+
+.fa-face-smile-beam::before {
+ content: "\f5b8"; }
+
+.fa-smile-beam::before {
+ content: "\f5b8"; }
+
+.fa-flag-checkered::before {
+ content: "\f11e"; }
+
+.fa-football::before {
+ content: "\f44e"; }
+
+.fa-football-ball::before {
+ content: "\f44e"; }
+
+.fa-school-circle-exclamation::before {
+ content: "\e56c"; }
+
+.fa-crop::before {
+ content: "\f125"; }
+
+.fa-angles-down::before {
+ content: "\f103"; }
+
+.fa-angle-double-down::before {
+ content: "\f103"; }
+
+.fa-users-rectangle::before {
+ content: "\e594"; }
+
+.fa-people-roof::before {
+ content: "\e537"; }
+
+.fa-people-line::before {
+ content: "\e534"; }
+
+.fa-beer-mug-empty::before {
+ content: "\f0fc"; }
+
+.fa-beer::before {
+ content: "\f0fc"; }
+
+.fa-diagram-predecessor::before {
+ content: "\e477"; }
+
+.fa-arrow-up-long::before {
+ content: "\f176"; }
+
+.fa-long-arrow-up::before {
+ content: "\f176"; }
+
+.fa-fire-flame-simple::before {
+ content: "\f46a"; }
+
+.fa-burn::before {
+ content: "\f46a"; }
+
+.fa-person::before {
+ content: "\f183"; }
+
+.fa-male::before {
+ content: "\f183"; }
+
+.fa-laptop::before {
+ content: "\f109"; }
+
+.fa-file-csv::before {
+ content: "\f6dd"; }
+
+.fa-menorah::before {
+ content: "\f676"; }
+
+.fa-truck-plane::before {
+ content: "\e58f"; }
+
+.fa-record-vinyl::before {
+ content: "\f8d9"; }
+
+.fa-face-grin-stars::before {
+ content: "\f587"; }
+
+.fa-grin-stars::before {
+ content: "\f587"; }
+
+.fa-bong::before {
+ content: "\f55c"; }
+
+.fa-spaghetti-monster-flying::before {
+ content: "\f67b"; }
+
+.fa-pastafarianism::before {
+ content: "\f67b"; }
+
+.fa-arrow-down-up-across-line::before {
+ content: "\e4af"; }
+
+.fa-spoon::before {
+ content: "\f2e5"; }
+
+.fa-utensil-spoon::before {
+ content: "\f2e5"; }
+
+.fa-jar-wheat::before {
+ content: "\e517"; }
+
+.fa-envelopes-bulk::before {
+ content: "\f674"; }
+
+.fa-mail-bulk::before {
+ content: "\f674"; }
+
+.fa-file-circle-exclamation::before {
+ content: "\e4eb"; }
+
+.fa-circle-h::before {
+ content: "\f47e"; }
+
+.fa-hospital-symbol::before {
+ content: "\f47e"; }
+
+.fa-pager::before {
+ content: "\f815"; }
+
+.fa-address-book::before {
+ content: "\f2b9"; }
+
+.fa-contact-book::before {
+ content: "\f2b9"; }
+
+.fa-strikethrough::before {
+ content: "\f0cc"; }
+
+.fa-k::before {
+ content: "\4b"; }
+
+.fa-landmark-flag::before {
+ content: "\e51c"; }
+
+.fa-pencil::before {
+ content: "\f303"; }
+
+.fa-pencil-alt::before {
+ content: "\f303"; }
+
+.fa-backward::before {
+ content: "\f04a"; }
+
+.fa-caret-right::before {
+ content: "\f0da"; }
+
+.fa-comments::before {
+ content: "\f086"; }
+
+.fa-paste::before {
+ content: "\f0ea"; }
+
+.fa-file-clipboard::before {
+ content: "\f0ea"; }
+
+.fa-code-pull-request::before {
+ content: "\e13c"; }
+
+.fa-clipboard-list::before {
+ content: "\f46d"; }
+
+.fa-truck-ramp-box::before {
+ content: "\f4de"; }
+
+.fa-truck-loading::before {
+ content: "\f4de"; }
+
+.fa-user-check::before {
+ content: "\f4fc"; }
+
+.fa-vial-virus::before {
+ content: "\e597"; }
+
+.fa-sheet-plastic::before {
+ content: "\e571"; }
+
+.fa-blog::before {
+ content: "\f781"; }
+
+.fa-user-ninja::before {
+ content: "\f504"; }
+
+.fa-person-arrow-up-from-line::before {
+ content: "\e539"; }
+
+.fa-scroll-torah::before {
+ content: "\f6a0"; }
+
+.fa-torah::before {
+ content: "\f6a0"; }
+
+.fa-broom-ball::before {
+ content: "\f458"; }
+
+.fa-quidditch::before {
+ content: "\f458"; }
+
+.fa-quidditch-broom-ball::before {
+ content: "\f458"; }
+
+.fa-toggle-off::before {
+ content: "\f204"; }
+
+.fa-box-archive::before {
+ content: "\f187"; }
+
+.fa-archive::before {
+ content: "\f187"; }
+
+.fa-person-drowning::before {
+ content: "\e545"; }
+
+.fa-arrow-down-9-1::before {
+ content: "\f886"; }
+
+.fa-sort-numeric-desc::before {
+ content: "\f886"; }
+
+.fa-sort-numeric-down-alt::before {
+ content: "\f886"; }
+
+.fa-face-grin-tongue-squint::before {
+ content: "\f58a"; }
+
+.fa-grin-tongue-squint::before {
+ content: "\f58a"; }
+
+.fa-spray-can::before {
+ content: "\f5bd"; }
+
+.fa-truck-monster::before {
+ content: "\f63b"; }
+
+.fa-w::before {
+ content: "\57"; }
+
+.fa-earth-africa::before {
+ content: "\f57c"; }
+
+.fa-globe-africa::before {
+ content: "\f57c"; }
+
+.fa-rainbow::before {
+ content: "\f75b"; }
+
+.fa-circle-notch::before {
+ content: "\f1ce"; }
+
+.fa-tablet-screen-button::before {
+ content: "\f3fa"; }
+
+.fa-tablet-alt::before {
+ content: "\f3fa"; }
+
+.fa-paw::before {
+ content: "\f1b0"; }
+
+.fa-cloud::before {
+ content: "\f0c2"; }
+
+.fa-trowel-bricks::before {
+ content: "\e58a"; }
+
+.fa-face-flushed::before {
+ content: "\f579"; }
+
+.fa-flushed::before {
+ content: "\f579"; }
+
+.fa-hospital-user::before {
+ content: "\f80d"; }
+
+.fa-tent-arrow-left-right::before {
+ content: "\e57f"; }
+
+.fa-gavel::before {
+ content: "\f0e3"; }
+
+.fa-legal::before {
+ content: "\f0e3"; }
+
+.fa-binoculars::before {
+ content: "\f1e5"; }
+
+.fa-microphone-slash::before {
+ content: "\f131"; }
+
+.fa-box-tissue::before {
+ content: "\e05b"; }
+
+.fa-motorcycle::before {
+ content: "\f21c"; }
+
+.fa-bell-concierge::before {
+ content: "\f562"; }
+
+.fa-concierge-bell::before {
+ content: "\f562"; }
+
+.fa-pen-ruler::before {
+ content: "\f5ae"; }
+
+.fa-pencil-ruler::before {
+ content: "\f5ae"; }
+
+.fa-people-arrows::before {
+ content: "\e068"; }
+
+.fa-people-arrows-left-right::before {
+ content: "\e068"; }
+
+.fa-mars-and-venus-burst::before {
+ content: "\e523"; }
+
+.fa-square-caret-right::before {
+ content: "\f152"; }
+
+.fa-caret-square-right::before {
+ content: "\f152"; }
+
+.fa-scissors::before {
+ content: "\f0c4"; }
+
+.fa-cut::before {
+ content: "\f0c4"; }
+
+.fa-sun-plant-wilt::before {
+ content: "\e57a"; }
+
+.fa-toilets-portable::before {
+ content: "\e584"; }
+
+.fa-hockey-puck::before {
+ content: "\f453"; }
+
+.fa-table::before {
+ content: "\f0ce"; }
+
+.fa-magnifying-glass-arrow-right::before {
+ content: "\e521"; }
+
+.fa-tachograph-digital::before {
+ content: "\f566"; }
+
+.fa-digital-tachograph::before {
+ content: "\f566"; }
+
+.fa-users-slash::before {
+ content: "\e073"; }
+
+.fa-clover::before {
+ content: "\e139"; }
+
+.fa-reply::before {
+ content: "\f3e5"; }
+
+.fa-mail-reply::before {
+ content: "\f3e5"; }
+
+.fa-star-and-crescent::before {
+ content: "\f699"; }
+
+.fa-house-fire::before {
+ content: "\e50c"; }
+
+.fa-square-minus::before {
+ content: "\f146"; }
+
+.fa-minus-square::before {
+ content: "\f146"; }
+
+.fa-helicopter::before {
+ content: "\f533"; }
+
+.fa-compass::before {
+ content: "\f14e"; }
+
+.fa-square-caret-down::before {
+ content: "\f150"; }
+
+.fa-caret-square-down::before {
+ content: "\f150"; }
+
+.fa-file-circle-question::before {
+ content: "\e4ef"; }
+
+.fa-laptop-code::before {
+ content: "\f5fc"; }
+
+.fa-swatchbook::before {
+ content: "\f5c3"; }
+
+.fa-prescription-bottle::before {
+ content: "\f485"; }
+
+.fa-bars::before {
+ content: "\f0c9"; }
+
+.fa-navicon::before {
+ content: "\f0c9"; }
+
+.fa-people-group::before {
+ content: "\e533"; }
+
+.fa-hourglass-end::before {
+ content: "\f253"; }
+
+.fa-hourglass-3::before {
+ content: "\f253"; }
+
+.fa-heart-crack::before {
+ content: "\f7a9"; }
+
+.fa-heart-broken::before {
+ content: "\f7a9"; }
+
+.fa-square-up-right::before {
+ content: "\f360"; }
+
+.fa-external-link-square-alt::before {
+ content: "\f360"; }
+
+.fa-face-kiss-beam::before {
+ content: "\f597"; }
+
+.fa-kiss-beam::before {
+ content: "\f597"; }
+
+.fa-film::before {
+ content: "\f008"; }
+
+.fa-ruler-horizontal::before {
+ content: "\f547"; }
+
+.fa-people-robbery::before {
+ content: "\e536"; }
+
+.fa-lightbulb::before {
+ content: "\f0eb"; }
+
+.fa-caret-left::before {
+ content: "\f0d9"; }
+
+.fa-circle-exclamation::before {
+ content: "\f06a"; }
+
+.fa-exclamation-circle::before {
+ content: "\f06a"; }
+
+.fa-school-circle-xmark::before {
+ content: "\e56d"; }
+
+.fa-arrow-right-from-bracket::before {
+ content: "\f08b"; }
+
+.fa-sign-out::before {
+ content: "\f08b"; }
+
+.fa-circle-chevron-down::before {
+ content: "\f13a"; }
+
+.fa-chevron-circle-down::before {
+ content: "\f13a"; }
+
+.fa-unlock-keyhole::before {
+ content: "\f13e"; }
+
+.fa-unlock-alt::before {
+ content: "\f13e"; }
+
+.fa-cloud-showers-heavy::before {
+ content: "\f740"; }
+
+.fa-headphones-simple::before {
+ content: "\f58f"; }
+
+.fa-headphones-alt::before {
+ content: "\f58f"; }
+
+.fa-sitemap::before {
+ content: "\f0e8"; }
+
+.fa-circle-dollar-to-slot::before {
+ content: "\f4b9"; }
+
+.fa-donate::before {
+ content: "\f4b9"; }
+
+.fa-memory::before {
+ content: "\f538"; }
+
+.fa-road-spikes::before {
+ content: "\e568"; }
+
+.fa-fire-burner::before {
+ content: "\e4f1"; }
+
+.fa-flag::before {
+ content: "\f024"; }
+
+.fa-hanukiah::before {
+ content: "\f6e6"; }
+
+.fa-feather::before {
+ content: "\f52d"; }
+
+.fa-volume-low::before {
+ content: "\f027"; }
+
+.fa-volume-down::before {
+ content: "\f027"; }
+
+.fa-comment-slash::before {
+ content: "\f4b3"; }
+
+.fa-cloud-sun-rain::before {
+ content: "\f743"; }
+
+.fa-compress::before {
+ content: "\f066"; }
+
+.fa-wheat-awn::before {
+ content: "\e2cd"; }
+
+.fa-wheat-alt::before {
+ content: "\e2cd"; }
+
+.fa-ankh::before {
+ content: "\f644"; }
+
+.fa-hands-holding-child::before {
+ content: "\e4fa"; }
+
+.fa-asterisk::before {
+ content: "\2a"; }
+
+.fa-square-check::before {
+ content: "\f14a"; }
+
+.fa-check-square::before {
+ content: "\f14a"; }
+
+.fa-peseta-sign::before {
+ content: "\e221"; }
+
+.fa-heading::before {
+ content: "\f1dc"; }
+
+.fa-header::before {
+ content: "\f1dc"; }
+
+.fa-ghost::before {
+ content: "\f6e2"; }
+
+.fa-list::before {
+ content: "\f03a"; }
+
+.fa-list-squares::before {
+ content: "\f03a"; }
+
+.fa-square-phone-flip::before {
+ content: "\f87b"; }
+
+.fa-phone-square-alt::before {
+ content: "\f87b"; }
+
+.fa-cart-plus::before {
+ content: "\f217"; }
+
+.fa-gamepad::before {
+ content: "\f11b"; }
+
+.fa-circle-dot::before {
+ content: "\f192"; }
+
+.fa-dot-circle::before {
+ content: "\f192"; }
+
+.fa-face-dizzy::before {
+ content: "\f567"; }
+
+.fa-dizzy::before {
+ content: "\f567"; }
+
+.fa-egg::before {
+ content: "\f7fb"; }
+
+.fa-house-medical-circle-xmark::before {
+ content: "\e513"; }
+
+.fa-campground::before {
+ content: "\f6bb"; }
+
+.fa-folder-plus::before {
+ content: "\f65e"; }
+
+.fa-futbol::before {
+ content: "\f1e3"; }
+
+.fa-futbol-ball::before {
+ content: "\f1e3"; }
+
+.fa-soccer-ball::before {
+ content: "\f1e3"; }
+
+.fa-paintbrush::before {
+ content: "\f1fc"; }
+
+.fa-paint-brush::before {
+ content: "\f1fc"; }
+
+.fa-lock::before {
+ content: "\f023"; }
+
+.fa-gas-pump::before {
+ content: "\f52f"; }
+
+.fa-hot-tub-person::before {
+ content: "\f593"; }
+
+.fa-hot-tub::before {
+ content: "\f593"; }
+
+.fa-map-location::before {
+ content: "\f59f"; }
+
+.fa-map-marked::before {
+ content: "\f59f"; }
+
+.fa-house-flood-water::before {
+ content: "\e50e"; }
+
+.fa-tree::before {
+ content: "\f1bb"; }
+
+.fa-bridge-lock::before {
+ content: "\e4cc"; }
+
+.fa-sack-dollar::before {
+ content: "\f81d"; }
+
+.fa-pen-to-square::before {
+ content: "\f044"; }
+
+.fa-edit::before {
+ content: "\f044"; }
+
+.fa-car-side::before {
+ content: "\f5e4"; }
+
+.fa-share-nodes::before {
+ content: "\f1e0"; }
+
+.fa-share-alt::before {
+ content: "\f1e0"; }
+
+.fa-heart-circle-minus::before {
+ content: "\e4ff"; }
+
+.fa-hourglass-half::before {
+ content: "\f252"; }
+
+.fa-hourglass-2::before {
+ content: "\f252"; }
+
+.fa-microscope::before {
+ content: "\f610"; }
+
+.fa-sink::before {
+ content: "\e06d"; }
+
+.fa-bag-shopping::before {
+ content: "\f290"; }
+
+.fa-shopping-bag::before {
+ content: "\f290"; }
+
+.fa-arrow-down-z-a::before {
+ content: "\f881"; }
+
+.fa-sort-alpha-desc::before {
+ content: "\f881"; }
+
+.fa-sort-alpha-down-alt::before {
+ content: "\f881"; }
+
+.fa-mitten::before {
+ content: "\f7b5"; }
+
+.fa-person-rays::before {
+ content: "\e54d"; }
+
+.fa-users::before {
+ content: "\f0c0"; }
+
+.fa-eye-slash::before {
+ content: "\f070"; }
+
+.fa-flask-vial::before {
+ content: "\e4f3"; }
+
+.fa-hand::before {
+ content: "\f256"; }
+
+.fa-hand-paper::before {
+ content: "\f256"; }
+
+.fa-om::before {
+ content: "\f679"; }
+
+.fa-worm::before {
+ content: "\e599"; }
+
+.fa-house-circle-xmark::before {
+ content: "\e50b"; }
+
+.fa-plug::before {
+ content: "\f1e6"; }
+
+.fa-chevron-up::before {
+ content: "\f077"; }
+
+.fa-hand-spock::before {
+ content: "\f259"; }
+
+.fa-stopwatch::before {
+ content: "\f2f2"; }
+
+.fa-face-kiss::before {
+ content: "\f596"; }
+
+.fa-kiss::before {
+ content: "\f596"; }
+
+.fa-bridge-circle-xmark::before {
+ content: "\e4cb"; }
+
+.fa-face-grin-tongue::before {
+ content: "\f589"; }
+
+.fa-grin-tongue::before {
+ content: "\f589"; }
+
+.fa-chess-bishop::before {
+ content: "\f43a"; }
+
+.fa-face-grin-wink::before {
+ content: "\f58c"; }
+
+.fa-grin-wink::before {
+ content: "\f58c"; }
+
+.fa-ear-deaf::before {
+ content: "\f2a4"; }
+
+.fa-deaf::before {
+ content: "\f2a4"; }
+
+.fa-deafness::before {
+ content: "\f2a4"; }
+
+.fa-hard-of-hearing::before {
+ content: "\f2a4"; }
+
+.fa-road-circle-check::before {
+ content: "\e564"; }
+
+.fa-dice-five::before {
+ content: "\f523"; }
+
+.fa-square-rss::before {
+ content: "\f143"; }
+
+.fa-rss-square::before {
+ content: "\f143"; }
+
+.fa-land-mine-on::before {
+ content: "\e51b"; }
+
+.fa-i-cursor::before {
+ content: "\f246"; }
+
+.fa-stamp::before {
+ content: "\f5bf"; }
+
+.fa-stairs::before {
+ content: "\e289"; }
+
+.fa-i::before {
+ content: "\49"; }
+
+.fa-hryvnia-sign::before {
+ content: "\f6f2"; }
+
+.fa-hryvnia::before {
+ content: "\f6f2"; }
+
+.fa-pills::before {
+ content: "\f484"; }
+
+.fa-face-grin-wide::before {
+ content: "\f581"; }
+
+.fa-grin-alt::before {
+ content: "\f581"; }
+
+.fa-tooth::before {
+ content: "\f5c9"; }
+
+.fa-v::before {
+ content: "\56"; }
+
+.fa-bangladeshi-taka-sign::before {
+ content: "\e2e6"; }
+
+.fa-bicycle::before {
+ content: "\f206"; }
+
+.fa-staff-snake::before {
+ content: "\e579"; }
+
+.fa-rod-asclepius::before {
+ content: "\e579"; }
+
+.fa-rod-snake::before {
+ content: "\e579"; }
+
+.fa-staff-aesculapius::before {
+ content: "\e579"; }
+
+.fa-head-side-cough-slash::before {
+ content: "\e062"; }
+
+.fa-truck-medical::before {
+ content: "\f0f9"; }
+
+.fa-ambulance::before {
+ content: "\f0f9"; }
+
+.fa-wheat-awn-circle-exclamation::before {
+ content: "\e598"; }
+
+.fa-snowman::before {
+ content: "\f7d0"; }
+
+.fa-mortar-pestle::before {
+ content: "\f5a7"; }
+
+.fa-road-barrier::before {
+ content: "\e562"; }
+
+.fa-school::before {
+ content: "\f549"; }
+
+.fa-igloo::before {
+ content: "\f7ae"; }
+
+.fa-joint::before {
+ content: "\f595"; }
+
+.fa-angle-right::before {
+ content: "\f105"; }
+
+.fa-horse::before {
+ content: "\f6f0"; }
+
+.fa-q::before {
+ content: "\51"; }
+
+.fa-g::before {
+ content: "\47"; }
+
+.fa-notes-medical::before {
+ content: "\f481"; }
+
+.fa-temperature-half::before {
+ content: "\f2c9"; }
+
+.fa-temperature-2::before {
+ content: "\f2c9"; }
+
+.fa-thermometer-2::before {
+ content: "\f2c9"; }
+
+.fa-thermometer-half::before {
+ content: "\f2c9"; }
+
+.fa-dong-sign::before {
+ content: "\e169"; }
+
+.fa-capsules::before {
+ content: "\f46b"; }
+
+.fa-poo-storm::before {
+ content: "\f75a"; }
+
+.fa-poo-bolt::before {
+ content: "\f75a"; }
+
+.fa-face-frown-open::before {
+ content: "\f57a"; }
+
+.fa-frown-open::before {
+ content: "\f57a"; }
+
+.fa-hand-point-up::before {
+ content: "\f0a6"; }
+
+.fa-money-bill::before {
+ content: "\f0d6"; }
+
+.fa-bookmark::before {
+ content: "\f02e"; }
+
+.fa-align-justify::before {
+ content: "\f039"; }
+
+.fa-umbrella-beach::before {
+ content: "\f5ca"; }
+
+.fa-helmet-un::before {
+ content: "\e503"; }
+
+.fa-bullseye::before {
+ content: "\f140"; }
+
+.fa-bacon::before {
+ content: "\f7e5"; }
+
+.fa-hand-point-down::before {
+ content: "\f0a7"; }
+
+.fa-arrow-up-from-bracket::before {
+ content: "\e09a"; }
+
+.fa-folder::before {
+ content: "\f07b"; }
+
+.fa-folder-blank::before {
+ content: "\f07b"; }
+
+.fa-file-waveform::before {
+ content: "\f478"; }
+
+.fa-file-medical-alt::before {
+ content: "\f478"; }
+
+.fa-radiation::before {
+ content: "\f7b9"; }
+
+.fa-chart-simple::before {
+ content: "\e473"; }
+
+.fa-mars-stroke::before {
+ content: "\f229"; }
+
+.fa-vial::before {
+ content: "\f492"; }
+
+.fa-gauge::before {
+ content: "\f624"; }
+
+.fa-dashboard::before {
+ content: "\f624"; }
+
+.fa-gauge-med::before {
+ content: "\f624"; }
+
+.fa-tachometer-alt-average::before {
+ content: "\f624"; }
+
+.fa-wand-magic-sparkles::before {
+ content: "\e2ca"; }
+
+.fa-magic-wand-sparkles::before {
+ content: "\e2ca"; }
+
+.fa-e::before {
+ content: "\45"; }
+
+.fa-pen-clip::before {
+ content: "\f305"; }
+
+.fa-pen-alt::before {
+ content: "\f305"; }
+
+.fa-bridge-circle-exclamation::before {
+ content: "\e4ca"; }
+
+.fa-user::before {
+ content: "\f007"; }
+
+.fa-school-circle-check::before {
+ content: "\e56b"; }
+
+.fa-dumpster::before {
+ content: "\f793"; }
+
+.fa-van-shuttle::before {
+ content: "\f5b6"; }
+
+.fa-shuttle-van::before {
+ content: "\f5b6"; }
+
+.fa-building-user::before {
+ content: "\e4da"; }
+
+.fa-square-caret-left::before {
+ content: "\f191"; }
+
+.fa-caret-square-left::before {
+ content: "\f191"; }
+
+.fa-highlighter::before {
+ content: "\f591"; }
+
+.fa-key::before {
+ content: "\f084"; }
+
+.fa-bullhorn::before {
+ content: "\f0a1"; }
+
+.fa-globe::before {
+ content: "\f0ac"; }
+
+.fa-synagogue::before {
+ content: "\f69b"; }
+
+.fa-person-half-dress::before {
+ content: "\e548"; }
+
+.fa-road-bridge::before {
+ content: "\e563"; }
+
+.fa-location-arrow::before {
+ content: "\f124"; }
+
+.fa-c::before {
+ content: "\43"; }
+
+.fa-tablet-button::before {
+ content: "\f10a"; }
+
+.fa-building-lock::before {
+ content: "\e4d6"; }
+
+.fa-pizza-slice::before {
+ content: "\f818"; }
+
+.fa-money-bill-wave::before {
+ content: "\f53a"; }
+
+.fa-chart-area::before {
+ content: "\f1fe"; }
+
+.fa-area-chart::before {
+ content: "\f1fe"; }
+
+.fa-house-flag::before {
+ content: "\e50d"; }
+
+.fa-person-circle-minus::before {
+ content: "\e540"; }
+
+.fa-ban::before {
+ content: "\f05e"; }
+
+.fa-cancel::before {
+ content: "\f05e"; }
+
+.fa-camera-rotate::before {
+ content: "\e0d8"; }
+
+.fa-spray-can-sparkles::before {
+ content: "\f5d0"; }
+
+.fa-air-freshener::before {
+ content: "\f5d0"; }
+
+.fa-star::before {
+ content: "\f005"; }
+
+.fa-repeat::before {
+ content: "\f363"; }
+
+.fa-cross::before {
+ content: "\f654"; }
+
+.fa-box::before {
+ content: "\f466"; }
+
+.fa-venus-mars::before {
+ content: "\f228"; }
+
+.fa-arrow-pointer::before {
+ content: "\f245"; }
+
+.fa-mouse-pointer::before {
+ content: "\f245"; }
+
+.fa-maximize::before {
+ content: "\f31e"; }
+
+.fa-expand-arrows-alt::before {
+ content: "\f31e"; }
+
+.fa-charging-station::before {
+ content: "\f5e7"; }
+
+.fa-shapes::before {
+ content: "\f61f"; }
+
+.fa-triangle-circle-square::before {
+ content: "\f61f"; }
+
+.fa-shuffle::before {
+ content: "\f074"; }
+
+.fa-random::before {
+ content: "\f074"; }
+
+.fa-person-running::before {
+ content: "\f70c"; }
+
+.fa-running::before {
+ content: "\f70c"; }
+
+.fa-mobile-retro::before {
+ content: "\e527"; }
+
+.fa-grip-lines-vertical::before {
+ content: "\f7a5"; }
+
+.fa-spider::before {
+ content: "\f717"; }
+
+.fa-hands-bound::before {
+ content: "\e4f9"; }
+
+.fa-file-invoice-dollar::before {
+ content: "\f571"; }
+
+.fa-plane-circle-exclamation::before {
+ content: "\e556"; }
+
+.fa-x-ray::before {
+ content: "\f497"; }
+
+.fa-spell-check::before {
+ content: "\f891"; }
+
+.fa-slash::before {
+ content: "\f715"; }
+
+.fa-computer-mouse::before {
+ content: "\f8cc"; }
+
+.fa-mouse::before {
+ content: "\f8cc"; }
+
+.fa-arrow-right-to-bracket::before {
+ content: "\f090"; }
+
+.fa-sign-in::before {
+ content: "\f090"; }
+
+.fa-shop-slash::before {
+ content: "\e070"; }
+
+.fa-store-alt-slash::before {
+ content: "\e070"; }
+
+.fa-server::before {
+ content: "\f233"; }
+
+.fa-virus-covid-slash::before {
+ content: "\e4a9"; }
+
+.fa-shop-lock::before {
+ content: "\e4a5"; }
+
+.fa-hourglass-start::before {
+ content: "\f251"; }
+
+.fa-hourglass-1::before {
+ content: "\f251"; }
+
+.fa-blender-phone::before {
+ content: "\f6b6"; }
+
+.fa-building-wheat::before {
+ content: "\e4db"; }
+
+.fa-person-breastfeeding::before {
+ content: "\e53a"; }
+
+.fa-right-to-bracket::before {
+ content: "\f2f6"; }
+
+.fa-sign-in-alt::before {
+ content: "\f2f6"; }
+
+.fa-venus::before {
+ content: "\f221"; }
+
+.fa-passport::before {
+ content: "\f5ab"; }
+
+.fa-heart-pulse::before {
+ content: "\f21e"; }
+
+.fa-heartbeat::before {
+ content: "\f21e"; }
+
+.fa-people-carry-box::before {
+ content: "\f4ce"; }
+
+.fa-people-carry::before {
+ content: "\f4ce"; }
+
+.fa-temperature-high::before {
+ content: "\f769"; }
+
+.fa-microchip::before {
+ content: "\f2db"; }
+
+.fa-crown::before {
+ content: "\f521"; }
+
+.fa-weight-hanging::before {
+ content: "\f5cd"; }
+
+.fa-xmarks-lines::before {
+ content: "\e59a"; }
+
+.fa-file-prescription::before {
+ content: "\f572"; }
+
+.fa-weight-scale::before {
+ content: "\f496"; }
+
+.fa-weight::before {
+ content: "\f496"; }
+
+.fa-user-group::before {
+ content: "\f500"; }
+
+.fa-user-friends::before {
+ content: "\f500"; }
+
+.fa-arrow-up-a-z::before {
+ content: "\f15e"; }
+
+.fa-sort-alpha-up::before {
+ content: "\f15e"; }
+
+.fa-chess-knight::before {
+ content: "\f441"; }
+
+.fa-face-laugh-squint::before {
+ content: "\f59b"; }
+
+.fa-laugh-squint::before {
+ content: "\f59b"; }
+
+.fa-wheelchair::before {
+ content: "\f193"; }
+
+.fa-circle-arrow-up::before {
+ content: "\f0aa"; }
+
+.fa-arrow-circle-up::before {
+ content: "\f0aa"; }
+
+.fa-toggle-on::before {
+ content: "\f205"; }
+
+.fa-person-walking::before {
+ content: "\f554"; }
+
+.fa-walking::before {
+ content: "\f554"; }
+
+.fa-l::before {
+ content: "\4c"; }
+
+.fa-fire::before {
+ content: "\f06d"; }
+
+.fa-bed-pulse::before {
+ content: "\f487"; }
+
+.fa-procedures::before {
+ content: "\f487"; }
+
+.fa-shuttle-space::before {
+ content: "\f197"; }
+
+.fa-space-shuttle::before {
+ content: "\f197"; }
+
+.fa-face-laugh::before {
+ content: "\f599"; }
+
+.fa-laugh::before {
+ content: "\f599"; }
+
+.fa-folder-open::before {
+ content: "\f07c"; }
+
+.fa-heart-circle-plus::before {
+ content: "\e500"; }
+
+.fa-code-fork::before {
+ content: "\e13b"; }
+
+.fa-city::before {
+ content: "\f64f"; }
+
+.fa-microphone-lines::before {
+ content: "\f3c9"; }
+
+.fa-microphone-alt::before {
+ content: "\f3c9"; }
+
+.fa-pepper-hot::before {
+ content: "\f816"; }
+
+.fa-unlock::before {
+ content: "\f09c"; }
+
+.fa-colon-sign::before {
+ content: "\e140"; }
+
+.fa-headset::before {
+ content: "\f590"; }
+
+.fa-store-slash::before {
+ content: "\e071"; }
+
+.fa-road-circle-xmark::before {
+ content: "\e566"; }
+
+.fa-user-minus::before {
+ content: "\f503"; }
+
+.fa-mars-stroke-up::before {
+ content: "\f22a"; }
+
+.fa-mars-stroke-v::before {
+ content: "\f22a"; }
+
+.fa-champagne-glasses::before {
+ content: "\f79f"; }
+
+.fa-glass-cheers::before {
+ content: "\f79f"; }
+
+.fa-clipboard::before {
+ content: "\f328"; }
+
+.fa-house-circle-exclamation::before {
+ content: "\e50a"; }
+
+.fa-file-arrow-up::before {
+ content: "\f574"; }
+
+.fa-file-upload::before {
+ content: "\f574"; }
+
+.fa-wifi::before {
+ content: "\f1eb"; }
+
+.fa-wifi-3::before {
+ content: "\f1eb"; }
+
+.fa-wifi-strong::before {
+ content: "\f1eb"; }
+
+.fa-bath::before {
+ content: "\f2cd"; }
+
+.fa-bathtub::before {
+ content: "\f2cd"; }
+
+.fa-underline::before {
+ content: "\f0cd"; }
+
+.fa-user-pen::before {
+ content: "\f4ff"; }
+
+.fa-user-edit::before {
+ content: "\f4ff"; }
+
+.fa-signature::before {
+ content: "\f5b7"; }
+
+.fa-stroopwafel::before {
+ content: "\f551"; }
+
+.fa-bold::before {
+ content: "\f032"; }
+
+.fa-anchor-lock::before {
+ content: "\e4ad"; }
+
+.fa-building-ngo::before {
+ content: "\e4d7"; }
+
+.fa-manat-sign::before {
+ content: "\e1d5"; }
+
+.fa-not-equal::before {
+ content: "\f53e"; }
+
+.fa-border-top-left::before {
+ content: "\f853"; }
+
+.fa-border-style::before {
+ content: "\f853"; }
+
+.fa-map-location-dot::before {
+ content: "\f5a0"; }
+
+.fa-map-marked-alt::before {
+ content: "\f5a0"; }
+
+.fa-jedi::before {
+ content: "\f669"; }
+
+.fa-square-poll-vertical::before {
+ content: "\f681"; }
+
+.fa-poll::before {
+ content: "\f681"; }
+
+.fa-mug-hot::before {
+ content: "\f7b6"; }
+
+.fa-car-battery::before {
+ content: "\f5df"; }
+
+.fa-battery-car::before {
+ content: "\f5df"; }
+
+.fa-gift::before {
+ content: "\f06b"; }
+
+.fa-dice-two::before {
+ content: "\f528"; }
+
+.fa-chess-queen::before {
+ content: "\f445"; }
+
+.fa-glasses::before {
+ content: "\f530"; }
+
+.fa-chess-board::before {
+ content: "\f43c"; }
+
+.fa-building-circle-check::before {
+ content: "\e4d2"; }
+
+.fa-person-chalkboard::before {
+ content: "\e53d"; }
+
+.fa-mars-stroke-right::before {
+ content: "\f22b"; }
+
+.fa-mars-stroke-h::before {
+ content: "\f22b"; }
+
+.fa-hand-back-fist::before {
+ content: "\f255"; }
+
+.fa-hand-rock::before {
+ content: "\f255"; }
+
+.fa-square-caret-up::before {
+ content: "\f151"; }
+
+.fa-caret-square-up::before {
+ content: "\f151"; }
+
+.fa-cloud-showers-water::before {
+ content: "\e4e4"; }
+
+.fa-chart-bar::before {
+ content: "\f080"; }
+
+.fa-bar-chart::before {
+ content: "\f080"; }
+
+.fa-hands-bubbles::before {
+ content: "\e05e"; }
+
+.fa-hands-wash::before {
+ content: "\e05e"; }
+
+.fa-less-than-equal::before {
+ content: "\f537"; }
+
+.fa-train::before {
+ content: "\f238"; }
+
+.fa-eye-low-vision::before {
+ content: "\f2a8"; }
+
+.fa-low-vision::before {
+ content: "\f2a8"; }
+
+.fa-crow::before {
+ content: "\f520"; }
+
+.fa-sailboat::before {
+ content: "\e445"; }
+
+.fa-window-restore::before {
+ content: "\f2d2"; }
+
+.fa-square-plus::before {
+ content: "\f0fe"; }
+
+.fa-plus-square::before {
+ content: "\f0fe"; }
+
+.fa-torii-gate::before {
+ content: "\f6a1"; }
+
+.fa-frog::before {
+ content: "\f52e"; }
+
+.fa-bucket::before {
+ content: "\e4cf"; }
+
+.fa-image::before {
+ content: "\f03e"; }
+
+.fa-microphone::before {
+ content: "\f130"; }
+
+.fa-cow::before {
+ content: "\f6c8"; }
+
+.fa-caret-up::before {
+ content: "\f0d8"; }
+
+.fa-screwdriver::before {
+ content: "\f54a"; }
+
+.fa-folder-closed::before {
+ content: "\e185"; }
+
+.fa-house-tsunami::before {
+ content: "\e515"; }
+
+.fa-square-nfi::before {
+ content: "\e576"; }
+
+.fa-arrow-up-from-ground-water::before {
+ content: "\e4b5"; }
+
+.fa-martini-glass::before {
+ content: "\f57b"; }
+
+.fa-glass-martini-alt::before {
+ content: "\f57b"; }
+
+.fa-rotate-left::before {
+ content: "\f2ea"; }
+
+.fa-rotate-back::before {
+ content: "\f2ea"; }
+
+.fa-rotate-backward::before {
+ content: "\f2ea"; }
+
+.fa-undo-alt::before {
+ content: "\f2ea"; }
+
+.fa-table-columns::before {
+ content: "\f0db"; }
+
+.fa-columns::before {
+ content: "\f0db"; }
+
+.fa-lemon::before {
+ content: "\f094"; }
+
+.fa-head-side-mask::before {
+ content: "\e063"; }
+
+.fa-handshake::before {
+ content: "\f2b5"; }
+
+.fa-gem::before {
+ content: "\f3a5"; }
+
+.fa-dolly::before {
+ content: "\f472"; }
+
+.fa-dolly-box::before {
+ content: "\f472"; }
+
+.fa-smoking::before {
+ content: "\f48d"; }
+
+.fa-minimize::before {
+ content: "\f78c"; }
+
+.fa-compress-arrows-alt::before {
+ content: "\f78c"; }
+
+.fa-monument::before {
+ content: "\f5a6"; }
+
+.fa-snowplow::before {
+ content: "\f7d2"; }
+
+.fa-angles-right::before {
+ content: "\f101"; }
+
+.fa-angle-double-right::before {
+ content: "\f101"; }
+
+.fa-cannabis::before {
+ content: "\f55f"; }
+
+.fa-circle-play::before {
+ content: "\f144"; }
+
+.fa-play-circle::before {
+ content: "\f144"; }
+
+.fa-tablets::before {
+ content: "\f490"; }
+
+.fa-ethernet::before {
+ content: "\f796"; }
+
+.fa-euro-sign::before {
+ content: "\f153"; }
+
+.fa-eur::before {
+ content: "\f153"; }
+
+.fa-euro::before {
+ content: "\f153"; }
+
+.fa-chair::before {
+ content: "\f6c0"; }
+
+.fa-circle-check::before {
+ content: "\f058"; }
+
+.fa-check-circle::before {
+ content: "\f058"; }
+
+.fa-circle-stop::before {
+ content: "\f28d"; }
+
+.fa-stop-circle::before {
+ content: "\f28d"; }
+
+.fa-compass-drafting::before {
+ content: "\f568"; }
+
+.fa-drafting-compass::before {
+ content: "\f568"; }
+
+.fa-plate-wheat::before {
+ content: "\e55a"; }
+
+.fa-icicles::before {
+ content: "\f7ad"; }
+
+.fa-person-shelter::before {
+ content: "\e54f"; }
+
+.fa-neuter::before {
+ content: "\f22c"; }
+
+.fa-id-badge::before {
+ content: "\f2c1"; }
+
+.fa-marker::before {
+ content: "\f5a1"; }
+
+.fa-face-laugh-beam::before {
+ content: "\f59a"; }
+
+.fa-laugh-beam::before {
+ content: "\f59a"; }
+
+.fa-helicopter-symbol::before {
+ content: "\e502"; }
+
+.fa-universal-access::before {
+ content: "\f29a"; }
+
+.fa-circle-chevron-up::before {
+ content: "\f139"; }
+
+.fa-chevron-circle-up::before {
+ content: "\f139"; }
+
+.fa-lari-sign::before {
+ content: "\e1c8"; }
+
+.fa-volcano::before {
+ content: "\f770"; }
+
+.fa-person-walking-dashed-line-arrow-right::before {
+ content: "\e553"; }
+
+.fa-sterling-sign::before {
+ content: "\f154"; }
+
+.fa-gbp::before {
+ content: "\f154"; }
+
+.fa-pound-sign::before {
+ content: "\f154"; }
+
+.fa-viruses::before {
+ content: "\e076"; }
+
+.fa-square-person-confined::before {
+ content: "\e577"; }
+
+.fa-user-tie::before {
+ content: "\f508"; }
+
+.fa-arrow-down-long::before {
+ content: "\f175"; }
+
+.fa-long-arrow-down::before {
+ content: "\f175"; }
+
+.fa-tent-arrow-down-to-line::before {
+ content: "\e57e"; }
+
+.fa-certificate::before {
+ content: "\f0a3"; }
+
+.fa-reply-all::before {
+ content: "\f122"; }
+
+.fa-mail-reply-all::before {
+ content: "\f122"; }
+
+.fa-suitcase::before {
+ content: "\f0f2"; }
+
+.fa-person-skating::before {
+ content: "\f7c5"; }
+
+.fa-skating::before {
+ content: "\f7c5"; }
+
+.fa-filter-circle-dollar::before {
+ content: "\f662"; }
+
+.fa-funnel-dollar::before {
+ content: "\f662"; }
+
+.fa-camera-retro::before {
+ content: "\f083"; }
+
+.fa-circle-arrow-down::before {
+ content: "\f0ab"; }
+
+.fa-arrow-circle-down::before {
+ content: "\f0ab"; }
+
+.fa-file-import::before {
+ content: "\f56f"; }
+
+.fa-arrow-right-to-file::before {
+ content: "\f56f"; }
+
+.fa-square-arrow-up-right::before {
+ content: "\f14c"; }
+
+.fa-external-link-square::before {
+ content: "\f14c"; }
+
+.fa-box-open::before {
+ content: "\f49e"; }
+
+.fa-scroll::before {
+ content: "\f70e"; }
+
+.fa-spa::before {
+ content: "\f5bb"; }
+
+.fa-location-pin-lock::before {
+ content: "\e51f"; }
+
+.fa-pause::before {
+ content: "\f04c"; }
+
+.fa-hill-avalanche::before {
+ content: "\e507"; }
+
+.fa-temperature-empty::before {
+ content: "\f2cb"; }
+
+.fa-temperature-0::before {
+ content: "\f2cb"; }
+
+.fa-thermometer-0::before {
+ content: "\f2cb"; }
+
+.fa-thermometer-empty::before {
+ content: "\f2cb"; }
+
+.fa-bomb::before {
+ content: "\f1e2"; }
+
+.fa-registered::before {
+ content: "\f25d"; }
+
+.fa-address-card::before {
+ content: "\f2bb"; }
+
+.fa-contact-card::before {
+ content: "\f2bb"; }
+
+.fa-vcard::before {
+ content: "\f2bb"; }
+
+.fa-scale-unbalanced-flip::before {
+ content: "\f516"; }
+
+.fa-balance-scale-right::before {
+ content: "\f516"; }
+
+.fa-subscript::before {
+ content: "\f12c"; }
+
+.fa-diamond-turn-right::before {
+ content: "\f5eb"; }
+
+.fa-directions::before {
+ content: "\f5eb"; }
+
+.fa-burst::before {
+ content: "\e4dc"; }
+
+.fa-house-laptop::before {
+ content: "\e066"; }
+
+.fa-laptop-house::before {
+ content: "\e066"; }
+
+.fa-face-tired::before {
+ content: "\f5c8"; }
+
+.fa-tired::before {
+ content: "\f5c8"; }
+
+.fa-money-bills::before {
+ content: "\e1f3"; }
+
+.fa-smog::before {
+ content: "\f75f"; }
+
+.fa-crutch::before {
+ content: "\f7f7"; }
+
+.fa-cloud-arrow-up::before {
+ content: "\f0ee"; }
+
+.fa-cloud-upload::before {
+ content: "\f0ee"; }
+
+.fa-cloud-upload-alt::before {
+ content: "\f0ee"; }
+
+.fa-palette::before {
+ content: "\f53f"; }
+
+.fa-arrows-turn-right::before {
+ content: "\e4c0"; }
+
+.fa-vest::before {
+ content: "\e085"; }
+
+.fa-ferry::before {
+ content: "\e4ea"; }
+
+.fa-arrows-down-to-people::before {
+ content: "\e4b9"; }
+
+.fa-seedling::before {
+ content: "\f4d8"; }
+
+.fa-sprout::before {
+ content: "\f4d8"; }
+
+.fa-left-right::before {
+ content: "\f337"; }
+
+.fa-arrows-alt-h::before {
+ content: "\f337"; }
+
+.fa-boxes-packing::before {
+ content: "\e4c7"; }
+
+.fa-circle-arrow-left::before {
+ content: "\f0a8"; }
+
+.fa-arrow-circle-left::before {
+ content: "\f0a8"; }
+
+.fa-group-arrows-rotate::before {
+ content: "\e4f6"; }
+
+.fa-bowl-food::before {
+ content: "\e4c6"; }
+
+.fa-candy-cane::before {
+ content: "\f786"; }
+
+.fa-arrow-down-wide-short::before {
+ content: "\f160"; }
+
+.fa-sort-amount-asc::before {
+ content: "\f160"; }
+
+.fa-sort-amount-down::before {
+ content: "\f160"; }
+
+.fa-cloud-bolt::before {
+ content: "\f76c"; }
+
+.fa-thunderstorm::before {
+ content: "\f76c"; }
+
+.fa-text-slash::before {
+ content: "\f87d"; }
+
+.fa-remove-format::before {
+ content: "\f87d"; }
+
+.fa-face-smile-wink::before {
+ content: "\f4da"; }
+
+.fa-smile-wink::before {
+ content: "\f4da"; }
+
+.fa-file-word::before {
+ content: "\f1c2"; }
+
+.fa-file-powerpoint::before {
+ content: "\f1c4"; }
+
+.fa-arrows-left-right::before {
+ content: "\f07e"; }
+
+.fa-arrows-h::before {
+ content: "\f07e"; }
+
+.fa-house-lock::before {
+ content: "\e510"; }
+
+.fa-cloud-arrow-down::before {
+ content: "\f0ed"; }
+
+.fa-cloud-download::before {
+ content: "\f0ed"; }
+
+.fa-cloud-download-alt::before {
+ content: "\f0ed"; }
+
+.fa-children::before {
+ content: "\e4e1"; }
+
+.fa-chalkboard::before {
+ content: "\f51b"; }
+
+.fa-blackboard::before {
+ content: "\f51b"; }
+
+.fa-user-large-slash::before {
+ content: "\f4fa"; }
+
+.fa-user-alt-slash::before {
+ content: "\f4fa"; }
+
+.fa-envelope-open::before {
+ content: "\f2b6"; }
+
+.fa-handshake-simple-slash::before {
+ content: "\e05f"; }
+
+.fa-handshake-alt-slash::before {
+ content: "\e05f"; }
+
+.fa-mattress-pillow::before {
+ content: "\e525"; }
+
+.fa-guarani-sign::before {
+ content: "\e19a"; }
+
+.fa-arrows-rotate::before {
+ content: "\f021"; }
+
+.fa-refresh::before {
+ content: "\f021"; }
+
+.fa-sync::before {
+ content: "\f021"; }
+
+.fa-fire-extinguisher::before {
+ content: "\f134"; }
+
+.fa-cruzeiro-sign::before {
+ content: "\e152"; }
+
+.fa-greater-than-equal::before {
+ content: "\f532"; }
+
+.fa-shield-halved::before {
+ content: "\f3ed"; }
+
+.fa-shield-alt::before {
+ content: "\f3ed"; }
+
+.fa-book-atlas::before {
+ content: "\f558"; }
+
+.fa-atlas::before {
+ content: "\f558"; }
+
+.fa-virus::before {
+ content: "\e074"; }
+
+.fa-envelope-circle-check::before {
+ content: "\e4e8"; }
+
+.fa-layer-group::before {
+ content: "\f5fd"; }
+
+.fa-arrows-to-dot::before {
+ content: "\e4be"; }
+
+.fa-archway::before {
+ content: "\f557"; }
+
+.fa-heart-circle-check::before {
+ content: "\e4fd"; }
+
+.fa-house-chimney-crack::before {
+ content: "\f6f1"; }
+
+.fa-house-damage::before {
+ content: "\f6f1"; }
+
+.fa-file-zipper::before {
+ content: "\f1c6"; }
+
+.fa-file-archive::before {
+ content: "\f1c6"; }
+
+.fa-square::before {
+ content: "\f0c8"; }
+
+.fa-martini-glass-empty::before {
+ content: "\f000"; }
+
+.fa-glass-martini::before {
+ content: "\f000"; }
+
+.fa-couch::before {
+ content: "\f4b8"; }
+
+.fa-cedi-sign::before {
+ content: "\e0df"; }
+
+.fa-italic::before {
+ content: "\f033"; }
+
+.fa-table-cells-column-lock::before {
+ content: "\e678"; }
+
+.fa-church::before {
+ content: "\f51d"; }
+
+.fa-comments-dollar::before {
+ content: "\f653"; }
+
+.fa-democrat::before {
+ content: "\f747"; }
+
+.fa-z::before {
+ content: "\5a"; }
+
+.fa-person-skiing::before {
+ content: "\f7c9"; }
+
+.fa-skiing::before {
+ content: "\f7c9"; }
+
+.fa-road-lock::before {
+ content: "\e567"; }
+
+.fa-a::before {
+ content: "\41"; }
+
+.fa-temperature-arrow-down::before {
+ content: "\e03f"; }
+
+.fa-temperature-down::before {
+ content: "\e03f"; }
+
+.fa-feather-pointed::before {
+ content: "\f56b"; }
+
+.fa-feather-alt::before {
+ content: "\f56b"; }
+
+.fa-p::before {
+ content: "\50"; }
+
+.fa-snowflake::before {
+ content: "\f2dc"; }
+
+.fa-newspaper::before {
+ content: "\f1ea"; }
+
+.fa-rectangle-ad::before {
+ content: "\f641"; }
+
+.fa-ad::before {
+ content: "\f641"; }
+
+.fa-circle-arrow-right::before {
+ content: "\f0a9"; }
+
+.fa-arrow-circle-right::before {
+ content: "\f0a9"; }
+
+.fa-filter-circle-xmark::before {
+ content: "\e17b"; }
+
+.fa-locust::before {
+ content: "\e520"; }
+
+.fa-sort::before {
+ content: "\f0dc"; }
+
+.fa-unsorted::before {
+ content: "\f0dc"; }
+
+.fa-list-ol::before {
+ content: "\f0cb"; }
+
+.fa-list-1-2::before {
+ content: "\f0cb"; }
+
+.fa-list-numeric::before {
+ content: "\f0cb"; }
+
+.fa-person-dress-burst::before {
+ content: "\e544"; }
+
+.fa-money-check-dollar::before {
+ content: "\f53d"; }
+
+.fa-money-check-alt::before {
+ content: "\f53d"; }
+
+.fa-vector-square::before {
+ content: "\f5cb"; }
+
+.fa-bread-slice::before {
+ content: "\f7ec"; }
+
+.fa-language::before {
+ content: "\f1ab"; }
+
+.fa-face-kiss-wink-heart::before {
+ content: "\f598"; }
+
+.fa-kiss-wink-heart::before {
+ content: "\f598"; }
+
+.fa-filter::before {
+ content: "\f0b0"; }
+
+.fa-question::before {
+ content: "\3f"; }
+
+.fa-file-signature::before {
+ content: "\f573"; }
+
+.fa-up-down-left-right::before {
+ content: "\f0b2"; }
+
+.fa-arrows-alt::before {
+ content: "\f0b2"; }
+
+.fa-house-chimney-user::before {
+ content: "\e065"; }
+
+.fa-hand-holding-heart::before {
+ content: "\f4be"; }
+
+.fa-puzzle-piece::before {
+ content: "\f12e"; }
+
+.fa-money-check::before {
+ content: "\f53c"; }
+
+.fa-star-half-stroke::before {
+ content: "\f5c0"; }
+
+.fa-star-half-alt::before {
+ content: "\f5c0"; }
+
+.fa-code::before {
+ content: "\f121"; }
+
+.fa-whiskey-glass::before {
+ content: "\f7a0"; }
+
+.fa-glass-whiskey::before {
+ content: "\f7a0"; }
+
+.fa-building-circle-exclamation::before {
+ content: "\e4d3"; }
+
+.fa-magnifying-glass-chart::before {
+ content: "\e522"; }
+
+.fa-arrow-up-right-from-square::before {
+ content: "\f08e"; }
+
+.fa-external-link::before {
+ content: "\f08e"; }
+
+.fa-cubes-stacked::before {
+ content: "\e4e6"; }
+
+.fa-won-sign::before {
+ content: "\f159"; }
+
+.fa-krw::before {
+ content: "\f159"; }
+
+.fa-won::before {
+ content: "\f159"; }
+
+.fa-virus-covid::before {
+ content: "\e4a8"; }
+
+.fa-austral-sign::before {
+ content: "\e0a9"; }
+
+.fa-f::before {
+ content: "\46"; }
+
+.fa-leaf::before {
+ content: "\f06c"; }
+
+.fa-road::before {
+ content: "\f018"; }
+
+.fa-taxi::before {
+ content: "\f1ba"; }
+
+.fa-cab::before {
+ content: "\f1ba"; }
+
+.fa-person-circle-plus::before {
+ content: "\e541"; }
+
+.fa-chart-pie::before {
+ content: "\f200"; }
+
+.fa-pie-chart::before {
+ content: "\f200"; }
+
+.fa-bolt-lightning::before {
+ content: "\e0b7"; }
+
+.fa-sack-xmark::before {
+ content: "\e56a"; }
+
+.fa-file-excel::before {
+ content: "\f1c3"; }
+
+.fa-file-contract::before {
+ content: "\f56c"; }
+
+.fa-fish-fins::before {
+ content: "\e4f2"; }
+
+.fa-building-flag::before {
+ content: "\e4d5"; }
+
+.fa-face-grin-beam::before {
+ content: "\f582"; }
+
+.fa-grin-beam::before {
+ content: "\f582"; }
+
+.fa-object-ungroup::before {
+ content: "\f248"; }
+
+.fa-poop::before {
+ content: "\f619"; }
+
+.fa-location-pin::before {
+ content: "\f041"; }
+
+.fa-map-marker::before {
+ content: "\f041"; }
+
+.fa-kaaba::before {
+ content: "\f66b"; }
+
+.fa-toilet-paper::before {
+ content: "\f71e"; }
+
+.fa-helmet-safety::before {
+ content: "\f807"; }
+
+.fa-hard-hat::before {
+ content: "\f807"; }
+
+.fa-hat-hard::before {
+ content: "\f807"; }
+
+.fa-eject::before {
+ content: "\f052"; }
+
+.fa-circle-right::before {
+ content: "\f35a"; }
+
+.fa-arrow-alt-circle-right::before {
+ content: "\f35a"; }
+
+.fa-plane-circle-check::before {
+ content: "\e555"; }
+
+.fa-face-rolling-eyes::before {
+ content: "\f5a5"; }
+
+.fa-meh-rolling-eyes::before {
+ content: "\f5a5"; }
+
+.fa-object-group::before {
+ content: "\f247"; }
+
+.fa-chart-line::before {
+ content: "\f201"; }
+
+.fa-line-chart::before {
+ content: "\f201"; }
+
+.fa-mask-ventilator::before {
+ content: "\e524"; }
+
+.fa-arrow-right::before {
+ content: "\f061"; }
+
+.fa-signs-post::before {
+ content: "\f277"; }
+
+.fa-map-signs::before {
+ content: "\f277"; }
+
+.fa-cash-register::before {
+ content: "\f788"; }
+
+.fa-person-circle-question::before {
+ content: "\e542"; }
+
+.fa-h::before {
+ content: "\48"; }
+
+.fa-tarp::before {
+ content: "\e57b"; }
+
+.fa-screwdriver-wrench::before {
+ content: "\f7d9"; }
+
+.fa-tools::before {
+ content: "\f7d9"; }
+
+.fa-arrows-to-eye::before {
+ content: "\e4bf"; }
+
+.fa-plug-circle-bolt::before {
+ content: "\e55b"; }
+
+.fa-heart::before {
+ content: "\f004"; }
+
+.fa-mars-and-venus::before {
+ content: "\f224"; }
+
+.fa-house-user::before {
+ content: "\e1b0"; }
+
+.fa-home-user::before {
+ content: "\e1b0"; }
+
+.fa-dumpster-fire::before {
+ content: "\f794"; }
+
+.fa-house-crack::before {
+ content: "\e3b1"; }
+
+.fa-martini-glass-citrus::before {
+ content: "\f561"; }
+
+.fa-cocktail::before {
+ content: "\f561"; }
+
+.fa-face-surprise::before {
+ content: "\f5c2"; }
+
+.fa-surprise::before {
+ content: "\f5c2"; }
+
+.fa-bottle-water::before {
+ content: "\e4c5"; }
+
+.fa-circle-pause::before {
+ content: "\f28b"; }
+
+.fa-pause-circle::before {
+ content: "\f28b"; }
+
+.fa-toilet-paper-slash::before {
+ content: "\e072"; }
+
+.fa-apple-whole::before {
+ content: "\f5d1"; }
+
+.fa-apple-alt::before {
+ content: "\f5d1"; }
+
+.fa-kitchen-set::before {
+ content: "\e51a"; }
+
+.fa-r::before {
+ content: "\52"; }
+
+.fa-temperature-quarter::before {
+ content: "\f2ca"; }
+
+.fa-temperature-1::before {
+ content: "\f2ca"; }
+
+.fa-thermometer-1::before {
+ content: "\f2ca"; }
+
+.fa-thermometer-quarter::before {
+ content: "\f2ca"; }
+
+.fa-cube::before {
+ content: "\f1b2"; }
+
+.fa-bitcoin-sign::before {
+ content: "\e0b4"; }
+
+.fa-shield-dog::before {
+ content: "\e573"; }
+
+.fa-solar-panel::before {
+ content: "\f5ba"; }
+
+.fa-lock-open::before {
+ content: "\f3c1"; }
+
+.fa-elevator::before {
+ content: "\e16d"; }
+
+.fa-money-bill-transfer::before {
+ content: "\e528"; }
+
+.fa-money-bill-trend-up::before {
+ content: "\e529"; }
+
+.fa-house-flood-water-circle-arrow-right::before {
+ content: "\e50f"; }
+
+.fa-square-poll-horizontal::before {
+ content: "\f682"; }
+
+.fa-poll-h::before {
+ content: "\f682"; }
+
+.fa-circle::before {
+ content: "\f111"; }
+
+.fa-backward-fast::before {
+ content: "\f049"; }
+
+.fa-fast-backward::before {
+ content: "\f049"; }
+
+.fa-recycle::before {
+ content: "\f1b8"; }
+
+.fa-user-astronaut::before {
+ content: "\f4fb"; }
+
+.fa-plane-slash::before {
+ content: "\e069"; }
+
+.fa-trademark::before {
+ content: "\f25c"; }
+
+.fa-basketball::before {
+ content: "\f434"; }
+
+.fa-basketball-ball::before {
+ content: "\f434"; }
+
+.fa-satellite-dish::before {
+ content: "\f7c0"; }
+
+.fa-circle-up::before {
+ content: "\f35b"; }
+
+.fa-arrow-alt-circle-up::before {
+ content: "\f35b"; }
+
+.fa-mobile-screen-button::before {
+ content: "\f3cd"; }
+
+.fa-mobile-alt::before {
+ content: "\f3cd"; }
+
+.fa-volume-high::before {
+ content: "\f028"; }
+
+.fa-volume-up::before {
+ content: "\f028"; }
+
+.fa-users-rays::before {
+ content: "\e593"; }
+
+.fa-wallet::before {
+ content: "\f555"; }
+
+.fa-clipboard-check::before {
+ content: "\f46c"; }
+
+.fa-file-audio::before {
+ content: "\f1c7"; }
+
+.fa-burger::before {
+ content: "\f805"; }
+
+.fa-hamburger::before {
+ content: "\f805"; }
+
+.fa-wrench::before {
+ content: "\f0ad"; }
+
+.fa-bugs::before {
+ content: "\e4d0"; }
+
+.fa-rupee-sign::before {
+ content: "\f156"; }
+
+.fa-rupee::before {
+ content: "\f156"; }
+
+.fa-file-image::before {
+ content: "\f1c5"; }
+
+.fa-circle-question::before {
+ content: "\f059"; }
+
+.fa-question-circle::before {
+ content: "\f059"; }
+
+.fa-plane-departure::before {
+ content: "\f5b0"; }
+
+.fa-handshake-slash::before {
+ content: "\e060"; }
+
+.fa-book-bookmark::before {
+ content: "\e0bb"; }
+
+.fa-code-branch::before {
+ content: "\f126"; }
+
+.fa-hat-cowboy::before {
+ content: "\f8c0"; }
+
+.fa-bridge::before {
+ content: "\e4c8"; }
+
+.fa-phone-flip::before {
+ content: "\f879"; }
+
+.fa-phone-alt::before {
+ content: "\f879"; }
+
+.fa-truck-front::before {
+ content: "\e2b7"; }
+
+.fa-cat::before {
+ content: "\f6be"; }
+
+.fa-anchor-circle-exclamation::before {
+ content: "\e4ab"; }
+
+.fa-truck-field::before {
+ content: "\e58d"; }
+
+.fa-route::before {
+ content: "\f4d7"; }
+
+.fa-clipboard-question::before {
+ content: "\e4e3"; }
+
+.fa-panorama::before {
+ content: "\e209"; }
+
+.fa-comment-medical::before {
+ content: "\f7f5"; }
+
+.fa-teeth-open::before {
+ content: "\f62f"; }
+
+.fa-file-circle-minus::before {
+ content: "\e4ed"; }
+
+.fa-tags::before {
+ content: "\f02c"; }
+
+.fa-wine-glass::before {
+ content: "\f4e3"; }
+
+.fa-forward-fast::before {
+ content: "\f050"; }
+
+.fa-fast-forward::before {
+ content: "\f050"; }
+
+.fa-face-meh-blank::before {
+ content: "\f5a4"; }
+
+.fa-meh-blank::before {
+ content: "\f5a4"; }
+
+.fa-square-parking::before {
+ content: "\f540"; }
+
+.fa-parking::before {
+ content: "\f540"; }
+
+.fa-house-signal::before {
+ content: "\e012"; }
+
+.fa-bars-progress::before {
+ content: "\f828"; }
+
+.fa-tasks-alt::before {
+ content: "\f828"; }
+
+.fa-faucet-drip::before {
+ content: "\e006"; }
+
+.fa-cart-flatbed::before {
+ content: "\f474"; }
+
+.fa-dolly-flatbed::before {
+ content: "\f474"; }
+
+.fa-ban-smoking::before {
+ content: "\f54d"; }
+
+.fa-smoking-ban::before {
+ content: "\f54d"; }
+
+.fa-terminal::before {
+ content: "\f120"; }
+
+.fa-mobile-button::before {
+ content: "\f10b"; }
+
+.fa-house-medical-flag::before {
+ content: "\e514"; }
+
+.fa-basket-shopping::before {
+ content: "\f291"; }
+
+.fa-shopping-basket::before {
+ content: "\f291"; }
+
+.fa-tape::before {
+ content: "\f4db"; }
+
+.fa-bus-simple::before {
+ content: "\f55e"; }
+
+.fa-bus-alt::before {
+ content: "\f55e"; }
+
+.fa-eye::before {
+ content: "\f06e"; }
+
+.fa-face-sad-cry::before {
+ content: "\f5b3"; }
+
+.fa-sad-cry::before {
+ content: "\f5b3"; }
+
+.fa-audio-description::before {
+ content: "\f29e"; }
+
+.fa-person-military-to-person::before {
+ content: "\e54c"; }
+
+.fa-file-shield::before {
+ content: "\e4f0"; }
+
+.fa-user-slash::before {
+ content: "\f506"; }
+
+.fa-pen::before {
+ content: "\f304"; }
+
+.fa-tower-observation::before {
+ content: "\e586"; }
+
+.fa-file-code::before {
... 32531 lines suppressed ...