From f62cd5fbd70032fce0b279ed0a1308bf0ef93460 Mon Sep 17 00:00:00 2001 From: gilesknap Date: Fri, 4 Oct 2024 14:35:49 +0000 Subject: [PATCH] deploy: 1d35abf3a0629a43ed04930efbeb4a5e49823bf8 --- 3.1.0/.buildinfo | 4 + .../developer/explanations/decisions.doctree | Bin 0 -> 6785 bytes ...0001-record-architecture-decisions.doctree | Bin 0 -> 7237 bytes .../0002-switched-to-pip-skeleton.doctree | Bin 0 -> 8321 bytes .../developer/explanations/entities.doctree | Bin 0 -> 133275 bytes .../developer/how-to/build-docs.doctree | Bin 0 -> 8700 bytes .../developer/how-to/contribute.doctree | Bin 0 -> 9362 bytes 3.1.0/.doctrees/developer/how-to/lint.doctree | Bin 0 -> 9142 bytes .../developer/how-to/make-release.doctree | Bin 0 -> 8021 bytes .../developer/how-to/pin-requirements.doctree | Bin 0 -> 14440 bytes .../developer/how-to/run-tests.doctree | Bin 0 -> 6247 bytes .../developer/how-to/static-analysis.doctree | Bin 0 -> 5135 bytes .../developer/how-to/test-container.doctree | Bin 0 -> 7334 bytes .../developer/how-to/update-tools.doctree | Bin 0 -> 7012 bytes 3.1.0/.doctrees/developer/index.doctree | Bin 0 -> 15690 bytes .../developer/reference/standards.doctree | Bin 0 -> 10748 bytes .../developer/tutorials/dev-install.doctree | Bin 0 -> 13201 bytes 3.1.0/.doctrees/environment.pickle | Bin 0 -> 2200623 bytes 3.1.0/.doctrees/genindex.doctree | Bin 0 -> 4661 bytes 3.1.0/.doctrees/index.doctree | Bin 0 -> 32225 bytes .../user/explanations/docs-structure.doctree | Bin 0 -> 8166 bytes 3.1.0/.doctrees/user/how-to/edit-yaml.doctree | Bin 0 -> 5227 bytes .../user/how-to/run-container.doctree | Bin 0 -> 6467 bytes 3.1.0/.doctrees/user/index.doctree | Bin 0 -> 17405 bytes 3.1.0/.doctrees/user/reference/api.doctree | Bin 0 -> 99378 bytes 3.1.0/.doctrees/user/reference/naming.doctree | Bin 0 -> 12682 bytes .../user/tutorials/installation.doctree | Bin 0 -> 8769 bytes 3.1.0/_modules/ibek/globals.html | 671 +++++ 3.1.0/_modules/ibek/ioc.html | 679 ++++++ 3.1.0/_modules/ibek/render.html | 673 +++++ 3.1.0/_modules/ibek/support.html | 544 +++++ 3.1.0/_modules/ibek/utils.html | 666 +++++ 3.1.0/_modules/index.html | 510 ++++ .../developer/explanations/decisions.rst.txt | 17 + ...0001-record-architecture-decisions.rst.txt | 26 + .../0002-switched-to-pip-skeleton.rst.txt | 35 + .../developer/explanations/entities.rst.txt | 267 ++ .../developer/how-to/build-docs.rst.txt | 38 + .../developer/how-to/contribute.rst.txt | 1 + 3.1.0/_sources/developer/how-to/lint.rst.txt | 39 + .../developer/how-to/make-release.rst.txt | 16 + .../developer/how-to/pin-requirements.rst.txt | 74 + .../developer/how-to/run-tests.rst.txt | 12 + .../developer/how-to/static-analysis.rst.txt | 8 + .../developer/how-to/test-container.rst.txt | 25 + .../developer/how-to/update-tools.rst.txt | 16 + 3.1.0/_sources/developer/index.rst.txt | 65 + .../developer/reference/standards.rst.txt | 63 + .../developer/tutorials/dev-install.rst.txt | 68 + 3.1.0/_sources/genindex.rst.txt | 5 + 3.1.0/_sources/index.rst.txt | 29 + .../user/explanations/docs-structure.rst.txt | 18 + 3.1.0/_sources/user/how-to/edit-yaml.rst.txt | 7 + .../user/how-to/run-container.rst.txt | 15 + 3.1.0/_sources/user/index.rst.txt | 59 + 3.1.0/_sources/user/reference/api.rst.txt | 50 + 3.1.0/_sources/user/reference/naming.rst.txt | 90 + .../user/tutorials/installation.rst.txt | 44 + 3.1.0/_sphinx_design_static/design-tabs.js | 101 + .../sphinx-design.min.css | 1 + 3.1.0/_static/basic.css | 925 +++++++ 3.1.0/_static/check-solid.svg | 4 + 3.1.0/_static/clipboard.min.js | 7 + 3.1.0/_static/copy-button.svg | 5 + 3.1.0/_static/copybutton.css | 94 + 3.1.0/_static/copybutton.js | 248 ++ 3.1.0/_static/copybutton_funcs.js | 73 + 3.1.0/_static/design-tabs.js | 101 + 3.1.0/_static/doctools.js | 156 ++ 3.1.0/_static/documentation_options.js | 13 + 3.1.0/_static/file.png | Bin 0 -> 286 bytes 3.1.0/_static/graphviz.css | 19 + 3.1.0/_static/ibek-favicon.ico | Bin 0 -> 14318 bytes 3.1.0/_static/ibek-logo.svg | 177 ++ 3.1.0/_static/language_data.js | 199 ++ 3.1.0/_static/minus.png | Bin 0 -> 90 bytes 3.1.0/_static/plus.png | Bin 0 -> 90 bytes 3.1.0/_static/pygments.css | 152 ++ 3.1.0/_static/scripts/bootstrap.js | 3 + .../_static/scripts/bootstrap.js.LICENSE.txt | 5 + 3.1.0/_static/scripts/bootstrap.js.map | 1 + 3.1.0/_static/scripts/pydata-sphinx-theme.js | 2 + .../scripts/pydata-sphinx-theme.js.map | 1 + 3.1.0/_static/searchtools.js | 620 +++++ 3.1.0/_static/sphinx-design.min.css | 1 + 3.1.0/_static/sphinx_highlight.js | 154 ++ 3.1.0/_static/styles/bootstrap.css | 6 + 3.1.0/_static/styles/bootstrap.css.map | 1 + 3.1.0/_static/styles/pydata-sphinx-theme.css | 2 + .../styles/pydata-sphinx-theme.css.map | 1 + 3.1.0/_static/styles/theme.css | 2 + .../vendor/fontawesome/6.5.2/LICENSE.txt | 165 ++ .../vendor/fontawesome/6.5.2/css/all.min.css | 5 + .../vendor/fontawesome/6.5.2/js/all.min.js | 2 + .../6.5.2/js/all.min.js.LICENSE.txt | 5 + .../6.5.2/webfonts/fa-brands-400.ttf | Bin 0 -> 209128 bytes .../6.5.2/webfonts/fa-brands-400.woff2 | Bin 0 -> 117852 bytes .../6.5.2/webfonts/fa-regular-400.ttf | Bin 0 -> 67860 bytes .../6.5.2/webfonts/fa-regular-400.woff2 | Bin 0 -> 25392 bytes .../6.5.2/webfonts/fa-solid-900.ttf | Bin 0 -> 420332 bytes .../6.5.2/webfonts/fa-solid-900.woff2 | Bin 0 -> 156400 bytes .../6.5.2/webfonts/fa-v4compatibility.ttf | Bin 0 -> 10832 bytes .../6.5.2/webfonts/fa-v4compatibility.woff2 | Bin 0 -> 4792 bytes 3.1.0/_static/webpack-macros.html | 31 + 3.1.0/developer/explanations/decisions.html | 610 +++++ .../0001-record-architecture-decisions.html | 637 +++++ .../0002-switched-to-pip-skeleton.html | 647 +++++ 3.1.0/developer/explanations/entities.html | 2171 +++++++++++++++++ 3.1.0/developer/how-to/build-docs.html | 646 +++++ 3.1.0/developer/how-to/contribute.html | 638 +++++ 3.1.0/developer/how-to/lint.html | 648 +++++ 3.1.0/developer/how-to/make-release.html | 612 +++++ 3.1.0/developer/how-to/pin-requirements.html | 673 +++++ 3.1.0/developer/how-to/run-tests.html | 607 +++++ 3.1.0/developer/how-to/static-analysis.html | 607 +++++ 3.1.0/developer/how-to/test-container.html | 620 +++++ 3.1.0/developer/how-to/update-tools.html | 611 +++++ 3.1.0/developer/index.html | 681 ++++++ 3.1.0/developer/reference/standards.html | 657 +++++ 3.1.0/developer/tutorials/dev-install.html | 677 +++++ 3.1.0/genindex.html | 698 ++++++ 3.1.0/index.html | 636 +++++ 3.1.0/objects.inv | Bin 0 -> 1191 bytes 3.1.0/py-modindex.html | 524 ++++ 3.1.0/search.html | 508 ++++ 3.1.0/searchindex.js | 1 + 3.1.0/user/explanations/docs-structure.html | 603 +++++ 3.1.0/user/how-to/edit-yaml.html | 594 +++++ 3.1.0/user/how-to/run-container.html | 613 +++++ 3.1.0/user/index.html | 665 +++++ 3.1.0/user/reference/api.html | 888 +++++++ 3.1.0/user/reference/naming.html | 678 +++++ 3.1.0/user/tutorials/installation.html | 647 +++++ switcher.json | 4 + 134 files changed, 26917 insertions(+) create mode 100644 3.1.0/.buildinfo create mode 100644 3.1.0/.doctrees/developer/explanations/decisions.doctree create mode 100644 3.1.0/.doctrees/developer/explanations/decisions/0001-record-architecture-decisions.doctree create mode 100644 3.1.0/.doctrees/developer/explanations/decisions/0002-switched-to-pip-skeleton.doctree create mode 100644 3.1.0/.doctrees/developer/explanations/entities.doctree create mode 100644 3.1.0/.doctrees/developer/how-to/build-docs.doctree create mode 100644 3.1.0/.doctrees/developer/how-to/contribute.doctree create mode 100644 3.1.0/.doctrees/developer/how-to/lint.doctree create mode 100644 3.1.0/.doctrees/developer/how-to/make-release.doctree create mode 100644 3.1.0/.doctrees/developer/how-to/pin-requirements.doctree create mode 100644 3.1.0/.doctrees/developer/how-to/run-tests.doctree create mode 100644 3.1.0/.doctrees/developer/how-to/static-analysis.doctree create mode 100644 3.1.0/.doctrees/developer/how-to/test-container.doctree create mode 100644 3.1.0/.doctrees/developer/how-to/update-tools.doctree create mode 100644 3.1.0/.doctrees/developer/index.doctree create mode 100644 3.1.0/.doctrees/developer/reference/standards.doctree create mode 100644 3.1.0/.doctrees/developer/tutorials/dev-install.doctree create mode 100644 3.1.0/.doctrees/environment.pickle create mode 100644 3.1.0/.doctrees/genindex.doctree create mode 100644 3.1.0/.doctrees/index.doctree create mode 100644 3.1.0/.doctrees/user/explanations/docs-structure.doctree create mode 100644 3.1.0/.doctrees/user/how-to/edit-yaml.doctree create mode 100644 3.1.0/.doctrees/user/how-to/run-container.doctree create mode 100644 3.1.0/.doctrees/user/index.doctree create mode 100644 3.1.0/.doctrees/user/reference/api.doctree create mode 100644 3.1.0/.doctrees/user/reference/naming.doctree create mode 100644 3.1.0/.doctrees/user/tutorials/installation.doctree create mode 100644 3.1.0/_modules/ibek/globals.html create mode 100644 3.1.0/_modules/ibek/ioc.html create mode 100644 3.1.0/_modules/ibek/render.html create mode 100644 3.1.0/_modules/ibek/support.html create mode 100644 3.1.0/_modules/ibek/utils.html create mode 100644 3.1.0/_modules/index.html create mode 100644 3.1.0/_sources/developer/explanations/decisions.rst.txt create mode 100644 3.1.0/_sources/developer/explanations/decisions/0001-record-architecture-decisions.rst.txt create mode 100644 3.1.0/_sources/developer/explanations/decisions/0002-switched-to-pip-skeleton.rst.txt create mode 100644 3.1.0/_sources/developer/explanations/entities.rst.txt create mode 100644 3.1.0/_sources/developer/how-to/build-docs.rst.txt create mode 100644 3.1.0/_sources/developer/how-to/contribute.rst.txt create mode 100644 3.1.0/_sources/developer/how-to/lint.rst.txt create mode 100644 3.1.0/_sources/developer/how-to/make-release.rst.txt create mode 100644 3.1.0/_sources/developer/how-to/pin-requirements.rst.txt create mode 100644 3.1.0/_sources/developer/how-to/run-tests.rst.txt create mode 100644 3.1.0/_sources/developer/how-to/static-analysis.rst.txt create mode 100644 3.1.0/_sources/developer/how-to/test-container.rst.txt create mode 100644 3.1.0/_sources/developer/how-to/update-tools.rst.txt create mode 100644 3.1.0/_sources/developer/index.rst.txt create mode 100644 3.1.0/_sources/developer/reference/standards.rst.txt create mode 100644 3.1.0/_sources/developer/tutorials/dev-install.rst.txt create mode 100644 3.1.0/_sources/genindex.rst.txt create mode 100644 3.1.0/_sources/index.rst.txt create mode 100644 3.1.0/_sources/user/explanations/docs-structure.rst.txt create mode 100644 3.1.0/_sources/user/how-to/edit-yaml.rst.txt create mode 100644 3.1.0/_sources/user/how-to/run-container.rst.txt create mode 100644 3.1.0/_sources/user/index.rst.txt create mode 100644 3.1.0/_sources/user/reference/api.rst.txt create mode 100644 3.1.0/_sources/user/reference/naming.rst.txt create mode 100644 3.1.0/_sources/user/tutorials/installation.rst.txt create mode 100644 3.1.0/_sphinx_design_static/design-tabs.js create mode 100644 3.1.0/_sphinx_design_static/sphinx-design.min.css create mode 100644 3.1.0/_static/basic.css create mode 100644 3.1.0/_static/check-solid.svg create mode 100644 3.1.0/_static/clipboard.min.js create mode 100644 3.1.0/_static/copy-button.svg create mode 100644 3.1.0/_static/copybutton.css create mode 100644 3.1.0/_static/copybutton.js create mode 100644 3.1.0/_static/copybutton_funcs.js create mode 100644 3.1.0/_static/design-tabs.js create mode 100644 3.1.0/_static/doctools.js create mode 100644 3.1.0/_static/documentation_options.js create mode 100644 3.1.0/_static/file.png create mode 100644 3.1.0/_static/graphviz.css create mode 100644 3.1.0/_static/ibek-favicon.ico create mode 100644 3.1.0/_static/ibek-logo.svg create mode 100644 3.1.0/_static/language_data.js create mode 100644 3.1.0/_static/minus.png create mode 100644 3.1.0/_static/plus.png create mode 100644 3.1.0/_static/pygments.css create mode 100644 3.1.0/_static/scripts/bootstrap.js create mode 100644 3.1.0/_static/scripts/bootstrap.js.LICENSE.txt create mode 100644 3.1.0/_static/scripts/bootstrap.js.map create mode 100644 3.1.0/_static/scripts/pydata-sphinx-theme.js create mode 100644 3.1.0/_static/scripts/pydata-sphinx-theme.js.map create mode 100644 3.1.0/_static/searchtools.js create mode 100644 3.1.0/_static/sphinx-design.min.css create mode 100644 3.1.0/_static/sphinx_highlight.js create mode 100644 3.1.0/_static/styles/bootstrap.css create mode 100644 3.1.0/_static/styles/bootstrap.css.map create mode 100644 3.1.0/_static/styles/pydata-sphinx-theme.css create mode 100644 3.1.0/_static/styles/pydata-sphinx-theme.css.map create mode 100644 3.1.0/_static/styles/theme.css create mode 100644 3.1.0/_static/vendor/fontawesome/6.5.2/LICENSE.txt create mode 100644 3.1.0/_static/vendor/fontawesome/6.5.2/css/all.min.css create mode 100644 3.1.0/_static/vendor/fontawesome/6.5.2/js/all.min.js create mode 100644 3.1.0/_static/vendor/fontawesome/6.5.2/js/all.min.js.LICENSE.txt create mode 100644 3.1.0/_static/vendor/fontawesome/6.5.2/webfonts/fa-brands-400.ttf create mode 100644 3.1.0/_static/vendor/fontawesome/6.5.2/webfonts/fa-brands-400.woff2 create mode 100644 3.1.0/_static/vendor/fontawesome/6.5.2/webfonts/fa-regular-400.ttf create mode 100644 3.1.0/_static/vendor/fontawesome/6.5.2/webfonts/fa-regular-400.woff2 create mode 100644 3.1.0/_static/vendor/fontawesome/6.5.2/webfonts/fa-solid-900.ttf create mode 100644 3.1.0/_static/vendor/fontawesome/6.5.2/webfonts/fa-solid-900.woff2 create mode 100644 3.1.0/_static/vendor/fontawesome/6.5.2/webfonts/fa-v4compatibility.ttf create mode 100644 3.1.0/_static/vendor/fontawesome/6.5.2/webfonts/fa-v4compatibility.woff2 create mode 100644 3.1.0/_static/webpack-macros.html create mode 100644 3.1.0/developer/explanations/decisions.html create mode 100644 3.1.0/developer/explanations/decisions/0001-record-architecture-decisions.html create mode 100644 3.1.0/developer/explanations/decisions/0002-switched-to-pip-skeleton.html create mode 100644 3.1.0/developer/explanations/entities.html create mode 100644 3.1.0/developer/how-to/build-docs.html create mode 100644 3.1.0/developer/how-to/contribute.html create mode 100644 3.1.0/developer/how-to/lint.html create mode 100644 3.1.0/developer/how-to/make-release.html create mode 100644 3.1.0/developer/how-to/pin-requirements.html create mode 100644 3.1.0/developer/how-to/run-tests.html create mode 100644 3.1.0/developer/how-to/static-analysis.html create mode 100644 3.1.0/developer/how-to/test-container.html create mode 100644 3.1.0/developer/how-to/update-tools.html create mode 100644 3.1.0/developer/index.html create mode 100644 3.1.0/developer/reference/standards.html create mode 100644 3.1.0/developer/tutorials/dev-install.html create mode 100644 3.1.0/genindex.html create mode 100644 3.1.0/index.html create mode 100644 3.1.0/objects.inv create mode 100644 3.1.0/py-modindex.html create mode 100644 3.1.0/search.html create mode 100644 3.1.0/searchindex.js create mode 100644 3.1.0/user/explanations/docs-structure.html create mode 100644 3.1.0/user/how-to/edit-yaml.html create mode 100644 3.1.0/user/how-to/run-container.html create mode 100644 3.1.0/user/index.html create mode 100644 3.1.0/user/reference/api.html create mode 100644 3.1.0/user/reference/naming.html create mode 100644 3.1.0/user/tutorials/installation.html diff --git a/3.1.0/.buildinfo b/3.1.0/.buildinfo new file mode 100644 index 000000000..58c651288 --- /dev/null +++ b/3.1.0/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: 6cd3b2d2c0c67804c34e252a6655b8c8 +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/3.1.0/.doctrees/developer/explanations/decisions.doctree b/3.1.0/.doctrees/developer/explanations/decisions.doctree new file mode 100644 index 0000000000000000000000000000000000000000..62797c120db5168ea4d633404e51b1f68b2e1940 GIT binary patch literal 6785 zcmcgx-D@1z6_+fnq}7)#$C91cPNr!R%V~C3HZ2$v45?k?U|TV+X(_3h+?~0*cchuQ z)0sPxHl@%&5@fh<9z*_u(w9P^uX!ruA%Q|64}B`+Ay8V#L!Sb9DE*!J-c=;qL9NkB zd(S=h-1Gf${oBT)t>?zlfBI+?2*=-PGu!s1&7(xm*wTtU?yKZsa{j&KH_57QhHN{M zacJ>Gj{(CHj%$b9Pwr!Lk?@t{M(v!yv?aZv^P-`z-V;t_{4}LuT*XDkbs2gFU{T!N z;FdC!G?d_m;-MEAvX?Gy%Xb~uWyYPj>pE5N9x#PK)qkxg( zW`dAMJlx_*tfv+0(}_gPiWM=Tn`WtWtfmTG|D+?N$2(!{`#kJy%W$*fbb0;@C!&tc zx40_-apmIUaY#TxL=-$t}m?e#Bohw%W$U_FCI` zvu7~FlEI+V|D9XLHj4~jD#Lc7TqU-#?I-~QIZSpxca6($fTp?C2t41OA) zv-rG#&-d{8zIZ7XFK3DquZRh8POOUaH;)Vncd6&Nkn9&SHZ0~Fva6VbKR!2@GK5mW zQBJn*E8LMwxyBnQMAOEB&l>w`WE?b+9JTf

M5W8Om~ZhmGE}GQ%6{kK+Jy@p`uS0(h(O2h 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 P4-nPRFW{fE(Dwfqwkcsy literal 0 HcmV?d00001 diff --git a/3.1.0/.doctrees/developer/explanations/decisions/0002-switched-to-pip-skeleton.doctree b/3.1.0/.doctrees/developer/explanations/decisions/0002-switched-to-pip-skeleton.doctree new file mode 100644 index 0000000000000000000000000000000000000000..2fbe0fa61384b008d99d9539371f739addc23c1e GIT binary patch literal 8321 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 YP8qIdbBjEUsWQ3cfd@4}^J=@dW z>8{@05enj>NV}*&k-bLtm!AAWXyM*Szx=gpM6R)SjASb>S{K(654C41(?2YuV#h^%=m!9WuW~@(Z3b`P>0Zo@>~B&QaHXBJL)qf#|WEK@1F1hlLoc;d8Q8Bhi|? z2o)%Evnai6Q}XyV=zw2`*1wFu=kRwEf48B7StZ+=fSkvUMHa#)xDaW6zuVp3-tK7f zB)m?N4Z3B)@9?h@Ub&dDJc+hgP_CT-M)~2>WcDk|ASkql+n}|1T|CI0+A@6vpiXUoH;)LxQVO?i30ApK$=H_e;zkA82zHjh zSwu3M$o`@w&8CnYSH|?(6BIz>WfS}y&Bzulbvg&}I_5&}tlb zS&(mNiPT2Gf2YFlj69vPIDo3$9r&C@s#@@lv6|}rqP(=v4wjVvu)maV$yv3LJmtmX zlG#zf2>nAu?tOhug$5u%XgDCYmMUfi$;b=ilF!Qp@FvD7!uLmVnWEWF8ijr+$~`r; z?PYPftG*FlHejOMpG!jdLFHa6(8v1+p|v9fEtZEZ{!K-B+0t~aGs#~!2dQ>mrutU4&VT#TYgzl9m-gM>Laj$#%pAu@SUG)5c{-0_@k)^mDUvW*~O9Td)CJ6c+Q zXltFMm#t7ihb@egu?}Ls3-sb}nhl%;;Ez?;xpiGi>)(ptjtA$7u zK7+>^X`60T<4XRhvU2tZK?YFX(uFr`Xg2t>HagO|~QYx?MFG8n9;GQS+4zm!7F= z`2+cd%C)F^o!rUd>2|}DJpBr~0xnC#C>eacoMuUhxfh`^(MWlK^sVT1{AAQk^L|&& zPVq6P2OHq^KrLi>#c1uZ^enV5G-!vvg1o0O-XO7OMZe!b>@neWXb3HjE)`_mDS)#y z3Bgru0cqYFcwaK`9z)9lcjpjr*9hEboQ`W7pqF-pEJC*wChc>UW^G*6dxPsjrQj(t z7Nom}KvFtI@!p08N1){H6TPKj)(nYI8gIl)hOwHPD zVzAl_1o;vuRV^};2wJ2rt2C{RWJ|Td+Nvkmu3ATp4d`X+s3nt`Y#r7)-g z>+-Z2(Y;5xm@^@8#-ZhUj_PIALq#tn7O1vMIsb+i6=*t|5Gv=BLZpQ#*ZG-s*%}~& z%{;X4O1uOfx|hNmrFdD+l0>*rVn5s|<%w=7mo)?z`)*>vQuSJ75#Clr;=9zxq**|j z1Lka8%JY4Yi4(!B$z8cZz1_GNxjRU$N2rHab2M>Mmkbjh<{)@kkFbcT5tnL5*Yr}c zU-d!NT!mONmL{2SBWi<|YbWIr_oDiBPM%{sA*6`bQ<0lRb8;>~DnGz>t5ldnidc~` zZ-kK+)ZsH?iSUInWagqVnNU`bqQ4OR_Dk(N#P2JUlP=4$By&+O1QE-i0fOqI&_AOk zZ&8_3R7!buYG#VW@H0d|xvJ?l7|hpKCMTvomS>3v*j~;dB1Ckw@Kz`c6{tTT@c{29 z(Sw&yp^uwnfg3RD(_otrX0tBm{Uq*#O-LjRj6tB$u}XgGHbe4c2y&; zSWY~EAx0qrX!-rKH|1)|QnyYHh#9oGQdm2%lWXXMnfl5Y&O7N?@FdnJfV@B}6#%Ss z1sg#9v}ms)e+C{XUi%xQtVD>fH;WWo(3Ow6$Em`=9;_$v!?+I{sN%wT3KV(Kn_3o* z$abp|n}AVBg2{|}EPw}(pUs&b8ufKd+mokQ zyhYbJ)a9pW0{4X_qMxGfI9#2Ls;iuH00qku2)F2c26TDzE~4GUsJ`IAFsSwG7jt!i z`-qplTs0Z#stC&#XpR1TYxoIVe)y0c|D?x1=e_9P9loJR4&TH-rnstjtE>B(*E^5$ zs)~<;ncF%dbNO+Z8>aZ;@vOaYT-IKAlr<__4(9CrBXaiJC&<~IC%_riGY50_@ew)u z%M;}6?r}N0_o&XA3g}?|J~<+P51$}^?S?-lm+Kg$4!q^+&J_pjfI`$#K#5_MLs9jE HCcu9IGRkPC literal 0 HcmV?d00001 diff --git a/3.1.0/.doctrees/developer/how-to/contribute.doctree b/3.1.0/.doctrees/developer/how-to/contribute.doctree new file mode 100644 index 0000000000000000000000000000000000000000..4d292471ba6e185bd2a576e7654de15db7ce7987 GIT binary patch literal 9362 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 Tqc6oXHl=`BwnTLfzU}-E(gI$h literal 0 HcmV?d00001 diff --git a/3.1.0/.doctrees/developer/how-to/pin-requirements.doctree b/3.1.0/.doctrees/developer/how-to/pin-requirements.doctree new file mode 100644 index 0000000000000000000000000000000000000000..dd863a7d2500eda77ee990d9852198bdb706b532 GIT binary patch literal 14440 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 MjI1apLbu)T0A^=FZ2$lO literal 0 HcmV?d00001 diff --git a/3.1.0/.doctrees/developer/how-to/run-tests.doctree b/3.1.0/.doctrees/developer/how-to/run-tests.doctree new file mode 100644 index 0000000000000000000000000000000000000000..7d036c5c5905c555ad1610a414735324dd6398ff GIT binary patch literal 6247 zcmb_gO>87b6}HzN+v9(Ge~31_N#~EF#Q} ztNn9W2@Wf~Qr*%4i3@Ow6bX+-uK@3UcIUxwch-}BU9!-y_Q763lF=@bwla$B-0D7bkcx_DtjY)_Q%>!b8?C?xaVTL0--;H^gy`Je+nyx%Q=@#qf6YeNahShS>5_4ky_3Wl->z4AA&l^Mf z>Z@sJDZwqp6O~wL;)O#iI-;+PR$y#0 zLz!3;kBVh+P0Wbv`pZ2b1Kx|%FywLXK*pn<*XPCmU|iC3`9Ak$gi#?6I!e;qj&Vgd zCJ#KeeIf0`2W`M&!)>AdVUxQQI*C6+5gZXI|^6yCGD)@=oW?^^>ebge-enz$sE zmpeR)=QCyP`cjS-eQ#6*V%L7&Vps)pC^~_qq~!?ijI4o-Egr`*PP*3jWNJAq zG_yR~Oo^>66SkY;ioSeb>#`zJa8oaL(~fuy!61-uCr9+avyywFrRQ@t*f|}p=(&O& zwVs!ndYE_|oE1-iI#1#68T{SA-?ND1tcg&iK+j>nH1;xmQ79E9TfJVcx+~*hFH6O9 z;zhDjFT^~N{yulJ?P(Z#MR(5S+fxzW%JT~tH&6P%gu6BonTEDk&WGD*vg#OT;-tAg;&hss+B!7eVIiRwHRJDSY#iSuA z%8IxxzCj><0s1YK+f&f>VpY%F>=^KVS%v-kWCbO5BOPmV{=Zx_r)CAfBz=dHK0j8n z8p(-zz{*MqNV_GZv0^PCmdh#SRip$eA62WWqrpq3ON{5)PsYAuA5KjGN+r4 zCLDaJ7=(#f-6;;~+Q@Pojw0>Vc;$Tk2u1O}JCzWcNAmI)ajx1t@_ae`QZ^Qp8w95B z<5;glF~pIU_PfZyUX%=aW^@8UD;L%#SAyEcYbDd}tFN?kz2WNj#!P#fOpDXOpth{f z73-1+jY7}#5)*dK(qJRp<#%n>)zYf_=qhd6IMpVTNx@NcRK=P;Iyg0k`2jjk#910` znp1q&=3FiUIiaSsWb;%@OyE#-J5(q=Rr{!xnFvleXt5q{*flP#t@}*rta??hw6yQy zxP5iK(pODWCyEU0m>##2*PO=2H0!iZxXMi0Y!MsH$X z8S@*#AeN!xp_}Qs?=n9{6J54-dQPS)N>#Qa)^>Dz$k87&CF2YqE~Dmx1ra`$Vks3& z07FXblK*mr~pi^XRe`}kT>(y^&8r%{;Fg3aho^yUC+LaBIT@K~?VO(jeN z`w%^CkR9vQ1ebxxCKh2~0)>y}67F*&v8ltg%ew*gD;5-&g&n<|pWwDnZGEgs#+0k>338KD2cDl_EU(Zn zY=W+l8g9gfw4rH00NW_>GD-Rjwo_{4 zhorgT@W}M}LWX&j)|Y9fF#t1d#RG&#nKqV3oo8P70{poe51a}0B&pSZwk(cFUPhE1 z@wn@8H86XiAoS?gfb?xE)<+h(N@Uv$`Z_on*i~{?0PMVzzNgodqfoI!Tj20F4FE22 zz9i}|CjpC<{lgSloxo8S&3FEZ&dOnhYp**3H)jWd&+`plHZH{KQ5t3U%mapbl_<)< zJ+MbQUN`^;in_2#g(6A&6Vtqaxa&)nCnG&8j51Ir=yMktd;|*wNB4P8Uv@BSWb=S| zzKy3As=LPOjpDHcT=fTeO}nROc(_l`6LjyS`vB4xOvD}DLvAQL?`h4`#0HE4vlPlL zSmV-T#2r+-F=_r_0Wq`<%8#2>8;h&)OH7|=1tETgrRIiAPa;@8PiynvH}|Gd3dASk zZSj_PNBmyAEB++j7k?EWh<}I=#lOYJ;-gfzX@NS502CK;v*ez5`&hhlEZ#j9?;nc~ zj>U(^;^X5~JV7`1Pw;H=miQIa{RZm(2z7sky1zr+KgCDlzo}kn62;iG;&`ANVF$Kc zLiM1Wm;0zG$>-rI0K^LV(yzE@re2y5RWCA*0V$$B>U~1uYH>iul)5-cRvQd9x~j zodo*aNuZ{0KO5N}9uV2@&WmjCw^(r>T^|_O{sP8`;*54iw)?XeLtc`~Ni>?J{ z!}`wy!ur?4g0*>GSTCH6R(+i~8{Eu=2TQUk%sW?-okqorH8`%9s-j~~qa`nN{M4n> UZ%A+Ci!OC-MT0|E6Wp2q2MByaI{*Lx literal 0 HcmV?d00001 diff --git a/3.1.0/.doctrees/developer/how-to/static-analysis.doctree b/3.1.0/.doctrees/developer/how-to/static-analysis.doctree new file mode 100644 index 0000000000000000000000000000000000000000..283ef09a792998d55f677ebef64a8e39fc4eebcd GIT binary patch literal 5135 zcmd5=TW=f36_#vK5+zZx9NR7GOEykYJB>*OMS(U#(U&AeT(v5Y6hZo6Y=^r;&RDxU z+nHHYDv+XnFd(6WplG&efjsmnK%N5Rt-q$frQeyokfLM72J%n?v^ZzZoH>{8T!w$? z{A1~Jcz*uHw6tIjX$3~i< zFfyA2>2ZEs(n%a#`5iwZjlPxtNm=Q4%|v2GhQAPBjz@k zwOWn}3lEUR7iDb7y0s`_#(;?Los6Z`xAnNlXNwVw4mBSWPvO=qo6uG%cEokDC2oj| z;--6VC{)Uay2vuFhf}2whjPU0|Dc>1#{3aaRE}MtrhTi1l}q}KO9tA&mRtK5iV?ig zg>h`6SuW;X`JWFfH`?Qz&wL4Y#wz2%R9fL(8V-W{Hi!g|4o%>BV?LIdq@V>7!SIpZ z7|Vnke@YcLAk`@*R`B#5gvWu96OrI!O^_=KS4)-z(wKry39h-9O_v9mvKuM0kr)KO zS49x9jN}Emt{4U^8We{Wf*OFhEA?jI z=Rm(MDy#ucyC3-dI;l$507~3<-+$&!A1glzpB6(HofOw{BTCA=-G;tXT% zkTIhKWvJ5L0FV=8dodbBDjnu#JoLK@7IZ4&Oy!nPgC08GARV76uhDaBrl**mQSCKS zO&81EQ161I)?LiYNW z(+0Y#7<20Q3NjZ+@vG*}?fE<1Mq7^J^5l$He82$QKEjhqJM+zq<|DV@n2p)?oO{kv zXHNQFuU#k z**RI>^l5R=U9p;FCc%uLvM|?bf}F4VbjK>ol5&5^Z8SVoYL^PSZ`o}}g{CPWtkd(r zZ8emt_q%n&twm$Q;IrFKGGnbWbhNm1s~@oh4Xv$YZWYZiFKl@rb`D&3!qLx}Rl39? zW|$r>|Xu?4Qf!8YvPq?Rq)cnI{mcf1XfqJ-sTQtv= zwqZhJNV$K(Z3vdM%Z}USM-pDdd{LN&39U8eqhf;Vwx>+fcmNK~Sqe%Q;fOeyMEc1L zJ`2&ARSd4ubqhQ0|EzB$zTY^z8FH+8GM|jl}B%r7<7?Z#qPw_~n(9cM@ z;YF-MG)8b;;zzkMJe)u2Arjf}kurNO;!$t`iQfs-^5D^*CA(Pn4PX zA2t;dnac>Thg=UNw_|??s=-j$G(qlmEgK<)Vk^r1b$1hhOv5%aTLZ#sBsq1L%yDMf zQP@t%7#|ZwxZg4LtIfmLWzahLM|GdovOk@FN7iN;Y`eyAY=ji@ZGb zuP*C|ss0VT#cLn@kD2iDFeI(i`Zo1Z2_?kCDE|&_HkuOQ-H? z1g^u7r%Wax-iK6lz1F++3lCUL##KQ(br*T|h~82(@lq*4?gEK2izRZyhSdn>joXD% zK$gX;5#=0j4=UyE@)>INx&j%}#_ghN#hA$7X2#Fp^hyKM8gW$L?~1R*SHg%~JQjZz zpNhYV&&9vQm*R`Ub%~4KJHB;@uTOB|0}%Oa`6zSk8t`4 zPXAqeA^u&s-h9aYy}d}%iwjmj%Zfso-SAb`&QmHr1Q-xWM=EJixLwcHXXfVH zcv#XaGH8=69@Os^asA=@%S%h=Js4;f=!5S)@SQtybn5oE>{bXTNZb1dzx*xrpz6mD zF|B_y*x!WAhwpfK58uU~1;d^;^v$OY_2c*XmPOBL*&klivWE|F;v4MRdQrQ6^t4?x zzMpT_C(mitpS~-zdM|3$TTh!c8>7!R?w`+TT=`uYw=*-2yUjK`eF5H-S(Fqp75oV` RmW`MOmAa?XD2_Mc{{Sg7q7wiB literal 0 HcmV?d00001 diff --git a/3.1.0/.doctrees/developer/how-to/test-container.doctree b/3.1.0/.doctrees/developer/how-to/test-container.doctree new file mode 100644 index 0000000000000000000000000000000000000000..fd670dd3a0f5b7ffaffbdd83354b36ea357d98aa GIT binary patch literal 7334 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 z za8Vi21>B!VjmK3hts-+ys7W#>xch_k?|h%qm-(L;;`3tWzqSONn}5*wHvfo!%5uJ7 ztZL&bM(;k(sIK6T=j@*+#_xwLgJEQ#o literal 0 HcmV?d00001 diff --git a/3.1.0/.doctrees/developer/how-to/update-tools.doctree b/3.1.0/.doctrees/developer/how-to/update-tools.doctree new file mode 100644 index 0000000000000000000000000000000000000000..0b5ff388927e9e460015ca0e73b0565e9b480466 GIT binary patch literal 7012 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 a3miXjRkrJ?|1@g2s!GcW8r6zmRR1qTCt*nd literal 0 HcmV?d00001 diff --git a/3.1.0/.doctrees/developer/index.doctree b/3.1.0/.doctrees/developer/index.doctree new file mode 100644 index 0000000000000000000000000000000000000000..3cae9a2ef4c398578b9428514d42bf0404622ad0 GIT binary patch literal 15690 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 literal 0 HcmV?d00001 diff --git a/3.1.0/.doctrees/developer/reference/standards.doctree b/3.1.0/.doctrees/developer/reference/standards.doctree new file mode 100644 index 0000000000000000000000000000000000000000..d3f398fbdb80e254bb07e99e9f8204a4218afab5 GIT binary patch literal 10748 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 literal 0 HcmV?d00001 diff --git a/3.1.0/.doctrees/developer/tutorials/dev-install.doctree b/3.1.0/.doctrees/developer/tutorials/dev-install.doctree new file mode 100644 index 0000000000000000000000000000000000000000..2d4af6227e2f158a435673f5369925bf072bb1c3 GIT binary patch literal 13201 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 literal 0 HcmV?d00001 diff --git a/3.1.0/.doctrees/environment.pickle b/3.1.0/.doctrees/environment.pickle new file mode 100644 index 0000000000000000000000000000000000000000..99b827b1898210ab1e082143cc608ea9cd5990f8 GIT binary patch literal 2200623 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�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Ƚ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≫!B%&+2p$A?-FZ4zq^uzIP6n1<`B4A`Q3wyBFdo9g zD2C!FiBfnJrSTXZM>&*71ysaSsDvu0it4C=TBwas)ImMeM?*A16EwxMXoly|0lF$|1(E~lv3ooJ%`r#!Ez(5SbU<}1DjKD~Y!f3pT zu^5lnFcFh58B_2Err}Mzg_(F8voIU)VlLjp`&fVvun>#z5tiU%e1hfp6f3a`pJ5Hw z;d5-jMr_6wY{Pc!#246&J=lwV_zDMb2w&p}j^Y@O<6E4>X?%yXIEVANfFE%YKjCLw z!7sRqYxo^$J`A`CHzPf6K?Y>RZODwKnwgL{w<_aX%OaX$*;0X&Ez zcnC#N3?)z!kKj?1!DA?ka(Dt2@Fbo>WmG{mR7XwJ!qW&vUDQJZG(=-G!83Rk&G8&s zq7}l>8f_4PD6~a;M57~O5Q{i;K|B(Xgl_1L7tj;E@gn-7ANpeeUdA8{!B7mx2)u$( z7=u?a4&yNa6Y)AGV=CUjbi9cfn2C2V3v=);=HWfe#{ztag;!w&4kF6_pa*o*!63I}lrhj9eo;22KeTb#maoWWUqkMsBeKjIR8 z!ev~+uegfe@H^5j47dsDkRG=p12W+@WWnvoifp(G*^v`>BRBFOFY@6&grETKMN}~)OM_H7|6R3zMQ3;h%71dA!HBlQ+qYmn#J{q7A8lx$mK{GT* z3$(=Z2tzp9AQDk%7m(DUeV~6Rw}VSD=!7_QMm!Rbgs$k09_Wc)coBWj4=-T=24WBf zVjygxin>w<9aE;VxuHPTY;$ z$b-Ddhx-tM0=OTA@Bj*<2p&dJ6h{e^!Xqe+GI$(iQ65jABA!GgR7O=)Lk-kKZ9I)S zsEhh&fJSJHrg#R;&>St$63-(H;b?IDmur8i#Qd-{3e- z;3Q7rJDkBee2)wG0T*!zKjSif!LPW6-;ic;Kw8|4bhrh#A|o;(GqT_gWW}Ah3ptPz zxsV(8ATRF4eaMdjD2PIM5QXs&9!4<~M@f{zqbQBX@Hon$JSw0foo4b(zy zgrW}Wp*|X-5t^VWo<%b}hZbms=g}JBh(ILTq8*~q0Ws)=ICMrl5|D(h=#C!fiC%aS zeb5gtVE_hV5C&r?hG7IoViZQ>RgA@WyoQOGgvpqKH!uxv;w{X?+n9yfco%c=9^S_S ze1L^mgpaTUALA1&$ER3{Rrm~RunwPN12$qawqP5!V<*1AZtTHc?88?$fJ68iM{pF! za2(&_Bu?WyoW(hu#|8X|i}(pY;|hMkRb0dGNb^y^O}H89aSJjaBW^=x+>Set4R<0t za^P;{LLS_Me7F}O$dCI`5D(x%6v0C%iee~%l6VAqY0kDvuKXz&=Rc>hSq3<2t=VR+9Mhr5rbI7p$p=Xh$M7Fcf5d} z=#3ZA7yZy51Mo5iVF-p|I7Z+VjKUbaig6f^37Cl2F&R_w2Bzap%)m^%gISn^cQFs| zVLle%LoCE%e1xU=7|XC6E3gu)@fp@)9oAz5HeoZiVjFf~Cw5^szQkVa$5%LrLpY2h z_y)&t0^i~kPU8&D;(MIO5BL$6@DncM3Vy{^{D$9=c1gfZNQd;e6&a8Tw;>B|N7jI( z4%q@NWAAb)2XZ18a^oK4#l5%>`B4A`Q3wyBFdo9gD2C!FiBfnJrSTXZM>&*71ysaS zsDvu0it4C=TBwas)ImMeM?*A16EwxMXoly|0 zlF$|1(E~lv3ooJ%`r#!Ez(5SbU<}1DjKD~Y!f3pTu^5lnFcFh58B_2Err}Mzg_(F8 zvoIU)VlLjp`&fVvun>#z5tiU%e1hfp6f3a`pJ5Hw;d5-jMr_6wY{Pc!#246&J=lwV z_zDMb2w&p}j^Y@O<6E4>X?%yXIEVANfFE%YKjCLw!7sRqYxo^$mImB}n~@&3AOkYu zHe|-_xC7a6C$b|4?nW-;!9B=_dl7>CxE}@a03JjUJcObsh7u@=NAM`h;4zd%IXr<1 zcoI*cGOC~&s-q@q;c0}TF6yBH8lo|p;2AuN=6DV*(F$Q`jW&ot6xyOaqR|mCh(#Q_ zARdWGLN|2B3+Rd7coBWk5B)I!FJlmfU?_%T1YW@?jKQlIhw+#Ykknyfpy2qrOH=U% z-o#sY8}DEa-o<-(A0OaDEXGIp7@y!%tiWn~hIRNH8?gynu?;)%1@_=e?8jF)gs*WF z-{3e-;1o{dEY9IPF5n_A;b&aNuegfek>=xon~@H;A_HziX54|SxC_~FH*(<~RgqbN$CBpyX+JdUz>0u}HSDxoT>p(bh}6m?J^4bT`(@GP341zI8utr3Ap zv_pGzKu5$P4)I7pS9HS*=!qB62QQ&NUdA8{#W0M-D;R@UF&?jB5?;qtyn#3I7T(4? zn1grm9^S_X_z;Wn5kAHz_!KL!8lPbuKF3CE!d7g$6S{5|M;% z=#HM~g+Azu{uqEk7>r>Uj*)l;WAG}*<26je>zIl+@Fw2E+js|a@GjoN`&fVvun3E> z6dz+bKE*1m##*ey25iI@Y{d@j#BS`tUhKmG9K>N9!7&`iNu0tNoW*%uz(ribWn95k zTtk{q1JWWL(jx;hA~UieE3zRwav&FSBQNqH1o=@Ag-{qpP!z>b0wwV%O5<^q#S^H2 zr%(x1Q4KXw3!$ik`e=a0Xo6?a3@y+SVQ7sAM4}zqqa$Jvht5bqBD$eFdZHKlpfCDk z00v<&hG95f!6>|nv3Ly=@H!^r4NSvZn1OdN3v=);-oyL&03Tv8KElWN1k3R$R$(>P zVjVVMBeq~Gc3>xVV-NOWKMvv$j^HSc;{;COG|u82F5m}T!cVw@UvLe-A?=EQn~)y2 zAR{s%3vNd?+=(2>iCoByyvTOR7N#aM=jJw zDC(d-8lW+n;8`?73$#QSS|b9HXovRbh#177GZK)9uIPpr&=bA!BKqMa48+SAf}t3J zkr<6J7>Dtgh)I}&shEy8F%xfNHs)Y1=3zb-U?CP^36^3RmSY80;xnwl=U9(T*oH~fy9RtDURTW~8f;Wpfk zJ8&oNLJs6aZsb8e+>87ufI@fxMeq=cp*Tw65tPAWD2MW>h$m4QRZtx@P#aI9F6yBn z8lfqkL32EZR(KxaXoD!UMKn5~6JpT?@kl~f^uP<~jTg}mFJT~F#t;m}2#myNjKMgJ z$3#rR6imf*yos538?!M7^Y9)P-~%keVl2hSSdLGz3ahae>#zYEu?1VP13R%Bd$14t zaS(@a1V?ckCvXa;}f@}Bc759zki8L0ObT1yn>OR7N#aM=jJwDC(d-8lW+n;8`?73$#QS zS|b9HXovRbh#15o4)I7pS9HS*=!qB62QQ&NUdA8{#W0M-D;R@UF&?jB5?;qtyn#3I z7T(4?n1grm9^S_X_z;Wn5tia(EXSu$q8Lh|6iTBE%Ay=9pdu=vGOD3EYN0mjpe`DqA)25mo<%dXKud(7H6jp+c4&`| zh(R1WBLRu%hVJNzUg(3q=#K$-8G|qs!!Q!BU<_Wxc)W&*n1m^qis^V0Gx0WNV-Duw zJY|cOnOJA~*6NAMQnd6hI+7 zfFgJZMNteTQ3|C|24ztW6;KhCP#M)w9koy!bx;=#&=5_~6wS~aEzt_C5spYip&i#z5tiT+EW-+{#ALkg`Bt>d2kQz#eFD%`|$uC#6x%( z#Zdx};88q=$59?n;7L4%DyWJYsEMZ$ih8JzMre#@@GPD~3p|f7v_S;gq8&P*BVrMU zcqE`Jy5R-%#Ea;Im(U+CV-SX77)Ih1jKQlIkJm5>uVX6Sz?*mrZ{r=z!Mk`5@8bh} zh{gB_ALA2ziWOLm&#(@kVXXOa1P(&2mFYi z@H4L97hJ<{NV7H|Ez%)9G9V)|BMY)38?qw@av?YJA|FDK9|che527$0Mp2YNNj!?u zcpPQ%1S;SuR6@)RJ?)dcoQ@6HfCcE=HWdozz0}_#aN1uu^gXb z6;@*{)?ouSVhgrn2Xm&H8|}NQd;ufQ-nD zEXay%$c`Myh1|%Cdz{w{eC`(LpXw?IF1uIh0{2TbGU#Xa0x%*3Vy*g{D!m}0&YTj+=2|qh|I`>tjLD! z$bnqQjl9T*5adTe6hdJXK~WS#Nt8lqltEdPLj_bsB~(T=R7Wk;Mjg~e12jYvG(|Hs zM@zIqYlI^bQD~27#Gn&8qYDy|gzo5pUg(X!=!XFqh`|_w;TVBY7>%(QhY6U7$(Vv^ zn2s5kiCLJ9xtNFfSb&9Cge6#tWmt}tScNrMi}l!m&DetN*nwTxjlI~112~AoID%t1 zj*~crGdPRyaUMV7B7VkY{EDmi9ceZO+>CU%6&Y|FGUEYxp*J*@gWxCBP_uuScVl?iO;YGpJP2XVKcU2JHEg!e2KmI3J35t4&xgf!?!qz z?{Eg+<2-)EMf{A*_yxb>H~fy9HU->_TW~8f;WpfkJ8&oNLQdR`Jh%t<;yx6>{dfQm z;vqbY;wXVf@F*U`<0y|O@Fbo>6;wqH)Wp*WMLpC*Gbh0z#`ahQOKn2afyhUu7rnV5yyn2ULs zj|EtWMOcERScc_TiB(vGwOEf0*o-aMjvd&A-PntLIDmsVj3YRP<2Z>^ID@k|j|;en zOSp_HxQc7|9ceZP+>CU%1-Bv-Zo}=k19##scO|3w_WR{V@P9V-SX77)Ih1jKQlIkJm5>uVX6Sz?*mrZ{r=z!Mk`5@8bh}h{gB_ zALA2ziWOLm&#(@kVhU%z=+NguNXn=-jf~IJO=4gplXpL}0A`0yhjTm%7XLLa#lF%JJ&kHTgE(|X0us>;-O&@h&J9ZtLS9nRr<{D2?v6Mn`o_!Yn5cigls;AY%{ zTagL3;db1CJ8>6s;%?-@J-8S5p#bj319%V*;b9a<2|R*F@faRQc|3t9@f50{Dr%r6 zo<=C@p*|X+F`mJ*cn&S_Ji^ch5on8c=zxxhMI7RhfUf9<7tj+gq7Pm|f4q!A7>Z#S ziB~WNuVOr2!z8?psdxi#;w`+5cQ6O<;yt{N5AY!t<0E{GPw**LU^PC&I(&|e*o3Xv zhMo8Vd+;Up<0~A(*EouAa01`rG`_<*e2*XSBYwiq_yxb>H~fy9wg=pdTW~8f;Wpfk zJ8&oNLQdR`Jh%t<;yx6>{dfQm;vqbY;wXVf@F*U`<0y|O@Fbo>6;wqH)Wp*WMLpC< zBQ(Y{coxs01)fJ3+8_dL(GDHZ5wVCvJQC0q-S7f>;zjhqOX!c6F$hC33?uOh#^6WU@4YiIaXp7)?h8xV*@s03$|kic40U6Vjm9RAil<7 ze1l{77ANr?&ft5T$B(#(pK%$#;wpYenwn7qTNK?nWNmgM7Fb z`B4Cc@BoV7ArwP#l)@t@gU3(~3bU-J>q6^}Ygs$j;7tk9oqA&WPKL%hB24g6OVFX5EG{#^Y#$zHTVG5>VI^M)g zyp7qIgL!xl3-AFJVKJ8CV=Tv~ScTPCi*?w5jo5;%*nyqcjXl_h{Wyq2ID(@%juSYE zQ#gaOIFAdsh)ehxm+>pE;&-I^BH(7E!>!1G+mIP|AS>=dcHE6zxCeQ0A3|_H3gST& z#=|Iz5-5pBQ5uhIZ*dae;SA2C%CV=*4DVG>@)RJ?&V@fP03JD80*n1}bU03Tox7Go(s z#xg9&3arFxe1>)S92>C-Td@s0@dftaOYFy2IE1fp6yM+kzQt*LhjaKIKj26FgrD&X ze#LM29XIU`xEZ(LR%F6$xE*)kPTYl@xEpzJ5Axw&ZpO*cp7z44-L@>P4Ntx<2kg#^9V;9L?R095seshLT7YAB9hP@JX0MQzgTp)OSzE;d65tIAp`|*KMLUi6h;v|jG`!x5-5d7P#R_M zILe|tos*& z1WMu&Jc=@S3}sOcPoM&x#8aq@DyW9)sEJy58lk9*dT4-#XpAO!2G627oXDi}H8^74al0p)#tX8fu^>YU63tL0!~G12hUq>d-h)Xlm-xvuK9r z&;qUSJX#|h5r{-vv_mvHAO@Wfht7yc0+P@b-O&R*(F-r45BlLH48TAP!e9&yNa`>w zP~k_oGzz0J7UM7h6EPW6Fb&f&12ZuTvoRO*FdqxB5R0$`OR)^gu@bAW25Ye%8?YH$ zupK+F3%juw`)~jUaTrH%499U2r*H;maUK_N5tncoS8x^AkY-;%TBJjIWI#q_Miyj6 zHe^Q*$q8Lh|6iTBE%Ay=9pdu=vGOD3EYN0mjpe`DqA)25m znxQ#bq7_;r9Fd4Zdqg7!ozNLwkccF7M-TKuZ}de!48TAP#t;n02#msLjKw%iz(h>O z6imZ(%)m^{!fedNJj}-eEW{!#!BQ;4a;(HEtif8W#|CW17Hr23?80vB#XcOsK^(>r z9K&&(#3`J?S)9iOT*M_@#uZ$}HKf@ekQV8X9vP4knUMuqkqz0A1G$hJd65qx$d7_3 zgu*C-q9}%vD237}gR&@x3aE%msElf;j#{XVI;e{VXox0gie_kzmS~062uCEM&>qo< zK__%Z7bGGH-O&TR&>MZx4+Ag|gE0idF#@A78e=gI6EG2zF$L2w9WyW!voITTF%R>x z01L4QORyBnupBF~3Tv#+fwu?5?)1G}&rd$A7(a1e)a1jle3CvggAa2Drr0T*!z zmvIGGaSds{3P_7|NRJH2h|I`>tjLD!$bnqQjl9T*5adTe6hdJXK~WS#Nt8lqltEdP zLj_bsB~(T=R7Wk;Mjg~e12jYvG(|HsM@zIqYlI^bQD~27#Gn&8qYDy|gzo5pUg(X! z=!XFqh`|_w;TVBY7>%(QhY6U7$(Vv^n2s5kiCLJ9xtNFfSb&9Cge6#tWmt}tScNrM zi}l!m&DetN*nwTxjlI~112~AoID%t1j*~crGdPR$xPXhegv+>stGI?V2LjR}9nvEM zG9ojwAS<#VJ8~cwaw9MDAq4qR5QR_}MNkyQP!gq38f8!xG>0L=@U18ZqdE&ggn# z#$f^`Vlt*+8m40gW?~j*V=m@lJ{Djh7GVjNVi}fWC01b#)?z(2U^BL0J9c0fc4II0 z;Q$WeFpl6Dj^iXw;SA2=JTBlOF5xn+;3}>m&B1`QNQd;ufQ-nDEXay%$c`Myh1|%C zd%FIE*7WhT}MiQ#gaO zIFAdsh)cMPE4YelNOLG4Ez%)9G9V)|BMY)38?qw@av?YJA|FDK9|cheg;4}WQ4A$f z3Z+p7Wl;_lP!W|-8P!l7wNM*%P!|o*5KYh&&Cnbz(F&~*jz~nIJ)#kVPUws-NJJ94 zqX&ASH~OL<24EltV+e+01V&*r#$p^MU?L`C3Z`K?W?&{}VK(Ms9_C{K7Ge>WU@4Yi zIaXp7)?h8xV*@s03$|kic40U6Vjm9RAP(aQj^Q{?;uOx{EY9NsF5(g{;|i|g8q$0n zkQV8X9vP4knUMuqkqz0A1G$hJd65qx$d7_3gu*C-q9}%vD237}gR&@x3aE%msElf; zj#{XVI;e{VXox0gie_kzmS~062uCEM&>qoMZx4+Ag|gE0id zF#@A78e=gI6EG2zF$L2w9WyW!voITTF%R>x01L4QORyBnupBF~3Tv#+fwu?5?) z1G}&rd$A7(a1e)a1jle3CvggAa2Drr0T*!zmvIGGaSdq>2c$(hq(=s1L}p|`R%AnV zOraqYmn# zJ{q7A8lx$mK{GT*3$(=Z2tzp9AQDk%hxX`zj_8C~bVe5>AQ4^B4L$GzdZ9P^pf6rR ze+pqphT#~AS1=l5Fc#zR8YW;8UdI$n#WYOETbO~j@eXEV4(4JW-p71=fDf?< zi?IYt@d=jUQ>?%$ti~Fw#phU$jo5@O*oy7gfiJKNd+;UpVLuMwAil<791Te7@J*l& zaonYEaT2HT9nRt$&f@}p#6|pspK%4h;3}@+cceKIa1(Audfb8x$cWpJ8MosOWW$}v zjvTlfxsV6b(J zCwk*W^hH1P#{j&HK^TIe7>*Hm1*0$quVNg=V*)1Pbxg)oyn*R>6EiRq?_d_@;9bna zdzg;}_z(-R7$0FNKE^UE#|o^(YJ7&ZScmo4fKAwpt=NVg*oj@(jW4km`|%YH;t&qw z2)@BFoWQp@h0{2Lv-lq8@dJLuCH#cTxPo7C6~Ezkq&*sN6Vf3)Zbb%U!fnWc+mRL7 za2K*8C+Ek_OYFmb9Kb<* zjl(#KZ*UwZa1y8R9nRn!zQ+apfQz_o4b(zygrW}Wp*|X-5t^VWo<%b}hZbms=g}JBh(ILTq8*~q0Ws)=ICMrl5|D(h z=#C!fiC%aSeb5gtVE_hV5C&r?hG7IoViZQ>RgA@WyoQOGgvpqKH!uxv1|%g7zb862 zF)BWxbNlGn?qRXvouVScqGP*8#U{qZ_ZZuIY=@I+gSJRwYgBGpr%71lMpbKtR17H)6CIn>y;%3MkA*!}Iw(-4 zh?ww%gpjbBDKAn!Q%LYfQT<&jDkiv5NJ^Hraq%JH5fM=d3DL3buD@VJ@MeiYK@*B+ zO8!KX_E8B@Avdn3R6tZnV*9A%cTEUMj7$EdYj}KgTv9?vWORH~M9?D9Q3)YQ2~m+D zZF)#gzLyFPZq=z%cx+^F|LX-y{voK?kg%XVqZ7lz3MWLxv@H@+?8%UNaj{V;Z;+a~ zw#pBWiGCra2&t`dqj<%W+eBV}?hmON9vjjoDkQFJRD67NWMowETaVN>3|=`%jEe0V z9Um9lDdJ4gFZ5-C9e*GpX)#hf(R6OjDl%VRhZsE9u;_admgZmWz z^T&#Y6etnZIXWVtM1dkjQfl&#oBR(gC}XA0@o_;*CHA;cIe$DkrF#CQS{lX01%0q> zNb)0Zv_Vkw@ljFN+um*CqY{(iWB>9lDFyuNGaEN;(4c;!CV%t5YN^fKL)SO zP5;+*7@rgbiB7>AMa4$NhbIODC>YIA!7CW8wd+?6X%jScayM5`{`^CmDq`x*{;`ND zeX2?2Mm4La#FKxh-o)_uppS=y$49h}P7H>3PzA~55d|WW;^U2;)P4{IuD@yVzYLN; zJ+na3)c*MAVUap!{@Nu|id?IHNX*mn4rT`0(-Cw6w6bK6&;%p9htJAxe-PGCW!uRPm7EA$8uGzU#~{(nqk#y zHwvp)x$fVEp?cy=P^y%P?N955ZqbRsDm%H1*B5j>{-#8!GvYs%K+XJz$Ny0+n(L1W z`MW1Y|A!Y%or%L5*ZP|V2oDJwuYE{DM0|ATASlI!M0HPIq3(_r(b|W&eF~f)D-Y;xtNK<5jEv|Di~cQEh@f zR7A({cEMgLXwx7JBwDBj-SGMrP9oDd%o5|tQHJX4eEbsN;F z+@yNr>$|eBF!u`!D^k33&>Ms0X)r4%UjKa1yY5fkyajuLwr!)kr{3|;Z=5N4$xyRS z{VJ8~+_-6hu#_QLph%|Fx({n!xo(}X29=vMsotob&Gr{>D^$HT7g-3te+;HPWXd%ALP=lBA}A8OgNWzWFgEqfP#D0qj|oxX#F#!-oh z!452;uwRl-6^h*0_*V{b@lSjHU^^kRsGkswHMP^=`r$;db&HBgoez?N{YP-nA*3X4 z%97K$}&oSbYg64gC1KD=UqV6W09I7U6gyeW%G$bOiduon<-w<8T zSiECYkA$E;lTUiGU9aHc*H0YA4!=3L_t?;!p?L?59e&r1^pur{gMhIe)&-|fq4$R7 z4>DxEks-Aoq^8~<`oO=Wrp_j*sf9xy4pQ&F@!9JmFlB?7nyFZ5$skjn8=3yH^i9q8 zNNAZLU#@@4cVnNDn(Oh<@}&nxfLER{p61zGOAk>$oh zIyJpUXzd{VkNUj6tW8Z04Xqa>|52TPtTR(HGze|{FB$$=>7{098rtk%GMJ81)>^3< zo(pXiWcZ^V{%z5dnky`{O_1x4SN-$CBsEK9XuE%T(jSY8)C|#~F+qkunm%>rOihgq z?GmK^Q4`na&D7+C(5`<;HjkwycMt6uB>z#q>s`aVlA5J=Xx|`9&Kpf}Jxg-@PR;XD z=)fRPhUud^Pi*<3wu8xX{;w{P+E31uMcKE+NDE?*#vj2Lxni%BzbD#`PTcd((B2DAeGo-4?re00 zxCnL^DaU`2Ar(>@AbD;3Wbr@WE;*tmua}Ca9MUEq%?49Kl9P+Du!F7wqFnQe}wns7+WU@iov`bENTDrh?IFU{NE0~ ziU!$&om$G8Hz7DB3r|e>kQ3YJ#Ot{elJ9#X_9wKrs4IV?23iF5(JGjhl3)3c_#ZS- z@;W=1HYygV91={|!LBQ4#EAH)VB!w;Up<2VBHG8rCj{-|MKkX-6$nvh;IvuhQ!9jcM29*$p_N< zRb2A*U^aKlKet!HpI-D&75YEDaFZMLAClb0!MS6~9x5XEJGBauk`LRHn;@lZDJRU= z&%2UO<~v0twvUTUE|nQCIC=|9h-e?xDZFq*Ou}C$I$gGSWKyTj3DS!Pw~dMkbMgA8 ziWCjjl)>S5V#P;NXTUpC>&MY`YOd5#eqZtgcWY{T>e$ZeqOtwQ^*;~mgp@HmHW=0! zlE-1NSqp~rH+QBC>ExlDy2eU9*3{DKCN83O^4ASPF9~M-=&nI`NUnj9Y`@f4R$@N-1 zDKR?c##5R$sa>bB6>)Gjk^G%ea1IcWyqB{XNf{O?dy^pY1)mCfQum;pQoh%T4i2TO zWr~grONKa(j3kqEL|21=czj0kf_yJKwDE&<( z+6S)IRM|A{rj3w57On_MsKTmg?~%THbZi)HU#ccmRQf)JOhUzVDlv z^JDkg4WR{Ah}8F-GiT16IWu#rC zEn$>qqsRvX$TzZTg?Nfw5ba~Z1o!bQcXNf93NQLdG%AY-Mac;Z+eJIbqs2TQbDL+_ zZJJPaA(S8^X}VI|=+T5}I_M2@A>(BKB_&$&$`M#!pd{FZnX-EY*`(G0n#0rZY9dnR z7Hq%QO22BiAxRclI_6Jt*~GckWh8pS+d!sT=_)dd(80AvF$7j;3ZHj^yG6$N`_L%T zI=UQ1yLqeGp3-VQ*qb~U!g=8oLIHN*%_*&|>F96^P8Y+>Z;+HL``$Lr*YprT!lm(a z`q|L|RVKWzWntMnsSN)>YGMzLikaZ8QCI9EOM_FInP#_@=C@)8klGM;NzOlhG<*!@ z934V0kfDc4avV7~+m;r}@gj^3lnLtDqWnsyCffq``Eq}fwCS-bdaM+f7*EiN2}&vhGfoaW(4C4S{xo8o|?=h8h>x)8s0`S*HfcpnGW z4-LHnRy<%BJV;`mwd5tzia*(%qFTX?y=@fcW`qcXn$O#{>7wnYkAx0}`d!NAYzDZq z)XX#&nfFuN7h1!AZKgUJD2eu@O)*7}uA)9b6|3QuW~XtQ{njG0 zY3S4N8m^1X*kQ-bG0pXLTo;z`G``JHE=jl;`7~@B)w4xh6v-6fTYF$!hGU=XqGoL9 zN*W0S1Q7R8h{$t*FwMg(`7}zd8TEFuPEtEo%mBh|@BkpFI-J8T!fhQsR``5;-0VMg zH`bh-B(1mL>d_veYnT#bFO{lrUzel6+?um|-TfroejCF>GH!ml$ zm^Ss~vk(0tv9t^zkt$q)U-}6StC2P54W=0oKOXD6VM8GU*O7 zJGzI<*c^)hVjw>-(}3|FEF5-(t2TMboN072S!P;`;_)?<=W5NJ0VkDgcZ6_a zy6lBwE9f1r@Cs_t`2-}TigLZ${@v*WZk78(E6Fu9_s7E>uW_btmq18}7@%Le;H0@7 z>dvx%oXf)TTXbQIC1q^5$^8=iCvLcmD#pm$Y(GYPfGCJUBa5bVFbBF}n9$SgxKuJY zI3O}e_}HQn20qiHon4QkhC3)2r^49ea9od@DHe8U?TMJngHEB#psK;0Xh`HySCadF zh!se|NfZIKR*aeh3%C?1V09Fo-B~XB){qAjENp$2ip6pM)AWdm7#d;e#wQff1;Qu@ zYOdlDL{t+7R;tW`3J?Qmc96=LBtj-JNpzntbpXOe*a&Hk#v{FXkVPTRZLzUFER6fg zUs8Dffw+bm$KqZo-Tl2ophw!mtYYlwky7Yx&o4H59Fj;=IAt{wD8U{qoSUjEyVvc# zA?(LwyGsh0bM{*frTEmtumS=djTe^&pt*Hr7K+`R&TpVHNTM8V8`R&CNH|W=%VXq` zV5Or^gk+q5rP+|B2q+U#xiX=47J0nWf{}-2G4ldm8FB^Cht3xi?hE9`n@8B~9BE@! zK>?uI0#K60P)w(nHGIs)rt|5FtJKOGS1GJG5hn)CV8{M2(u@DEX;vDpFx^jSMLGP?e1o0 zrRg*m&1`X2*)OOdshMi`W`K9*U5>eMr`9i$b^b5<#lVGBn{xJxUq}o!M9vV5JSXGP z$`;%kGfW@jYYwEjOG3CswWyCIhd({5SsJa(a0chDz(W|pG zsB~&3ei`0{SOUQVWQu4ZeA)vg5+He%_$gpW{K8tg>rZecT-1^2k7bI(Eu}Ff8(I-o z16_;#4kH*%XsVkjUHN(l6di=B5hm-vkfk7VD%p4{LfAPQNiuMuHdQ3&Wi z6Cp7guDMNy(UzusA|b}8WhoYw*C-gYm+}lkU5>z>LKO@0h7$thqP#58ShRGP35RwnUrVseyD{Cac0qn9nNPadMmiO{`m zO^@@O6n|^FliI?Si-Ym65{lKFoHrzFMHze&zmlW6b=j}S7#DWMLA$RG9b33nB>r?l z1$V@SF(8l3iyImzwT3rb?b5lKy4oGn3NWYvckbBev+o}p76b*0ybX95TcJEk{41+V zATf-0bYHl;-&Q`iI56Z-MU0cU8Mi3UhL^}K)Y)xb!~j@tAn(~ zg!TDh8-IyusFeSAnl!fE#-o6c1B$?`bfbeHzXHVYC2#a2%3#$I#aC6* z{z~0$L8|xodH*^nyjJ%pmC^gX*MA@VUSH@}Zk>1hpnn@3SL%+fOY;Gr^mj4f)rA4B zeBS3l|MO*{C6`Gfe83m|-($c}YohI^$VdFK|0j&NSdVDqdvU5i_y2-{&)7f*X`kgY zRCjjsbD^rOJ7tJ$J#o3VuO6t!*|JxcCzHCmo+|G)LM1oF^40YTWvssco^(0nsK%Rt zKc5r+EMyk&^V{i*B33%*FMHC9vI{`=CV@UOWQ5V!nhH}4v*S1%8(?`VM}a$-KH}Fl z2xlP|@Q^Q)&IET9^i((KSd}FK83&>3IU^c@7?OLe2|-TM-*)N+Ps$2)FCatNYi^(% zU&R8N`<%_a4_J@if*^2=`ipy``6HrdoK3tDfLomG-e_wG=^e*!ogl?_>fy$luK?~Jyyy>5Qa>$@!gff(xM`;h?kWVL;&H| zY)b&Q-g{%n9O<_LS(6Xv-Tth0=6O)|gCu3)-||D!Xq!A1Ol~(w!0=ySsH{JPKJ@TP z-yvaAY%QQNm0l6S1Rz?WqRCSe_r<;+Dl)Y!0Mgv19l&;3ZaM zL((z}>$Eq)?hp=~9xmLirGuWI(_Lu|oD%j-7U66Bxyq2(rxnRi&=8XQ}lak1bXZwN% zYq)AAS>u!#TTc9du98bRU*OYlSK7exmZF=F1G+obv?r7#iAovgqn%WfNk;i=XBJoc zqzH*)b_b8th9JwuEAQA&=3P^riUO&$Fn-mwBlu=5_lQO3`@_%o_VJ2`9Z>j;V=};c z>_oQpaBP~~v#B+g>Gr`bQoMfPF^kgMdUm!2wn!hUSO;#oaM%lZJy?utIJ$TkfHIb$ zG%6Kc(t!v;#T(D!^7{rJE`m6AI|9?v90d&&V|#{xITDE0UW_3V{H-u$%kUav$1%%q zDOees)!f;;3?@v*)_Bhb7B}q$>G*!ctl~WH*3t_D@)0HGdCRw>TTxhT@LG~Znd=Kt zXFkZq^flRdk)mRhy?r+_n8=6xt%Ota9)_YI$Tpv55~#6T4)Z-?rAu$&}EbK(oH)Zsf2G=c3y*kT=C&$$u^H|&3?Ehsb7LV{?e|XS( zjPZP}@ym)qy*MrIv+n3b^CiC2Qe=3`BbW|1$nlG$&Le`i*NklxW0afi)shG3Kp**15s~VGLBa*ZX*#~tx*#KdXbFGI?T&s z;*0wh`#|aGYeFPYi;++41ZBfeZi1VTv~}_DX~zK7=~d2 z`rwk423=S6n~P?4PAQu;QD8Pqms`vwK=C>KwTLIa+W#@ItmmW6Z>^4yz20xo__8&^ z+GMlf9Xk3}$4j|GoPTfc_E$mRht>{Lh5GD=-qh<~M$`AxP=EZh{x9-ljPS>6{de*B zMeChHjp?B`|Ehlr&Cgo1>4~>|Y#*E`TWAlwb<+O>#(h_<4&=SaM*{NVv4E_0A*iW! p`D$5QxE_{EE+1&IdeF8^H7qPp&t6zw8lN9ku-W{pqoaGhe*w((Ki~iW literal 0 HcmV?d00001 diff --git a/3.1.0/.doctrees/genindex.doctree b/3.1.0/.doctrees/genindex.doctree new file mode 100644 index 0000000000000000000000000000000000000000..281652c99ba56bb04d94882e1dbb78b075e6ab69 GIT binary patch literal 4661 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 literal 0 HcmV?d00001 diff --git a/3.1.0/.doctrees/user/explanations/docs-structure.doctree b/3.1.0/.doctrees/user/explanations/docs-structure.doctree new file mode 100644 index 0000000000000000000000000000000000000000..056ae5d25c46c77be12549df5e742521bcc5d004 GIT binary patch literal 8166 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%0Ak4$>!okme6p5G@m0 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 literal 0 HcmV?d00001 diff --git a/3.1.0/.doctrees/user/reference/naming.doctree b/3.1.0/.doctrees/user/reference/naming.doctree new file mode 100644 index 0000000000000000000000000000000000000000..d489cfeee9e405a378a0c7a7eda83a69439df7ea GIT binary patch literal 12682 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 literal 0 HcmV?d00001 diff --git a/3.1.0/.doctrees/user/tutorials/installation.doctree b/3.1.0/.doctrees/user/tutorials/installation.doctree new file mode 100644 index 0000000000000000000000000000000000000000..6d00ffcb7fc7d9b5be487ab629d15eb2fbd8faaa GIT binary patch literal 8769 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 RG4E1-Sfo;P2ukhlzX1xtZi@f_ literal 0 HcmV?d00001 diff --git a/3.1.0/_modules/ibek/globals.html b/3.1.0/_modules/ibek/globals.html new file mode 100644 index 000000000..9e9f84827 --- /dev/null +++ b/3.1.0/_modules/ibek/globals.html @@ -0,0 +1,671 @@ + + + + + + + + + + ibek.globals — ibek 3.1.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ +
+ + + + + + + + + + +
+
+
+
+
+ +
+ +
+ + + + + +
+
+ + + + + +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for ibek.globals

+"""
+A few global definitions
+"""
+
+import os
+from pathlib import Path
+
+from pydantic import BaseModel, ConfigDict
+from typer.core import TyperGroup
+
+DEFAULT_ARCH = "linux-x86_64"
+
+
+class _Globals:
+    """
+    Helper class for accessing global constants.
+
+    These constants define the paths to the various directories used by the
+    ibek commands.
+    """
+
+    def __init__(self) -> None:
+        """Initialize the global constants."""
+
+        # Can be overridden by defining an environment variable "EPICS_ROOT"
+        self._EPICS_ROOT = Path(os.getenv("EPICS_ROOT", "/epics/"))
+
+        self._DEFAULT_ARCH = "linux-x86_64"
+
+    @property
+    def EPICS_ROOT(self):
+        """Root of epics directory tree"""
+        return self._EPICS_ROOT
+
+    @property
+    def SUPPORT(self):
+        """Directory containing support module clones"""
+        return self._EPICS_ROOT / "support"
+
+    @property
+    def RELEASE(self):
+        """The global RELEASE file which lists all support modules"""
+        return self._EPICS_ROOT / "support" / "configure" / "RELEASE"
+
+    @property
+    def RUNTIME_OUTPUT(self):
+        """Directory containing runtime generated assets for IOC boot."""
+        return self._EPICS_ROOT / "runtime"
+
+    @property
+    def EPICS_TARGET_ARCH(self):
+        """The target architecture for the current container."""
+        return os.getenv("EPICS_TARGET_ARCH", self._DEFAULT_ARCH)
+
+    @property
+    def EPICS_HOST_ARCH(self):
+        """The host architecture for the current container."""
+        return os.getenv("EPICS_HOST_ARCH", self._DEFAULT_ARCH)
+
+    @property
+    def NATIVE(self):
+        """True if the target architecture is the same as the host architecture."""
+        return self.EPICS_TARGET_ARCH == self.EPICS_HOST_ARCH
+
+    @property
+    def STATIC_BUILD(self):
+        """True if the target architecture is not the default architecture."""
+        return os.getenv("STATIC_BUILD", self.EPICS_TARGET_ARCH != self._DEFAULT_ARCH)
+
+    @property
+    def IBEK_DEFS(self):
+        """Directory containing ibek support yaml files."""
+        return self._EPICS_ROOT / "ibek-defs"
+
+    @property
+    def PVI_DEFS(self):
+        """Directory containing pvi device yaml files."""
+        return self._EPICS_ROOT / "pvi-defs"
+
+    @property
+    def OPI_OUTPUT(self):
+        """Directory containing runtime generated opis to serve over http."""
+        return self._EPICS_ROOT / "opi"
+
+    @property
+    def EPICS_BASE(self):
+        """The folder containing the epics base source and binaries"""
+        return self._EPICS_ROOT / "epics-base"
+
+    @property
+    def IOC_FOLDER(self):
+        """root folder of a generic IOC source inside the container"""
+        return self._EPICS_ROOT / "ioc"
+
+    @property
+    def CONFIG_DIR_NAME(self):
+        """Name of config directory within IOC directory"""
+        return "config"
+
+    @property
+    def IOC_DIR_NAME(self):
+        """folder of the IOC source"""
+        return "ioc"
+
+    @property
+    def RELEASE_SH(self):
+        """a bash script to export the macros defined in RELEASE as environment vars"""
+        return self.SUPPORT / "configure" / "RELEASE.shell"
+
+    @property
+    def MODULES(self):
+        """global MODULES file used to determine order of build"""
+        return self.SUPPORT / "configure" / "MODULES"
+
+    @property
+    def IOC_DBDS(self):
+        """ibek-support list of declared dbds"""
+        return self.SUPPORT / "configure" / "dbd_list"
+
+    @property
+    def IOC_LIBS(self):
+        """ibek-support list of declared libs"""
+        return self.SUPPORT / "configure" / "lib_list"
+
+    @property
+    def RUNTIME_DEBS(self):
+        """ibek-support list of declared deb packages to install in runtime stage"""
+        return self.SUPPORT / "configure" / "runtime_debs"
+
+    @property
+    def RUNTIME_FILES(self):
+        """ibek-support list of files to copy to the runtime stage"""
+        return self.SUPPORT / "configure" / "runtime_files_list"
+
+
+# Folder containing templates for IOC src etc.
+TEMPLATES = Path(__file__).parent / "templates"
+
+# Path suffixes for ibek-support
+IBEK_GLOBALS = Path("_global")
+SUPPORT_YAML_PATTERN = "*ibek.support.yaml"
+PVI_YAML_PATTERN = "*pvi.device.yaml"
+
+GLOBALS = _Globals()
+
+JINJA = r".*\{\{.*\}\}.*"
+
+
+
+[docs] +class BaseSettings(BaseModel): + """A Base class for setting consistent Pydantic model configuration""" + + model_config = ConfigDict( + extra="forbid", + use_enum_values=True, + )
+ + + +class NaturalOrderGroup(TyperGroup): + def list_commands(self, ctx): + return self.commands.keys() +
+ +
+ + + + + +
+ +
+
+
+ +
+ + + + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/3.1.0/_modules/ibek/ioc.html b/3.1.0/_modules/ibek/ioc.html new file mode 100644 index 000000000..110e1af85 --- /dev/null +++ b/3.1.0/_modules/ibek/ioc.html @@ -0,0 +1,679 @@ + + + + + + + + + + ibek.ioc — ibek 3.1.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + +
+
+
+
+
+ +
+ +
+ + + + + +
+
+ + + + + +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for ibek.ioc

+"""
+Classes for generating an IocInstance derived class from a set of
+support module YAML files
+"""
+
+from __future__ import annotations
+
+import ast
+import builtins
+from enum import Enum
+from typing import Any, Dict, List, Sequence
+
+from pydantic import (
+    Field,
+    model_validator,
+)
+from pydantic.fields import FieldInfo
+
+from .entity_model import EntityModel
+from .globals import BaseSettings
+from .utils import UTILS
+
+# a global dict of all entity instances indexed by their ID
+id_to_entity: Dict[str, Entity] = {}
+
+
+def get_entity_by_id(id: str) -> Entity:
+    try:
+        return id_to_entity[id]
+    except KeyError:
+        raise ValueError(f"object {id} not found in {list(id_to_entity)}")
+
+
+
+[docs] +def clear_entity_model_ids(): + """Resets the global id_to_entity dict""" + + id_to_entity.clear()
+ + + +
+[docs] +class EnumVal(Enum): + """ + An enum that is printed as its name only + """ + + def __str__(self): + return self.name
+ + + +
+[docs] +class Entity(BaseSettings): + """ + A baseclass for all generated Entity classes. + """ + + type: str = Field(description="The type of this entity") + entity_enabled: bool = Field( + description="enable or disable this entity instance", default=True + ) + _model: EntityModel + + def _process_field(self: Entity, name: str, value: Any, typ: str): + """ + Process an Entity field - doing jinja rendering, type coercion and + object id storage/lookup as required. + """ + + if isinstance(value, str): + # Jinja expansion always performed on string fields + value = UTILS.render(self, value) + if typ in ["list", "int", "float", "bool"]: + # coerce the rendered parameter to its intended type + try: + cast_type = getattr(builtins, typ) + value = cast_type(ast.literal_eval(value)) + except: + print(f"ERROR: decoding field '{name}', value '{value}' as {typ}") + raise + + if typ == "object": + # look up the actual object by it's id + if isinstance(value, str): + value = get_entity_by_id(value) + + # If this field is not pre-existing, add it into the model instance. + # This is how pre/post_defines are added. + if name not in self.model_fields: + self.model_fields[name] = FieldInfo(annotation=str, default=value) + + # update the model instance attribute with the rendered value + setattr(self, name, value) + + if typ == "id": + # add this entity to the global id index + if value in id_to_entity: + raise ValueError(f"Duplicate id {value} in {list(id_to_entity)}") + id_to_entity[value] = self + +
+[docs] + @model_validator(mode="after") + def add_ibek_attributes(self): + """ + Whole Entity model validation + + Do jinja rendering of pre_defines/ parameters / post_defines + in the correct order. + + Also adds pre_defines and post_defines to the model instance, making + them available for the phase 2 (final) jinja rendering performed in + ibek.runtime_cmds.generate(). + """ + + if self._model.pre_defines: + for name, define in self._model.pre_defines.items(): + self._process_field(name, define.value, define.type) + + if self._model.parameters: + for name, parameter in self._model.parameters.items(): + self._process_field(name, getattr(self, name), parameter.type) + + if self._model.post_defines: + for name, define in self._model.post_defines.items(): + self._process_field(name, define.value, define.type) + + return self
+ + + def __str__(self): + """ + When a jinja template refers to an object by itself e.g. + # this is the startup entry for {{ my_entity }} + Jinja will attempt to render the object as a string and this + method will be called. + + The behaviour is to print the ID of the object. Thus we look up + which of our object's fields is the ID field and return the + value of that field. + """ + id_name = self._model._get_id_arg() + if id_name: + return getattr(self, id_name) + else: + raise ValueError(f"Entity {self} has no id field") + + def __repr__(self): + return str(self)
+ + + +
+[docs] +class IOC(BaseSettings): + """ + Used to load an IOC instance entities yaml file into a Pydantic Model. + """ + + ioc_name: str = Field(description="Name of IOC instance") + description: str = Field(description="Description of what the IOC does") + entities: List[Entity] + shared: Sequence[Any] = Field( + description="A place to create any anchors required for repeating YAML", + default=(), + )
+ +
+ +
+ + + + + +
+ +
+
+
+ +
+ + + + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/3.1.0/_modules/ibek/render.html b/3.1.0/_modules/ibek/render.html new file mode 100644 index 000000000..19c05411a --- /dev/null +++ b/3.1.0/_modules/ibek/render.html @@ -0,0 +1,673 @@ + + + + + + + + + + ibek.render — ibek 3.1.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + +
+
+
+
+
+ +
+ +
+ + + + + +
+
+ + + + + +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for ibek.render

+"""
+Functions for rendering lines in the boot script using Jinja2
+"""
+
+from typing import Callable, List, Optional, Sequence, Union
+
+from .entity_model import Comment, Script, Text, When
+from .ioc import Entity
+from .utils import UTILS
+
+
+
+[docs] +class Render: + """ + A class for generating snippets of startup script / EPICS DB + by using Jinja to combine snippet templates from support module + yaml with substitution values supplied in ioc entity yaml + """ + + def __init__(self: "Render"): + self.once_done: List[str] = [] + +
+[docs] + def render_text( + self, instance: Entity, text: str, when=When.every, suffix="" + ) -> str: + """ + Add in the next line of text, honouring the once flag which will + only add the line once per IOC. + + Jinja rendering of values/args has already been done in Entity.__post_init__ + but we pass all strings though jinja again to render any other jinja + in the IOC (e.g. database and function entries) + + once uses the name of the model + suffix to track which lines + have been rendered already. The suffix can be used where a given + Entity has more than one element to render once (e.g. functions) + """ + + if when == When.first.value: + name = instance._model.name + suffix + if name not in self.once_done: + self.once_done.append(name) + else: + return "" + elif when == When.last.value: + raise NotImplementedError("When.last not yet implemented") + + # Render Jinja entries in the text + result = UTILS.render(instance, text) # type: ignore + + if result == "": + return "" + + return result + "\n"
+ + + def render_script(self, instance: Entity, script_items: Script) -> Optional[str]: + script = "" + + for item in script_items: + if isinstance(item, Comment): + comments = "\n".join(["# " + line for line in item.value.split("\n")]) + script += self.render_text( + instance, comments, item.when, suffix="comment" + ) + elif isinstance(item, Text): + script += self.render_text( + instance, item.value, item.when, suffix="text" + ) + + return script + +
+[docs] + def render_pre_ioc_init(self, instance: Entity) -> Optional[str]: + """ + render the startup script by combining the jinja template from + an entity with the arguments from an Entity + """ + pre_init = instance._model.pre_init + return self.render_script(instance, pre_init)
+ + +
+[docs] + def render_post_ioc_init(self, instance: Entity) -> Optional[str]: + """ + render the post-iocInit entries by combining the jinja template + from an entity with the arguments from an Entity + """ + post_init = instance._model.post_init + return self.render_script(instance, post_init)
+ + +
+[docs] + def render_environment_variables(self, instance: Entity) -> Optional[str]: + """ + render the environment variable elements by combining the jinja template + from an entity with the arguments from an Entity + """ + variables = getattr(instance._model, "env_vars") + if not variables: + return None + + env_var_txt = "" + for variable in variables: + # Substitute the name and value of the environment variable from args + env_template = f"epicsEnvSet {variable.name} {variable.value}" + env_var_txt += UTILS.render( + instance, + env_template, + ) # type: ignore + return env_var_txt + "\n"
+ + +
+[docs] + def render_elements( + self, + entities: Sequence[Entity], + render_element: Callable[[Entity], Union[str, None]], + ) -> str: + """ + Render elements of a given IOC instance based on calling the correct method + """ + elements = "" + for entity in entities: + if entity.entity_enabled: + element = render_element(entity) + if element: + elements += element + return elements
+ + +
+[docs] + def render_pre_ioc_init_elements(self, entities: Sequence[Entity]) -> str: + """ + Render all of the startup script entries for a given IOC instance + """ + return self.render_elements(entities, self.render_pre_ioc_init)
+ + +
+[docs] + def render_post_ioc_init_elements(self, entities: Sequence[Entity]) -> str: + """ + Render all of the post-iocInit elements for a given IOC instance + """ + return self.render_elements(entities, self.render_post_ioc_init)
+ + +
+[docs] + def render_environment_variable_elements(self, entities: Sequence[Entity]) -> str: + """ + Render all of the environment variable entries for a given IOC instance + """ + return self.render_elements(entities, self.render_environment_variables)
+
+ +
+ +
+ + + + + +
+ +
+
+
+ +
+ + + + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/3.1.0/_modules/ibek/support.html b/3.1.0/_modules/ibek/support.html new file mode 100644 index 000000000..35c4edcfb --- /dev/null +++ b/3.1.0/_modules/ibek/support.html @@ -0,0 +1,544 @@ + + + + + + + + + + ibek.support — ibek 3.1.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + +
+
+
+
+
+ +
+ +
+ + + + + +
+
+ + + + + +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for ibek.support

+"""
+Support Class to represent a deserialized <MODULE_NAME>.ibek.support.yaml file.
+"""
+
+from __future__ import annotations
+
+import json
+from typing import Any, Sequence
+
+from pydantic import Field
+
+from .entity_model import EntityModel
+from .globals import BaseSettings
+
+
+
+[docs] +class Support(BaseSettings): + """ + Lists the EntityModels for a support module, this defines what Entities it supports + """ + + shared: Sequence[Any] = Field( + description="A place to create any anchors required for repeating YAML", + default=(), + ) + + module: str = Field(description="Support module name, normally the repo name") + entity_models: Sequence[EntityModel] = Field( + description="The Entity Models an IOC can create using this module" + ) + + @classmethod + def get_schema(cls): + return json.dumps(cls.model_json_schema(), indent=2)
+ +
+ +
+ + + + + +
+ +
+
+
+ +
+ + + + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/3.1.0/_modules/ibek/utils.html b/3.1.0/_modules/ibek/utils.html new file mode 100644 index 000000000..a09c12caf --- /dev/null +++ b/3.1.0/_modules/ibek/utils.html @@ -0,0 +1,666 @@ + + + + + + + + + + ibek.utils — ibek 3.1.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + +
+
+
+
+
+ +
+ +
+ + + + + +
+
+ + + + + +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +

Source code for ibek.utils

+"""
+A class containing utility functions for passing into the Jinja context.
+
+This allows us to provide simple functions that can be called inside
+Jinja templates with {{ _global.function_name() }}. It also allows
+us to maintain state between calls to the Jinja templates because
+we pass a single instance of this class into all Jinja contexts.
+"""
+
+import os
+from pathlib import Path
+from typing import Any, Dict, Mapping
+
+from jinja2 import StrictUndefined, Template
+
+
+
+[docs] +class Utils: + """ + A Utility class for adding functions to the Jinja context + """ + + def __init__(self: "Utils"): + self.file_name: str = "" + self.ioc_name: str = "" + self.__reset__() + + def __reset__(self: "Utils"): + """ + Reset all saved state. For use in testing where more than one + IOC is rendered in a single session + """ + self.variables: Dict[str, Any] = {} + +
+[docs] + def set_file_name(self: "Utils", file: Path): + """ + Set the ioc name based on the file name of the instance definition + """ + self.file_name = file.stem
+ + +
+[docs] + def set_ioc_name(self: "Utils", name: str): + """ + Set the ioc name based on the file name of the instance definition + """ + self.ioc_name = name
+ + +
+[docs] + def get_env(self, key: str) -> str: + """ + Get an environment variable + """ + return os.environ.get(key, "")
+ + +
+[docs] + def set(self, key: str, value: Any) -> Any: + """create a global variable for our jinja context""" + s_key = str(key) + self.variables[s_key] = value + return value
+ + +
+[docs] + def get(self, key: str, default="") -> Any: + """get the value a global variable for our jinja context""" + # default is used to set an initial value if the variable is not set + s_key = str(key) + return self.variables.get(s_key, default)
+ + +
+[docs] + def incrementor( + self, name: str, start: int = 0, increment: int = 1, stop: int | None = None + ) -> int: + """ + get a named counter that increments by inc each time it is called + + creates a new counter if it does not yet exist + """ + index = str(name) + counter = self.variables.get(index) + + if counter is None: + self.variables[index] = start + else: + if not isinstance(counter, int): + raise ValueError(f"Variable {index} is not an integer") + self.variables[index] += increment + if stop is not None and self.variables[index] > stop: + raise ValueError(f"Counter {index} exceeded maximum value of {stop}") + + return self.variables[index]
+ + +
+[docs] + def render(self, context: Any, template_text: Any) -> str: + """ + Render a Jinja template with the global _global object in the context + """ + if not isinstance(template_text, str): + # because this function is used to template arguments, it may + # be passed a non string which will always render to itself + return template_text + + try: + jinja_template = Template(template_text, undefined=StrictUndefined) + return jinja_template.render( + context, + # global context for all jinja renders + _global=self, + # put variables created with set/get directly in the context + **self.variables, + ioc_yaml_file_name=self.file_name, + ioc_name=self.ioc_name, + ) + except Exception: + print(f"ERROR RENDERING TEMPLATE:\n{template_text}") + raise
+ + +
+[docs] + def render_map(self, context: Any, map: Mapping[str, str | None]) -> dict[str, str]: + """ + Render a map of jinja templates with values from the given context. + + If given a key with a value of `None`, the key itself will be used as a template + value, so ``{"P": None}`` is equivalent to ``{"P": "{{ P }}"}``. + + Args: + context: Context to extract template variables from + map: Map of macro to jinja template to render + + """ + return { + key: self.render( + context, template if template is not None else "{{ %s }}" % key + ) + for key, template in map.items() + }
+
+ + + +# a singleton Utility object for sharing state across all Entity renders +UTILS: Utils = Utils() +
+ +
+ + + + + +
+ +
+
+
+ +
+ + + + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/3.1.0/_modules/index.html b/3.1.0/_modules/index.html new file mode 100644 index 000000000..d7f3c75d3 --- /dev/null +++ b/3.1.0/_modules/index.html @@ -0,0 +1,510 @@ + + + + + + + + + + Overview: module code — ibek 3.1.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + +
+
+
+
+
+ +
+ +
+ + + + + +
+
+ + + + + +
+ + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + + + + + + + +
+ +
+
+
+ +
+ + + + +
+
+ +
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/3.1.0/_sources/developer/explanations/decisions.rst.txt b/3.1.0/_sources/developer/explanations/decisions.rst.txt new file mode 100644 index 000000000..5841e6ea0 --- /dev/null +++ b/3.1.0/_sources/developer/explanations/decisions.rst.txt @@ -0,0 +1,17 @@ +.. This Source Code Form is subject to the terms of the Mozilla Public +.. License, v. 2.0. If a copy of the MPL was not distributed with this +.. file, You can obtain one at http://mozilla.org/MPL/2.0/. + +Architectural Decision Records +============================== + +We record major architectural decisions in Architecture Decision Records (ADRs), +as `described by Michael Nygard +`_. +Below is the list of our current ADRs. + +.. toctree:: + :maxdepth: 1 + :glob: + + decisions/* \ No newline at end of file diff --git a/3.1.0/_sources/developer/explanations/decisions/0001-record-architecture-decisions.rst.txt b/3.1.0/_sources/developer/explanations/decisions/0001-record-architecture-decisions.rst.txt new file mode 100644 index 000000000..b2d3d0fe8 --- /dev/null +++ b/3.1.0/_sources/developer/explanations/decisions/0001-record-architecture-decisions.rst.txt @@ -0,0 +1,26 @@ +1. Record architecture decisions +================================ + +Date: 2022-02-18 + +Status +------ + +Accepted + +Context +------- + +We need to record the architectural decisions made on this project. + +Decision +-------- + +We will use Architecture Decision Records, as `described by Michael Nygard +`_. + +Consequences +------------ + +See Michael Nygard's article, linked above. To create new ADRs we will copy and +paste from existing ones. diff --git a/3.1.0/_sources/developer/explanations/decisions/0002-switched-to-pip-skeleton.rst.txt b/3.1.0/_sources/developer/explanations/decisions/0002-switched-to-pip-skeleton.rst.txt new file mode 100644 index 000000000..823c68369 --- /dev/null +++ b/3.1.0/_sources/developer/explanations/decisions/0002-switched-to-pip-skeleton.rst.txt @@ -0,0 +1,35 @@ +2. Adopt ibek for project structure +=================================================== + +Date: 2022-02-18 + +Status +------ + +Accepted + +Context +------- + +We should use the following `pip-skeleton `_. +The skeleton will ensure consistency in developer +environments and package management. + +Decision +-------- + +We have switched to using the skeleton. + +Consequences +------------ + +This module will use a fixed set of tools as developed in ibek +and can pull from this skeleton to update the packaging to the latest techniques. + +As such, the developer environment may have changed, the following could be +different: + +- linting +- formatting +- pip venv setup +- CI/CD diff --git a/3.1.0/_sources/developer/explanations/entities.rst.txt b/3.1.0/_sources/developer/explanations/entities.rst.txt new file mode 100644 index 000000000..ef73b3484 --- /dev/null +++ b/3.1.0/_sources/developer/explanations/entities.rst.txt @@ -0,0 +1,267 @@ +.. _entities: + +Modules, Definitions and Entities +================================= + +This page is a top down explanation of the above key terms by referencing the +example IOC instance bl45p-mo-ioc-02 used in the system tests for this +project. + +The explanations rely on an understanding of the difference between +generic IOCs and IOC instances. See +`Generic IOCs and instances `_. + +Modules +------- + +Every generic IOC image will include a number of EPICS support modules. + +The bl45p-mo-ioc-02 ioc instance example uses the generic IOC container image +`ioc-pmac `_ . This image +contains the support modules pmac and motor plus the common support modules +from `epics-modules `_ + +Each IOC instance will mount a generic IOC image and therefore be able to make +use of the libraries and DB templates in any of those support modules. + +The goal of ibek is to allow a developer to define an instance of an IOC and +make use of functions of its support modules. + +ibek uses a **support module definition file** to determine what +features of a support module may be instantiated. + +Hence there is a collection of **support module definition files** +inside of each generic IOC. + +In the code the class GenericIoc is used to represent a generic IOC and an +instance of that class represent an IOC instance. + +Definition +---------- + +Each support module has its own **support module definition file** . This +is a YAML file whose name is by convention ``.ibek.support.yaml`` + +These will all reside in a folder called /ibek in the container +image. + +The **support module definition file** contains **Definitions** which +determine what **Entities** an IOC instance may instantiate. + +For example the pmac support module declares the following **Definitions** +in ``pmac.ibek.support.yaml`` +(currently this is limited to 3 - the full implementation would have more): + + - Geobrick + + - DlsPmacAsynIPPort + + - DlsPmacAsynMotor + +Each Definition describes a class of Entity by providing: + + - Entity class name + + - a list of arguments to supply when declaring an Entity + + - boot script entries to add for the Entity in the form of a jinja + template that may refer to the above arguments + + - database templates to instantiate for the Entity with macro values from + the above arguments + + +Expand below for the example **support module definition file**: + + .. raw:: html + +
+ objects.ibek.support.yaml + + .. include:: ../../../tests/samples/support/motorSim.ibek.support.yaml + :literal: + + .. raw:: html + +
+ +Definition is implemented in the code using a class of the same name. + + +Entity +------ + +ibek can generate an IOC instance using an +**IOC instance entity file**. This is +a YAML file with name of the form ``..yaml``. + +The **IOC instance entity file** declares the Entities that the IOC +instance requires. + +An Entity represents any piece of functionality of an IOC that is +configured through EPICS database and/or startup script. + +The classes of Entity that can be instantiated for a given generic IOC are +declared in the Definitions files described above. + +Declaring an Entity +for an IOC instance will cause ibek to generate lines in the startup script. +The generated startup script will also supply the EPICS database +entries using dbLoadRecords and database templates. + +The example motion IOC instance bl45p-mo-ioc-02 has the following entities: + + - DlsPmacAsynIPPort (one instance) + + - represents a connection to a motion controller + + - configured via + + - pmacAsynIPConfigure in the boot script + + - Geobrick (one instance) + + - represents the motion controller itself + + - configured via + + - pmacCreateController in boot script + + - pmacCreateAxes in the boot script + + - dbLoadRecords of pmacController.template and pmacStatus.template + + - DlsPmacAsynMotor (two instances) + + - represents a single motor connected to the controller + + - configured via: + + - dbLoadRecords of dls_pmac_asyn_motor.template + +The example **IOC instance entity file** is shown below along with the st.cmd +file that ibek will generate from it. + +Click the arrows to reveal the files. + + .. raw:: html + +
+ all.ibek.ioc.yaml + + .. include:: ../../../tests/samples/iocs/motorSim.ibek.ioc.yaml + :literal: + + .. raw:: html + +
+
+ st.cmd + + .. include:: ../../../tests/samples/outputs/motorSim/st.cmd + :literal: + + .. raw:: html + +
+ +Entity is implemented in the code using a class of the same name. + +Schemas +------- + +The YAML files described above are constrained by schemas. These schemas are +available to the developer and may be used to assist in generating the YAML. + +Note that the author of an IOC instance needs access to .schema.json +in order to correctly craft a correct ..yaml. For this +reason the container schema file is published as a github artifact along with +the release of the container image. All other ibek operations happen within +the container or during container development. + +Thus, the sequence of files is as follows: + +.. list-table:: Summary of ibek files sequence + :widths: 5 40 70 + :header-rows: 1 + + * - num + - Name + - Description + * - 1 + - ibek.defs.schema.json + - Global Schema for **2** + * - 2 + - .ibek.support.yaml + - Definition file for a support module. Generates part of **3** + * - 3 + - .entities.schema.json + - Schema for **4**. Generated by combining all of **2** from a container + * - 4 + - .ibek.ioc.yaml + - Description of Entities for an IOC instance. + * - 5 + - IOC Startup Script st.cmd + - Startup script for booting the IOC + +The Global Schema and example IOC instance schema are below: + + .. raw:: html + +
+ ibek.support.schema.json + + .. include:: ../../../tests/samples/schemas/ibek.support.schema.json + :literal: + + .. raw:: html + +
+
+ multiple.ibek.ioc.schema.json + + .. include:: ../../../tests/samples/schemas/single.ibek.ioc.schema.json + :literal: + + .. raw:: html + +
+ +This results in the overall generated file structure: + +.. raw:: html + :file: ../../images/ibek-arch.svg + +Commands +-------- + +The ibek commands to progress through the file sequence above are as follows + + +.. list-table:: Summary of ibek stages + :widths: 5 40 70 + :header-rows: 1 + + * - num + - Name + - Command + * - 1 + - ``ibek.defs.schema.json`` + - ``ibek ibek-schema`` + * - 2 + - ``.ibek.support.yaml`` + - Hand crafted by the container developer. Held in the container. + * - 3 + - ``.ibek.entities.schema.json`` + - ``ibek ioc-schema ...`` run at container build time. ``...`` + == all ``.ibek.support.yaml`` within the container. + * - 4 + - ``.ibek.ioc.yaml`` + - Hand crafted at IOC instance design time + * - 5 + - IOC startup script + - ``ibek build-startup .ibek.ioc.yaml ...``. Run at IOC startup time in the + container. ``...`` == all ``.ibek.support.yaml`` within the container. + + + diff --git a/3.1.0/_sources/developer/how-to/build-docs.rst.txt b/3.1.0/_sources/developer/how-to/build-docs.rst.txt new file mode 100644 index 000000000..11a5e6386 --- /dev/null +++ b/3.1.0/_sources/developer/how-to/build-docs.rst.txt @@ -0,0 +1,38 @@ +Build the docs using sphinx +=========================== + +You can build the `sphinx`_ based docs from the project directory by running:: + + $ tox -e docs + +This will build the static docs on the ``docs`` directory, which includes API +docs that pull in docstrings from the code. + +.. seealso:: + + `documentation_standards` + +The docs will be built into the ``build/html`` directory, and can be opened +locally with a web browser:: + + $ firefox build/html/index.html + +Autobuild +--------- + +You can also run an autobuild process, which will watch your ``docs`` +directory for changes and rebuild whenever it sees changes, reloading any +browsers watching the pages:: + + $ tox -e docs autobuild + +You can view the pages at localhost:: + + $ firefox http://localhost:8000 + +If you are making changes to source code too, you can tell it to watch +changes in this directory too:: + + $ tox -e docs autobuild -- --watch src + +.. _sphinx: https://www.sphinx-doc.org/ diff --git a/3.1.0/_sources/developer/how-to/contribute.rst.txt b/3.1.0/_sources/developer/how-to/contribute.rst.txt new file mode 100644 index 000000000..65b992f08 --- /dev/null +++ b/3.1.0/_sources/developer/how-to/contribute.rst.txt @@ -0,0 +1 @@ +.. include:: ../../../.github/CONTRIBUTING.rst diff --git a/3.1.0/_sources/developer/how-to/lint.rst.txt b/3.1.0/_sources/developer/how-to/lint.rst.txt new file mode 100644 index 000000000..2df258d8f --- /dev/null +++ b/3.1.0/_sources/developer/how-to/lint.rst.txt @@ -0,0 +1,39 @@ +Run linting using pre-commit +============================ + +Code linting is handled by black_ and ruff_ run under pre-commit_. + +Running pre-commit +------------------ + +You can run the above checks on all files with this command:: + + $ tox -e pre-commit + +Or you can install a pre-commit hook that will run each time you do a ``git +commit`` on just the files that have changed:: + + $ pre-commit install + +It is also possible to `automatically enable pre-commit on cloned repositories `_. +This will result in pre-commits being enabled on every repo your user clones from now on. + +Fixing issues +------------- + +If black reports an issue you can tell it to reformat all the files in the +repository:: + + $ black . + +Likewise with ruff:: + + $ ruff --fix . + +Ruff may not be able to automatically fix all issues; in this case, you will have to fix those manually. + +VSCode support +-------------- + +The ``.vscode/settings.json`` will run black formatting as well as +ruff checking on save. Issues will be highlighted in the editor window. diff --git a/3.1.0/_sources/developer/how-to/make-release.rst.txt b/3.1.0/_sources/developer/how-to/make-release.rst.txt new file mode 100644 index 000000000..1449a6143 --- /dev/null +++ b/3.1.0/_sources/developer/how-to/make-release.rst.txt @@ -0,0 +1,16 @@ +Make a release +============== + +To make a new release, please follow this checklist: + +- Choose a new PEP440 compliant release number (see https://peps.python.org/pep-0440/) +- Go to the GitHub release_ page +- Choose ``Draft New Release`` +- Click ``Choose Tag`` and supply the new tag you chose (click create new tag) +- Click ``Generate release notes``, review and edit these notes +- Choose a title and click ``Publish Release`` + +Note that tagging and pushing to the change_linter_to_ruff branch has the same effect except that +you will not get the option to edit the release notes. + +.. _release: https://github.com/epics-containers/ibek/releases diff --git a/3.1.0/_sources/developer/how-to/pin-requirements.rst.txt b/3.1.0/_sources/developer/how-to/pin-requirements.rst.txt new file mode 100644 index 000000000..91ed5535d --- /dev/null +++ b/3.1.0/_sources/developer/how-to/pin-requirements.rst.txt @@ -0,0 +1,74 @@ +Pinning Requirements +==================== + +Introduction +------------ + +By design this project only defines dependencies in one place, i.e. in +the ``requires`` table in ``pyproject.toml``. + +In the ``requires`` table it is possible to pin versions of some dependencies +as needed. For library projects it is best to leave pinning to a minimum so +that your library can be used by the widest range of applications. + +When CI builds the project it will use the latest compatible set of +dependencies available (after applying your pins and any dependencies' pins). + +This approach means that there is a possibility that a future build may +break because an updated release of a dependency has made a breaking change. + +The correct way to fix such an issue is to work out the minimum pinning in +``requires`` that will resolve the problem. However this can be quite hard to +do and may be time consuming when simply trying to release a minor update. + +For this reason we provide a mechanism for locking all dependencies to +the same version as a previous successful release. This is a quick fix that +should guarantee a successful CI build. + +Finding the lock files +---------------------- + +Every release of the project will have a set of requirements files published +as release assets. + +For example take a look at the release page for python3-pip-skeleton-cli here: +https://github.com/DiamondLightSource/python3-pip-skeleton-cli/releases/tag/3.3.0 + +There is a list of requirements*.txt files showing as assets on the release. + +There is one file for each time the CI installed the project into a virtual +environment. There are multiple of these as the CI creates a number of +different environments. + +The files are created using ``pip freeze`` and will contain a full list +of the dependencies and sub-dependencies with pinned versions. + +You can download any of these files by clicking on them. It is best to use +the one that ran with the lowest Python version as this is more likely to +be compatible with all the versions of Python in the test matrix. +i.e. ``requirements-test-ubuntu-latest-3.10.txt`` in this example. + +Applying the lock file +---------------------- + +To apply a lockfile: + +- copy the requirements file you have downloaded to the root of your + repository +- rename it to requirements.txt +- commit it into the repo +- push the changes + +The CI looks for a requirements.txt in the root and will pass it to pip +when installing each of the test environments. pip will then install exactly +the same set of packages as the previous release. + +Removing dependency locking from CI +----------------------------------- + +Once the reasons for locking the build have been resolved it is a good idea +to go back to an unlocked build. This is because you get an early indication +of any incoming problems. + +To restore unlocked builds in CI simply remove requirements.txt from the root +of the repo and push. diff --git a/3.1.0/_sources/developer/how-to/run-tests.rst.txt b/3.1.0/_sources/developer/how-to/run-tests.rst.txt new file mode 100644 index 000000000..d2e03644c --- /dev/null +++ b/3.1.0/_sources/developer/how-to/run-tests.rst.txt @@ -0,0 +1,12 @@ +Run the tests using pytest +========================== + +Testing is done with pytest_. It will find functions in the project that `look +like tests`_, and run them to check for errors. You can run it with:: + + $ tox -e pytest + +It will also report coverage to the commandline and to ``cov.xml``. + +.. _pytest: https://pytest.org/ +.. _look like tests: https://docs.pytest.org/explanation/goodpractices.html#test-discovery diff --git a/3.1.0/_sources/developer/how-to/static-analysis.rst.txt b/3.1.0/_sources/developer/how-to/static-analysis.rst.txt new file mode 100644 index 000000000..065920e1c --- /dev/null +++ b/3.1.0/_sources/developer/how-to/static-analysis.rst.txt @@ -0,0 +1,8 @@ +Run static analysis using mypy +============================== + +Static type analysis is done with mypy_. It checks type definition in source +files without running them, and highlights potential issues where types do not +match. You can run it with:: + + $ tox -e mypy diff --git a/3.1.0/_sources/developer/how-to/test-container.rst.txt b/3.1.0/_sources/developer/how-to/test-container.rst.txt new file mode 100644 index 000000000..a4a43a6ff --- /dev/null +++ b/3.1.0/_sources/developer/how-to/test-container.rst.txt @@ -0,0 +1,25 @@ +Container Local Build and Test +============================== + +CI builds a runtime container for the project. The local tests +checks available via ``tox -p`` do not verify this because not +all developers will have docker installed locally. + +If CI is failing to build the container, then it is best to fix and +test the problem locally. This would require that you have docker +or podman installed on your local workstation. + +In the following examples the command ``docker`` is interchangeable with +``podman`` depending on which container cli you have installed. + +To build the container and call it ``test``:: + + cd + docker build -t test . + +To verify that the container runs:: + + docker run -it test --help + +You can pass any other command line parameters to your application +instead of --help. diff --git a/3.1.0/_sources/developer/how-to/update-tools.rst.txt b/3.1.0/_sources/developer/how-to/update-tools.rst.txt new file mode 100644 index 000000000..c1075ee8c --- /dev/null +++ b/3.1.0/_sources/developer/how-to/update-tools.rst.txt @@ -0,0 +1,16 @@ +Update the tools +================ + +This module is merged with the python3-pip-skeleton_. This is a generic +Python project structure which provides a means to keep tools and +techniques in sync between multiple Python projects. To update to the +latest version of the skeleton, run:: + + $ git pull --rebase=false https://github.com/DiamondLightSource/python3-pip-skeleton + +Any merge conflicts will indicate an area where something has changed that +conflicts with the setup of the current module. Check the `closed pull requests +`_ +of the skeleton module for more details. + +.. _python3-pip-skeleton: https://DiamondLightSource.github.io/python3-pip-skeleton diff --git a/3.1.0/_sources/developer/index.rst.txt b/3.1.0/_sources/developer/index.rst.txt new file mode 100644 index 000000000..2a8ff249f --- /dev/null +++ b/3.1.0/_sources/developer/index.rst.txt @@ -0,0 +1,65 @@ +Developer Guide +=============== + +Documentation is split into four categories, also accessible from links in the +side-bar. + +.. grid:: 2 + :gutter: 4 + + .. grid-item-card:: :material-regular:`directions_run;3em` + + .. toctree:: + :caption: Tutorials + :maxdepth: 1 + + tutorials/dev-install + + +++ + + Tutorials for getting up and running as a developer. + + .. grid-item-card:: :material-regular:`task;3em` + + .. toctree:: + :caption: How-to Guides + :maxdepth: 1 + + how-to/contribute + how-to/build-docs + how-to/run-tests + how-to/static-analysis + how-to/lint + how-to/update-tools + how-to/make-release + how-to/pin-requirements + how-to/test-container + + +++ + + Practical step-by-step guides for day-to-day dev tasks. + + .. grid-item-card:: :material-regular:`apartment;3em` + + .. toctree:: + :caption: Explanations + :maxdepth: 1 + + explanations/decisions + explanations/entities + + +++ + + Explanations of how and why the architecture is why it is. + + .. grid-item-card:: :material-regular:`description;3em` + + .. toctree:: + :caption: Reference + :maxdepth: 1 + + reference/standards + + +++ + + Technical reference material on standards in use. diff --git a/3.1.0/_sources/developer/reference/standards.rst.txt b/3.1.0/_sources/developer/reference/standards.rst.txt new file mode 100644 index 000000000..5a1fd4782 --- /dev/null +++ b/3.1.0/_sources/developer/reference/standards.rst.txt @@ -0,0 +1,63 @@ +Standards +========= + +This document defines the code and documentation standards used in this +repository. + +Code Standards +-------------- + +The code in this repository conforms to standards set by the following tools: + +- black_ for code formatting +- ruff_ for style checks +- mypy_ for static type checking + +.. seealso:: + + How-to guides `../how-to/lint` and `../how-to/static-analysis` + +.. _documentation_standards: + +Documentation Standards +----------------------- + +Docstrings are pre-processed using the Sphinx Napoleon extension. As such, +google-style_ is considered as standard for this repository. Please use type +hints in the function signature for types. For example: + +.. code:: python + + def func(arg1: str, arg2: int) -> bool: + """Summary line. + + Extended description of function. + + Args: + arg1: Description of arg1 + arg2: Description of arg2 + + Returns: + Description of return value + """ + return True + +.. _google-style: https://sphinxcontrib-napoleon.readthedocs.io/en/latest/index.html#google-vs-numpy + +Documentation is contained in the ``docs`` directory and extracted from +docstrings of the API. + +Docs follow the underlining convention:: + + Headling 1 (page title) + ======================= + + Heading 2 + --------- + + Heading 3 + ~~~~~~~~~ + +.. seealso:: + + How-to guide `../how-to/build-docs` diff --git a/3.1.0/_sources/developer/tutorials/dev-install.rst.txt b/3.1.0/_sources/developer/tutorials/dev-install.rst.txt new file mode 100644 index 000000000..68598036f --- /dev/null +++ b/3.1.0/_sources/developer/tutorials/dev-install.rst.txt @@ -0,0 +1,68 @@ +Developer install +================= + +These instructions will take you through the minimal steps required to get a dev +environment setup, so you can run the tests locally. + +Clone the repository +-------------------- + +First clone the repository locally using `Git +`_:: + + $ git clone git://github.com/epics-containers/ibek.git + +Install dependencies +-------------------- + +You can choose to either develop on the host machine using a `venv` (which +requires python 3.10 or later) or to run in a container under `VSCode +`_ + +.. tab-set:: + + .. tab-item:: Local virtualenv + + .. code:: + + $ cd ibek + $ python3 -m venv venv + $ source venv/bin/activate + $ pip install -e '.[dev]' + + .. tab-item:: VSCode devcontainer + + .. code:: + + $ code ibek + # Click on 'Reopen in Container' when prompted + # Open a new terminal + + .. note:: + + See the epics-containers_ documentation for more complex + use cases, such as integration with podman. + +See what was installed +---------------------- + +To see a graph of the python package dependency tree type:: + + $ pipdeptree + +Build and test +-------------- + +Now you have a development environment you can run the tests in a terminal:: + + $ tox -p + +This will run in parallel the following checks: + +- `../how-to/build-docs` +- `../how-to/run-tests` +- `../how-to/static-analysis` +- `../how-to/lint` + + +.. _epics-containers: https://epics-containers.github.io/change_linter_to_ruff/user/tutorials/devcontainer.html diff --git a/3.1.0/_sources/genindex.rst.txt b/3.1.0/_sources/genindex.rst.txt new file mode 100644 index 000000000..93eb8b294 --- /dev/null +++ b/3.1.0/_sources/genindex.rst.txt @@ -0,0 +1,5 @@ +API Index +========= + +.. + https://stackoverflow.com/a/42310803 diff --git a/3.1.0/_sources/index.rst.txt b/3.1.0/_sources/index.rst.txt new file mode 100644 index 000000000..f23dd4fa1 --- /dev/null +++ b/3.1.0/_sources/index.rst.txt @@ -0,0 +1,29 @@ +:html_theme.sidebar_secondary.remove: + +.. include:: ../README.rst + :end-before: when included in index.rst + +How the documentation is structured +----------------------------------- + +The documentation is split into 2 sections: + +.. grid:: 2 + + .. grid-item-card:: :material-regular:`person;4em` + :link: user/index + :link-type: doc + + The User Guide contains documentation on how to install and use ibek. + + .. grid-item-card:: :material-regular:`code;4em` + :link: developer/index + :link-type: doc + + The Developer Guide contains documentation on how to develop and contribute changes back to ibek. + +.. toctree:: + :hidden: + + user/index + developer/index diff --git a/3.1.0/_sources/user/explanations/docs-structure.rst.txt b/3.1.0/_sources/user/explanations/docs-structure.rst.txt new file mode 100644 index 000000000..f25a09baa --- /dev/null +++ b/3.1.0/_sources/user/explanations/docs-structure.rst.txt @@ -0,0 +1,18 @@ +About the documentation +----------------------- + + :material-regular:`format_quote;2em` + + The Grand Unified Theory of Documentation + + -- David Laing + +There is a secret that needs to be understood in order to write good software +documentation: there isn't one thing called *documentation*, there are four. + +They are: *tutorials*, *how-to guides*, *technical reference* and *explanation*. +They represent four different purposes or functions, and require four different +approaches to their creation. Understanding the implications of this will help +improve most documentation - often immensely. + +`More information on this topic. `_ diff --git a/3.1.0/_sources/user/how-to/edit-yaml.rst.txt b/3.1.0/_sources/user/how-to/edit-yaml.rst.txt new file mode 100644 index 000000000..837db6da4 --- /dev/null +++ b/3.1.0/_sources/user/how-to/edit-yaml.rst.txt @@ -0,0 +1,7 @@ +YAML schema +=========== + +This is a useful discussion on yaml/json schema including how to enable +schema validated editing of yaml files in vscode. + +https://dev.to/brpaz/how-to-create-your-own-auto-completion-for-json-and-yaml-files-on-vs-code-with-the-help-of-json-schema-k1i diff --git a/3.1.0/_sources/user/how-to/run-container.rst.txt b/3.1.0/_sources/user/how-to/run-container.rst.txt new file mode 100644 index 000000000..3bad9811c --- /dev/null +++ b/3.1.0/_sources/user/how-to/run-container.rst.txt @@ -0,0 +1,15 @@ +Run in a container +================== + +Pre-built containers with ibek and its dependencies already +installed are available on `Github Container Registry +`_. + +Starting the container +---------------------- + +To pull the container from github container registry and run:: + + $ docker run ghcr.io/epics-containers/ibek:main --version + +To get a released version, use a numbered release instead of ``change_linter_to_ruff``. diff --git a/3.1.0/_sources/user/index.rst.txt b/3.1.0/_sources/user/index.rst.txt new file mode 100644 index 000000000..d48d3f6db --- /dev/null +++ b/3.1.0/_sources/user/index.rst.txt @@ -0,0 +1,59 @@ +User Guide +========== + +Documentation is split into four categories, also accessible from links in the +side-bar. + +.. grid:: 2 + :gutter: 4 + + .. grid-item-card:: :material-regular:`directions_walk;3em` + + .. toctree:: + :caption: Tutorials + :maxdepth: 1 + + tutorials/installation + + +++ + + Tutorials for installation and typical usage. New users start here. + + .. grid-item-card:: :material-regular:`directions;3em` + + .. toctree:: + :caption: How-to Guides + :maxdepth: 1 + + how-to/edit-yaml + how-to/run-container + + +++ + + Practical step-by-step guides for the more experienced user. + + .. grid-item-card:: :material-regular:`info;3em` + + .. toctree:: + :caption: Explanations + :maxdepth: 1 + + explanations/docs-structure + + +++ + + Explanations of how the library works and why it works that way. + + .. grid-item-card:: :material-regular:`menu_book;3em` + + .. toctree:: + :caption: Reference + :maxdepth: 1 + + reference/naming + reference/api + ../genindex + + +++ + + Technical reference material including APIs and release notes. diff --git a/3.1.0/_sources/user/reference/api.rst.txt b/3.1.0/_sources/user/reference/api.rst.txt new file mode 100644 index 000000000..948e3d82a --- /dev/null +++ b/3.1.0/_sources/user/reference/api.rst.txt @@ -0,0 +1,50 @@ +API +=== + +This is the internal API reference for ibek + + +.. automodule ibek + +``ibek`` +~~~~~~~~ + +.. data:: ibek.__version__ + :type: str + + Version number as calculated by https://github.com/pypa/setuptools_scm + +``ibek.globals`` +---------------- + +.. automodule:: ibek.globals + :members: + +``ibek.support`` +---------------- + +.. automodule:: ibek.support + :members: + +``ibek.ioc`` +------------------ + +.. automodule:: ibek.ioc + :members: + + +``ibek.render`` +--------------- + +.. automodule:: ibek.render + :members: + +``ibek.utils`` +--------------- + +.. automodule:: ibek.utils + :members: + +.. class:: apischema.types.UndefinedType + + A sentinel value that allows detection that a value has not been passed at init diff --git a/3.1.0/_sources/user/reference/naming.rst.txt b/3.1.0/_sources/user/reference/naming.rst.txt new file mode 100644 index 000000000..0c9384560 --- /dev/null +++ b/3.1.0/_sources/user/reference/naming.rst.txt @@ -0,0 +1,90 @@ +Support YAML Conventions +======================== + +TODO: Create a linter that checks for these conventions +TODO: split out ibek-defs and ibek-defs-dls for internal support modules. + +IBEK Support YAML defines what Entities can be instantiated +by IOC instances. +There will be one of these YAML files per support module. +These files should adhere to the following naming conventions. + +Filename +-------- + +The filename is always *SupportModule*.ibek.support.yaml, where +*SupportModule* is the name of the support module as named in its git +repository. + +The file should be stored in the ibek-defs repository in a folder with +name *SupportModule*. These folders should be located in the root of the +repository. + +*SupportModule* should use the same case as the git repo. + +e.g. + +.. code-block:: text + + ADCore/ADCore.ibek.support.yaml + pmac/pmac.ibek.support.yaml + aravisGigE/aravisGigE.ibek.support.yaml + +Module +------ + +Every YAML file will start by declaring the module name using ``module:``. +This should typically +be the same as the filename prefix. However if the filename prefix is not a +a legal python name it can be adjusted to make it legal. This would usually +mean replacing '-' with '_'. + +.. code-block:: text + + ADCore + pmac + aravisGigE + +Definitions +----------- + +All definitions have a ``name:`` field. This should be UpperCamelCase as it +represents a class in Python. + +Args +---- + +Every Arg also has a name and these should be snake_case as they represent +class properties in Python. + +HOWEVER: where these arguments refer to a database template macro, the original +name should be used. This means that no changes are required in the templates +in order to support the include_args feature. + +ADDITIONAL: because the above caveat breaks the naming convention. We will +maintain the historical naming from builder.py where support module has this +historical support. + +SUMMARY: only new modules will use the snake_case naming convention. Others +will use the historical adhoc naming conventions. + +Functions +--------- + +Function Arguments should be in UpperCamelCase. Function names must be as +per the function name you are calling in iocShell startup. + +e.g. + +.. code-block:: yaml + + script: + - type: function + name: pscAddIpModule + header: | + # Add IP module + args: + CarrierId: $({{ carrier.name }}) + IpSiteNumber: "{{ ip_site_number }}" + Vector: "$({{ interrupt_vector.name }})" + Links: "{{ links }}" diff --git a/3.1.0/_sources/user/tutorials/installation.rst.txt b/3.1.0/_sources/user/tutorials/installation.rst.txt new file mode 100644 index 000000000..1aaf79055 --- /dev/null +++ b/3.1.0/_sources/user/tutorials/installation.rst.txt @@ -0,0 +1,44 @@ +Installation +============ + +Check your version of python +---------------------------- + +You will need python 3.10 or later. You can check your version of python by +typing into a terminal:: + + $ python3 --version + +Create a virtual environment +---------------------------- + +It is recommended that you install into a “virtual environment” so this +installation will not interfere with any existing Python software:: + + $ python3 -m venv /path/to/venv + $ source /path/to/venv/bin/activate + + +Installing the library +---------------------- + +You can now use ``pip`` to install the library and its dependencies:: + + python3 -m pip install ibek + +If you require a feature that is not currently released you can also install +from github:: + + python3 -m pip install git+https://github.com/epics-containers/ibek.git + +The library should now be installed and the commandline interface on your path. +You can check the version that has been installed by typing:: + + ibek --version + +Running in a container +---------------------- + +To pull the container from github container registry and run:: + + docker run ghcr.io/epics-containers/ibek:main --version diff --git a/3.1.0/_sphinx_design_static/design-tabs.js b/3.1.0/_sphinx_design_static/design-tabs.js new file mode 100644 index 000000000..b25bd6a4f --- /dev/null +++ b/3.1.0/_sphinx_design_static/design-tabs.js @@ -0,0 +1,101 @@ +// @ts-check + +// Extra JS capability for selected tabs to be synced +// The selection is stored in local storage so that it persists across page loads. + +/** + * @type {Record} + */ +let sd_id_to_elements = {}; +const storageKeyPrefix = "sphinx-design-tab-id-"; + +/** + * Create a key for a tab element. + * @param {HTMLElement} el - The tab element. + * @returns {[string, string, string] | null} - The key. + * + */ +function create_key(el) { + let syncId = el.getAttribute("data-sync-id"); + let syncGroup = el.getAttribute("data-sync-group"); + if (!syncId || !syncGroup) return null; + return [syncGroup, syncId, syncGroup + "--" + syncId]; +} + +/** + * Initialize the tab selection. + * + */ +function ready() { + // Find all tabs with sync data + + /** @type {string[]} */ + let groups = []; + + document.querySelectorAll(".sd-tab-label").forEach((label) => { + if (label instanceof HTMLElement) { + let data = create_key(label); + if (data) { + let [group, id, key] = data; + + // add click event listener + // @ts-ignore + label.onclick = onSDLabelClick; + + // store map of key to elements + if (!sd_id_to_elements[key]) { + sd_id_to_elements[key] = []; + } + sd_id_to_elements[key].push(label); + + if (groups.indexOf(group) === -1) { + groups.push(group); + // Check if a specific tab has been selected via URL parameter + const tabParam = new URLSearchParams(window.location.search).get( + group + ); + if (tabParam) { + console.log( + "sphinx-design: Selecting tab id for group '" + + group + + "' from URL parameter: " + + tabParam + ); + window.sessionStorage.setItem(storageKeyPrefix + group, tabParam); + } + } + + // Check is a specific tab has been selected previously + let previousId = window.sessionStorage.getItem( + storageKeyPrefix + group + ); + if (previousId === id) { + // console.log( + // "sphinx-design: Selecting tab from session storage: " + id + // ); + // @ts-ignore + label.previousElementSibling.checked = true; + } + } + } + }); +} + +/** + * Activate other tabs with the same sync id. + * + * @this {HTMLElement} - The element that was clicked. + */ +function onSDLabelClick() { + let data = create_key(this); + if (!data) return; + let [group, id, key] = data; + for (const label of sd_id_to_elements[key]) { + if (label === this) continue; + // @ts-ignore + label.previousElementSibling.checked = true; + } + window.sessionStorage.setItem(storageKeyPrefix + group, id); +} + +document.addEventListener("DOMContentLoaded", ready, false); diff --git a/3.1.0/_sphinx_design_static/sphinx-design.min.css b/3.1.0/_sphinx_design_static/sphinx-design.min.css new file mode 100644 index 000000000..860c36da0 --- /dev/null +++ b/3.1.0/_sphinx_design_static/sphinx-design.min.css @@ -0,0 +1 @@ +.sd-bg-primary{background-color:var(--sd-color-primary) !important}.sd-bg-text-primary{color:var(--sd-color-primary-text) !important}button.sd-bg-primary:focus,button.sd-bg-primary:hover{background-color:var(--sd-color-primary-highlight) !important}a.sd-bg-primary:focus,a.sd-bg-primary:hover{background-color:var(--sd-color-primary-highlight) !important}.sd-bg-secondary{background-color:var(--sd-color-secondary) !important}.sd-bg-text-secondary{color:var(--sd-color-secondary-text) !important}button.sd-bg-secondary:focus,button.sd-bg-secondary:hover{background-color:var(--sd-color-secondary-highlight) !important}a.sd-bg-secondary:focus,a.sd-bg-secondary:hover{background-color:var(--sd-color-secondary-highlight) !important}.sd-bg-success{background-color:var(--sd-color-success) !important}.sd-bg-text-success{color:var(--sd-color-success-text) !important}button.sd-bg-success:focus,button.sd-bg-success:hover{background-color:var(--sd-color-success-highlight) !important}a.sd-bg-success:focus,a.sd-bg-success:hover{background-color:var(--sd-color-success-highlight) !important}.sd-bg-info{background-color:var(--sd-color-info) !important}.sd-bg-text-info{color:var(--sd-color-info-text) !important}button.sd-bg-info:focus,button.sd-bg-info:hover{background-color:var(--sd-color-info-highlight) !important}a.sd-bg-info:focus,a.sd-bg-info:hover{background-color:var(--sd-color-info-highlight) !important}.sd-bg-warning{background-color:var(--sd-color-warning) !important}.sd-bg-text-warning{color:var(--sd-color-warning-text) !important}button.sd-bg-warning:focus,button.sd-bg-warning:hover{background-color:var(--sd-color-warning-highlight) !important}a.sd-bg-warning:focus,a.sd-bg-warning:hover{background-color:var(--sd-color-warning-highlight) !important}.sd-bg-danger{background-color:var(--sd-color-danger) !important}.sd-bg-text-danger{color:var(--sd-color-danger-text) !important}button.sd-bg-danger:focus,button.sd-bg-danger:hover{background-color:var(--sd-color-danger-highlight) !important}a.sd-bg-danger:focus,a.sd-bg-danger:hover{background-color:var(--sd-color-danger-highlight) !important}.sd-bg-light{background-color:var(--sd-color-light) !important}.sd-bg-text-light{color:var(--sd-color-light-text) !important}button.sd-bg-light:focus,button.sd-bg-light:hover{background-color:var(--sd-color-light-highlight) !important}a.sd-bg-light:focus,a.sd-bg-light:hover{background-color:var(--sd-color-light-highlight) !important}.sd-bg-muted{background-color:var(--sd-color-muted) !important}.sd-bg-text-muted{color:var(--sd-color-muted-text) !important}button.sd-bg-muted:focus,button.sd-bg-muted:hover{background-color:var(--sd-color-muted-highlight) !important}a.sd-bg-muted:focus,a.sd-bg-muted:hover{background-color:var(--sd-color-muted-highlight) !important}.sd-bg-dark{background-color:var(--sd-color-dark) !important}.sd-bg-text-dark{color:var(--sd-color-dark-text) !important}button.sd-bg-dark:focus,button.sd-bg-dark:hover{background-color:var(--sd-color-dark-highlight) !important}a.sd-bg-dark:focus,a.sd-bg-dark:hover{background-color:var(--sd-color-dark-highlight) !important}.sd-bg-black{background-color:var(--sd-color-black) !important}.sd-bg-text-black{color:var(--sd-color-black-text) !important}button.sd-bg-black:focus,button.sd-bg-black:hover{background-color:var(--sd-color-black-highlight) !important}a.sd-bg-black:focus,a.sd-bg-black:hover{background-color:var(--sd-color-black-highlight) !important}.sd-bg-white{background-color:var(--sd-color-white) !important}.sd-bg-text-white{color:var(--sd-color-white-text) !important}button.sd-bg-white:focus,button.sd-bg-white:hover{background-color:var(--sd-color-white-highlight) !important}a.sd-bg-white:focus,a.sd-bg-white:hover{background-color:var(--sd-color-white-highlight) !important}.sd-text-primary,.sd-text-primary>p{color:var(--sd-color-primary) !important}a.sd-text-primary:focus,a.sd-text-primary:hover{color:var(--sd-color-primary-highlight) !important}.sd-text-secondary,.sd-text-secondary>p{color:var(--sd-color-secondary) !important}a.sd-text-secondary:focus,a.sd-text-secondary:hover{color:var(--sd-color-secondary-highlight) !important}.sd-text-success,.sd-text-success>p{color:var(--sd-color-success) !important}a.sd-text-success:focus,a.sd-text-success:hover{color:var(--sd-color-success-highlight) !important}.sd-text-info,.sd-text-info>p{color:var(--sd-color-info) !important}a.sd-text-info:focus,a.sd-text-info:hover{color:var(--sd-color-info-highlight) !important}.sd-text-warning,.sd-text-warning>p{color:var(--sd-color-warning) !important}a.sd-text-warning:focus,a.sd-text-warning:hover{color:var(--sd-color-warning-highlight) !important}.sd-text-danger,.sd-text-danger>p{color:var(--sd-color-danger) !important}a.sd-text-danger:focus,a.sd-text-danger:hover{color:var(--sd-color-danger-highlight) !important}.sd-text-light,.sd-text-light>p{color:var(--sd-color-light) !important}a.sd-text-light:focus,a.sd-text-light:hover{color:var(--sd-color-light-highlight) !important}.sd-text-muted,.sd-text-muted>p{color:var(--sd-color-muted) !important}a.sd-text-muted:focus,a.sd-text-muted:hover{color:var(--sd-color-muted-highlight) !important}.sd-text-dark,.sd-text-dark>p{color:var(--sd-color-dark) !important}a.sd-text-dark:focus,a.sd-text-dark:hover{color:var(--sd-color-dark-highlight) !important}.sd-text-black,.sd-text-black>p{color:var(--sd-color-black) !important}a.sd-text-black:focus,a.sd-text-black:hover{color:var(--sd-color-black-highlight) !important}.sd-text-white,.sd-text-white>p{color:var(--sd-color-white) !important}a.sd-text-white:focus,a.sd-text-white:hover{color:var(--sd-color-white-highlight) !important}.sd-outline-primary{border-color:var(--sd-color-primary) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-primary:focus,a.sd-outline-primary:hover{border-color:var(--sd-color-primary-highlight) !important}.sd-outline-secondary{border-color:var(--sd-color-secondary) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-secondary:focus,a.sd-outline-secondary:hover{border-color:var(--sd-color-secondary-highlight) !important}.sd-outline-success{border-color:var(--sd-color-success) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-success:focus,a.sd-outline-success:hover{border-color:var(--sd-color-success-highlight) !important}.sd-outline-info{border-color:var(--sd-color-info) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-info:focus,a.sd-outline-info:hover{border-color:var(--sd-color-info-highlight) !important}.sd-outline-warning{border-color:var(--sd-color-warning) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-warning:focus,a.sd-outline-warning:hover{border-color:var(--sd-color-warning-highlight) !important}.sd-outline-danger{border-color:var(--sd-color-danger) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-danger:focus,a.sd-outline-danger:hover{border-color:var(--sd-color-danger-highlight) !important}.sd-outline-light{border-color:var(--sd-color-light) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-light:focus,a.sd-outline-light:hover{border-color:var(--sd-color-light-highlight) !important}.sd-outline-muted{border-color:var(--sd-color-muted) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-muted:focus,a.sd-outline-muted:hover{border-color:var(--sd-color-muted-highlight) !important}.sd-outline-dark{border-color:var(--sd-color-dark) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-dark:focus,a.sd-outline-dark:hover{border-color:var(--sd-color-dark-highlight) !important}.sd-outline-black{border-color:var(--sd-color-black) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-black:focus,a.sd-outline-black:hover{border-color:var(--sd-color-black-highlight) !important}.sd-outline-white{border-color:var(--sd-color-white) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-white:focus,a.sd-outline-white:hover{border-color:var(--sd-color-white-highlight) !important}.sd-bg-transparent{background-color:transparent !important}.sd-outline-transparent{border-color:transparent !important}.sd-text-transparent{color:transparent !important}.sd-p-0{padding:0 !important}.sd-pt-0,.sd-py-0{padding-top:0 !important}.sd-pr-0,.sd-px-0{padding-right:0 !important}.sd-pb-0,.sd-py-0{padding-bottom:0 !important}.sd-pl-0,.sd-px-0{padding-left:0 !important}.sd-p-1{padding:.25rem !important}.sd-pt-1,.sd-py-1{padding-top:.25rem !important}.sd-pr-1,.sd-px-1{padding-right:.25rem !important}.sd-pb-1,.sd-py-1{padding-bottom:.25rem !important}.sd-pl-1,.sd-px-1{padding-left:.25rem !important}.sd-p-2{padding:.5rem !important}.sd-pt-2,.sd-py-2{padding-top:.5rem !important}.sd-pr-2,.sd-px-2{padding-right:.5rem !important}.sd-pb-2,.sd-py-2{padding-bottom:.5rem !important}.sd-pl-2,.sd-px-2{padding-left:.5rem !important}.sd-p-3{padding:1rem !important}.sd-pt-3,.sd-py-3{padding-top:1rem !important}.sd-pr-3,.sd-px-3{padding-right:1rem !important}.sd-pb-3,.sd-py-3{padding-bottom:1rem !important}.sd-pl-3,.sd-px-3{padding-left:1rem !important}.sd-p-4{padding:1.5rem !important}.sd-pt-4,.sd-py-4{padding-top:1.5rem !important}.sd-pr-4,.sd-px-4{padding-right:1.5rem !important}.sd-pb-4,.sd-py-4{padding-bottom:1.5rem !important}.sd-pl-4,.sd-px-4{padding-left:1.5rem !important}.sd-p-5{padding:3rem !important}.sd-pt-5,.sd-py-5{padding-top:3rem !important}.sd-pr-5,.sd-px-5{padding-right:3rem !important}.sd-pb-5,.sd-py-5{padding-bottom:3rem !important}.sd-pl-5,.sd-px-5{padding-left:3rem !important}.sd-m-auto{margin:auto !important}.sd-mt-auto,.sd-my-auto{margin-top:auto !important}.sd-mr-auto,.sd-mx-auto{margin-right:auto !important}.sd-mb-auto,.sd-my-auto{margin-bottom:auto !important}.sd-ml-auto,.sd-mx-auto{margin-left:auto !important}.sd-m-0{margin:0 !important}.sd-mt-0,.sd-my-0{margin-top:0 !important}.sd-mr-0,.sd-mx-0{margin-right:0 !important}.sd-mb-0,.sd-my-0{margin-bottom:0 !important}.sd-ml-0,.sd-mx-0{margin-left:0 !important}.sd-m-1{margin:.25rem !important}.sd-mt-1,.sd-my-1{margin-top:.25rem !important}.sd-mr-1,.sd-mx-1{margin-right:.25rem !important}.sd-mb-1,.sd-my-1{margin-bottom:.25rem !important}.sd-ml-1,.sd-mx-1{margin-left:.25rem !important}.sd-m-2{margin:.5rem !important}.sd-mt-2,.sd-my-2{margin-top:.5rem !important}.sd-mr-2,.sd-mx-2{margin-right:.5rem !important}.sd-mb-2,.sd-my-2{margin-bottom:.5rem !important}.sd-ml-2,.sd-mx-2{margin-left:.5rem !important}.sd-m-3{margin:1rem !important}.sd-mt-3,.sd-my-3{margin-top:1rem !important}.sd-mr-3,.sd-mx-3{margin-right:1rem !important}.sd-mb-3,.sd-my-3{margin-bottom:1rem !important}.sd-ml-3,.sd-mx-3{margin-left:1rem !important}.sd-m-4{margin:1.5rem !important}.sd-mt-4,.sd-my-4{margin-top:1.5rem !important}.sd-mr-4,.sd-mx-4{margin-right:1.5rem !important}.sd-mb-4,.sd-my-4{margin-bottom:1.5rem !important}.sd-ml-4,.sd-mx-4{margin-left:1.5rem !important}.sd-m-5{margin:3rem !important}.sd-mt-5,.sd-my-5{margin-top:3rem !important}.sd-mr-5,.sd-mx-5{margin-right:3rem !important}.sd-mb-5,.sd-my-5{margin-bottom:3rem !important}.sd-ml-5,.sd-mx-5{margin-left:3rem !important}.sd-w-25{width:25% !important}.sd-w-50{width:50% !important}.sd-w-75{width:75% !important}.sd-w-100{width:100% !important}.sd-w-auto{width:auto !important}.sd-h-25{height:25% !important}.sd-h-50{height:50% !important}.sd-h-75{height:75% !important}.sd-h-100{height:100% !important}.sd-h-auto{height:auto !important}.sd-d-none{display:none !important}.sd-d-inline{display:inline !important}.sd-d-inline-block{display:inline-block !important}.sd-d-block{display:block !important}.sd-d-grid{display:grid !important}.sd-d-flex-row{display:-ms-flexbox !important;display:flex !important;flex-direction:row !important}.sd-d-flex-column{display:-ms-flexbox !important;display:flex !important;flex-direction:column !important}.sd-d-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}@media(min-width: 576px){.sd-d-sm-none{display:none !important}.sd-d-sm-inline{display:inline !important}.sd-d-sm-inline-block{display:inline-block !important}.sd-d-sm-block{display:block !important}.sd-d-sm-grid{display:grid !important}.sd-d-sm-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-sm-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}@media(min-width: 768px){.sd-d-md-none{display:none !important}.sd-d-md-inline{display:inline !important}.sd-d-md-inline-block{display:inline-block !important}.sd-d-md-block{display:block !important}.sd-d-md-grid{display:grid !important}.sd-d-md-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-md-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}@media(min-width: 992px){.sd-d-lg-none{display:none !important}.sd-d-lg-inline{display:inline !important}.sd-d-lg-inline-block{display:inline-block !important}.sd-d-lg-block{display:block !important}.sd-d-lg-grid{display:grid !important}.sd-d-lg-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-lg-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}@media(min-width: 1200px){.sd-d-xl-none{display:none !important}.sd-d-xl-inline{display:inline !important}.sd-d-xl-inline-block{display:inline-block !important}.sd-d-xl-block{display:block !important}.sd-d-xl-grid{display:grid !important}.sd-d-xl-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-xl-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}.sd-align-major-start{justify-content:flex-start !important}.sd-align-major-end{justify-content:flex-end !important}.sd-align-major-center{justify-content:center !important}.sd-align-major-justify{justify-content:space-between !important}.sd-align-major-spaced{justify-content:space-evenly !important}.sd-align-minor-start{align-items:flex-start !important}.sd-align-minor-end{align-items:flex-end !important}.sd-align-minor-center{align-items:center !important}.sd-align-minor-stretch{align-items:stretch !important}.sd-text-justify{text-align:justify !important}.sd-text-left{text-align:left !important}.sd-text-right{text-align:right !important}.sd-text-center{text-align:center !important}.sd-font-weight-light{font-weight:300 !important}.sd-font-weight-lighter{font-weight:lighter !important}.sd-font-weight-normal{font-weight:400 !important}.sd-font-weight-bold{font-weight:700 !important}.sd-font-weight-bolder{font-weight:bolder !important}.sd-font-italic{font-style:italic !important}.sd-text-decoration-none{text-decoration:none !important}.sd-text-lowercase{text-transform:lowercase !important}.sd-text-uppercase{text-transform:uppercase !important}.sd-text-capitalize{text-transform:capitalize !important}.sd-text-wrap{white-space:normal !important}.sd-text-nowrap{white-space:nowrap !important}.sd-text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sd-fs-1,.sd-fs-1>p{font-size:calc(1.375rem + 1.5vw) !important;line-height:unset !important}.sd-fs-2,.sd-fs-2>p{font-size:calc(1.325rem + 0.9vw) !important;line-height:unset !important}.sd-fs-3,.sd-fs-3>p{font-size:calc(1.3rem + 0.6vw) !important;line-height:unset !important}.sd-fs-4,.sd-fs-4>p{font-size:calc(1.275rem + 0.3vw) !important;line-height:unset !important}.sd-fs-5,.sd-fs-5>p{font-size:1.25rem !important;line-height:unset !important}.sd-fs-6,.sd-fs-6>p{font-size:1rem !important;line-height:unset !important}.sd-border-0{border:0 solid !important}.sd-border-top-0{border-top:0 solid !important}.sd-border-bottom-0{border-bottom:0 solid !important}.sd-border-right-0{border-right:0 solid !important}.sd-border-left-0{border-left:0 solid !important}.sd-border-1{border:1px solid !important}.sd-border-top-1{border-top:1px solid !important}.sd-border-bottom-1{border-bottom:1px solid !important}.sd-border-right-1{border-right:1px solid !important}.sd-border-left-1{border-left:1px solid !important}.sd-border-2{border:2px solid !important}.sd-border-top-2{border-top:2px solid !important}.sd-border-bottom-2{border-bottom:2px solid !important}.sd-border-right-2{border-right:2px solid !important}.sd-border-left-2{border-left:2px solid !important}.sd-border-3{border:3px solid !important}.sd-border-top-3{border-top:3px solid !important}.sd-border-bottom-3{border-bottom:3px solid !important}.sd-border-right-3{border-right:3px solid !important}.sd-border-left-3{border-left:3px solid !important}.sd-border-4{border:4px solid !important}.sd-border-top-4{border-top:4px solid !important}.sd-border-bottom-4{border-bottom:4px solid !important}.sd-border-right-4{border-right:4px solid !important}.sd-border-left-4{border-left:4px solid !important}.sd-border-5{border:5px solid !important}.sd-border-top-5{border-top:5px solid !important}.sd-border-bottom-5{border-bottom:5px solid !important}.sd-border-right-5{border-right:5px solid !important}.sd-border-left-5{border-left:5px solid !important}.sd-rounded-0{border-radius:0 !important}.sd-rounded-1{border-radius:.2rem !important}.sd-rounded-2{border-radius:.3rem !important}.sd-rounded-3{border-radius:.5rem !important}.sd-rounded-pill{border-radius:50rem !important}.sd-rounded-circle{border-radius:50% !important}.shadow-none{box-shadow:none !important}.sd-shadow-sm{box-shadow:0 .125rem .25rem var(--sd-color-shadow) !important}.sd-shadow-md{box-shadow:0 .5rem 1rem var(--sd-color-shadow) !important}.sd-shadow-lg{box-shadow:0 1rem 3rem var(--sd-color-shadow) !important}@keyframes sd-slide-from-left{0%{transform:translateX(-100%)}100%{transform:translateX(0)}}@keyframes sd-slide-from-right{0%{transform:translateX(200%)}100%{transform:translateX(0)}}@keyframes sd-grow100{0%{transform:scale(0);opacity:.5}100%{transform:scale(1);opacity:1}}@keyframes sd-grow50{0%{transform:scale(0.5);opacity:.5}100%{transform:scale(1);opacity:1}}@keyframes sd-grow50-rot20{0%{transform:scale(0.5) rotateZ(-20deg);opacity:.5}75%{transform:scale(1) rotateZ(5deg);opacity:1}95%{transform:scale(1) rotateZ(-1deg);opacity:1}100%{transform:scale(1) rotateZ(0);opacity:1}}.sd-animate-slide-from-left{animation:1s ease-out 0s 1 normal none running sd-slide-from-left}.sd-animate-slide-from-right{animation:1s ease-out 0s 1 normal none running sd-slide-from-right}.sd-animate-grow100{animation:1s ease-out 0s 1 normal none running sd-grow100}.sd-animate-grow50{animation:1s ease-out 0s 1 normal none running sd-grow50}.sd-animate-grow50-rot20{animation:1s ease-out 0s 1 normal none running sd-grow50-rot20}.sd-badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.sd-badge:empty{display:none}a.sd-badge{text-decoration:none}.sd-btn .sd-badge{position:relative;top:-1px}.sd-btn{background-color:transparent;border:1px solid transparent;border-radius:.25rem;cursor:pointer;display:inline-block;font-weight:400;font-size:1rem;line-height:1.5;padding:.375rem .75rem;text-align:center;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;vertical-align:middle;user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none}.sd-btn:hover{text-decoration:none}@media(prefers-reduced-motion: reduce){.sd-btn{transition:none}}.sd-btn-primary,.sd-btn-outline-primary:hover,.sd-btn-outline-primary:focus{color:var(--sd-color-primary-text) !important;background-color:var(--sd-color-primary) !important;border-color:var(--sd-color-primary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-primary:hover,.sd-btn-primary:focus{color:var(--sd-color-primary-text) !important;background-color:var(--sd-color-primary-highlight) !important;border-color:var(--sd-color-primary-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-primary{color:var(--sd-color-primary) !important;border-color:var(--sd-color-primary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-secondary,.sd-btn-outline-secondary:hover,.sd-btn-outline-secondary:focus{color:var(--sd-color-secondary-text) !important;background-color:var(--sd-color-secondary) !important;border-color:var(--sd-color-secondary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-secondary:hover,.sd-btn-secondary:focus{color:var(--sd-color-secondary-text) !important;background-color:var(--sd-color-secondary-highlight) !important;border-color:var(--sd-color-secondary-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-secondary{color:var(--sd-color-secondary) !important;border-color:var(--sd-color-secondary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-success,.sd-btn-outline-success:hover,.sd-btn-outline-success:focus{color:var(--sd-color-success-text) !important;background-color:var(--sd-color-success) !important;border-color:var(--sd-color-success) !important;border-width:1px !important;border-style:solid !important}.sd-btn-success:hover,.sd-btn-success:focus{color:var(--sd-color-success-text) !important;background-color:var(--sd-color-success-highlight) !important;border-color:var(--sd-color-success-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-success{color:var(--sd-color-success) !important;border-color:var(--sd-color-success) !important;border-width:1px !important;border-style:solid !important}.sd-btn-info,.sd-btn-outline-info:hover,.sd-btn-outline-info:focus{color:var(--sd-color-info-text) !important;background-color:var(--sd-color-info) !important;border-color:var(--sd-color-info) !important;border-width:1px !important;border-style:solid !important}.sd-btn-info:hover,.sd-btn-info:focus{color:var(--sd-color-info-text) !important;background-color:var(--sd-color-info-highlight) !important;border-color:var(--sd-color-info-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-info{color:var(--sd-color-info) !important;border-color:var(--sd-color-info) !important;border-width:1px !important;border-style:solid !important}.sd-btn-warning,.sd-btn-outline-warning:hover,.sd-btn-outline-warning:focus{color:var(--sd-color-warning-text) !important;background-color:var(--sd-color-warning) !important;border-color:var(--sd-color-warning) !important;border-width:1px !important;border-style:solid !important}.sd-btn-warning:hover,.sd-btn-warning:focus{color:var(--sd-color-warning-text) !important;background-color:var(--sd-color-warning-highlight) !important;border-color:var(--sd-color-warning-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-warning{color:var(--sd-color-warning) !important;border-color:var(--sd-color-warning) !important;border-width:1px !important;border-style:solid !important}.sd-btn-danger,.sd-btn-outline-danger:hover,.sd-btn-outline-danger:focus{color:var(--sd-color-danger-text) !important;background-color:var(--sd-color-danger) !important;border-color:var(--sd-color-danger) !important;border-width:1px !important;border-style:solid !important}.sd-btn-danger:hover,.sd-btn-danger:focus{color:var(--sd-color-danger-text) !important;background-color:var(--sd-color-danger-highlight) !important;border-color:var(--sd-color-danger-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-danger{color:var(--sd-color-danger) !important;border-color:var(--sd-color-danger) !important;border-width:1px !important;border-style:solid !important}.sd-btn-light,.sd-btn-outline-light:hover,.sd-btn-outline-light:focus{color:var(--sd-color-light-text) !important;background-color:var(--sd-color-light) !important;border-color:var(--sd-color-light) !important;border-width:1px !important;border-style:solid !important}.sd-btn-light:hover,.sd-btn-light:focus{color:var(--sd-color-light-text) !important;background-color:var(--sd-color-light-highlight) !important;border-color:var(--sd-color-light-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-light{color:var(--sd-color-light) !important;border-color:var(--sd-color-light) !important;border-width:1px !important;border-style:solid !important}.sd-btn-muted,.sd-btn-outline-muted:hover,.sd-btn-outline-muted:focus{color:var(--sd-color-muted-text) !important;background-color:var(--sd-color-muted) !important;border-color:var(--sd-color-muted) !important;border-width:1px !important;border-style:solid !important}.sd-btn-muted:hover,.sd-btn-muted:focus{color:var(--sd-color-muted-text) !important;background-color:var(--sd-color-muted-highlight) !important;border-color:var(--sd-color-muted-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-muted{color:var(--sd-color-muted) !important;border-color:var(--sd-color-muted) !important;border-width:1px !important;border-style:solid !important}.sd-btn-dark,.sd-btn-outline-dark:hover,.sd-btn-outline-dark:focus{color:var(--sd-color-dark-text) !important;background-color:var(--sd-color-dark) !important;border-color:var(--sd-color-dark) !important;border-width:1px !important;border-style:solid !important}.sd-btn-dark:hover,.sd-btn-dark:focus{color:var(--sd-color-dark-text) !important;background-color:var(--sd-color-dark-highlight) !important;border-color:var(--sd-color-dark-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-dark{color:var(--sd-color-dark) !important;border-color:var(--sd-color-dark) !important;border-width:1px !important;border-style:solid !important}.sd-btn-black,.sd-btn-outline-black:hover,.sd-btn-outline-black:focus{color:var(--sd-color-black-text) !important;background-color:var(--sd-color-black) !important;border-color:var(--sd-color-black) !important;border-width:1px !important;border-style:solid !important}.sd-btn-black:hover,.sd-btn-black:focus{color:var(--sd-color-black-text) !important;background-color:var(--sd-color-black-highlight) !important;border-color:var(--sd-color-black-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-black{color:var(--sd-color-black) !important;border-color:var(--sd-color-black) !important;border-width:1px !important;border-style:solid !important}.sd-btn-white,.sd-btn-outline-white:hover,.sd-btn-outline-white:focus{color:var(--sd-color-white-text) !important;background-color:var(--sd-color-white) !important;border-color:var(--sd-color-white) !important;border-width:1px !important;border-style:solid !important}.sd-btn-white:hover,.sd-btn-white:focus{color:var(--sd-color-white-text) !important;background-color:var(--sd-color-white-highlight) !important;border-color:var(--sd-color-white-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-white{color:var(--sd-color-white) !important;border-color:var(--sd-color-white) !important;border-width:1px !important;border-style:solid !important}.sd-stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.sd-hide-link-text{font-size:0}.sd-octicon,.sd-material-icon{display:inline-block;fill:currentColor;vertical-align:middle}.sd-avatar-xs{border-radius:50%;object-fit:cover;object-position:center;width:1rem;height:1rem}.sd-avatar-sm{border-radius:50%;object-fit:cover;object-position:center;width:3rem;height:3rem}.sd-avatar-md{border-radius:50%;object-fit:cover;object-position:center;width:5rem;height:5rem}.sd-avatar-lg{border-radius:50%;object-fit:cover;object-position:center;width:7rem;height:7rem}.sd-avatar-xl{border-radius:50%;object-fit:cover;object-position:center;width:10rem;height:10rem}.sd-avatar-inherit{border-radius:50%;object-fit:cover;object-position:center;width:inherit;height:inherit}.sd-avatar-initial{border-radius:50%;object-fit:cover;object-position:center;width:initial;height:initial}.sd-card{background-clip:border-box;background-color:var(--sd-color-card-background);border:1px solid var(--sd-color-card-border);border-radius:.25rem;color:var(--sd-color-card-text);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;position:relative;word-wrap:break-word}.sd-card>hr{margin-left:0;margin-right:0}.sd-card-hover:hover{border-color:var(--sd-color-card-border-hover);transform:scale(1.01)}.sd-card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem 1rem}.sd-card-title{margin-bottom:.5rem}.sd-card-subtitle{margin-top:-0.25rem;margin-bottom:0}.sd-card-text:last-child{margin-bottom:0}.sd-card-link:hover{text-decoration:none}.sd-card-link+.card-link{margin-left:1rem}.sd-card-header{padding:.5rem 1rem;margin-bottom:0;background-color:var(--sd-color-card-header);border-bottom:1px solid var(--sd-color-card-border)}.sd-card-header:first-child{border-radius:calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0}.sd-card-footer{padding:.5rem 1rem;background-color:var(--sd-color-card-footer);border-top:1px solid var(--sd-color-card-border)}.sd-card-footer:last-child{border-radius:0 0 calc(0.25rem - 1px) calc(0.25rem - 1px)}.sd-card-header-tabs{margin-right:-0.5rem;margin-bottom:-0.5rem;margin-left:-0.5rem;border-bottom:0}.sd-card-header-pills{margin-right:-0.5rem;margin-left:-0.5rem}.sd-card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(0.25rem - 1px)}.sd-card-img,.sd-card-img-bottom,.sd-card-img-top{width:100%}.sd-card-img,.sd-card-img-top{border-top-left-radius:calc(0.25rem - 1px);border-top-right-radius:calc(0.25rem - 1px)}.sd-card-img,.sd-card-img-bottom{border-bottom-left-radius:calc(0.25rem - 1px);border-bottom-right-radius:calc(0.25rem - 1px)}.sd-cards-carousel{width:100%;display:flex;flex-wrap:nowrap;-ms-flex-direction:row;flex-direction:row;overflow-x:hidden;scroll-snap-type:x mandatory}.sd-cards-carousel.sd-show-scrollbar{overflow-x:auto}.sd-cards-carousel:hover,.sd-cards-carousel:focus{overflow-x:auto}.sd-cards-carousel>.sd-card{flex-shrink:0;scroll-snap-align:start}.sd-cards-carousel>.sd-card:not(:last-child){margin-right:3px}.sd-card-cols-1>.sd-card{width:90%}.sd-card-cols-2>.sd-card{width:45%}.sd-card-cols-3>.sd-card{width:30%}.sd-card-cols-4>.sd-card{width:22.5%}.sd-card-cols-5>.sd-card{width:18%}.sd-card-cols-6>.sd-card{width:15%}.sd-card-cols-7>.sd-card{width:12.8571428571%}.sd-card-cols-8>.sd-card{width:11.25%}.sd-card-cols-9>.sd-card{width:10%}.sd-card-cols-10>.sd-card{width:9%}.sd-card-cols-11>.sd-card{width:8.1818181818%}.sd-card-cols-12>.sd-card{width:7.5%}.sd-container,.sd-container-fluid,.sd-container-lg,.sd-container-md,.sd-container-sm,.sd-container-xl{margin-left:auto;margin-right:auto;padding-left:var(--sd-gutter-x, 0.75rem);padding-right:var(--sd-gutter-x, 0.75rem);width:100%}@media(min-width: 576px){.sd-container-sm,.sd-container{max-width:540px}}@media(min-width: 768px){.sd-container-md,.sd-container-sm,.sd-container{max-width:720px}}@media(min-width: 992px){.sd-container-lg,.sd-container-md,.sd-container-sm,.sd-container{max-width:960px}}@media(min-width: 1200px){.sd-container-xl,.sd-container-lg,.sd-container-md,.sd-container-sm,.sd-container{max-width:1140px}}.sd-row{--sd-gutter-x: 1.5rem;--sd-gutter-y: 0;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-top:calc(var(--sd-gutter-y) * -1);margin-right:calc(var(--sd-gutter-x) * -0.5);margin-left:calc(var(--sd-gutter-x) * -0.5)}.sd-row>*{box-sizing:border-box;flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--sd-gutter-x) * 0.5);padding-left:calc(var(--sd-gutter-x) * 0.5);margin-top:var(--sd-gutter-y)}.sd-col{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-auto>*{flex:0 0 auto;width:auto}.sd-row-cols-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}@media(min-width: 576px){.sd-col-sm{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-sm-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-sm-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-sm-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-sm-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-sm-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-sm-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-sm-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-sm-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-sm-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-sm-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-sm-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-sm-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-sm-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}@media(min-width: 768px){.sd-col-md{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-md-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-md-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-md-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-md-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-md-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-md-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-md-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-md-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-md-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-md-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-md-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-md-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-md-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}@media(min-width: 992px){.sd-col-lg{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-lg-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-lg-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-lg-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-lg-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-lg-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-lg-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-lg-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-lg-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-lg-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-lg-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-lg-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-lg-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-lg-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}@media(min-width: 1200px){.sd-col-xl{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-xl-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-xl-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-xl-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-xl-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-xl-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-xl-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-xl-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-xl-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-xl-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-xl-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-xl-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-xl-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-xl-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}.sd-col-auto{flex:0 0 auto;-ms-flex:0 0 auto;width:auto}.sd-col-1{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}.sd-col-2{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-col-3{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-col-4{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-col-5{flex:0 0 auto;-ms-flex:0 0 auto;width:41.6666666667%}.sd-col-6{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-col-7{flex:0 0 auto;-ms-flex:0 0 auto;width:58.3333333333%}.sd-col-8{flex:0 0 auto;-ms-flex:0 0 auto;width:66.6666666667%}.sd-col-9{flex:0 0 auto;-ms-flex:0 0 auto;width:75%}.sd-col-10{flex:0 0 auto;-ms-flex:0 0 auto;width:83.3333333333%}.sd-col-11{flex:0 0 auto;-ms-flex:0 0 auto;width:91.6666666667%}.sd-col-12{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-g-0,.sd-gy-0{--sd-gutter-y: 0}.sd-g-0,.sd-gx-0{--sd-gutter-x: 0}.sd-g-1,.sd-gy-1{--sd-gutter-y: 0.25rem}.sd-g-1,.sd-gx-1{--sd-gutter-x: 0.25rem}.sd-g-2,.sd-gy-2{--sd-gutter-y: 0.5rem}.sd-g-2,.sd-gx-2{--sd-gutter-x: 0.5rem}.sd-g-3,.sd-gy-3{--sd-gutter-y: 1rem}.sd-g-3,.sd-gx-3{--sd-gutter-x: 1rem}.sd-g-4,.sd-gy-4{--sd-gutter-y: 1.5rem}.sd-g-4,.sd-gx-4{--sd-gutter-x: 1.5rem}.sd-g-5,.sd-gy-5{--sd-gutter-y: 3rem}.sd-g-5,.sd-gx-5{--sd-gutter-x: 3rem}@media(min-width: 576px){.sd-col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-sm-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-sm-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-sm-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-sm-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-sm-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-sm-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-sm-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-sm-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-sm-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-sm-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-sm-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-sm-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-sm-0,.sd-gy-sm-0{--sd-gutter-y: 0}.sd-g-sm-0,.sd-gx-sm-0{--sd-gutter-x: 0}.sd-g-sm-1,.sd-gy-sm-1{--sd-gutter-y: 0.25rem}.sd-g-sm-1,.sd-gx-sm-1{--sd-gutter-x: 0.25rem}.sd-g-sm-2,.sd-gy-sm-2{--sd-gutter-y: 0.5rem}.sd-g-sm-2,.sd-gx-sm-2{--sd-gutter-x: 0.5rem}.sd-g-sm-3,.sd-gy-sm-3{--sd-gutter-y: 1rem}.sd-g-sm-3,.sd-gx-sm-3{--sd-gutter-x: 1rem}.sd-g-sm-4,.sd-gy-sm-4{--sd-gutter-y: 1.5rem}.sd-g-sm-4,.sd-gx-sm-4{--sd-gutter-x: 1.5rem}.sd-g-sm-5,.sd-gy-sm-5{--sd-gutter-y: 3rem}.sd-g-sm-5,.sd-gx-sm-5{--sd-gutter-x: 3rem}}@media(min-width: 768px){.sd-col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-md-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-md-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-md-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-md-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-md-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-md-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-md-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-md-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-md-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-md-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-md-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-md-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-md-0,.sd-gy-md-0{--sd-gutter-y: 0}.sd-g-md-0,.sd-gx-md-0{--sd-gutter-x: 0}.sd-g-md-1,.sd-gy-md-1{--sd-gutter-y: 0.25rem}.sd-g-md-1,.sd-gx-md-1{--sd-gutter-x: 0.25rem}.sd-g-md-2,.sd-gy-md-2{--sd-gutter-y: 0.5rem}.sd-g-md-2,.sd-gx-md-2{--sd-gutter-x: 0.5rem}.sd-g-md-3,.sd-gy-md-3{--sd-gutter-y: 1rem}.sd-g-md-3,.sd-gx-md-3{--sd-gutter-x: 1rem}.sd-g-md-4,.sd-gy-md-4{--sd-gutter-y: 1.5rem}.sd-g-md-4,.sd-gx-md-4{--sd-gutter-x: 1.5rem}.sd-g-md-5,.sd-gy-md-5{--sd-gutter-y: 3rem}.sd-g-md-5,.sd-gx-md-5{--sd-gutter-x: 3rem}}@media(min-width: 992px){.sd-col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-lg-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-lg-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-lg-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-lg-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-lg-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-lg-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-lg-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-lg-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-lg-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-lg-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-lg-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-lg-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-lg-0,.sd-gy-lg-0{--sd-gutter-y: 0}.sd-g-lg-0,.sd-gx-lg-0{--sd-gutter-x: 0}.sd-g-lg-1,.sd-gy-lg-1{--sd-gutter-y: 0.25rem}.sd-g-lg-1,.sd-gx-lg-1{--sd-gutter-x: 0.25rem}.sd-g-lg-2,.sd-gy-lg-2{--sd-gutter-y: 0.5rem}.sd-g-lg-2,.sd-gx-lg-2{--sd-gutter-x: 0.5rem}.sd-g-lg-3,.sd-gy-lg-3{--sd-gutter-y: 1rem}.sd-g-lg-3,.sd-gx-lg-3{--sd-gutter-x: 1rem}.sd-g-lg-4,.sd-gy-lg-4{--sd-gutter-y: 1.5rem}.sd-g-lg-4,.sd-gx-lg-4{--sd-gutter-x: 1.5rem}.sd-g-lg-5,.sd-gy-lg-5{--sd-gutter-y: 3rem}.sd-g-lg-5,.sd-gx-lg-5{--sd-gutter-x: 3rem}}@media(min-width: 1200px){.sd-col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-xl-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-xl-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-xl-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-xl-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-xl-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-xl-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-xl-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-xl-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-xl-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-xl-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-xl-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-xl-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-xl-0,.sd-gy-xl-0{--sd-gutter-y: 0}.sd-g-xl-0,.sd-gx-xl-0{--sd-gutter-x: 0}.sd-g-xl-1,.sd-gy-xl-1{--sd-gutter-y: 0.25rem}.sd-g-xl-1,.sd-gx-xl-1{--sd-gutter-x: 0.25rem}.sd-g-xl-2,.sd-gy-xl-2{--sd-gutter-y: 0.5rem}.sd-g-xl-2,.sd-gx-xl-2{--sd-gutter-x: 0.5rem}.sd-g-xl-3,.sd-gy-xl-3{--sd-gutter-y: 1rem}.sd-g-xl-3,.sd-gx-xl-3{--sd-gutter-x: 1rem}.sd-g-xl-4,.sd-gy-xl-4{--sd-gutter-y: 1.5rem}.sd-g-xl-4,.sd-gx-xl-4{--sd-gutter-x: 1.5rem}.sd-g-xl-5,.sd-gy-xl-5{--sd-gutter-y: 3rem}.sd-g-xl-5,.sd-gx-xl-5{--sd-gutter-x: 3rem}}.sd-flex-row-reverse{flex-direction:row-reverse !important}details.sd-dropdown{position:relative;font-size:var(--sd-fontsize-dropdown)}details.sd-dropdown:hover{cursor:pointer}details.sd-dropdown .sd-summary-content{cursor:default}details.sd-dropdown summary.sd-summary-title{padding:.5em .6em .5em 1em;font-size:var(--sd-fontsize-dropdown-title);font-weight:var(--sd-fontweight-dropdown-title);user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;list-style:none;display:inline-flex;justify-content:space-between}details.sd-dropdown summary.sd-summary-title::-webkit-details-marker{display:none}details.sd-dropdown summary.sd-summary-title:focus{outline:none}details.sd-dropdown summary.sd-summary-title .sd-summary-icon{margin-right:.6em;display:inline-flex;align-items:center}details.sd-dropdown summary.sd-summary-title .sd-summary-icon svg{opacity:.8}details.sd-dropdown summary.sd-summary-title .sd-summary-text{flex-grow:1;line-height:1.5;padding-right:.5rem}details.sd-dropdown summary.sd-summary-title .sd-summary-state-marker{pointer-events:none;display:inline-flex;align-items:center}details.sd-dropdown summary.sd-summary-title .sd-summary-state-marker svg{opacity:.6}details.sd-dropdown summary.sd-summary-title:hover .sd-summary-state-marker svg{opacity:1;transform:scale(1.1)}details.sd-dropdown[open] summary .sd-octicon.no-title{visibility:hidden}details.sd-dropdown .sd-summary-chevron-right{transition:.25s}details.sd-dropdown[open]>.sd-summary-title .sd-summary-chevron-right{transform:rotate(90deg)}details.sd-dropdown[open]>.sd-summary-title .sd-summary-chevron-down{transform:rotate(180deg)}details.sd-dropdown:not([open]).sd-card{border:none}details.sd-dropdown:not([open])>.sd-card-header{border:1px solid var(--sd-color-card-border);border-radius:.25rem}details.sd-dropdown.sd-fade-in[open] summary~*{-moz-animation:sd-fade-in .5s ease-in-out;-webkit-animation:sd-fade-in .5s ease-in-out;animation:sd-fade-in .5s ease-in-out}details.sd-dropdown.sd-fade-in-slide-down[open] summary~*{-moz-animation:sd-fade-in .5s ease-in-out,sd-slide-down .5s ease-in-out;-webkit-animation:sd-fade-in .5s ease-in-out,sd-slide-down .5s ease-in-out;animation:sd-fade-in .5s ease-in-out,sd-slide-down .5s ease-in-out}.sd-col>.sd-dropdown{width:100%}.sd-summary-content>.sd-tab-set:first-child{margin-top:0}@keyframes sd-fade-in{0%{opacity:0}100%{opacity:1}}@keyframes sd-slide-down{0%{transform:translate(0, -10px)}100%{transform:translate(0, 0)}}.sd-tab-set{border-radius:.125rem;display:flex;flex-wrap:wrap;margin:1em 0;position:relative}.sd-tab-set>input{opacity:0;position:absolute}.sd-tab-set>input:checked+label{border-color:var(--sd-color-tabs-underline-active);color:var(--sd-color-tabs-label-active)}.sd-tab-set>input:checked+label+.sd-tab-content{display:block}.sd-tab-set>input:not(:checked)+label:hover{color:var(--sd-color-tabs-label-hover);border-color:var(--sd-color-tabs-underline-hover)}.sd-tab-set>input:focus+label{outline-style:auto}.sd-tab-set>input:not(.focus-visible)+label{outline:none;-webkit-tap-highlight-color:transparent}.sd-tab-set>label{border-bottom:.125rem solid transparent;margin-bottom:0;color:var(--sd-color-tabs-label-inactive);border-color:var(--sd-color-tabs-underline-inactive);cursor:pointer;font-size:var(--sd-fontsize-tabs-label);font-weight:700;padding:1em 1.25em .5em;transition:color 250ms;width:auto;z-index:1}html .sd-tab-set>label:hover{color:var(--sd-color-tabs-label-active)}.sd-col>.sd-tab-set{width:100%}.sd-tab-content{box-shadow:0 -0.0625rem var(--sd-color-tabs-overline),0 .0625rem var(--sd-color-tabs-underline);display:none;order:99;padding-bottom:.75rem;padding-top:.75rem;width:100%}.sd-tab-content>:first-child{margin-top:0 !important}.sd-tab-content>:last-child{margin-bottom:0 !important}.sd-tab-content>.sd-tab-set{margin:0}.sd-sphinx-override,.sd-sphinx-override *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sd-sphinx-override p{margin-top:0}:root{--sd-color-primary: #0071bc;--sd-color-secondary: #6c757d;--sd-color-success: #28a745;--sd-color-info: #17a2b8;--sd-color-warning: #f0b37e;--sd-color-danger: #dc3545;--sd-color-light: #f8f9fa;--sd-color-muted: #6c757d;--sd-color-dark: #212529;--sd-color-black: black;--sd-color-white: white;--sd-color-primary-highlight: #0060a0;--sd-color-secondary-highlight: #5c636a;--sd-color-success-highlight: #228e3b;--sd-color-info-highlight: #148a9c;--sd-color-warning-highlight: #cc986b;--sd-color-danger-highlight: #bb2d3b;--sd-color-light-highlight: #d3d4d5;--sd-color-muted-highlight: #5c636a;--sd-color-dark-highlight: #1c1f23;--sd-color-black-highlight: black;--sd-color-white-highlight: #d9d9d9;--sd-color-primary-bg: rgba(0, 113, 188, 0.2);--sd-color-secondary-bg: rgba(108, 117, 125, 0.2);--sd-color-success-bg: rgba(40, 167, 69, 0.2);--sd-color-info-bg: rgba(23, 162, 184, 0.2);--sd-color-warning-bg: rgba(240, 179, 126, 0.2);--sd-color-danger-bg: rgba(220, 53, 69, 0.2);--sd-color-light-bg: rgba(248, 249, 250, 0.2);--sd-color-muted-bg: rgba(108, 117, 125, 0.2);--sd-color-dark-bg: rgba(33, 37, 41, 0.2);--sd-color-black-bg: rgba(0, 0, 0, 0.2);--sd-color-white-bg: rgba(255, 255, 255, 0.2);--sd-color-primary-text: #fff;--sd-color-secondary-text: #fff;--sd-color-success-text: #fff;--sd-color-info-text: #fff;--sd-color-warning-text: #212529;--sd-color-danger-text: #fff;--sd-color-light-text: #212529;--sd-color-muted-text: #fff;--sd-color-dark-text: #fff;--sd-color-black-text: #fff;--sd-color-white-text: #212529;--sd-color-shadow: rgba(0, 0, 0, 0.15);--sd-color-card-border: rgba(0, 0, 0, 0.125);--sd-color-card-border-hover: hsla(231, 99%, 66%, 1);--sd-color-card-background: transparent;--sd-color-card-text: inherit;--sd-color-card-header: transparent;--sd-color-card-footer: transparent;--sd-color-tabs-label-active: hsla(231, 99%, 66%, 1);--sd-color-tabs-label-hover: hsla(231, 99%, 66%, 1);--sd-color-tabs-label-inactive: hsl(0, 0%, 66%);--sd-color-tabs-underline-active: hsla(231, 99%, 66%, 1);--sd-color-tabs-underline-hover: rgba(178, 206, 245, 0.62);--sd-color-tabs-underline-inactive: transparent;--sd-color-tabs-overline: rgb(222, 222, 222);--sd-color-tabs-underline: rgb(222, 222, 222);--sd-fontsize-tabs-label: 1rem;--sd-fontsize-dropdown: inherit;--sd-fontsize-dropdown-title: 1rem;--sd-fontweight-dropdown-title: 700} diff --git a/3.1.0/_static/basic.css b/3.1.0/_static/basic.css new file mode 100644 index 000000000..2af6139e6 --- /dev/null +++ b/3.1.0/_static/basic.css @@ -0,0 +1,925 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- 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: 270px; + 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: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +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; +} + +.translated { + background-color: rgba(207, 255, 207, 0.2) +} + +.untranslated { + background-color: rgba(255, 207, 207, 0.2) +} + +/* -- 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/3.1.0/_static/check-solid.svg b/3.1.0/_static/check-solid.svg new file mode 100644 index 000000000..92fad4b5c --- /dev/null +++ b/3.1.0/_static/check-solid.svg @@ -0,0 +1,4 @@ + + + + diff --git a/3.1.0/_static/clipboard.min.js b/3.1.0/_static/clipboard.min.js new file mode 100644 index 000000000..54b3c4638 --- /dev/null +++ b/3.1.0/_static/clipboard.min.js @@ -0,0 +1,7 @@ +/*! + * clipboard.js v2.0.8 + * 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 o}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),c=n.n(e);function a(t){try{return document.execCommand(t)}catch(t){return}}var f=function(t){t=c()(t);return a("cut"),t};var l=function(t){var e,n,o,r=1 + + + + diff --git a/3.1.0/_static/copybutton.css b/3.1.0/_static/copybutton.css new file mode 100644 index 000000000..f1916ec7d --- /dev/null +++ b/3.1.0/_static/copybutton.css @@ -0,0 +1,94 @@ +/* Copy buttons */ +button.copybtn { + position: absolute; + display: flex; + top: .3em; + right: .3em; + width: 1.7em; + height: 1.7em; + opacity: 0; + transition: opacity 0.3s, border .3s, background-color .3s; + user-select: none; + padding: 0; + border: none; + outline: none; + border-radius: 0.4em; + /* The colors that GitHub uses */ + border: #1b1f2426 1px solid; + background-color: #f6f8fa; + color: #57606a; +} + +button.copybtn.success { + border-color: #22863a; + color: #22863a; +} + +button.copybtn svg { + stroke: currentColor; + width: 1.5em; + height: 1.5em; + padding: 0.1em; +} + +div.highlight { + position: relative; +} + +/* Show the copybutton */ +.highlight:hover button.copybtn, button.copybtn.success { + opacity: 1; +} + +.highlight button.copybtn:hover { + background-color: rgb(235, 235, 235); +} + +.highlight button.copybtn:active { + background-color: rgb(187, 187, 187); +} + +/** + * A minimal CSS-only tooltip copied from: + * https://codepen.io/mildrenben/pen/rVBrpK + * + * To use, write HTML like the following: + * + *

Short

+ */ + .o-tooltip--left { + position: relative; + } + + .o-tooltip--left:after { + opacity: 0; + visibility: hidden; + position: absolute; + content: attr(data-tooltip); + padding: .2em; + font-size: .8em; + left: -.2em; + background: grey; + color: white; + white-space: nowrap; + z-index: 2; + border-radius: 2px; + transform: translateX(-102%) translateY(0); + transition: opacity 0.2s cubic-bezier(0.64, 0.09, 0.08, 1), transform 0.2s cubic-bezier(0.64, 0.09, 0.08, 1); +} + +.o-tooltip--left:hover:after { + display: block; + opacity: 1; + visibility: visible; + transform: translateX(-100%) translateY(0); + transition: opacity 0.2s cubic-bezier(0.64, 0.09, 0.08, 1), transform 0.2s cubic-bezier(0.64, 0.09, 0.08, 1); + transition-delay: .5s; +} + +/* By default the copy button shouldn't show up when printing a page */ +@media print { + button.copybtn { + display: none; + } +} diff --git a/3.1.0/_static/copybutton.js b/3.1.0/_static/copybutton.js new file mode 100644 index 000000000..e0da19327 --- /dev/null +++ b/3.1.0/_static/copybutton.js @@ -0,0 +1,248 @@ +// Localization support +const messages = { + 'en': { + 'copy': 'Copy', + 'copy_to_clipboard': 'Copy to clipboard', + 'copy_success': 'Copied!', + 'copy_failure': 'Failed to copy', + }, + 'es' : { + 'copy': 'Copiar', + 'copy_to_clipboard': 'Copiar al portapapeles', + 'copy_success': '¡Copiado!', + 'copy_failure': 'Error al copiar', + }, + 'de' : { + 'copy': 'Kopieren', + 'copy_to_clipboard': 'In die Zwischenablage kopieren', + 'copy_success': 'Kopiert!', + 'copy_failure': 'Fehler beim Kopieren', + }, + 'fr' : { + 'copy': 'Copier', + 'copy_to_clipboard': 'Copier dans le presse-papier', + 'copy_success': 'Copié !', + 'copy_failure': 'Échec de la copie', + }, + 'ru': { + 'copy': 'Скопировать', + 'copy_to_clipboard': 'Скопировать в буфер', + 'copy_success': 'Скопировано!', + 'copy_failure': 'Не удалось скопировать', + }, + 'zh-CN': { + 'copy': '复制', + 'copy_to_clipboard': '复制到剪贴板', + 'copy_success': '复制成功!', + 'copy_failure': '复制失败', + }, + 'it' : { + 'copy': 'Copiare', + 'copy_to_clipboard': 'Copiato negli appunti', + 'copy_success': 'Copiato!', + 'copy_failure': 'Errore durante la copia', + } +} + +let locale = 'en' +if( document.documentElement.lang !== undefined + && messages[document.documentElement.lang] !== undefined ) { + locale = document.documentElement.lang +} + +let doc_url_root = DOCUMENTATION_OPTIONS.URL_ROOT; +if (doc_url_root == '#') { + doc_url_root = ''; +} + +/** + * SVG files for our copy buttons + */ +let iconCheck = ` + ${messages[locale]['copy_success']} + + +` + +// If the user specified their own SVG use that, otherwise use the default +let iconCopy = ``; +if (!iconCopy) { + iconCopy = ` + ${messages[locale]['copy_to_clipboard']} + + + +` +} + +/** + * Set up copy/paste for code blocks + */ + +const runWhenDOMLoaded = cb => { + if (document.readyState != 'loading') { + cb() + } else if (document.addEventListener) { + document.addEventListener('DOMContentLoaded', cb) + } else { + document.attachEvent('onreadystatechange', function() { + if (document.readyState == 'complete') cb() + }) + } +} + +const codeCellId = index => `codecell${index}` + +// Clears selected text since ClipboardJS will select the text when copying +const clearSelection = () => { + if (window.getSelection) { + window.getSelection().removeAllRanges() + } else if (document.selection) { + document.selection.empty() + } +} + +// Changes tooltip text for a moment, then changes it back +// We want the timeout of our `success` class to be a bit shorter than the +// tooltip and icon change, so that we can hide the icon before changing back. +var timeoutIcon = 2000; +var timeoutSuccessClass = 1500; + +const temporarilyChangeTooltip = (el, oldText, newText) => { + el.setAttribute('data-tooltip', newText) + el.classList.add('success') + // Remove success a little bit sooner than we change the tooltip + // So that we can use CSS to hide the copybutton first + setTimeout(() => el.classList.remove('success'), timeoutSuccessClass) + setTimeout(() => el.setAttribute('data-tooltip', oldText), timeoutIcon) +} + +// Changes the copy button icon for two seconds, then changes it back +const temporarilyChangeIcon = (el) => { + el.innerHTML = iconCheck; + setTimeout(() => {el.innerHTML = iconCopy}, timeoutIcon) +} + +const addCopyButtonToCodeCells = () => { + // If ClipboardJS hasn't loaded, wait a bit and try again. This + // happens because we load ClipboardJS asynchronously. + if (window.ClipboardJS === undefined) { + setTimeout(addCopyButtonToCodeCells, 250) + return + } + + // Add copybuttons to all of our code cells + const COPYBUTTON_SELECTOR = 'div.highlight pre'; + const codeCells = document.querySelectorAll(COPYBUTTON_SELECTOR) + codeCells.forEach((codeCell, index) => { + const id = codeCellId(index) + codeCell.setAttribute('id', id) + + const clipboardButton = id => + `` + codeCell.insertAdjacentHTML('afterend', clipboardButton(id)) + }) + +function escapeRegExp(string) { + return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string +} + +/** + * Removes excluded text from a Node. + * + * @param {Node} target Node to filter. + * @param {string} exclude CSS selector of nodes to exclude. + * @returns {DOMString} Text from `target` with text removed. + */ +function filterText(target, exclude) { + const clone = target.cloneNode(true); // clone as to not modify the live DOM + if (exclude) { + // remove excluded nodes + clone.querySelectorAll(exclude).forEach(node => node.remove()); + } + return clone.innerText; +} + +// Callback when a copy button is clicked. Will be passed the node that was clicked +// should then grab the text and replace pieces of text that shouldn't be used in output +function formatCopyText(textContent, copybuttonPromptText, isRegexp = false, onlyCopyPromptLines = true, removePrompts = true, copyEmptyLines = true, lineContinuationChar = "", hereDocDelim = "") { + var regexp; + var match; + + // Do we check for line continuation characters and "HERE-documents"? + var useLineCont = !!lineContinuationChar + var useHereDoc = !!hereDocDelim + + // create regexp to capture prompt and remaining line + if (isRegexp) { + regexp = new RegExp('^(' + copybuttonPromptText + ')(.*)') + } else { + regexp = new RegExp('^(' + escapeRegExp(copybuttonPromptText) + ')(.*)') + } + + const outputLines = []; + var promptFound = false; + var gotLineCont = false; + var gotHereDoc = false; + const lineGotPrompt = []; + for (const line of textContent.split('\n')) { + match = line.match(regexp) + if (match || gotLineCont || gotHereDoc) { + promptFound = regexp.test(line) + lineGotPrompt.push(promptFound) + if (removePrompts && promptFound) { + outputLines.push(match[2]) + } else { + outputLines.push(line) + } + gotLineCont = line.endsWith(lineContinuationChar) & useLineCont + if (line.includes(hereDocDelim) & useHereDoc) + gotHereDoc = !gotHereDoc + } else if (!onlyCopyPromptLines) { + outputLines.push(line) + } else if (copyEmptyLines && line.trim() === '') { + outputLines.push(line) + } + } + + // If no lines with the prompt were found then just use original lines + if (lineGotPrompt.some(v => v === true)) { + textContent = outputLines.join('\n'); + } + + // Remove a trailing newline to avoid auto-running when pasting + if (textContent.endsWith("\n")) { + textContent = textContent.slice(0, -1) + } + return textContent +} + + +var copyTargetText = (trigger) => { + var target = document.querySelector(trigger.attributes['data-clipboard-target'].value); + + // get filtered text + let exclude = '.linenos'; + + let text = filterText(target, exclude); + return formatCopyText(text, '>>> |\\.\\.\\. |\\$ |In \\[\\d*\\]: | {2,5}\\.\\.\\.: | {5,8}: ', true, true, true, true, '', '') +} + + // Initialize with a callback so we can modify the text before copy + const clipboard = new ClipboardJS('.copybtn', {text: copyTargetText}) + + // Update UI with error/success messages + clipboard.on('success', event => { + clearSelection() + temporarilyChangeTooltip(event.trigger, messages[locale]['copy'], messages[locale]['copy_success']) + temporarilyChangeIcon(event.trigger) + }) + + clipboard.on('error', event => { + temporarilyChangeTooltip(event.trigger, messages[locale]['copy'], messages[locale]['copy_failure']) + }) +} + +runWhenDOMLoaded(addCopyButtonToCodeCells) \ No newline at end of file diff --git a/3.1.0/_static/copybutton_funcs.js b/3.1.0/_static/copybutton_funcs.js new file mode 100644 index 000000000..dbe1aaad7 --- /dev/null +++ b/3.1.0/_static/copybutton_funcs.js @@ -0,0 +1,73 @@ +function escapeRegExp(string) { + return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string +} + +/** + * Removes excluded text from a Node. + * + * @param {Node} target Node to filter. + * @param {string} exclude CSS selector of nodes to exclude. + * @returns {DOMString} Text from `target` with text removed. + */ +export function filterText(target, exclude) { + const clone = target.cloneNode(true); // clone as to not modify the live DOM + if (exclude) { + // remove excluded nodes + clone.querySelectorAll(exclude).forEach(node => node.remove()); + } + return clone.innerText; +} + +// Callback when a copy button is clicked. Will be passed the node that was clicked +// should then grab the text and replace pieces of text that shouldn't be used in output +export function formatCopyText(textContent, copybuttonPromptText, isRegexp = false, onlyCopyPromptLines = true, removePrompts = true, copyEmptyLines = true, lineContinuationChar = "", hereDocDelim = "") { + var regexp; + var match; + + // Do we check for line continuation characters and "HERE-documents"? + var useLineCont = !!lineContinuationChar + var useHereDoc = !!hereDocDelim + + // create regexp to capture prompt and remaining line + if (isRegexp) { + regexp = new RegExp('^(' + copybuttonPromptText + ')(.*)') + } else { + regexp = new RegExp('^(' + escapeRegExp(copybuttonPromptText) + ')(.*)') + } + + const outputLines = []; + var promptFound = false; + var gotLineCont = false; + var gotHereDoc = false; + const lineGotPrompt = []; + for (const line of textContent.split('\n')) { + match = line.match(regexp) + if (match || gotLineCont || gotHereDoc) { + promptFound = regexp.test(line) + lineGotPrompt.push(promptFound) + if (removePrompts && promptFound) { + outputLines.push(match[2]) + } else { + outputLines.push(line) + } + gotLineCont = line.endsWith(lineContinuationChar) & useLineCont + if (line.includes(hereDocDelim) & useHereDoc) + gotHereDoc = !gotHereDoc + } else if (!onlyCopyPromptLines) { + outputLines.push(line) + } else if (copyEmptyLines && line.trim() === '') { + outputLines.push(line) + } + } + + // If no lines with the prompt were found then just use original lines + if (lineGotPrompt.some(v => v === true)) { + textContent = outputLines.join('\n'); + } + + // Remove a trailing newline to avoid auto-running when pasting + if (textContent.endsWith("\n")) { + textContent = textContent.slice(0, -1) + } + return textContent +} diff --git a/3.1.0/_static/design-tabs.js b/3.1.0/_static/design-tabs.js new file mode 100644 index 000000000..b25bd6a4f --- /dev/null +++ b/3.1.0/_static/design-tabs.js @@ -0,0 +1,101 @@ +// @ts-check + +// Extra JS capability for selected tabs to be synced +// The selection is stored in local storage so that it persists across page loads. + +/** + * @type {Record} + */ +let sd_id_to_elements = {}; +const storageKeyPrefix = "sphinx-design-tab-id-"; + +/** + * Create a key for a tab element. + * @param {HTMLElement} el - The tab element. + * @returns {[string, string, string] | null} - The key. + * + */ +function create_key(el) { + let syncId = el.getAttribute("data-sync-id"); + let syncGroup = el.getAttribute("data-sync-group"); + if (!syncId || !syncGroup) return null; + return [syncGroup, syncId, syncGroup + "--" + syncId]; +} + +/** + * Initialize the tab selection. + * + */ +function ready() { + // Find all tabs with sync data + + /** @type {string[]} */ + let groups = []; + + document.querySelectorAll(".sd-tab-label").forEach((label) => { + if (label instanceof HTMLElement) { + let data = create_key(label); + if (data) { + let [group, id, key] = data; + + // add click event listener + // @ts-ignore + label.onclick = onSDLabelClick; + + // store map of key to elements + if (!sd_id_to_elements[key]) { + sd_id_to_elements[key] = []; + } + sd_id_to_elements[key].push(label); + + if (groups.indexOf(group) === -1) { + groups.push(group); + // Check if a specific tab has been selected via URL parameter + const tabParam = new URLSearchParams(window.location.search).get( + group + ); + if (tabParam) { + console.log( + "sphinx-design: Selecting tab id for group '" + + group + + "' from URL parameter: " + + tabParam + ); + window.sessionStorage.setItem(storageKeyPrefix + group, tabParam); + } + } + + // Check is a specific tab has been selected previously + let previousId = window.sessionStorage.getItem( + storageKeyPrefix + group + ); + if (previousId === id) { + // console.log( + // "sphinx-design: Selecting tab from session storage: " + id + // ); + // @ts-ignore + label.previousElementSibling.checked = true; + } + } + } + }); +} + +/** + * Activate other tabs with the same sync id. + * + * @this {HTMLElement} - The element that was clicked. + */ +function onSDLabelClick() { + let data = create_key(this); + if (!data) return; + let [group, id, key] = data; + for (const label of sd_id_to_elements[key]) { + if (label === this) continue; + // @ts-ignore + label.previousElementSibling.checked = true; + } + window.sessionStorage.setItem(storageKeyPrefix + group, id); +} + +document.addEventListener("DOMContentLoaded", ready, false); diff --git a/3.1.0/_static/doctools.js b/3.1.0/_static/doctools.js new file mode 100644 index 000000000..4d67807d1 --- /dev/null +++ b/3.1.0/_static/doctools.js @@ -0,0 +1,156 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Base JavaScript utilities for all Sphinx HTML documentation. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", +]); + +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); + } +}; + +/** + * Small JavaScript module for the documentation. + */ +const Documentation = { + init: () => { + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); + }, + + /** + * i18n support + */ + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } + }, + + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; + }, + + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; + }, + + /** + * helper function to focus on search bar + */ + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); + }, + + /** + * Initialise the domain index toggle buttons + */ + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; + + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); + }, + + initOnKeyListeners: () => { + // only install a listener if it is really needed + if ( + !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; + // bail with special keys + if (event.altKey || event.ctrlKey || event.metaKey) return; + + if (!event.shiftKey) { + switch (event.key) { + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; + } + } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } + }); + }, +}; + +// quick alias for translations +const _ = Documentation.gettext; + +_ready(Documentation.init); diff --git a/3.1.0/_static/documentation_options.js b/3.1.0/_static/documentation_options.js new file mode 100644 index 000000000..6b4341148 --- /dev/null +++ b/3.1.0/_static/documentation_options.js @@ -0,0 +1,13 @@ +const DOCUMENTATION_OPTIONS = { + VERSION: '3.1.0', + LANGUAGE: 'en', + COLLAPSE_INDEX: false, + BUILDER: 'html', + FILE_SUFFIX: '.html', + LINK_SUFFIX: '.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt', + NAVIGATION_WITH_KEYS: true, + SHOW_SEARCH_SUMMARY: true, + ENABLE_SEARCH_SHORTCUTS: true, +}; \ No newline at end of file diff --git a/3.1.0/_static/file.png b/3.1.0/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..a858a410e4faa62ce324d814e4b816fff83a6fb3 GIT binary patch literal 286 zcmV+(0pb3MP)s`hMrGg#P~ix$^RISR_I47Y|r1 z_CyJOe}D1){SET-^Amu_i71Lt6eYfZjRyw@I6OQAIXXHDfiX^GbOlHe=Ae4>0m)d(f|Me07*qoM6N<$f}vM^LjV8( literal 0 HcmV?d00001 diff --git a/3.1.0/_static/graphviz.css b/3.1.0/_static/graphviz.css new file mode 100644 index 000000000..027576e34 --- /dev/null +++ b/3.1.0/_static/graphviz.css @@ -0,0 +1,19 @@ +/* + * graphviz.css + * ~~~~~~~~~~~~ + * + * Sphinx stylesheet -- graphviz extension. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +img.graphviz { + border: 0; + max-width: 100%; +} + +object.graphviz { + max-width: 100%; +} diff --git a/3.1.0/_static/ibek-favicon.ico b/3.1.0/_static/ibek-favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..1c42a8e09f5f0cf30186880733673a958c7373a3 GIT binary patch literal 14318 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 literal 0 HcmV?d00001 diff --git a/3.1.0/_static/ibek-logo.svg b/3.1.0/_static/ibek-logo.svg new file mode 100644 index 000000000..4adbb7dc2 --- /dev/null +++ b/3.1.0/_static/ibek-logo.svg @@ -0,0 +1,177 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/3.1.0/_static/language_data.js b/3.1.0/_static/language_data.js new file mode 100644 index 000000000..367b8ed81 --- /dev/null +++ b/3.1.0/_static/language_data.js @@ -0,0 +1,199 @@ +/* + * language_data.js + * ~~~~~~~~~~~~~~~~ + * + * This script contains the language-specific data used by searchtools.js, + * namely the list of stopwords, stemmer, scorer and splitter. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; + + +/* Non-minified version is copied as a separate JS file, if available */ + +/** + * Porter Stemmer + */ +var Stemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + diff --git a/3.1.0/_static/minus.png b/3.1.0/_static/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..d96755fdaf8bb2214971e0db9c1fd3077d7c419d GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu=nj kDsEF_5m^0CR;1wuP-*O&G^0G}KYk!hp00i_>zopr08q^qX#fBK literal 0 HcmV?d00001 diff --git a/3.1.0/_static/plus.png b/3.1.0/_static/plus.png new file mode 100644 index 0000000000000000000000000000000000000000..7107cec93a979b9a5f64843235a16651d563ce2d GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu>-2 m3q%Vub%g%s<8sJhVPMczOq}xhg9DJoz~JfX=d#Wzp$Pyb1r*Kz literal 0 HcmV?d00001 diff --git a/3.1.0/_static/pygments.css b/3.1.0/_static/pygments.css new file mode 100644 index 000000000..012e6a00a --- /dev/null +++ b/3.1.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/3.1.0/_static/scripts/bootstrap.js b/3.1.0/_static/scripts/bootstrap.js new file mode 100644 index 000000000..c8178debb --- /dev/null +++ b/3.1.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,beforeRead:()=>_,beforeWrite:()=>A,bottom:()=>s,clippingParents:()=>d,computeStyles:()=>it,createPopper:()=>Dt,createPopperBase:()=>St,createPopperLite:()=>$t,detectOverflow:()=>_t,end:()=>h,eventListeners:()=>st,flip:()=>bt,hide:()=>wt,left:()=>r,main:()=>w,modifierPhases:()=>O,offset:()=>Et,placements:()=>g,popper:()=>f,popperGenerator:()=>Lt,popperOffsets:()=>At,preventOverflow:()=>Tt,read:()=>b,reference:()=>p,right:()=>o,start:()=>c,top:()=>n,variationPlacements:()=>m,viewport:()=>u,write:()=>T});var i={};t.r(i),t.d(i,{Alert:()=>Oe,Button:()=>ke,Carousel:()=>li,Collapse:()=>Ei,Dropdown:()=>Ki,Modal:()=>Ln,Offcanvas:()=>Kn,Popover:()=>bs,ScrollSpy:()=>Ls,Tab:()=>Js,Toast:()=>po,Tooltip:()=>fs});var n="top",s="bottom",o="right",r="left",a="auto",l=[n,s,o,r],c="start",h="end",d="clippingParents",u="viewport",f="popper",p="reference",m=l.reduce((function(t,e){return t.concat([e+"-"+c,e+"-"+h])}),[]),g=[].concat(l,[a]).reduce((function(t,e){return t.concat([e,e+"-"+c,e+"-"+h])}),[]),_="beforeRead",b="read",v="afterRead",y="beforeMain",w="main",E="afterMain",A="beforeWrite",T="write",C="afterWrite",O=[_,b,v,y,w,E,A,T,C];function x(t){return t?(t.nodeName||"").toLowerCase():null}function k(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function L(t){return t instanceof k(t).Element||t instanceof Element}function S(t){return t instanceof k(t).HTMLElement||t instanceof HTMLElement}function D(t){return"undefined"!=typeof ShadowRoot&&(t instanceof k(t).ShadowRoot||t instanceof ShadowRoot)}const $={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];S(s)&&x(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});S(n)&&x(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function I(t){return t.split("-")[0]}var N=Math.max,P=Math.min,M=Math.round;function j(){var t=navigator.userAgentData;return null!=t&&t.brands&&Array.isArray(t.brands)?t.brands.map((function(t){return t.brand+"/"+t.version})).join(" "):navigator.userAgent}function F(){return!/^((?!chrome|android).)*safari/i.test(j())}function H(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var n=t.getBoundingClientRect(),s=1,o=1;e&&S(t)&&(s=t.offsetWidth>0&&M(n.width)/t.offsetWidth||1,o=t.offsetHeight>0&&M(n.height)/t.offsetHeight||1);var r=(L(t)?k(t):window).visualViewport,a=!F()&&i,l=(n.left+(a&&r?r.offsetLeft:0))/s,c=(n.top+(a&&r?r.offsetTop:0))/o,h=n.width/s,d=n.height/o;return{width:h,height:d,top:c,right:l+h,bottom:c+d,left:l,x:l,y:c}}function B(t){var e=H(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function W(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&D(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function z(t){return k(t).getComputedStyle(t)}function R(t){return["table","td","th"].indexOf(x(t))>=0}function q(t){return((L(t)?t.ownerDocument:t.document)||window.document).documentElement}function V(t){return"html"===x(t)?t:t.assignedSlot||t.parentNode||(D(t)?t.host:null)||q(t)}function Y(t){return S(t)&&"fixed"!==z(t).position?t.offsetParent:null}function K(t){for(var e=k(t),i=Y(t);i&&R(i)&&"static"===z(i).position;)i=Y(i);return i&&("html"===x(i)||"body"===x(i)&&"static"===z(i).position)?e:i||function(t){var e=/firefox/i.test(j());if(/Trident/i.test(j())&&S(t)&&"fixed"===z(t).position)return null;var i=V(t);for(D(i)&&(i=i.host);S(i)&&["html","body"].indexOf(x(i))<0;){var n=z(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function Q(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function X(t,e,i){return N(t,P(e,i))}function U(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function G(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const J={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,a=t.name,c=t.options,h=i.elements.arrow,d=i.modifiersData.popperOffsets,u=I(i.placement),f=Q(u),p=[r,o].indexOf(u)>=0?"height":"width";if(h&&d){var m=function(t,e){return U("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:G(t,l))}(c.padding,i),g=B(h),_="y"===f?n:r,b="y"===f?s:o,v=i.rects.reference[p]+i.rects.reference[f]-d[f]-i.rects.popper[p],y=d[f]-i.rects.reference[f],w=K(h),E=w?"y"===f?w.clientHeight||0:w.clientWidth||0:0,A=v/2-y/2,T=m[_],C=E-g[p]-m[b],O=E/2-g[p]/2+A,x=X(T,O,C),k=f;i.modifiersData[a]=((e={})[k]=x,e.centerOffset=x-O,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&W(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Z(t){return t.split("-")[1]}var tt={top:"auto",right:"auto",bottom:"auto",left:"auto"};function et(t){var e,i=t.popper,a=t.popperRect,l=t.placement,c=t.variation,d=t.offsets,u=t.position,f=t.gpuAcceleration,p=t.adaptive,m=t.roundOffsets,g=t.isFixed,_=d.x,b=void 0===_?0:_,v=d.y,y=void 0===v?0:v,w="function"==typeof m?m({x:b,y}):{x:b,y};b=w.x,y=w.y;var E=d.hasOwnProperty("x"),A=d.hasOwnProperty("y"),T=r,C=n,O=window;if(p){var x=K(i),L="clientHeight",S="clientWidth";x===k(i)&&"static"!==z(x=q(i)).position&&"absolute"===u&&(L="scrollHeight",S="scrollWidth"),(l===n||(l===r||l===o)&&c===h)&&(C=s,y-=(g&&x===O&&O.visualViewport?O.visualViewport.height:x[L])-a.height,y*=f?1:-1),l!==r&&(l!==n&&l!==s||c!==h)||(T=o,b-=(g&&x===O&&O.visualViewport?O.visualViewport.width:x[S])-a.width,b*=f?1:-1)}var D,$=Object.assign({position:u},p&&tt),I=!0===m?function(t,e){var i=t.x,n=t.y,s=e.devicePixelRatio||1;return{x:M(i*s)/s||0,y:M(n*s)/s||0}}({x:b,y},k(i)):{x:b,y};return b=I.x,y=I.y,f?Object.assign({},$,((D={})[C]=A?"0":"",D[T]=E?"0":"",D.transform=(O.devicePixelRatio||1)<=1?"translate("+b+"px, "+y+"px)":"translate3d("+b+"px, "+y+"px, 0)",D)):Object.assign({},$,((e={})[C]=A?y+"px":"",e[T]=E?b+"px":"",e.transform="",e))}const it={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:I(e.placement),variation:Z(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,et(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,et(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var nt={passive:!0};const st={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=k(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,nt)})),a&&l.addEventListener("resize",i.update,nt),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,nt)})),a&&l.removeEventListener("resize",i.update,nt)}},data:{}};var ot={left:"right",right:"left",bottom:"top",top:"bottom"};function rt(t){return t.replace(/left|right|bottom|top/g,(function(t){return ot[t]}))}var at={start:"end",end:"start"};function lt(t){return t.replace(/start|end/g,(function(t){return at[t]}))}function ct(t){var e=k(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function ht(t){return H(q(t)).left+ct(t).scrollLeft}function dt(t){var e=z(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function ut(t){return["html","body","#document"].indexOf(x(t))>=0?t.ownerDocument.body:S(t)&&dt(t)?t:ut(V(t))}function ft(t,e){var i;void 0===e&&(e=[]);var n=ut(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=k(n),r=s?[o].concat(o.visualViewport||[],dt(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(ft(V(r)))}function pt(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function mt(t,e,i){return e===u?pt(function(t,e){var i=k(t),n=q(t),s=i.visualViewport,o=n.clientWidth,r=n.clientHeight,a=0,l=0;if(s){o=s.width,r=s.height;var c=F();(c||!c&&"fixed"===e)&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+ht(t),y:l}}(t,i)):L(e)?function(t,e){var i=H(t,!1,"fixed"===e);return i.top=i.top+t.clientTop,i.left=i.left+t.clientLeft,i.bottom=i.top+t.clientHeight,i.right=i.left+t.clientWidth,i.width=t.clientWidth,i.height=t.clientHeight,i.x=i.left,i.y=i.top,i}(e,i):pt(function(t){var e,i=q(t),n=ct(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=N(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=N(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+ht(t),l=-n.scrollTop;return"rtl"===z(s||i).direction&&(a+=N(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(q(t)))}function gt(t){var e,i=t.reference,a=t.element,l=t.placement,d=l?I(l):null,u=l?Z(l):null,f=i.x+i.width/2-a.width/2,p=i.y+i.height/2-a.height/2;switch(d){case n:e={x:f,y:i.y-a.height};break;case s:e={x:f,y:i.y+i.height};break;case o:e={x:i.x+i.width,y:p};break;case r:e={x:i.x-a.width,y:p};break;default:e={x:i.x,y:i.y}}var m=d?Q(d):null;if(null!=m){var g="y"===m?"height":"width";switch(u){case c:e[m]=e[m]-(i[g]/2-a[g]/2);break;case h:e[m]=e[m]+(i[g]/2-a[g]/2)}}return e}function _t(t,e){void 0===e&&(e={});var i=e,r=i.placement,a=void 0===r?t.placement:r,c=i.strategy,h=void 0===c?t.strategy:c,m=i.boundary,g=void 0===m?d:m,_=i.rootBoundary,b=void 0===_?u:_,v=i.elementContext,y=void 0===v?f:v,w=i.altBoundary,E=void 0!==w&&w,A=i.padding,T=void 0===A?0:A,C=U("number"!=typeof T?T:G(T,l)),O=y===f?p:f,k=t.rects.popper,D=t.elements[E?O:y],$=function(t,e,i,n){var s="clippingParents"===e?function(t){var e=ft(V(t)),i=["absolute","fixed"].indexOf(z(t).position)>=0&&S(t)?K(t):t;return L(i)?e.filter((function(t){return L(t)&&W(t,i)&&"body"!==x(t)})):[]}(t):[].concat(e),o=[].concat(s,[i]),r=o[0],a=o.reduce((function(e,i){var s=mt(t,i,n);return e.top=N(s.top,e.top),e.right=P(s.right,e.right),e.bottom=P(s.bottom,e.bottom),e.left=N(s.left,e.left),e}),mt(t,r,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}(L(D)?D:D.contextElement||q(t.elements.popper),g,b,h),I=H(t.elements.reference),M=gt({reference:I,element:k,strategy:"absolute",placement:a}),j=pt(Object.assign({},k,M)),F=y===f?j:I,B={top:$.top-F.top+C.top,bottom:F.bottom-$.bottom+C.bottom,left:$.left-F.left+C.left,right:F.right-$.right+C.right},R=t.modifiersData.offset;if(y===f&&R){var Y=R[a];Object.keys(B).forEach((function(t){var e=[o,s].indexOf(t)>=0?1:-1,i=[n,s].indexOf(t)>=0?"y":"x";B[t]+=Y[i]*e}))}return B}const bt={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,h=t.name;if(!e.modifiersData[h]._skip){for(var d=i.mainAxis,u=void 0===d||d,f=i.altAxis,p=void 0===f||f,_=i.fallbackPlacements,b=i.padding,v=i.boundary,y=i.rootBoundary,w=i.altBoundary,E=i.flipVariations,A=void 0===E||E,T=i.allowedAutoPlacements,C=e.options.placement,O=I(C),x=_||(O!==C&&A?function(t){if(I(t)===a)return[];var e=rt(t);return[lt(t),e,lt(e)]}(C):[rt(C)]),k=[C].concat(x).reduce((function(t,i){return t.concat(I(i)===a?function(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,c=i.allowedAutoPlacements,h=void 0===c?g:c,d=Z(n),u=d?a?m:m.filter((function(t){return Z(t)===d})):l,f=u.filter((function(t){return h.indexOf(t)>=0}));0===f.length&&(f=u);var p=f.reduce((function(e,i){return e[i]=_t(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[I(i)],e}),{});return Object.keys(p).sort((function(t,e){return p[t]-p[e]}))}(e,{placement:i,boundary:v,rootBoundary:y,padding:b,flipVariations:A,allowedAutoPlacements:T}):i)}),[]),L=e.rects.reference,S=e.rects.popper,D=new Map,$=!0,N=k[0],P=0;P=0,B=H?"width":"height",W=_t(e,{placement:M,boundary:v,rootBoundary:y,altBoundary:w,padding:b}),z=H?F?o:r:F?s:n;L[B]>S[B]&&(z=rt(z));var R=rt(z),q=[];if(u&&q.push(W[j]<=0),p&&q.push(W[z]<=0,W[R]<=0),q.every((function(t){return t}))){N=M,$=!1;break}D.set(M,q)}if($)for(var V=function(t){var e=k.find((function(e){var i=D.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return N=e,"break"},Y=A?3:1;Y>0&&"break"!==V(Y);Y--);e.placement!==N&&(e.modifiersData[h]._skip=!0,e.placement=N,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function vt(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function yt(t){return[n,o,s,r].some((function(e){return t[e]>=0}))}const wt={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=_t(e,{elementContext:"reference"}),a=_t(e,{altBoundary:!0}),l=vt(r,n),c=vt(a,s,o),h=yt(l),d=yt(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":d})}},Et={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,s=t.name,a=i.offset,l=void 0===a?[0,0]:a,c=g.reduce((function(t,i){return t[i]=function(t,e,i){var s=I(t),a=[r,n].indexOf(s)>=0?-1:1,l="function"==typeof i?i(Object.assign({},e,{placement:t})):i,c=l[0],h=l[1];return c=c||0,h=(h||0)*a,[r,o].indexOf(s)>=0?{x:h,y:c}:{x:c,y:h}}(i,e.rects,l),t}),{}),h=c[e.placement],d=h.x,u=h.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=d,e.modifiersData.popperOffsets.y+=u),e.modifiersData[s]=c}},At={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=gt({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},Tt={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,a=t.name,l=i.mainAxis,h=void 0===l||l,d=i.altAxis,u=void 0!==d&&d,f=i.boundary,p=i.rootBoundary,m=i.altBoundary,g=i.padding,_=i.tether,b=void 0===_||_,v=i.tetherOffset,y=void 0===v?0:v,w=_t(e,{boundary:f,rootBoundary:p,padding:g,altBoundary:m}),E=I(e.placement),A=Z(e.placement),T=!A,C=Q(E),O="x"===C?"y":"x",x=e.modifiersData.popperOffsets,k=e.rects.reference,L=e.rects.popper,S="function"==typeof y?y(Object.assign({},e.rects,{placement:e.placement})):y,D="number"==typeof S?{mainAxis:S,altAxis:S}:Object.assign({mainAxis:0,altAxis:0},S),$=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,M={x:0,y:0};if(x){if(h){var j,F="y"===C?n:r,H="y"===C?s:o,W="y"===C?"height":"width",z=x[C],R=z+w[F],q=z-w[H],V=b?-L[W]/2:0,Y=A===c?k[W]:L[W],U=A===c?-L[W]:-k[W],G=e.elements.arrow,J=b&&G?B(G):{width:0,height:0},tt=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},et=tt[F],it=tt[H],nt=X(0,k[W],J[W]),st=T?k[W]/2-V-nt-et-D.mainAxis:Y-nt-et-D.mainAxis,ot=T?-k[W]/2+V+nt+it+D.mainAxis:U+nt+it+D.mainAxis,rt=e.elements.arrow&&K(e.elements.arrow),at=rt?"y"===C?rt.clientTop||0:rt.clientLeft||0:0,lt=null!=(j=null==$?void 0:$[C])?j:0,ct=z+ot-lt,ht=X(b?P(R,z+st-lt-at):R,z,b?N(q,ct):q);x[C]=ht,M[C]=ht-z}if(u){var dt,ut="x"===C?n:r,ft="x"===C?s:o,pt=x[O],mt="y"===O?"height":"width",gt=pt+w[ut],bt=pt-w[ft],vt=-1!==[n,r].indexOf(E),yt=null!=(dt=null==$?void 0:$[O])?dt:0,wt=vt?gt:pt-k[mt]-L[mt]-yt+D.altAxis,Et=vt?pt+k[mt]+L[mt]-yt-D.altAxis:bt,At=b&&vt?function(t,e,i){var n=X(t,e,i);return n>i?i:n}(wt,pt,Et):X(b?wt:gt,pt,b?Et:bt);x[O]=At,M[O]=At-pt}e.modifiersData[a]=M}},requiresIfExists:["offset"]};function Ct(t,e,i){void 0===i&&(i=!1);var n,s,o=S(e),r=S(e)&&function(t){var e=t.getBoundingClientRect(),i=M(e.width)/t.offsetWidth||1,n=M(e.height)/t.offsetHeight||1;return 1!==i||1!==n}(e),a=q(e),l=H(t,r,i),c={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(o||!o&&!i)&&(("body"!==x(e)||dt(a))&&(c=(n=e)!==k(n)&&S(n)?{scrollLeft:(s=n).scrollLeft,scrollTop:s.scrollTop}:ct(n)),S(e)?((h=H(e,!0)).x+=e.clientLeft,h.y+=e.clientTop):a&&(h.x=ht(a))),{x:l.left+c.scrollLeft-h.x,y:l.top+c.scrollTop-h.y,width:l.width,height:l.height}}function Ot(t){var e=new Map,i=new Set,n=[];function s(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!i.has(t)){var n=e.get(t);n&&s(n)}})),n.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||s(t)})),n}var xt={placement:"bottom",modifiers:[],strategy:"absolute"};function kt(){for(var t=arguments.length,e=new Array(t),i=0;iIt.has(t)&&It.get(t).get(e)||null,remove(t,e){if(!It.has(t))return;const i=It.get(t);i.delete(e),0===i.size&&It.delete(t)}},Pt="transitionend",Mt=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\s"#']+)/g,((t,e)=>`#${CSS.escape(e)}`))),t),jt=t=>{t.dispatchEvent(new Event(Pt))},Ft=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),Ht=t=>Ft(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(Mt(t)):null,Bt=t=>{if(!Ft(t)||0===t.getClientRects().length)return!1;const e="visible"===getComputedStyle(t).getPropertyValue("visibility"),i=t.closest("details:not([open])");if(!i)return e;if(i!==t){const e=t.closest("summary");if(e&&e.parentNode!==i)return!1;if(null===e)return!1}return e},Wt=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),zt=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?zt(t.parentNode):null},Rt=()=>{},qt=t=>{t.offsetHeight},Vt=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,Yt=[],Kt=()=>"rtl"===document.documentElement.dir,Qt=t=>{var e;e=()=>{const e=Vt();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(Yt.length||document.addEventListener("DOMContentLoaded",(()=>{for(const t of Yt)t()})),Yt.push(e)):e()},Xt=(t,e=[],i=t)=>"function"==typeof t?t(...e):i,Ut=(t,e,i=!0)=>{if(!i)return void Xt(t);const n=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let s=!1;const o=({target:i})=>{i===e&&(s=!0,e.removeEventListener(Pt,o),Xt(t))};e.addEventListener(Pt,o),setTimeout((()=>{s||jt(e)}),n)},Gt=(t,e,i,n)=>{const s=t.length;let o=t.indexOf(e);return-1===o?!i&&n?t[s-1]:t[0]:(o+=i?1:-1,n&&(o=(o+s)%s),t[Math.max(0,Math.min(o,s-1))])},Jt=/[^.]*(?=\..*)\.|.*/,Zt=/\..*/,te=/::\d+$/,ee={};let ie=1;const ne={mouseenter:"mouseover",mouseleave:"mouseout"},se=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function oe(t,e){return e&&`${e}::${ie++}`||t.uidEvent||ie++}function re(t){const e=oe(t);return t.uidEvent=e,ee[e]=ee[e]||{},ee[e]}function ae(t,e,i=null){return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===i))}function le(t,e,i){const n="string"==typeof e,s=n?i:e||i;let o=ue(t);return se.has(o)||(o=t),[n,s,o]}function ce(t,e,i,n,s){if("string"!=typeof e||!t)return;let[o,r,a]=le(e,i,n);if(e in ne){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=re(t),c=l[a]||(l[a]={}),h=ae(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=oe(r,e.replace(Jt,"")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return pe(s,{delegateTarget:r}),n.oneOff&&fe.off(t,s.type,e,i),i.apply(r,[s])}}(t,i,r):function(t,e){return function i(n){return pe(n,{delegateTarget:t}),i.oneOff&&fe.off(t,n.type,e),e.apply(t,[n])}}(t,r);u.delegationSelector=o?i:null,u.callable=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function he(t,e,i,n,s){const o=ae(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function de(t,e,i,n){const s=e[i]||{};for(const[o,r]of Object.entries(s))o.includes(n)&&he(t,e,i,r.callable,r.delegationSelector)}function ue(t){return t=t.replace(Zt,""),ne[t]||t}const fe={on(t,e,i,n){ce(t,e,i,n,!1)},one(t,e,i,n){ce(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=le(e,i,n),a=r!==e,l=re(t),c=l[r]||{},h=e.startsWith(".");if(void 0===o){if(h)for(const i of Object.keys(l))de(t,l,i,e.slice(1));for(const[i,n]of Object.entries(c)){const s=i.replace(te,"");a&&!e.includes(s)||he(t,l,r,n.callable,n.delegationSelector)}}else{if(!Object.keys(c).length)return;he(t,l,r,o,s?i:null)}},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=Vt();let s=null,o=!0,r=!0,a=!1;e!==ue(e)&&n&&(s=n.Event(e,i),n(t).trigger(s),o=!s.isPropagationStopped(),r=!s.isImmediatePropagationStopped(),a=s.isDefaultPrevented());const l=pe(new Event(e,{bubbles:o,cancelable:!0}),i);return a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&s&&s.preventDefault(),l}};function pe(t,e={}){for(const[i,n]of Object.entries(e))try{t[i]=n}catch(e){Object.defineProperty(t,i,{configurable:!0,get:()=>n})}return t}function me(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function ge(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const _e={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${ge(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${ge(e)}`)},getDataAttributes(t){if(!t)return{};const e={},i=Object.keys(t.dataset).filter((t=>t.startsWith("bs")&&!t.startsWith("bsConfig")));for(const n of i){let i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=me(t.dataset[n])}return e},getDataAttribute:(t,e)=>me(t.getAttribute(`data-bs-${ge(e)}`))};class be{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const i=Ft(e)?_e.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof i?i:{},...Ft(e)?_e.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const[n,s]of Object.entries(e)){const e=t[n],o=Ft(e)?"element":null==(i=e)?`${i}`:Object.prototype.toString.call(i).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(s).test(o))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${o}" but expected type "${s}".`)}var i}}class ve extends be{constructor(t,e){super(),(t=Ht(t))&&(this._element=t,this._config=this._getConfig(e),Nt.set(this._element,this.constructor.DATA_KEY,this))}dispose(){Nt.remove(this._element,this.constructor.DATA_KEY),fe.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){Ut(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return Nt.get(Ht(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.3.3"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const ye=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`),e=i&&"#"!==i?i.trim():null}return e?e.split(",").map((t=>Mt(t))).join(","):null},we={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let n=t.parentNode.closest(e);for(;n;)i.push(n),n=n.parentNode.closest(e);return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>`${t}:not([tabindex^="-"])`)).join(",");return this.find(e,t).filter((t=>!Wt(t)&&Bt(t)))},getSelectorFromElement(t){const e=ye(t);return e&&we.findOne(e)?e:null},getElementFromSelector(t){const e=ye(t);return e?we.findOne(e):null},getMultipleElementsFromSelector(t){const e=ye(t);return e?we.find(e):[]}},Ee=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,n=t.NAME;fe.on(document,i,`[data-bs-dismiss="${n}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),Wt(this))return;const s=we.getElementFromSelector(this)||this.closest(`.${n}`);t.getOrCreateInstance(s)[e]()}))},Ae=".bs.alert",Te=`close${Ae}`,Ce=`closed${Ae}`;class Oe extends ve{static get NAME(){return"alert"}close(){if(fe.trigger(this._element,Te).defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),fe.trigger(this._element,Ce),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=Oe.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}Ee(Oe,"close"),Qt(Oe);const xe='[data-bs-toggle="button"]';class ke extends ve{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=ke.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}fe.on(document,"click.bs.button.data-api",xe,(t=>{t.preventDefault();const e=t.target.closest(xe);ke.getOrCreateInstance(e).toggle()})),Qt(ke);const Le=".bs.swipe",Se=`touchstart${Le}`,De=`touchmove${Le}`,$e=`touchend${Le}`,Ie=`pointerdown${Le}`,Ne=`pointerup${Le}`,Pe={endCallback:null,leftCallback:null,rightCallback:null},Me={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class je extends be{constructor(t,e){super(),this._element=t,t&&je.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return Pe}static get DefaultType(){return Me}static get NAME(){return"swipe"}dispose(){fe.off(this._element,Le)}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),Xt(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&Xt(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(fe.on(this._element,Ie,(t=>this._start(t))),fe.on(this._element,Ne,(t=>this._end(t))),this._element.classList.add("pointer-event")):(fe.on(this._element,Se,(t=>this._start(t))),fe.on(this._element,De,(t=>this._move(t))),fe.on(this._element,$e,(t=>this._end(t))))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&("pen"===t.pointerType||"touch"===t.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const Fe=".bs.carousel",He=".data-api",Be="ArrowLeft",We="ArrowRight",ze="next",Re="prev",qe="left",Ve="right",Ye=`slide${Fe}`,Ke=`slid${Fe}`,Qe=`keydown${Fe}`,Xe=`mouseenter${Fe}`,Ue=`mouseleave${Fe}`,Ge=`dragstart${Fe}`,Je=`load${Fe}${He}`,Ze=`click${Fe}${He}`,ti="carousel",ei="active",ii=".active",ni=".carousel-item",si=ii+ni,oi={[Be]:Ve,[We]:qe},ri={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},ai={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class li extends ve{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=we.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===ti&&this.cycle()}static get Default(){return ri}static get DefaultType(){return ai}static get NAME(){return"carousel"}next(){this._slide(ze)}nextWhenVisible(){!document.hidden&&Bt(this._element)&&this.next()}prev(){this._slide(Re)}pause(){this._isSliding&&jt(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?fe.one(this._element,Ke,(()=>this.cycle())):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void fe.one(this._element,Ke,(()=>this.to(t)));const i=this._getItemIndex(this._getActive());if(i===t)return;const n=t>i?ze:Re;this._slide(n,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&fe.on(this._element,Qe,(t=>this._keydown(t))),"hover"===this._config.pause&&(fe.on(this._element,Xe,(()=>this.pause())),fe.on(this._element,Ue,(()=>this._maybeEnableCycle()))),this._config.touch&&je.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of we.find(".carousel-item img",this._element))fe.on(t,Ge,(t=>t.preventDefault()));const t={leftCallback:()=>this._slide(this._directionToOrder(qe)),rightCallback:()=>this._slide(this._directionToOrder(Ve)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new je(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=oi[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=we.findOne(ii,this._indicatorsElement);e.classList.remove(ei),e.removeAttribute("aria-current");const i=we.findOne(`[data-bs-slide-to="${t}"]`,this._indicatorsElement);i&&(i.classList.add(ei),i.setAttribute("aria-current","true"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute("data-bs-interval"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const i=this._getActive(),n=t===ze,s=e||Gt(this._getItems(),i,n,this._config.wrap);if(s===i)return;const o=this._getItemIndex(s),r=e=>fe.trigger(this._element,e,{relatedTarget:s,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r(Ye).defaultPrevented)return;if(!i||!s)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=s;const l=n?"carousel-item-start":"carousel-item-end",c=n?"carousel-item-next":"carousel-item-prev";s.classList.add(c),qt(s),i.classList.add(l),s.classList.add(l),this._queueCallback((()=>{s.classList.remove(l,c),s.classList.add(ei),i.classList.remove(ei,c,l),this._isSliding=!1,r(Ke)}),i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return we.findOne(si,this._element)}_getItems(){return we.find(ni,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return Kt()?t===qe?Re:ze:t===qe?ze:Re}_orderToDirection(t){return Kt()?t===Re?qe:Ve:t===Re?Ve:qe}static jQueryInterface(t){return this.each((function(){const e=li.getOrCreateInstance(this,t);if("number"!=typeof t){if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}else e.to(t)}))}}fe.on(document,Ze,"[data-bs-slide], [data-bs-slide-to]",(function(t){const e=we.getElementFromSelector(this);if(!e||!e.classList.contains(ti))return;t.preventDefault();const i=li.getOrCreateInstance(e),n=this.getAttribute("data-bs-slide-to");return n?(i.to(n),void i._maybeEnableCycle()):"next"===_e.getDataAttribute(this,"slide")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())})),fe.on(window,Je,(()=>{const t=we.find('[data-bs-ride="carousel"]');for(const e of t)li.getOrCreateInstance(e)})),Qt(li);const ci=".bs.collapse",hi=`show${ci}`,di=`shown${ci}`,ui=`hide${ci}`,fi=`hidden${ci}`,pi=`click${ci}.data-api`,mi="show",gi="collapse",_i="collapsing",bi=`:scope .${gi} .${gi}`,vi='[data-bs-toggle="collapse"]',yi={parent:null,toggle:!0},wi={parent:"(null|element)",toggle:"boolean"};class Ei extends ve{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const i=we.find(vi);for(const t of i){const e=we.getSelectorFromElement(t),i=we.find(e).filter((t=>t===this._element));null!==e&&i.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return yi}static get DefaultType(){return wi}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((t=>t!==this._element)).map((t=>Ei.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(fe.trigger(this._element,hi).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(gi),this._element.classList.add(_i),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(_i),this._element.classList.add(gi,mi),this._element.style[e]="",fe.trigger(this._element,di)}),this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(fe.trigger(this._element,ui).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,qt(this._element),this._element.classList.add(_i),this._element.classList.remove(gi,mi);for(const t of this._triggerArray){const e=we.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(_i),this._element.classList.add(gi),fe.trigger(this._element,fi)}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(mi)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=Ht(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(vi);for(const e of t){const t=we.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=we.find(bi,this._config.parent);return we.find(t,this._config.parent).filter((t=>!e.includes(t)))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)i.classList.toggle("collapsed",!e),i.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const i=Ei.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}fe.on(document,pi,vi,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of we.getMultipleElementsFromSelector(this))Ei.getOrCreateInstance(t,{toggle:!1}).toggle()})),Qt(Ei);const Ai="dropdown",Ti=".bs.dropdown",Ci=".data-api",Oi="ArrowUp",xi="ArrowDown",ki=`hide${Ti}`,Li=`hidden${Ti}`,Si=`show${Ti}`,Di=`shown${Ti}`,$i=`click${Ti}${Ci}`,Ii=`keydown${Ti}${Ci}`,Ni=`keyup${Ti}${Ci}`,Pi="show",Mi='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',ji=`${Mi}.${Pi}`,Fi=".dropdown-menu",Hi=Kt()?"top-end":"top-start",Bi=Kt()?"top-start":"top-end",Wi=Kt()?"bottom-end":"bottom-start",zi=Kt()?"bottom-start":"bottom-end",Ri=Kt()?"left-start":"right-start",qi=Kt()?"right-start":"left-start",Vi={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},Yi={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"};class Ki extends ve{constructor(t,e){super(t,e),this._popper=null,this._parent=this._element.parentNode,this._menu=we.next(this._element,Fi)[0]||we.prev(this._element,Fi)[0]||we.findOne(Fi,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return Vi}static get DefaultType(){return Yi}static get NAME(){return Ai}toggle(){return this._isShown()?this.hide():this.show()}show(){if(Wt(this._element)||this._isShown())return;const t={relatedTarget:this._element};if(!fe.trigger(this._element,Si,t).defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(".navbar-nav"))for(const t of[].concat(...document.body.children))fe.on(t,"mouseover",Rt);this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(Pi),this._element.classList.add(Pi),fe.trigger(this._element,Di,t)}}hide(){if(Wt(this._element)||!this._isShown())return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){if(!fe.trigger(this._element,ki,t).defaultPrevented){if("ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))fe.off(t,"mouseover",Rt);this._popper&&this._popper.destroy(),this._menu.classList.remove(Pi),this._element.classList.remove(Pi),this._element.setAttribute("aria-expanded","false"),_e.removeDataAttribute(this._menu,"popper"),fe.trigger(this._element,Li,t)}}_getConfig(t){if("object"==typeof(t=super._getConfig(t)).reference&&!Ft(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${Ai.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return t}_createPopper(){if(void 0===e)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let t=this._element;"parent"===this._config.reference?t=this._parent:Ft(this._config.reference)?t=Ht(this._config.reference):"object"==typeof this._config.reference&&(t=this._config.reference);const i=this._getPopperConfig();this._popper=Dt(t,this._menu,i)}_isShown(){return this._menu.classList.contains(Pi)}_getPlacement(){const t=this._parent;if(t.classList.contains("dropend"))return Ri;if(t.classList.contains("dropstart"))return qi;if(t.classList.contains("dropup-center"))return"top";if(t.classList.contains("dropdown-center"))return"bottom";const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?Bi:Hi:e?zi:Wi}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(_e.setDataAttribute(this._menu,"popper","static"),t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,...Xt(this._config.popperConfig,[t])}}_selectMenuItem({key:t,target:e}){const i=we.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter((t=>Bt(t)));i.length&&Gt(i,e,t===xi,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=Ki.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(2===t.button||"keyup"===t.type&&"Tab"!==t.key)return;const e=we.find(ji);for(const i of e){const e=Ki.getInstance(i);if(!e||!1===e._config.autoClose)continue;const n=t.composedPath(),s=n.includes(e._menu);if(n.includes(e._element)||"inside"===e._config.autoClose&&!s||"outside"===e._config.autoClose&&s)continue;if(e._menu.contains(t.target)&&("keyup"===t.type&&"Tab"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const o={relatedTarget:e._element};"click"===t.type&&(o.clickEvent=t),e._completeHide(o)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i="Escape"===t.key,n=[Oi,xi].includes(t.key);if(!n&&!i)return;if(e&&!i)return;t.preventDefault();const s=this.matches(Mi)?this:we.prev(this,Mi)[0]||we.next(this,Mi)[0]||we.findOne(Mi,t.delegateTarget.parentNode),o=Ki.getOrCreateInstance(s);if(n)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),s.focus())}}fe.on(document,Ii,Mi,Ki.dataApiKeydownHandler),fe.on(document,Ii,Fi,Ki.dataApiKeydownHandler),fe.on(document,$i,Ki.clearMenus),fe.on(document,Ni,Ki.clearMenus),fe.on(document,$i,Mi,(function(t){t.preventDefault(),Ki.getOrCreateInstance(this).toggle()})),Qt(Ki);const Qi="backdrop",Xi="show",Ui=`mousedown.bs.${Qi}`,Gi={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},Ji={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class Zi extends be{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return Gi}static get DefaultType(){return Ji}static get NAME(){return Qi}show(t){if(!this._config.isVisible)return void Xt(t);this._append();const e=this._getElement();this._config.isAnimated&&qt(e),e.classList.add(Xi),this._emulateAnimation((()=>{Xt(t)}))}hide(t){this._config.isVisible?(this._getElement().classList.remove(Xi),this._emulateAnimation((()=>{this.dispose(),Xt(t)}))):Xt(t)}dispose(){this._isAppended&&(fe.off(this._element,Ui),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=Ht(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),fe.on(t,Ui,(()=>{Xt(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(t){Ut(t,this._getElement(),this._config.isAnimated)}}const tn=".bs.focustrap",en=`focusin${tn}`,nn=`keydown.tab${tn}`,sn="backward",on={autofocus:!0,trapElement:null},rn={autofocus:"boolean",trapElement:"element"};class an extends be{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return on}static get DefaultType(){return rn}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),fe.off(document,tn),fe.on(document,en,(t=>this._handleFocusin(t))),fe.on(document,nn,(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,fe.off(document,tn))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=we.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===sn?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?sn:"forward")}}const ln=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",cn=".sticky-top",hn="padding-right",dn="margin-right";class un{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,hn,(e=>e+t)),this._setElementAttributes(ln,hn,(e=>e+t)),this._setElementAttributes(cn,dn,(e=>e-t))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,hn),this._resetElementAttributes(ln,hn),this._resetElementAttributes(cn,dn)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${i(Number.parseFloat(s))}px`)}))}_saveInitialAttribute(t,e){const i=t.style.getPropertyValue(e);i&&_e.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=_e.getDataAttribute(t,e);null!==i?(_e.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)}))}_applyManipulationCallback(t,e){if(Ft(t))e(t);else for(const i of we.find(t,this._element))e(i)}}const fn=".bs.modal",pn=`hide${fn}`,mn=`hidePrevented${fn}`,gn=`hidden${fn}`,_n=`show${fn}`,bn=`shown${fn}`,vn=`resize${fn}`,yn=`click.dismiss${fn}`,wn=`mousedown.dismiss${fn}`,En=`keydown.dismiss${fn}`,An=`click${fn}.data-api`,Tn="modal-open",Cn="show",On="modal-static",xn={backdrop:!0,focus:!0,keyboard:!0},kn={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class Ln extends ve{constructor(t,e){super(t,e),this._dialog=we.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new un,this._addEventListeners()}static get Default(){return xn}static get DefaultType(){return kn}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||fe.trigger(this._element,_n,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(Tn),this._adjustDialog(),this._backdrop.show((()=>this._showElement(t))))}hide(){this._isShown&&!this._isTransitioning&&(fe.trigger(this._element,pn).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(Cn),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated())))}dispose(){fe.off(window,fn),fe.off(this._dialog,fn),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Zi({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new an({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const e=we.findOne(".modal-body",this._dialog);e&&(e.scrollTop=0),qt(this._element),this._element.classList.add(Cn),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,fe.trigger(this._element,bn,{relatedTarget:t})}),this._dialog,this._isAnimated())}_addEventListeners(){fe.on(this._element,En,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())})),fe.on(window,vn,(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),fe.on(this._element,wn,(t=>{fe.one(this._element,yn,(e=>{this._element===t.target&&this._element===e.target&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())}))}))}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(Tn),this._resetAdjustments(),this._scrollBar.reset(),fe.trigger(this._element,gn)}))}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(fe.trigger(this._element,mn).defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;"hidden"===e||this._element.classList.contains(On)||(t||(this._element.style.overflowY="hidden"),this._element.classList.add(On),this._queueCallback((()=>{this._element.classList.remove(On),this._queueCallback((()=>{this._element.style.overflowY=e}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=Kt()?"paddingLeft":"paddingRight";this._element.style[t]=`${e}px`}if(!i&&t){const t=Kt()?"paddingRight":"paddingLeft";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=Ln.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}fe.on(document,An,'[data-bs-toggle="modal"]',(function(t){const e=we.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),fe.one(e,_n,(t=>{t.defaultPrevented||fe.one(e,gn,(()=>{Bt(this)&&this.focus()}))}));const i=we.findOne(".modal.show");i&&Ln.getInstance(i).hide(),Ln.getOrCreateInstance(e).toggle(this)})),Ee(Ln),Qt(Ln);const Sn=".bs.offcanvas",Dn=".data-api",$n=`load${Sn}${Dn}`,In="show",Nn="showing",Pn="hiding",Mn=".offcanvas.show",jn=`show${Sn}`,Fn=`shown${Sn}`,Hn=`hide${Sn}`,Bn=`hidePrevented${Sn}`,Wn=`hidden${Sn}`,zn=`resize${Sn}`,Rn=`click${Sn}${Dn}`,qn=`keydown.dismiss${Sn}`,Vn={backdrop:!0,keyboard:!0,scroll:!1},Yn={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class Kn extends ve{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return Vn}static get DefaultType(){return Yn}static get NAME(){return"offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||fe.trigger(this._element,jn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new un).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(Nn),this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(In),this._element.classList.remove(Nn),fe.trigger(this._element,Fn,{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(fe.trigger(this._element,Hn).defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add(Pn),this._backdrop.hide(),this._queueCallback((()=>{this._element.classList.remove(In,Pn),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new un).reset(),fe.trigger(this._element,Wn)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new Zi({className:"offcanvas-backdrop",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{"static"!==this._config.backdrop?this.hide():fe.trigger(this._element,Bn)}:null})}_initializeFocusTrap(){return new an({trapElement:this._element})}_addEventListeners(){fe.on(this._element,qn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():fe.trigger(this._element,Bn))}))}static jQueryInterface(t){return this.each((function(){const e=Kn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}fe.on(document,Rn,'[data-bs-toggle="offcanvas"]',(function(t){const e=we.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),Wt(this))return;fe.one(e,Wn,(()=>{Bt(this)&&this.focus()}));const i=we.findOne(Mn);i&&i!==e&&Kn.getInstance(i).hide(),Kn.getOrCreateInstance(e).toggle(this)})),fe.on(window,$n,(()=>{for(const t of we.find(Mn))Kn.getOrCreateInstance(t).show()})),fe.on(window,zn,(()=>{for(const t of we.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(t).position&&Kn.getOrCreateInstance(t).hide()})),Ee(Kn),Qt(Kn);const Qn={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Xn=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Un=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Gn=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!Xn.has(i)||Boolean(Un.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(i)))},Jn={allowList:Qn,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},Zn={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},ts={entry:"(string|element|function|null)",selector:"(string|element)"};class es extends be{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return Jn}static get DefaultType(){return Zn}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((t=>this._resolvePossibleFunction(t))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,i]of Object.entries(this._config.content))this._setContent(t,i,e);const e=t.children[0],i=this._resolvePossibleFunction(this._config.extraClass);return i&&e.classList.add(...i.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,i]of Object.entries(t))super._typeCheckConfig({selector:e,entry:i},ts)}_setContent(t,e,i){const n=we.findOne(i,t);n&&((e=this._resolvePossibleFunction(e))?Ft(e)?this._putElementInTemplate(Ht(e),n):this._config.html?n.innerHTML=this._maybeSanitize(e):n.textContent=e:n.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,i){if(!t.length)return t;if(i&&"function"==typeof i)return i(t);const n=(new window.DOMParser).parseFromString(t,"text/html"),s=[].concat(...n.body.querySelectorAll("*"));for(const t of s){const i=t.nodeName.toLowerCase();if(!Object.keys(e).includes(i)){t.remove();continue}const n=[].concat(...t.attributes),s=[].concat(e["*"]||[],e[i]||[]);for(const e of n)Gn(e,s)||t.removeAttribute(e.nodeName)}return n.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return Xt(t,[this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const is=new Set(["sanitize","allowList","sanitizeFn"]),ns="fade",ss="show",os=".tooltip-inner",rs=".modal",as="hide.bs.modal",ls="hover",cs="focus",hs={AUTO:"auto",TOP:"top",RIGHT:Kt()?"left":"right",BOTTOM:"bottom",LEFT:Kt()?"right":"left"},ds={allowList:Qn,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},us={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class fs extends ve{constructor(t,i){if(void 0===e)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,i),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return ds}static get DefaultType(){return us}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),fe.off(this._element.closest(rs),as,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=fe.trigger(this._element,this.constructor.eventName("show")),e=(zt(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute("aria-describedby",i.getAttribute("id"));const{container:n}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(n.append(i),fe.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(i),i.classList.add(ss),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))fe.on(t,"mouseover",Rt);this._queueCallback((()=>{fe.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(this._isShown()&&!fe.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(ss),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))fe.off(t,"mouseover",Rt);this._activeTrigger.click=!1,this._activeTrigger[cs]=!1,this._activeTrigger[ls]=!1,this._isHovered=null,this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),fe.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(ns,ss),e.classList.add(`bs-${this.constructor.NAME}-auto`);const i=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute("id",i),this._isAnimated()&&e.classList.add(ns),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new es({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{[os]:this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(ns)}_isShown(){return this.tip&&this.tip.classList.contains(ss)}_createPopper(t){const e=Xt(this._config.placement,[this,t,this._element]),i=hs[e.toUpperCase()];return Dt(this._element,t,this._getPopperConfig(i))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return Xt(t,[this._element])}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:t=>{this._getTipElement().setAttribute("data-popper-placement",t.state.placement)}}]};return{...e,...Xt(this._config.popperConfig,[e])}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)fe.on(this._element,this.constructor.eventName("click"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if("manual"!==e){const t=e===ls?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),i=e===ls?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");fe.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?cs:ls]=!0,e._enter()})),fe.on(this._element,i,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?cs:ls]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},fe.on(this._element.closest(rs),as,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");t&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=_e.getDataAttributes(this._element);for(const t of Object.keys(e))is.has(t)&&delete e[t];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:Ht(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const[e,i]of Object.entries(this._config))this.constructor.Default[e]!==i&&(t[e]=i);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=fs.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}Qt(fs);const ps=".popover-header",ms=".popover-body",gs={...fs.Default,content:"",offset:[0,8],placement:"right",template:'',trigger:"click"},_s={...fs.DefaultType,content:"(null|string|element|function)"};class bs extends fs{static get Default(){return gs}static get DefaultType(){return _s}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{[ps]:this._getTitle(),[ms]:this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each((function(){const e=bs.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}Qt(bs);const vs=".bs.scrollspy",ys=`activate${vs}`,ws=`click${vs}`,Es=`load${vs}.data-api`,As="active",Ts="[href]",Cs=".nav-link",Os=`${Cs}, .nav-item > ${Cs}, .list-group-item`,xs={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},ks={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class Ls extends ve{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return xs}static get DefaultType(){return ks}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=Ht(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,"string"==typeof t.threshold&&(t.threshold=t.threshold.split(",").map((t=>Number.parseFloat(t)))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(fe.off(this._config.target,ws),fe.on(this._config.target,ws,Ts,(t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const i=this._rootElement||window,n=e.offsetTop-this._element.offsetTop;if(i.scrollTo)return void i.scrollTo({top:n,behavior:"smooth"});i.scrollTop=n}})))}_getNewObserver(){const t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver((t=>this._observerCallback(t)),t)}_observerCallback(t){const e=t=>this._targetLinks.get(`#${t.target.id}`),i=t=>{this._previousScrollData.visibleEntryTop=t.target.offsetTop,this._process(e(t))},n=(this._rootElement||document.documentElement).scrollTop,s=n>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=n;for(const o of t){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(o));continue}const t=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(s&&t){if(i(o),!n)return}else s||t||i(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=we.find(Ts,this._config.target);for(const e of t){if(!e.hash||Wt(e))continue;const t=we.findOne(decodeURI(e.hash),this._element);Bt(t)&&(this._targetLinks.set(decodeURI(e.hash),e),this._observableSections.set(e.hash,t))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(As),this._activateParents(t),fe.trigger(this._element,ys,{relatedTarget:t}))}_activateParents(t){if(t.classList.contains("dropdown-item"))we.findOne(".dropdown-toggle",t.closest(".dropdown")).classList.add(As);else for(const e of we.parents(t,".nav, .list-group"))for(const t of we.prev(e,Os))t.classList.add(As)}_clearActiveClass(t){t.classList.remove(As);const e=we.find(`${Ts}.${As}`,t);for(const t of e)t.classList.remove(As)}static jQueryInterface(t){return this.each((function(){const e=Ls.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}fe.on(window,Es,(()=>{for(const t of we.find('[data-bs-spy="scroll"]'))Ls.getOrCreateInstance(t)})),Qt(Ls);const Ss=".bs.tab",Ds=`hide${Ss}`,$s=`hidden${Ss}`,Is=`show${Ss}`,Ns=`shown${Ss}`,Ps=`click${Ss}`,Ms=`keydown${Ss}`,js=`load${Ss}`,Fs="ArrowLeft",Hs="ArrowRight",Bs="ArrowUp",Ws="ArrowDown",zs="Home",Rs="End",qs="active",Vs="fade",Ys="show",Ks=".dropdown-toggle",Qs=`:not(${Ks})`,Xs='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',Us=`.nav-link${Qs}, .list-group-item${Qs}, [role="tab"]${Qs}, ${Xs}`,Gs=`.${qs}[data-bs-toggle="tab"], .${qs}[data-bs-toggle="pill"], .${qs}[data-bs-toggle="list"]`;class Js extends ve{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),fe.on(this._element,Ms,(t=>this._keydown(t))))}static get NAME(){return"tab"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),i=e?fe.trigger(e,Ds,{relatedTarget:t}):null;fe.trigger(t,Is,{relatedTarget:e}).defaultPrevented||i&&i.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(qs),this._activate(we.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.removeAttribute("tabindex"),t.setAttribute("aria-selected",!0),this._toggleDropDown(t,!0),fe.trigger(t,Ns,{relatedTarget:e})):t.classList.add(Ys)}),t,t.classList.contains(Vs)))}_deactivate(t,e){t&&(t.classList.remove(qs),t.blur(),this._deactivate(we.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.setAttribute("aria-selected",!1),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),fe.trigger(t,$s,{relatedTarget:e})):t.classList.remove(Ys)}),t,t.classList.contains(Vs)))}_keydown(t){if(![Fs,Hs,Bs,Ws,zs,Rs].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=this._getChildren().filter((t=>!Wt(t)));let i;if([zs,Rs].includes(t.key))i=e[t.key===zs?0:e.length-1];else{const n=[Hs,Ws].includes(t.key);i=Gt(e,t.target,n,!0)}i&&(i.focus({preventScroll:!0}),Js.getOrCreateInstance(i).show())}_getChildren(){return we.find(Us,this._parent)}_getActiveElem(){return this._getChildren().find((t=>this._elemIsActive(t)))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,"role","tablist");for(const t of e)this._setInitialAttributesOnChild(t)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),i=this._getOuterElement(t);t.setAttribute("aria-selected",e),i!==t&&this._setAttributeIfNotExists(i,"role","presentation"),e||t.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(t,"role","tab"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=we.getElementFromSelector(t);e&&(this._setAttributeIfNotExists(e,"role","tabpanel"),t.id&&this._setAttributeIfNotExists(e,"aria-labelledby",`${t.id}`))}_toggleDropDown(t,e){const i=this._getOuterElement(t);if(!i.classList.contains("dropdown"))return;const n=(t,n)=>{const s=we.findOne(t,i);s&&s.classList.toggle(n,e)};n(Ks,qs),n(".dropdown-menu",Ys),i.setAttribute("aria-expanded",e)}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_elemIsActive(t){return t.classList.contains(qs)}_getInnerElement(t){return t.matches(Us)?t:we.findOne(Us,t)}_getOuterElement(t){return t.closest(".nav-item, .list-group-item")||t}static jQueryInterface(t){return this.each((function(){const e=Js.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}fe.on(document,Ps,Xs,(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),Wt(this)||Js.getOrCreateInstance(this).show()})),fe.on(window,js,(()=>{for(const t of we.find(Gs))Js.getOrCreateInstance(t)})),Qt(Js);const Zs=".bs.toast",to=`mouseover${Zs}`,eo=`mouseout${Zs}`,io=`focusin${Zs}`,no=`focusout${Zs}`,so=`hide${Zs}`,oo=`hidden${Zs}`,ro=`show${Zs}`,ao=`shown${Zs}`,lo="hide",co="show",ho="showing",uo={animation:"boolean",autohide:"boolean",delay:"number"},fo={animation:!0,autohide:!0,delay:5e3};class po extends ve{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return fo}static get DefaultType(){return uo}static get NAME(){return"toast"}show(){fe.trigger(this._element,ro).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(lo),qt(this._element),this._element.classList.add(co,ho),this._queueCallback((()=>{this._element.classList.remove(ho),fe.trigger(this._element,ao),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this.isShown()&&(fe.trigger(this._element,so).defaultPrevented||(this._element.classList.add(ho),this._queueCallback((()=>{this._element.classList.add(lo),this._element.classList.remove(ho,co),fe.trigger(this._element,oo)}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(co),super.dispose()}isShown(){return this._element.classList.contains(co)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){fe.on(this._element,to,(t=>this._onInteraction(t,!0))),fe.on(this._element,eo,(t=>this._onInteraction(t,!1))),fe.on(this._element,io,(t=>this._onInteraction(t,!0))),fe.on(this._element,no,(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=po.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}function mo(t){"loading"!=document.readyState?t():document.addEventListener("DOMContentLoaded",t)}Ee(po),Qt(po),mo((function(){[].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')).map((function(t){return new fs(t,{delay:{show:500,hide:100}})}))})),mo((function(){document.getElementById("pst-back-to-top").addEventListener("click",(function(){document.body.scrollTop=0,document.documentElement.scrollTop=0}))})),mo((function(){var t=document.getElementById("pst-back-to-top"),e=document.getElementsByClassName("bd-header")[0].getBoundingClientRect();window.addEventListener("scroll",(function(){this.oldScroll>this.scrollY&&this.scrollY>e.bottom?t.style.display="block":t.style.display="none",this.oldScroll=this.scrollY}))})),window.bootstrap=i})(); +//# sourceMappingURL=bootstrap.js.map \ No newline at end of file diff --git a/3.1.0/_static/scripts/bootstrap.js.LICENSE.txt b/3.1.0/_static/scripts/bootstrap.js.LICENSE.txt new file mode 100644 index 000000000..28755c2c5 --- /dev/null +++ b/3.1.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/3.1.0/_static/scripts/bootstrap.js.map b/3.1.0/_static/scripts/bootstrap.js.map new file mode 100644 index 000000000..e9e815891 --- /dev/null +++ b/3.1.0/_static/scripts/bootstrap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"scripts/bootstrap.js","mappings":"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","sources":["webpack://pydata_sphinx_theme/webpack/bootstrap","webpack://pydata_sphinx_theme/webpack/runtime/define property getters","webpack://pydata_sphinx_theme/webpack/runtime/hasOwnProperty shorthand","webpack://pydata_sphinx_theme/webpack/runtime/make namespace object","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/enums.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/math.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/userAgent.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/within.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/createPopper.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/debounce.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/popper.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/popper-lite.js","webpack://pydata_sphinx_theme/./node_modules/bootstrap/dist/js/bootstrap.esm.js","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/scripts/mixin.js","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/scripts/bootstrap.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","/*!\n * Bootstrap v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\nimport * as Popper from '@popperjs/core';\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst elementMap = new Map();\nconst Data = {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map());\n }\n const instanceMap = elementMap.get(element);\n\n // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);\n return;\n }\n instanceMap.set(key, instance);\n },\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null;\n }\n return null;\n },\n remove(element, key) {\n if (!elementMap.has(element)) {\n return;\n }\n const instanceMap = elementMap.get(element);\n instanceMap.delete(key);\n\n // free up element references if there are no instances left for an element\n if (instanceMap.size === 0) {\n elementMap.delete(element);\n }\n }\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000;\nconst MILLISECONDS_MULTIPLIER = 1000;\nconst TRANSITION_END = 'transitionend';\n\n/**\n * Properly escape IDs selectors to handle weird IDs\n * @param {string} selector\n * @returns {string}\n */\nconst parseSelector = selector => {\n if (selector && window.CSS && window.CSS.escape) {\n // document.querySelector needs escaping to handle IDs (html5+) containing for instance /\n selector = selector.replace(/#([^\\s\"#']+)/g, (match, id) => `#${CSS.escape(id)}`);\n }\n return selector;\n};\n\n// Shout-out Angus Croll (https://goo.gl/pxwQGp)\nconst toType = object => {\n if (object === null || object === undefined) {\n return `${object}`;\n }\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase();\n};\n\n/**\n * Public Util API\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID);\n } while (document.getElementById(prefix));\n return prefix;\n};\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0;\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element);\n const floatTransitionDuration = Number.parseFloat(transitionDuration);\n const floatTransitionDelay = Number.parseFloat(transitionDelay);\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n};\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END));\n};\nconst isElement = object => {\n if (!object || typeof object !== 'object') {\n return false;\n }\n if (typeof object.jquery !== 'undefined') {\n object = object[0];\n }\n return typeof object.nodeType !== 'undefined';\n};\nconst getElement = object => {\n // it's a jQuery object or a node element\n if (isElement(object)) {\n return object.jquery ? object[0] : object;\n }\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(parseSelector(object));\n }\n return null;\n};\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false;\n }\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible';\n // Handle `details` element as its content may falsie appear visible when it is closed\n const closedDetails = element.closest('details:not([open])');\n if (!closedDetails) {\n return elementIsVisible;\n }\n if (closedDetails !== element) {\n const summary = element.closest('summary');\n if (summary && summary.parentNode !== closedDetails) {\n return false;\n }\n if (summary === null) {\n return false;\n }\n }\n return elementIsVisible;\n};\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true;\n }\n if (element.classList.contains('disabled')) {\n return true;\n }\n if (typeof element.disabled !== 'undefined') {\n return element.disabled;\n }\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false';\n};\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null;\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode();\n return root instanceof ShadowRoot ? root : null;\n }\n if (element instanceof ShadowRoot) {\n return element;\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null;\n }\n return findShadowRoot(element.parentNode);\n};\nconst noop = () => {};\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n element.offsetHeight; // eslint-disable-line no-unused-expressions\n};\nconst getjQuery = () => {\n if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return window.jQuery;\n }\n return null;\n};\nconst DOMContentLoadedCallbacks = [];\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback();\n }\n });\n }\n DOMContentLoadedCallbacks.push(callback);\n } else {\n callback();\n }\n};\nconst isRTL = () => document.documentElement.dir === 'rtl';\nconst defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery();\n /* istanbul ignore if */\n if ($) {\n const name = plugin.NAME;\n const JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n};\nconst execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {\n return typeof possibleCallback === 'function' ? possibleCallback(...args) : defaultValue;\n};\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback);\n return;\n }\n const durationPadding = 5;\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;\n let called = false;\n const handler = ({\n target\n }) => {\n if (target !== transitionElement) {\n return;\n }\n called = true;\n transitionElement.removeEventListener(TRANSITION_END, handler);\n execute(callback);\n };\n transitionElement.addEventListener(TRANSITION_END, handler);\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement);\n }\n }, emulatedDuration);\n};\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n const listLength = list.length;\n let index = list.indexOf(activeElement);\n\n // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0];\n }\n index += shouldGetNext ? 1 : -1;\n if (isCycleAllowed) {\n index = (index + listLength) % listLength;\n }\n return list[Math.max(0, Math.min(index, listLength - 1))];\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/;\nconst stripNameRegex = /\\..*/;\nconst stripUidRegex = /::\\d+$/;\nconst eventRegistry = {}; // Events storage\nlet uidEvent = 1;\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n};\nconst nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']);\n\n/**\n * Private methods\n */\n\nfunction makeEventUid(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++;\n}\nfunction getElementEvents(element) {\n const uid = makeEventUid(element);\n element.uidEvent = uid;\n eventRegistry[uid] = eventRegistry[uid] || {};\n return eventRegistry[uid];\n}\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n hydrateObj(event, {\n delegateTarget: element\n });\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn);\n }\n return fn.apply(element, [event]);\n };\n}\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector);\n for (let {\n target\n } = event; target && target !== this; target = target.parentNode) {\n for (const domElement of domElements) {\n if (domElement !== target) {\n continue;\n }\n hydrateObj(event, {\n delegateTarget: target\n });\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn);\n }\n return fn.apply(target, [event]);\n }\n }\n };\n}\nfunction findHandler(events, callable, delegationSelector = null) {\n return Object.values(events).find(event => event.callable === callable && event.delegationSelector === delegationSelector);\n}\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n const isDelegated = typeof handler === 'string';\n // TODO: tooltip passes `false` instead of selector, so we need to check\n const callable = isDelegated ? delegationFunction : handler || delegationFunction;\n let typeEvent = getTypeEvent(originalTypeEvent);\n if (!nativeEvents.has(typeEvent)) {\n typeEvent = originalTypeEvent;\n }\n return [isDelegated, callable, typeEvent];\n}\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);\n\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n if (originalTypeEvent in customEvents) {\n const wrapFunction = fn => {\n return function (event) {\n if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) {\n return fn.call(this, event);\n }\n };\n };\n callable = wrapFunction(callable);\n }\n const events = getElementEvents(element);\n const handlers = events[typeEvent] || (events[typeEvent] = {});\n const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null);\n if (previousFunction) {\n previousFunction.oneOff = previousFunction.oneOff && oneOff;\n return;\n }\n const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''));\n const fn = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable);\n fn.delegationSelector = isDelegated ? handler : null;\n fn.callable = callable;\n fn.oneOff = oneOff;\n fn.uidEvent = uid;\n handlers[uid] = fn;\n element.addEventListener(typeEvent, fn, isDelegated);\n}\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector);\n if (!fn) {\n return;\n }\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));\n delete events[typeEvent][fn.uidEvent];\n}\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {};\n for (const [handlerKey, event] of Object.entries(storeElementEvent)) {\n if (handlerKey.includes(namespace)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);\n }\n }\n}\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '');\n return customEvents[event] || event;\n}\nconst EventHandler = {\n on(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, false);\n },\n one(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, true);\n },\n off(element, originalTypeEvent, handler, delegationFunction) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);\n const inNamespace = typeEvent !== originalTypeEvent;\n const events = getElementEvents(element);\n const storeElementEvent = events[typeEvent] || {};\n const isNamespace = originalTypeEvent.startsWith('.');\n if (typeof callable !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!Object.keys(storeElementEvent).length) {\n return;\n }\n removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null);\n return;\n }\n if (isNamespace) {\n for (const elementEvent of Object.keys(events)) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));\n }\n }\n for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {\n const handlerKey = keyHandlers.replace(stripUidRegex, '');\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);\n }\n }\n },\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null;\n }\n const $ = getjQuery();\n const typeEvent = getTypeEvent(event);\n const inNamespace = event !== typeEvent;\n let jQueryEvent = null;\n let bubbles = true;\n let nativeDispatch = true;\n let defaultPrevented = false;\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args);\n $(element).trigger(jQueryEvent);\n bubbles = !jQueryEvent.isPropagationStopped();\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();\n defaultPrevented = jQueryEvent.isDefaultPrevented();\n }\n const evt = hydrateObj(new Event(event, {\n bubbles,\n cancelable: true\n }), args);\n if (defaultPrevented) {\n evt.preventDefault();\n }\n if (nativeDispatch) {\n element.dispatchEvent(evt);\n }\n if (evt.defaultPrevented && jQueryEvent) {\n jQueryEvent.preventDefault();\n }\n return evt;\n }\n};\nfunction hydrateObj(obj, meta = {}) {\n for (const [key, value] of Object.entries(meta)) {\n try {\n obj[key] = value;\n } catch (_unused) {\n Object.defineProperty(obj, key, {\n configurable: true,\n get() {\n return value;\n }\n });\n }\n }\n return obj;\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(value) {\n if (value === 'true') {\n return true;\n }\n if (value === 'false') {\n return false;\n }\n if (value === Number(value).toString()) {\n return Number(value);\n }\n if (value === '' || value === 'null') {\n return null;\n }\n if (typeof value !== 'string') {\n return value;\n }\n try {\n return JSON.parse(decodeURIComponent(value));\n } catch (_unused) {\n return value;\n }\n}\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`);\n}\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value);\n },\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`);\n },\n getDataAttributes(element) {\n if (!element) {\n return {};\n }\n const attributes = {};\n const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'));\n for (const key of bsKeys) {\n let pureKey = key.replace(/^bs/, '');\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);\n attributes[pureKey] = normalizeData(element.dataset[key]);\n }\n return attributes;\n },\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`));\n }\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Class definition\n */\n\nclass Config {\n // Getters\n static get Default() {\n return {};\n }\n static get DefaultType() {\n return {};\n }\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!');\n }\n _getConfig(config) {\n config = this._mergeConfigObj(config);\n config = this._configAfterMerge(config);\n this._typeCheckConfig(config);\n return config;\n }\n _configAfterMerge(config) {\n return config;\n }\n _mergeConfigObj(config, element) {\n const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {}; // try to parse\n\n return {\n ...this.constructor.Default,\n ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\n ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),\n ...(typeof config === 'object' ? config : {})\n };\n }\n _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {\n for (const [property, expectedTypes] of Object.entries(configTypes)) {\n const value = config[property];\n const valueType = isElement(value) ? 'element' : toType(value);\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`);\n }\n }\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst VERSION = '5.3.3';\n\n/**\n * Class definition\n */\n\nclass BaseComponent extends Config {\n constructor(element, config) {\n super();\n element = getElement(element);\n if (!element) {\n return;\n }\n this._element = element;\n this._config = this._getConfig(config);\n Data.set(this._element, this.constructor.DATA_KEY, this);\n }\n\n // Public\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY);\n EventHandler.off(this._element, this.constructor.EVENT_KEY);\n for (const propertyName of Object.getOwnPropertyNames(this)) {\n this[propertyName] = null;\n }\n }\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated);\n }\n _getConfig(config) {\n config = this._mergeConfigObj(config, this._element);\n config = this._configAfterMerge(config);\n this._typeCheckConfig(config);\n return config;\n }\n\n // Static\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY);\n }\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null);\n }\n static get VERSION() {\n return VERSION;\n }\n static get DATA_KEY() {\n return `bs.${this.NAME}`;\n }\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`;\n }\n static eventName(name) {\n return `${name}${this.EVENT_KEY}`;\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target');\n if (!selector || selector === '#') {\n let hrefAttribute = element.getAttribute('href');\n\n // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n if (!hrefAttribute || !hrefAttribute.includes('#') && !hrefAttribute.startsWith('.')) {\n return null;\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\n hrefAttribute = `#${hrefAttribute.split('#')[1]}`;\n }\n selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null;\n }\n return selector ? selector.split(',').map(sel => parseSelector(sel)).join(',') : null;\n};\nconst SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [].concat(...Element.prototype.querySelectorAll.call(element, selector));\n },\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector);\n },\n children(element, selector) {\n return [].concat(...element.children).filter(child => child.matches(selector));\n },\n parents(element, selector) {\n const parents = [];\n let ancestor = element.parentNode.closest(selector);\n while (ancestor) {\n parents.push(ancestor);\n ancestor = ancestor.parentNode.closest(selector);\n }\n return parents;\n },\n prev(element, selector) {\n let previous = element.previousElementSibling;\n while (previous) {\n if (previous.matches(selector)) {\n return [previous];\n }\n previous = previous.previousElementSibling;\n }\n return [];\n },\n // TODO: this is now unused; remove later along with prev()\n next(element, selector) {\n let next = element.nextElementSibling;\n while (next) {\n if (next.matches(selector)) {\n return [next];\n }\n next = next.nextElementSibling;\n }\n return [];\n },\n focusableChildren(element) {\n const focusables = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable=\"true\"]'].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(',');\n return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el));\n },\n getSelectorFromElement(element) {\n const selector = getSelector(element);\n if (selector) {\n return SelectorEngine.findOne(selector) ? selector : null;\n }\n return null;\n },\n getElementFromSelector(element) {\n const selector = getSelector(element);\n return selector ? SelectorEngine.findOne(selector) : null;\n },\n getMultipleElementsFromSelector(element) {\n const selector = getSelector(element);\n return selector ? SelectorEngine.find(selector) : [];\n }\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/component-functions.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst enableDismissTrigger = (component, method = 'hide') => {\n const clickEvent = `click.dismiss${component.EVENT_KEY}`;\n const name = component.NAME;\n EventHandler.on(document, clickEvent, `[data-bs-dismiss=\"${name}\"]`, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n if (isDisabled(this)) {\n return;\n }\n const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`);\n const instance = component.getOrCreateInstance(target);\n\n // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\n instance[method]();\n });\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$f = 'alert';\nconst DATA_KEY$a = 'bs.alert';\nconst EVENT_KEY$b = `.${DATA_KEY$a}`;\nconst EVENT_CLOSE = `close${EVENT_KEY$b}`;\nconst EVENT_CLOSED = `closed${EVENT_KEY$b}`;\nconst CLASS_NAME_FADE$5 = 'fade';\nconst CLASS_NAME_SHOW$8 = 'show';\n\n/**\n * Class definition\n */\n\nclass Alert extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME$f;\n }\n\n // Public\n close() {\n const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE);\n if (closeEvent.defaultPrevented) {\n return;\n }\n this._element.classList.remove(CLASS_NAME_SHOW$8);\n const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5);\n this._queueCallback(() => this._destroyElement(), this._element, isAnimated);\n }\n\n // Private\n _destroyElement() {\n this._element.remove();\n EventHandler.trigger(this._element, EVENT_CLOSED);\n this.dispose();\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Alert.getOrCreateInstance(this);\n if (typeof config !== 'string') {\n return;\n }\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config](this);\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nenableDismissTrigger(Alert, 'close');\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Alert);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$e = 'button';\nconst DATA_KEY$9 = 'bs.button';\nconst EVENT_KEY$a = `.${DATA_KEY$9}`;\nconst DATA_API_KEY$6 = '.data-api';\nconst CLASS_NAME_ACTIVE$3 = 'active';\nconst SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle=\"button\"]';\nconst EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`;\n\n/**\n * Class definition\n */\n\nclass Button extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME$e;\n }\n\n // Public\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$3));\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Button.getOrCreateInstance(this);\n if (config === 'toggle') {\n data[config]();\n }\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, event => {\n event.preventDefault();\n const button = event.target.closest(SELECTOR_DATA_TOGGLE$5);\n const data = Button.getOrCreateInstance(button);\n data.toggle();\n});\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Button);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/swipe.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$d = 'swipe';\nconst EVENT_KEY$9 = '.bs.swipe';\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY$9}`;\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$9}`;\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY$9}`;\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$9}`;\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY$9}`;\nconst POINTER_TYPE_TOUCH = 'touch';\nconst POINTER_TYPE_PEN = 'pen';\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event';\nconst SWIPE_THRESHOLD = 40;\nconst Default$c = {\n endCallback: null,\n leftCallback: null,\n rightCallback: null\n};\nconst DefaultType$c = {\n endCallback: '(function|null)',\n leftCallback: '(function|null)',\n rightCallback: '(function|null)'\n};\n\n/**\n * Class definition\n */\n\nclass Swipe extends Config {\n constructor(element, config) {\n super();\n this._element = element;\n if (!element || !Swipe.isSupported()) {\n return;\n }\n this._config = this._getConfig(config);\n this._deltaX = 0;\n this._supportPointerEvents = Boolean(window.PointerEvent);\n this._initEvents();\n }\n\n // Getters\n static get Default() {\n return Default$c;\n }\n static get DefaultType() {\n return DefaultType$c;\n }\n static get NAME() {\n return NAME$d;\n }\n\n // Public\n dispose() {\n EventHandler.off(this._element, EVENT_KEY$9);\n }\n\n // Private\n _start(event) {\n if (!this._supportPointerEvents) {\n this._deltaX = event.touches[0].clientX;\n return;\n }\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX;\n }\n }\n _end(event) {\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX - this._deltaX;\n }\n this._handleSwipe();\n execute(this._config.endCallback);\n }\n _move(event) {\n this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX;\n }\n _handleSwipe() {\n const absDeltaX = Math.abs(this._deltaX);\n if (absDeltaX <= SWIPE_THRESHOLD) {\n return;\n }\n const direction = absDeltaX / this._deltaX;\n this._deltaX = 0;\n if (!direction) {\n return;\n }\n execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback);\n }\n _initEvents() {\n if (this._supportPointerEvents) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event));\n EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event));\n this._element.classList.add(CLASS_NAME_POINTER_EVENT);\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event));\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event));\n EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event));\n }\n }\n _eventIsPointerPenTouch(event) {\n return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);\n }\n\n // Static\n static isSupported() {\n return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$c = 'carousel';\nconst DATA_KEY$8 = 'bs.carousel';\nconst EVENT_KEY$8 = `.${DATA_KEY$8}`;\nconst DATA_API_KEY$5 = '.data-api';\nconst ARROW_LEFT_KEY$1 = 'ArrowLeft';\nconst ARROW_RIGHT_KEY$1 = 'ArrowRight';\nconst TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\nconst ORDER_NEXT = 'next';\nconst ORDER_PREV = 'prev';\nconst DIRECTION_LEFT = 'left';\nconst DIRECTION_RIGHT = 'right';\nconst EVENT_SLIDE = `slide${EVENT_KEY$8}`;\nconst EVENT_SLID = `slid${EVENT_KEY$8}`;\nconst EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$8}`;\nconst EVENT_MOUSEENTER$1 = `mouseenter${EVENT_KEY$8}`;\nconst EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$8}`;\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY$8}`;\nconst EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$8}${DATA_API_KEY$5}`;\nconst EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`;\nconst CLASS_NAME_CAROUSEL = 'carousel';\nconst CLASS_NAME_ACTIVE$2 = 'active';\nconst CLASS_NAME_SLIDE = 'slide';\nconst CLASS_NAME_END = 'carousel-item-end';\nconst CLASS_NAME_START = 'carousel-item-start';\nconst CLASS_NAME_NEXT = 'carousel-item-next';\nconst CLASS_NAME_PREV = 'carousel-item-prev';\nconst SELECTOR_ACTIVE = '.active';\nconst SELECTOR_ITEM = '.carousel-item';\nconst SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM;\nconst SELECTOR_ITEM_IMG = '.carousel-item img';\nconst SELECTOR_INDICATORS = '.carousel-indicators';\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]';\nconst KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY$1]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY$1]: DIRECTION_LEFT\n};\nconst Default$b = {\n interval: 5000,\n keyboard: true,\n pause: 'hover',\n ride: false,\n touch: true,\n wrap: true\n};\nconst DefaultType$b = {\n interval: '(number|boolean)',\n // TODO:v6 remove boolean support\n keyboard: 'boolean',\n pause: '(string|boolean)',\n ride: '(boolean|string)',\n touch: 'boolean',\n wrap: 'boolean'\n};\n\n/**\n * Class definition\n */\n\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._interval = null;\n this._activeElement = null;\n this._isSliding = false;\n this.touchTimeout = null;\n this._swipeHelper = null;\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);\n this._addEventListeners();\n if (this._config.ride === CLASS_NAME_CAROUSEL) {\n this.cycle();\n }\n }\n\n // Getters\n static get Default() {\n return Default$b;\n }\n static get DefaultType() {\n return DefaultType$b;\n }\n static get NAME() {\n return NAME$c;\n }\n\n // Public\n next() {\n this._slide(ORDER_NEXT);\n }\n nextWhenVisible() {\n // FIXME TODO use `document.visibilityState`\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next();\n }\n }\n prev() {\n this._slide(ORDER_PREV);\n }\n pause() {\n if (this._isSliding) {\n triggerTransitionEnd(this._element);\n }\n this._clearInterval();\n }\n cycle() {\n this._clearInterval();\n this._updateInterval();\n this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval);\n }\n _maybeEnableCycle() {\n if (!this._config.ride) {\n return;\n }\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.cycle());\n return;\n }\n this.cycle();\n }\n to(index) {\n const items = this._getItems();\n if (index > items.length - 1 || index < 0) {\n return;\n }\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index));\n return;\n }\n const activeIndex = this._getItemIndex(this._getActive());\n if (activeIndex === index) {\n return;\n }\n const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV;\n this._slide(order, items[index]);\n }\n dispose() {\n if (this._swipeHelper) {\n this._swipeHelper.dispose();\n }\n super.dispose();\n }\n\n // Private\n _configAfterMerge(config) {\n config.defaultInterval = config.interval;\n return config;\n }\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN$1, event => this._keydown(event));\n }\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER$1, () => this.pause());\n EventHandler.on(this._element, EVENT_MOUSELEAVE$1, () => this._maybeEnableCycle());\n }\n if (this._config.touch && Swipe.isSupported()) {\n this._addTouchEventListeners();\n }\n }\n _addTouchEventListeners() {\n for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {\n EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault());\n }\n const endCallBack = () => {\n if (this._config.pause !== 'hover') {\n return;\n }\n\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause();\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout);\n }\n this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval);\n };\n const swipeConfig = {\n leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),\n rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),\n endCallback: endCallBack\n };\n this._swipeHelper = new Swipe(this._element, swipeConfig);\n }\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return;\n }\n const direction = KEY_TO_DIRECTION[event.key];\n if (direction) {\n event.preventDefault();\n this._slide(this._directionToOrder(direction));\n }\n }\n _getItemIndex(element) {\n return this._getItems().indexOf(element);\n }\n _setActiveIndicatorElement(index) {\n if (!this._indicatorsElement) {\n return;\n }\n const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement);\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2);\n activeIndicator.removeAttribute('aria-current');\n const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to=\"${index}\"]`, this._indicatorsElement);\n if (newActiveIndicator) {\n newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$2);\n newActiveIndicator.setAttribute('aria-current', 'true');\n }\n }\n _updateInterval() {\n const element = this._activeElement || this._getActive();\n if (!element) {\n return;\n }\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);\n this._config.interval = elementInterval || this._config.defaultInterval;\n }\n _slide(order, element = null) {\n if (this._isSliding) {\n return;\n }\n const activeElement = this._getActive();\n const isNext = order === ORDER_NEXT;\n const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap);\n if (nextElement === activeElement) {\n return;\n }\n const nextElementIndex = this._getItemIndex(nextElement);\n const triggerEvent = eventName => {\n return EventHandler.trigger(this._element, eventName, {\n relatedTarget: nextElement,\n direction: this._orderToDirection(order),\n from: this._getItemIndex(activeElement),\n to: nextElementIndex\n });\n };\n const slideEvent = triggerEvent(EVENT_SLIDE);\n if (slideEvent.defaultPrevented) {\n return;\n }\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n // TODO: change tests that use empty divs to avoid this check\n return;\n }\n const isCycling = Boolean(this._interval);\n this.pause();\n this._isSliding = true;\n this._setActiveIndicatorElement(nextElementIndex);\n this._activeElement = nextElement;\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END;\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV;\n nextElement.classList.add(orderClassName);\n reflow(nextElement);\n activeElement.classList.add(directionalClassName);\n nextElement.classList.add(directionalClassName);\n const completeCallBack = () => {\n nextElement.classList.remove(directionalClassName, orderClassName);\n nextElement.classList.add(CLASS_NAME_ACTIVE$2);\n activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName);\n this._isSliding = false;\n triggerEvent(EVENT_SLID);\n };\n this._queueCallback(completeCallBack, activeElement, this._isAnimated());\n if (isCycling) {\n this.cycle();\n }\n }\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_SLIDE);\n }\n _getActive() {\n return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\n }\n _getItems() {\n return SelectorEngine.find(SELECTOR_ITEM, this._element);\n }\n _clearInterval() {\n if (this._interval) {\n clearInterval(this._interval);\n this._interval = null;\n }\n }\n _directionToOrder(direction) {\n if (isRTL()) {\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;\n }\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;\n }\n _orderToDirection(order) {\n if (isRTL()) {\n return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Carousel.getOrCreateInstance(this, config);\n if (typeof config === 'number') {\n data.to(config);\n return;\n }\n if (typeof config === 'string') {\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n }\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this);\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return;\n }\n event.preventDefault();\n const carousel = Carousel.getOrCreateInstance(target);\n const slideIndex = this.getAttribute('data-bs-slide-to');\n if (slideIndex) {\n carousel.to(slideIndex);\n carousel._maybeEnableCycle();\n return;\n }\n if (Manipulator.getDataAttribute(this, 'slide') === 'next') {\n carousel.next();\n carousel._maybeEnableCycle();\n return;\n }\n carousel.prev();\n carousel._maybeEnableCycle();\n});\nEventHandler.on(window, EVENT_LOAD_DATA_API$3, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);\n for (const carousel of carousels) {\n Carousel.getOrCreateInstance(carousel);\n }\n});\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Carousel);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$b = 'collapse';\nconst DATA_KEY$7 = 'bs.collapse';\nconst EVENT_KEY$7 = `.${DATA_KEY$7}`;\nconst DATA_API_KEY$4 = '.data-api';\nconst EVENT_SHOW$6 = `show${EVENT_KEY$7}`;\nconst EVENT_SHOWN$6 = `shown${EVENT_KEY$7}`;\nconst EVENT_HIDE$6 = `hide${EVENT_KEY$7}`;\nconst EVENT_HIDDEN$6 = `hidden${EVENT_KEY$7}`;\nconst EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$7}${DATA_API_KEY$4}`;\nconst CLASS_NAME_SHOW$7 = 'show';\nconst CLASS_NAME_COLLAPSE = 'collapse';\nconst CLASS_NAME_COLLAPSING = 'collapsing';\nconst CLASS_NAME_COLLAPSED = 'collapsed';\nconst CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;\nconst CLASS_NAME_HORIZONTAL = 'collapse-horizontal';\nconst WIDTH = 'width';\nconst HEIGHT = 'height';\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';\nconst SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle=\"collapse\"]';\nconst Default$a = {\n parent: null,\n toggle: true\n};\nconst DefaultType$a = {\n parent: '(null|element)',\n toggle: 'boolean'\n};\n\n/**\n * Class definition\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._isTransitioning = false;\n this._triggerArray = [];\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4);\n for (const elem of toggleList) {\n const selector = SelectorEngine.getSelectorFromElement(elem);\n const filterElement = SelectorEngine.find(selector).filter(foundElement => foundElement === this._element);\n if (selector !== null && filterElement.length) {\n this._triggerArray.push(elem);\n }\n }\n this._initializeChildren();\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown());\n }\n if (this._config.toggle) {\n this.toggle();\n }\n }\n\n // Getters\n static get Default() {\n return Default$a;\n }\n static get DefaultType() {\n return DefaultType$a;\n }\n static get NAME() {\n return NAME$b;\n }\n\n // Public\n toggle() {\n if (this._isShown()) {\n this.hide();\n } else {\n this.show();\n }\n }\n show() {\n if (this._isTransitioning || this._isShown()) {\n return;\n }\n let activeChildren = [];\n\n // find active children\n if (this._config.parent) {\n activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(element => element !== this._element).map(element => Collapse.getOrCreateInstance(element, {\n toggle: false\n }));\n }\n if (activeChildren.length && activeChildren[0]._isTransitioning) {\n return;\n }\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$6);\n if (startEvent.defaultPrevented) {\n return;\n }\n for (const activeInstance of activeChildren) {\n activeInstance.hide();\n }\n const dimension = this._getDimension();\n this._element.classList.remove(CLASS_NAME_COLLAPSE);\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n this._element.style[dimension] = 0;\n this._addAriaAndCollapsedClass(this._triggerArray, true);\n this._isTransitioning = true;\n const complete = () => {\n this._isTransitioning = false;\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n this._element.style[dimension] = '';\n EventHandler.trigger(this._element, EVENT_SHOWN$6);\n };\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n const scrollSize = `scroll${capitalizedDimension}`;\n this._queueCallback(complete, this._element, true);\n this._element.style[dimension] = `${this._element[scrollSize]}px`;\n }\n hide() {\n if (this._isTransitioning || !this._isShown()) {\n return;\n }\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$6);\n if (startEvent.defaultPrevented) {\n return;\n }\n const dimension = this._getDimension();\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;\n reflow(this._element);\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n for (const trigger of this._triggerArray) {\n const element = SelectorEngine.getElementFromSelector(trigger);\n if (element && !this._isShown(element)) {\n this._addAriaAndCollapsedClass([trigger], false);\n }\n }\n this._isTransitioning = true;\n const complete = () => {\n this._isTransitioning = false;\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n this._element.classList.add(CLASS_NAME_COLLAPSE);\n EventHandler.trigger(this._element, EVENT_HIDDEN$6);\n };\n this._element.style[dimension] = '';\n this._queueCallback(complete, this._element, true);\n }\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW$7);\n }\n\n // Private\n _configAfterMerge(config) {\n config.toggle = Boolean(config.toggle); // Coerce string values\n config.parent = getElement(config.parent);\n return config;\n }\n _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;\n }\n _initializeChildren() {\n if (!this._config.parent) {\n return;\n }\n const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$4);\n for (const element of children) {\n const selected = SelectorEngine.getElementFromSelector(element);\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected));\n }\n }\n }\n _getFirstLevelChildren(selector) {\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);\n // remove children if greater depth\n return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element));\n }\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return;\n }\n for (const element of triggerArray) {\n element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen);\n element.setAttribute('aria-expanded', isOpen);\n }\n }\n\n // Static\n static jQueryInterface(config) {\n const _config = {};\n if (typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false;\n }\n return this.each(function () {\n const data = Collapse.getOrCreateInstance(this, _config);\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n }\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {\n event.preventDefault();\n }\n for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) {\n Collapse.getOrCreateInstance(element, {\n toggle: false\n }).toggle();\n }\n});\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Collapse);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$a = 'dropdown';\nconst DATA_KEY$6 = 'bs.dropdown';\nconst EVENT_KEY$6 = `.${DATA_KEY$6}`;\nconst DATA_API_KEY$3 = '.data-api';\nconst ESCAPE_KEY$2 = 'Escape';\nconst TAB_KEY$1 = 'Tab';\nconst ARROW_UP_KEY$1 = 'ArrowUp';\nconst ARROW_DOWN_KEY$1 = 'ArrowDown';\nconst RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button\n\nconst EVENT_HIDE$5 = `hide${EVENT_KEY$6}`;\nconst EVENT_HIDDEN$5 = `hidden${EVENT_KEY$6}`;\nconst EVENT_SHOW$5 = `show${EVENT_KEY$6}`;\nconst EVENT_SHOWN$5 = `shown${EVENT_KEY$6}`;\nconst EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`;\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$6}${DATA_API_KEY$3}`;\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$6}${DATA_API_KEY$3}`;\nconst CLASS_NAME_SHOW$6 = 'show';\nconst CLASS_NAME_DROPUP = 'dropup';\nconst CLASS_NAME_DROPEND = 'dropend';\nconst CLASS_NAME_DROPSTART = 'dropstart';\nconst CLASS_NAME_DROPUP_CENTER = 'dropup-center';\nconst CLASS_NAME_DROPDOWN_CENTER = 'dropdown-center';\nconst SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle=\"dropdown\"]:not(.disabled):not(:disabled)';\nconst SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE$3}.${CLASS_NAME_SHOW$6}`;\nconst SELECTOR_MENU = '.dropdown-menu';\nconst SELECTOR_NAVBAR = '.navbar';\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav';\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';\nconst PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start';\nconst PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end';\nconst PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start';\nconst PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end';\nconst PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start';\nconst PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start';\nconst PLACEMENT_TOPCENTER = 'top';\nconst PLACEMENT_BOTTOMCENTER = 'bottom';\nconst Default$9 = {\n autoClose: true,\n boundary: 'clippingParents',\n display: 'dynamic',\n offset: [0, 2],\n popperConfig: null,\n reference: 'toggle'\n};\nconst DefaultType$9 = {\n autoClose: '(boolean|string)',\n boundary: '(string|element)',\n display: 'string',\n offset: '(array|string|function)',\n popperConfig: '(null|object|function)',\n reference: '(string|element|object)'\n};\n\n/**\n * Class definition\n */\n\nclass Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._popper = null;\n this._parent = this._element.parentNode; // dropdown wrapper\n // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/\n this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent);\n this._inNavbar = this._detectNavbar();\n }\n\n // Getters\n static get Default() {\n return Default$9;\n }\n static get DefaultType() {\n return DefaultType$9;\n }\n static get NAME() {\n return NAME$a;\n }\n\n // Public\n toggle() {\n return this._isShown() ? this.hide() : this.show();\n }\n show() {\n if (isDisabled(this._element) || this._isShown()) {\n return;\n }\n const relatedTarget = {\n relatedTarget: this._element\n };\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$5, relatedTarget);\n if (showEvent.defaultPrevented) {\n return;\n }\n this._createPopper();\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.on(element, 'mouseover', noop);\n }\n }\n this._element.focus();\n this._element.setAttribute('aria-expanded', true);\n this._menu.classList.add(CLASS_NAME_SHOW$6);\n this._element.classList.add(CLASS_NAME_SHOW$6);\n EventHandler.trigger(this._element, EVENT_SHOWN$5, relatedTarget);\n }\n hide() {\n if (isDisabled(this._element) || !this._isShown()) {\n return;\n }\n const relatedTarget = {\n relatedTarget: this._element\n };\n this._completeHide(relatedTarget);\n }\n dispose() {\n if (this._popper) {\n this._popper.destroy();\n }\n super.dispose();\n }\n update() {\n this._inNavbar = this._detectNavbar();\n if (this._popper) {\n this._popper.update();\n }\n }\n\n // Private\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$5, relatedTarget);\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.off(element, 'mouseover', noop);\n }\n }\n if (this._popper) {\n this._popper.destroy();\n }\n this._menu.classList.remove(CLASS_NAME_SHOW$6);\n this._element.classList.remove(CLASS_NAME_SHOW$6);\n this._element.setAttribute('aria-expanded', 'false');\n Manipulator.removeDataAttribute(this._menu, 'popper');\n EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget);\n }\n _getConfig(config) {\n config = super._getConfig(config);\n if (typeof config.reference === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') {\n // Popper virtual elements require a getBoundingClientRect method\n throw new TypeError(`${NAME$a.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`);\n }\n return config;\n }\n _createPopper() {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)');\n }\n let referenceElement = this._element;\n if (this._config.reference === 'parent') {\n referenceElement = this._parent;\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference);\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference;\n }\n const popperConfig = this._getPopperConfig();\n this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig);\n }\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW$6);\n }\n _getPlacement() {\n const parentDropdown = this._parent;\n if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n return PLACEMENT_RIGHT;\n }\n if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n return PLACEMENT_LEFT;\n }\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) {\n return PLACEMENT_TOPCENTER;\n }\n if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) {\n return PLACEMENT_BOTTOMCENTER;\n }\n\n // We need to trim the value because custom properties can also include spaces\n const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end';\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;\n }\n return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;\n }\n _detectNavbar() {\n return this._element.closest(SELECTOR_NAVBAR) !== null;\n }\n _getOffset() {\n const {\n offset\n } = this._config;\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10));\n }\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element);\n }\n return offset;\n }\n _getPopperConfig() {\n const defaultBsPopperConfig = {\n placement: this._getPlacement(),\n modifiers: [{\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }]\n };\n\n // Disable Popper if we have a static display or Dropdown is in Navbar\n if (this._inNavbar || this._config.display === 'static') {\n Manipulator.setDataAttribute(this._menu, 'popper', 'static'); // TODO: v6 remove\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }];\n }\n return {\n ...defaultBsPopperConfig,\n ...execute(this._config.popperConfig, [defaultBsPopperConfig])\n };\n }\n _selectMenuItem({\n key,\n target\n }) {\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(element => isVisible(element));\n if (!items.length) {\n return;\n }\n\n // if target isn't included in items (e.g. when expanding the dropdown)\n // allow cycling to get the last item in case key equals ARROW_UP_KEY\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY$1, !items.includes(target)).focus();\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Dropdown.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n });\n }\n static clearMenus(event) {\n if (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY$1) {\n return;\n }\n const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN);\n for (const toggle of openToggles) {\n const context = Dropdown.getInstance(toggle);\n if (!context || context._config.autoClose === false) {\n continue;\n }\n const composedPath = event.composedPath();\n const isMenuTarget = composedPath.includes(context._menu);\n if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) {\n continue;\n }\n\n // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu\n if (context._menu.contains(event.target) && (event.type === 'keyup' && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue;\n }\n const relatedTarget = {\n relatedTarget: context._element\n };\n if (event.type === 'click') {\n relatedTarget.clickEvent = event;\n }\n context._completeHide(relatedTarget);\n }\n }\n static dataApiKeydownHandler(event) {\n // If not an UP | DOWN | ESCAPE key => not a dropdown command\n // If input/textarea && if key is other than ESCAPE => not a dropdown command\n\n const isInput = /input|textarea/i.test(event.target.tagName);\n const isEscapeEvent = event.key === ESCAPE_KEY$2;\n const isUpOrDownEvent = [ARROW_UP_KEY$1, ARROW_DOWN_KEY$1].includes(event.key);\n if (!isUpOrDownEvent && !isEscapeEvent) {\n return;\n }\n if (isInput && !isEscapeEvent) {\n return;\n }\n event.preventDefault();\n\n // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode);\n const instance = Dropdown.getOrCreateInstance(getToggleButton);\n if (isUpOrDownEvent) {\n event.stopPropagation();\n instance.show();\n instance._selectMenuItem(event);\n return;\n }\n if (instance._isShown()) {\n // else is escape and we check if it is shown\n event.stopPropagation();\n instance.hide();\n getToggleButton.focus();\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler);\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);\nEventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus);\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);\nEventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) {\n event.preventDefault();\n Dropdown.getOrCreateInstance(this).toggle();\n});\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Dropdown);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/backdrop.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$9 = 'backdrop';\nconst CLASS_NAME_FADE$4 = 'fade';\nconst CLASS_NAME_SHOW$5 = 'show';\nconst EVENT_MOUSEDOWN = `mousedown.bs.${NAME$9}`;\nconst Default$8 = {\n className: 'modal-backdrop',\n clickCallback: null,\n isAnimated: false,\n isVisible: true,\n // if false, we use the backdrop helper without adding any element to the dom\n rootElement: 'body' // give the choice to place backdrop under different elements\n};\nconst DefaultType$8 = {\n className: 'string',\n clickCallback: '(function|null)',\n isAnimated: 'boolean',\n isVisible: 'boolean',\n rootElement: '(element|string)'\n};\n\n/**\n * Class definition\n */\n\nclass Backdrop extends Config {\n constructor(config) {\n super();\n this._config = this._getConfig(config);\n this._isAppended = false;\n this._element = null;\n }\n\n // Getters\n static get Default() {\n return Default$8;\n }\n static get DefaultType() {\n return DefaultType$8;\n }\n static get NAME() {\n return NAME$9;\n }\n\n // Public\n show(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n this._append();\n const element = this._getElement();\n if (this._config.isAnimated) {\n reflow(element);\n }\n element.classList.add(CLASS_NAME_SHOW$5);\n this._emulateAnimation(() => {\n execute(callback);\n });\n }\n hide(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n this._getElement().classList.remove(CLASS_NAME_SHOW$5);\n this._emulateAnimation(() => {\n this.dispose();\n execute(callback);\n });\n }\n dispose() {\n if (!this._isAppended) {\n return;\n }\n EventHandler.off(this._element, EVENT_MOUSEDOWN);\n this._element.remove();\n this._isAppended = false;\n }\n\n // Private\n _getElement() {\n if (!this._element) {\n const backdrop = document.createElement('div');\n backdrop.className = this._config.className;\n if (this._config.isAnimated) {\n backdrop.classList.add(CLASS_NAME_FADE$4);\n }\n this._element = backdrop;\n }\n return this._element;\n }\n _configAfterMerge(config) {\n // use getElement() with the default \"body\" to get a fresh Element on each instantiation\n config.rootElement = getElement(config.rootElement);\n return config;\n }\n _append() {\n if (this._isAppended) {\n return;\n }\n const element = this._getElement();\n this._config.rootElement.append(element);\n EventHandler.on(element, EVENT_MOUSEDOWN, () => {\n execute(this._config.clickCallback);\n });\n this._isAppended = true;\n }\n _emulateAnimation(callback) {\n executeAfterTransition(callback, this._getElement(), this._config.isAnimated);\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/focustrap.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$8 = 'focustrap';\nconst DATA_KEY$5 = 'bs.focustrap';\nconst EVENT_KEY$5 = `.${DATA_KEY$5}`;\nconst EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$5}`;\nconst EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$5}`;\nconst TAB_KEY = 'Tab';\nconst TAB_NAV_FORWARD = 'forward';\nconst TAB_NAV_BACKWARD = 'backward';\nconst Default$7 = {\n autofocus: true,\n trapElement: null // The element to trap focus inside of\n};\nconst DefaultType$7 = {\n autofocus: 'boolean',\n trapElement: 'element'\n};\n\n/**\n * Class definition\n */\n\nclass FocusTrap extends Config {\n constructor(config) {\n super();\n this._config = this._getConfig(config);\n this._isActive = false;\n this._lastTabNavDirection = null;\n }\n\n // Getters\n static get Default() {\n return Default$7;\n }\n static get DefaultType() {\n return DefaultType$7;\n }\n static get NAME() {\n return NAME$8;\n }\n\n // Public\n activate() {\n if (this._isActive) {\n return;\n }\n if (this._config.autofocus) {\n this._config.trapElement.focus();\n }\n EventHandler.off(document, EVENT_KEY$5); // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN$2, event => this._handleFocusin(event));\n EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event));\n this._isActive = true;\n }\n deactivate() {\n if (!this._isActive) {\n return;\n }\n this._isActive = false;\n EventHandler.off(document, EVENT_KEY$5);\n }\n\n // Private\n _handleFocusin(event) {\n const {\n trapElement\n } = this._config;\n if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) {\n return;\n }\n const elements = SelectorEngine.focusableChildren(trapElement);\n if (elements.length === 0) {\n trapElement.focus();\n } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {\n elements[elements.length - 1].focus();\n } else {\n elements[0].focus();\n }\n }\n _handleKeydown(event) {\n if (event.key !== TAB_KEY) {\n return;\n }\n this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD;\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\nconst SELECTOR_STICKY_CONTENT = '.sticky-top';\nconst PROPERTY_PADDING = 'padding-right';\nconst PROPERTY_MARGIN = 'margin-right';\n\n/**\n * Class definition\n */\n\nclass ScrollBarHelper {\n constructor() {\n this._element = document.body;\n }\n\n // Public\n getWidth() {\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n const documentWidth = document.documentElement.clientWidth;\n return Math.abs(window.innerWidth - documentWidth);\n }\n hide() {\n const width = this.getWidth();\n this._disableOverFlow();\n // give padding to element to balance the hidden scrollbar width\n this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width);\n // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width);\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width);\n }\n reset() {\n this._resetElementAttributes(this._element, 'overflow');\n this._resetElementAttributes(this._element, PROPERTY_PADDING);\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING);\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN);\n }\n isOverflowing() {\n return this.getWidth() > 0;\n }\n\n // Private\n _disableOverFlow() {\n this._saveInitialAttribute(this._element, 'overflow');\n this._element.style.overflow = 'hidden';\n }\n _setElementAttributes(selector, styleProperty, callback) {\n const scrollbarWidth = this.getWidth();\n const manipulationCallBack = element => {\n if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\n return;\n }\n this._saveInitialAttribute(element, styleProperty);\n const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty);\n element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`);\n };\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n _saveInitialAttribute(element, styleProperty) {\n const actualValue = element.style.getPropertyValue(styleProperty);\n if (actualValue) {\n Manipulator.setDataAttribute(element, styleProperty, actualValue);\n }\n }\n _resetElementAttributes(selector, styleProperty) {\n const manipulationCallBack = element => {\n const value = Manipulator.getDataAttribute(element, styleProperty);\n // We only want to remove the property if the value is `null`; the value can also be zero\n if (value === null) {\n element.style.removeProperty(styleProperty);\n return;\n }\n Manipulator.removeDataAttribute(element, styleProperty);\n element.style.setProperty(styleProperty, value);\n };\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n _applyManipulationCallback(selector, callBack) {\n if (isElement(selector)) {\n callBack(selector);\n return;\n }\n for (const sel of SelectorEngine.find(selector, this._element)) {\n callBack(sel);\n }\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$7 = 'modal';\nconst DATA_KEY$4 = 'bs.modal';\nconst EVENT_KEY$4 = `.${DATA_KEY$4}`;\nconst DATA_API_KEY$2 = '.data-api';\nconst ESCAPE_KEY$1 = 'Escape';\nconst EVENT_HIDE$4 = `hide${EVENT_KEY$4}`;\nconst EVENT_HIDE_PREVENTED$1 = `hidePrevented${EVENT_KEY$4}`;\nconst EVENT_HIDDEN$4 = `hidden${EVENT_KEY$4}`;\nconst EVENT_SHOW$4 = `show${EVENT_KEY$4}`;\nconst EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`;\nconst EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`;\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$4}`;\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`;\nconst EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`;\nconst EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`;\nconst CLASS_NAME_OPEN = 'modal-open';\nconst CLASS_NAME_FADE$3 = 'fade';\nconst CLASS_NAME_SHOW$4 = 'show';\nconst CLASS_NAME_STATIC = 'modal-static';\nconst OPEN_SELECTOR$1 = '.modal.show';\nconst SELECTOR_DIALOG = '.modal-dialog';\nconst SELECTOR_MODAL_BODY = '.modal-body';\nconst SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle=\"modal\"]';\nconst Default$6 = {\n backdrop: true,\n focus: true,\n keyboard: true\n};\nconst DefaultType$6 = {\n backdrop: '(boolean|string)',\n focus: 'boolean',\n keyboard: 'boolean'\n};\n\n/**\n * Class definition\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element);\n this._backdrop = this._initializeBackDrop();\n this._focustrap = this._initializeFocusTrap();\n this._isShown = false;\n this._isTransitioning = false;\n this._scrollBar = new ScrollBarHelper();\n this._addEventListeners();\n }\n\n // Getters\n static get Default() {\n return Default$6;\n }\n static get DefaultType() {\n return DefaultType$6;\n }\n static get NAME() {\n return NAME$7;\n }\n\n // Public\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return;\n }\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, {\n relatedTarget\n });\n if (showEvent.defaultPrevented) {\n return;\n }\n this._isShown = true;\n this._isTransitioning = true;\n this._scrollBar.hide();\n document.body.classList.add(CLASS_NAME_OPEN);\n this._adjustDialog();\n this._backdrop.show(() => this._showElement(relatedTarget));\n }\n hide() {\n if (!this._isShown || this._isTransitioning) {\n return;\n }\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4);\n if (hideEvent.defaultPrevented) {\n return;\n }\n this._isShown = false;\n this._isTransitioning = true;\n this._focustrap.deactivate();\n this._element.classList.remove(CLASS_NAME_SHOW$4);\n this._queueCallback(() => this._hideModal(), this._element, this._isAnimated());\n }\n dispose() {\n EventHandler.off(window, EVENT_KEY$4);\n EventHandler.off(this._dialog, EVENT_KEY$4);\n this._backdrop.dispose();\n this._focustrap.deactivate();\n super.dispose();\n }\n handleUpdate() {\n this._adjustDialog();\n }\n\n // Private\n _initializeBackDrop() {\n return new Backdrop({\n isVisible: Boolean(this._config.backdrop),\n // 'static' option will be translated to true, and booleans will keep their value,\n isAnimated: this._isAnimated()\n });\n }\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n });\n }\n _showElement(relatedTarget) {\n // try to append dynamic modal\n if (!document.body.contains(this._element)) {\n document.body.append(this._element);\n }\n this._element.style.display = 'block';\n this._element.removeAttribute('aria-hidden');\n this._element.setAttribute('aria-modal', true);\n this._element.setAttribute('role', 'dialog');\n this._element.scrollTop = 0;\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);\n if (modalBody) {\n modalBody.scrollTop = 0;\n }\n reflow(this._element);\n this._element.classList.add(CLASS_NAME_SHOW$4);\n const transitionComplete = () => {\n if (this._config.focus) {\n this._focustrap.activate();\n }\n this._isTransitioning = false;\n EventHandler.trigger(this._element, EVENT_SHOWN$4, {\n relatedTarget\n });\n };\n this._queueCallback(transitionComplete, this._dialog, this._isAnimated());\n }\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, event => {\n if (event.key !== ESCAPE_KEY$1) {\n return;\n }\n if (this._config.keyboard) {\n this.hide();\n return;\n }\n this._triggerBackdropTransition();\n });\n EventHandler.on(window, EVENT_RESIZE$1, () => {\n if (this._isShown && !this._isTransitioning) {\n this._adjustDialog();\n }\n });\n EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => {\n // a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks\n EventHandler.one(this._element, EVENT_CLICK_DISMISS, event2 => {\n if (this._element !== event.target || this._element !== event2.target) {\n return;\n }\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition();\n return;\n }\n if (this._config.backdrop) {\n this.hide();\n }\n });\n });\n }\n _hideModal() {\n this._element.style.display = 'none';\n this._element.setAttribute('aria-hidden', true);\n this._element.removeAttribute('aria-modal');\n this._element.removeAttribute('role');\n this._isTransitioning = false;\n this._backdrop.hide(() => {\n document.body.classList.remove(CLASS_NAME_OPEN);\n this._resetAdjustments();\n this._scrollBar.reset();\n EventHandler.trigger(this._element, EVENT_HIDDEN$4);\n });\n }\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE$3);\n }\n _triggerBackdropTransition() {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED$1);\n if (hideEvent.defaultPrevented) {\n return;\n }\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n const initialOverflowY = this._element.style.overflowY;\n // return if the following background transition hasn't yet completed\n if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) {\n return;\n }\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden';\n }\n this._element.classList.add(CLASS_NAME_STATIC);\n this._queueCallback(() => {\n this._element.classList.remove(CLASS_NAME_STATIC);\n this._queueCallback(() => {\n this._element.style.overflowY = initialOverflowY;\n }, this._dialog);\n }, this._dialog);\n this._element.focus();\n }\n\n /**\n * The following methods are used to handle overflowing modals\n */\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n const scrollbarWidth = this._scrollBar.getWidth();\n const isBodyOverflowing = scrollbarWidth > 0;\n if (isBodyOverflowing && !isModalOverflowing) {\n const property = isRTL() ? 'paddingLeft' : 'paddingRight';\n this._element.style[property] = `${scrollbarWidth}px`;\n }\n if (!isBodyOverflowing && isModalOverflowing) {\n const property = isRTL() ? 'paddingRight' : 'paddingLeft';\n this._element.style[property] = `${scrollbarWidth}px`;\n }\n }\n _resetAdjustments() {\n this._element.style.paddingLeft = '';\n this._element.style.paddingRight = '';\n }\n\n // Static\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n const data = Modal.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config](relatedTarget);\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) {\n const target = SelectorEngine.getElementFromSelector(this);\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n EventHandler.one(target, EVENT_SHOW$4, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return;\n }\n EventHandler.one(target, EVENT_HIDDEN$4, () => {\n if (isVisible(this)) {\n this.focus();\n }\n });\n });\n\n // avoid conflict when clicking modal toggler while another one is open\n const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1);\n if (alreadyOpen) {\n Modal.getInstance(alreadyOpen).hide();\n }\n const data = Modal.getOrCreateInstance(target);\n data.toggle(this);\n});\nenableDismissTrigger(Modal);\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Modal);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$6 = 'offcanvas';\nconst DATA_KEY$3 = 'bs.offcanvas';\nconst EVENT_KEY$3 = `.${DATA_KEY$3}`;\nconst DATA_API_KEY$1 = '.data-api';\nconst EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$3}${DATA_API_KEY$1}`;\nconst ESCAPE_KEY = 'Escape';\nconst CLASS_NAME_SHOW$3 = 'show';\nconst CLASS_NAME_SHOWING$1 = 'showing';\nconst CLASS_NAME_HIDING = 'hiding';\nconst CLASS_NAME_BACKDROP = 'offcanvas-backdrop';\nconst OPEN_SELECTOR = '.offcanvas.show';\nconst EVENT_SHOW$3 = `show${EVENT_KEY$3}`;\nconst EVENT_SHOWN$3 = `shown${EVENT_KEY$3}`;\nconst EVENT_HIDE$3 = `hide${EVENT_KEY$3}`;\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$3}`;\nconst EVENT_HIDDEN$3 = `hidden${EVENT_KEY$3}`;\nconst EVENT_RESIZE = `resize${EVENT_KEY$3}`;\nconst EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$3}${DATA_API_KEY$1}`;\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$3}`;\nconst SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle=\"offcanvas\"]';\nconst Default$5 = {\n backdrop: true,\n keyboard: true,\n scroll: false\n};\nconst DefaultType$5 = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n scroll: 'boolean'\n};\n\n/**\n * Class definition\n */\n\nclass Offcanvas extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._isShown = false;\n this._backdrop = this._initializeBackDrop();\n this._focustrap = this._initializeFocusTrap();\n this._addEventListeners();\n }\n\n // Getters\n static get Default() {\n return Default$5;\n }\n static get DefaultType() {\n return DefaultType$5;\n }\n static get NAME() {\n return NAME$6;\n }\n\n // Public\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n show(relatedTarget) {\n if (this._isShown) {\n return;\n }\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, {\n relatedTarget\n });\n if (showEvent.defaultPrevented) {\n return;\n }\n this._isShown = true;\n this._backdrop.show();\n if (!this._config.scroll) {\n new ScrollBarHelper().hide();\n }\n this._element.setAttribute('aria-modal', true);\n this._element.setAttribute('role', 'dialog');\n this._element.classList.add(CLASS_NAME_SHOWING$1);\n const completeCallBack = () => {\n if (!this._config.scroll || this._config.backdrop) {\n this._focustrap.activate();\n }\n this._element.classList.add(CLASS_NAME_SHOW$3);\n this._element.classList.remove(CLASS_NAME_SHOWING$1);\n EventHandler.trigger(this._element, EVENT_SHOWN$3, {\n relatedTarget\n });\n };\n this._queueCallback(completeCallBack, this._element, true);\n }\n hide() {\n if (!this._isShown) {\n return;\n }\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3);\n if (hideEvent.defaultPrevented) {\n return;\n }\n this._focustrap.deactivate();\n this._element.blur();\n this._isShown = false;\n this._element.classList.add(CLASS_NAME_HIDING);\n this._backdrop.hide();\n const completeCallback = () => {\n this._element.classList.remove(CLASS_NAME_SHOW$3, CLASS_NAME_HIDING);\n this._element.removeAttribute('aria-modal');\n this._element.removeAttribute('role');\n if (!this._config.scroll) {\n new ScrollBarHelper().reset();\n }\n EventHandler.trigger(this._element, EVENT_HIDDEN$3);\n };\n this._queueCallback(completeCallback, this._element, true);\n }\n dispose() {\n this._backdrop.dispose();\n this._focustrap.deactivate();\n super.dispose();\n }\n\n // Private\n _initializeBackDrop() {\n const clickCallback = () => {\n if (this._config.backdrop === 'static') {\n EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\n return;\n }\n this.hide();\n };\n\n // 'static' option will be translated to true, and booleans will keep their value\n const isVisible = Boolean(this._config.backdrop);\n return new Backdrop({\n className: CLASS_NAME_BACKDROP,\n isVisible,\n isAnimated: true,\n rootElement: this._element.parentNode,\n clickCallback: isVisible ? clickCallback : null\n });\n }\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n });\n }\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (event.key !== ESCAPE_KEY) {\n return;\n }\n if (this._config.keyboard) {\n this.hide();\n return;\n }\n EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\n });\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Offcanvas.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config](this);\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) {\n const target = SelectorEngine.getElementFromSelector(this);\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n if (isDisabled(this)) {\n return;\n }\n EventHandler.one(target, EVENT_HIDDEN$3, () => {\n // focus on trigger when it is closed\n if (isVisible(this)) {\n this.focus();\n }\n });\n\n // avoid conflict when clicking a toggler of an offcanvas, while another is open\n const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);\n if (alreadyOpen && alreadyOpen !== target) {\n Offcanvas.getInstance(alreadyOpen).hide();\n }\n const data = Offcanvas.getOrCreateInstance(target);\n data.toggle(this);\n});\nEventHandler.on(window, EVENT_LOAD_DATA_API$2, () => {\n for (const selector of SelectorEngine.find(OPEN_SELECTOR)) {\n Offcanvas.getOrCreateInstance(selector).show();\n }\n});\nEventHandler.on(window, EVENT_RESIZE, () => {\n for (const element of SelectorEngine.find('[aria-modal][class*=show][class*=offcanvas-]')) {\n if (getComputedStyle(element).position !== 'fixed') {\n Offcanvas.getOrCreateInstance(element).hide();\n }\n }\n});\nenableDismissTrigger(Offcanvas);\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Offcanvas);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n// js-docs-start allow-list\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\nconst DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n dd: [],\n div: [],\n dl: [],\n dt: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n};\n// js-docs-end allow-list\n\nconst uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);\n\n/**\n * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation\n * contexts.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38\n */\n// eslint-disable-next-line unicorn/better-regex\nconst SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i;\nconst allowedAttribute = (attribute, allowedAttributeList) => {\n const attributeName = attribute.nodeName.toLowerCase();\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue));\n }\n return true;\n }\n\n // Check if a regular expression validates the attribute.\n return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName));\n};\nfunction sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {\n if (!unsafeHtml.length) {\n return unsafeHtml;\n }\n if (sanitizeFunction && typeof sanitizeFunction === 'function') {\n return sanitizeFunction(unsafeHtml);\n }\n const domParser = new window.DOMParser();\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'));\n for (const element of elements) {\n const elementName = element.nodeName.toLowerCase();\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove();\n continue;\n }\n const attributeList = [].concat(...element.attributes);\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || []);\n for (const attribute of attributeList) {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName);\n }\n }\n }\n return createdDocument.body.innerHTML;\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/template-factory.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$5 = 'TemplateFactory';\nconst Default$4 = {\n allowList: DefaultAllowlist,\n content: {},\n // { selector : text , selector2 : text2 , }\n extraClass: '',\n html: false,\n sanitize: true,\n sanitizeFn: null,\n template: '
'\n};\nconst DefaultType$4 = {\n allowList: 'object',\n content: 'object',\n extraClass: '(string|function)',\n html: 'boolean',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n template: 'string'\n};\nconst DefaultContentType = {\n entry: '(string|element|function|null)',\n selector: '(string|element)'\n};\n\n/**\n * Class definition\n */\n\nclass TemplateFactory extends Config {\n constructor(config) {\n super();\n this._config = this._getConfig(config);\n }\n\n // Getters\n static get Default() {\n return Default$4;\n }\n static get DefaultType() {\n return DefaultType$4;\n }\n static get NAME() {\n return NAME$5;\n }\n\n // Public\n getContent() {\n return Object.values(this._config.content).map(config => this._resolvePossibleFunction(config)).filter(Boolean);\n }\n hasContent() {\n return this.getContent().length > 0;\n }\n changeContent(content) {\n this._checkContent(content);\n this._config.content = {\n ...this._config.content,\n ...content\n };\n return this;\n }\n toHtml() {\n const templateWrapper = document.createElement('div');\n templateWrapper.innerHTML = this._maybeSanitize(this._config.template);\n for (const [selector, text] of Object.entries(this._config.content)) {\n this._setContent(templateWrapper, text, selector);\n }\n const template = templateWrapper.children[0];\n const extraClass = this._resolvePossibleFunction(this._config.extraClass);\n if (extraClass) {\n template.classList.add(...extraClass.split(' '));\n }\n return template;\n }\n\n // Private\n _typeCheckConfig(config) {\n super._typeCheckConfig(config);\n this._checkContent(config.content);\n }\n _checkContent(arg) {\n for (const [selector, content] of Object.entries(arg)) {\n super._typeCheckConfig({\n selector,\n entry: content\n }, DefaultContentType);\n }\n }\n _setContent(template, content, selector) {\n const templateElement = SelectorEngine.findOne(selector, template);\n if (!templateElement) {\n return;\n }\n content = this._resolvePossibleFunction(content);\n if (!content) {\n templateElement.remove();\n return;\n }\n if (isElement(content)) {\n this._putElementInTemplate(getElement(content), templateElement);\n return;\n }\n if (this._config.html) {\n templateElement.innerHTML = this._maybeSanitize(content);\n return;\n }\n templateElement.textContent = content;\n }\n _maybeSanitize(arg) {\n return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg;\n }\n _resolvePossibleFunction(arg) {\n return execute(arg, [this]);\n }\n _putElementInTemplate(element, templateElement) {\n if (this._config.html) {\n templateElement.innerHTML = '';\n templateElement.append(element);\n return;\n }\n templateElement.textContent = element.textContent;\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$4 = 'tooltip';\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);\nconst CLASS_NAME_FADE$2 = 'fade';\nconst CLASS_NAME_MODAL = 'modal';\nconst CLASS_NAME_SHOW$2 = 'show';\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner';\nconst SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`;\nconst EVENT_MODAL_HIDE = 'hide.bs.modal';\nconst TRIGGER_HOVER = 'hover';\nconst TRIGGER_FOCUS = 'focus';\nconst TRIGGER_CLICK = 'click';\nconst TRIGGER_MANUAL = 'manual';\nconst EVENT_HIDE$2 = 'hide';\nconst EVENT_HIDDEN$2 = 'hidden';\nconst EVENT_SHOW$2 = 'show';\nconst EVENT_SHOWN$2 = 'shown';\nconst EVENT_INSERTED = 'inserted';\nconst EVENT_CLICK$1 = 'click';\nconst EVENT_FOCUSIN$1 = 'focusin';\nconst EVENT_FOCUSOUT$1 = 'focusout';\nconst EVENT_MOUSEENTER = 'mouseenter';\nconst EVENT_MOUSELEAVE = 'mouseleave';\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: isRTL() ? 'left' : 'right',\n BOTTOM: 'bottom',\n LEFT: isRTL() ? 'right' : 'left'\n};\nconst Default$3 = {\n allowList: DefaultAllowlist,\n animation: true,\n boundary: 'clippingParents',\n container: false,\n customClass: '',\n delay: 0,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n html: false,\n offset: [0, 6],\n placement: 'top',\n popperConfig: null,\n sanitize: true,\n sanitizeFn: null,\n selector: false,\n template: '
' + '
' + '
' + '
',\n title: '',\n trigger: 'hover focus'\n};\nconst DefaultType$3 = {\n allowList: 'object',\n animation: 'boolean',\n boundary: '(string|element)',\n container: '(string|element|boolean)',\n customClass: '(string|function)',\n delay: '(number|object)',\n fallbackPlacements: 'array',\n html: 'boolean',\n offset: '(array|string|function)',\n placement: '(string|function)',\n popperConfig: '(null|object|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n selector: '(string|boolean)',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string'\n};\n\n/**\n * Class definition\n */\n\nclass Tooltip extends BaseComponent {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)');\n }\n super(element, config);\n\n // Private\n this._isEnabled = true;\n this._timeout = 0;\n this._isHovered = null;\n this._activeTrigger = {};\n this._popper = null;\n this._templateFactory = null;\n this._newContent = null;\n\n // Protected\n this.tip = null;\n this._setListeners();\n if (!this._config.selector) {\n this._fixTitle();\n }\n }\n\n // Getters\n static get Default() {\n return Default$3;\n }\n static get DefaultType() {\n return DefaultType$3;\n }\n static get NAME() {\n return NAME$4;\n }\n\n // Public\n enable() {\n this._isEnabled = true;\n }\n disable() {\n this._isEnabled = false;\n }\n toggleEnabled() {\n this._isEnabled = !this._isEnabled;\n }\n toggle() {\n if (!this._isEnabled) {\n return;\n }\n this._activeTrigger.click = !this._activeTrigger.click;\n if (this._isShown()) {\n this._leave();\n return;\n }\n this._enter();\n }\n dispose() {\n clearTimeout(this._timeout);\n EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n if (this._element.getAttribute('data-bs-original-title')) {\n this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'));\n }\n this._disposePopper();\n super.dispose();\n }\n show() {\n if (this._element.style.display === 'none') {\n throw new Error('Please use show on visible elements');\n }\n if (!(this._isWithContent() && this._isEnabled)) {\n return;\n }\n const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW$2));\n const shadowRoot = findShadowRoot(this._element);\n const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element);\n if (showEvent.defaultPrevented || !isInTheDom) {\n return;\n }\n\n // TODO: v6 remove this or make it optional\n this._disposePopper();\n const tip = this._getTipElement();\n this._element.setAttribute('aria-describedby', tip.getAttribute('id'));\n const {\n container\n } = this._config;\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.append(tip);\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED));\n }\n this._popper = this._createPopper(tip);\n tip.classList.add(CLASS_NAME_SHOW$2);\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.on(element, 'mouseover', noop);\n }\n }\n const complete = () => {\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2));\n if (this._isHovered === false) {\n this._leave();\n }\n this._isHovered = false;\n };\n this._queueCallback(complete, this.tip, this._isAnimated());\n }\n hide() {\n if (!this._isShown()) {\n return;\n }\n const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE$2));\n if (hideEvent.defaultPrevented) {\n return;\n }\n const tip = this._getTipElement();\n tip.classList.remove(CLASS_NAME_SHOW$2);\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.off(element, 'mouseover', noop);\n }\n }\n this._activeTrigger[TRIGGER_CLICK] = false;\n this._activeTrigger[TRIGGER_FOCUS] = false;\n this._activeTrigger[TRIGGER_HOVER] = false;\n this._isHovered = null; // it is a trick to support manual triggering\n\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return;\n }\n if (!this._isHovered) {\n this._disposePopper();\n }\n this._element.removeAttribute('aria-describedby');\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2));\n };\n this._queueCallback(complete, this.tip, this._isAnimated());\n }\n update() {\n if (this._popper) {\n this._popper.update();\n }\n }\n\n // Protected\n _isWithContent() {\n return Boolean(this._getTitle());\n }\n _getTipElement() {\n if (!this.tip) {\n this.tip = this._createTipElement(this._newContent || this._getContentForTemplate());\n }\n return this.tip;\n }\n _createTipElement(content) {\n const tip = this._getTemplateFactory(content).toHtml();\n\n // TODO: remove this check in v6\n if (!tip) {\n return null;\n }\n tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2);\n // TODO: v6 the following can be achieved with CSS only\n tip.classList.add(`bs-${this.constructor.NAME}-auto`);\n const tipId = getUID(this.constructor.NAME).toString();\n tip.setAttribute('id', tipId);\n if (this._isAnimated()) {\n tip.classList.add(CLASS_NAME_FADE$2);\n }\n return tip;\n }\n setContent(content) {\n this._newContent = content;\n if (this._isShown()) {\n this._disposePopper();\n this.show();\n }\n }\n _getTemplateFactory(content) {\n if (this._templateFactory) {\n this._templateFactory.changeContent(content);\n } else {\n this._templateFactory = new TemplateFactory({\n ...this._config,\n // the `content` var has to be after `this._config`\n // to override config.content in case of popover\n content,\n extraClass: this._resolvePossibleFunction(this._config.customClass)\n });\n }\n return this._templateFactory;\n }\n _getContentForTemplate() {\n return {\n [SELECTOR_TOOLTIP_INNER]: this._getTitle()\n };\n }\n _getTitle() {\n return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title');\n }\n\n // Private\n _initializeOnDelegatedTarget(event) {\n return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig());\n }\n _isAnimated() {\n return this._config.animation || this.tip && this.tip.classList.contains(CLASS_NAME_FADE$2);\n }\n _isShown() {\n return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW$2);\n }\n _createPopper(tip) {\n const placement = execute(this._config.placement, [this, tip, this._element]);\n const attachment = AttachmentMap[placement.toUpperCase()];\n return Popper.createPopper(this._element, tip, this._getPopperConfig(attachment));\n }\n _getOffset() {\n const {\n offset\n } = this._config;\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10));\n }\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element);\n }\n return offset;\n }\n _resolvePossibleFunction(arg) {\n return execute(arg, [this._element]);\n }\n _getPopperConfig(attachment) {\n const defaultBsPopperConfig = {\n placement: attachment,\n modifiers: [{\n name: 'flip',\n options: {\n fallbackPlacements: this._config.fallbackPlacements\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }, {\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'arrow',\n options: {\n element: `.${this.constructor.NAME}-arrow`\n }\n }, {\n name: 'preSetPlacement',\n enabled: true,\n phase: 'beforeMain',\n fn: data => {\n // Pre-set Popper's placement attribute in order to read the arrow sizes properly.\n // Otherwise, Popper mixes up the width and height dimensions since the initial arrow style is for top placement\n this._getTipElement().setAttribute('data-popper-placement', data.state.placement);\n }\n }]\n };\n return {\n ...defaultBsPopperConfig,\n ...execute(this._config.popperConfig, [defaultBsPopperConfig])\n };\n }\n _setListeners() {\n const triggers = this._config.trigger.split(' ');\n for (const trigger of triggers) {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n context.toggle();\n });\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1);\n const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1);\n EventHandler.on(this._element, eventIn, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;\n context._enter();\n });\n EventHandler.on(this._element, eventOut, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget);\n context._leave();\n });\n }\n }\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide();\n }\n };\n EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n }\n _fixTitle() {\n const title = this._element.getAttribute('title');\n if (!title) {\n return;\n }\n if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) {\n this._element.setAttribute('aria-label', title);\n }\n this._element.setAttribute('data-bs-original-title', title); // DO NOT USE IT. Is only for backwards compatibility\n this._element.removeAttribute('title');\n }\n _enter() {\n if (this._isShown() || this._isHovered) {\n this._isHovered = true;\n return;\n }\n this._isHovered = true;\n this._setTimeout(() => {\n if (this._isHovered) {\n this.show();\n }\n }, this._config.delay.show);\n }\n _leave() {\n if (this._isWithActiveTrigger()) {\n return;\n }\n this._isHovered = false;\n this._setTimeout(() => {\n if (!this._isHovered) {\n this.hide();\n }\n }, this._config.delay.hide);\n }\n _setTimeout(handler, timeout) {\n clearTimeout(this._timeout);\n this._timeout = setTimeout(handler, timeout);\n }\n _isWithActiveTrigger() {\n return Object.values(this._activeTrigger).includes(true);\n }\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element);\n for (const dataAttribute of Object.keys(dataAttributes)) {\n if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {\n delete dataAttributes[dataAttribute];\n }\n }\n config = {\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n };\n config = this._mergeConfigObj(config);\n config = this._configAfterMerge(config);\n this._typeCheckConfig(config);\n return config;\n }\n _configAfterMerge(config) {\n config.container = config.container === false ? document.body : getElement(config.container);\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n };\n }\n if (typeof config.title === 'number') {\n config.title = config.title.toString();\n }\n if (typeof config.content === 'number') {\n config.content = config.content.toString();\n }\n return config;\n }\n _getDelegateConfig() {\n const config = {};\n for (const [key, value] of Object.entries(this._config)) {\n if (this.constructor.Default[key] !== value) {\n config[key] = value;\n }\n }\n config.selector = false;\n config.trigger = 'manual';\n\n // In the future can be replaced with:\n // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\n // `Object.fromEntries(keysWithDifferentValues)`\n return config;\n }\n _disposePopper() {\n if (this._popper) {\n this._popper.destroy();\n this._popper = null;\n }\n if (this.tip) {\n this.tip.remove();\n this.tip = null;\n }\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tooltip.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n });\n }\n}\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Tooltip);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$3 = 'popover';\nconst SELECTOR_TITLE = '.popover-header';\nconst SELECTOR_CONTENT = '.popover-body';\nconst Default$2 = {\n ...Tooltip.Default,\n content: '',\n offset: [0, 8],\n placement: 'right',\n template: '
' + '
' + '

' + '
' + '
',\n trigger: 'click'\n};\nconst DefaultType$2 = {\n ...Tooltip.DefaultType,\n content: '(null|string|element|function)'\n};\n\n/**\n * Class definition\n */\n\nclass Popover extends Tooltip {\n // Getters\n static get Default() {\n return Default$2;\n }\n static get DefaultType() {\n return DefaultType$2;\n }\n static get NAME() {\n return NAME$3;\n }\n\n // Overrides\n _isWithContent() {\n return this._getTitle() || this._getContent();\n }\n\n // Private\n _getContentForTemplate() {\n return {\n [SELECTOR_TITLE]: this._getTitle(),\n [SELECTOR_CONTENT]: this._getContent()\n };\n }\n _getContent() {\n return this._resolvePossibleFunction(this._config.content);\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Popover.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n });\n }\n}\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Popover);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$2 = 'scrollspy';\nconst DATA_KEY$2 = 'bs.scrollspy';\nconst EVENT_KEY$2 = `.${DATA_KEY$2}`;\nconst DATA_API_KEY = '.data-api';\nconst EVENT_ACTIVATE = `activate${EVENT_KEY$2}`;\nconst EVENT_CLICK = `click${EVENT_KEY$2}`;\nconst EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$2}${DATA_API_KEY}`;\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';\nconst CLASS_NAME_ACTIVE$1 = 'active';\nconst SELECTOR_DATA_SPY = '[data-bs-spy=\"scroll\"]';\nconst SELECTOR_TARGET_LINKS = '[href]';\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';\nconst SELECTOR_NAV_LINKS = '.nav-link';\nconst SELECTOR_NAV_ITEMS = '.nav-item';\nconst SELECTOR_LIST_ITEMS = '.list-group-item';\nconst SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`;\nconst SELECTOR_DROPDOWN = '.dropdown';\nconst SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';\nconst Default$1 = {\n offset: null,\n // TODO: v6 @deprecated, keep it for backwards compatibility reasons\n rootMargin: '0px 0px -25%',\n smoothScroll: false,\n target: null,\n threshold: [0.1, 0.5, 1]\n};\nconst DefaultType$1 = {\n offset: '(number|null)',\n // TODO v6 @deprecated, keep it for backwards compatibility reasons\n rootMargin: 'string',\n smoothScroll: 'boolean',\n target: 'element',\n threshold: 'array'\n};\n\n/**\n * Class definition\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n\n // this._element is the observablesContainer and config.target the menu links wrapper\n this._targetLinks = new Map();\n this._observableSections = new Map();\n this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element;\n this._activeTarget = null;\n this._observer = null;\n this._previousScrollData = {\n visibleEntryTop: 0,\n parentScrollTop: 0\n };\n this.refresh(); // initialize\n }\n\n // Getters\n static get Default() {\n return Default$1;\n }\n static get DefaultType() {\n return DefaultType$1;\n }\n static get NAME() {\n return NAME$2;\n }\n\n // Public\n refresh() {\n this._initializeTargetsAndObservables();\n this._maybeEnableSmoothScroll();\n if (this._observer) {\n this._observer.disconnect();\n } else {\n this._observer = this._getNewObserver();\n }\n for (const section of this._observableSections.values()) {\n this._observer.observe(section);\n }\n }\n dispose() {\n this._observer.disconnect();\n super.dispose();\n }\n\n // Private\n _configAfterMerge(config) {\n // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case\n config.target = getElement(config.target) || document.body;\n\n // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only\n config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin;\n if (typeof config.threshold === 'string') {\n config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value));\n }\n return config;\n }\n _maybeEnableSmoothScroll() {\n if (!this._config.smoothScroll) {\n return;\n }\n\n // unregister any previous listeners\n EventHandler.off(this._config.target, EVENT_CLICK);\n EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => {\n const observableSection = this._observableSections.get(event.target.hash);\n if (observableSection) {\n event.preventDefault();\n const root = this._rootElement || window;\n const height = observableSection.offsetTop - this._element.offsetTop;\n if (root.scrollTo) {\n root.scrollTo({\n top: height,\n behavior: 'smooth'\n });\n return;\n }\n\n // Chrome 60 doesn't support `scrollTo`\n root.scrollTop = height;\n }\n });\n }\n _getNewObserver() {\n const options = {\n root: this._rootElement,\n threshold: this._config.threshold,\n rootMargin: this._config.rootMargin\n };\n return new IntersectionObserver(entries => this._observerCallback(entries), options);\n }\n\n // The logic of selection\n _observerCallback(entries) {\n const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`);\n const activate = entry => {\n this._previousScrollData.visibleEntryTop = entry.target.offsetTop;\n this._process(targetElement(entry));\n };\n const parentScrollTop = (this._rootElement || document.documentElement).scrollTop;\n const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop;\n this._previousScrollData.parentScrollTop = parentScrollTop;\n for (const entry of entries) {\n if (!entry.isIntersecting) {\n this._activeTarget = null;\n this._clearActiveClass(targetElement(entry));\n continue;\n }\n const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop;\n // if we are scrolling down, pick the bigger offsetTop\n if (userScrollsDown && entryIsLowerThanPrevious) {\n activate(entry);\n // if parent isn't scrolled, let's keep the first visible item, breaking the iteration\n if (!parentScrollTop) {\n return;\n }\n continue;\n }\n\n // if we are scrolling up, pick the smallest offsetTop\n if (!userScrollsDown && !entryIsLowerThanPrevious) {\n activate(entry);\n }\n }\n }\n _initializeTargetsAndObservables() {\n this._targetLinks = new Map();\n this._observableSections = new Map();\n const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target);\n for (const anchor of targetLinks) {\n // ensure that the anchor has an id and is not disabled\n if (!anchor.hash || isDisabled(anchor)) {\n continue;\n }\n const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element);\n\n // ensure that the observableSection exists & is visible\n if (isVisible(observableSection)) {\n this._targetLinks.set(decodeURI(anchor.hash), anchor);\n this._observableSections.set(anchor.hash, observableSection);\n }\n }\n }\n _process(target) {\n if (this._activeTarget === target) {\n return;\n }\n this._clearActiveClass(this._config.target);\n this._activeTarget = target;\n target.classList.add(CLASS_NAME_ACTIVE$1);\n this._activateParents(target);\n EventHandler.trigger(this._element, EVENT_ACTIVATE, {\n relatedTarget: target\n });\n }\n _activateParents(target) {\n // Activate dropdown parents\n if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, target.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$1);\n return;\n }\n for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {\n // Set triggered links parents as active\n // With both